annotate sequenza_wrapper.py @ 25:cf8f1324a967 draft

Uploaded
author jbrayet
date Wed, 19 Aug 2015 08:12:59 -0400
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
25
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
1 #! /usr/bin/python
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
2 # -*- coding: utf8 -*-
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
3 """#Sequenza Galaxy - developed by Jocelyn Brayet <jocelyn.brayet@curie.fr>
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
4 #Copyright (C) 2015 Institut Curie
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
5 #
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
6 #This program is free software: you can redistribute it and/or modify
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
7 #it under the terms of the GNU General Public License as published by
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
8 #the Free Software Foundation, either version 3 of the License, or
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
9 #(at your option) any later version.
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
10 #
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
11 #This program is distributed in the hope that it will be useful,
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
12 #but WITHOUT ANY WARRANTY; without even the implied warranty of
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
13 #MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
14 #GNU General Public License for more details.
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
15 #
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
16 #You should have received a copy of the GNU General Public License
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
17 #along with this program. If not, see <http://www.gnu.org/licenses/>.
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
18 #
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
19 ###########################################################'
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
20 #
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
21 #usage: sequenza_wrapper.py [-h] -normal <NORMAL_FILE> -tumor <TUMOR_FILE>
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
22 # -name <SAMPLE_NAME> -gcContent <GC_FILE> -format
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
23 # <FILE_FORMAT> -estimation <ESTIMATION>
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
24 # [-ref_file <REF_FILE>] [-cellularity <CELLULARITY>]
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
25 # [-ploidy <PLOIDY>] [-selector_index <SELECTOR>]
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
26 # [-samtools_options <SAMTOOLS_OPTIONS>] -outGalaxy
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
27 # <OUT_GALAXY>
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
28 #
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
29 #Run Sequenza with Galaxy.
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
30 #
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
31 #optional arguments:
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
32 # -h, --help show this help message and exit
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
33 # -normal <NORMAL_FILE>, --normalFile <NORMAL_FILE>
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
34 # Normal input file (BAM, pileup, pileup.gz).
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
35 # -tumor <TUMOR_FILE>, --tumorFile <TUMOR_FILE>
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
36 # Tumor input file (BAM, pileup, pileup.gz).
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
37 # -name <SAMPLE_NAME>, --sampleName <SAMPLE_NAME>
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
38 # Sample Name.
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
39 # -gcContent <GC_FILE>, --GCfile <GC_FILE>
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
40 # GC content file (txt).
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
41 # -format <FILE_FORMAT>, --fileFormat <FILE_FORMAT>
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
42 # Files format.
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
43 # -estimation <ESTIMATION>, --usePersonalEstimation <ESTIMATION>
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
44 # To use sequenza estimation or not.
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
45 # -ref_file <REF_FILE>, --refFile <REF_FILE>
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
46 # Index file to samtools mpileup.
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
47 # -cellularity <CELLULARITY>, --cellularityToUsed <CELLULARITY>
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
48 # If estimation = no, cellularity used.
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
49 # -ploidy <PLOIDY>, --ploidyToUsed <PLOIDY>
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
50 # If estimation = no, plody used.
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
51 # -selector_index <SELECTOR>, --selector <SELECTOR>
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
52 # Source for the reference list.
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
53 # -samtools_options <SAMTOOLS_OPTIONS>, --samtoolsOptions <SAMTOOLS_OPTIONS>
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
54 # Samtools options (-A, -B, -d, -q and -Q).
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
55 # -outGalaxy <OUT_GALAXY>, --outGalaxy <OUT_GALAXY>
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
56 #
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
57 #Version 1.2 - 05/08/2015 - Adapted from Jocelyn Brayet, France Genomique team
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
58 #
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
59 ###########################################################"""
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
60 __author__ = 'Jocelyn Brayet'
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
61
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
62 ###########################################################'
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
63 ## Import
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
64
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
65 import argparse
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
66 import glob
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
67 import os
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
68 import signal
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
69 import subprocess
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
70
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
71 ## Tested with python 2.6.6
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
72 sequenzaVersion = '1.2 - 05/08/2015'
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
73
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
74 ################################ functions ############################################################
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
75 ## Define a function to test arguments
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
76
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
77 def testNone(argument):
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
78 """
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
79 Test if argument is None or not.
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
80 argument -> argument gived by user (XML file)
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
81 """
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
82
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
83 if not argument is None:
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
84 variable = argument[0]
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
85 else:
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
86 variable = ""
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
87 return variable
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
88
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
89 def subprocess_setup():
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
90 """
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
91 Python installs a SIGPIPE handler by default. This is usually not what non-Python subprocesses expect.
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
92 """
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
93
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
94 signal.signal(signal.SIGPIPE, signal.SIG_DFL)
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
95
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
96 def createHTML(resultFile,resultPath,sample):
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
97 """
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
98 Building a result HTML displayed in Galaxy.
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
99 resultFile -> HTML file
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
100 resultPath -> Galaxy result path
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
101 sample -> sample name
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
102 """
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
103
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
104 resultHTML=open(resultFile,"w")
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
105
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
106 cmdLine="tar czf all_files.tar.gz "+resultPath
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
107
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
108 resultHTML.write("<html>\n<head>\n</head>\n<body>\n")
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
109 resultHTML.write("<h1><a target='_top' href='http://cran.r-project.org/web/packages/sequenza/index.html'>Sequenza</a> - results</h1>\n")
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
110 resultHTML.write("<p align='center'>\n<table width=70% border=1>\n<font size='30pt'><tr>\n<th colspan=3>Additional files</th>\n</tr>\n")
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
111 resultHTML.write("<tr>\n<td><a href='out.seqz.gz'>Out Sequenza</a><br><a href='out.small.seqz.gz'>Out small Sequenza</a></td>\n<td><a href='"+sample+"_sequenza_cp_table.RData'>Cellularity and ploidy matrix (RData)</a><br><a href='"+sample+"_sequenza_extract.RData'>Sequenza extract (RData)</a></td><td><a href='logFile.txt'>Log file</a><br><a href='all_files.tar.gz'>All files</a></td>\n</tr>\n")
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
112 resultHTML.write("</font>\n</table>\n</p>\n")
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
113 resultHTML.write("<h2>Genome-wide view of the allele and copy number state</h2>\n")
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
114 resultHTML.write("<p align='center'><embed src='"+resultPath+sample+"_analyse.pdf' width='800px' height='590px'></p>\n")
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
115 resultHTML.write("<p align='center'>Genome-wide allele-specific copy number profile obtained from exome sequencing (top), genome-wide absolute copy number profile obtained from exome sequencing (middle) and depth ratio (bottom).</p>\n")
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
116
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
117 fileList=glob.glob(resultPath+"/segments_*.txt")
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
118 alternativeSolutionsList=""
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
119
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
120 for segmentsFile in fileList:
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
121 if not "segments_1.txt" in segmentsFile:
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
122 alternativeSolutionsList = alternativeSolutionsList+" "+segmentsFile
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
123
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
124 os.system("mkdir "+resultPath+"/segments")
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
125 os.system("mv "+alternativeSolutionsList+" "+resultPath+"/segments")
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
126 cmdLine="cd "+resultPath+"; tar czf "+sample+"_segments.tar.gz segments"
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
127 os.system(cmdLine)
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
128
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
129 resultHTML.write("<p align='center'>File (best solution or user solution): <a href='"+sample+"_segments.txt'>Segments</a></p>\n")
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
130 resultHTML.write("<p align='center'>File (alternative solutions): <a href='"+sample+"_segments.tar.gz'>Segments</a></p>\n")
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
131 resultHTML.write("<p align='center'>File : <a href='"+sample+"_mutations.txt'>Mutations</a></p>\n")
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
132 resultHTML.write("<h2>Confidence intervals, confidence region and point estimate</h2>\n")
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
133 resultHTML.write("<p align='center'><embed src='"+sample+"_CP_contours.pdf' width='580px' height='580px'></p>\n")
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
134 resultHTML.write("<p align='center'>Result from the inference over the defined range of cellularity and ploidy. Color intensity indicates the log posterior probability of corresponding cellularity/ploidy values.</p>\n")
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
135 resultHTML.write("<p align='center'><embed src='"+sample+"_CN_bars.pdf' width='580px' height='580px'></p>\n")
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
136 resultHTML.write("<p align='center'><embed src='"+sample+"_model_fit.pdf' width='580px' height='580px'></p>\n")
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
137 resultHTML.write("<p align='center'>Observed depth ratio and BAF values for each genomic segment (black circles and dots) along with the representative joint LPP density (colors). The representative joint LPP density is calculated for the best cellularity and ploidy.</p>\n")
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
138 resultHTML.write("<p align='center'>File : <a href='"+sample+"_cellularity_ploidy.txt'>Cellularity and ploidy</a></p>\n")
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
139 resultHTML.write("<p align='center'><embed src='"+sample+"_alternative_fit.pdf' width='580px' height='580px'></p>\n")
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
140 resultHTML.write("<p align='center'>Observed depth ratio and BAF values for each genomic segment (black circles and dots) along with the representative joint LPP density (colors). The representative joint LPP density is calculated for the alternative cellularity and ploidy (scroll).</p>\n")
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
141 resultHTML.write("<p align='center'>File : <a href='"+sample+"_alternative_solutions.txt'>Alternative solutions</a></p>\n")
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
142 resultHTML.write("<h2>Normalization of depth ratio</h2>\n")
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
143 resultHTML.write("<p align='center'><a href='"+sample+"_gc_stat.png'><img border='1' width='680px' height='300px' src='"+sample+"_gc_stat.png'></a></p>\n")
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
144 resultHTML.write("<p align='center'>Visualization of depth.ratio bias in relation of GC content (left), and resulting normalization effect (right)</p>\n")
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
145 resultHTML.write("<h2>Plot chromosome view with mutations, BAF, depth ratio and segments (best solution or user solution)</h2>\n")
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
146 resultHTML.write("<p align='center'><embed src='"+sample+"_chromosome_view.pdf' width='680px' height='680px'></p>\n")
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
147 resultHTML.write("<p align='center'>Plots of mutant allele frequency (top), B allele frequency (middle) and depth ratio (bottom) vs. chromosome position (scroll).</p>\n")
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
148 resultHTML.write("</body>\n</html>")
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
149 resultHTML.close()
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
150
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
151 if __name__ == '__main__':
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
152
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
153 ########### sequenza arguments ####################
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
154 parser = argparse.ArgumentParser(description='Run Sequenza with Galaxy.', epilog='Version '+sequenzaVersion)
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
155
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
156 parser.add_argument('-normal', '--normalFile', metavar='<NORMAL_FILE>', type=str, nargs=1, help='Normal input file (BAM, pileup, pileup.gz).', required=True)
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
157 parser.add_argument('-tumor', '--tumorFile', metavar='<TUMOR_FILE>', type=str, nargs=1, help='Tumor input file (BAM, pileup, pileup.gz).', required=True)
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
158 parser.add_argument('-name', '--sampleName', metavar='<SAMPLE_NAME>', type=str, nargs=1, help='Sample Name.', required=True)
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
159 parser.add_argument('-gcContent', '--GCfile', metavar='<GC_FILE>', type=str, nargs=1, help='GC content file (txt).', required=True)
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
160 parser.add_argument('-format', '--fileFormat', metavar='<FILE_FORMAT>', type=str, nargs=1, help='Files format.', required=True)
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
161 parser.add_argument('-estimation', '--usePersonalEstimation', metavar='<ESTIMATION>', type=str, nargs=1, help='To use sequenza estimation or not.', required=True)
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
162 parser.add_argument('-ref_file', '--refFile', metavar='<REF_FILE>', type=str, nargs=1, help='Index file to samtools mpileup.', required=False)
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
163 parser.add_argument('-cellularity', '--cellularityToUsed', metavar='<CELLULARITY>', type=int, nargs=1, help='If estimation = no, cellularity used.', required=False)
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
164 parser.add_argument('-ploidy', '--ploidyToUsed', metavar='<PLOIDY>', type=int, nargs=1, help='If estimation = no, plody used.', required=False)
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
165 parser.add_argument('-selector_index', '--selector', metavar='<SELECTOR>', type=str, nargs=1, help='Source for the reference list.', required=False)
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
166 parser.add_argument('-samtools_options', '--samtoolsOptions', metavar='<SAMTOOLS_OPTIONS>', type=str, nargs=1, help='Samtools options (-A, -B, -d, -q and -Q).', required=False)
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
167
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
168 ################################ galaxy arguments ############################################################
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
169 parser.add_argument('-outGalaxy', '--outGalaxy', metavar='<OUT_GALAXY>', type=str, nargs=1, required=True)
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
170 ###########################################################'
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
171
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
172 args = parser.parse_args()
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
173
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
174 normalFile = testNone(args.normalFile)
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
175 tumorFile = testNone(args.tumorFile)
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
176 sampleName = testNone(args.sampleName)
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
177 gcContent = testNone(args.GCfile)
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
178 fileFormat = testNone(args.fileFormat)
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
179 usePersonalEstimation = testNone(args.usePersonalEstimation)
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
180 refFile = testNone(args.refFile)
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
181 cellularityToUsed = testNone(args.cellularityToUsed)
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
182 ploidyToUsed = testNone(args.ploidyToUsed)
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
183 selector = testNone(args.selector)
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
184 samtoolsOptions = testNone(args.samtoolsOptions)
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
185 outGalaxyValue = testNone(args.outGalaxy)
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
186
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
187 ################Rscrip PATH#################
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
188 RscriptPath = "Rscript --vanilla "
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
189 ############################################
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
190
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
191 pathFile = os.path.dirname(os.path.realpath(__file__))
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
192 samtoolsPath = pathFile.replace("copy_number","samtools/")
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
193 outGalaxyValueDir = outGalaxyValue.replace(".dat","_files")
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
194 os.popen("mkdir "+outGalaxyValueDir)
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
195 os.popen("chmod 777 -R "+outGalaxyValueDir)
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
196
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
197 log = open(outGalaxyValueDir+"/logFile.txt", "w")
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
198
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
199 log.write(samtoolsOptions)
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
200
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
201 if fileFormat=="BAM" :
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
202 if selector=="cached":
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
203
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
204 cmd=samtoolsPath+"samtools_wrapper.py -p 'samtools mpileup' -p \'-f \""+refFile+"\"\' -d \" \" \""+normalFile+"\" \"bam\" \"bam_normal\" -p\' "+samtoolsOptions+" > \""+normalFile+".tmp\" \'"
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
205 proc = subprocess.Popen( args=cmd, shell=True)
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
206 proc.wait()
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
207 os.system("gzip -f -c "+normalFile+".tmp > "+normalFile+".gz")
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
208 os.system("rm -f "+normalFile+".tmp")
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
209
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
210 cmd=samtoolsPath+"samtools_wrapper.py -p 'samtools mpileup' -p \'-f \""+refFile+"\"\' -d \" \" \""+tumorFile+"\" \"bam\" \"bam_normal\" -p\' "+samtoolsOptions+" > \""+tumorFile+".tmp\" \'"
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
211 proc = subprocess.Popen( args=cmd, shell=True)
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
212 proc.wait()
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
213 os.system("gzip -f -c "+tumorFile+".tmp > "+tumorFile+".gz")
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
214 os.system("rm -f "+tumorFile+".tmp")
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
215
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
216 else:
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
217
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
218 cmd=samtoolsPath+"samtools_wrapper.py -p 'samtools mpileup' -d \'-f \""+refFile+"\"\' \"fa\" \"reference_input\" -d \" \" \""+normalFile+"\" \"bam\" \"bam_normal\" -p\' "+samtoolsOptions+" > \""+normalFile+".tmp\" \'"
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
219 proc = subprocess.Popen( args=cmd, shell=True)
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
220 proc.wait()
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
221 os.system("gzip -f -c "+normalFile+".tmp > "+normalFile+".gz")
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
222 os.system("rm -f "+normalFile+".tmp")
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
223
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
224 cmd=samtoolsPath+"samtools_wrapper.py -p 'samtools mpileup' -d \'-f \""+refFile+"\"\' \"fa\" \"reference_input\" -d \" \" \""+tumorFile+"\" \"bam\" \"bam_normal\" -p\' "+samtoolsOptions+" > \""+tumorFile+".tmp\" \'"
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
225 proc = subprocess.Popen( args=cmd, shell=True)
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
226 proc.wait()
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
227 os.system("gzip -f -c "+tumorFile+".tmp > "+tumorFile+".gz")
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
228 os.system("rm -f "+tumorFile+".tmp")
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
229
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
230 if fileFormat=="pileup" :
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
231 os.system("gzip -f -c "+normalFile+" > "+ normalFile+".gz")
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
232 os.system("gzip -f -c "+tumorFile+" > "+tumorFile+".gz")
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
233
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
234 if fileFormat=="pileup_gz" :
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
235 os.system("cp -f "+normalFile+" "+normalFile+".gz")
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
236 os.system("cp -f "+tumorFile+" "+tumorFile+".gz")
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
237
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
238
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
239
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
240
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
241 #############################################################
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
242
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
243 if usePersonalEstimation=="yes":
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
244
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
245 cellularityToUsed = float(cellularityToUsed)/100
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
246 command = RscriptPath+pathFile+"/Sequenza_analysis.R -normal "+normalFile+".gz"+" -tumor "+tumorFile+".gz"+" -out "+outGalaxyValueDir+" -gcContent "+gcContent+" -name "+sampleName+ " -cellularity "+str(cellularityToUsed)+" -ploidy "+str(ploidyToUsed)
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
247 log.write(str(command))
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
248
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
249 Rscrpit = subprocess.Popen(command, preexec_fn=subprocess_setup, stdout=log, stderr=log, shell=True)
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
250 Rscrpit.wait()
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
251
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
252 else :
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
253
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
254 command = RscriptPath+pathFile+"/Sequenza_analysis.R -normal "+normalFile+".gz"+" -tumor "+tumorFile+".gz"+" -out "+outGalaxyValueDir+" -gcContent "+gcContent+" -name "+sampleName+ " -cellularity 0 -ploidy 0"
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
255 log.write(str(command))
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
256
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
257 Rscrpit = subprocess.Popen(command, preexec_fn=subprocess_setup, stdout=log, stderr=log, shell=True)
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
258 Rscrpit.wait()
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
259
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
260 #############################################################
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
261
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
262 createHTML(outGalaxyValue,outGalaxyValueDir,sampleName)
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
263
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
264
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
265 log.close()
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
266
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
267
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
268
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
269
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
270
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
271
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
272
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
273
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
274
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
275
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
276
cf8f1324a967 Uploaded
jbrayet
parents:
diff changeset
277