@@ -90,7 +90,8 @@ def run_transgene(job, snpeffed_file, rna_bam, univ_options, transgene_options,
9090 '--pep_lens' , '9,10,15' ,
9191 '--cores' , str (transgene_options ['n' ]),
9292 '--genome' , input_files ['genome.fa' ],
93- '--annotation' , input_files ['annotation.gtf' ]]
93+ '--annotation' , input_files ['annotation.gtf' ],
94+ '--log_file' , '/data/transgene.log' ]
9495
9596 if snpeffed_file is not None :
9697 parameters .extend (['--snpeff' , input_files ['snpeffed_muts.vcf' ]])
@@ -111,13 +112,19 @@ def run_transgene(job, snpeffed_file, rna_bam, univ_options, transgene_options,
111112 parameters += ['--transcripts' , fusion_files ['transcripts.fa' ],
112113 '--fusions' , fusion_files ['fusion_calls' ]]
113114
114- docker_call (tool = 'transgene' ,
115- tool_parameters = parameters ,
116- work_dir = work_dir ,
117- dockerhub = univ_options ['dockerhub' ],
118- tool_version = transgene_options ['version' ])
115+ try :
116+ docker_call (tool = 'transgene' ,
117+ tool_parameters = parameters ,
118+ work_dir = work_dir ,
119+ dockerhub = univ_options ['dockerhub' ],
120+ tool_version = transgene_options ['version' ])
121+ finally :
122+ logfile = os .path .join (os .getcwd (), 'transgene.log' )
123+ export_results (job , job .fileStore .writeGlobalFile (logfile ), logfile , univ_options ,
124+ subfolder = 'mutations/transgened' )
119125
120126 output_files = defaultdict ()
127+ peptides_not_found = False
121128 for peplen in ['9' , '10' , '15' ]:
122129 for tissue_type in ['tumor' , 'normal' ]:
123130 pepfile = '_' .join (['transgened' , tissue_type , peplen , 'mer_peptides.faa' ])
@@ -128,9 +135,13 @@ def run_transgene(job, snpeffed_file, rna_bam, univ_options, transgene_options,
128135 if tissue_type == 'tumor' :
129136 os .rename (os .path .join (work_dir , old_pepfile + '.map' ),
130137 os .path .join (work_dir , pepfile + '.map' ))
131-
138+ if not os .path .exists (pepfile ):
139+ peptides_not_found = True
140+ break
132141 output_files [pepfile ] = job .fileStore .writeGlobalFile (os .path .join (work_dir , pepfile ))
133142 export_results (job , output_files [pepfile ], pepfile , univ_options , subfolder = 'peptides' )
143+ if peptides_not_found :
144+ break
134145 mapfile = '_' .join (['transgened_tumor' , peplen , 'mer_peptides.faa.map' ])
135146 output_files [mapfile ] = job .fileStore .writeGlobalFile (os .path .join (work_dir , mapfile ))
136147 export_results (job , output_files [mapfile ], mapfile , univ_options , subfolder = 'peptides' )
@@ -144,6 +155,10 @@ def run_transgene(job, snpeffed_file, rna_bam, univ_options, transgene_options,
144155 os .rename ('transgened_transgened.bedpe' , 'fusions.bedpe' )
145156 export_results (job , job .fileStore .writeGlobalFile ('fusions.bedpe' ), 'fusions.bedpe' ,
146157 univ_options , subfolder = 'mutations/transgened' )
147-
148- job .fileStore .logToMaster ('Ran transgene on %s successfully' % univ_options ['patient' ])
149- return output_files
158+ if peptides_not_found :
159+ job .fileStore .logToMaster ('Transgene failed to find any peptides for %s.'
160+ % univ_options ['patient' ])
161+ return None
162+ else :
163+ job .fileStore .logToMaster ('Ran transgene on %s successfully' % univ_options ['patient' ])
164+ return output_files
0 commit comments