For what it's worth, I think I fixed this (and cleared up some other problems) in this PR: https://github.com/rdkit/rdkit/pull/2482
On Tue, Jun 4, 2019 at 1:44 PM Paolo Tosco <paolo.tosco.m...@gmail.com> wrote: > Hi David, > > I think I already have a fix for this bug, I'll submit a PR later. If you > can create a ?GitHub issue it would be great so I can link my PR to the bug. > > Thanks, cheers > p. > > On 06/04/19 12:10, David Cosgrove wrote: > > Hi Paolo, > Many thanks for the speedy reply. I'll do as you suggest for now. Do you > want me to file an issue on github, or even, maybe, see if I can fix it > myself? > Cheers, > Dave > > > On Mon, Jun 3, 2019 at 5:32 PM Paolo Tosco <paolo.tosco.m...@gmail.com> > wrote: > >> Hi David, >> >> a workaround could be adding a final check after the for loop: >> >> #!/usr/bin/env python >> >> from rdkit import Chem >> >> suppl1 = Chem.SmilesMolSupplier('test1.smi', titleLine=False, >> nameColumn=1) >> rec_num = 0 >> print("len(suppl1) = {0:d}".format(len(suppl1))) >> for mol in suppl1: >> rec_num += 1 >> if not mol: >> print('Record {} not read.'.format(rec_num)) >> else: >> print('Record {} read ok.'.format(rec_num)) >> if (rec_num == len(suppl1) - 1): >> rec_num += 1 >> print('Record {} not read.'.format(rec_num)) >> >> >> suppl2 = Chem.SmilesMolSupplier('test2.smi', titleLine=False, >> nameColumn=1) >> rec_num = 0 >> print("len(suppl2) = {0:d}".format(len(suppl2))) >> for mol in suppl2: >> rec_num += 1 >> if not mol: >> print('Record {} not read.'.format(rec_num)) >> else: >> print('Record {} read ok.'.format(rec_num)) >> if (rec_num == len(suppl2) - 1): >> rec_num += 1 >> print('Record {} not read.'.format(rec_num)) >> >> This should work until what seems to be an issue in the SmilesSupplier is >> fixed. >> >> Cheers, >> p. >> >> On 06/03/19 16:49, David Cosgrove wrote: >> >> Hi, >> >> I'm trying to catch the line numbers of lines in a SMILES file that >> aren't parsed by the SmilesMolSupplier. Example code is attached, along >> with 2 SMILES files. When there is a bad SMILES string on the last line, >> the error is not reported, as in test2.smi. I've tried iterating through >> the file in a loop using next(suppl1) and catching the StopIteration >> exception, but I have the same issue. Is there a way to spot a last bad >> record in a file? >> >> Thanks, >> Dave >> >> -- >> David Cosgrove >> Freelance computational chemistry and chemoinformatics developer >> http://cozchemix.co.uk >> >> >> >> >> >> _______________________________________________ >> Rdkit-discuss mailing >> listRdkit-discuss@lists.sourceforge.nethttps://lists.sourceforge.net/lists/listinfo/rdkit-discuss >> >> >> > > -- > David Cosgrove > Freelance computational chemistry and chemoinformatics developer > http://cozchemix.co.uk > > > _______________________________________________ > 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