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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: PyTFBS
3
- Version: 1.0.2
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.A_1231', 'input_seq_file.fasta', 'out_file.txt')
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.A_1231', 'input_seq_file.fasta', 64, 'out_file.txt')
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.A_1231', 'input_seq_file.fasta', data_dir='my_motif_dir')
68
- predict.win_bin('CEBPB_HUMAN.H11MO.0.A', 'CEBPB_HUMAN.H11MO.0.A_1231', 'input_seq_file.fasta', 64, data_dir='my_motif_dir')
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 + '/par/' + model_id + '_par.pth'
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.A_1231', 'GCF_000001405.40_GRCh38.p14_promoter_1.1k.txt', 'out_file.txt')
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.2
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.A_1231', 'input_seq_file.fasta', 'out_file.txt')
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.A_1231', 'input_seq_file.fasta', 64, 'out_file.txt')
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.A_1231', 'input_seq_file.fasta', data_dir='my_motif_dir')
68
- predict.win_bin('CEBPB_HUMAN.H11MO.0.A', 'CEBPB_HUMAN.H11MO.0.A_1231', 'input_seq_file.fasta', 64, data_dir='my_motif_dir')
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.A_1231', 'input_seq_file.fasta', 'out_file.txt')
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.A_1231', 'input_seq_file.fasta', 64, 'out_file.txt')
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.A_1231', 'input_seq_file.fasta', data_dir='my_motif_dir')
39
- predict.win_bin('CEBPB_HUMAN.H11MO.0.A', 'CEBPB_HUMAN.H11MO.0.A_1231', 'input_seq_file.fasta', 64, data_dir='my_motif_dir')
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
  ```
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "PyTFBS"
7
- version = "1.0.2"
7
+ version = "1.0.4"
8
8
  license = "MIT" # SPDX expression
9
9
  description = "PyTFBS: A Python Package for Transcription Factor Binding Site Prediction"
10
10
  readme = "README.md"
File without changes
File without changes
File without changes