Skip to content

Commit

Permalink
bin/molenc_panascan.py: added --rand-one
Browse files Browse the repository at this point in the history
  • Loading branch information
UnixJunkie committed Mar 18, 2021
1 parent e21175e commit f3b3282
Showing 1 changed file with 14 additions and 2 deletions.
16 changes: 14 additions & 2 deletions bin/molenc_panascan.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
import argparse
import rdkit
import time
import random
from rdkit import Chem
from rdkit.Chem import AllChem
import sys
Expand Down Expand Up @@ -49,22 +50,33 @@ def positional_analog_scan(mol, smarts_patt = '[cH]',
help = "molecules input file")
parser.add_argument("-o", metavar = "output.smi", dest = "output_fn",
help = "analogs output file")
parser.add_argument("--rand-one", dest = "rand_one", action = "store_true",
default = False,
help = "output only one randomly-chosen analog \
per input molecule")
# parse CLI ----------------------------------------------
if len(sys.argv) == 1:
# user has no clue of what to do -> usage
parser.print_help(sys.stderr)
sys.exit(1)
args = parser.parse_args()
input_fn = args.input_fn
rand_one = args.rand_one
output = open(args.output_fn, 'w')
count = 0
# work ----------------------------------------------
mol_supplier = RobustSmilesMolSupplier(input_fn)
for name, mol in mol_supplier:
analogs = positional_analog_scan(mol)
for i, ana_smi in enumerate(analogs):
print("%s\t%s_ANA%03d" % (ana_smi, name, i),
if rand_one:
l = list(analogs)
ana_smi = random.choice(l)
print("%s\t%s_ANA%03d" % (ana_smi, name, 0),
file=output)
else: # print them all
for i, ana_smi in enumerate(analogs):
print("%s\t%s_ANA%03d" % (ana_smi, name, i),
file=output)
count += 1
after = time.time()
dt = after - before
Expand Down

0 comments on commit f3b3282

Please sign in to comment.