annotate galaxy_tmap_tool/tmap_wrapper.py @ 14:8cfb224b440a

Uploaded galaxy_tmap_tool.tar
author greg
date Thu, 21 Jul 2011 10:04:24 -0400
parents 09951b7d29a4
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
10
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
1 #!/usr/bin/env python
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
2
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
3 # TODO
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
4 # - map1/map2/map3 specific options
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
5
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
6 """
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
7 Runs TMAP on Ion Torrent data.
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
8 Produces a SAM file containing the mappings.
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
9 Works with TMAP version 0.0.8 or higher.
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
10
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
11 usage: tmap_wrapper.py [options]
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
12 --threads: The number of threads to use
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
13 --ref: The reference genome to use or index
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
14 --fastq: The fastq file to use for the mapping
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
15 --output: The file to save the output (SAM format)
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
16 --params: Parameter setting to use (pre_set or full)
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
17 --fileSource: Whether to use a previously indexed reference sequence or one from history (indexed or history)
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
18 --matchScore: The match score
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
19 --mismatchPenalty: Mismatch penalty
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
20 --gapOpenPenalty: Gap open penalty
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
21 --gapExtensPenalty: Gap extension penalty
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
22 --bandWidth: The band width
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
23 --globalMap: Map the full read (no soft-clipping)
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
24 --duplicateWindow: Remove duplicate alignments from different algorithms within this bp window (-1 to disable)
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
25 --scoringThreshold: The score threshold divided by the match score
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
26 --queueSize: The queue size for the reads
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
27 --outputFilter: The output filter (0 - unique best hits, 1 - random best hit, 2 - all best htis, 3 - all alignments)
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
28 --rgTag: The flag to specify RG tag(s) in the SAM header
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
29 --rgTagID: The RG ID tag to add to the SAM header
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
30 --rgTagCN: The RG CN tag to add to the SAM header
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
31 --rgTagDS: The RG DS tag to add to the SAM header
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
32 --rgTagDT: The RG DT tag to add to the SAM header
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
33 --rgTagLB: The RG LB tag to add to the SAM header
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
34 --rgTagPI: The RG PI tag to add to the SAM header
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
35 --rgTagPL: The RG PL tag to add to the SAM header
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
36 --rgTagPU: The RG PU tag to add to the SAM header
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
37 --rgTagSM: The RG SM tag to add to the SAM header
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
38 --filterIndependently: Apply the output filter for each algorithm independently
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
39
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
40 --map1: Flag to run map1 in the first stage
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
41 --map1SeedLength: The k-mer length to seed CALs (-1 to disable)
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
42 --map1SeedMismatches: The maximum number of mismatches in the seed
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
43 --map1Mismatches: The maximum number of or (read length) fraction of mismatches
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
44 --map1GapOpens: The maximum number of or (read length) fraction of indel starts
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
45 --map1GapExtensions: The maximum number of or (read length) fraction of indel extensions
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
46 --map1MaxCALsDeletion: The maximum number of CALs to extend a deletion
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
47 --map1EndIndels: Indels are not allowed within this number of bps from the end of the read
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
48 --map1MaxOptimalCALs: Stop searching when INT optimal CALs have been found
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
49 --map1MaxNodes: The maximum number of alignment nodes
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
50
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
51 --map2: Flag to run map2 in the first stage
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
52 --map2Coefficient: The coefficient of length-threshold adjustment
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
53 --map2SeedIntervalSize: The maximum seeding interval size
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
54 --map2ZBest: Keep the z-best nodes during prefix trie traversal
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
55 --map2ReverseTrigger: The # seeds to trigger reverse alignment
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
56
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
57 --map3: Flag to run map3 in the first stage
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
58 --map3SeedLength: The k-mer length to seed CALs (-1 tunes to the genome size)
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
59 --map3SeedMaxHits: The maximum number of hits returned by a seed
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
60 --map3SeedWindow: The window of bases in which to group seeds
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
61 --map3HPEnumeration: The single homopolymer error difference for enumeration
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
62
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
63 --MAP1: Flag to run MAP1 in the second stage
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
64 --MAP1SeedLength: The k-mer length to seed CALs (-1 to disable)
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
65 --MAP1SeedMismatches: The maximum number of mismatches in the seed
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
66 --MAP1Mismatches: The maximum number of or (read length) fraction of mismatches
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
67 --MAP1GapOpens: The maximum number of or (read length) fraction of indel starts
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
68 --MAP1GapExtensions: The maximum number of or (read length) fraction of indel extensions
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
69 --MAP1MaxCALsDeletion: The maximum number of CALs to extend a deletion
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
70 --MAP1EndIndels: Indels are not allowed within this number of bps from the end of the read
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
71 --MAP1MaxOptimalCALs: Stop searching when INT optimal CALs have been found
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
72 --MAP1MaxNodes: The maximum number of alignment nodes
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
73
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
74 --MAP2: Flag to run MAP2 in the second stage
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
75 --MAP2Coefficient: The coefficient of length-threshold adjustment
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
76 --MAP2SeedIntervalSize: The maximum seeding interval size
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
77 --MAP2ZBest: Keep the z-best nodes during prefix trie traversal
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
78 --MAP2ReverseTrigger: The # seeds to trigger reverse alignment
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
79
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
80 --MAP3: Flag to run MAP3 in the second stage
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
81 --MAP3SeedLength: The k-mer length to seed CALs (-1 tunes to the genome size)
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
82 --MAP3SeedMaxHits: The maximum number of hits returned by a seed
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
83 --MAP3SeedWindow: The window of bases in which to group seeds
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
84 --MAP3HPEnumeration: The single homopolymer error difference for enumeration
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
85
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
86 --suppressHeader: Suppress header
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
87 --dbkey: Dbkey for reference genome
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
88 --do_not_build_index: Flag to specify that provided file is already indexed and to just use 'as is'
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
89 """
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
90
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
91 import optparse, os, shutil, subprocess, sys, tempfile
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
92
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
93 def stop_err( msg ):
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
94 sys.stderr.write( '%s\n' % msg )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
95 sys.exit()
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
96
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
97 def map1_parse( map1SeedLength, map1SeedMismatches, map1Mismatches, \
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
98 map1GapOpens, map1GapExtensions, map1MaxCALsDeletion, \
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
99 map1EndIndels, map1MaxOptimalCALs, map1MaxNodes ):
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
100 return '-l %s -s %s -m %s -o %s -e %s -d %s -i %s -b %s -Q %s' % \
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
101 ( map1SeedLength, map1SeedMismatches, map1Mismatches, \
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
102 map1GapOpens, map1GapExtensions, map1MaxCALsDeletion, \
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
103 map1EndIndels, map1MaxOptimalCALs, map1MaxNodes )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
104
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
105 def map2_parse( map2Coefficient, map2SeedIntervalSize, map2ZBest, map2ReverseTrigger ):
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
106 return '-c %s -S %s -b %s -N %s' % ( map2Coefficient, map2SeedIntervalSize, map2ZBest, map2ReverseTrigger )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
107
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
108 def map3_parse( map3SeedLength, map3SeedMaxHits, map3SeedWindow, map3HPEnumeration ):
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
109 return '-l %s -S %s -b %s -H %s' % ( map3SeedLength, map3SeedMaxHits, map3SeedWindow, map3HPEnumeration )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
110
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
111 def __main__():
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
112 #Parse Command Line
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
113 parser = optparse.OptionParser()
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
114 # Global options
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
115 parser.add_option( '--threads', dest='threads', help='The number of threads to use' )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
116 parser.add_option( '--ref', dest='ref', help='The reference genome to use or index' )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
117 parser.add_option( '--fastq', dest='fastq', help='The fastq file to use for the mapping' )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
118 parser.add_option( '--output', dest='output', help='The file to save the output (SAM format)' )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
119 parser.add_option( '--params', dest='params', help='Parameter setting to use (pre_set or full)' )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
120 parser.add_option( '--fileSource', dest='fileSource', help='Whether to use a previously indexed reference sequence or one from history (indexed or history)' )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
121 parser.add_option( '--mapall', dest='mapall', help='Flag indicating if mapall options are present')
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
122 parser.add_option( '--matchScore', dest='matchScore', help='The match score' )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
123 parser.add_option( '--mismatchPenalty', dest='mismatchPenalty', help='Mismatch penalty' )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
124 parser.add_option( '--gapOpenPenalty', dest='gapOpenPenalty', help='Gap open penalty' )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
125 parser.add_option( '--gapExtensPenalty', dest='gapExtensPenalty', help='Gap extension penalty' )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
126 parser.add_option( '--bandWidth', dest='bandWidth', help='The band width' )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
127 parser.add_option( '--globalMap', dest='globalMap', help='Map the full read (no soft-clipping)' )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
128 parser.add_option( '--duplicateWindow', dest='duplicateWindow', help='Remove duplicate alignments from different algorithms within this bp window (-1 to disable)' )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
129 parser.add_option( '--scoringThreshold', dest='scoringThreshold', help='The score threshold divided by the match score ' )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
130 parser.add_option( '--queueSize', dest='queueSize', help='The queue size for the reads' )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
131 parser.add_option( '--outputFilter', dest='outputFilter', help='The output filter (0 - unique best hits, 1 - random best hit, 2 - all best htis, 3 - all alignments)' )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
132 parser.add_option( '--rgTag', dest='rgTag', help='The flag to specify RG tag(s) in the SAM header' )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
133 parser.add_option( '--rgTagID', dest='rgTagID', default='', help='The RG ID to add to the SAM header' )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
134 parser.add_option( '--rgTagCN', dest='rgTagCN', default='', help='The RG CN to add to the SAM header' )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
135 parser.add_option( '--rgTagDS', dest='rgTagDS', default='', help='The RG DS to add to the SAM header' )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
136 parser.add_option( '--rgTagDT', dest='rgTagDT', default='', help='The RG DT to add to the SAM header' )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
137 parser.add_option( '--rgTagLB', dest='rgTagLB', default='', help='The RG LB to add to the SAM header' )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
138 parser.add_option( '--rgTagPI', dest='rgTagPI', default='', help='The RG PI to add to the SAM header' )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
139 parser.add_option( '--rgTagPL', dest='rgTagPL', default='', help='The RG PL to add to the SAM header' )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
140 parser.add_option( '--rgTagPU', dest='rgTagPU', default='', help='The RG PU to add to the SAM header' )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
141 parser.add_option( '--rgTagSM', dest='rgTagSM', default='', help='The RG SM to add to the SAM header' )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
142 parser.add_option( '--filterIndependently', dest='filterIndependently', help='Apply the output filter for each algorithm independently' )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
143 parser.add_option( '--suppressHeader', dest='suppressHeader', help='Suppress header' )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
144 parser.add_option( '--dbkey', dest='dbkey', help='Dbkey for reference genome' )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
145 parser.add_option( '--do_not_build_index', dest='do_not_build_index', action='store_true', help="Don't build index" )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
146 # map 1 - stage 1
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
147 parser.add_option( '--map1', dest='map1', help='True if map1 should be run in the first stage' )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
148 parser.add_option( '--map1SeedLength', dest='map1SeedLength', help='The k-mer length to seed CALs (-1 to disable)' )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
149 parser.add_option( '--map1SeedMismatches', dest='map1SeedMismatches', help='The maximum number of mismatches in the seed ' )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
150 parser.add_option( '--map1Mismatches', dest='map1Mismatches', help='The maximum number of or (read length) fraction of mismatches ' )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
151 parser.add_option( '--map1GapOpens', dest='map1GapOpens', help='The maximum number of or (read length) fraction of indel starts ' )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
152 parser.add_option( '--map1GapExtensions', dest='map1GapExtensions', help='The maximum number of or (read length) fraction of indel extensions ' )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
153 parser.add_option( '--map1MaxCALsDeletion', dest='map1MaxCALsDeletion', help='The maximum number of CALs to extend a deletion ' )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
154 parser.add_option( '--map1EndIndels', dest='map1EndIndels', help='Indels are not allowed within this number of bps from the end of the read ' )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
155 parser.add_option( '--map1MaxOptimalCALs', dest='map1MaxOptimalCALs', help='Stop searching when INT optimal CALs have been found ' )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
156 parser.add_option( '--map1MaxNodes', dest='map1MaxNodes', help='The maximum number of alignment nodes ' )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
157 # map 2 - stage 1
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
158 parser.add_option( '--map2', dest='map2', help='True if map2 should be run in the first stage' )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
159 parser.add_option( '--map2Coefficient', dest='map2Coefficient', help='The coefficient of length-threshold adjustment ' )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
160 parser.add_option( '--map2SeedIntervalSize', dest='map2SeedIntervalSize', help='The maximum seeding interval size ' )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
161 parser.add_option( '--map2ZBest', dest='map2ZBest', help='Keep the z-best nodes during prefix trie traversal' )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
162 parser.add_option( '--map2ReverseTrigger', dest='map2ReverseTrigger', help='The # seeds to trigger reverse alignment ' )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
163 # map 3 - stage 1
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
164 parser.add_option( '--map3', dest='map3', help='True if map3 should be run in the first stage' )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
165 parser.add_option( '--map3SeedLength', dest='map3SeedLength', help='The k-mer length to seed CALs (-1 tunes to the genome size) ' )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
166 parser.add_option( '--map3SeedMaxHits', dest='map3SeedMaxHits', help='The maximum number of hits returned by a seed ' )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
167 parser.add_option( '--map3SeedWindow', dest='map3SeedWindow', help='The window of bases in which to group seeds ' )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
168 parser.add_option( '--map3HPEnumeration', dest='map3HPEnumeration', help='The single homopolymer error difference for enumeration ' )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
169 # map 1 - stage 2
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
170 parser.add_option( '--MAP1', dest='MAP1', help='True if map1 should be run in the second stage' )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
171 parser.add_option( '--MAP1SeedLength', dest='MAP1SeedLength', help='The k-mer length to seed CALs (-1 to disable)' )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
172 parser.add_option( '--MAP1SeedMismatches', dest='MAP1SeedMismatches', help='The maximum number of mismatches in the seed ' )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
173 parser.add_option( '--MAP1Mismatches', dest='MAP1Mismatches', help='The maximum number of or (read length) fraction of mismatches ' )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
174 parser.add_option( '--MAP1GapOpens', dest='MAP1GapOpens', help='The maximum number of or (read length) fraction of indel starts ' )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
175 parser.add_option( '--MAP1GapExtensions', dest='MAP1GapExtensions', help='The maximum number of or (read length) fraction of indel extensions ' )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
176 parser.add_option( '--MAP1MaxCALsDeletion', dest='MAP1MaxCALsDeletion', help='The maximum number of CALs to extend a deletion ' )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
177 parser.add_option( '--MAP1EndIndels', dest='MAP1EndIndels', help='Indels are not allowed within this number of bps from the end of the read ' )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
178 parser.add_option( '--MAP1MaxOptimalCALs', dest='MAP1MaxOptimalCALs', help='Stop searching when INT optimal CALs have been found ' )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
179 parser.add_option( '--MAP1MaxNodes', dest='MAP1MaxNodes', help='The maximum number of alignment nodes ' )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
180 # map 2 - stage 2
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
181 parser.add_option( '--MAP2', dest='MAP2', help='True if map2 should be run in the second stage' )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
182 parser.add_option( '--MAP2Coefficient', dest='MAP2Coefficient', help='The coefficient of length-threshold adjustment ' )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
183 parser.add_option( '--MAP2SeedIntervalSize', dest='MAP2SeedIntervalSize', help='The maximum seeding interval size ' )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
184 parser.add_option( '--MAP2ZBest', dest='MAP2ZBest', help='Keep the z-best nodes during prefix trie traversal' )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
185 parser.add_option( '--MAP2ReverseTrigger', dest='MAP2ReverseTrigger', help='The # seeds to trigger reverse alignment ' )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
186 # map 3 - stage 2
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
187 parser.add_option( '--MAP3', dest='MAP3', help='True if map3 should be run in the second stage' )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
188 parser.add_option( '--MAP3SeedLength', dest='MAP3SeedLength', help='The k-mer length to seed CALs (-1 tunes to the genome size) ' )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
189 parser.add_option( '--MAP3SeedMaxHits', dest='MAP3SeedMaxHits', help='The maximum number of hits returned by a seed ' )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
190 parser.add_option( '--MAP3SeedWindow', dest='MAP3SeedWindow', help='The window of bases in which to group seeds ' )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
191 parser.add_option( '--MAP3HPEnumeration', dest='MAP3HPEnumeration', help='The single homopolymer error difference for enumeration ' )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
192 # parse the options
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
193 (options, args) = parser.parse_args()
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
194
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
195 # output version # of tool
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
196 try:
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
197 tmp = tempfile.NamedTemporaryFile().name
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
198 tmp_stdout = open( tmp, 'wb' )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
199 proc = subprocess.Popen( args='tmap 2>&1', shell=True, stdout=tmp_stdout )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
200 tmp_stdout.close()
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
201 returncode = proc.wait()
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
202 stdout = None
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
203 for line in open( tmp_stdout.name, 'rb' ):
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
204 if line.lower().find( 'version' ) >= 0:
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
205 stdout = line.strip()
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
206 break
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
207 if stdout:
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
208 sys.stdout.write( 'TMAP %s\n' % stdout )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
209 else:
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
210 raise Exception
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
211 except:
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
212 sys.stdout.write( 'Could not determine TMAP version\n' )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
213
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
214 fastq = options.fastq
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
215
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
216 # make temp directory for placement of indices
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
217 tmp_index_dir = tempfile.mkdtemp()
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
218 tmp_dir = tempfile.mkdtemp()
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
219
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
220 # index if necessary
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
221 if options.fileSource == 'history' and not options.do_not_build_index:
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
222 ref_file = tempfile.NamedTemporaryFile( dir=tmp_index_dir )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
223 ref_file_name = ref_file.name
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
224 ref_file.close()
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
225 os.symlink( options.ref, ref_file_name )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
226 cmd1 = 'tmap index -f %s -v ' % ( ref_file_name )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
227 try:
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
228 tmp = tempfile.NamedTemporaryFile( dir=tmp_index_dir ).name
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
229 tmp_stderr = open( tmp, 'wb' )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
230 proc = subprocess.Popen( args=cmd1, shell=True, cwd=tmp_index_dir, stderr=tmp_stderr.fileno() )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
231 returncode = proc.wait()
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
232 tmp_stderr.close()
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
233 # get stderr, allowing for case where it's very large
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
234 tmp_stderr = open( tmp, 'rb' )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
235 stderr = ''
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
236 buffsize = 1048576
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
237 try:
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
238 while True:
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
239 stderr += tmp_stderr.read( buffsize )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
240 if not stderr or len( stderr ) % buffsize != 0:
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
241 break
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
242 except OverflowError:
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
243 pass
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
244 tmp_stderr.close()
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
245 if returncode != 0:
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
246 raise Exception, stderr
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
247 except Exception, e:
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
248 # clean up temp dirs
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
249 if os.path.exists( tmp_index_dir ):
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
250 shutil.rmtree( tmp_index_dir )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
251 if os.path.exists( tmp_dir ):
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
252 shutil.rmtree( tmp_dir )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
253 stop_err( 'Error indexing reference sequence. ' + str( e ) )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
254 else:
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
255 ref_file_name = options.ref
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
256
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
257 # set up mapping and generate mapping command options
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
258 if options.params == 'pre_set':
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
259 mapall_options = '-n %s' % ( options.threads )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
260 map1_options = 'map1'
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
261 map2_options = 'map2'
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
262 map3_options = 'map3'
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
263 MAP1_options = ''
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
264 MAP2_options = ''
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
265 MAP3_options = ''
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
266 else:
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
267 # mapall options
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
268 if options.globalMap == 'true':
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
269 globalMap = '-g'
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
270 else:
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
271 globalMap = ''
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
272 if options.rgTag == 'true':
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
273 rgTag = ''
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
274 if options.rgTagID != '':
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
275 rgTag += '-R "ID:' + options.rgTagID + '" '
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
276 if options.rgTagCN != '':
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
277 rgTag += '-R "CN:' + options.rgTagCN + '" '
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
278 if options.rgTagDS != '':
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
279 rgTag += '-R "DS:' + options.rgTagDS + '" '
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
280 if options.rgTagDT != '':
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
281 rgTag += '-R "DT:' + options.rgTagDT + '" '
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
282 if options.rgTagLB != '':
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
283 rgTag += '-R "LB:' + options.rgTagLB + '" '
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
284 if options.rgTagPI != '':
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
285 rgTag += '-R "PI:' + options.rgTagPI + '" '
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
286 if options.rgTagPL != '':
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
287 rgTag += '-R "PL:' + options.rgTagPL + '" '
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
288 if options.rgTagPU != '':
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
289 rgTag += '-R "PU:' + options.rgTagPU + '" '
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
290 if options.rgTagSM != '':
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
291 rgTag += '-R "SM:' + options.rgTagSM + '" '
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
292 rgTag.rstrip(' ')
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
293 else:
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
294 rgTag = ''
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
295 if options.filterIndependently == 'true':
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
296 filterIndependently = '-I'
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
297 else:
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
298 filterIndependently = ''
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
299 if options.mapall == 'true':
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
300 mapall_options = '-A %s -M %s -O %s -E %s %s -W %s -T %s -q %s -n %s -a %s %s %s' % \
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
301 ( options.matchScore, options.mismatchPenalty, options.gapOpenPenalty, options.gapExtensPenalty,
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
302 globalMap, options.duplicateWindow, options.scoringThreshold, options.queueSize,
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
303 options.threads, options.outputFilter, rgTag, filterIndependently )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
304 else:
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
305 mapall_options = ''
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
306
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
307 # map1 - stage one
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
308 if options.map1 == 'true':
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
309 map1_options = 'map1 %s' % \
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
310 map1_parse( options.map1SeedLength, options.map1SeedMismatches, options.map1Mismatches, \
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
311 options.map1GapOpens, options.map1GapExtensions, options.map1MaxCALsDeletion, \
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
312 options.map1EndIndels, options.map1MaxOptimalCALs, options.map1MaxNodes )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
313 else:
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
314 map1_options = ''
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
315 # map2 - stage one
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
316 if options.map2 == 'true':
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
317 map2_options = 'map2 %s' % \
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
318 map2_parse( options.map2Coefficient, options.map2SeedIntervalSize, \
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
319 options.map2ZBest, options.map2ReverseTrigger )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
320 else:
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
321 map2_options = ''
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
322 # map3 - stage one
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
323 if options.map3 == 'true':
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
324 map3_options = 'map3 %s' % \
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
325 map3_parse( options.map3SeedLength, options.map3SeedMaxHits, \
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
326 options.map3SeedWindow, options.map3HPEnumeration )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
327 else:
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
328 map3_options = ''
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
329 # map1 - stage two
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
330 if options.MAP1== 'true':
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
331 MAP1_options = 'MAP1 %s' % \
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
332 map1_parse( options.MAP1SeedLength, options.MAP1SeedMismatches, options.MAP1Mismatches, \
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
333 options.MAP1GapOpens, options.MAP1GapExtensions, options.MAP1MaxCALsDeletion, \
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
334 options.MAP1EndIndels, options.MAP1MaxOptimalCALs, options.MAP1MaxNodes )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
335 else:
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
336 MAP1_options = ''
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
337 # map2 - stage two
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
338 if options.MAP2 == 'true':
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
339 MAP2_options = 'MAP2 %s' % \
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
340 map2_parse( options.MAP2Coefficient, options.MAP2SeedIntervalSize, \
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
341 options.MAP2ZBest, options.MAP2ReverseTrigger )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
342 else:
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
343 MAP2_options = ''
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
344 # map3 - stage two
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
345 if options.MAP3 == 'true':
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
346 MAP3_options = 'MAP3 %s' % \
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
347 MAP3_parse( options.MAP3SeedLength, options.MAP3SeedMaxHits, \
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
348 options.MAP3SeedWindow, options.MAP3HPEnumeration )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
349 else:
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
350 MAP3_options = ''
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
351
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
352 #mapping_cmds
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
353 # prepare actual mapping and generate mapping commands
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
354 cmd2 = 'tmap mapall -f %s -r %s -F fastq %s -v %s %s %s %s %s %s > %s' % \
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
355 ( ref_file_name, fastq, mapall_options,
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
356 map1_options, map2_options, map3_options,
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
357 MAP1_options, MAP2_options, MAP3_options,
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
358 options.output )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
359 # perform alignments
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
360 buffsize = 1048576
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
361 try:
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
362 # need to nest try-except in try-finally to handle 2.4
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
363 try:
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
364 # align
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
365 try:
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
366 tmp = tempfile.NamedTemporaryFile( dir=tmp_dir ).name
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
367 tmp_stderr = open( tmp, 'wb' )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
368 proc = subprocess.Popen( args=cmd2, shell=True, cwd=tmp_dir, stderr=tmp_stderr.fileno() )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
369 returncode = proc.wait()
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
370 tmp_stderr.close()
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
371 # get stderr, allowing for case where it's very large
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
372 tmp_stderr = open( tmp, 'rb' )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
373 stderr = ''
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
374 try:
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
375 while True:
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
376 stderr += tmp_stderr.read( buffsize )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
377 if not stderr or len( stderr ) % buffsize != 0:
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
378 break
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
379 except OverflowError:
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
380 pass
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
381 tmp_stderr.close()
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
382 if returncode != 0:
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
383 raise Exception, stderr
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
384 except Exception, e:
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
385 raise Exception, 'Error mapping sequence. ' + str( e )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
386 # remove header if necessary
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
387 if options.suppressHeader == 'true':
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
388 tmp_out = tempfile.NamedTemporaryFile( dir=tmp_dir)
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
389 tmp_out_name = tmp_out.name
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
390 tmp_out.close()
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
391 try:
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
392 shutil.move( options.output, tmp_out_name )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
393 except Exception, e:
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
394 raise Exception, 'Error moving output file before removing headers. ' + str( e )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
395 fout = file( options.output, 'w' )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
396 for line in file( tmp_out.name, 'r' ):
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
397 if not ( line.startswith( '@HD' ) or line.startswith( '@SQ' ) or line.startswith( '@RG' ) or line.startswith( '@PG' ) or line.startswith( '@CO' ) ):
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
398 fout.write( line )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
399 fout.close()
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
400 # check that there are results in the output file
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
401 if os.path.getsize( options.output ) > 0:
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
402 sys.stdout.write( 'TMAP completed' )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
403 else:
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
404 raise Exception, 'The output file is empty. You may simply have no matches, or there may be an error with your input file or settings.'
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
405 except Exception, e:
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
406 stop_err( 'The alignment failed.\n' + str( e ) )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
407 finally:
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
408 # clean up temp dir
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
409 if os.path.exists( tmp_index_dir ):
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
410 shutil.rmtree( tmp_index_dir )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
411 if os.path.exists( tmp_dir ):
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
412 shutil.rmtree( tmp_dir )
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
413
09951b7d29a4 Uploaded galaxy_tmap_tool.tar
greg
parents:
diff changeset
414 if __name__=="__main__": __main__()