Hi,

I am trying to remove ions from sdf compounds that I downloaded from pubchem using a python script. The script correctly locates the atoms to remove but the del command does not seem to have any effect. Am I making a silly python error?


An example input is here https://pubchem.ncbi.nlm.nih.gov/compound/20022

Cheers,
--
David van der Spoel, Ph.D., Professor of Biology
Head of Department, Cell & Molecular Biology, Uppsala University.
Box 596, SE-75124 Uppsala, Sweden. Phone: +46184714205.
http://www.icm.uu.se


#!/usr/bin/env python3

from pybel import *
import os, argparse

def parseArguments():
    parser = argparse.ArgumentParser()
parser.add_argument("-i", "--inputfile", help="Input file for reading", type=str,
        default=None)
parser.add_argument("-o", "--outputfile", help="Output file for writing", type=str,
        default="out.sdf")
    args = parser.parse_args()
    return args

if __name__ == '__main__':
    args  = parseArguments()

    if (args.inputfile):
print("Inputfile: %s Outputfile %s" % ( args.inputfile, args.outputfile ) )
        if (os.path.isfile(args.outputfile)):
            os.remove(args.outputfile)
        outfile = Outputfile("sdf", args.outputfile)
        for mol in readfile("sdf", args.inputfile):
            print("Mol Weight %f" % mol.molwt)
            print("# atoms %d" % len(mol.atoms) )
            remove = []
            for aa in range(len(mol.atoms)):
                atom = mol.atoms[aa]
# print("Type %s Valence %s" % ( atom.type, atom.valence ) )
                if ((atom.type == "Cl" or atom.type == "Br") and
                    atom.valence == 0):
                    # We found an ion
                    remove.append(aa)
            print("There are %d atoms to remove" % len(remove))
            for r in remove:
                del mol.atoms[r]
            outfile.write(mol)
            # Only write one molecule, break out of the loop
            break
        outfile.close()

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
OpenBabel-discuss mailing list
OpenBabel-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openbabel-discuss

Reply via email to