alkyne search gives two hits for one alkyne

User 870ab5b546

03-05-2012 15:30:09

I'm search for the number of alkynes or alkynyl anions in a compound, using a substructure search with these parameters:


JChemCompare.jsp: setStereoSearch = 0
JChemCompare.jsp: considerDoubleBondStereoMatching = false
JChemCompare.jsp: considerOddCumuleneStereoMatching = true
JChemCompare.jsp: considerAxialStereoMatching = true
JChemCompare.jsp: considerSynAntiStereoMatching = true
JChemCompare.jsp: stereoMatchingModel = 0
JChemCompare.jsp: chargeType = 1
JChemCompare.jsp: radicalType = 1
JChemCompare.jsp: isotopeType = 1
JChemCompare.jsp: valenceType = true
JChemCompare.jsp: bondVagueness = 0
JChemCompare.jsp: orderSensitive = false
JChemCompare.jsp: listAllMatches = true
JChemCompare.jsp: target = [#6]C#C[#6]
JChemCompare.jsp: query = [$(C#C),$(C#[CX1-])]
JChemCompare.jsp: searchResult = true

JChem 5.9 is returning two hits:


The atom indices of the matches are: 
     [1]
     [2]
Each number represents an atom in the target; its position indicates the atom in the query to which it corresponds.

Why does JChem return two hits, and why does each consist of only a single atom?  If my SMARTS string is incorrect, can you suggest a better one?  I know I can set charge matching to default, but I'd rather have the SMARTS string specify the charges that may match.

ChemAxon 60613ab728

07-05-2012 14:31:17

Hi,


Your query,


[$(C#C),$(C#[CX1-])]


searches a single sp carbon atom, since one [...] unit represents only one atom according to SMARTS notation, specified with the chemical envinronment, $(C#C),$(C#[CX1-]).


 


Please find two solutions below that may fit to your needs:


1/ A query,


[$(C#C),$(C#[CX1-])]#[$(C#C),$(C#[CX1-])]


would match two sp carbons connected by a triple bond.


 


2/ Or this can be a very simple solution:


C#C


where two carbon is connected by a triple bond


 


Both query will give the same results:


Match 1:[    2,   3 ]


 


Best Regards,


Miklos

User 870ab5b546

10-05-2012 16:25:28

Your solution does not work for me.  I am trying to find a definition that will capture both alkynes and alkynyl anions. The query [$(C#C),$(C#[CX1-])]#[$(C#C),$(C#[CX1-])] does not match to CC#[C-].

ChemAxon 60613ab728

11-05-2012 08:00:46

Hi,


this behaviour can be due to the following option


--charge:d/e/i                Charge matching mode: d-default, e-exact, i-ignore

If you set the charge matching mode from "exact" to "default", the following example would work for you:


$ jcsearch -t:s --allHits --charge:d -q '[#6;X2+0,X1-1]' 'CC#[C-]'
    Query has 2 matches:
        Match 1:[    2 ]
        Match 2:[    3 ]
CC#[C-]


I hope this helps.


Best Regards,


Miklos

User 870ab5b546

11-05-2012 14:06:03

Yes, I know, but I was trying to devise a way to do the match without changing to default charge matching.  All my other functional group definitions use exact charge; this one is the only exception.  A while back I suggested that there be a way of specifying "exactly charge 0 or -1" in SMARTS, but y'all didn't seem very enthusiastic about doing so.  Anyway, I want a SMARTS expression that means C#[C charged 0 or -1] so that I can use exact charge matching in the MolSearch.  

ChemAxon 60613ab728

14-05-2012 10:38:21

Hi,


The exact charge matching mode would only match if the charge is explicitly defined on the molecule.


Please find attached another solution using R group query.


Doing this with SMARTS, it can only be viable if the charge matching mode is default.


Best Regards,


Miklos