offtracker 2.10.4__zip → 2.10.6__zip

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.
Files changed (30) hide show
  1. {offtracker-2.10.4/offtracker.egg-info → offtracker-2.10.6}/PKG-INFO +1 -1
  2. {offtracker-2.10.4 → offtracker-2.10.6}/offtracker/_version.py +2 -2
  3. {offtracker-2.10.4 → offtracker-2.10.6/offtracker.egg-info}/PKG-INFO +1 -1
  4. {offtracker-2.10.4 → offtracker-2.10.6}/scripts/offtracker_analysis.py +17 -12
  5. {offtracker-2.10.4 → offtracker-2.10.6}/scripts/offtracker_plot.py +2 -2
  6. {offtracker-2.10.4 → offtracker-2.10.6}/LICENSE.txt +0 -0
  7. {offtracker-2.10.4 → offtracker-2.10.6}/MANIFEST.in +0 -0
  8. {offtracker-2.10.4 → offtracker-2.10.6}/README.md +0 -0
  9. {offtracker-2.10.4 → offtracker-2.10.6}/offtracker/X_offplot.py +0 -0
  10. {offtracker-2.10.4 → offtracker-2.10.6}/offtracker/X_offtracker.py +0 -0
  11. {offtracker-2.10.4 → offtracker-2.10.6}/offtracker/X_sequence.py +0 -0
  12. {offtracker-2.10.4 → offtracker-2.10.6}/offtracker/__init__.py +0 -0
  13. {offtracker-2.10.4 → offtracker-2.10.6}/offtracker/snakefile/Snakefile_QC.smk +0 -0
  14. {offtracker-2.10.4 → offtracker-2.10.6}/offtracker/snakefile/Snakefile_offtracker.smk +0 -0
  15. {offtracker-2.10.4 → offtracker-2.10.6}/offtracker/utility/1.1_bed2fr.py +0 -0
  16. {offtracker-2.10.4 → offtracker-2.10.6}/offtracker/utility/1.3_bdg_normalize_v4.0.py +0 -0
  17. {offtracker-2.10.4 → offtracker-2.10.6}/offtracker/utility/bedGraphToBigWig +0 -0
  18. {offtracker-2.10.4 → offtracker-2.10.6}/offtracker/utility/hg38.chrom.sizes +0 -0
  19. {offtracker-2.10.4 → offtracker-2.10.6}/offtracker/utility/mm10.chrom.sizes +0 -0
  20. {offtracker-2.10.4 → offtracker-2.10.6}/offtracker/utility/offtracker_blacklist_hg38.merged.bed +0 -0
  21. {offtracker-2.10.4 → offtracker-2.10.6}/offtracker/utility/offtracker_blacklist_mm10.merged.bed +0 -0
  22. {offtracker-2.10.4 → offtracker-2.10.6}/offtracker.egg-info/SOURCES.txt +0 -0
  23. {offtracker-2.10.4 → offtracker-2.10.6}/offtracker.egg-info/dependency_links.txt +0 -0
  24. {offtracker-2.10.4 → offtracker-2.10.6}/offtracker.egg-info/requires.txt +0 -0
  25. {offtracker-2.10.4 → offtracker-2.10.6}/offtracker.egg-info/top_level.txt +0 -0
  26. {offtracker-2.10.4 → offtracker-2.10.6}/scripts/offtracker_candidates.py +0 -0
  27. {offtracker-2.10.4 → offtracker-2.10.6}/scripts/offtracker_config.py +0 -0
  28. {offtracker-2.10.4 → offtracker-2.10.6}/scripts/offtracker_qc.py +0 -0
  29. {offtracker-2.10.4 → offtracker-2.10.6}/setup.cfg +0 -0
  30. {offtracker-2.10.4 → offtracker-2.10.6}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: offtracker
3
- Version: 2.10.4
3
+ Version: 2.10.6
4
4
  Summary: Tracking-seq data analysis
5
5
  Home-page: https://github.com/Lan-lab/offtracker
6
6
  Author: Runda Xu
@@ -1,4 +1,4 @@
1
- __version__ = "2.10.4"
1
+ __version__ = "2.10.6"
2
2
  # 2023.08.11. v1.1.0 adding a option for not normalizing the bw file
3
3
  # 2023.10.26. v1.9.0 prerelease for v2.0
4
4
  # 2023.10.27. v2.0.0 大更新,还没微调
@@ -33,4 +33,4 @@ __version__ = "2.10.4"
33
33
  # 2025.04.25. v2.8.0 修复了 offtracker candidates 会把小写序列转换成 N 的 bug
34
34
  # 2025.05.22. v2.9.0 翻新部分代码结构
35
35
  # 2025.06.05. v2.10.0 增加了QC模块。保留了负数score的记录,并在plot时显示为红字。增加了 "--ignore_chr" 用于跳过common chr过滤。
36
- # 2025.06.17. v2.10.4 修复翻新代码结构导致的bug
36
+ # 2025.06.17. v2.10.6 修复翻新代码结构导致的bug
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: offtracker
3
- Version: 2.10.4
3
+ Version: 2.10.6
4
4
  Summary: Tracking-seq data analysis
5
5
  Home-page: https://github.com/Lan-lab/offtracker
6
6
  Author: Runda Xu
@@ -27,7 +27,7 @@ def main():
27
27
  parser.add_argument('--exp' , type=str, default='all', nargs='+', help='A substring mark in the name of experimental samples. The default is to use all samples other than control' )
28
28
  parser.add_argument('--control' , type=str, default='none', nargs='+', help='A substring mark in the name of control samples. The default is no control. "others" for all samples other than --exp.' )
29
29
  parser.add_argument('--fdr' , type=int, default=0.01, help='FDR threshold for the final result. Default is 0.01.')
30
- parser.add_argument('--score' , type=int, default=2, help='Track score threshold for the final result. Default is 2.')
30
+ parser.add_argument('--score' , type=int, default=1.9, help='Track score threshold for the final result. Default is 1.9.')
31
31
  parser.add_argument('--smooth' , type=int, default=1, help='Smooth strength for the signal.')
32
32
  parser.add_argument('--window' , type=int, default=3, help='Window size for smoothing the signal.')
33
33
  parser.add_argument('--binsize' , type=int, default=100, help='Window size for smoothing the signal.')
@@ -253,7 +253,7 @@ def main():
253
253
  ##########################
254
254
  output = f'./temp/df_result_{outname}.csv'
255
255
  if (os.path.isfile(output))&(not args.overwrite):
256
- print(f'skip {outname} as the result exists')
256
+ print(f'skip {output} as the result exists')
257
257
  df_result = pd.read_csv(output, index_col=0)
258
258
  else:
259
259
  if pattern_ctr != 'none':
@@ -349,27 +349,32 @@ def main():
349
349
  df_result['pv'] = df_result['pv'].clip(lower=1e-320)
350
350
  df_result['fdr'] = offtracker.fdr(df_result['pv'])
351
351
  df_result['rank'] = range(1,len(df_result)+1)
352
- df_result.to_csv(output)
352
+ df_result.to_csv(output)
353
+
354
+ output = f'Offtracker_result_{outname}.csv'
355
+ if (os.path.isfile(output))&(not args.overwrite):
356
+ print(f'skip {output} as the result exists')
357
+ else:
353
358
  # 2024.06.03. 以防 fdr<=fdr_thresh 滤掉了 track_score>=2 的位点
354
359
  bool_fdr = df_result['fdr']<=fdr_thresh
355
360
  bool_score = df_result['track_score']>=score_thresh
356
361
  # 2025.06.05. BE可能会形成单边信号,导致 track_score 为负数,也保留
357
- bool_neg_score = df_result['track_score']<-0.5
362
+ bool_neg_score = df_result['track_score']< -1
358
363
  df_output = df_result[bool_fdr|bool_score|bool_neg_score].copy()
359
364
  if pattern_ctr != 'none':
360
365
  df_output = df_output[['target_location', 'best_strand','best_target','deletion','insertion','mismatch',
361
- 'exp_L_length', 'exp_R_length','ctr_L_length','ctr_R_length','L_length','R_length','signal_length',
362
- 'norm_best_seq_score','track_score', 'log2_track_score','fdr','rank']]
366
+ 'exp_L_length', 'exp_R_length','ctr_L_length','ctr_R_length','L_length','R_length','signal_length',
367
+ 'norm_best_seq_score','track_score', 'log2_track_score','fdr','rank']]
363
368
  df_output.columns = ['target_location', 'strand', 'target', 'deletion', 'insertion', 'mismatch',
364
- 'exp_L_length', 'exp_R_length','ctr_L_length','ctr_R_length','L_length','R_length','signal_length',
365
- 'seq_score', 'track_score', 'log2_track_score','FDR', 'rank']
369
+ 'exp_L_length', 'exp_R_length','ctr_L_length','ctr_R_length','L_length','R_length','signal_length',
370
+ 'seq_score', 'track_score', 'log2_track_score','FDR', 'rank']
366
371
  else:
367
372
  df_output = df_output[['target_location', 'best_strand','best_target','deletion','insertion','mismatch',
368
- 'L_length', 'R_length','signal_length',
369
- 'norm_best_seq_score','track_score', 'log2_track_score','fdr','rank']]
373
+ 'L_length', 'R_length','signal_length',
374
+ 'norm_best_seq_score','track_score', 'log2_track_score','fdr','rank']]
370
375
  df_output.columns = ['target_location', 'strand', 'target', 'deletion', 'insertion', 'mismatch',
371
- 'L_length', 'R_length','signal_length',
372
- 'seq_score', 'track_score', 'log2_track_score','FDR', 'rank']
376
+ 'L_length', 'R_length','signal_length',
377
+ 'seq_score', 'track_score', 'log2_track_score','FDR', 'rank']
373
378
  df_output.to_csv(f'Offtracker_result_{outname}.csv', index=False)
374
379
 
375
380
  if args.clean:
@@ -26,10 +26,10 @@ def main():
26
26
  full_seq = gRNA + PAM
27
27
 
28
28
  df_result = pd.read_csv(args.result)
29
- n_pos = len(df_result)
29
+ # n_pos = len(df_result)
30
30
 
31
31
  xoffplot.offtable(df_result, full_seq, length_pam = len(PAM), col_seq='target', threshold=2,
32
- title=f'{outname} ({n_pos} sites)',
32
+ title=f'{outname}',
33
33
  savefig=dir_savefig)
34
34
 
35
35
  return f'The plot is saved as {dir_savefig}'
File without changes
File without changes
File without changes
File without changes
File without changes