You can subscribe to this list here.
| 2014 |
Jan
|
Feb
|
Mar
(6) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2015 |
Jan
(4) |
Feb
|
Mar
|
Apr
(34) |
May
(4) |
Jun
(1) |
Jul
(3) |
Aug
(9) |
Sep
|
Oct
|
Nov
(1) |
Dec
|
| 2016 |
Jan
|
Feb
(2) |
Mar
|
Apr
|
May
|
Jun
|
Jul
(2) |
Aug
(1) |
Sep
(4) |
Oct
|
Nov
(1) |
Dec
|
| 2017 |
Jan
|
Feb
(1) |
Mar
(2) |
Apr
|
May
|
Jun
(4) |
Jul
|
Aug
(1) |
Sep
|
Oct
|
Nov
|
Dec
|
| 2019 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: Yannick .D. <y.d...@gm...> - 2015-08-05 21:01:21
|
---------- Forwarded message ----------
From: Yannick .Djoumbou <y.d...@gm...>
Date: Fri, Jun 12, 2015 at 11:28 AM
Subject: SMIRKS MANAGER's Flags have to be set using different calls when
on Mac compared to Windows.
To: amb...@li...
Hi guys,
I have been using the AMBIT library for a project. My colleague and I and
are developing a JAVA-based application and are peer-programming on
Windows and MacOS X, respectively. We have not had any issue so far.
However, we realized that when trying to set the flags for the SMIRKS
Manager, we have to use a different from one platform to another.
After creating a new SMIRKS manager:
new SMIRKSManager(SilentChemObjectBuilder.getInstance());
On MacOSX, we have to use:
smrkMan.FlagFilterEquivalentMappings = true;
On Windows, we have to use:
smrkMan.setFlagProcessResultStructures(true);
This is kind of troublesome since we are peer programming and have to
commit/push/pull the code that lies on the same repository.
We are using the version 3.0.0 of AMBIT. How can we go around this?
Thank you for your consideration.
Regards,
Yannick
|
|
From: Yannick .D. <y.d...@gm...> - 2015-08-05 21:00:33
|
Thank you Nina, I still hope I will get an answer form Nick. Regards, Yannick On Mon, Aug 3, 2015 at 7:20 AM, Nina Jeliazkova <jel...@gm...> wrote: > Hello Yannick, > > Nick might answer later this week, but generally, SMARTS are unable to > express variable length chains, unless one do all the enumeration (which > might be prohibitively large). > > Best regards, > Nina > > > On 30 July 2015 at 00:39, Yannick .Djoumbou <y.d...@gm...> wrote: > >> Hello, >> >> I would like to express the smarts for a class of compounds with an >> aliphatic carbon chain of 13 to 21 carbon atoms, where the longest chain >> of carbon has between 13 and 21 carbons and is attached to a Nitrogen atom. >> Examples include: >> >> - CCCCCCCCCCCCCNH2 ; CCCCCC(C)C\C=C\C(C)CCCNH2 ; >> CCCCCCCCCCC\C=C\CCCCNH2 >> >> However, I do not want to include compounds containing a carbon chain of >> more than 21 carbon atoms. Which means that the following compounds should >> not be included: >> >> - CCCCCCCCCCCCCCCC\C=C\CCCCNH2; CC/C=C\CCCCCCCCCCCC\C=C\CCCCNH2 >> >> >> I first generated the patterns for each of the two types: >> >> 13 carbons attached to N: (A) => >> [#6]-,=[#6]-,=[#6]-,=[#6]-,=[#6]-,=[#6]-,=[#6]-,=[#6]-,=[#6]-,=[#6]-,=[#6]-,=[#6]-,=[#6]-[#7]([H])[H] >> >> 22 carbons attached to N: (B) => >> [#6]-,=[#6]-,=[#6]-,=[#6]-,=[#6]-,=[#6]-,=[#6]-,=[#6]-,=[#6]-,=[#6]-,=[#6]-,=[#6]-,=[#6]-,=[#6]-,=[#6]-,=[#6]-,=[#6]-,=[#6]-,=[#6]-,=[#6]-,=[#6]-,=[#6]-[#7]([H])[H] >> >> I then tried to combined those into 1 smarts [$(A)!$(B)] to mean that >> the compound of interest should match A but not match B. This does not >> work! >> >> What would be the best way of describing this in one SMARTS string? >> >> Thank you >> >> Regards, >> >> MrYan >> > > |
|
From: Yannick .D. <y.d...@gm...> - 2015-08-05 20:59:53
|
Hi all, I have an issue with the use of SMIRKS to transform molecules while taking into account the stereochemistry. I have a smarts that depicts a steroid analog carrying a 3-alpha hydroxyl group. I would like to transform molecules matching this constraint, but I realized that AMBIT is transforming any molecule that has the same skeleton depicted in the reactant smarts independent of the stereochemistry (i.e. 3-hydroxy, 3-alpha hydroxy, 3-beta hydroxy). Moreover, the 3D arrangement of other chemical bonds is not conserved in the product. I use the SMIRKS: [#8;H1X2:1]-[#6;H1X4;@ @:2]-1-[#6,#8,#7,#16:3]-,=[#6,#8,#7,#16:4]-,=[#6,#8,#7,#16:5]-,=2-,=[#6,#8,#7,#16;A;R2:6](-,=[#6,#8,#7,#16:7]-,=[#6,#8,#7,#16;A;R1:8]-,=[#6,#8,#7,#16;A;R2:9]-,=3-,=[#6,#8,#7,#16;A;R2:10]-,=4-,=[#6,#8,#7,#16;A;R1:11]-,=[#6,#8,#7,#16:12]-,=[#6,#8,#7,#16:13]-,=[#6,#8,#7,#16:14]-,=4-,=[#6,#8,#7,#16:15]-,=[#6,#8,#7,#16;A;R1:16]-,=[#6,#8,#7,#16:17]-,=2-,=3)-,=[#6,#8,#7,#16:18]-1>>[O;X1:1]=[#6;X3;@ @:2]-1-[#6,#8,#7,#16:3]-,=[#6,#8,#7,#16:4]-,=[#6,#8,#7,#16:5]-,=2-,=[#6,#8,#7,#16;A;R2:6](-,=[#6,#8,#7,#16:7]-,=[#6,#8,#7,#16;A;R1:8]-,=[#6,#8,#7,#16;A;R2:9]-,=3-,=[#6,#8,#7,#16;A;R2:10]-,=4-,=[#6,#8,#7,#16;A;R1:11]-,=[#6,#8,#7,#16:12]-,=[#6,#8,#7,#16:13]-,=[#6,#8,#7,#16:14]-,=4-,=[#6,#8,#7,#16:15]-,=[#6,#8,#7,#16;A;R1:16]-,=[#6,#8,#7,#16:17]-,=2-,=3)-,=[#6,#8,#7,#16:18]-1 And the function: applyTransformationWithSingleCopyForEachPos This is the smiles with the 3-alpha-hydroxyl group, the 3-beta-hydroxy group, and a generic 3-hydroxyl group, respectively: A: CO[C@H]1[C@@H](O)C[C@H]2[C@@H]3CC=C4C[C@H](O)CC[C@]4(C)[C@H]3CC[C@]12C B: CO[C@H]1[C@@H](O)C[C@H]2[C@@H]3CC=C4C[C@@H](O)CC[C@]4(C)[C@H]3CC[C@ ]12C C: CO[C@H]1[C@@H](O)C[C@H]2[C@@H]3CC=C4CC(O)CC[C@]4(C)[C@H]3CC[C@]12C 1) Is it possible get AMBIT to transform only the 3-alpha-hydroxyl bearing compounds based solely on the SMIRKS? If yes, how? 2) I used a two step process where I first used CDK's SMARTSQueryTool to do substructure matching and then transformed the molecules that had a match. 3) One issue I had when using SMIRKS with or without prefiltering was that the resulting structure did not contain any stereochemistry information. The information stored in the input was lost throughout the process. How do I avoid this? Looking forward to hearing from you. Thank you for your consideration. Regards, Yannick |
|
From: Nina J. <jel...@gm...> - 2015-08-03 13:20:29
|
Hello Yannick, Nick might answer later this week, but generally, SMARTS are unable to express variable length chains, unless one do all the enumeration (which might be prohibitively large). Best regards, Nina On 30 July 2015 at 00:39, Yannick .Djoumbou <y.d...@gm...> wrote: > Hello, > > I would like to express the smarts for a class of compounds with an > aliphatic carbon chain of 13 to 21 carbon atoms, where the longest chain > of carbon has between 13 and 21 carbons and is attached to a Nitrogen atom. > Examples include: > > - CCCCCCCCCCCCCNH2 ; CCCCCC(C)C\C=C\C(C)CCCNH2 ; > CCCCCCCCCCC\C=C\CCCCNH2 > > However, I do not want to include compounds containing a carbon chain of > more than 21 carbon atoms. Which means that the following compounds should > not be included: > > - CCCCCCCCCCCCCCCC\C=C\CCCCNH2; CC/C=C\CCCCCCCCCCCC\C=C\CCCCNH2 > > > I first generated the patterns for each of the two types: > > 13 carbons attached to N: (A) => > [#6]-,=[#6]-,=[#6]-,=[#6]-,=[#6]-,=[#6]-,=[#6]-,=[#6]-,=[#6]-,=[#6]-,=[#6]-,=[#6]-,=[#6]-[#7]([H])[H] > > 22 carbons attached to N: (B) => > [#6]-,=[#6]-,=[#6]-,=[#6]-,=[#6]-,=[#6]-,=[#6]-,=[#6]-,=[#6]-,=[#6]-,=[#6]-,=[#6]-,=[#6]-,=[#6]-,=[#6]-,=[#6]-,=[#6]-,=[#6]-,=[#6]-,=[#6]-,=[#6]-,=[#6]-[#7]([H])[H] > > I then tried to combined those into 1 smarts [$(A)!$(B)] to mean that the > compound of interest should match A but not match B. This does not work! > > What would be the best way of describing this in one SMARTS string? > > Thank you > > Regards, > > MrYan > |
|
From: Yannick .D. <y.d...@gm...> - 2015-07-29 21:40:15
|
Hello,
I would like to express the smarts for a class of compounds with an
aliphatic carbon chain of 13 to 21 carbon atoms, where the longest chain
of carbon has between 13 and 21 carbons and is attached to a Nitrogen atom.
Examples include:
- CCCCCCCCCCCCCNH2 ; CCCCCC(C)C\C=C\C(C)CCCNH2 ;
CCCCCCCCCCC\C=C\CCCCNH2
However, I do not want to include compounds containing a carbon chain of
more than 21 carbon atoms. Which means that the following compounds should
not be included:
- CCCCCCCCCCCCCCCC\C=C\CCCCNH2; CC/C=C\CCCCCCCCCCCC\C=C\CCCCNH2
I first generated the patterns for each of the two types:
13 carbons attached to N: (A) =>
[#6]-,=[#6]-,=[#6]-,=[#6]-,=[#6]-,=[#6]-,=[#6]-,=[#6]-,=[#6]-,=[#6]-,=[#6]-,=[#6]-,=[#6]-[#7]([H])[H]
22 carbons attached to N: (B) =>
[#6]-,=[#6]-,=[#6]-,=[#6]-,=[#6]-,=[#6]-,=[#6]-,=[#6]-,=[#6]-,=[#6]-,=[#6]-,=[#6]-,=[#6]-,=[#6]-,=[#6]-,=[#6]-,=[#6]-,=[#6]-,=[#6]-,=[#6]-,=[#6]-,=[#6]-[#7]([H])[H]
I then tried to combined those into 1 smarts [$(A)!$(B)] to mean that the
compound of interest should match A but not match B. This does not work!
What would be the best way of describing this in one SMARTS string?
Thank you
Regards,
MrYan
|
|
From: Yixin A. <aix...@12...> - 2015-07-23 02:31:49
|
hello, everyone! i am a student and i use the ambit2. when i import a database file (sdf) including Chinese characters, the web often garbled. please help me! thank you very much! |
|
From: Yixin A. <aix...@12...> - 2015-07-15 09:16:46
|
hello , i have installed ambit 2.7.4.. i can open the web by http://localhost:8080/ambit2/. However, i don't know how to log in it . when i click the log in on the toprightcorner of the web page, it just give a message as follow. Please configure AMBIT web application to enable log in. please tell me what should i do and how do i configure AMBIT web application to enable log in. Thank you very much! |
|
From: Yannick .D. <y.d...@gm...> - 2015-06-12 17:28:53
|
Hi guys,
I have been using the AMBIT library for a project. My colleague and I and
are developing a JAVA-based application and are peer-programming on
Windows and MacOS X, respectively. We have not had any issue so far.
However, we realized that when trying to set the flags for the SMIRKS
Manager, we have to use a different from one platform to another.
After creating a new SMIRKS manager:
new SMIRKSManager(SilentChemObjectBuilder.getInstance());
On MacOSX, we have to use:
smrkMan.FlagFilterEquivalentMappings = true;
On Windows, we have to use:
smrkMan.setFlagProcessResultStructures(true);
This is kind of troublesome since we are peer programming and have to
commit/push/pull the code that lies on the same repository.
We are using the version 3.0.0 of AMBIT. How can we go around this?
Thank you for your consideration.
Regards,
Yannick
|
|
From: Nikolay K. <ni...@un...> - 2015-05-27 13:32:47
|
Hi Yannick
I did some tests with your code and the same problem appears on ambit
version 2 as well.
Our code is a rapper of the CDK functionality and the exception is
throws from the CDK class so at this moment it is not clear to me what
is problem exactly.
Anyway, I would like to ask you: what is you task, what problem do you
want to solve with this code?
It may be possible to offer you an alternative solution based on ambit
functionality
Best regards
Nick
On 5/25/15 2:54 AM, Yannick .Djoumbou wrote:
> Hi all,
>
> I have tried to use the SmartsPatternCDK objects to return all
> occurences/hits of a SMARTS pattern in a molecule.I program in java
> and a sample of the code is below (with the ambit version 3.0.0 -
> SNAPSHOT). For some reason, I keep getting NullPointerException. I
> dhave use almost the same code with JRuby (with the ambit 2version
> .5.4) and did not get any error. Could you why I get errors here and
> how to fix it. I used a really simplistic approach and should not be
> getting this errors. Could you try this with the version 3.0.0 and see
> if you can reproduce the eror?
>
> -------
> Exception in thread "main" java.lang.NullPointerException
> at
> org.openscience.cdk.smiles.smarts.SMARTSQueryTool.getUniqueMatchingAtoms(SMARTSQueryTool.java:418)
> at
> ambit2.smarts.query.SmartsPatternCDK.getUniqueMatchingAtoms(SmartsPatternCDK.java:174)
>
> --------
>
>
> IChemObjectBuilder builder = SilentChemObjectBuilder.getInstance();
> SmilesParser sp = new SmilesParser(builder);
>
> public List<List<Integer>> find_all_occurences(String
> smarts_string) throws SMARTSException{
> List<List<Integer>> matches = new ArrayList<List<Integer>>();
> SmartsPatternCDK smarts_pattern = new
> SmartsPatternCDK(smarts_string);
> matches = smarts_pattern.getUniqueMatchingAtoms();
>
> return matches;
> }
>
> try {
> IAtomContainer mol =
> sp.parseSmiles("[H]Oc1c([H])c([H])c([H])c([H])c1NC");
> try {
> List<List<Integer>> matches = find_all_occurences("[c;a][H]");
> System.out.println("matches\n"+matches);
> } catch (SMARTSException e) {
> // TODO Auto-generated catch block
> e.printStackTrace();
> }
>
>
> } catch (InvalidSmilesException e) {
> // TODO Auto-generated catch block
> e.printStackTrace();
> }
|
|
From: Nina J. <jel...@gm...> - 2015-05-27 11:20:49
|
And just noticed that you don't do any atom typing after parsing the
SMILES, this is most probably the reason for NPE. You have to do atom
typing at least, please refer to the related CDK 1.5.x guides.
Regards,
Nina
On 27 May 2015 at 14:18, Nina Jeliazkova <jel...@gm...> wrote:
> Hi Yannick,
>
> Haven't tested your code yet, but please have in mind as SmartsPatternCDK is
> a wratpper around CDK SMARTS matcher and the CDK SMARTS changed quite
> significantly in CDK 1.5.x , this class might not be in good shape yet.
>
> As you are already using Ambit SMARTS I would advice to
> use SmartsPatternAmbit instead.
>
> Best regards,
> Nina
>
> On 25 May 2015 at 02:54, Yannick .Djoumbou <y.d...@gm...> wrote:
>
>> Hi all,
>>
>> I have tried to use the SmartsPatternCDK objects to return all
>> occurences/hits of a SMARTS pattern in a molecule.I program in java and a
>> sample of the code is below (with the ambit version 3.0.0 - SNAPSHOT). For
>> some reason, I keep getting NullPointerException. I dhave use almost the
>> same code with JRuby (with the ambit 2version .5.4) and did not get any
>> error. Could you why I get errors here and how to fix it. I used a really
>> simplistic approach and should not be getting this errors. Could you try
>> this with the version 3.0.0 and see if you can reproduce the eror?
>>
>> -------
>> Exception in thread "main" java.lang.NullPointerException
>> at
>> org.openscience.cdk.smiles.smarts.SMARTSQueryTool.getUniqueMatchingAtoms(SMARTSQueryTool.java:418)
>> at
>> ambit2.smarts.query.SmartsPatternCDK.getUniqueMatchingAtoms(SmartsPatternCDK.java:174)
>>
>> --------
>>
>>
>> IChemObjectBuilder builder = SilentChemObjectBuilder.getInstance();
>> SmilesParser sp = new SmilesParser(builder);
>>
>> public List<List<Integer>> find_all_occurences(String smarts_string)
>> throws SMARTSException{
>> List<List<Integer>> matches = new ArrayList<List<Integer>>();
>> SmartsPatternCDK smarts_pattern = new
>> SmartsPatternCDK(smarts_string);
>> matches = smarts_pattern.getUniqueMatchingAtoms();
>>
>> return matches;
>> }
>>
>> try {
>> IAtomContainer mol =
>> sp.parseSmiles("[H]Oc1c([H])c([H])c([H])c([H])c1NC");
>> try {
>> List<List<Integer>> matches = find_all_occurences("[c;a][H]");
>> System.out.println("matches\n"+matches);
>> } catch (SMARTSException e) {
>> // TODO Auto-generated catch block
>> e.printStackTrace();
>> }
>>
>>
>> } catch (InvalidSmilesException e) {
>> // TODO Auto-generated catch block
>> e.printStackTrace();
>> }
>>
>
>
|
|
From: Nina J. <jel...@gm...> - 2015-05-27 11:18:23
|
Hi Yannick,
Haven't tested your code yet, but please have in mind as SmartsPatternCDK is
a wratpper around CDK SMARTS matcher and the CDK SMARTS changed quite
significantly in CDK 1.5.x , this class might not be in good shape yet.
As you are already using Ambit SMARTS I would advice to
use SmartsPatternAmbit instead.
Best regards,
Nina
On 25 May 2015 at 02:54, Yannick .Djoumbou <y.d...@gm...> wrote:
> Hi all,
>
> I have tried to use the SmartsPatternCDK objects to return all
> occurences/hits of a SMARTS pattern in a molecule.I program in java and a
> sample of the code is below (with the ambit version 3.0.0 - SNAPSHOT). For
> some reason, I keep getting NullPointerException. I dhave use almost the
> same code with JRuby (with the ambit 2version .5.4) and did not get any
> error. Could you why I get errors here and how to fix it. I used a really
> simplistic approach and should not be getting this errors. Could you try
> this with the version 3.0.0 and see if you can reproduce the eror?
>
> -------
> Exception in thread "main" java.lang.NullPointerException
> at
> org.openscience.cdk.smiles.smarts.SMARTSQueryTool.getUniqueMatchingAtoms(SMARTSQueryTool.java:418)
> at
> ambit2.smarts.query.SmartsPatternCDK.getUniqueMatchingAtoms(SmartsPatternCDK.java:174)
>
> --------
>
>
> IChemObjectBuilder builder = SilentChemObjectBuilder.getInstance();
> SmilesParser sp = new SmilesParser(builder);
>
> public List<List<Integer>> find_all_occurences(String smarts_string)
> throws SMARTSException{
> List<List<Integer>> matches = new ArrayList<List<Integer>>();
> SmartsPatternCDK smarts_pattern = new
> SmartsPatternCDK(smarts_string);
> matches = smarts_pattern.getUniqueMatchingAtoms();
>
> return matches;
> }
>
> try {
> IAtomContainer mol =
> sp.parseSmiles("[H]Oc1c([H])c([H])c([H])c([H])c1NC");
> try {
> List<List<Integer>> matches = find_all_occurences("[c;a][H]");
> System.out.println("matches\n"+matches);
> } catch (SMARTSException e) {
> // TODO Auto-generated catch block
> e.printStackTrace();
> }
>
>
> } catch (InvalidSmilesException e) {
> // TODO Auto-generated catch block
> e.printStackTrace();
> }
>
|
|
From: Yannick .D. <y.d...@gm...> - 2015-05-24 23:54:09
|
Hi all,
I have tried to use the SmartsPatternCDK objects to return all
occurences/hits of a SMARTS pattern in a molecule.I program in java and a
sample of the code is below (with the ambit version 3.0.0 - SNAPSHOT). For
some reason, I keep getting NullPointerException. I dhave use almost the
same code with JRuby (with the ambit 2version .5.4) and did not get any
error. Could you why I get errors here and how to fix it. I used a really
simplistic approach and should not be getting this errors. Could you try
this with the version 3.0.0 and see if you can reproduce the eror?
-------
Exception in thread "main" java.lang.NullPointerException
at
org.openscience.cdk.smiles.smarts.SMARTSQueryTool.getUniqueMatchingAtoms(SMARTSQueryTool.java:418)
at
ambit2.smarts.query.SmartsPatternCDK.getUniqueMatchingAtoms(SmartsPatternCDK.java:174)
--------
IChemObjectBuilder builder = SilentChemObjectBuilder.getInstance();
SmilesParser sp = new SmilesParser(builder);
public List<List<Integer>> find_all_occurences(String smarts_string)
throws SMARTSException{
List<List<Integer>> matches = new ArrayList<List<Integer>>();
SmartsPatternCDK smarts_pattern = new
SmartsPatternCDK(smarts_string);
matches = smarts_pattern.getUniqueMatchingAtoms();
return matches;
}
try {
IAtomContainer mol =
sp.parseSmiles("[H]Oc1c([H])c([H])c([H])c([H])c1NC");
try {
List<List<Integer>> matches = find_all_occurences("[c;a][H]");
System.out.println("matches\n"+matches);
} catch (SMARTSException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (InvalidSmilesException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
|
|
From: Nikolay K. <ni...@un...> - 2015-04-30 10:11:30
|
Hi Yannick On 2015-04-29 22:52, Yannick .Djoumbou wrote: > The SMIRKS Reaction I used was [C;X4:1][H:2]>>[C;X4:1][O][H:2] > > Regards, > > Yannick > > On Wed, Apr 29, 2015 at 1:51 PM, Yannick .Djoumbou > <y.d...@gm...> wrote: > >> Hi Nick, >> >> Thanks for the reply. So, there is no method to directly applying a >> transform at one atom A1. If the smirks contains only one atom within the reactants part, then the reaction is applied only for one atom e.g. [C:1]>>[C:1]=O >> Let's assume the left part of the smirks >> is matched at more than one region R1 and R2 of the molecule. Smarts >> matching could tell me ther are two matches: [A1,A2,A3], and [A4, >> A5, A6]. If I only want the result at for the first match, I should >> be able to submit the list [A1,A2,A3]. If you would like to apply the reaction only for a particular group of atoms you can use applyTransformation(IAtomContainer target, IAcceptable selection, SMIRKSReaction reaction) You have in this function additional input parameter 'selection' which is an implementation of the interface IAcceptable which defines the selected atoms. You have to provide such an implementation of IAcceptable. >> Is there a way to apply >> verify the other elements such as topology, etc... and generate the >> product based on transforming the molecule at the site [A1,A2,A3]. >> The topology check and all other checks are done by the SMIRKSManager internally: It performs substructure searching and finds all corrects locations (mappings) which correspond to the target SMIRKS string then you have various strategies concerning these found locations e.g. handling of overlapping, selected locations as mentioned above etc. If you want to directly tell at which location to apply reaction via calling applyTransformAtLocation(IAtomContainer target, List<IAtom> rMap, SMIRKSReaction reaction), then the rMap must be correct and you have to do it youself outside SMIRKSManager. But generally it is not needed since all this is done by the SMIRKSManager. Best regards Nick >> Regards, >> >> Yannick >> >> On Wed, Apr 29, 2015 at 12:09 AM, Nikolay Kochev >> <ni...@un...> wrote: >> >> Hi Yannick >> >> On 4/28/15 10:01 PM, Yannick .Djoumbou wrote: >> >> Hi all, >> >> I am using the function applyTransformAtLocation to transform >> molecules at a specific location. >> >> IAtomContainer ac = sp.parseSmiles(CC1CCC(CN)OC1); >> Vector<IAtom> va = new Vector<IAtom>(); >> va.add(ac.getAtom(1)); >> System.out.println(va); >> smrkMan.applyTransformAtLocation(ac,va,reaction); >> >> Typically function applyTransformAtLocation() is not expected to be >> called directly. Mainly it is used internally by SMIRKSManager. >> >> In order to use it correctly you must sent to it exact information >> for the atoms which are to be transformed. Internally this is done >> by the SMARTS mapping which defines all locations correctly. >> >> Particular location is defined not by one atom, but by all "mapped" >> atoms from the SMARTS searching. >> All reactant atoms and their topology (the left part of the smirks) >> must be represented correctly within the location description >> >> In the case above, your location (Vector<IAtom> va) is described by >> only one atom and I suppose that the smirks contains more atoms so >> that is the error: Array index out of range: 1. >> But even the atom count is made ok, then the topology, atoms types >> etc may be done not ok. That is why you have no reason to use this >> function directly except you know what are you doing. >> >> I hope this helps >> >> Best regards >> Nick >> >> This results in an error: >> >> [Atom(1002243760, S:C, H:0, AtomType(1002243760, N:C.sp3, >> MBO:SINGLE, BOS:4.0, FC:0, H:SP3, NC:4, EV:4, Isotope(1002243760, >> Element(1002243760, S:C, AN:6))))] >> >> Exception in thread "main" >> java.lang.ArrayIndexOutOfBoundsException: Array index out of range: >> 1 >> at java.util.Vector.get(Vector.java:744) >> at >> > ambit2.smarts.SMIRKSManager.applyTransformAtLocation(SMIRKSManager.java:596) >> >> Regards, >> >> Yannick |
|
From: Yannick .D. <y.d...@gm...> - 2015-04-29 19:52:42
|
The SMIRKS Reaction I used was [C;X4:1][H:2]>>[C;X4:1][O][H:2] Regards, Yannick On Wed, Apr 29, 2015 at 1:51 PM, Yannick .Djoumbou <y.d...@gm...> wrote: > Hi Nick, > > Thanks for the reply. So, there is no method to directly applying a > transform at one atom A1. Let's assume the left part of the smirks is > matched at more than one region R1 and R2 of the molecule. Smarts matching > could tell me ther are two matches: [A1,A2,A3], and [A4, A5, A6]. If I > only want the result at for the first match, I should be able to submit the > list [A1,A2,A3]. Is there a way to apply verify the other elements such as > topology, etc... and generate the product based on transforming the > molecule at the site [A1,A2,A3]. > > Regards, > > Yannick > > > On Wed, Apr 29, 2015 at 12:09 AM, Nikolay Kochev <ni...@un...> > wrote: > >> Hi Yannick >> >> >> >> On 4/28/15 10:01 PM, Yannick .Djoumbou wrote: >> >> Hi all, >> >> I am using the function applyTransformAtLocation to transform molecules >> at a specific location. >> >> IAtomContainer ac = sp.parseSmiles(CC1CCC(CN)OC1); >> Vector<IAtom> va = new Vector<IAtom>(); >> va.add(ac.getAtom(1)); >> System.out.println(va); >> smrkMan.applyTransformAtLocation(ac,va,reaction); >> >> >> Typically function applyTransformAtLocation() is not expected to be >> called directly. Mainly it is used internally by SMIRKSManager. >> >> In order to use it correctly you must sent to it exact information for >> the atoms which are to be transformed. Internally this is done by the >> SMARTS mapping which defines all locations correctly. >> >> Particular location is defined not by one atom, but by all "mapped" atoms >> from the SMARTS searching. >> All reactant atoms and their topology (the left part of the smirks) must >> be represented correctly within the location description >> >> In the case above, your location (Vector<IAtom> va) is described by only >> one atom and I suppose that the smirks contains more atoms so that is the >> error: Array index out of range: 1. >> But even the atom count is made ok, then the topology, atoms types etc >> may be done not ok. That is why you have no reason to use this function >> directly except you know what are you doing. >> >> I hope this helps >> >> Best regards >> Nick >> >> >> >> >> >> This results in an error: >> >> [Atom(1002243760, S:C, H:0, AtomType(1002243760, N:C.sp3, MBO:SINGLE, >> BOS:4.0, FC:0, H:SP3, NC:4, EV:4, Isotope(1002243760, Element(1002243760, >> S:C, AN:6))))] >> >> Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: >> Array index out of range: 1 >> at java.util.Vector.get(Vector.java:744) >> at >> ambit2.smarts.SMIRKSManager.applyTransformAtLocation(SMIRKSManager.java:596) >> >> >> >> Regards, >> >> Yannick >> >> >> > |
|
From: Yannick .D. <y.d...@gm...> - 2015-04-29 19:51:08
|
Hi Nick, Thanks for the reply. So, there is no method to directly applying a transform at one atom A1. Let's assume the left part of the smirks is matched at more than one region R1 and R2 of the molecule. Smarts matching could tell me ther are two matches: [A1,A2,A3], and [A4, A5, A6]. If I only want the result at for the first match, I should be able to submit the list [A1,A2,A3]. Is there a way to apply verify the other elements such as topology, etc... and generate the product based on transforming the molecule at the site [A1,A2,A3]. Regards, Yannick On Wed, Apr 29, 2015 at 12:09 AM, Nikolay Kochev <ni...@un...> wrote: > Hi Yannick > > > > On 4/28/15 10:01 PM, Yannick .Djoumbou wrote: > > Hi all, > > I am using the function applyTransformAtLocation to transform molecules > at a specific location. > > IAtomContainer ac = sp.parseSmiles(CC1CCC(CN)OC1); > Vector<IAtom> va = new Vector<IAtom>(); > va.add(ac.getAtom(1)); > System.out.println(va); > smrkMan.applyTransformAtLocation(ac,va,reaction); > > > Typically function applyTransformAtLocation() is not expected to be > called directly. Mainly it is used internally by SMIRKSManager. > > In order to use it correctly you must sent to it exact information for the > atoms which are to be transformed. Internally this is done by the SMARTS > mapping which defines all locations correctly. > > Particular location is defined not by one atom, but by all "mapped" atoms > from the SMARTS searching. > All reactant atoms and their topology (the left part of the smirks) must > be represented correctly within the location description > > In the case above, your location (Vector<IAtom> va) is described by only > one atom and I suppose that the smirks contains more atoms so that is the > error: Array index out of range: 1. > But even the atom count is made ok, then the topology, atoms types etc may > be done not ok. That is why you have no reason to use this function > directly except you know what are you doing. > > I hope this helps > > Best regards > Nick > > > > > > This results in an error: > > [Atom(1002243760, S:C, H:0, AtomType(1002243760, N:C.sp3, MBO:SINGLE, > BOS:4.0, FC:0, H:SP3, NC:4, EV:4, Isotope(1002243760, Element(1002243760, > S:C, AN:6))))] > > Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Array > index out of range: 1 > at java.util.Vector.get(Vector.java:744) > at > ambit2.smarts.SMIRKSManager.applyTransformAtLocation(SMIRKSManager.java:596) > > > > Regards, > > Yannick > > > |
|
From: Nikolay K. <ni...@un...> - 2015-04-29 06:04:53
|
Hi Yannick On 4/28/15 10:01 PM, Yannick .Djoumbou wrote: > Hi all, > > I am using the function applyTransformAtLocation to transform > molecules at a specific location. > > IAtomContainer ac = sp.parseSmiles(CC1CCC(CN)OC1); > Vector<IAtom> va = new Vector<IAtom>(); > va.add(ac.getAtom(1)); > System.out.println(va); > smrkMan.applyTransformAtLocation(ac,va,reaction); > > Typically function applyTransformAtLocation() is not expected to be called directly. Mainly it is used internally by SMIRKSManager. In order to use it correctly you must sent to it exact information for the atoms which are to be transformed. Internally this is done by the SMARTS mapping which defines all locations correctly. Particular location is defined not by one atom, but by all "mapped" atoms from the SMARTS searching. All reactant atoms and their topology (the left part of the smirks) must be represented correctly within the location description In the case above, your location (Vector<IAtom> va) is described by only one atom and I suppose that the smirks contains more atoms so that is the error: Array index out of range: 1. But even the atom count is made ok, then the topology, atoms types etc may be done not ok. That is why you have no reason to use this function directly except you know what are you doing. I hope this helps Best regards Nick > > > > This results in an error: > > [Atom(1002243760, S:C, H:0, AtomType(1002243760, N:C.sp3, MBO:SINGLE, > BOS:4.0, FC:0, H:SP3, NC:4, EV:4, Isotope(1002243760, > Element(1002243760, S:C, AN:6))))] > > Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: > Array index out of range: 1 > at java.util.Vector.get(Vector.java:744) > at > ambit2.smarts.SMIRKSManager.applyTransformAtLocation(SMIRKSManager.java:596) > > > > Regards, > > Yannick |
|
From: Nina J. <jel...@gm...> - 2015-04-29 03:58:00
|
Hi Yannick, Not an answer, but I think we've replaced Vector with List a while ago. Which ambit version do you get this error with? Also, in order to reproduce, please tell the reaction SMIRKS. Regards, Nina On 28 April 2015 at 22:01, Yannick .Djoumbou <y.d...@gm...> wrote: > Hi all, > > I am using the function applyTransformAtLocation to transform molecules at > a specific location. > > IAtomContainer ac = sp.parseSmiles(CC1CCC(CN)OC1); > Vector<IAtom> va = new Vector<IAtom>(); > va.add(ac.getAtom(1)); > System.out.println(va); > smrkMan.applyTransformAtLocation(ac,va,reaction); > > > > > > This results in an error: > > [Atom(1002243760, S:C, H:0, AtomType(1002243760, N:C.sp3, MBO:SINGLE, > BOS:4.0, FC:0, H:SP3, NC:4, EV:4, Isotope(1002243760, Element(1002243760, > S:C, AN:6))))] > > Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Array > index out of range: 1 > at java.util.Vector.get(Vector.java:744) > at > ambit2.smarts.SMIRKSManager.applyTransformAtLocation(SMIRKSManager.java:596) > > > > Regards, > > Yannick > |
|
From: Yannick .D. <y.d...@gm...> - 2015-04-28 19:01:51
|
Hi all,
I am using the function applyTransformAtLocation to transform molecules at
a specific location.
IAtomContainer ac = sp.parseSmiles(CC1CCC(CN)OC1);
Vector<IAtom> va = new Vector<IAtom>();
va.add(ac.getAtom(1));
System.out.println(va);
smrkMan.applyTransformAtLocation(ac,va,reaction);
This results in an error:
[Atom(1002243760, S:C, H:0, AtomType(1002243760, N:C.sp3, MBO:SINGLE,
BOS:4.0, FC:0, H:SP3, NC:4, EV:4, Isotope(1002243760, Element(1002243760,
S:C, AN:6))))]
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Array
index out of range: 1
at java.util.Vector.get(Vector.java:744)
at
ambit2.smarts.SMIRKSManager.applyTransformAtLocation(SMIRKSManager.java:596)
Regards,
Yannick
|
|
From: Yannick .D. <y.d...@gm...> - 2015-04-28 18:58:05
|
Thanks Nick for the thorough explanation,
My comments below.
I will try to implement it, and then come back to you.
Regards,
Yannick
On Mon, Apr 27, 2015 at 11:20 PM, Nikolay Kochev <ni...@un...>
wrote:
> Hi Yannick
>
> On 4/27/15 7:35 PM, Yannick .Djoumbou wrote:
>
> Hi Nick,
>
> Thanks for the quick reply. I will follow your advice.
> I have followed the example that Nina provided on GitHub, which some
> adjustments. I found that I could not apply transformations targeting atoms
> in an aromatic ring, unless I aromatize the molecule. However, I was told
> that AMBIT works with the kekule form. I ended up trying to aromatize every
> single molecule (not matter whether it was an aromatic or aliphatic one).
> This had the effect that I could apply transformtion both on aliphatic and
> aromatic molecules. This is the only way I found to go around this issue. I
> am not sure though if kekulizing and aromatizing a molecule makes much
> sense.
>
>
> The aromaticity makes a lot of sense because especially for reaction
> transformations.
> When one applies SMIRKS reactions must know in detail what happens to the
> molecule, how it is handle within CDK package.
>
> Technically the SMIRKS transformations can work both for aromatic and
> kekulized structures but working with aromatic structures brings a lot of
> side effects and for each reaction one must chemically reason whether the
> obtained molecule is correct and eventually apply specific CDK based post
> processing of the reaction products.
> The side effects are due to the facts that the reacitons mainly change the
> bond orders and when the molecule is represented as aromatic form some bond
> orders may not be defined explicitly.
>
>
> That is way we recommend following approach:
> (1) Convert structure to Kekule form (aromaticity must be present detected
> before that)
> (2) Apply reaction
> (3) Detect aromaticity again
> (4) Eventually if one interested convert to aromatic form (KEKULE -->
> aromatic)
>
> We have a nice feature in the SMIRKS manager called
> FlagProcessResultStructures. By defaults it is false. I recommend you that
> you set it to true.
> It will configure the resulting molecules and detect aromaticity for the
> product.
> Then if interested step (4) may be done
>
>
>
> For every bond in the molecule, I appy this
>
> for (IBond bond : molecule.bonds()){
> if (bond.getFlag(CDKConstants.SINGLE_OR_DOUBLE)){
> bond.setFlag(CDKConstants.ISAROMATIC, true);
> bond.getAtom(0).setFlag(CDKConstants.ISAROMATIC, true);
> bond.getAtom(1).setFlag(CDKConstants.ISAROMATIC, true);
> }
> }
> Then, I kekulize the molecule. I can apply transformations targeting
> atoms in the aliphatic parts of the molecule only. But when I aromatize, I
> can apply any transformation to the molecule (as long as the targeted
> pattern is present).
>
>
> When reaction is applied it is good that the molecule is in Kekule form
> but it has the aromatic flags set as well. If it is the case, then the
> function processProduct is called, which will clear aromaticity, since
> FlagClearAromaticityBeforeResultProcess is set to true by default. So, how
> would this work?
>
>
> Also bear in mind that:
> [C] is aliphatic cartbon, [c] is aromatic carbon and [#6] is any carbon.
> So this [#7:1][C:2]([H]) would be applied only for aliphatic carbon (or
> if the molecule is not configured well for C atom which do not have
> aromatic flags set)
>
>
> Nick
>
>
> Regards,
>
> Yannick
>
>
>
> On Mon, Apr 27, 2015 at 6:17 AM, Nikolay Kochev <ni...@un...>
> wrote:
>
>> Hello Yannick
>>
>>
>> On 2015-04-27 00:55, Yannick .Djoumbou wrote:
>>
>>> Hello Nina,
>>>
>>> Thanks a lot for the help. This is great stuff. I still have an issue
>>> because, I cannot generate aromatic transformation (e.g.: aromatic
>>> hydroxylation) when the molecule is just kekulized. I have to apply
>>> the aromaticity.apply(molecule) if I am targeting aromatic atoms.
>>> Moreover, in some cases, e.g.: N-dealkylation, one ends up often with
>>> more than one moiety. For example, applying:
>>> - the smirks: [#7:1][C:2]([H])>>[#7:1][H].[C:2]=[O]
>>> - to the molecule "OCCNC1=CC=CC=C1"
>>> - using the function applyTransformationWithSingleCopyForEachPos
>>>
>>> will return the following AtomContainer: C=1(C=CC=CC1)N.C(CO)=O.
>>>
>>>
>> Yes that is exactly the expected result. You have two fragments
>> (molecules) within the result atom container.
>>
>>
>> These are actually two different molecles representing two different
>>> products. Is there a way to change this so that ambit returns each
>>> moiety as an actual molecule?
>>>
>>
>> If you need each molecule as a different IAtomContanier object you can
>> use a code like this
>>
>>
>> IAtomContainerSet ms = ConnectivityChecker.partitionIntoMolecules(mol);
>>
>> where the mol is the result from the reaction.
>>
>> The you iterate ms (container/molecule set)
>>
>>
>> Best regards
>> Nick
>>
>>
>>
>> So far, one could go around by applying
>>
>>> two smirks, each of which has one of the two products smarts:
>>> [#7:1][C:2]([H])>>[#7:1][H]
>>> [#7:1][C:2]([H])>>[C:2]=[O]
>>>
>>>
>>
>>
>>
>> However, if would be awesome if the resulting AtomContainerSet from
>>> applyTransformationWithSingleCopyForEachPos would actually contain
>>> each moiety as a separate AtomContainer.
>>>
>>> Thanks a lot for the great assistance.
>>>
>>> Regards,
>>>
>>> Yannick
>>>
>>> On Sun, Apr 26, 2015 at 1:16 AM, Nina Jeliazkova
>>> <jel...@gm...> wrote:
>>>
>>> Yannick, All,
>>>>
>>>> I've added a small Maven project demonstrating how to use the SMIRKS
>>>> code and configure the dependencies.
>>>>
>>>>
>>>>
>>> https://github.com/ideaconsult/examples-ambit/tree/master/smirks-example
>>>
>>>> [1]
>>>>
>>>> Best regards,
>>>> Nina
>>>>
>>>
>>>
>>>
>>> Links:
>>> ------
>>> [1]
>>> https://github.com/ideaconsult/examples-ambit/tree/master/smirks-example
>>>
>>
>>
>
>
|
|
From: Nikolay K. <ni...@un...> - 2015-04-28 05:16:33
|
Hi Yannick
On 4/27/15 7:35 PM, Yannick .Djoumbou wrote:
> Hi Nick,
>
> Thanks for the quick reply. I will follow your advice.
> I have followed the example that Nina provided on GitHub, which some
> adjustments. I found that I could not apply transformations targeting
> atoms in an aromatic ring, unless I aromatize the molecule. However, I
> was told that AMBIT works with the kekule form. I ended up trying to
> aromatize every single molecule (not matter whether it was an aromatic
> or aliphatic one). This had the effect that I could apply
> transformtion both on aliphatic and aromatic molecules. This is the
> only way I found to go around this issue. I am not sure though if
> kekulizing and aromatizing a molecule makes much sense.
The aromaticity makes a lot of sense because especially for reaction
transformations.
When one applies SMIRKS reactions must know in detail what happens to
the molecule, how it is handle within CDK package.
Technically the SMIRKS transformations can work both for aromatic and
kekulized structures but working with aromatic structures brings a lot
of side effects and for each reaction one must chemically reason whether
the obtained molecule is correct and eventually apply specific CDK based
post processing of the reaction products.
The side effects are due to the facts that the reacitons mainly change
the bond orders and when the molecule is represented as aromatic form
some bond orders may not be defined explicitly.
That is way we recommend following approach:
(1) Convert structure to Kekule form (aromaticity must be present
detected before that)
(2) Apply reaction
(3) Detect aromaticity again
(4) Eventually if one interested convert to aromatic form (KEKULE -->
aromatic)
We have a nice feature in the SMIRKS manager called
FlagProcessResultStructures. By defaults it is false. I recommend you
that you set it to true.
It will configure the resulting molecules and detect aromaticity for the
product.
Then if interested step (4) may be done
>
> For every bond in the molecule, I appy this
>
> for (IBond bond : molecule.bonds()){
> if (bond.getFlag(CDKConstants.SINGLE_OR_DOUBLE)){
> bond.setFlag(CDKConstants.ISAROMATIC, true);
> bond.getAtom(0).setFlag(CDKConstants.ISAROMATIC, true);
> bond.getAtom(1).setFlag(CDKConstants.ISAROMATIC, true);
> }
> }
> Then, I kekulize the molecule. I can apply transformations targeting
> atoms in the aliphatic parts of the molecule only. But when I
> aromatize, I can apply any transformation to the molecule (as long as
> the targeted pattern is present).
>
When reaction is applied it is good that the molecule is in Kekule form
but it has the aromatic flags set as well.
Also bear in mind that:
[C] is aliphatic cartbon, [c] is aromatic carbon and [#6] is any carbon.
So this [#7:1][C:2]([H]) would be applied only for aliphatic carbon (or
if the molecule is not configured well for C atom which do not have
aromatic flags set)
Nick
> Regards,
>
> Yannick
>
>
>
> On Mon, Apr 27, 2015 at 6:17 AM, Nikolay Kochev <ni...@un...
> <mailto:ni...@un...>> wrote:
>
> Hello Yannick
>
>
> On 2015-04-27 00:55, Yannick .Djoumbou wrote:
>
> Hello Nina,
>
> Thanks a lot for the help. This is great stuff. I still have
> an issue
> because, I cannot generate aromatic transformation (e.g.: aromatic
> hydroxylation) when the molecule is just kekulized. I have to
> apply
> the aromaticity.apply(molecule) if I am targeting aromatic atoms.
> Moreover, in some cases, e.g.: N-dealkylation, one ends up
> often with
> more than one moiety. For example, applying:
> - the smirks: [#7:1][C:2]([H])>>[#7:1][H].[C:2]=[O]
> - to the molecule "OCCNC1=CC=CC=C1"
> - using the function applyTransformationWithSingleCopyForEachPos
>
> will return the following AtomContainer: C=1(C=CC=CC1)N.C(CO)=O.
>
>
> Yes that is exactly the expected result. You have two fragments
> (molecules) within the result atom container.
>
>
> These are actually two different molecles representing two
> different
> products. Is there a way to change this so that ambit returns each
> moiety as an actual molecule?
>
>
> If you need each molecule as a different IAtomContanier object you
> can use a code like this
>
>
> IAtomContainerSet ms =
> ConnectivityChecker.partitionIntoMolecules(mol);
>
> where the mol is the result from the reaction.
>
> The you iterate ms (container/molecule set)
>
>
> Best regards
> Nick
>
>
>
> So far, one could go around by applying
>
> two smirks, each of which has one of the two products smarts:
> [#7:1][C:2]([H])>>[#7:1][H]
> [#7:1][C:2]([H])>>[C:2]=[O]
>
>
>
>
>
> However, if would be awesome if the resulting AtomContainerSet
> from
> applyTransformationWithSingleCopyForEachPos would actually contain
> each moiety as a separate AtomContainer.
>
> Thanks a lot for the great assistance.
>
> Regards,
>
> Yannick
>
> On Sun, Apr 26, 2015 at 1:16 AM, Nina Jeliazkova
> <jel...@gm... <mailto:jel...@gm...>>
> wrote:
>
> Yannick, All,
>
> I've added a small Maven project demonstrating how to use
> the SMIRKS
> code and configure the dependencies.
>
>
> https://github.com/ideaconsult/examples-ambit/tree/master/smirks-example
>
> [1]
>
> Best regards,
> Nina
>
>
>
>
> Links:
> ------
> [1]
> https://github.com/ideaconsult/examples-ambit/tree/master/smirks-example
>
>
>
|
|
From: Yannick .D. <y.d...@gm...> - 2015-04-27 16:35:50
|
Hi Nick,
Thanks for the quick reply. I will follow your advice.
I have followed the example that Nina provided on GitHub, which some
adjustments. I found that I could not apply transformations targeting atoms
in an aromatic ring, unless I aromatize the molecule. However, I was told
that AMBIT works with the kekule form. I ended up trying to aromatize every
single molecule (not matter whether it was an aromatic or aliphatic one).
This had the effect that I could apply transformtion both on aliphatic and
aromatic molecules. This is the only way I found to go around this issue. I
am not sure though if kekulizing and aromatizing a molecule makes much
sense.
For every bond in the molecule, I appy this
for (IBond bond : molecule.bonds()){
if (bond.getFlag(CDKConstants.SINGLE_OR_DOUBLE)){
bond.setFlag(CDKConstants.ISAROMATIC, true);
bond.getAtom(0).setFlag(CDKConstants.ISAROMATIC, true);
bond.getAtom(1).setFlag(CDKConstants.ISAROMATIC, true);
}
}
Then, I kekulize the molecule. I can apply transformations targeting atoms
in the aliphatic parts of the molecule only. But when I aromatize, I can
apply any transformation to the molecule (as long as the targeted pattern
is present).
Regards,
Yannick
On Mon, Apr 27, 2015 at 6:17 AM, Nikolay Kochev <ni...@un...>
wrote:
> Hello Yannick
>
>
> On 2015-04-27 00:55, Yannick .Djoumbou wrote:
>
>> Hello Nina,
>>
>> Thanks a lot for the help. This is great stuff. I still have an issue
>> because, I cannot generate aromatic transformation (e.g.: aromatic
>> hydroxylation) when the molecule is just kekulized. I have to apply
>> the aromaticity.apply(molecule) if I am targeting aromatic atoms.
>> Moreover, in some cases, e.g.: N-dealkylation, one ends up often with
>> more than one moiety. For example, applying:
>> - the smirks: [#7:1][C:2]([H])>>[#7:1][H].[C:2]=[O]
>> - to the molecule "OCCNC1=CC=CC=C1"
>> - using the function applyTransformationWithSingleCopyForEachPos
>>
>> will return the following AtomContainer: C=1(C=CC=CC1)N.C(CO)=O.
>>
>>
> Yes that is exactly the expected result. You have two fragments
> (molecules) within the result atom container.
>
>
> These are actually two different molecles representing two different
>> products. Is there a way to change this so that ambit returns each
>> moiety as an actual molecule?
>>
>
> If you need each molecule as a different IAtomContanier object you can use
> a code like this
>
>
> IAtomContainerSet ms = ConnectivityChecker.partitionIntoMolecules(mol);
>
> where the mol is the result from the reaction.
>
> The you iterate ms (container/molecule set)
>
>
> Best regards
> Nick
>
>
>
> So far, one could go around by applying
>
>> two smirks, each of which has one of the two products smarts:
>> [#7:1][C:2]([H])>>[#7:1][H]
>> [#7:1][C:2]([H])>>[C:2]=[O]
>>
>>
>
>
>
> However, if would be awesome if the resulting AtomContainerSet from
>> applyTransformationWithSingleCopyForEachPos would actually contain
>> each moiety as a separate AtomContainer.
>>
>> Thanks a lot for the great assistance.
>>
>> Regards,
>>
>> Yannick
>>
>> On Sun, Apr 26, 2015 at 1:16 AM, Nina Jeliazkova
>> <jel...@gm...> wrote:
>>
>> Yannick, All,
>>>
>>> I've added a small Maven project demonstrating how to use the SMIRKS
>>> code and configure the dependencies.
>>>
>>>
>>>
>> https://github.com/ideaconsult/examples-ambit/tree/master/smirks-example
>>
>>> [1]
>>>
>>> Best regards,
>>> Nina
>>>
>>
>>
>>
>> Links:
>> ------
>> [1]
>> https://github.com/ideaconsult/examples-ambit/tree/master/smirks-example
>>
>
>
|
|
From: Nikolay K. <ni...@un...> - 2015-04-27 12:34:23
|
Hello Yannick On 2015-04-27 00:55, Yannick .Djoumbou wrote: > Hello Nina, > > Thanks a lot for the help. This is great stuff. I still have an issue > because, I cannot generate aromatic transformation (e.g.: aromatic > hydroxylation) when the molecule is just kekulized. I have to apply > the aromaticity.apply(molecule) if I am targeting aromatic atoms. > Moreover, in some cases, e.g.: N-dealkylation, one ends up often with > more than one moiety. For example, applying: > - the smirks: [#7:1][C:2]([H])>>[#7:1][H].[C:2]=[O] > - to the molecule "OCCNC1=CC=CC=C1" > - using the function applyTransformationWithSingleCopyForEachPos > > will return the following AtomContainer: C=1(C=CC=CC1)N.C(CO)=O. > Yes that is exactly the expected result. You have two fragments (molecules) within the result atom container. > These are actually two different molecles representing two different > products. Is there a way to change this so that ambit returns each > moiety as an actual molecule? If you need each molecule as a different IAtomContanier object you can use a code like this IAtomContainerSet ms = ConnectivityChecker.partitionIntoMolecules(mol); where the mol is the result from the reaction. The you iterate ms (container/molecule set) Best regards Nick So far, one could go around by applying > two smirks, each of which has one of the two products smarts: > [#7:1][C:2]([H])>>[#7:1][H] > [#7:1][C:2]([H])>>[C:2]=[O] > > However, if would be awesome if the resulting AtomContainerSet from > applyTransformationWithSingleCopyForEachPos would actually contain > each moiety as a separate AtomContainer. > > Thanks a lot for the great assistance. > > Regards, > > Yannick > > On Sun, Apr 26, 2015 at 1:16 AM, Nina Jeliazkova > <jel...@gm...> wrote: > >> Yannick, All, >> >> I've added a small Maven project demonstrating how to use the SMIRKS >> code and configure the dependencies. >> >> > https://github.com/ideaconsult/examples-ambit/tree/master/smirks-example >> [1] >> >> Best regards, >> Nina > > > > Links: > ------ > [1] > https://github.com/ideaconsult/examples-ambit/tree/master/smirks-example |
|
From: Nina J. <jel...@gm...> - 2015-04-27 05:02:01
|
Hello Yannick, Nick is better qualified to answer these questions, leaving the floor to him. Regards, Nina On 27 April 2015 at 00:55, Yannick .Djoumbou <y.d...@gm...> wrote: > Hello Nina, > > Thanks a lot for the help. This is great stuff. I still have an issue > because, I cannot generate aromatic transformation (e.g.: aromatic > hydroxylation) when the molecule is just kekulized. I have to apply the > aromaticity.apply(molecule) if I am targeting aromatic atoms. > Moreover, in some cases, e.g.: N-dealkylation, one ends up often with more > than one moiety. For example, applying: > - the smirks: [#7:1][C:2]([H])>>[#7:1][H].[C:2]=[O] > - to the molecule "OCCNC1=CC=CC=C1" > - using the function applyTransformationWithSingleCopyForEachPos > > will return the following AtomContainer: C=1(C=CC=CC1)N.C(CO)=O. > > These are actually two different molecles representing two different > products. Is there a way to change this so that ambit returns each moiety > as an actual molecule? So far, one could go around by applying two smirks, > each of which has one of the two products smarts: > [#7:1][C:2]([H])>>[#7:1][H] > [#7:1][C:2]([H])>>[C:2]=[O] > > However, if would be awesome if the resulting AtomContainerSet from > applyTransformationWithSingleCopyForEachPos would actually contain each > moiety as a separate AtomContainer. > > Thanks a lot for the great assistance. > > Regards, > > Yannick > > > > > > > > On Sun, Apr 26, 2015 at 1:16 AM, Nina Jeliazkova < > jel...@gm...> wrote: > >> Yannick, All, >> >> I've added a small Maven project demonstrating how to use the SMIRKS code >> and configure the dependencies. >> >> https://github.com/ideaconsult/examples-ambit/tree/master/smirks-example >> >> Best regards, >> Nina >> > > |
|
From: Yannick .D. <y.d...@gm...> - 2015-04-26 21:55:43
|
Hello Nina,
Thanks a lot for the help. This is great stuff. I still have an issue
because, I cannot generate aromatic transformation (e.g.: aromatic
hydroxylation) when the molecule is just kekulized. I have to apply the
aromaticity.apply(molecule) if I am targeting aromatic atoms.
Moreover, in some cases, e.g.: N-dealkylation, one ends up often with more
than one moiety. For example, applying:
- the smirks: [#7:1][C:2]([H])>>[#7:1][H].[C:2]=[O]
- to the molecule "OCCNC1=CC=CC=C1"
- using the function applyTransformationWithSingleCopyForEachPos
will return the following AtomContainer: C=1(C=CC=CC1)N.C(CO)=O.
These are actually two different molecles representing two different
products. Is there a way to change this so that ambit returns each moiety
as an actual molecule? So far, one could go around by applying two smirks,
each of which has one of the two products smarts:
[#7:1][C:2]([H])>>[#7:1][H]
[#7:1][C:2]([H])>>[C:2]=[O]
However, if would be awesome if the resulting AtomContainerSet from
applyTransformationWithSingleCopyForEachPos would actually contain each
moiety as a separate AtomContainer.
Thanks a lot for the great assistance.
Regards,
Yannick
On Sun, Apr 26, 2015 at 1:16 AM, Nina Jeliazkova <jel...@gm...>
wrote:
> Yannick, All,
>
> I've added a small Maven project demonstrating how to use the SMIRKS code
> and configure the dependencies.
>
> https://github.com/ideaconsult/examples-ambit/tree/master/smirks-example
>
> Best regards,
> Nina
>
|
|
From: Nina J. <jel...@gm...> - 2015-04-26 07:16:50
|
Yannick, All, I've added a small Maven project demonstrating how to use the SMIRKS code and configure the dependencies. https://github.com/ideaconsult/examples-ambit/tree/master/smirks-example Best regards, Nina |