Skip to content

Commit f9f3665

Browse files
committed
feat(rule): add BQSR
1 parent 0dec1d6 commit f9f3665

File tree

6 files changed

+56
-5
lines changed

6 files changed

+56
-5
lines changed

Diff for: .test/config/config.yml

+5-1
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,8 @@ data:
33

44
reference:
55
folder: ".test/data"
6-
genome: "placeholder.fa"
6+
genome: "placeholder.fa"
7+
8+
known_sites:
9+
folder: ".test/data"
10+
filename: "placeholder.vcf"

Diff for: .test/data/placeholder.vcf

Whitespace-only changes.

Diff for: .test/data/placeholder.vcf.idx

Whitespace-only changes.

Diff for: config/config.yml

+7-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
data:
2-
folder: "data_folder"
2+
folder: "/home/federico/Desktop/RNA_SNPs_calling/data"
33

44
reference:
5-
folder: "genome_folder"
6-
genome: "genome.fa"
5+
folder: "/home/federico/Desktop/RNA_SNPs_calling/data/reference"
6+
genome: "GRCh38.primary_assembly.genome.fa"
7+
8+
known_sites:
9+
folder: "/home/federico/Desktop/RNA_SNPs_calling/data/reference"
10+
filename: "resources_broad_hg38_v0_Homo_sapiens_assembly38.dbsnp138.vcf"

Diff for: workflow/Snakefile

+7-1
Original file line numberDiff line numberDiff line change
@@ -12,21 +12,27 @@ genome_name = config["reference"]["genome"]
1212
reference = os.path.join(reference_folder, genome_name)
1313
reference_idx = f"{reference}.fai"
1414
reference_dict = f"{reference}.dict"
15+
known_sites_folder = config["known_sites"]["folder"]
16+
known_filename = config["known_sites"]["filename"]
17+
known_sites = os.path.join(known_sites_folder, known_filename)
18+
known_sites_idx = f"{known_sites}.idx"
1519

1620
sample_files = glob.glob(os.path.join(data_folder, "*.bam"))
1721
samples = [os.path.basename(f).replace(".bam", "") for f in sample_files]
1822

1923
read_groups = [f"results/grouped/{sample}.bam" for sample in samples]
2024
deduped_files = [f"results/dedup/{sample}.bam" for sample in samples]
2125
splitted_files = [f"results/split/{sample}.bam" for sample in samples]
26+
recalibrated_files = [f"results/recal/{sample}.bam" for sample in samples]
2227

2328

2429
rule all:
2530
input:
26-
splitted_files,
31+
recalibrated_files,
2732

2833

2934
include: "rules/add_or_replace_rg.smk"
3035
include: "rules/mark_duplicates.smk"
3136
include: "rules/index_genome.smk"
3237
include: "rules/split_n_cigar_reads.smk"
38+
include: "rules/recalibration.smk"

Diff for: workflow/rules/recalibration.smk

+37
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
rule gatk_baserecalibrator:
2+
input:
3+
bam="results/split/{sample}.bam",
4+
ref=reference,
5+
dict=reference_dict,
6+
known=known_sites,
7+
output:
8+
recal_table="results/recal_tables/{sample}.grp",
9+
log:
10+
"logs/baserecalibrator/{sample}.log",
11+
params:
12+
extra="", # optional
13+
java_opts="", # optional
14+
resources:
15+
mem_mb=1024,
16+
wrapper:
17+
"v3.12.1/bio/gatk/baserecalibrator"
18+
19+
20+
rule gatk_applybqsr:
21+
input:
22+
bam="results/split/{sample}.bam",
23+
ref=reference,
24+
dict=reference_dict,
25+
recal_table="results/recal_tables/{sample}.grp",
26+
output:
27+
bam="results/recal/{sample}.bam",
28+
log:
29+
"logs/gatk_applybqsr/{sample}.log",
30+
params:
31+
extra="", # optional
32+
java_opts="", # optional
33+
embed_ref=True, # embed the reference in cram output
34+
resources:
35+
mem_mb=1024,
36+
wrapper:
37+
"v3.12.1/bio/gatk/applybqsr"

0 commit comments

Comments
 (0)