annotate server/transfs.py @ 0:69fe50d03b80 draft

"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
author bgruening
date Fri, 27 Mar 2020 13:11:29 +0000
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
1 # Create dir containing ligands.sdf and protein.pdb
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
2 # Enter docker container like this:
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
3 # docker run -it --rm --gpus all -v $PWD:/root/train/fragalysis_test_files/work:Z informaticsmatters/deep-app-ubuntu-1604:latest bash
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
4 #
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
5 # Now inside the container run like this:
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
6 # mkdir /tmp/work
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
7 # rm -rf /tmp/work/* && python3 work/transfs.py -i work/test-data/ligands.sdf -r work/test-data/receptor.pdb -d 2 -w /tmp/work
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
8 #
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
9 # If testing with no GPU you can use the --mock option to generate random scores
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
10 #
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
11 # Start container for testing like this:
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
12 # docker run -it --rm -v $PWD:$PWD:Z -w $PWD informaticsmatters/deep-app-ubuntu-1604:latest bash
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
13 # Inside container test like this:
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
14 # mkdir /tmp/work
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
15 # cd chemicaltoolbox/xchem-deep
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
16 # rm -rf /tmp/work/* && python3 transfs.py -i test-data/ligands.sdf -r test-data/receptor.pdb -d 2 -w /tmp/work --mock
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
17 #
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
18
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
19 import argparse, os, sys, math
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
20 import subprocess
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
21 import random
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
22 from openbabel import pybel
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
23
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
24 types_file_name = 'inputs.types'
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
25 types_file_name = 'inputs.types'
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
26 predict_file_name = 'predictions.txt'
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
27 work_dir = '.'
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
28 paths = None
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
29 inputs_protein = []
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
30 inputs_ligands = []
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
31
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
32
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
33 def log(*args, **kwargs):
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
34 """Log output to STDERR
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
35 """
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
36 print(*args, file=sys.stderr, ** kwargs)
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
37
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
38 def write_raw_inputs(receptor_pdb, ligands_sdf, distance):
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
39 """
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
40 Analyses the PDB file for waters that clash with each ligand in the SDF and writes out:
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
41 1. a PDB file named like receptor-123-543.pdb where the numeric parts are the waters that have been omitted
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
42 2. a corresponding directory named like receptor-123-543
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
43 3. an SDF named like receptor-123-543/ligands.sdf containing those ligands that correspond to that receptor.
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
44 :param receptor_pdb: A PDB file without the ligand but with the crystallographic waters
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
45 :param ligands_sdf: A SDF with the docked poses
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
46 :param distance: The distance to consider when removing waters. Only heavy atoms in the ligand are considered.
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
47 :return:
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
48 """
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
49
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
50 global work_dir
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
51 global inputs_protein
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
52 global inputs_ligands
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
53 global paths
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
54
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
55
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
56 log("Writing data to", work_dir)
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
57 if not os.path.isdir(work_dir):
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
58 os.mkdir(work_dir)
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
59
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
60 receptor_file = os.path.basename(receptor_pdb)
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
61
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
62 sdf_writers = {}
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
63 paths = []
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
64
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
65 # read the receptor once as we'll need to process it many times
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
66 with open(receptor_pdb, 'r') as f:
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
67 lines = f.readlines()
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
68
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
69 count = 0
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
70 for mol in pybel.readfile("sdf", ligands_sdf):
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
71 count += 1
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
72 if count % 50000 == 0:
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
73 log('Processed', count)
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
74
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
75 try:
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
76 # print("Processing mol", mol.title)
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
77
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
78 clone = pybel.Molecule(mol)
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
79 clone.removeh()
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
80
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
81 coords = []
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
82 for atom in clone.atoms:
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
83 coords.append(atom.coords)
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
84
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
85 watnumcode = ''
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
86
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
87 # getting receptor without waters that will clash with ligand
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
88 new_receptor_pdb = []
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
89 for line in lines:
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
90 if line[17:20] == 'HOH':
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
91 x, y, z = float(line[30:39]), float(line[39:46]), float(line[46:55])
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
92 distances = []
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
93 for i in coords:
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
94 distances.append(math.sqrt((x-i[0])**2 + (y-i[1])**2 + (z-i[2])**2)) # calculates distance based on cartesian coordinates
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
95 if min(distances) > distance: # if all distances are larger than 2.0A, then molecule makes it to new file
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
96 new_receptor_pdb.append(line)
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
97 else:
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
98 watnum = line[23:28].strip()
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
99 # print("Skipped water " + watnum)
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
100 watnumcode += '-' + watnum
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
101 if line[17:20] != 'LIG' and line[17:20] != 'HOH': # ligand lines are also removed
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
102 new_receptor_pdb.append(line)
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
103
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
104
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
105 name = receptor_file[0:-4] + watnumcode
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
106 # print('CODE:', name)
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
107 mol.data['TransFSReceptor'] = name
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
108
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
109
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
110 if watnumcode not in sdf_writers:
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
111 # we've not yet encountered this combination of waters so need to write the PDB file
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
112
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
113 dir = os.path.sep.join([work_dir, name])
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
114 log('WRITING to :', dir)
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
115
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
116 os.mkdir(dir)
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
117 paths.append(dir)
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
118
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
119 sdf_writers[watnumcode] = pybel.Outputfile("sdf", os.path.sep.join([dir, 'ligands.sdf']))
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
120
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
121 # writing into new pdb file
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
122 receptor_writer = open(os.path.sep.join([work_dir, name + '.pdb']), "w+")
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
123 for line in new_receptor_pdb:
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
124 receptor_writer.write(str(line))
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
125 receptor_writer.close()
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
126
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
127 # write the molecule to the corresponding SDF file
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
128 sdf_out = sdf_writers[watnumcode]
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
129 sdf_out.write(mol)
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
130
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
131 except Exception as e:
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
132 log('Failed to handle molecule: '+ str(e))
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
133 continue
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
134
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
135 for writer in sdf_writers.values():
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
136 writer.close()
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
137
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
138 log('Wrote', count, 'molecules and', len(sdf_writers), 'proteins')
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
139
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
140 def write_inputs(protein_file, ligands_file, distance):
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
141 """
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
142 Runs gninatyper on the proteins and ligands and generates the input.types file that will tell the predictor
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
143 what ligands correspond to what proteins.
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
144
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
145 :param protein_file:
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
146 :param ligands_file:
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
147 :param distance:
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
148 :return:
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
149 """
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
150
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
151 global types_file_name
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
152 global work_dir
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
153 global inputs_protein
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
154 global inputs_ligands
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
155 global prepared_ligands
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
156
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
157 write_raw_inputs(protein_file, ligands_file, distance)
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
158
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
159 types_path = os.path.sep.join([work_dir, types_file_name])
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
160 log("Writing types to", types_path)
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
161 with open(types_path, 'w') as types_file:
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
162
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
163 for path in paths:
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
164
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
165 log("Gninatyping ligands in", path)
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
166
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
167 ligands_dir = os.path.sep.join([path, 'ligands'])
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
168 os.mkdir(ligands_dir)
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
169
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
170 cmd1 = ['gninatyper', os.path.sep.join([path, 'ligands.sdf']), os.path.sep.join([ligands_dir, 'ligand'])]
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
171 log('CMD:', cmd1)
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
172 exit_code = subprocess.call(cmd1)
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
173 log("Status:", exit_code)
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
174 if exit_code:
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
175 raise Exception("Failed to write ligands")
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
176 ligand_gninatypes = os.listdir(os.path.sep.join([path, 'ligands']))
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
177
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
178 log("Gninatyping proteins in", path)
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
179
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
180 proteins_dir = os.path.sep.join([path, 'proteins'])
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
181 os.mkdir(proteins_dir)
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
182
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
183 cmd2 = ['gninatyper', path + '.pdb', os.path.sep.join([proteins_dir, 'protein'])]
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
184 log('CMD:', cmd2)
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
185 exit_code = subprocess.call(cmd2)
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
186 log("Status:", exit_code)
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
187 if exit_code:
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
188 raise Exception("Failed to write proteins")
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
189 protein_gninatypes = os.listdir(os.path.sep.join([path, 'proteins']))
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
190
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
191 num_proteins = 0
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
192 num_ligands = 0
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
193
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
194 for protein in protein_gninatypes:
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
195 num_proteins += 1
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
196 num_ligands = 0
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
197 inputs_protein.append(protein)
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
198 inputs_protein.append(os.path.sep.join([path, 'proteins', protein]))
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
199 for ligand in ligand_gninatypes:
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
200 num_ligands += 1
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
201 log("Handling", protein, ligand)
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
202 inputs_ligands.append(os.path.sep.join([path, 'ligands', ligand]))
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
203 line = "0 {0}{3}proteins{3}{1} {0}{3}ligands{3}{2}\n".format(path, protein, ligand, os.path.sep)
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
204 types_file.write(line)
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
205
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
206 return num_proteins, num_ligands
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
207
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
208
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
209 def generate_predictions_filename(work_dir, predict_file_name):
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
210 return "{0}{1}{2}".format(work_dir, os.path.sep, predict_file_name)
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
211
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
212
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
213 def run_predictions():
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
214 global types_file_name
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
215 global predict_file_name
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
216 global work_dir
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
217 # python3 scripts/predict.py -m resources/dense.prototxt -w resources/weights.caffemodel -i work_0/test_set.types >> work_0/caffe_output/predictions.txt
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
218 cmd1 = ['python3', '/train/fragalysis_test_files/scripts/predict.py',
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
219 '-m', '/train/fragalysis_test_files/resources/dense.prototxt',
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
220 '-w', '/train/fragalysis_test_files/resources/weights.caffemodel',
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
221 '-i', os.path.sep.join([work_dir, types_file_name]),
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
222 '-o', os.path.sep.join([work_dir, predict_file_name])]
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
223 log("CMD:", cmd1)
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
224 subprocess.call(cmd1)
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
225
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
226
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
227 def mock_predictions():
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
228 global work_dir
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
229 global predict_file_name
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
230
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
231 log("WARNING: generating mock results instead of running on GPU")
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
232 outfile = generate_predictions_filename(work_dir, predict_file_name)
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
233 count = 0
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
234 with open(outfile, 'w') as predictions:
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
235 for path in paths:
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
236 log("Reading", path)
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
237 protein_gninatypes = os.listdir(os.path.sep.join([path, 'proteins']))
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
238 ligand_gninatypes = os.listdir(os.path.sep.join([path, 'ligands']))
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
239 for protein in protein_gninatypes:
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
240 for ligand in ligand_gninatypes:
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
241 count += 1
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
242 score = random.random()
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
243 line = "{0} | 0 {1}{4}proteins{4}{2} {1}{4}ligands{4}{3}\n".format(score, path, protein, ligand,
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
244 os.path.sep)
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
245 # log("Writing", line)
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
246 predictions.write(line)
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
247
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
248 log('Wrote', count, 'mock predictions')
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
249
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
250
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
251 def read_predictions():
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
252 global predict_file_name
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
253 global work_dir
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
254 scores = {}
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
255 with open("{0}{1}{2}".format(work_dir, os.path.sep, predict_file_name), 'r') as input:
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
256 for line in input:
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
257 # log(line)
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
258 tokens = line.split()
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
259 if len(tokens) == 5 and tokens[1] == '|':
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
260 # log(len(tokens), tokens[0], tokens[3], tokens[4])
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
261 record_no = inputs_ligands.index(tokens[4])
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
262 if record_no is not None:
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
263 # log(record_no, tokens[0])
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
264 scores[record_no] = tokens[0]
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
265 log("Found", len(scores), "scores")
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
266 return scores
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
267
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
268
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
269 def patch_scores_sdf(outfile, scores):
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
270
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
271 counter = 0
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
272 sdf_path = "{0}{1}{2}".format(work_dir, os.path.sep, outfile)
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
273 log("Writing results to {0}".format(sdf_path))
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
274 sdf_file = pybel.Outputfile("sdf", sdf_path)
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
275
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
276 for path in paths:
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
277 for mol in pybel.readfile("sdf", os.path.sep.join([path, 'ligands.sdf'])):
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
278 if counter in scores:
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
279 score = scores[counter]
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
280 # og("Score for record {0} is {1}".format(counter, score))
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
281 mol.data['TransFSScore'] = score
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
282 sdf_file.write(mol)
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
283 else:
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
284 log("No score found for record", counter)
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
285 counter += 1
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
286 sdf_file.close()
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
287
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
288
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
289 def execute(ligands_sdf, protein, outfile, distance, mock=False):
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
290
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
291 write_inputs(protein, ligands_sdf, distance)
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
292 if mock:
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
293 mock_predictions()
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
294 else:
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
295 run_predictions()
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
296 scores = read_predictions()
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
297 patch_scores_sdf(outfile, scores)
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
298
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
299
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
300 def main():
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
301 global work_dir
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
302
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
303 parser = argparse.ArgumentParser(description='XChem deep - pose scoring')
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
304
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
305 parser.add_argument('-i', '--input', help="SDF containing the poses to score)")
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
306 parser.add_argument('-r', '--receptor', help="Receptor file for scoring (PDB format)")
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
307 parser.add_argument('-d', '--distance', type=float, default=2.0, help="Cuttoff for removing waters")
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
308 parser.add_argument('-o', '--outfile', default='output.sdf', help="File name for results")
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
309 parser.add_argument('-w', '--work-dir', default=".", help="Working directory")
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
310 parser.add_argument('--mock', action='store_true', help='Generate mock scores rather than run on GPU')
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
311
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
312 args = parser.parse_args()
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
313 log("XChem deep args: ", args)
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
314
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
315 work_dir = args.work_dir
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
316
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
317 execute(args.input, args.receptor, args.outfile, args.distance, mock=args.mock)
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
318
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
319
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
320 if __name__ == "__main__":
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
321 main()
69fe50d03b80 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/transfs commit d9a9e2f0e12fe9d2c37f632d99f2164df577b4af"
bgruening
parents:
diff changeset
322