Navid- You probably need to "sanitize" the mol: rdkit.Chem.rdmolops.SanitizeMol(mol)
*dan nealschneider* | senior developer [image: Schrodinger Logo] <https://www.schrodinger.com/> On Tue, Oct 22, 2019 at 6:31 PM Navid Shervani-Tabar <nshe...@gmail.com> wrote: > Hello, > > I am trying to load a dataset using a vector of atoms (e.g [6,6,7,6,6,8]) > and the corresponding adjacency matrix. I am using the following script to > transform these into a mol object: > > def MolFromGraphs(node_list, adjacency_matrix): > > # create empty editable mol object > mol = Chem.RWMol() > > # add atoms to mol and keep track of index > node_to_idx = {} > for i in range(len(node_list)): > a = Chem.Atom(node_list[i].item()) > molIdx = mol.AddAtom(a) > node_to_idx[i] = molIdx > > # add bonds between adjacent atoms > for ix, row in enumerate(adjacency_matrix): > for iy, bond in enumerate(row): > > # only traverse half the matrix > if iy <= ix: > continue > > # add relevant bond type (there are many more of these) > if bond == 0: > continue > elif bond == 1: > bond_type = Chem.rdchem.BondType.SINGLE > mol.AddBond(node_to_idx[ix], node_to_idx[iy], bond_type) > elif bond == 2: > bond_type = Chem.rdchem.BondType.DOUBLE > mol.AddBond(node_to_idx[ix], node_to_idx[iy], bond_type) > elif bond == 3: > bond_type = Chem.rdchem.BondType.TRIPLE > mol.AddBond(node_to_idx[ix], node_to_idx[iy], bond_type) > elif bond == 1.5: > bond_type = Chem.rdchem.BondType.AROMATIC > mol.AddBond(node_to_idx[ix], node_to_idx[iy], bond_type) > > # Convert RWMol to Mol object > mol = mol.GetMol() > > return mol > > > When I try to get the hybridization of atoms using the mol object > generated from the function above, I get *UNSPECIFIED.* > > To make sure that this function works, I used *MolToSmiles *to generate a > SMILES string from the generated mol object and it matched the actual > SMILES from the dataset. Interestingly, when I regenerate the mol object > from the SMILES that I already generated from the above function, I can get > the hybridization from the new mol object with no problem. I was wondering > if there is a flag or variable that I should set in the above function to > be able to get hybridization from the generated mol object. > > Thanks! > Navid > > _______________________________________________ > Rdkit-discuss mailing list > Rdkit-discuss@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/rdkit-discuss >
_______________________________________________ Rdkit-discuss mailing list Rdkit-discuss@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/rdkit-discuss