@@ -233,8 +233,8 @@ rule bcftools_mpileup_all_sites:
233233 bam = get_input_bam ,
234234 reference = OUTDIR / "vaf" / "{sample}.reference.fasta" ,
235235 output :
236- mpileup = OUTDIR / "bcftools_mpileup_all_sites " / "{sample}.mpileup.vcf" ,
237- query = OUTDIR / "bcftools_mpileup_all_sites " / "{sample}.query.tsv" ,
236+ mpileup = temp ( OUTDIR / "all_sites " / "{sample}.mpileup.vcf" ) ,
237+ query = temp ( OUTDIR / "all_sites " / "{sample}.query.tsv" ) ,
238238 log :
239239 mpileup = LOGDIR / "bcftools_mpileup_all_sites" / "{sample}.mpileup.txt" ,
240240 query = LOGDIR / "bcftools_mpileup_all_sites" / "{sample}.query.txt" ,
@@ -251,33 +251,41 @@ rule filter_mpileup_all_sites:
251251 min_total_ADF = 0 ,
252252 min_total_ADR = 0 ,
253253 input :
254- OUTDIR / "bcftools_mpileup_all_sites " / "{sample}.query.tsv" ,
254+ OUTDIR / "all_sites " / "{sample}.query.tsv" ,
255255 output :
256- OUTDIR / "bcftools_mpileup_all_sites " / "{sample}.filtered .tsv" ,
256+ temp ( OUTDIR / "all_sites " / "{sample}.filtered_sites .tsv" ) ,
257257 log :
258258 LOGDIR / "filter_mpileup_all_sites" / "{sample}.txt"
259259 run :
260260 import pandas as pd
261261 df = pd .read_csv (input [0 ], sep = "\t " )
262- df ["ref_AD" ] = df .AD .str .split ("," ).apply (lambda values : int (values [0 ]))
263- df ["total_AD" ] = df .AD .str .split ("," ).apply (lambda values : sum (int (n ) for n in values ))
264- df ["total_ADF" ] = df .ADF .str .split ("," ).apply (lambda values : sum (int (n ) for n in values ))
265- df ["total_ADR" ] = df .ADR .str .split ("," ).apply (lambda values : sum (int (n ) for n in values ))
262+ df ["SAMPLE" ] = wildcards .sample
263+ df ["REF_AD" ] = df .AD .str .split ("," ).apply (lambda values : int (values [0 ]))
264+ df ["TOTAL_AD" ] = df .AD .str .split ("," ).apply (lambda values : sum (int (n ) for n in values ))
265+ df ["TOTAL_ADF" ] = df .ADF .str .split ("," ).apply (lambda values : sum (int (n ) for n in values ))
266+ df ["TOTAL_ADR" ] = df .ADR .str .split ("," ).apply (lambda values : sum (int (n ) for n in values ))
266267 df [
267- (df .total_AD >= params .min_total_AD ) &
268- (df .total_ADF >= params .min_total_ADF ) &
269- (df .total_ADR >= params .min_total_ADR )
268+ (df .TOTAL_AD >= params .min_total_AD ) &
269+ (df .TOTAL_ADF >= params .min_total_ADF ) &
270+ (df .TOTAL_ADR >= params .min_total_ADR )
270271 ].to_csv (output [0 ], sep = "\t " , index = False )
271272
272273
273- rule pairwise_trajectory_correlation :
274+ use rule concat_vcf_fields as merge_filtered_mpileup_all_sites with :
275+ input :
276+ expand (OUTDIR / "all_sites" / "{sample}.filtered_sites.tsv" , sample = iter_samples ()),
277+ output :
278+ OUTDIR / f"{ OUTPUT_NAME } .filtered_sites.tsv" ,
279+
280+
281+ rule fill_all_sites :
274282 conda : "../envs/renv.yaml"
275283 input :
276- variants = OUTDIR / f"{ OUTPUT_NAME } .variants.tsv" ,
277- metadata = config [ "METADATA" ] ,
284+ variants = OUTDIR / f"{ OUTPUT_NAME } .variants.tsv" ,
285+ sites = OUTDIR / f" { OUTPUT_NAME } .filtered_sites.tsv" ,
278286 output :
279- table = report ( OUTDIR / "vaf" / "pairwise_trajectory_correlation.csv" ) ,
287+ variants = OUTDIR / f" { OUTPUT_NAME } .variants.all_sites.tsv" ,
280288 log :
281- LOGDIR / "pairwise_trajectory_correlation " / "log.txt"
289+ LOGDIR / "fill_all_sites " / "log.txt"
282290 script :
283- "../scripts/pairwise_trajectory_correlation .R"
291+ "../scripts/fill_all_sites .R"
0 commit comments