Hi Joanna,

There's no need to call MolFromSmiles if you're using a MolSupplier (which
generates Mol objects already) - you just need to iterate over the Mol
objects it generates:

from rdkit import Chem
from rdkit.Chem import rdmolfiles

# Create the mol supplier, reading from the input file
supplier = Chem.SmilesMolSupplier('directory/filename.smi', delimiter='\t',
titleLine=False)

# Iterate over the molecules. We can either convert the supplier to a list
of molecules:
molecules = list(supplier)

# Or simply iterate over the supplier directly:
for molecule in supplier:
    # Add explicit Hs
    # Convert to sdf
    pass

I hope that helps!
Luke Zulauf
Staff Software Engineer, Cheminformatics

*ZYMERGEN | WE MAKE TOMORROW*Zymergen.com <http://www.zymergen.com/> |
Twitter <https://twitter.com/Zymergen> | LinkedIn
<https://www.linkedin.com/company/zymergen/> | Facebook
<https://facebook.com/zymergen>

On Tue, Jul 14, 2020 at 8:59 AM ITS RDC <itsrdc...@outlook.com> wrote:

> Hi all,
>
> I have a SMILES list containing 251 SMILES strings (collected from a csv
> file) which I needed to convert to mol files because Open Babel is not
> doing its job in adding explicit Hs in batches before being converted to
> .sdf so I can process the molecules in rdkit and PyRx. So I am trying to
> use RDKit as an alternative to generate what I need.
>
> I used the following:
> from rdkit import Chem
> from rdkit.Chem import rdmolfiles
>
> suppl_smiles = []
>
> temp =
> Chem.SmilesMolSupplier('directory/filename.smi',delimiter='\t',titleline=False)
> y = len(temp)
>
> for x in range (y):
>     suppl_smiles.append(temp)
>     temp2 = suppl_smiles[x]
>     temp3 = Chem.MolFromSmiles(temp2)
>
> ​The one in highlight always returns the following:
>
> *TypeError: No registered converter was able to produce a C++ rvalue of
> type class std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class
> std::allocator<wchar_t> > from this Python object of type SmilesMolSupplier*
>
> I have been looking in GitHub, Source Forge, and other fora regarding
> batch conversion of smiles to mol files (I only encountered sdf containing
> multiple molecules to smiles which I already figured out) but I have not
> seen using MolFromSmiles using calling the tuple index as an object. I'd
> appreciate your help. Thank you.
>
> Joanna
> _______________________________________________
> 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

Reply via email to