Skip to content

Commit

Permalink
Merge pull request #139 from /issues/138-hard-code-tool-dockers
Browse files Browse the repository at this point in the history
Hardcode tool docker versions (related to #138)
  • Loading branch information
arkal authored Feb 2, 2017
2 parents b1b50e9 + 14b5ad3 commit ba5942f
Show file tree
Hide file tree
Showing 17 changed files with 55 additions and 54 deletions.
47 changes: 24 additions & 23 deletions required_docker_tools.txt
Original file line number Diff line number Diff line change
@@ -1,39 +1,40 @@
# Alignment
cutadapt:latest
bwa:latest
star:latest
starlong:latest
cutadapt:1.9.1
bwa:0.7.9a
star:2.4.2a
starlong:2.4.2a

# Alignment post
samtools:latest
picard:latest
samtools:1.2
picard:1.135

# Expression Estimation
rsem:latest
rsem:1.2.20

# Haplotyping
phlat:latest
phlat:1.0

# Mutation Calling
mutect:1.1.7
radia:latest
filterradia:latest
muse:latest
somaticsniper:latest (proposed)
vardict:latest (proposed)
mutect:1.1.7
radia:398366ef07b5911d8082ed61cbf03d487a41f286
filterradia:398366ef07b5911d8082ed61cbf03d487a41f286
muse:1.0rc_submission_b391201
somaticsniper:1.0.4
somaticsniper-addons:1.0.4
samtools:0.1.8
strelka:1.0.15
bam-readcount:0.7.4

# Mutation Annotation
snpeff:latest
transvar:latest
snpeff:3.6

# Mutation Translation
transgene:latest
transgene:1.0.0

# MHC:peptide binding prediction
mhci:latest
mhcii:latest
netmhciipan:final:latest

# MHC post
rankboost:latest
mhci:2.13
mhcii:2.13
netmhciipan:3.1

# Prediction Ranking
rankboost:1.0.0
2 changes: 1 addition & 1 deletion src/protect/alignment/common.py
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ def index_bamfile(job, bamfile, sample_type, univ_options):
input_files = get_files_from_filestore(job, input_files, work_dir, docker=True)
parameters = ['index',
input_files[in_bamfile]]
docker_call(tool='samtools', tool_parameters=parameters,
docker_call(tool='samtools:1.2', tool_parameters=parameters,
work_dir=work_dir, dockerhub=univ_options['dockerhub'])
out_bai = '/'.join([work_dir, in_bamfile + '.bai'])
output_files = {in_bamfile: bamfile,
Expand Down
10 changes: 5 additions & 5 deletions src/protect/alignment/dna.py
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ def run_bwa(job, fastqs, sample_type, univ_options, bwa_options):
input_files['dna_1.fastq' + gz],
input_files['dna_2.fastq' + gz]]
with open(''.join([work_dir, '/', sample_type, '_aligned.sam']), 'w') as samfile:
docker_call(tool='bwa', tool_parameters=parameters, work_dir=work_dir,
docker_call(tool='bwa:0.7.9a', tool_parameters=parameters, work_dir=work_dir,
dockerhub=univ_options['dockerhub'], outfile=samfile)
# samfile.name retains the path info
output_file = job.fileStore.writeGlobalFile(samfile.name)
Expand Down Expand Up @@ -144,7 +144,7 @@ def bam_conversion(job, samfile, sample_type, univ_options):
'-o', docker_path(bamfile),
input_files[sample_type + '_aligned.sam']
]
docker_call(tool='samtools', tool_parameters=parameters, work_dir=work_dir,
docker_call(tool='samtools:1.2', tool_parameters=parameters, work_dir=work_dir,
dockerhub=univ_options['dockerhub'])
output_file = job.fileStore.writeGlobalFile(bamfile)
# The samfile is no longer useful so delete it
Expand Down Expand Up @@ -174,7 +174,7 @@ def fix_bam_header(job, bamfile, sample_type, univ_options):
'-H',
input_files[sample_type + '_aligned.bam']]
with open('/'.join([work_dir, sample_type + '_aligned_bam.header']), 'w') as headerfile:
docker_call(tool='samtools', tool_parameters=parameters, work_dir=work_dir,
docker_call(tool='samtools:1.2', tool_parameters=parameters, work_dir=work_dir,
dockerhub=univ_options['dockerhub'], outfile=headerfile)
with open(headerfile.name, 'r') as headerfile, \
open('/'.join([work_dir, sample_type + '_output_bam.header']), 'w') as outheaderfile:
Expand All @@ -186,7 +186,7 @@ def fix_bam_header(job, bamfile, sample_type, univ_options):
docker_path(outheaderfile.name),
input_files[sample_type + '_aligned.bam']]
with open('/'.join([work_dir, sample_type + '_aligned_fixPG.bam']), 'w') as fixpg_bamfile:
docker_call(tool='samtools', tool_parameters=parameters, work_dir=work_dir,
docker_call(tool='samtools:1.2', tool_parameters=parameters, work_dir=work_dir,
dockerhub=univ_options['dockerhub'], outfile=fixpg_bamfile)
output_file = job.fileStore.writeGlobalFile(fixpg_bamfile.name)
# The old bam file is now useless.
Expand Down Expand Up @@ -223,7 +223,7 @@ def add_readgroups(job, bamfile, sample_type, univ_options):
'PL=ILLUMINA',
'PU=12345',
''.join(['SM=', sample_type.rstrip('_dna')])]
docker_call(tool='picard', tool_parameters=parameters, work_dir=work_dir,
docker_call(tool='picard:1.135', tool_parameters=parameters, work_dir=work_dir,
dockerhub=univ_options['dockerhub'], java_opts=univ_options['java_Xmx'])
output_file = job.fileStore.writeGlobalFile(
'/'.join([work_dir, sample_type + '_aligned_fixpg_sorted_reheader.bam']))
Expand Down
4 changes: 2 additions & 2 deletions src/protect/alignment/rna.py
Original file line number Diff line number Diff line change
Expand Up @@ -100,10 +100,10 @@ def run_star(job, fastqs, univ_options, star_options):
if gz:
parameters.extend(['--readFilesCommand', 'zcat'])
if star_options['type'] == 'star':
docker_call(tool='star', tool_parameters=parameters, work_dir=work_dir,
docker_call(tool='star:2.4.2a', tool_parameters=parameters, work_dir=work_dir,
dockerhub=univ_options['dockerhub'])
else:
docker_call(tool='starlong', tool_parameters=parameters, work_dir=work_dir,
docker_call(tool='starlong:2.4.2a', tool_parameters=parameters, work_dir=work_dir,
dockerhub=univ_options['dockerhub'])
output_files = defaultdict()
for bam_file in ['rnaAligned.toTranscriptome.out.bam',
Expand Down
2 changes: 1 addition & 1 deletion src/protect/binding_prediction/mhci.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ def predict_mhci_binding(job, peptfile, allele, peplen, univ_options,
peplen,
input_files['peptfile.faa']]
with open('/'.join([work_dir, 'predictions.tsv']), 'w') as predfile:
docker_call(tool='mhci', tool_parameters=parameters, work_dir=work_dir,
docker_call(tool='mhci:2.13', tool_parameters=parameters, work_dir=work_dir,
dockerhub=univ_options['dockerhub'], outfile=predfile, interactive=True)
output_file = job.fileStore.writeGlobalFile(predfile.name)
return output_file
4 changes: 2 additions & 2 deletions src/protect/binding_prediction/mhcii.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ def predict_mhcii_binding(job, peptfile, allele, univ_options, mhcii_options):
allele,
input_files['peptfile.faa']]
with open('/'.join([work_dir, 'predictions.tsv']), 'w') as predfile:
docker_call(tool='mhcii', tool_parameters=parameters, work_dir=work_dir,
docker_call(tool='mhcii:2.13', tool_parameters=parameters, work_dir=work_dir,
dockerhub=univ_options['dockerhub'], outfile=predfile, interactive=True)
run_netmhciipan = True
predictor = None
Expand Down Expand Up @@ -92,7 +92,7 @@ def predict_netmhcii_binding(job, peptfile, allele, univ_options):
'-f', input_files['peptfile.faa']]
# netMHC writes a lot of useless stuff to sys.stdout so we open /dev/null and dump output there.
with open(os.devnull, 'w') as output_catcher:
docker_call(tool='netmhciipan:final', tool_parameters=parameters, work_dir=work_dir,
docker_call(tool='netmhciipan:3.1', tool_parameters=parameters, work_dir=work_dir,
dockerhub=univ_options['dockerhub'], outfile=output_catcher)
output_file = job.fileStore.writeGlobalFile('/'.join([work_dir, 'predictions.tsv']))
return output_file, 'netMHCIIpan'
2 changes: 1 addition & 1 deletion src/protect/common.py
Original file line number Diff line number Diff line change
Expand Up @@ -354,7 +354,7 @@ def bam2fastq(bamfile, univ_options):
''.join(['F=/data/', base_name, '_1.fastq']),
''.join(['F2=/data/', base_name, '_2.fastq']),
''.join(['FU=/data/', base_name, '_UP.fastq'])]
docker_call(tool='picard', tool_parameters=parameters, work_dir=work_dir,
docker_call(tool='picard:1.135', tool_parameters=parameters, work_dir=work_dir,
dockerhub=univ_options['dockerhub'], java_opts=univ_options['java_Xmx'])
first_fastq = ''.join([work_dir, '/', base_name, '_1.fastq'])
assert os.path.exists(first_fastq)
Expand Down
2 changes: 1 addition & 1 deletion src/protect/expression_profiling/rsem.py
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ def run_rsem(job, rna_bam, univ_options, rsem_options):
'--no-bam-output',
'/'.join([input_files['rsem_index'], 'hg19']),
'rsem']
docker_call(tool='rsem', tool_parameters=parameters, work_dir=work_dir,
docker_call(tool='rsem:1.2.20', tool_parameters=parameters, work_dir=work_dir,
dockerhub=univ_options['dockerhub'])
output_files = {}
for filename in ('rsem.genes.results', 'rsem.isoforms.results'):
Expand Down
2 changes: 1 addition & 1 deletion src/protect/haplotyping/phlat.py
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ def run_phlat(job, fastqs, sample_type, univ_options, phlat_options):
'-e', '/home/phlat-1.0', # Phlat directory home
'-o', '/data', # Output directory
'-p', str(phlat_options['n'])] # Number of threads
docker_call(tool='phlat', tool_parameters=parameters, work_dir=work_dir,
docker_call(tool='phlat:1.0', tool_parameters=parameters, work_dir=work_dir,
dockerhub=univ_options['dockerhub'])
output_file = job.fileStore.writeGlobalFile(''.join([work_dir, '/', sample_type, '_HLA.sum']))
return output_file
Expand Down
2 changes: 1 addition & 1 deletion src/protect/mutation_annotation/snpeff.py
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ def run_snpeff(job, merged_mutation_file, univ_options, snpeff_options):
input_files['merged_mutations.vcf']]
xmx = snpeff_options['java_Xmx'] if snpeff_options['java_Xmx'] else univ_options['java_Xmx']
with open('/'.join([work_dir, 'mutations.vcf']), 'w') as snpeff_file:
docker_call(tool='snpeff', tool_parameters=parameters, work_dir=work_dir,
docker_call(tool='snpeff:3.6', tool_parameters=parameters, work_dir=work_dir,
dockerhub=univ_options['dockerhub'], java_opts=xmx, outfile=snpeff_file)
export_results(job, snpeff_file.name, univ_options, subfolder='mutations/snpeffed')
output_file = job.fileStore.writeGlobalFile(snpeff_file.name)
Expand Down
4 changes: 2 additions & 2 deletions src/protect/mutation_calling/muse.py
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,7 @@ def run_muse_perchrom(job, tumor_bam, normal_bam, univ_options, muse_options, ch
'-O', docker_path(output_prefix),
input_files['tumor.bam'],
input_files['normal.bam']]
docker_call(tool='muse', tool_parameters=parameters, work_dir=work_dir,
docker_call(tool='muse:1.0rc_submission_b391201', tool_parameters=parameters, work_dir=work_dir,
dockerhub=univ_options['dockerhub'])
outfile = job.fileStore.writeGlobalFile(''.join([output_prefix, '.MuSE.txt']))
return outfile
Expand Down Expand Up @@ -176,7 +176,7 @@ def run_muse_sump_perchrom(job, muse_output, univ_options, muse_options, chrom):
'-D', input_files['dbsnp_coding.vcf.gz'],
'-E']

docker_call(tool='muse', tool_parameters=parameters, work_dir=work_dir,
docker_call(tool='muse:1.0rc_submission_b391201', tool_parameters=parameters, work_dir=work_dir,
dockerhub=univ_options['dockerhub'])
export_results(job, output_file, univ_options, subfolder='mutations/muse')
outfile = job.fileStore.writeGlobalFile(output_file)
Expand Down
8 changes: 4 additions & 4 deletions src/protect/mutation_calling/radia.py
Original file line number Diff line number Diff line change
Expand Up @@ -174,8 +174,8 @@ def run_radia_perchrom(job, bams, univ_options, radia_options, chrom):
'--disease', 'CANCER',
'-l', 'INFO',
'-g', docker_path(radia_log)]
docker_call(tool='radia', tool_parameters=parameters, work_dir=work_dir,
dockerhub=univ_options['dockerhub'])
docker_call(tool='radia:398366ef07b5911d8082ed61cbf03d487a41f286', tool_parameters=parameters,
work_dir=work_dir, dockerhub=univ_options['dockerhub'])
output_file = job.fileStore.writeGlobalFile(radia_output)
return output_file

Expand Down Expand Up @@ -230,8 +230,8 @@ def run_filter_radia(job, bams, radia_file, univ_options, radia_options, chrom):
'-f', input_files['genome.fa'],
'--log=INFO',
'-g', docker_path(filterradia_log)]
docker_call(tool='filterradia', tool_parameters=parameters,
work_dir=work_dir, dockerhub=univ_options['dockerhub'])
docker_call(tool='filterradia:398366ef07b5911d8082ed61cbf03d487a41f286',
tool_parameters=parameters, work_dir=work_dir, dockerhub=univ_options['dockerhub'])
output_file = ''.join([work_dir, '/', chrom, '.vcf'])
os.rename(''.join([work_dir, '/', univ_options['patient'], '_', chrom, '.vcf']), output_file)
export_results(job, output_file, univ_options, subfolder='mutations/radia')
Expand Down
12 changes: 6 additions & 6 deletions src/protect/mutation_calling/somaticsniper.py
Original file line number Diff line number Diff line change
Expand Up @@ -165,7 +165,7 @@ def run_somaticsniper_full(job, tumor_bam, normal_bam, univ_options, somaticsnip
input_files['tumor.bam'],
input_files['normal.bam'],
docker_path(output_file)]
docker_call(tool='somaticsniper', tool_parameters=parameters, work_dir=work_dir,
docker_call(tool='somaticsniper:1.0.4', tool_parameters=parameters, work_dir=work_dir,
dockerhub=univ_options['dockerhub'])
outfile = job.fileStore.writeGlobalFile(output_file)
return outfile
Expand Down Expand Up @@ -205,14 +205,14 @@ def filter_somaticsniper(job, tumor_bam, somaticsniper_output, tumor_pileup, uni
'--snp-file', input_files['input.vcf'],
'--indel-file', input_files['pileup.txt']]
# Creates /data/input.vcf.SNPfilter
docker_call(tool='somaticsniper-addons', tool_parameters=parameters, work_dir=work_dir,
docker_call(tool='somaticsniper-addons:1.0.4', tool_parameters=parameters, work_dir=work_dir,
dockerhub=univ_options['dockerhub'])

# Run prepare_for_readcount.pl
parameters = ['prepare_for_readcount.pl',
'--snp-file', input_files['input.vcf'] + '.SNPfilter']
# Creates /data/input.vcf.SNPfilter.pos
docker_call(tool='somaticsniper-addons', tool_parameters=parameters, work_dir=work_dir,
docker_call(tool='somaticsniper-addons:1.0.4', tool_parameters=parameters, work_dir=work_dir,
dockerhub=univ_options['dockerhub'])

# Run bam-readcount
Expand All @@ -223,7 +223,7 @@ def filter_somaticsniper(job, tumor_bam, somaticsniper_output, tumor_pileup, uni
input_files['tumor.bam']]
# Creates the read counts file
with open(os.path.join(work_dir, 'readcounts.txt'), 'w') as readcounts_file:
docker_call(tool='bam-readcount', tool_parameters=parameters, work_dir=work_dir,
docker_call(tool='bam-readcount:0.7.4', tool_parameters=parameters, work_dir=work_dir,
dockerhub=univ_options['dockerhub'], outfile=readcounts_file)

# Run fpfilter.pl
Expand All @@ -232,15 +232,15 @@ def filter_somaticsniper(job, tumor_bam, somaticsniper_output, tumor_pileup, uni
'--readcount-file', docker_path(readcounts_file.name)]

# Creates input.vcf.SNPfilter.fp_pass and input.vcf.SNPfilter.fp_fail
docker_call(tool='somaticsniper-addons', tool_parameters=parameters, work_dir=work_dir,
docker_call(tool='somaticsniper-addons:1.0.4', tool_parameters=parameters, work_dir=work_dir,
dockerhub=univ_options['dockerhub'])

# Run highconfidence.pl
parameters = ['highconfidence.pl',
'--snp-file', input_files['input.vcf'] + '.SNPfilter.fp_pass']

# Creates input.vcf.SNPfilter.fp_pass.hc
docker_call(tool='somaticsniper-addons', tool_parameters=parameters, work_dir=work_dir,
docker_call(tool='somaticsniper-addons:1.0.4', tool_parameters=parameters, work_dir=work_dir,
dockerhub=univ_options['dockerhub'])

outfile = job.fileStore.writeGlobalFile(os.path.join(os.getcwd(),
Expand Down
2 changes: 1 addition & 1 deletion src/protect/mutation_calling/strelka.py
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,7 @@ def run_strelka_full(job, tumor_bam, normal_bam, univ_options, strelka_options):
input_files['genome.fa'],
str(job.cores)
]
docker_call(tool='strelka', tool_parameters=parameters, work_dir=work_dir,
docker_call(tool='strelka:1.0.15', tool_parameters=parameters, work_dir=work_dir,
dockerhub=univ_options['dockerhub'])
output_dict = {}
for mutation_type in ['snvs', 'indels']:
Expand Down
2 changes: 1 addition & 1 deletion src/protect/mutation_translation.py
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ def run_transgene(job, snpeffed_file, rna_bam, univ_options, transgene_options):
'--rna_file', input_files['rna.bam'],
'--prefix', 'transgened',
'--pep_lens', '9,10,15']
docker_call(tool='transgene', tool_parameters=parameters, work_dir=work_dir,
docker_call(tool='transgene:1.0.0', tool_parameters=parameters, work_dir=work_dir,
dockerhub=univ_options['dockerhub'])
output_files = defaultdict()
for peplen in ['9', '10', '15']:
Expand Down
2 changes: 1 addition & 1 deletion src/protect/qc/rna.py
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ def run_cutadapt(job, fastqs, univ_options, cutadapt_options):
'-p', docker_path('rna_cutadapt_2.fastq.gz'), # Output for R2
input_files['rna_1.fastq' + gz],
input_files['rna_2.fastq' + gz]]
docker_call(tool='cutadapt', tool_parameters=parameters, work_dir=work_dir,
docker_call(tool='cutadapt:1.9.1', tool_parameters=parameters, work_dir=work_dir,
dockerhub=univ_options['dockerhub'])
output_files = []
for fastq_file in ['rna_cutadapt_1.fastq.gz', 'rna_cutadapt_2.fastq.gz']:
Expand Down
2 changes: 1 addition & 1 deletion src/protect/rankboost.py
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ def boost_ranks(job, isoform_expression, merged_mhc_calls, transgene_out, univ_o
input_files[''.join([mhc, '_peptides.faa'])],
rank_boost_options[''.join([mhc, '_combo'])]
]
docker_call(tool='rankboost', tool_parameters=parameters, work_dir=work_dir,
docker_call(tool='rankboost:1.0.0', tool_parameters=parameters, work_dir=work_dir,
dockerhub=univ_options['dockerhub'])
mhc_concise = ''.join([work_dir, '/', mhc, '_merged_files_concise_results.tsv'])
mhc_detailed = ''.join([work_dir, '/', mhc, '_merged_files_detailed_results.tsv'])
Expand Down

0 comments on commit ba5942f

Please sign in to comment.