Mercurial > repos > bgruening > eden_toolbox
comparison mol2gspan.py @ 0:99091a5d5c84 draft
Uploaded
| author | bgruening |
|---|---|
| date | Wed, 04 Sep 2013 05:10:04 -0400 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| -1:000000000000 | 0:99091a5d5c84 |
|---|---|
| 1 #!/usr/bin/env python | |
| 2 | |
| 3 import os, sys | |
| 4 import argparse | |
| 5 | |
| 6 def main(args ): | |
| 7 | |
| 8 begin = True | |
| 9 iid = 0 | |
| 10 graph_counter = 1 | |
| 11 | |
| 12 for line in args.infile: | |
| 13 if line.rstrip(): | |
| 14 if line.strip().endswith('END'): | |
| 15 begin = False | |
| 16 elif line.strip() == '$$$$': | |
| 17 graph_counter += 1 | |
| 18 iid = 0 | |
| 19 else: | |
| 20 # found header line, like: 21 21 0 0 0 0 0 0 0 0999 V2000 | |
| 21 if len(line.split()) >= 5 and line.split()[-1] == 'V2000': | |
| 22 args.outfile.write('t # id %s\n' % graph_counter) | |
| 23 begin=True | |
| 24 continue | |
| 25 # connection or coordinate/atom table | |
| 26 if len(line.split()) >= 4 and begin: | |
| 27 # coordinate/atom table | |
| 28 if line.split()[3].isalpha(): | |
| 29 args.outfile.write( 'v %s %s \n' % (iid, line.split()[3]) ) | |
| 30 iid += 1 | |
| 31 else: | |
| 32 #connection table | |
| 33 id, node, edge, trash = line.split(None, 3) | |
| 34 args.outfile.write( 'e %s %s %s\n' % ( int(id) - 1 , int(node) -1, edge ) ) | |
| 35 | |
| 36 if __name__ == "__main__": | |
| 37 parser = argparse.ArgumentParser() | |
| 38 parser.add_argument('--infile', nargs='?', type=argparse.FileType('r'), | |
| 39 default=sys.stdin, help="Specify one or more input files") | |
| 40 parser.add_argument('--outfile', type=argparse.FileType('w'), | |
| 41 default=sys.stdout, help="Specify one output file") | |
| 42 args = parser.parse_args() | |
| 43 main( args ) |
