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 <kmvin...@gmail.com>
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
>>>>> 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
>>>>> 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(SilentChemObjectB
>>>>> uilder.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
>>>>>
>>>>>
>>>>
>>>
>>>
>>> --
>>> 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
>>>
>>>
>>
>
>
> --
> 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
>
>
------------------------------------------------------------------------------
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