Re: [Cdk-user] Reg: Editing linear Chain alkane (Heptane)

2017-10-30 Thread John Mayfield
Right the issue here is possibly you need to fix you valences... you have
two 5 valent carbons.

When you delete add bonds you want to adjust the hydrogen counts such that
the valence is valid. Or if you want a quick and dirty fix, try adding this:

AtomContainerManipulator.percieveAtomTypesAndConfigureAtoms(mol);

CDKHydrogenAdder.getInstance(mol.getBuilder()).addImplicitHydrogens(mol);

[image: Inline images 1]

On 30 October 2017 at 11:07, Vinothkumar Mohanakrishnan 
wrote:

> Oh yes. It was said in the documentation that 3D Model Builder is having
> issues, but I thought it should work for small molecules?
>
> The SMILES for my assembled molecules (NewHeptane) = *CC[CH3]C[CH3]CC*
>
> Thank you for your interest in this post.
>
> On Mon, Oct 30, 2017 at 11:39 AM, John Mayfield <
> john.wilkinson...@gmail.com> wrote:
>
>> Oh right, yeah sorry I missed that.
>>
>> The 3D coordinate generation in the CDK is really bad, it kind of works
>> but not really. Been meaning up to update, anyways this simple molecule
>> should be okay... what does the SMILES look like for your assembled
>> molecule?
>>
>> John
>>
>> On 30 October 2017 at 09:05, Vinothkumar Mohanakrishnan <
>> kmvin...@gmail.com> wrote:
>>
>>> Dear John
>>>
>>> Thanks for your valuable insight.
>>>
>>> I messed up with the indices in my first post where I numbered atoms
>>> sequentially for clarity purpose of the question, but I should have
>>> mentioned about CDK indices and renumbering in the NewHeptane atom
>>> container, which I am quite aware of, (thanks a lot for your clarity in
>>> explaining it)
>>>
>>> To me, it seems that the real issue is with the model builder. (After
>>> generating SMILES)
>>>
>>> When I tried creating a 3d model of the NewHeptane using model3dbuilder
>>> I get an exception
>>>
>>> *org.openscience.cdk.exception.NoSuchAtomTypeException: Atom is unkown:
>>> Symbol:C does not MATCH AtomType. HoseCode:C-5;CC(C,C/C,/)*
>>>
>>> By the way, I checked with 
>>> AtomContainerManipulator.perceiveatomsandconfigure()
>>> and all atoms in the NewHeptane Iatomcontainer has C.Sp3 hybridized.
>>>
>>>
>>> // Below is the code with CDK atom indices
>>>
>>> NewHeptane.add(Propane)
>>>
>>>
>>> *NewHeptane.addBond(1, // second atom in heptane
>>>   4, // first atom in propane*
>>>
>>> *  IBond.Order.Single);*
>>>
>>>
>>> *NewHeptane.addBond(2, // third atom in heptane (was sixth before we
>>> deleted some)*
>>> * 6, // third atom in propane*
>>> * IBond.Order.Single);*
>>>
>>> //Generate smiles
>>> SmilesGenerator sg = SmilesGenerator.absolute();
>>> String smi = sg.create(NewHeptane);
>>>
>>> //Parse smiles
>>> SmilesParser sp = new SmilesParser(SilentChemObjectB
>>> uilder.getInstance());
>>> IAtomContainer m   = sp.parseSmiles(smi);
>>>
>>> // Build 3d model
>>> ModelBuilder3D builder3d = ModelBuilder3D.getInstance(m.getBuilder());
>>> IAtomContainer newHeptane = builder3d.generate3DCoordinates(m, false);
>>>
>>> Any insights in the right direction are highly appreciated. Thank you.
>>>
>>>
>>>
>>> On Sat, Oct 28, 2017 at 5:38 PM, John Mayfield <
>>> john.wilkinson...@gmail.com> wrote:
>>>
 Can't run the code without more context but I think I know what's
 happening.

 Firstly atom indices start at 0, so to remove atom numbers 3, 4, 5 (as
 in picture) you remove 2, 3, 4. Secondly, when you delete atoms the indices
 are renumbered/repacked. So the new indices will always be 0, 1, 2
 (previously index 5 - atom number 6).

 [image: Inline images 1]

 Now this wouldn't actually cause the error because you're adding
 pentane... but 5 atoms from pentane + the 3 from the fragmented hexane
 means the maximum index as 7 but you've requested atom 10...

 NewHeptane.addBond(6,10, IBond.Order.Single)


 There are a couple of ways to do this for example tagging atoms, map
 indices, or use the atom object to create the bonds (most efficient).

 NewHeptane.add(Propane)
> //adding bonds
> NewHeptane.addBond(1, // second atom in heptane
>  4,  // was second atom in
> propane... 3+1
>   IBond.Order.Single);
> NewHeptane.addBond(2,  // third atom in heptane (was sixth before we
> deleted some)
>   6, // was forth atom in propane
> 3+3

   IBond.Order.Single)


 Using the addBond() API you can get the index in the new molecule as
 follows... which makes it easier

 NewHeptane.add(Propane)
> //adding bonds
> NewHeptane.addBond(1, // second atom in heptane
>   
> NewHeptane.indexOf(Propane.getAtom(1)),
>   // second atom in propane -> find index in the combined mol

Re: [Cdk-user] Reg: Editing linear Chain alkane (Heptane)

2017-10-30 Thread Vinothkumar Mohanakrishnan
Oh yes. It was said in the documentation that 3D Model Builder is having
issues, but I thought it should work for small molecules?

The SMILES for my assembled molecules (NewHeptane) = *CC[CH3]C[CH3]CC*

Thank you for your interest in this post.

On Mon, Oct 30, 2017 at 11:39 AM, John Mayfield  wrote:

> Oh right, yeah sorry I missed that.
>
> The 3D coordinate generation in the CDK is really bad, it kind of works
> but not really. Been meaning up to update, anyways this simple molecule
> should be okay... what does the SMILES look like for your assembled
> molecule?
>
> John
>
> On 30 October 2017 at 09:05, Vinothkumar Mohanakrishnan <
> kmvin...@gmail.com> wrote:
>
>> Dear John
>>
>> Thanks for your valuable insight.
>>
>> I messed up with the indices in my first post where I numbered atoms
>> sequentially for clarity purpose of the question, but I should have
>> mentioned about CDK indices and renumbering in the NewHeptane atom
>> container, which I am quite aware of, (thanks a lot for your clarity in
>> explaining it)
>>
>> To me, it seems that the real issue is with the model builder. (After
>> generating SMILES)
>>
>> When I tried creating a 3d model of the NewHeptane using model3dbuilder I
>> get an exception
>>
>> *org.openscience.cdk.exception.NoSuchAtomTypeException: Atom is unkown:
>> Symbol:C does not MATCH AtomType. HoseCode:C-5;CC(C,C/C,/)*
>>
>> By the way, I checked with 
>> AtomContainerManipulator.perceiveatomsandconfigure()
>> and all atoms in the NewHeptane Iatomcontainer has C.Sp3 hybridized.
>>
>>
>> // Below is the code with CDK atom indices
>>
>> NewHeptane.add(Propane)
>>
>>
>> *NewHeptane.addBond(1, // second atom in heptane
>> 4, // first atom in propane*
>>
>> *  IBond.Order.Single);*
>>
>>
>> *NewHeptane.addBond(2, // third atom in heptane (was sixth before we
>> deleted some)*
>> * 6, // third atom in propane*
>> * IBond.Order.Single);*
>>
>> //Generate smiles
>> SmilesGenerator sg = SmilesGenerator.absolute();
>> String smi = sg.create(NewHeptane);
>>
>> //Parse smiles
>> SmilesParser sp = new SmilesParser(SilentChemObjectB
>> uilder.getInstance());
>> IAtomContainer m   = sp.parseSmiles(smi);
>>
>> // Build 3d model
>> ModelBuilder3D builder3d = ModelBuilder3D.getInstance(m.getBuilder());
>> IAtomContainer newHeptane = builder3d.generate3DCoordinates(m, false);
>>
>> Any insights in the right direction are highly appreciated. Thank you.
>>
>>
>>
>> On Sat, Oct 28, 2017 at 5:38 PM, John Mayfield <
>> john.wilkinson...@gmail.com> wrote:
>>
>>> Can't run the code without more context but I think I know what's
>>> happening.
>>>
>>> Firstly atom indices start at 0, so to remove atom numbers 3, 4, 5 (as
>>> in picture) you remove 2, 3, 4. Secondly, when you delete atoms the indices
>>> are renumbered/repacked. So the new indices will always be 0, 1, 2
>>> (previously index 5 - atom number 6).
>>>
>>> [image: Inline images 1]
>>>
>>> Now this wouldn't actually cause the error because you're adding
>>> pentane... but 5 atoms from pentane + the 3 from the fragmented hexane
>>> means the maximum index as 7 but you've requested atom 10...
>>>
>>> NewHeptane.addBond(6,10, IBond.Order.Single)
>>>
>>>
>>> There are a couple of ways to do this for example tagging atoms, map
>>> indices, or use the atom object to create the bonds (most efficient).
>>>
>>> NewHeptane.add(Propane)
 //adding bonds
 NewHeptane.addBond(1, // second atom in heptane
  4,  // was second atom in
 propane... 3+1
   IBond.Order.Single);
 NewHeptane.addBond(2,  // third atom in heptane (was sixth before we
 deleted some)
   6, // was forth atom in propane
 3+3
>>>
>>>   IBond.Order.Single)
>>>
>>>
>>> Using the addBond() API you can get the index in the new molecule as
>>> follows... which makes it easier
>>>
>>> NewHeptane.add(Propane)
 //adding bonds
 NewHeptane.addBond(1, // second atom in heptane
   
 NewHeptane.indexOf(Propane.getAtom(1)),
   // second atom in propane -> find index in the combined mol
   IBond.Order.Single);
 NewHeptane.addBond(2, // third atom in heptane (was sixth before we
 deleted some)
   
 NewHeptane.indexOf(Propane.getAtom(3)),
// forth atom in propane -> find index in the combined mol
>>>
>>>   IBond.Order.Single)

>>>
>>> Hope that helps,
>>> John
>>>
>>> On 25 October 2017 at 12:53, Vinothkumar Mohanakrishnan <
>>> kmvin...@gmail.com> wrote:
>>>
 Dear All

 I am using CDK to create a tool (Java GUI) for editing molecules. To
 start with I am 

Re: [Cdk-user] Reg: Editing linear Chain alkane (Heptane)

2017-10-30 Thread John Mayfield
Oh right, yeah sorry I missed that.

The 3D coordinate generation in the CDK is really bad, it kind of works but
not really. Been meaning up to update, anyways this simple molecule should
be okay... what does the SMILES look like for your assembled molecule?

John

On 30 October 2017 at 09:05, Vinothkumar Mohanakrishnan 
wrote:

> Dear John
>
> Thanks for your valuable insight.
>
> I messed up with the indices in my first post where I numbered atoms
> sequentially for clarity purpose of the question, but I should have
> mentioned about CDK indices and renumbering in the NewHeptane atom
> container, which I am quite aware of, (thanks a lot for your clarity in
> explaining it)
>
> To me, it seems that the real issue is with the model builder. (After
> generating SMILES)
>
> When I tried creating a 3d model of the NewHeptane using model3dbuilder I
> get an exception
>
> *org.openscience.cdk.exception.NoSuchAtomTypeException: Atom is unkown:
> Symbol:C does not MATCH AtomType. HoseCode:C-5;CC(C,C/C,/)*
>
> By the way, I checked with 
> AtomContainerManipulator.perceiveatomsandconfigure()
> and all atoms in the NewHeptane Iatomcontainer has C.Sp3 hybridized.
>
>
> // Below is the code with CDK atom indices
>
> NewHeptane.add(Propane)
>
>
> *NewHeptane.addBond(1, // second atom in heptane
> 4, // first atom in propane*
>
> *  IBond.Order.Single);*
>
>
> *NewHeptane.addBond(2, // third atom in heptane (was sixth before we
> deleted some)*
> * 6, // third atom in propane*
> * IBond.Order.Single);*
>
> //Generate smiles
> SmilesGenerator sg = SmilesGenerator.absolute();
> String smi = sg.create(NewHeptane);
>
> //Parse smiles
> SmilesParser sp = new SmilesParser(SilentChemObjectBuilder.getInstance());
> IAtomContainer m   = sp.parseSmiles(smi);
>
> // Build 3d model
> ModelBuilder3D builder3d = ModelBuilder3D.getInstance(m.getBuilder());
> IAtomContainer newHeptane = builder3d.generate3DCoordinates(m, false);
>
> Any insights in the right direction are highly appreciated. Thank you.
>
>
>
> On Sat, Oct 28, 2017 at 5:38 PM, John Mayfield <
> john.wilkinson...@gmail.com> wrote:
>
>> Can't run the code without more context but I think I know what's
>> happening.
>>
>> Firstly atom indices start at 0, so to remove atom numbers 3, 4, 5 (as in
>> picture) you remove 2, 3, 4. Secondly, when you delete atoms the indices
>> are renumbered/repacked. So the new indices will always be 0, 1, 2
>> (previously index 5 - atom number 6).
>>
>> [image: Inline images 1]
>>
>> Now this wouldn't actually cause the error because you're adding
>> pentane... but 5 atoms from pentane + the 3 from the fragmented hexane
>> means the maximum index as 7 but you've requested atom 10...
>>
>> NewHeptane.addBond(6,10, IBond.Order.Single)
>>
>>
>> There are a couple of ways to do this for example tagging atoms, map
>> indices, or use the atom object to create the bonds (most efficient).
>>
>> NewHeptane.add(Propane)
>>> //adding bonds
>>> NewHeptane.addBond(1, // second atom in heptane
>>>  4,  // was second atom in
>>> propane... 3+1
>>>   IBond.Order.Single);
>>> NewHeptane.addBond(2,  // third atom in heptane (was sixth before we
>>> deleted some)
>>>   6, // was forth atom in propane
>>> 3+3
>>
>>   IBond.Order.Single)
>>
>>
>> Using the addBond() API you can get the index in the new molecule as
>> follows... which makes it easier
>>
>> NewHeptane.add(Propane)
>>> //adding bonds
>>> NewHeptane.addBond(1, // second atom in heptane
>>>   
>>> NewHeptane.indexOf(Propane.getAtom(1)),
>>>   // second atom in propane -> find index in the combined mol
>>>   IBond.Order.Single);
>>> NewHeptane.addBond(2, // third atom in heptane (was sixth before we
>>> deleted some)
>>>   
>>> NewHeptane.indexOf(Propane.getAtom(3)),
>>>// forth atom in propane -> find index in the combined mol
>>
>>   IBond.Order.Single)
>>>
>>
>> Hope that helps,
>> John
>>
>> On 25 October 2017 at 12:53, Vinothkumar Mohanakrishnan <
>> kmvin...@gmail.com> wrote:
>>
>>> Dear All
>>>
>>> I am using CDK to create a tool (Java GUI) for editing molecules. To
>>> start with I am considering linear alkanes. I will describe my problem
>>> briefly.
>>>
>>> I have an IAtomcontainer with *Heptane(H) *molecule loaded into it (all
>>> atoms and bonds are connected)
>>>
>>> I* removed atoms 3,4,5* from the container and the bonds connecting
>>> them. So now I have two fragments of ethane(*atom1 - atom2 connected *
>>> similarly* atom6-atom7 connected*) in the atom container.
>>>
>>> I have another IAtomcontainer with *Propane(P)* (say with *atom numbers
>>> 8, 9, 

Re: [Cdk-user] Reg: Editing linear Chain alkane (Heptane)

2017-10-30 Thread Vinothkumar Mohanakrishnan
Dear John

Thanks for your valuable insight.

I messed up with the indices in my first post where I numbered atoms
sequentially for clarity purpose of the question, but I should have
mentioned about CDK indices and renumbering in the NewHeptane atom
container, which I am quite aware of, (thanks a lot for your clarity in
explaining it)

To me, it seems that the real issue is with the model builder. (After
generating SMILES)

When I tried creating a 3d model of the NewHeptane using model3dbuilder I
get an exception

*org.openscience.cdk.exception.NoSuchAtomTypeException: Atom is unkown:
Symbol:C does not MATCH AtomType. HoseCode:C-5;CC(C,C/C,/)*

By the way, I checked with AtomContainerManipulator.perceiveatomsandconfigure()
and all atoms in the NewHeptane Iatomcontainer has C.Sp3 hybridized.


// Below is the code with CDK atom indices

NewHeptane.add(Propane)


*NewHeptane.addBond(1, // second atom in heptane
  4, // first atom in propane*

*  IBond.Order.Single);*


*NewHeptane.addBond(2, // third atom in heptane (was sixth before we
deleted some)*
* 6, // third atom in propane*
* IBond.Order.Single);*

//Generate smiles
SmilesGenerator sg = SmilesGenerator.absolute();
String smi = sg.create(NewHeptane);

//Parse smiles
SmilesParser sp = new SmilesParser(SilentChemObjectBuilder.getInstance());
IAtomContainer m   = sp.parseSmiles(smi);

// Build 3d model
ModelBuilder3D builder3d = ModelBuilder3D.getInstance(m.getBuilder());
IAtomContainer newHeptane = builder3d.generate3DCoordinates(m, false);

Any insights in the right direction are highly appreciated. Thank you.



On Sat, Oct 28, 2017 at 5:38 PM, John Mayfield 
wrote:

> Can't run the code without more context but I think I know what's
> happening.
>
> Firstly atom indices start at 0, so to remove atom numbers 3, 4, 5 (as in
> picture) you remove 2, 3, 4. Secondly, when you delete atoms the indices
> are renumbered/repacked. So the new indices will always be 0, 1, 2
> (previously index 5 - atom number 6).
>
> [image: Inline images 1]
>
> Now this wouldn't actually cause the error because you're adding
> pentane... but 5 atoms from pentane + the 3 from the fragmented hexane
> means the maximum index as 7 but you've requested atom 10...
>
> NewHeptane.addBond(6,10, IBond.Order.Single)
>
>
> There are a couple of ways to do this for example tagging atoms, map
> indices, or use the atom object to create the bonds (most efficient).
>
> NewHeptane.add(Propane)
>> //adding bonds
>> NewHeptane.addBond(1, // second atom in heptane
>>  4,  // was second atom in propane...
>> 3+1
>>   IBond.Order.Single);
>> NewHeptane.addBond(2,  // third atom in heptane (was sixth before we
>> deleted some)
>>   6, // was forth atom in propane 3+3
>
>   IBond.Order.Single)
>
>
> Using the addBond() API you can get the index in the new molecule as
> follows... which makes it easier
>
> NewHeptane.add(Propane)
>> //adding bonds
>> NewHeptane.addBond(1, // second atom in heptane
>>   NewHeptane.indexOf(Propane.getAtom(1)),
>>   // second atom in propane -> find index in the combined mol
>>   IBond.Order.Single);
>> NewHeptane.addBond(2, // third atom in heptane (was sixth before we
>> deleted some)
>>   NewHeptane.indexOf(Propane.getAtom(3)),
>>// forth atom in propane -> find index in the combined mol
>
>   IBond.Order.Single)
>>
>
> Hope that helps,
> John
>
> On 25 October 2017 at 12:53, Vinothkumar Mohanakrishnan <
> kmvin...@gmail.com> wrote:
>
>> Dear All
>>
>> I am using CDK to create a tool (Java GUI) for editing molecules. To
>> start with I am considering linear alkanes. I will describe my problem
>> briefly.
>>
>> I have an IAtomcontainer with *Heptane(H) *molecule loaded into it (all
>> atoms and bonds are connected)
>>
>> I* removed atoms 3,4,5* from the container and the bonds connecting
>> them. So now I have two fragments of ethane(*atom1 - atom2 connected *
>> similarly* atom6-atom7 connected*) in the atom container.
>>
>> I have another IAtomcontainer with *Propane(P)* (say with *atom numbers
>> 8, 9, 10*) loaded into it (again all atoms and bonds are connected )
>>
>> I added the propane Iatomcontainer to the heptane Iatomcontaner. Then I
>> added a bond between (atom2(H)  -atom8(P)) and (atom6(H)-atom10(P)) and
>> created a new molecule called NewHeptane.
>>
>> When I tried creating a 3d model of the NewHeptane using model3dbuilder I
>> get an exception
>>
>> *org.openscience.cdk.exception.NoSuchAtomTypeException: Atom is unkown:
>> Symbol:C does not MATCH AtomType. HoseCode:C-5;CC(C,C/C,/)*
>>
>> By the way, I checked with 

[Cdk-user] Reg: Editing linear Chain alkane (Heptane)

2017-10-25 Thread Vinothkumar Mohanakrishnan
Dear All

I am using CDK to create a tool (Java GUI) for editing molecules. To start
with I am considering linear alkanes. I will describe my problem briefly.

I have an IAtomcontainer with *Heptane(H) *molecule loaded into it (all
atoms and bonds are connected)

I* removed atoms 3,4,5* from the container and the bonds connecting them.
So now I have two fragments of ethane(*atom1 - atom2 connected *similarly*
atom6-atom7 connected*) in the atom container.

I have another IAtomcontainer with *Propane(P)* (say with *atom numbers 8,
9, 10*) loaded into it (again all atoms and bonds are connected )

I added the propane Iatomcontainer to the heptane Iatomcontaner. Then I
added a bond between (atom2(H)  -atom8(P)) and (atom6(H)-atom10(P)) and
created a new molecule called NewHeptane.

When I tried creating a 3d model of the NewHeptane using model3dbuilder I
get an exception

*org.openscience.cdk.exception.NoSuchAtomTypeException: Atom is unkown:
Symbol:C does not MATCH AtomType. HoseCode:C-5;CC(C,C/C,/)*

By the way, I checked with
AtomContainerManipulator.perceiveatomsandconfigure() and all atoms in the
NewHeptane Iatomcontainer has C.Sp3 hybridized.


*Below is the code*

//add propane to heptane
NewHeptane.add(Propane)

//adding bonds
NewHeptane.addBond(2,8,IBond.Order.Single)
NewHeptane.addBond(6,10, IBond.Order.Single)

//Generate smiles
SmilesGenerator sg = SmilesGenerator.absolute();
String smi = sg.create(NewHeptane);

//Parse smiles
SmilesParser sp = new SmilesParser(SilentChemObjectBuilder.getInstance());
IAtomContainer m   = sp.parseSmiles(smi);

// Build 3d model
ModelBuilder3D builder3d = ModelBuilder3D.getInstance(m.getBuilder());
IAtomContainer newHeptane = builder3d.generate3DCoordinates(m, false);


Any suggestion in the right direction is highly appreciated. Thank you.

-- 
Regards
Vinothkumar Mohanakrishnan
--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot___
Cdk-user mailing list
Cdk-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/cdk-user