PyTFBS 1.0.2__tar.gz → 1.0.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {pytfbs-1.0.2 → pytfbs-1.0.4}/PKG-INFO +7 -7
- {pytfbs-1.0.2 → pytfbs-1.0.4}/PyTFBS/motif.py +14 -2
- {pytfbs-1.0.2 → pytfbs-1.0.4}/PyTFBS/predict.py +9 -3
- {pytfbs-1.0.2 → pytfbs-1.0.4}/PyTFBS.egg-info/PKG-INFO +7 -7
- {pytfbs-1.0.2 → pytfbs-1.0.4}/README.md +6 -6
- {pytfbs-1.0.2 → pytfbs-1.0.4}/pyproject.toml +1 -1
- {pytfbs-1.0.2 → pytfbs-1.0.4}/LICENSE +0 -0
- {pytfbs-1.0.2 → pytfbs-1.0.4}/PyTFBS/__init__.py +0 -0
- {pytfbs-1.0.2 → pytfbs-1.0.4}/PyTFBS.egg-info/SOURCES.txt +0 -0
- {pytfbs-1.0.2 → pytfbs-1.0.4}/PyTFBS.egg-info/dependency_links.txt +0 -0
- {pytfbs-1.0.2 → pytfbs-1.0.4}/PyTFBS.egg-info/entry_points.txt +0 -0
- {pytfbs-1.0.2 → pytfbs-1.0.4}/PyTFBS.egg-info/requires.txt +0 -0
- {pytfbs-1.0.2 → pytfbs-1.0.4}/PyTFBS.egg-info/top_level.txt +0 -0
- {pytfbs-1.0.2 → pytfbs-1.0.4}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: PyTFBS
|
|
3
|
-
Version: 1.0.
|
|
3
|
+
Version: 1.0.4
|
|
4
4
|
Summary: PyTFBS: A Python Package for Transcription Factor Binding Site Prediction
|
|
5
5
|
Author-email: Tinghua Huang <thua45@126.com>
|
|
6
6
|
License-Expression: MIT
|
|
@@ -46,10 +46,10 @@ from PyTFBS import motif, predict
|
|
|
46
46
|
motif.download_data()
|
|
47
47
|
|
|
48
48
|
# list available models
|
|
49
|
-
motif.list_models(species='Homo sapiens', accuracy=0.9, sensitivity=0.9)
|
|
49
|
+
motif.list_models(species='Homo sapiens', accuracy=0.9, sensitivity=0.8, specificity=0.9, precision=0.8, f1=0.8)
|
|
50
50
|
|
|
51
51
|
# get avaiable motifs
|
|
52
|
-
motifs = motif.get_motifs(species='Homo sapiens', accuracy=0.9, sensitivity=0.9)
|
|
52
|
+
motifs = motif.get_motifs(species='Homo sapiens', accuracy=0.9, sensitivity=0.8, specificity=0.9, precision=0.8, f1=0.8)
|
|
53
53
|
print(motifs)
|
|
54
54
|
|
|
55
55
|
# get models based on motif name
|
|
@@ -57,13 +57,13 @@ models = motif.get_models('RFX2_HUMAN.H11MO.0.A')
|
|
|
57
57
|
print(models)
|
|
58
58
|
|
|
59
59
|
# predict one model
|
|
60
|
-
predict.script('CEBPB_HUMAN.H11MO.0.A', 'CEBPB_HUMAN.H11MO.0.
|
|
60
|
+
predict.script('CEBPB_HUMAN.H11MO.0.A', 'CEBPB_HUMAN.H11MO.0.A', 'input_seq_file.fasta', 'out_file.txt')
|
|
61
61
|
|
|
62
62
|
# speed up using mutil-threading (for Windows OS only)
|
|
63
|
-
predict.win_bin('CEBPB_HUMAN.H11MO.0.A', 'CEBPB_HUMAN.H11MO.0.
|
|
63
|
+
predict.win_bin('CEBPB_HUMAN.H11MO.0.A', 'CEBPB_HUMAN.H11MO.0.A', 'input_seq_file.fasta', 64, 'out_file.txt')
|
|
64
64
|
|
|
65
65
|
# run prediction with user motif data
|
|
66
66
|
# the my_motif_dir should be organized as [[motif], [trace], [par]]
|
|
67
|
-
predict.script('CEBPB_HUMAN.H11MO.0.A', 'CEBPB_HUMAN.H11MO.0.
|
|
68
|
-
predict.win_bin('CEBPB_HUMAN.H11MO.0.A', 'CEBPB_HUMAN.H11MO.0.
|
|
67
|
+
predict.script('CEBPB_HUMAN.H11MO.0.A', 'CEBPB_HUMAN.H11MO.0.A', 'input_seq_file.fasta', data_dir='my_motif_dir')
|
|
68
|
+
predict.win_bin('CEBPB_HUMAN.H11MO.0.A', 'CEBPB_HUMAN.H11MO.0.A', 'input_seq_file.fasta', 64, data_dir='my_motif_dir')
|
|
69
69
|
```
|
|
@@ -125,7 +125,7 @@ def download_data(data_dir=None):
|
|
|
125
125
|
if success:
|
|
126
126
|
print("models installed successful")
|
|
127
127
|
|
|
128
|
-
def list_models(motif_name=None, species=None, accuracy=None, sensitivity=None, data_dir=None):
|
|
128
|
+
def list_models(motif_name=None, species=None, accuracy=None, sensitivity=None, specificity=None, precision=None, f1=None, data_dir=None):
|
|
129
129
|
if data_dir == None:
|
|
130
130
|
data_dir = PyTFBS_data_dir
|
|
131
131
|
index_file = data_dir + '/motif_index.txt'
|
|
@@ -147,12 +147,18 @@ def list_models(motif_name=None, species=None, accuracy=None, sensitivity=None,
|
|
|
147
147
|
continue
|
|
148
148
|
if sensitivity != None and float(lblocks[4]) < sensitivity:
|
|
149
149
|
continue
|
|
150
|
+
if specificity != None and float(lblocks[5]) < specificity:
|
|
151
|
+
continue
|
|
152
|
+
if precision != None and float(lblocks[6]) < precision:
|
|
153
|
+
continue
|
|
154
|
+
if f1 != None and float(lblocks[7]) < f1:
|
|
155
|
+
continue
|
|
150
156
|
result.append(lblocks)
|
|
151
157
|
print(header)
|
|
152
158
|
for rline in result:
|
|
153
159
|
print('\t'.join(rline))
|
|
154
160
|
|
|
155
|
-
def get_motifs(motif_name=None, species=None, accuracy=None, sensitivity=None, data_dir=None):
|
|
161
|
+
def get_motifs(motif_name=None, species=None, accuracy=None, sensitivity=None, specificity=None, precision=None, f1=None, data_dir=None):
|
|
156
162
|
if data_dir == None:
|
|
157
163
|
data_dir = PyTFBS_data_dir
|
|
158
164
|
index_file = data_dir + '/motif_index.txt'
|
|
@@ -174,6 +180,12 @@ def get_motifs(motif_name=None, species=None, accuracy=None, sensitivity=None, d
|
|
|
174
180
|
continue
|
|
175
181
|
if sensitivity != None and float(lblocks[4]) < sensitivity:
|
|
176
182
|
continue
|
|
183
|
+
if specificity != None and float(lblocks[5]) < specificity:
|
|
184
|
+
continue
|
|
185
|
+
if precision != None and float(lblocks[6]) < precision:
|
|
186
|
+
continue
|
|
187
|
+
if f1 != None and float(lblocks[7]) < f1:
|
|
188
|
+
continue
|
|
177
189
|
result.append(lblocks[0])
|
|
178
190
|
return result
|
|
179
191
|
|
|
@@ -338,6 +338,11 @@ def loade_model_pars(model_file, data_dim):
|
|
|
338
338
|
#new_model.eval()
|
|
339
339
|
return model
|
|
340
340
|
|
|
341
|
+
def loade_model_trace(model_file):
|
|
342
|
+
model = torch.jit.load(model_file)
|
|
343
|
+
#new_model.eval()
|
|
344
|
+
return model
|
|
345
|
+
|
|
341
346
|
def script(motif_id, model_id, seq_file, out_file, data_dir=None):
|
|
342
347
|
if data_dir == None:
|
|
343
348
|
data_dir = PyTFBS_data_dir
|
|
@@ -345,7 +350,7 @@ def script(motif_id, model_id, seq_file, out_file, data_dir=None):
|
|
|
345
350
|
print("PyTFBS_data folder can not found!")
|
|
346
351
|
exit(1)
|
|
347
352
|
motif_file = data_dir + '/motif/' + motif_id + '.pwm'
|
|
348
|
-
model_file = data_dir + '/
|
|
353
|
+
model_file = data_dir + '/trace/' + model_id + '_trace.pth'
|
|
349
354
|
if not os.path.exists(motif_file):
|
|
350
355
|
print(motif_file, 'not exist!')
|
|
351
356
|
exit(1)
|
|
@@ -357,7 +362,8 @@ def script(motif_id, model_id, seq_file, out_file, data_dir=None):
|
|
|
357
362
|
exit(1)
|
|
358
363
|
motif_name, motif = read_motif_single(motif_file)
|
|
359
364
|
data_dim = [len(motif) * 5, 1]
|
|
360
|
-
model = loade_model_pars(model_file, data_dim)
|
|
365
|
+
#model = loade_model_pars(model_file, data_dim)
|
|
366
|
+
model = loade_model_trace(model_file)
|
|
361
367
|
# run predict
|
|
362
368
|
fasta, seq_freq = read_fasta(seq_file)
|
|
363
369
|
# seq_freq = [0.22698189046475983, 0.2685381453335145, 0.2744548727333858, 0.22957776564437835, 0.00044732582396156444]
|
|
@@ -410,4 +416,4 @@ def win_bin(motif_id, model_id, seq_file, thread_n, out_file, data_dir=None):
|
|
|
410
416
|
os.system(cmd)
|
|
411
417
|
|
|
412
418
|
if __name__ == '__main__':
|
|
413
|
-
script('CEBPB_HUMAN.H11MO.0.A', 'CEBPB_HUMAN.H11MO.0.
|
|
419
|
+
script('CEBPB_HUMAN.H11MO.0.A', 'CEBPB_HUMAN.H11MO.0.A', 'GCF_000001405.40_GRCh38.p14_promoter_1.1k.txt', 'out_file.txt')
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: PyTFBS
|
|
3
|
-
Version: 1.0.
|
|
3
|
+
Version: 1.0.4
|
|
4
4
|
Summary: PyTFBS: A Python Package for Transcription Factor Binding Site Prediction
|
|
5
5
|
Author-email: Tinghua Huang <thua45@126.com>
|
|
6
6
|
License-Expression: MIT
|
|
@@ -46,10 +46,10 @@ from PyTFBS import motif, predict
|
|
|
46
46
|
motif.download_data()
|
|
47
47
|
|
|
48
48
|
# list available models
|
|
49
|
-
motif.list_models(species='Homo sapiens', accuracy=0.9, sensitivity=0.9)
|
|
49
|
+
motif.list_models(species='Homo sapiens', accuracy=0.9, sensitivity=0.8, specificity=0.9, precision=0.8, f1=0.8)
|
|
50
50
|
|
|
51
51
|
# get avaiable motifs
|
|
52
|
-
motifs = motif.get_motifs(species='Homo sapiens', accuracy=0.9, sensitivity=0.9)
|
|
52
|
+
motifs = motif.get_motifs(species='Homo sapiens', accuracy=0.9, sensitivity=0.8, specificity=0.9, precision=0.8, f1=0.8)
|
|
53
53
|
print(motifs)
|
|
54
54
|
|
|
55
55
|
# get models based on motif name
|
|
@@ -57,13 +57,13 @@ models = motif.get_models('RFX2_HUMAN.H11MO.0.A')
|
|
|
57
57
|
print(models)
|
|
58
58
|
|
|
59
59
|
# predict one model
|
|
60
|
-
predict.script('CEBPB_HUMAN.H11MO.0.A', 'CEBPB_HUMAN.H11MO.0.
|
|
60
|
+
predict.script('CEBPB_HUMAN.H11MO.0.A', 'CEBPB_HUMAN.H11MO.0.A', 'input_seq_file.fasta', 'out_file.txt')
|
|
61
61
|
|
|
62
62
|
# speed up using mutil-threading (for Windows OS only)
|
|
63
|
-
predict.win_bin('CEBPB_HUMAN.H11MO.0.A', 'CEBPB_HUMAN.H11MO.0.
|
|
63
|
+
predict.win_bin('CEBPB_HUMAN.H11MO.0.A', 'CEBPB_HUMAN.H11MO.0.A', 'input_seq_file.fasta', 64, 'out_file.txt')
|
|
64
64
|
|
|
65
65
|
# run prediction with user motif data
|
|
66
66
|
# the my_motif_dir should be organized as [[motif], [trace], [par]]
|
|
67
|
-
predict.script('CEBPB_HUMAN.H11MO.0.A', 'CEBPB_HUMAN.H11MO.0.
|
|
68
|
-
predict.win_bin('CEBPB_HUMAN.H11MO.0.A', 'CEBPB_HUMAN.H11MO.0.
|
|
67
|
+
predict.script('CEBPB_HUMAN.H11MO.0.A', 'CEBPB_HUMAN.H11MO.0.A', 'input_seq_file.fasta', data_dir='my_motif_dir')
|
|
68
|
+
predict.win_bin('CEBPB_HUMAN.H11MO.0.A', 'CEBPB_HUMAN.H11MO.0.A', 'input_seq_file.fasta', 64, data_dir='my_motif_dir')
|
|
69
69
|
```
|
|
@@ -17,10 +17,10 @@ from PyTFBS import motif, predict
|
|
|
17
17
|
motif.download_data()
|
|
18
18
|
|
|
19
19
|
# list available models
|
|
20
|
-
motif.list_models(species='Homo sapiens', accuracy=0.9, sensitivity=0.9)
|
|
20
|
+
motif.list_models(species='Homo sapiens', accuracy=0.9, sensitivity=0.8, specificity=0.9, precision=0.8, f1=0.8)
|
|
21
21
|
|
|
22
22
|
# get avaiable motifs
|
|
23
|
-
motifs = motif.get_motifs(species='Homo sapiens', accuracy=0.9, sensitivity=0.9)
|
|
23
|
+
motifs = motif.get_motifs(species='Homo sapiens', accuracy=0.9, sensitivity=0.8, specificity=0.9, precision=0.8, f1=0.8)
|
|
24
24
|
print(motifs)
|
|
25
25
|
|
|
26
26
|
# get models based on motif name
|
|
@@ -28,13 +28,13 @@ models = motif.get_models('RFX2_HUMAN.H11MO.0.A')
|
|
|
28
28
|
print(models)
|
|
29
29
|
|
|
30
30
|
# predict one model
|
|
31
|
-
predict.script('CEBPB_HUMAN.H11MO.0.A', 'CEBPB_HUMAN.H11MO.0.
|
|
31
|
+
predict.script('CEBPB_HUMAN.H11MO.0.A', 'CEBPB_HUMAN.H11MO.0.A', 'input_seq_file.fasta', 'out_file.txt')
|
|
32
32
|
|
|
33
33
|
# speed up using mutil-threading (for Windows OS only)
|
|
34
|
-
predict.win_bin('CEBPB_HUMAN.H11MO.0.A', 'CEBPB_HUMAN.H11MO.0.
|
|
34
|
+
predict.win_bin('CEBPB_HUMAN.H11MO.0.A', 'CEBPB_HUMAN.H11MO.0.A', 'input_seq_file.fasta', 64, 'out_file.txt')
|
|
35
35
|
|
|
36
36
|
# run prediction with user motif data
|
|
37
37
|
# the my_motif_dir should be organized as [[motif], [trace], [par]]
|
|
38
|
-
predict.script('CEBPB_HUMAN.H11MO.0.A', 'CEBPB_HUMAN.H11MO.0.
|
|
39
|
-
predict.win_bin('CEBPB_HUMAN.H11MO.0.A', 'CEBPB_HUMAN.H11MO.0.
|
|
38
|
+
predict.script('CEBPB_HUMAN.H11MO.0.A', 'CEBPB_HUMAN.H11MO.0.A', 'input_seq_file.fasta', data_dir='my_motif_dir')
|
|
39
|
+
predict.win_bin('CEBPB_HUMAN.H11MO.0.A', 'CEBPB_HUMAN.H11MO.0.A', 'input_seq_file.fasta', 64, data_dir='my_motif_dir')
|
|
40
40
|
```
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|