소스 검색

refactor: varscan

master
YaqingLiu 2 년 전
부모
커밋
6170cbfa8e
6개의 변경된 파일57개의 추가작업 그리고 149개의 파일을 삭제
  1. +2
    -0
      tasks/TNseq.wdl
  2. +51
    -0
      tasks/VarScan.wdl
  3. +0
    -40
      tasks/processSomatic.wdl
  4. +0
    -31
      tasks/somatic.wdl
  5. +0
    -47
      tasks/somaticFilter.wdl
  6. +4
    -31
      workflow.wdl

+ 2
- 0
tasks/TNseq.wdl 파일 보기

@@ -70,6 +70,8 @@ task TNseq {
}
output {
File raw_vcf = "${sample}.TNseq.raw.vcf"
File raw_vcf_index = "${sample}.TNseq.raw.vcf.idx"
File vcf = "${sample}.TNseq.vcf"
File vcf_index = "${sample}.TNseq.vcf.idx"
File contamination = "${sample}.contamination"

+ 51
- 0
tasks/VarScan.wdl 파일 보기

@@ -0,0 +1,51 @@
task VarScan {

String sample
File normal_bam
File normal_bam_index
File tumor_bam
File tumor_bam_index

File ref_dir
String fasta
String docker
String cluster_config
String disk_size

command <<<
# somatic
samtools mpileup -f ${ref_dir}/${fasta} -B ${normal_bam} ${tumor_bam} | java -Xmx64g -jar /opt/VarScan.v2.4.3.jar somatic --mpileup 1 --min-coverage 3 --min-coverage-normal 3 --min-coverage-tumor 3 --min-var-freq 0.08 --p-value 0.10 --somatic-p-value 0.05 --output-vcf 1 --output-snp ${sample}.VarScan.SNP --output-indel ${sample}.VarScan.INDEL --strand-filter 1

# processSomatic
java -Xmx64g -jar /opt/VarScan.v2.4.3.jar processSomatic ${sample}.VarScan.SNP.vcf
java -Xmx64g -jar /opt/VarScan.v2.4.3.jar processSomatic ${sample}.VarScan.INDEL.vcf

# somaticFilter
java -Xmx64g -jar /opt/VarScan.v2.4.3.jar somaticFilter ${sample}.VarScan.SNP.Somatic.hc.vcf --min-coverage 10 --min-reads2 2 --min-strands2 1 --min-avg-qual 20 --p-value 0.1 --indel-file ${sample}.VarScan.INDEL.vcf --output-file ${sample}.VarScan.SNP.Somatic.filter.vcf
java -Xmx64g -jar /opt/VarScan.v2.4.3.jar somaticFilter ${sample}.VarScan.SNP.Germline.hc.vcf --min-coverage 10 --min-reads2 2 --min-strands2 1 --min-avg-qual 20 --p-value 0.1 --indel-file ${sample}.VarScan.INDEL.vcf --output-file ${sample}.VarScan.SNP.Germline.filter.vcf
java -Xmx64g -jar /opt/VarScan.v2.4.3.jar somaticFilter ${sample}.VarScan.SNP.LOH.hc.vcf --min-coverage 10 --min-reads2 2 --min-strands2 1 --min-avg-qual 20 --p-value 0.1 --indel-file ${sample}.VarScan.INDEL.vcf --output-file ${sample}.VarScan.SNP.LOH.filter.vcf
java -Xmx64g -jar /opt/VarScan.v2.4.3.jar somaticFilter ${sample}.VarScan.INDEL.Somatic.hc.vcf --min-coverage 10 --min-reads2 2 --min-strands2 1 --min-avg-qual 20 --p-value 0.1 --output-file ${sample}.VarScan.INDEL.Somatic.filter.vcf
java -Xmx64g -jar /opt/VarScan.v2.4.3.jar somaticFilter ${sample}.VarScan.INDEL.Germline.hc.vcf --min-coverage 10 --min-reads2 2 --min-strands2 1 --min-avg-qual 20 --p-value 0.1 --output-file ${sample}.VarScan.INDEL.Germline.filter.vcf
java -Xmx64g -jar /opt/VarScan.v2.4.3.jar somaticFilter ${sample}.VarScan.INDEL.LOH.hc.vcf --min-coverage 10 --min-reads2 2 --min-strands2 1 --min-avg-qual 20 --p-value 0.1 --output-file ${sample}.VarScan.INDEL.LOH.filter.vcf

# Merge SNP and INDEL
awk '{if ($1!~/^#/) print}' ${sample}.VarScan.SNP.Somatic.filter.vcf | cat ${sample}.VarScan.INDEL.Somatic.filter.vcf - > ${sample}.VarScan.Somatic.vcf
awk '{if ($1!~/^#/) print}' ${sample}.VarScan.SNP.Germline.filter.vcf | cat ${sample}.VarScan.INDEL.Germline.filter.vcf - > ${sample}.VarScan.Germline.vcf
awk '{if ($1!~/^#/) print}' ${sample}.VarScan.SNP.LOH.filter.vcf | cat ${sample}.VarScan.INDEL.LOH.filter.vcf - > ${sample}.VarScan.LOH.vcf
>>>
runtime {
docker: docker
cluster: cluster_config
systemDisk: "cloud_ssd 40"
dataDisk: "cloud_ssd " + disk_size + " /cromwell_root/"
}
output {
File varscan_snp = "${sample}.VarScan.SNP.vcf"
File varscan_indel = "${sample}.VarScan.INDEL.vcf"
File varscan_somatic = "${sample}.VarScan.Somatic.vcf"
File varscan_germline = "${sample}.VarScan.Germline.vcf"
File varscan_loh = "${sample}.VarScan.LOH.vcf"
}
}

+ 0
- 40
tasks/processSomatic.wdl 파일 보기

@@ -1,40 +0,0 @@
task processSomatic {
String sample
File varscan_snp
File varscan_indel
String docker
String cluster_config
String disk_size

command <<<
cp ${varscan_snp} ./
cp ${varscan_indel} ./
java -Xmx32g -jar /opt/VarScan.v2.4.3.jar processSomatic ${sample}.VarScan.SNP.vcf
java -Xmx32g -jar /opt/VarScan.v2.4.3.jar processSomatic ${sample}.VarScan.INDEL.vcf

>>>

runtime {
docker: docker
cluster: cluster_config
systemDisk: "cloud_ssd 40"
dataDisk: "cloud_ssd " + disk_size + " /cromwell_root/"
}

output {
File varscan_snp_somatic = "${sample}.VarScan.SNP.Somatic.vcf"
File varscan_snp_germline = "${sample}.VarScan.SNP.Germline.vcf"
File varscan_snp_loh = "${sample}.VarScan.SNP.LOH.vcf"
File varscan_snp_somatic_hc = "${sample}.VarScan.SNP.Somatic.hc.vcf"
File varscan_snp_germline_hc = "${sample}.VarScan.SNP.Germline.hc.vcf"
File varscan_snp_loh_hc = "${sample}.VarScan.SNP.LOH.hc.vcf"
File varscan_indel_somatic = "${sample}.VarScan.INDEL.Somatic.vcf"
File varscan_indel_germline = "${sample}.VarScan.INDEL.Germline.vcf"
File varscan_indel_loh = "${sample}.VarScan.INDEL.LOH.vcf"
File varscan_indel_somatic_hc = "${sample}.VarScan.INDEL.Somatic.hc.vcf"
File varscan_indel_germline_hc = "${sample}.VarScan.INDEL.Germline.hc.vcf"
File varscan_indel_loh_hc = "${sample}.VarScan.INDEL.LOH.hc.vcf"
}
}

+ 0
- 31
tasks/somatic.wdl 파일 보기

@@ -1,31 +0,0 @@
task somatic {

String sample
File normal_bam
File normal_bam_index
File tumor_bam
File tumor_bam_index

File ref_dir
String fasta
String docker
String cluster_config
String disk_size

command <<<
samtools mpileup -f ${ref_dir}/${fasta} -B ${normal_bam} ${tumor_bam} | java -Xmx32g -jar /opt/VarScan.v2.4.3.jar somatic --mpileup 1 --min-coverage 3 --min-coverage-normal 3 --min-coverage-tumor 3 --min-var-freq 0.08 --p-value 0.10 --somatic-p-value 0.05 --output-vcf 1 --output-snp ${sample}.VarScan.SNP --output-indel ${sample}.VarScan.INDEL --strand-filter 1
>>>

runtime {
docker: docker
cluster: cluster_config
systemDisk: "cloud_ssd 40"
dataDisk: "cloud_ssd " + disk_size + " /cromwell_root/"
}
output {
File varscan_snp = "${sample}.VarScan.SNP.vcf"
File varscan_indel = "${sample}.VarScan.INDEL.vcf"
}
}

+ 0
- 47
tasks/somaticFilter.wdl 파일 보기

@@ -1,47 +0,0 @@
task somaticFilter {
String sample
File varscan_snp_somatic_hc
File varscan_snp_germline_hc
File varscan_snp_loh_hc
File varscan_indel_somatic_hc
File varscan_indel_germline_hc
File varscan_indel_loh_hc
File varscan_indel

String docker
String cluster_config
String disk_size

command <<<
java -Xmx32g -jar /opt/VarScan.v2.4.3.jar somaticFilter ${varscan_snp_somatic_hc} --min-coverage 10 --min-reads2 2 --min-strands2 1 --min-avg-qual 20 --p-value 0.1 --indel-file ${varscan_indel} --output-file ${sample}.VarScan.SNP.Somatic.filter.vcf

java -Xmx32g -jar /opt/VarScan.v2.4.3.jar somaticFilter ${varscan_snp_germline_hc} --min-coverage 10 --min-reads2 2 --min-strands2 1 --min-avg-qual 20 --p-value 0.1 --indel-file ${varscan_indel} --output-file ${sample}.VarScan.SNP.Germline.filter.vcf

java -Xmx32g -jar /opt/VarScan.v2.4.3.jar somaticFilter ${varscan_snp_loh_hc} --min-coverage 10 --min-reads2 2 --min-strands2 1 --min-avg-qual 20 --p-value 0.1 --indel-file ${varscan_indel} --output-file ${sample}.VarScan.SNP.LOH.filter.vcf

java -Xmx32g -jar /opt/VarScan.v2.4.3.jar somaticFilter ${varscan_indel_somatic_hc} --min-coverage 10 --min-reads2 2 --min-strands2 1 --min-avg-qual 20 --p-value 0.1 --output-file ${sample}.VarScan.INDEL.Somatic.filter.vcf

java -Xmx32g -jar /opt/VarScan.v2.4.3.jar somaticFilter ${varscan_indel_germline_hc} --min-coverage 10 --min-reads2 2 --min-strands2 1 --min-avg-qual 20 --p-value 0.1 --output-file ${sample}.VarScan.INDEL.Germline.filter.vcf

java -Xmx32g -jar /opt/VarScan.v2.4.3.jar somaticFilter ${varscan_indel_loh_hc} --min-coverage 10 --min-reads2 2 --min-strands2 1 --min-avg-qual 20 --p-value 0.1 --output-file ${sample}.VarScan.INDEL.LOH.filter.vcf

# Merge SNP and INDEL
awk '{if ($1!~/^#/) print}' ${sample}.VarScan.SNP.Somatic.filter.vcf | cat ${sample}.VarScan.INDEL.Somatic.filter.vcf - > ${sample}.VarScan.Somatic.filter.vcf
awk '{if ($1!~/^#/) print}' ${sample}.VarScan.SNP.Germline.filter.vcf | cat ${sample}.VarScan.INDEL.Germline.filter.vcf - > ${sample}.VarScan.Germline.filter.vcf
awk '{if ($1!~/^#/) print}' ${sample}.VarScan.SNP.LOH.filter.vcf | cat ${sample}.VarScan.INDEL.LOH.filter.vcf - > ${sample}.VarScan.LOH.filter.vcf
>>>

runtime {
docker: docker
cluster: cluster_config
systemDisk: "cloud_ssd 40"
dataDisk: "cloud_ssd " + disk_size + " /cromwell_root/"
}

output {
File varscan_somatic_filter = "${sample}.VarScan.Somatic.filter.vcf"
File varscan_germline_filter = "${sample}.VarScan.Germline.filter.vcf"
File varscan_loh_filter = "${sample}.VarScan.LOH.filter.vcf"
}
}

+ 4
- 31
workflow.wdl 파일 보기

@@ -19,9 +19,8 @@ import "./tasks/fastqscreen.wdl" as fastqscreen
import "./tasks/qualimap.wdl" as qualimap

import "./tasks/TNscope.wdl" as TNscope
import "./tasks/somatic.wdl" as somatic
import "./tasks/processSomatic.wdl" as processSomatic
import "./tasks/somaticFilter.wdl" as somaticFilter
import "./tasks/VarScan.wdl" as VarScan


workflow {{ project_name }} {
@@ -447,8 +446,7 @@ workflow {{ project_name }} {
disk_size=disk_size
}
call somatic.somatic as somatic {
call VarScan.VarScan as VarScan {
input:
sample=sample_id,
normal_bam=normal_BQSR.recaled_bam,
@@ -462,34 +460,9 @@ workflow {{ project_name }} {
cluster_config=cluster_16cpu_32gb
}
call processSomatic.processSomatic as processSomatic {
input:
sample=sample_id,
varscan_snp=somatic.varscan_snp,
varscan_indel=somatic.varscan_indel,
docker=varscan_docker,
disk_size=disk_size,
cluster_config=cluster_16cpu_32gb
}
call somaticFilter.somaticFilter as somaticFilter {
input:
sample=sample_id,
varscan_snp_somatic_hc=processSomatic.varscan_snp_somatic_hc,
varscan_snp_germline_hc=processSomatic.varscan_snp_germline_hc,
varscan_snp_loh_hc=processSomatic.varscan_snp_loh_hc,
varscan_indel_somatic_hc=processSomatic.varscan_indel_somatic_hc,
varscan_indel_germline_hc=processSomatic.varscan_indel_germline_hc,
varscan_indel_loh_hc=processSomatic.varscan_indel_loh_hc,
varscan_indel=somatic.varscan_indel,
docker=varscan_docker,
disk_size=disk_size,
cluster_config=cluster_16cpu_32gb
}
call bcftools.bcftools as VarScan_bcftools {
input:
vcf=somaticFilter.varscan_somatic_filter,
vcf=VarScan.varscan_somatic,
fasta=fasta,
ref_dir=ref_dir,
docker=bcftools_docker,

Loading…
취소
저장