Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cnv for real now #513

Merged
merged 47 commits into from
Apr 14, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
c894353
Add in controlfreec sw
FriederikeHanssen Mar 25, 2022
3358c23
nf-core update mpileup
FriederikeHanssen Mar 25, 2022
98c0ddc
first controlfreec version
FriederikeHanssen Mar 25, 2022
2f51ecc
install controlfreec again with significance script
FriederikeHanssen Mar 25, 2022
5f070bf
add controlfreec plotting modules
FriederikeHanssen Mar 25, 2022
44a1a37
Install freec2circos
FriederikeHanssen Mar 26, 2022
c0473a9
Work on pari contronlfreec implementation to get tests to pass
FriederikeHanssen Mar 26, 2022
ffe76cd
First running version of ControlFreec
FriederikeHanssen Mar 28, 2022
245c1d9
nf-core modules update freec to fix typo
FriederikeHanssen Mar 30, 2022
be78070
fix manta-strelka combination output channel name
FriederikeHanssen Mar 30, 2022
241ef86
add nextflow config with test args for freec
FriederikeHanssen Mar 30, 2022
577cff8
Fix StrelkaBP input mapping
FriederikeHanssen Mar 30, 2022
a36a986
Add StrelkaBP tests
FriederikeHanssen Mar 30, 2022
20667a7
Add controlfreec paired conf
FriederikeHanssen Mar 30, 2022
0a33326
Copy controlfreec map :crying:
FriederikeHanssen Mar 31, 2022
afda89c
same quotes, same spaces
FriederikeHanssen Mar 31, 2022
a7ce499
Add tumor only controlfreec (can't test, as test data won't pass)
FriederikeHanssen Apr 5, 2022
6ab729e
Make controlfreec workflow agnostic to paired or single input
FriederikeHanssen Apr 7, 2022
47e0497
add required cf input to tumor vc workflow
FriederikeHanssen Apr 7, 2022
163c154
Adapt fodler structure to use controlfreec subworkflow
FriederikeHanssen Apr 7, 2022
6390a5d
nf-core modules update -all
FriederikeHanssen Apr 8, 2022
fa6de98
nf-core modules update -all
FriederikeHanssen Apr 8, 2022
817d718
prettier
FriederikeHanssen Apr 8, 2022
50b1dda
tests pass
FriederikeHanssen Apr 8, 2022
fffedb7
update samtools to 1.15.1
FriederikeHanssen Apr 11, 2022
5c26303
Add CF testing
FriederikeHanssen Apr 11, 2022
f8681b2
see if removing controlfreec tests fixes log not found error
FriederikeHanssen Apr 11, 2022
6e8b5b9
see if removing controlfreec tests fixes log not found error
FriederikeHanssen Apr 11, 2022
a64dce0
Merge branch 'dev' into cnv_for_real_now
FriederikeHanssen Apr 11, 2022
16372f8
update manta
FriederikeHanssen Apr 12, 2022
71c317c
Finish up somatic CF, works locally tests won't pass because of local…
FriederikeHanssen Apr 13, 2022
c34c4fd
Functional Tumoronly Cf workflow
FriederikeHanssen Apr 13, 2022
50f4137
add optional tar.gz for chromosome files
FriederikeHanssen Apr 13, 2022
2ba2458
comment my decisions
FriederikeHanssen Apr 13, 2022
79865e4
use test data from test data repo
FriederikeHanssen Apr 13, 2022
1b8daca
Add untar module
FriederikeHanssen Apr 13, 2022
c0187af
make the linters happy
FriederikeHanssen Apr 13, 2022
c07eb79
Merge branch 'dev' into cnv_for_real_now
FriederikeHanssen Apr 13, 2022
a82f588
add cf to CI test
FriederikeHanssen Apr 13, 2022
3351d2a
Fix output paths
FriederikeHanssen Apr 14, 2022
97b0999
Update conf/modules.config
FriederikeHanssen Apr 14, 2022
33d908f
update schema
FriederikeHanssen Apr 14, 2022
134c8de
update schema
FriederikeHanssen Apr 14, 2022
42dc81c
Fix intend
FriederikeHanssen Apr 14, 2022
88767f5
remove empty workflow
FriederikeHanssen Apr 14, 2022
1ac969f
prettier
FriederikeHanssen Apr 14, 2022
9d79d70
update modules
FriederikeHanssen Apr 14, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ jobs:
- "aligner"
- "annotation"
- "default"
- "controlfreec"
- "deepvariant"
- "freebayes"
- "gatk4_spark"
Expand Down
3 changes: 0 additions & 3 deletions conf/igenomes.config
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ params {
ac_loci_gc = "${params.igenomes_base}/Homo_sapiens/GATK/GRCh37/Annotation/ASCAT/1000G_phase3_20130502_SNP_maf0.3.loci.gc"
bwa = "${params.igenomes_base}/Homo_sapiens/GATK/GRCh37/Sequence/BWAIndex/"
chr_dir = "${params.igenomes_base}/Homo_sapiens/GATK/GRCh37/Sequence/Chromosomes"
chr_length = "${params.igenomes_base}/Homo_sapiens/GATK/GRCh37/Sequence/Length/human_g1k_v37_decoy.len"
dbsnp = "${params.igenomes_base}/Homo_sapiens/GATK/GRCh37/Annotation/GATKBundle/dbsnp_138.b37.vcf"
dbsnp_tbi = "${params.igenomes_base}/Homo_sapiens/GATK/GRCh37/Annotation/GATKBundle/dbsnp_138.b37.vcf.idx"
dict = "${params.igenomes_base}/Homo_sapiens/GATK/GRCh37/Sequence/WholeGenomeFasta/human_g1k_v37_decoy.dict"
Expand All @@ -40,7 +39,6 @@ params {
bwamem2 = "${params.igenomes_base}/Homo_sapiens/GATK/GRCh38/Sequence/BWAmem2Index/"
hashmap = "${params.igenomes_base}/Homo_sapiens/GATK/GRCh38/Sequence/dragmap/"
chr_dir = "${params.igenomes_base}/Homo_sapiens/GATK/GRCh38/Sequence/Chromosomes"
chr_length = "${params.igenomes_base}/Homo_sapiens/GATK/GRCh38/Sequence/Length/Homo_sapiens_assembly38.len"
dbsnp = "${params.igenomes_base}/Homo_sapiens/GATK/GRCh38/Annotation/GATKBundle/dbsnp_146.hg38.vcf.gz"
dbsnp_tbi = "${params.igenomes_base}/Homo_sapiens/GATK/GRCh38/Annotation/GATKBundle/dbsnp_146.hg38.vcf.gz.tbi"
dict = "${params.igenomes_base}/Homo_sapiens/GATK/GRCh38/Sequence/WholeGenomeFasta/Homo_sapiens_assembly38.dict"
Expand Down Expand Up @@ -69,7 +67,6 @@ params {
'GRCm38' {
bwa = "${params.igenomes_base}/Mus_musculus/Ensembl/GRCm38/Sequence/BWAIndex/version0.6.0/"
chr_dir = "${params.igenomes_base}/Mus_musculus/Ensembl/GRCm38/Sequence/Chromosomes"
chr_length = "${params.igenomes_base}/Mus_musculus/Ensembl/GRCm38/Sequence/Length/GRCm38.len"
dbsnp = "${params.igenomes_base}/Mus_musculus/Ensembl/GRCm38/MouseGenomeProject/mgp.v5.merged.snps_all.dbSNP142.vcf.gz"
dbsnp_tbi = "${params.igenomes_base}/Mus_musculus/Ensembl/GRCm38/MouseGenomeProject/mgp.v5.merged.snps_all.dbSNP142.vcf.gz.tbi"
dict = "${params.igenomes_base}/Mus_musculus/Ensembl/GRCm38/Sequence/WholeGenomeFasta/genome.dict"
Expand Down
191 changes: 177 additions & 14 deletions conf/modules.config
Original file line number Diff line number Diff line change
Expand Up @@ -227,7 +227,7 @@ process {

// SPLIT FASTQ

withName: "SEQKIT_SPLIT2" {
withName: 'SEQKIT_SPLIT2' {
ext.args = { "--by-size ${params.split_fastq}" }
ext.when = { params.split_fastq > 1 }
publishDir = [
Expand Down Expand Up @@ -521,7 +521,7 @@ process{
withName: 'CONCAT_HAPLOTYPECALLER' {
ext.prefix = {"${meta.id}.g"}
publishDir = [
enabled: "${params.generate_gvcf}",
enabled: "${!params.no_intervals }",
mode: params.publish_dir_mode,
path: { "${params.outdir}/variant_calling/${meta.id}/haplotypecaller" }
]
Expand All @@ -531,7 +531,7 @@ process{
ext.prefix = {"${meta.id}.g"}
ext.when = { params.tools && params.tools.contains('haplotypecaller') }
publishDir = [
enabled: "${params.no_intervals || params.generate_gvcf}",
enabled: "${params.no_intervals}",
mode: params.publish_dir_mode,
path: { "${params.outdir}/variant_calling/${meta.id}/haplotypecaller"},
pattern: "*{vcf.gz,vcf.gz.tbi}"
Expand All @@ -540,19 +540,12 @@ process{
withName: 'GENOTYPEGVCFS' {
ext.when = { params.tools && params.tools.contains('haplotypecaller') && params.joint_germline}
publishDir = [
enabled: true,
enabled: "${params.generate_gvcf}",
mode: params.publish_dir_mode,
path: { "${params.outdir}/variant_calling/${meta.id}/haplotypecaller"},
pattern: "*{vcf.gz,vcf.gz.tbi}"
]
}
withName : 'TABIX_VC_HAPLOTYPECALLER' {
publishDir = [
enabled: "${params.generate_gvcf}",
mode: params.publish_dir_mode,
path: { "${params.outdir}/variant_calling/${meta.id}/haplotypecaller" }
]
}

// MANTA
withName: 'CONCAT_MANTA.*' {
Expand Down Expand Up @@ -619,6 +612,103 @@ process{

// TUMOR_VARIANT_CALLING

//CONTROLFREEC
withName: 'ASSESS_SIGNIFICANCE' {
publishDir = [
mode: params.publish_dir_mode,
path: { "${params.outdir}/variant_calling/${meta.id}/controlfreec" },
pattern: "*{.p.value.txt}"
]
}

withName: 'CAT_MPILEUP_.*' {
ext.when = { !params.no_intervals }
publishDir = [
enabled: "${!params.no_intervals}",
mode: params.publish_dir_mode,
path: { "${params.outdir}/variant_calling/${meta.id}/controlfreec" },
pattern: "*{mpileup}"
]
}

withName: 'FREEC_.*' {
ext.when = { params.tools && params.tools.contains('controlfreec') }
publishDir = [
mode: params.publish_dir_mode,
path: { "${params.outdir}/variant_calling/${meta.id}/controlfreec" },
pattern: "*{BedGraph,cpn,txt,_CNVs}"
]
}

withName: 'FREEC_TUMORONLY'{
ext.args = {[
"sample":[
inputformat: 'pileup',
mateorientation: 'FR'
],
"general" :[
bedgraphoutput: "TRUE",
breakpointthreshold: params.wes ? "1.2" : "0.8", //Values taken from Freec example configs
breakpointtype: params.wes ? "4" : "2", // Values taken from Freec example configs
coefficientofvariation: params.cf_coeff,
contamination: params.cf_contamination ?: "",
contaminationadjustment: params.cf_contamination_adjustment ? "TRUE" : "",
forcegccontentnormalization: params.wes ? "1" : "0",
minimalsubclonepresence: params.wes ? "30" : "20",
noisydata: params.wes ? "TRUE" : "FALSE",
ploidy: params.ploidy,
printNA: params.wes ? "FALSE" : "TRUE",
readcountthreshold: params.wes ? "50" : "10",
sex: meta.gender,
//uniquematch: not set
window: params.cf_window ?: ""
],
"BAF":[
minimalcoverageperposition: params.cf_mincov ?: "",
minimalqualityperposition: params.cf_minqual ?: "",
//"shiftinquality": (optional)not set
]
]
}
}

withName: 'FREEC2BED' {
ext.args = { "${params.ploidy}" }
publishDir = [
mode: params.publish_dir_mode,
path: { "${params.outdir}/variant_calling/${meta.id}/controlfreec" },
pattern: "*{.bed}"
]
}

withName: 'FREEC2CIRCOS' {
ext.args = { "${params.ploidy}" }
publishDir = [
mode: params.publish_dir_mode,
path: { "${params.outdir}/variant_calling/${meta.id}/controlfreec" },
pattern: "*{.circos.txt}"
]
}

withName: 'MAKEGRAPH' {
ext.args = { "${params.ploidy}" }
publishDir = [
mode: params.publish_dir_mode,
path: { "${params.outdir}/variant_calling/${meta.id}/controlfreec" },
pattern: "*{png}"
]
}

withName: 'MPILEUP_.*' {
ext.when = { params.tools && params.tools.contains('controlfreec') }
publishDir = [
enabled: "${params.no_intervals}",
mode: params.publish_dir_mode,
path: { "${params.outdir}/variant_calling/${meta.id}/controlfreec" },
pattern: "*{mpileup}"
]
}

//MANTA
withName: 'CONCAT_MANTA_TUMOR' {
ext.prefix = {"${meta.id}.tumor_sv"}
Expand Down Expand Up @@ -691,13 +781,86 @@ process{

// PAIR_VARIANT_CALLING

//ASCAT
withName: 'ASCAT' {
ext.args = {
[
"gender": meta.sex,
//"genomeVersion": "hg19"
//"purity": (optional),
//"ploidy": params.ploidy,
//"gc_files": (optional),
//"minCounts": (optional),
//"chrom_names": (optional),
//"min_base_qual": (optional),
//"min_map_qual": (optional),
//"ref_fasta": (optional),
//"skip_allele_counting_tumour": (optional),
//"skip_allele_counting_normal": (optional)
]
}
}

//CONTROLFREEC
withName: 'MPILEUP_NORMAL' {
ext.prefix = { "${meta.id}.normal" }
}

withName: 'MPILEUP_TUMOR' {
ext.prefix = { "${meta.id}.tumor" }
}

withName: 'CAT_MPILEUP_NORMAL' {
ext.prefix = { "${meta.id}.normal.mpileup" }
}

withName: 'CAT_MPILEUP_TUMOR' {
ext.prefix = { "${meta.id}.tumor.mpileup" }
}

withName: 'FREEC_SOMATIC'{
ext.args = {[
"sample":[
inputformat: 'pileup',
mateorientation: 'FR'
],
"control":[
inputformat: "pileup",
mateorientation: "FR"
],
"general" :[
bedgraphoutput: "TRUE",
breakpointthreshold: params.wes ? "1.2" : "0.8", //Values taken from Freec example configs
breakpointtype: params.wes ? "4" : "2", // Values taken from Freec example configs
coefficientofvariation: params.cf_coeff,
contamination: params.cf_contamination ?: "",
contaminationadjustment: params.cf_contamination_adjustment ? "TRUE" : "",
forcegccontentnormalization: params.wes ? "1" : "0",
minimalsubclonepresence: params.wes ? "30" : "20",
noisydata: params.wes ? "TRUE" : "FALSE",
ploidy: params.ploidy,
printNA: params.wes ? "FALSE" : "TRUE",
readcountthreshold: params.wes ? "50" : "10",
sex: meta.gender,
//uniquematch: not set
window: params.cf_window ?: ""
],
"BAF":[
minimalcoverageperposition: params.cf_mincov ?: "",
minimalqualityperposition: params.cf_minqual ?: "",
//"shiftinquality": (optional)not set
]
]
}
}

//MANTA
withName: 'CONCAT_MANTA_SOMATIC' {
ext.prefix = {"${meta.id}.somatic_sv"}
}

//MUTECT2
withName: 'CALCULATECONTAMINATION'{
withName: 'CALCULATECONTAMINATION' {
//ext.args = { params.ignore_soft_clipped_bases ? "--dont-use-soft-clipped-bases true" : "" }
publishDir = [
mode: params.publish_dir_mode,
Expand All @@ -716,7 +879,7 @@ process{
]
}

withName: 'LEARNREADORIENTATIONMODEL'{
withName: 'LEARNREADORIENTATIONMODEL' {
ext.prefix = { "${meta.id}.learnreadorientationmodel" }
publishDir = [
mode: params.publish_dir_mode,
Expand All @@ -725,7 +888,7 @@ process{
}

//MSISENSORPRO
withName: 'MSISENSORPRO_MSI_SOMATIC'{
withName: 'MSISENSORPRO_MSI_SOMATIC' {
publishDir = [
mode: params.publish_dir_mode,
path: { "${params.outdir}/variant_calling/${meta.id}/msisensorpro" },
Expand Down
1 change: 1 addition & 0 deletions conf/test.config
Original file line number Diff line number Diff line change
Expand Up @@ -123,6 +123,7 @@ profiles {
params.wes = true
params.genome = 'WBcel235'
params.vep_genome = 'WBcel235'
params.chr_dir = "${params.genomes_base}/data/genomics/homo_sapiens/genome/chr21/sequence/chromosomes.tar.gz"
}
trimming {
params.clip_r1 = 1
Expand Down
1 change: 0 additions & 1 deletion main.nf
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,6 @@ params.ac_loci_gc = WorkflowMain.getGenomeAttribute(params, 'ac_loci_
params.bwa = WorkflowMain.getGenomeAttribute(params, 'bwa')
params.bwamem2 = WorkflowMain.getGenomeAttribute(params, 'bwamem2')
params.chr_dir = WorkflowMain.getGenomeAttribute(params, 'chr_dir')
params.chr_length = WorkflowMain.getGenomeAttribute(params, 'chr_length')
params.dbsnp = WorkflowMain.getGenomeAttribute(params, 'dbsnp')
params.dbsnp_tbi = WorkflowMain.getGenomeAttribute(params, 'dbsnp_tbi')
params.dict = WorkflowMain.getGenomeAttribute(params, 'dict')
Expand Down
Loading