Linking salts to structures

User e34a92cce5

21-01-2008 07:25:19


I am using Instant JChem v2.2 to build a database of chemical structures. Now, I have a controlled list of salts that I would like a person entering a new record in the structure table to look at. What is the best way to get this implemented. I cannot define the sample as a parent and a salt as it child. Neither is the list array field seeming to work for me


ChemAxon fa971619eb

21-01-2008 13:59:12

Instant JChem does not yet have an automated mechanism for managing salts. We will be creating a full chemical registration system with this functionality in the future, This is currently at the design phase.

In the meantime you would need to do this manually in some manner. The salts would need to be specified manually, Possibly using the relational data management features or possibly using some other mechanism.

The text array field in its current form is probably not going to be useful as it does not currently provide a way to provide a controlled list of values to choose from. Again we plan to improve this.

Also, take a look at the standardizer functionality if you haven't already done so.

Standardizer allows you to remove salts from structures.

User e34a92cce5

21-01-2008 15:49:26


These are samples that might have salts in them and we want to record the salts that they carry. Until you introduct the dropdown feature, I think it might be a good idea to write an API that does an error check by looking up the salt labels on another salts table. That way, when a user enters the salt label, they can avoid a typo. I'd appreciate any help with writing an API for looking up tables in Instant JChem, since this is not like a math computation example. Also, it would be helpful to know how to connect it to the 'Insert New Row' event, since I want to have it do the error check when a new compound is entered


ChemAxon fa971619eb

24-01-2008 15:36:59

We are thinking about possible solution for this. We will hopefully respond soon.

I don't think writing an extension would be the best approach.

ChemAxon fa971619eb

26-01-2008 19:13:32

The relational data model of IJC will support this, but I don't think the current UI would be acceptable as a many-to-many relationship would be needed and this would mean:

- the salts would be listed in a separate table, not the same table as the structures

- the salts would need to be specified manually

- the salts would have to be selected using their numeric IDs not their names

- the salts would need to be determined manually

All of these limitations are on the long list of things to improve in IJC, but this will take some time.

The text array field is closer to what you need from the UI perspective, but again in its current form its not suitable as:

- you can't select from a common controlled list

- inserting new rows does not support text array fields well

- the salts would need to be determined manually

Finally, using a chemical terms field would be an good way of doing this, but the chemical terms functions that are needed are not yet available (but are planned).

So currently there are not any good suggestions for doing this inside IJC.

You could write an extension to do this, but I'm sure that this would be a lot of work, and would not really be justified.

If you really wanted to do this then your best bet would probably be to write a new action that provided its own UI the enter the structure, salts, and any additional information that was needed. The submit action of your UI would then use the IJC API to insert the new data.

But doing all of this would be a lot of work, and I wouldn't really advise this unless you especially wanted to do it as an exercise in writing IJC extensions.

Currently I think your best bet would be to process your data externally to IJC (e..g using a simple Java program that uses the Marvin API) so as to generate the extra field that you wanted with the salt information. The process could generate a SD file with that extra info in it and you could then import that file into IJC using the standard import process and a text array field for the salts. I think this would be much less work.