Structure search formats ?

User 4140faeba5

14-07-2005 05:24:43

Hi.


A couple of questions regarding structure queries against the default Jchem structure table.


If I do a query against the cd_smiles column, must the query structure be in smiles format or can it be in molfile format ?





Same question against the cd_structure column, can I use a regular molfile format ?





Regards,


Mikael

ChemAxon aa7c50abf8

14-07-2005 08:23:37

In general, both formats can be used for query structures no matter which column you run your search against. However there are two considerations potentially influencing your choice.





(1) You will want to select the format with which you can best express the query features you need.





(2) For queries against cd_smiles you will have to use VARCHAR2 operators and functions. Being limited to 4000 characters, this type might not accept large molfile queries .





Peter

ChemAxon aa7c50abf8

14-07-2005 09:58:50

Some additions to my previous posting:





If you want to use as queries molfiles larger than 4000 characters, you have to run your queries against the cd_structure column. Of course, if you want to use smiles queries and your smiles queries happen to be longer than 4000 characters, you have to use the cd_structure column for such smiles queries as well. This is, after all, not a question of format strictly speaking, but of length.





A word of caution:


In most cases, the column against which you run the query must be jc_idxtype-indexed. Obviously, if you have one jc_idxtype index on each of the cd_smiles column and the cd_structure column of the same table, two indexes must be maintained for inserts and updates which has serious performance implications. So I suggest to pick either the cd_smiles columns or the cd_structure column and index only one of them. If update/insert performance is not critical, of course, you do not have to concerned about having two jc_idxtype indexes on the same table.





Please, note that regardless of which column of the JChem table is indexed, you can use both jc_insert and jc_insertb (and jc_update and jc_updateb). Which of the two you use depends only on the length of the structure you need to manipulate. In fact, having a jc_idxtype index on the table is not a precondition for using these functions/procedures for inserts/updates.





Peter