offtracker 1.0.1__zip → 2.7.7__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-1.0.1/offtracker.egg-info → offtracker-2.7.7}/PKG-INFO +13 -6
- {offtracker-1.0.1 → offtracker-2.7.7}/README.md +12 -5
- offtracker-2.7.7/offtracker/X_offplot.py +123 -0
- offtracker-2.7.7/offtracker/X_offtracker.py +338 -0
- offtracker-1.0.1/offtracker/X_general.py → offtracker-2.7.7/offtracker/X_sequence.py +18 -5
- {offtracker-1.0.1 → offtracker-2.7.7}/offtracker/__init__.py +1 -1
- offtracker-2.7.7/offtracker/_version.py +27 -0
- offtracker-2.7.7/offtracker/mapping/Snakefile_offtracker +245 -0
- offtracker-2.7.7/offtracker/mapping/offtracker_blacklist_hg38.merged.bed +3846 -0
- offtracker-2.7.7/offtracker/mapping/offtracker_blacklist_mm10.merged.bed +5827 -0
- {offtracker-1.0.1 → offtracker-2.7.7/offtracker.egg-info}/PKG-INFO +13 -6
- {offtracker-1.0.1 → offtracker-2.7.7}/offtracker.egg-info/SOURCES.txt +4 -3
- offtracker-2.7.7/scripts/offtracker_analysis.py +369 -0
- {offtracker-1.0.1 → offtracker-2.7.7}/scripts/offtracker_candidates.py +59 -101
- {offtracker-1.0.1 → offtracker-2.7.7}/scripts/offtracker_config.py +15 -10
- offtracker-1.0.1/offtracker/X_analysis.py +0 -332
- offtracker-1.0.1/offtracker/_version.py +0 -1
- offtracker-1.0.1/offtracker/mapping/Snakefile_Trackseq +0 -193
- offtracker-1.0.1/offtracker/mapping/offtracker_blacklist_hg38.merged.bed +0 -22228
- offtracker-1.0.1/offtracker/mapping/offtracker_blacklist_mm10.merged.bed +0 -9347
- offtracker-1.0.1/scripts/offtracker_analysis.py +0 -407
- {offtracker-1.0.1 → offtracker-2.7.7}/LICENSE.txt +0 -0
- {offtracker-1.0.1 → offtracker-2.7.7}/MANIFEST.in +0 -0
- {offtracker-1.0.1 → offtracker-2.7.7}/offtracker/mapping/1.1_bed2fr_v4.5.py +0 -0
- {offtracker-1.0.1 → offtracker-2.7.7}/offtracker/mapping/1.3_bdg_normalize_v4.0.py +0 -0
- {offtracker-1.0.1 → offtracker-2.7.7}/offtracker/mapping/bedGraphToBigWig +0 -0
- {offtracker-1.0.1 → offtracker-2.7.7}/offtracker/mapping/hg38.chrom.sizes +0 -0
- {offtracker-1.0.1 → offtracker-2.7.7}/offtracker/mapping/mm10.chrom.sizes +0 -0
- {offtracker-1.0.1 → offtracker-2.7.7}/offtracker.egg-info/dependency_links.txt +0 -0
- {offtracker-1.0.1 → offtracker-2.7.7}/offtracker.egg-info/requires.txt +0 -0
- {offtracker-1.0.1 → offtracker-2.7.7}/offtracker.egg-info/top_level.txt +0 -0
- {offtracker-1.0.1 → offtracker-2.7.7}/setup.cfg +0 -0
- {offtracker-1.0.1 → offtracker-2.7.7}/setup.py +0 -0
@@ -0,0 +1,245 @@
|
|
1
|
+
# 2023.08.11. adding a option for not normalizing the bw file
|
2
|
+
# 2024.01.23. add --fixedStep to bigwigCompare for not merging neighbouring bins with equal values.
|
3
|
+
|
4
|
+
configfile: "config.yaml"
|
5
|
+
|
6
|
+
_threads = config["thread"]
|
7
|
+
BinSize = str(config["binsize"])
|
8
|
+
normalize = config["normalize"]
|
9
|
+
output_dir = config["output_dir"]
|
10
|
+
nametype = config["nametype"]
|
11
|
+
suffix = config["suffix"]
|
12
|
+
name1 = nametype.replace('2','1') + '.' + suffix
|
13
|
+
name2 = nametype + '.' + suffix
|
14
|
+
|
15
|
+
import os
|
16
|
+
|
17
|
+
if normalize == "True":
|
18
|
+
rule all:
|
19
|
+
input:
|
20
|
+
expand( os.path.join(output_dir,"{sample}.fw.bed"), sample=config["sample"] ),
|
21
|
+
expand( os.path.join(output_dir,"{sample}.rv.bed"), sample=config["sample"] ),
|
22
|
+
expand( os.path.join(output_dir,"{sample}.fw.scaled.bw"), sample=config["sample"] ),
|
23
|
+
expand( os.path.join(output_dir,"{sample}.rv.scaled.bw"), sample=config["sample"] ),
|
24
|
+
expand( os.path.join(output_dir,"{sample}." + BinSize + ".add.bdg"),sample=config["sample"] ),
|
25
|
+
elif normalize == "False":
|
26
|
+
rule all:
|
27
|
+
input:
|
28
|
+
expand( os.path.join(output_dir,"{sample}.fw.bed"), sample=config["sample"] ),
|
29
|
+
expand( os.path.join(output_dir,"{sample}.rv.bed"), sample=config["sample"] ),
|
30
|
+
expand( os.path.join(output_dir,"{sample}.fw.raw.bw"), sample=config["sample"] ),
|
31
|
+
expand( os.path.join(output_dir,"{sample}.rv.raw.bw"), sample=config["sample"] ),
|
32
|
+
else:
|
33
|
+
raise ValueError('Please provide "True" or "False" for "--normalize" when running offtracker_config.py')
|
34
|
+
|
35
|
+
|
36
|
+
rule chromap:
|
37
|
+
input:
|
38
|
+
R1= lambda w: config["sample"][w.sample] + name1,
|
39
|
+
R2= lambda w: config["sample"][w.sample] + name2
|
40
|
+
threads:
|
41
|
+
_threads
|
42
|
+
params:
|
43
|
+
index=config["index"],
|
44
|
+
fasta=config["fasta"]
|
45
|
+
output:
|
46
|
+
temp(os.path.join(output_dir,"{sample}.chromapx.bed"))
|
47
|
+
shell:
|
48
|
+
"""
|
49
|
+
chromap -l 3000 --low-mem --BED --remove-pcr-duplicates \
|
50
|
+
--min-read-length 10 --allocate-multi-mappings \
|
51
|
+
-x {params.index} -r {params.fasta} -t {threads} -1 {input.R1} -2 {input.R2} -o {output}
|
52
|
+
"""
|
53
|
+
|
54
|
+
if config["blacklist"] != 'none':
|
55
|
+
rule remove_blacklist:
|
56
|
+
input:
|
57
|
+
os.path.join(output_dir,"{sample}.chromapx.bed")
|
58
|
+
threads:
|
59
|
+
_threads
|
60
|
+
params:
|
61
|
+
blacklist=config["blacklist"]
|
62
|
+
output:
|
63
|
+
temp(os.path.join(output_dir,"{sample}.filtered.bed"))
|
64
|
+
shell:
|
65
|
+
"bedtools intersect -a {input} -b {params.blacklist} -v > {output}"
|
66
|
+
|
67
|
+
rule bed2fr:
|
68
|
+
input:
|
69
|
+
os.path.join(output_dir,"{sample}.filtered.bed")
|
70
|
+
threads:
|
71
|
+
_threads
|
72
|
+
params:
|
73
|
+
dir_script=config["script_folder"]
|
74
|
+
output:
|
75
|
+
fw=os.path.join(output_dir,"{sample}.fw.bed"),
|
76
|
+
rv=os.path.join(output_dir,"{sample}.rv.bed")
|
77
|
+
shell:
|
78
|
+
"python {params.dir_script}/1.1_bed2fr_v4.5.py -b {input}"
|
79
|
+
else:
|
80
|
+
rule bed2fr:
|
81
|
+
input:
|
82
|
+
os.path.join(output_dir,"{sample}.chromapx.bed")
|
83
|
+
threads:
|
84
|
+
_threads
|
85
|
+
params:
|
86
|
+
dir_script=config["script_folder"]
|
87
|
+
output:
|
88
|
+
fw=os.path.join(output_dir,"{sample}.fw.bed"),
|
89
|
+
rv=os.path.join(output_dir,"{sample}.rv.bed")
|
90
|
+
shell:
|
91
|
+
"python {params.dir_script}/1.1_bed2fr_v4.5.py -b {input}"
|
92
|
+
|
93
|
+
rule bed2bdg_fw:
|
94
|
+
input:
|
95
|
+
os.path.join(output_dir,"{sample}.fw.bed")
|
96
|
+
threads:
|
97
|
+
_threads
|
98
|
+
params:
|
99
|
+
gl=config["genomelen"]
|
100
|
+
output:
|
101
|
+
temp(os.path.join(output_dir,"{sample}.fw.bdg"))
|
102
|
+
shell:
|
103
|
+
"bedtools genomecov -bg -i {input} -g {params.gl} > {output}"
|
104
|
+
|
105
|
+
rule bed2bdg_rv:
|
106
|
+
input:
|
107
|
+
os.path.join(output_dir,"{sample}.rv.bed")
|
108
|
+
threads:
|
109
|
+
_threads
|
110
|
+
params:
|
111
|
+
gl=config["genomelen"]
|
112
|
+
output:
|
113
|
+
temp(os.path.join(output_dir,"{sample}.rv.bdg"))
|
114
|
+
shell:
|
115
|
+
"bedtools genomecov -bg -i {input} -g {params.gl} > {output}"
|
116
|
+
|
117
|
+
rule bdg_sort_fw:
|
118
|
+
input:
|
119
|
+
fw=os.path.join(output_dir,"{sample}.fw.bdg")
|
120
|
+
threads:
|
121
|
+
_threads
|
122
|
+
output:
|
123
|
+
temp(os.path.join(output_dir,"{sample}.fw.sorted.bdg"))
|
124
|
+
shell:
|
125
|
+
"bedtools sort -i {input.fw} > {output}"
|
126
|
+
|
127
|
+
rule bdg_sort_rv:
|
128
|
+
input:
|
129
|
+
rv=os.path.join(output_dir,"{sample}.rv.bdg")
|
130
|
+
threads:
|
131
|
+
_threads
|
132
|
+
output:
|
133
|
+
temp(os.path.join(output_dir,"{sample}.rv.sorted.bdg"))
|
134
|
+
shell:
|
135
|
+
"bedtools sort -i {input.rv} > {output}"
|
136
|
+
|
137
|
+
if normalize == "True":
|
138
|
+
rule bdg_normalize_fw:
|
139
|
+
input:
|
140
|
+
bdg=os.path.join(output_dir,"{sample}.fw.sorted.bdg"),
|
141
|
+
bed=os.path.join(output_dir,"{sample}.fw.bed")
|
142
|
+
threads:
|
143
|
+
_threads
|
144
|
+
params:
|
145
|
+
dir_script=config["script_folder"]
|
146
|
+
output:
|
147
|
+
temp(os.path.join(output_dir,"{sample}.fw.scaled.bdg"))
|
148
|
+
shell:
|
149
|
+
"python {params.dir_script}/1.3_bdg_normalize_v4.0.py --bdg {input.bdg} --bed {input.bed}"
|
150
|
+
|
151
|
+
rule bdg_normalize_rv:
|
152
|
+
input:
|
153
|
+
bdg=os.path.join(output_dir,"{sample}.rv.sorted.bdg"),
|
154
|
+
bed=os.path.join(output_dir,"{sample}.rv.bed")
|
155
|
+
threads:
|
156
|
+
_threads
|
157
|
+
params:
|
158
|
+
dir_script=config["script_folder"]
|
159
|
+
output:
|
160
|
+
temp(os.path.join(output_dir,"{sample}.rv.scaled.bdg"))
|
161
|
+
shell:
|
162
|
+
"python {params.dir_script}/1.3_bdg_normalize_v4.0.py --bdg {input.bdg} --bed {input.bed}"
|
163
|
+
|
164
|
+
rule bdg2bw_fw:
|
165
|
+
input:
|
166
|
+
os.path.join(output_dir,"{sample}.fw.scaled.bdg")
|
167
|
+
threads:
|
168
|
+
_threads
|
169
|
+
params:
|
170
|
+
gl=config["genomelen"],
|
171
|
+
dir_script=config["script_folder"]
|
172
|
+
output:
|
173
|
+
os.path.join(output_dir,"{sample}.fw.scaled.bw")
|
174
|
+
shell:
|
175
|
+
"{params.dir_script}/bedGraphToBigWig {input} {params.gl} {output}"
|
176
|
+
|
177
|
+
rule bdg2bw_rv:
|
178
|
+
input:
|
179
|
+
os.path.join(output_dir,"{sample}.rv.scaled.bdg")
|
180
|
+
threads:
|
181
|
+
_threads
|
182
|
+
params:
|
183
|
+
gl=config["genomelen"],
|
184
|
+
dir_script=config["script_folder"]
|
185
|
+
output:
|
186
|
+
os.path.join(output_dir,"{sample}.rv.scaled.bw")
|
187
|
+
shell:
|
188
|
+
"{params.dir_script}/bedGraphToBigWig {input} {params.gl} {output}"
|
189
|
+
|
190
|
+
rule bwAdd:
|
191
|
+
input:
|
192
|
+
fw=os.path.join(output_dir,"{sample}.fw.scaled.bw"),
|
193
|
+
rv=os.path.join(output_dir,"{sample}.rv.scaled.bw")
|
194
|
+
threads:
|
195
|
+
_threads
|
196
|
+
output:
|
197
|
+
os.path.join(output_dir,"{sample}." + BinSize + ".add.bdg")
|
198
|
+
shell:
|
199
|
+
"""
|
200
|
+
bigwigCompare --binSize {BinSize} -p {threads} --verbose -o {output} \
|
201
|
+
--outFileFormat bedgraph --fixedStep \
|
202
|
+
--bigwig1 {input.fw} \
|
203
|
+
--bigwig2 {input.rv} \
|
204
|
+
--operation add
|
205
|
+
"""
|
206
|
+
else:
|
207
|
+
rule bdg_reverse_rv:
|
208
|
+
input:
|
209
|
+
os.path.join(output_dir,"{sample}.rv.sorted.bdg")
|
210
|
+
threads:
|
211
|
+
_threads
|
212
|
+
output:
|
213
|
+
temp(os.path.join(output_dir,"{sample}.rv.sorted_r.bdg"))
|
214
|
+
shell:
|
215
|
+
"awk -F '\t' -v OFS='\t' '{{$4=-$4; print}}' {input} > {output}"
|
216
|
+
|
217
|
+
rule bdg2bw_fw:
|
218
|
+
input:
|
219
|
+
os.path.join(output_dir,"{sample}.fw.sorted.bdg")
|
220
|
+
threads:
|
221
|
+
_threads
|
222
|
+
params:
|
223
|
+
gl=config["genomelen"],
|
224
|
+
dir_script=config["script_folder"]
|
225
|
+
output:
|
226
|
+
os.path.join(output_dir,"{sample}.fw.raw.bw")
|
227
|
+
shell:
|
228
|
+
"{params.dir_script}/bedGraphToBigWig {input} {params.gl} {output}"
|
229
|
+
|
230
|
+
rule bdg2bw_rv:
|
231
|
+
input:
|
232
|
+
os.path.join(output_dir,"{sample}.rv.sorted_r.bdg")
|
233
|
+
threads:
|
234
|
+
_threads
|
235
|
+
params:
|
236
|
+
gl=config["genomelen"],
|
237
|
+
dir_script=config["script_folder"]
|
238
|
+
output:
|
239
|
+
os.path.join(output_dir,"{sample}.rv.raw.bw")
|
240
|
+
shell:
|
241
|
+
"{params.dir_script}/bedGraphToBigWig {input} {params.gl} {output}"
|
242
|
+
|
243
|
+
|
244
|
+
|
245
|
+
|