offtracker 2.10.1__zip → 2.10.3__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.
- {offtracker-2.10.1/offtracker.egg-info → offtracker-2.10.3}/PKG-INFO +1 -1
- {offtracker-2.10.1 → offtracker-2.10.3}/offtracker/X_sequence.py +4 -4
- {offtracker-2.10.1 → offtracker-2.10.3}/offtracker/_version.py +2 -3
- {offtracker-2.10.1 → offtracker-2.10.3}/offtracker/snakefile/Snakefile_offtracker.smk +16 -16
- {offtracker-2.10.1 → offtracker-2.10.3/offtracker.egg-info}/PKG-INFO +1 -1
- {offtracker-2.10.1 → offtracker-2.10.3}/scripts/offtracker_config.py +1 -2
- {offtracker-2.10.1 → offtracker-2.10.3}/scripts/offtracker_qc.py +1 -3
- {offtracker-2.10.1 → offtracker-2.10.3}/LICENSE.txt +0 -0
- {offtracker-2.10.1 → offtracker-2.10.3}/MANIFEST.in +0 -0
- {offtracker-2.10.1 → offtracker-2.10.3}/README.md +0 -0
- {offtracker-2.10.1 → offtracker-2.10.3}/offtracker/X_offplot.py +0 -0
- {offtracker-2.10.1 → offtracker-2.10.3}/offtracker/X_offtracker.py +0 -0
- {offtracker-2.10.1 → offtracker-2.10.3}/offtracker/__init__.py +0 -0
- {offtracker-2.10.1 → offtracker-2.10.3}/offtracker/snakefile/Snakefile_QC.smk +0 -0
- {offtracker-2.10.1 → offtracker-2.10.3}/offtracker/utility/1.1_bed2fr.py +0 -0
- {offtracker-2.10.1 → offtracker-2.10.3}/offtracker/utility/1.3_bdg_normalize_v4.0.py +0 -0
- {offtracker-2.10.1 → offtracker-2.10.3}/offtracker/utility/bedGraphToBigWig +0 -0
- {offtracker-2.10.1 → offtracker-2.10.3}/offtracker/utility/hg38.chrom.sizes +0 -0
- {offtracker-2.10.1 → offtracker-2.10.3}/offtracker/utility/mm10.chrom.sizes +0 -0
- {offtracker-2.10.1 → offtracker-2.10.3}/offtracker/utility/offtracker_blacklist_hg38.merged.bed +0 -0
- {offtracker-2.10.1 → offtracker-2.10.3}/offtracker/utility/offtracker_blacklist_mm10.merged.bed +0 -0
- {offtracker-2.10.1 → offtracker-2.10.3}/offtracker.egg-info/SOURCES.txt +0 -0
- {offtracker-2.10.1 → offtracker-2.10.3}/offtracker.egg-info/dependency_links.txt +0 -0
- {offtracker-2.10.1 → offtracker-2.10.3}/offtracker.egg-info/requires.txt +0 -0
- {offtracker-2.10.1 → offtracker-2.10.3}/offtracker.egg-info/top_level.txt +0 -0
- {offtracker-2.10.1 → offtracker-2.10.3}/scripts/offtracker_analysis.py +0 -0
- {offtracker-2.10.1 → offtracker-2.10.3}/scripts/offtracker_candidates.py +0 -0
- {offtracker-2.10.1 → offtracker-2.10.3}/scripts/offtracker_plot.py +0 -0
- {offtracker-2.10.1 → offtracker-2.10.3}/setup.cfg +0 -0
- {offtracker-2.10.1 → offtracker-2.10.3}/setup.py +0 -0
@@ -155,8 +155,8 @@ def detect_fastq(folder, n_subfolder, NGS_type='paired-end'):
|
|
155
155
|
if len(files_R2) > 0:
|
156
156
|
files_R2 = pd.Series(files_R2).sort_values().reset_index(drop=True)
|
157
157
|
# 拆分文件名
|
158
|
-
suffix = files_R2.str.extract('(\.fastq.*|\.fq.*)',expand=False)
|
159
|
-
prefix = files_R2.str.extract('(.*)(?:.fq|.fastq)',expand=False)
|
158
|
+
suffix = files_R2.str.extract(r'(\.fastq.*|\.fq.*)',expand=False)
|
159
|
+
prefix = files_R2.str.extract(r'(.*)(?:.fq|.fastq)',expand=False)
|
160
160
|
# 将 prefix 进一步拆分为 sample_dir (真样品名) 和 nametype (某种统一后缀),支持五种样本名后缀
|
161
161
|
nametype = []
|
162
162
|
sample_dir = []
|
@@ -194,8 +194,8 @@ def detect_fastq(folder, n_subfolder, NGS_type='paired-end'):
|
|
194
194
|
#
|
195
195
|
if len(files_R1) > 0:
|
196
196
|
# 拆分文件名
|
197
|
-
suffix = files_R1.str.extract('(\.fastq.*|\.fq.*)',expand=False)
|
198
|
-
prefix = files_R1.str.extract('(.*)(?:.fq|.fastq)',expand=False)
|
197
|
+
suffix = files_R1.str.extract(r'(\.fastq.*|\.fq.*)',expand=False)
|
198
|
+
prefix = files_R1.str.extract(r'(.*)(?:.fq|.fastq)',expand=False)
|
199
199
|
# 单端模式下,所有前缀都视为样品名
|
200
200
|
sample_names = prefix.apply(os.path.basename)
|
201
201
|
else:
|
@@ -1,4 +1,4 @@
|
|
1
|
-
__version__ = "2.10.
|
1
|
+
__version__ = "2.10.3"
|
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,5 +33,4 @@ __version__ = "2.10.1"
|
|
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.
|
37
|
-
|
36
|
+
# 2025.06.17. v2.10.3 修复翻新代码结构导致的bug
|
@@ -40,7 +40,7 @@ rule chromap:
|
|
40
40
|
R1=lambda w: _files_R1[w.sample],
|
41
41
|
R2=lambda w: _files_R2[w.sample]
|
42
42
|
threads:
|
43
|
-
|
43
|
+
_thread
|
44
44
|
params:
|
45
45
|
index=config["index"],
|
46
46
|
fasta=config["fasta"]
|
@@ -58,7 +58,7 @@ if config["blacklist"] != 'none':
|
|
58
58
|
input:
|
59
59
|
os.path.join(_output_dir,"{sample}.chromapx.bed")
|
60
60
|
threads:
|
61
|
-
|
61
|
+
_thread
|
62
62
|
params:
|
63
63
|
blacklist=config["blacklist"]
|
64
64
|
output:
|
@@ -70,7 +70,7 @@ if config["blacklist"] != 'none':
|
|
70
70
|
input:
|
71
71
|
os.path.join(_output_dir,"{sample}.filtered.bed")
|
72
72
|
threads:
|
73
|
-
|
73
|
+
_thread
|
74
74
|
params:
|
75
75
|
dir_script=config["utility_dir"],
|
76
76
|
ignore_chr=config["ignore_chr"],
|
@@ -84,7 +84,7 @@ else:
|
|
84
84
|
input:
|
85
85
|
os.path.join(_output_dir,"{sample}.chromapx.bed")
|
86
86
|
threads:
|
87
|
-
|
87
|
+
_thread
|
88
88
|
params:
|
89
89
|
dir_script=config["utility_dir"],
|
90
90
|
ignore_chr=config["ignore_chr"],
|
@@ -98,7 +98,7 @@ rule bed2bdg_fw:
|
|
98
98
|
input:
|
99
99
|
os.path.join(_output_dir,"{sample}.fw.bed")
|
100
100
|
threads:
|
101
|
-
|
101
|
+
_thread
|
102
102
|
params:
|
103
103
|
gl=config["genomelen"]
|
104
104
|
output:
|
@@ -110,7 +110,7 @@ rule bed2bdg_rv:
|
|
110
110
|
input:
|
111
111
|
os.path.join(_output_dir,"{sample}.rv.bed")
|
112
112
|
threads:
|
113
|
-
|
113
|
+
_thread
|
114
114
|
params:
|
115
115
|
gl=config["genomelen"]
|
116
116
|
output:
|
@@ -122,7 +122,7 @@ rule bdg_sort_fw:
|
|
122
122
|
input:
|
123
123
|
fw=os.path.join(_output_dir,"{sample}.fw.bdg")
|
124
124
|
threads:
|
125
|
-
|
125
|
+
_thread
|
126
126
|
output:
|
127
127
|
temp(os.path.join(_output_dir,"{sample}.fw.sorted.bdg"))
|
128
128
|
shell:
|
@@ -132,7 +132,7 @@ rule bdg_sort_rv:
|
|
132
132
|
input:
|
133
133
|
rv=os.path.join(_output_dir,"{sample}.rv.bdg")
|
134
134
|
threads:
|
135
|
-
|
135
|
+
_thread
|
136
136
|
output:
|
137
137
|
temp(os.path.join(_output_dir,"{sample}.rv.sorted.bdg"))
|
138
138
|
shell:
|
@@ -144,7 +144,7 @@ if _normalize == "True":
|
|
144
144
|
bdg=os.path.join(_output_dir,"{sample}.fw.sorted.bdg"),
|
145
145
|
bed=os.path.join(_output_dir,"{sample}.fw.bed")
|
146
146
|
threads:
|
147
|
-
|
147
|
+
_thread
|
148
148
|
params:
|
149
149
|
dir_script=config["utility_dir"]
|
150
150
|
output:
|
@@ -157,7 +157,7 @@ if _normalize == "True":
|
|
157
157
|
bdg=os.path.join(_output_dir,"{sample}.rv.sorted.bdg"),
|
158
158
|
bed=os.path.join(_output_dir,"{sample}.rv.bed")
|
159
159
|
threads:
|
160
|
-
|
160
|
+
_thread
|
161
161
|
params:
|
162
162
|
dir_script=config["utility_dir"]
|
163
163
|
output:
|
@@ -169,7 +169,7 @@ if _normalize == "True":
|
|
169
169
|
input:
|
170
170
|
os.path.join(_output_dir,"{sample}.fw.scaled.bdg")
|
171
171
|
threads:
|
172
|
-
|
172
|
+
_thread
|
173
173
|
params:
|
174
174
|
gl=config["genomelen"],
|
175
175
|
dir_script=config["utility_dir"]
|
@@ -182,7 +182,7 @@ if _normalize == "True":
|
|
182
182
|
input:
|
183
183
|
os.path.join(_output_dir,"{sample}.rv.scaled.bdg")
|
184
184
|
threads:
|
185
|
-
|
185
|
+
_thread
|
186
186
|
params:
|
187
187
|
gl=config["genomelen"],
|
188
188
|
dir_script=config["utility_dir"]
|
@@ -196,7 +196,7 @@ if _normalize == "True":
|
|
196
196
|
fw=os.path.join(_output_dir,"{sample}.fw.scaled.bw"),
|
197
197
|
rv=os.path.join(_output_dir,"{sample}.rv.scaled.bw")
|
198
198
|
threads:
|
199
|
-
|
199
|
+
_thread
|
200
200
|
output:
|
201
201
|
os.path.join(_output_dir,"{sample}." + _BinSize + ".add.bdg")
|
202
202
|
shell:
|
@@ -212,7 +212,7 @@ else:
|
|
212
212
|
input:
|
213
213
|
os.path.join(_output_dir,"{sample}.rv.sorted.bdg")
|
214
214
|
threads:
|
215
|
-
|
215
|
+
_thread
|
216
216
|
output:
|
217
217
|
temp(os.path.join(_output_dir,"{sample}.rv.sorted_r.bdg"))
|
218
218
|
shell:
|
@@ -222,7 +222,7 @@ else:
|
|
222
222
|
input:
|
223
223
|
os.path.join(_output_dir,"{sample}.fw.sorted.bdg")
|
224
224
|
threads:
|
225
|
-
|
225
|
+
_thread
|
226
226
|
params:
|
227
227
|
gl=config["genomelen"],
|
228
228
|
dir_script=config["utility_dir"]
|
@@ -235,7 +235,7 @@ else:
|
|
235
235
|
input:
|
236
236
|
os.path.join(_output_dir,"{sample}.rv.sorted_r.bdg")
|
237
237
|
threads:
|
238
|
-
|
238
|
+
_thread
|
239
239
|
params:
|
240
240
|
gl=config["genomelen"],
|
241
241
|
dir_script=config["utility_dir"]
|
@@ -61,7 +61,7 @@ else:
|
|
61
61
|
args.ignore_chr = ''
|
62
62
|
|
63
63
|
# 搜索 folder 的 n级子目录下的所有 fastq/fastq.gz/fq/fq.gz 文件
|
64
|
-
sample_names, files_R1, files_R2 = xseq.detect_fastq(args.folder, n_subfolder=args.subfolder
|
64
|
+
sample_names, files_R1, files_R2 = xseq.detect_fastq(args.folder, n_subfolder=args.subfolder)
|
65
65
|
|
66
66
|
assert not isinstance(sample_names, str), 'No fastq file is detected!'
|
67
67
|
|
@@ -69,7 +69,6 @@ dict_yaml = {
|
|
69
69
|
# fastq 信息
|
70
70
|
'files_R1':dict(zip(sample_names,files_R1)),
|
71
71
|
'files_R2':dict(zip(sample_names,files_R2)), # 单端 files_R2=[] 结果会自动为 {}
|
72
|
-
'NGS_type':args.NGS_type,
|
73
72
|
# 输入输出文件夹
|
74
73
|
'input_dir':args.folder,
|
75
74
|
'output_dir':args.outdir,
|
@@ -21,7 +21,6 @@ parser.add_argument('-f','--folder', type=str, required=True, help='Direc
|
|
21
21
|
parser.add_argument('-o','--outdir', type=str, default='same', help='The output folder')
|
22
22
|
parser.add_argument('--subfolder' , type=int, default=0, help='subfolder level')
|
23
23
|
parser.add_argument('-t','--thread', type=int, default=8, help='Number of threads to be used')
|
24
|
-
parser.add_argument('--NGS_type' , type=str, default='paired-end', help='paired-end or single-end')
|
25
24
|
|
26
25
|
args = parser.parse_args()
|
27
26
|
|
@@ -35,7 +34,7 @@ else:
|
|
35
34
|
os.makedirs(args.outdir)
|
36
35
|
|
37
36
|
# 搜索 folder 的 n级子目录下的所有 fastq/fastq.gz/fq/fq.gz 文件
|
38
|
-
sample_names, files_R1, files_R2 = xseq.detect_fastq(args.folder, n_subfolder=args.subfolder
|
37
|
+
sample_names, files_R1, files_R2 = xseq.detect_fastq(args.folder, n_subfolder=args.subfolder)
|
39
38
|
|
40
39
|
assert not isinstance(sample_names, str), 'No fastq file is detected!'
|
41
40
|
|
@@ -43,7 +42,6 @@ dict_yaml = {
|
|
43
42
|
# fastq 信息
|
44
43
|
'files_R1':dict(zip(sample_names,files_R1)),
|
45
44
|
'files_R2':dict(zip(sample_names,files_R2)), # 单端 files_R2=[] 结果会自动为 {}
|
46
|
-
'NGS_type':args.NGS_type,
|
47
45
|
# 输入输出文件夹
|
48
46
|
'input_dir':args.folder,
|
49
47
|
'output_dir':args.outdir,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{offtracker-2.10.1 → offtracker-2.10.3}/offtracker/utility/offtracker_blacklist_hg38.merged.bed
RENAMED
File without changes
|
{offtracker-2.10.1 → offtracker-2.10.3}/offtracker/utility/offtracker_blacklist_mm10.merged.bed
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|