forked from zheminzhou/KleTy
-
Notifications
You must be signed in to change notification settings - Fork 1
/
configure.py
88 lines (74 loc) · 6.08 KB
/
configure.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
import os, numpy as np, sys
from shutil import which
dirname = os.path.dirname(os.path.abspath(__file__))
exe = dict(makeblastdb=which('makeblastdb'),
blastn=which('blastn'),
diamond=which('diamond'))
db_folder = os.path.join(dirname, 'db')
dbs = dict(refseqs = os.path.join(db_folder, 'klebsiella.refsets.fas.gz'),
core_genes = os.path.join(db_folder, 'klebsiella.cgmlst'),
repr = os.path.join(db_folder, 'profile.parq'),
hcc = os.path.join(db_folder, 'HierCC.tsv.gz'),
species = os.path.join(db_folder, 'klebsiella.species'),
plast_clu = os.path.join(db_folder, 'plasmids.repr.clu'),
plast_db = os.path.join(db_folder, 'plasmids.repr.fas'),
resfams = os.path.join(db_folder, 'resfams_db'),
amr_dbs = dict(nucl=[os.path.join(db_folder, 'AMR_CDS.gz'), None, 90, 50],
nuc2=[os.path.join(db_folder, 'AMR_DNA.gz'), os.path.join(db_folder, 'AMR_DNA-mutation.tab'), 90, 50],
prot=[os.path.join(db_folder, 'AMRProt.gz'), os.path.join(db_folder, 'AMRProt-mutation.tab'), 85, 50],
nuc_vir=[os.path.join(db_folder, 'virulence.fasta'), None, 90, 50],
nuc_plasmids=[os.path.join(db_folder, 'plasmids', 'inc.fas'), None, 90, 60],
prot_plasmids=[os.path.join(db_folder, 'plasmids', 'genes.faa'), None, 90, 60])
)
scheme_info = dict(min_iden = 0.65, min_frag=0.6, max_iden=0.95)
blosum62 = np.array(
[4., -2., 0., -2., -1., -2., 0., -2., -1., 0., -1., -1., -1., -2., 0., -1., -1., -1., 1., 0., -4., 0.,
-3., 0., -2., -1., 0., 0., 0., 0., 0., 0., -2., 4., -3., 4., 1., -3., -1., 0., -3., 0., 0., -4.,
-3., 3., 0., -2., 0., -1., 0., -1., -4., -3., -4., -1., -3., 1., 0., 0., 0., 0., 0., 0., 0., -3.,
9., -3., -4., -2., -3., -3., -1., 0., -3., -1., -1., -3., 0., -3., -3., -3., -1., -1., -4., -1., -2., -2.,
-2., -3., 0., 0., 0., 0., 0., 0., -2., 4., -3., 6., 2., -3., -1., -1., -3., 0., -1., -4., -3., 1.,
0., -1., 0., -2., 0., -1., -4., -3., -4., -1., -3., 1., 0., 0., 0., 0., 0., 0., -1., 1., -4., 2.,
5., -3., -2., 0., -3., 0., 1., -3., -2., 0., 0., -1., 2., 0., 0., -1., -4., -2., -3., -1., -2., 4.,
0., 0., 0., 0., 0., 0., -2., -3., -2., -3., -3., 6., -3., -1., 0., 0., -3., 0., 0., -3., 0., -4.,
-3., -3., -2., -2., -4., -1., 1., -1., 3., -3., 0., 0., 0., 0., 0., 0., 0., -1., -3., -1., -2., -3.,
6., -2., -4., 0., -2., -4., -3., 0., 0., -2., -2., -2., 0., -2., -4., -3., -2., -1., -3., -2., 0., 0.,
0., 0., 0., 0., -2., 0., -3., -1., 0., -1., -2., 8., -3., 0., -1., -3., -2., 1., 0., -2., 0., 0.,
-1., -2., -4., -3., -2., -1., 2., 0., 0., 0., 0., 0., 0., 0., -1., -3., -1., -3., -3., 0., -4., -3.,
4., 0., -3., 2., 1., -3., 0., -3., -3., -3., -2., -1., -4., 3., -3., -1., -1., -3., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., -1., 0., -3., -1., 1., -3., -2., -1., -3., 0.,
5., -2., -1., 0., 0., -1., 1., 2., 0., -1., -4., -2., -3., -1., -2., 1., 0., 0., 0., 0., 0., 0.,
-1., -4., -1., -4., -3., 0., -4., -3., 2., 0., -2., 4., 2., -3., 0., -3., -2., -2., -2., -1., -4., 1.,
-2., -1., -1., -3., 0., 0., 0., 0., 0., 0., -1., -3., -1., -3., -2., 0., -3., -2., 1., 0., -1., 2.,
5., -2., 0., -2., 0., -1., -1., -1., -4., 1., -1., -1., -1., -1., 0., 0., 0., 0., 0., 0., -2., 3.,
-3., 1., 0., -3., 0., 1., -3., 0., 0., -3., -2., 6., 0., -2., 0., 0., 1., 0., -4., -3., -4., -1.,
-2., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., -1., -2., -3., -1.,
-1., -4., -2., -2., -3., 0., -1., -3., -2., -2., 0., 7., -1., -2., -1., -1., -4., -2., -4., -2., -3., -1.,
0., 0., 0., 0., 0., 0., -1., 0., -3., 0., 2., -3., -2., 0., -3., 0., 1., -2., 0., 0., 0., -1.,
5., 1., 0., -1., -4., -2., -2., -1., -1., 3., 0., 0., 0., 0., 0., 0., -1., -1., -3., -2., 0., -3.,
-2., 0., -3., 0., 2., -2., -1., 0., 0., -2., 1., 5., -1., -1., -4., -3., -3., -1., -2., 0., 0., 0.,
0., 0., 0., 0., 1., 0., -1., 0., 0., -2., 0., -1., -2., 0., 0., -2., -1., 1., 0., -1., 0., -1.,
4., 1., -4., -2., -3., 0., -2., 0., 0., 0., 0., 0., 0., 0., 0., -1., -1., -1., -1., -2., -2., -2.,
-1., 0., -1., -1., -1., 0., 0., -1., -1., -1., 1., 5., -4., 0., -2., 0., -2., -1., 0., 0., 0., 0.,
0., 0., -4., -4., -4., -4., -4., -4., -4., -4., -4., 0., -4., -4., -4., -4., 0., -4., -4., -4., -4., -4.,
1., -4., -4., -4., -4., -4., 0., 0., 0., 0., 0., 0., 0., -3., -1., -3., -2., -1., -3., -3., 3., 0.,
-2., 1., 1., -3., 0., -2., -2., -3., -2., 0., -4., 4., -3., -1., -1., -2., 0., 0., 0., 0., 0., 0.,
-3., -4., -2., -4., -3., 1., -2., -2., -3., 0., -3., -2., -1., -4., 0., -4., -2., -3., -3., -2., -4., -3.,
11., -2., 2., -3., 0., 0., 0., 0., 0., 0., 0., -1., -2., -1., -1., -1., -1., -1., -1., 0., -1., -1.,
-1., -1., 0., -2., -1., -1., 0., 0., -4., -1., -2., -1., -1., -1., 0., 0., 0., 0., 0., 0., -2., -3.,
-2., -3., -2., 3., -3., 2., -1., 0., -2., -1., -1., -2., 0., -3., -1., -2., -2., -2., -4., -1., 2., -1.,
7., -2., 0., 0., 0., 0., 0., 0., -1., 1., -3., 1., 4., -3., -2., 0., -3., 0., 1., -3., -1., 0.,
0., -1., 3., 0., 0., -1., -4., -2., -3., -1., -2., 4., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])
def install() :
import subprocess
if os.path.isfile(os.path.join(db_folder, 'plasmids.repr.fas.gz')) and not os.path.isfile(os.path.join(db_folder, 'plasmids.repr.fas.nsq')) :
sys.stderr.write('Install plasmid database. This may take a while, but needs to be run only once. \n')
fa_file = os.path.join(db_folder, 'plasmids.repr.fas')
subprocess.Popen('gzip -cd {0}.gz > {0}'.format(fa_file), shell=True).communicate()
subprocess.Popen('{0} -in {1} -dbtype nucl'.format(exe['makeblastdb'], fa_file).split()).communicate()
os.unlink(fa_file)
sys.stderr.write('DONE\n')
if __name__ == '__main__' :
install()