-
Notifications
You must be signed in to change notification settings - Fork 0
add process and config for vcf2maf #15
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
Changes from 9 commits
a6ca8a9
62fe3da
bda8123
521a69b
23c6e77
25d6a71
98cbefb
1e17f5c
d97d2c5
53dbadc
343259a
b38984b
bdfb62d
28c06c4
e5adb2e
b5d8090
f2bcc0b
91541f7
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
qclayssen marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
FROM ubuntu:24.04 | ||
|
||
ARG DEBIAN_FRONTEND=noninteractive | ||
RUN apt-get update && apt-get install -y --no-install-recommends \ | ||
bash coreutils procps findutils grep sed gawk \ | ||
gzip bzip2 xz-utils tar zip unzip \ | ||
curl wget ca-certificates git \ | ||
perl libjson-perl libtext-csv-perl libarchive-zip-perl \ | ||
libdbi-perl libdbd-sqlite3-perl \ | ||
bcftools samtools tabix \ | ||
&& rm -rf /var/lib/apt/lists/* | ||
|
||
# vcf2maf scripts | ||
RUN git clone --depth 1 https://github.com/mskcc/vcf2maf.git /opt/vcf2maf \ | ||
&& ln -s /opt/vcf2maf/vcf2maf.pl /usr/local/bin/vcf2maf \ | ||
&& ln -s /opt/vcf2maf/maf2vcf.pl /usr/local/bin/maf2vcf |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
process VCF2MAF { | ||
tag "${meta.id}" | ||
label 'process_medium' | ||
|
||
container 'docker.io/qclayssen/vcf2maf:debian_v1.6.22' | ||
|
||
|
||
input: | ||
tuple val(meta), path(vcf) | ||
path genome_fasta | ||
val genome_build | ||
|
||
|
||
output: | ||
tuple val(meta), path("*.maf"), emit: maf | ||
path "versions.yml" , emit: versions | ||
|
||
when: | ||
task.ext.when == null || task.ext.when | ||
|
||
script: | ||
def args = task.ext.args ?: '' | ||
def uncompressed_vcf = "${meta.id}-temp.vcf" | ||
qclayssen marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
|
||
""" | ||
gunzip -c ${vcf} > ${uncompressed_vcf} | ||
vcf2maf \\ | ||
--inhibit-vep \\ | ||
--input-vcf ${uncompressed_vcf} \\ | ||
--output-maf ${meta.id}.maf \\ | ||
--ref-fasta ${genome_fasta} \\ | ||
--tumor-id ${meta.tumor_id} \\ | ||
--normal-id ${meta.normal_id} \\ | ||
--ncbi-build ${genome_build} \\ | ||
${args} | ||
cat <<-END_VERSIONS > versions.yml | ||
"${task.process}": | ||
vcf2maf: \$(vcf2maf.pl --help | grep -o 'vcf2maf [0-9.]*' | sed 's/vcf2maf //' || echo "1.6.22") | ||
END_VERSIONS | ||
""" | ||
|
||
stub: | ||
def prefix = task.ext.prefix ?: "${meta.id}" | ||
""" | ||
touch ${prefix}.maf | ||
cat <<-END_VERSIONS > versions.yml | ||
"${task.process}": | ||
vcf2maf: 1.6.22 | ||
|
||
END_VERSIONS | ||
""" | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -48,6 +48,7 @@ include { BOLT_SV_SOMATIC_ANNOTATE } from '../modules/local/bolt/sv_somatic/an | |
include { BOLT_SV_SOMATIC_PRIORITISE } from '../modules/local/bolt/sv_somatic/prioritise/main' | ||
include { ESVEE_CALL } from '../modules/local/esvee/call/main' | ||
include { PAVE_SOMATIC } from '../modules/local/pave/somatic/main' | ||
include { VCF2MAF } from '../modules/local/vcf2maf/main' | ||
|
||
include { LINX_ANNOTATION } from '../subworkflows/local/linx_annotation' | ||
include { LINX_PLOTTING } from '../subworkflows/local/linx_plotting' | ||
|
@@ -186,6 +187,35 @@ workflow SASH { | |
|
||
|
||
|
||
// | ||
// Convert somatic VCF to MAF format | ||
// | ||
|
||
// channel: [ meta_vcf2maf, smlv_somatic_vcf ] | ||
ch_vcf2maf_inputs = ch_smlv_somatic_out.map { meta, vcf -> | ||
def meta_vcf2maf = [ | ||
key: meta.id, | ||
id: meta.id, | ||
tumor_id: meta.tumor_id, | ||
normal_id: meta.normal_id, | ||
] | ||
return [meta_vcf2maf, vcf] | ||
} | ||
|
||
VCF2MAF( | ||
ch_vcf2maf_inputs, | ||
genome.fasta, | ||
genome.build | ||
) | ||
|
||
ch_versions = ch_versions.mix(VCF2MAF.out.versions) | ||
|
||
// channel: [ meta, somatic_maf ] | ||
ch_vcf2maf_out = VCF2MAF.out.maf | ||
|
||
|
||
|
||
|
||
// | ||
// Germline small variants | ||
// | ||
|
@@ -428,7 +458,6 @@ workflow SASH { | |
|
||
|
||
|
||
|
||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Considering reverting if for nothing other than consistency |
||
// | ||
// Generate the cancer report | ||
// | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The
genome
block is reserved for filepaths and since we'll only use GRCh38 with sash in the foreseeable future, I would remove this and hardcode the value into the corresponding argument in theVCF2MAF
process