2
|
1 #!/usr/bin/python
|
|
2 # python parser module to analyse sRbowtie alignments
|
|
3 # version 0.9
|
|
4 # Usage sRbowtieParser.py <1:index source> <2:extraction directive> <3:outputL> <4:polarity> <5:6:7 filePath:FileExt:FileLabel> <.. ad lib>
|
|
5
|
|
6 import sys
|
|
7 from smRtools import *
|
|
8
|
|
9 IndexSource = sys.argv[1]
|
|
10 ExtractionDirective = sys.argv[2]
|
|
11 if ExtractionDirective == "--do_not_extract_index":
|
|
12 genomeRefFormat = "fastaSource"
|
|
13 elif ExtractionDirective == "--extract_index":
|
|
14 genomeRefFormat = "bowtieIndex"
|
|
15 Output = sys.argv[3]
|
|
16 Polarity = sys.argv[4] # maybe "both", "forward", "reverse"
|
|
17 Triplets = [sys.argv[5:][i:i+3] for i in xrange(0, len(sys.argv[5:]), 3)]
|
|
18 MasterListOfGenomes = {}
|
|
19
|
|
20 for [filePath, FileExt, FileLabel] in Triplets:
|
|
21 MasterListOfGenomes[FileLabel] = HandleSmRNAwindows (filePath, FileExt, IndexSource, genomeRefFormat)
|
|
22
|
|
23 header = ["gene"]
|
|
24 for [filePath, FileExt, FileLabel] in Triplets:
|
|
25 header.append(FileLabel)
|
|
26
|
|
27 F = open (sys.argv[3], "w")
|
|
28 print >> F, "\t".join(header)
|
|
29 for item in sorted (MasterListOfGenomes[header[1]].instanceDict.keys() ):
|
|
30 line=[item]
|
|
31 for sample in header[1:]:
|
|
32 count = str (MasterListOfGenomes[sample].instanceDict[item].readcount(polarity=Polarity))
|
|
33 line.append(count)
|
|
34 print >> F, "\t".join(line )
|
|
35 F.close()
|