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