annotate sequenza_wrapper.py @ 29:8687649c8ec3 draft

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