comparison sRbowtieParser.py @ 2:70193ce0540e draft

planemo upload for repository https://bitbucket.org/drosofff/gedtools/
author mvdbeek
date Thu, 11 Jun 2015 10:15:20 -0400
parents 3a510730e3fc
children
comparison
equal deleted inserted replaced
1:f5388910d083 2:70193ce0540e
1 #!/usr/bin/python 1 #!/usr/bin/python
2 # python parser module to analyse sRbowtie alignments 2 # python parser module to analyse sRbowtie alignments
3 # version 1.0.0 - argparse implementation 3 # version 1.0.2 - argparse implementation
4 # Usage sRbowtieParser.py <1:index source> <2:extraction directive> <3:outputL> <4:polarity> <5:6:7 filePath:FileExt:FileLabel> <.. ad lib> 4 # Usage sRbowtieParser.py <1:index source> <2:extraction directive> <3:outputL> <4:polarity> <5:6:7 filePath:FileExt:FileLabel> <.. ad lib>
5 5
6 import sys, argparse 6 import sys, argparse
7 from smRtools import * 7 from smRtools import *
8
9 def masterListGenerator(data_source):
10 for filePath, FileExt, FileLabel in data_source:
11 yield HandleSmRNAwindows (filePath, FileExt, IndexSource, genomeRefFormat)
8 12
9 def Parser(): 13 def Parser():
10 the_parser = argparse.ArgumentParser() 14 the_parser = argparse.ArgumentParser()
11 the_parser.add_argument('--IndexSource', action="store", type=str, help="Path to the index source") 15 the_parser.add_argument('--IndexSource', action="store", type=str, help="Path to the index source")
12 the_parser.add_argument('--ExtractDirective', action="store", type=str, choices=["fastaSource", "bowtieIndex"], help="Extract info from fasta or bowtie index") 16 the_parser.add_argument('--ExtractDirective', action="store", type=str, choices=["fastaSource", "bowtieIndex"], help="Extract info from fasta or bowtie index")
22 26
23 IndexSource = args.IndexSource 27 IndexSource = args.IndexSource
24 genomeRefFormat = args.ExtractDirective 28 genomeRefFormat = args.ExtractDirective
25 Output = args.output 29 Output = args.output
26 Polarity = args.polarity 30 Polarity = args.polarity
27 MasterListOfGenomes = {} 31 header = ["gene"]
28 32
29 for filePath, FileExt, FileLabel in zip (args.alignmentSource, args.alignmentFormat, args.alignmentLabel):
30 MasterListOfGenomes[FileLabel] = HandleSmRNAwindows (filePath, FileExt, IndexSource, genomeRefFormat)
31 33
32 header = ["gene"] 34 FileLabelList=[label for label in args.alignmentLabel]
33 for filePath, FileExt, FileLabel in zip (args.alignmentSource, args.alignmentFormat, args.alignmentLabel): 35 header.extend(FileLabelList)
34 header.append(FileLabel) 36 assert (len(FileLabelList)==len(set(FileLabelList))),"You have supplied a non-unique label. Please make sure that your input files have unique names"
37
38 data_source=zip (args.alignmentSource, args.alignmentFormat, args.alignmentLabel)
39 master_generator=masterListGenerator(data_source)
40
41 for i,window in enumerate(master_generator):
42 window=window
43 if i==0:
44 gene_count_dict={gene:[str(item.readcount(polarity=Polarity))] for gene,item in window.instanceDict.items()}
45 else:
46 [gene_count_dict[gene].append(str(item.readcount(polarity=Polarity))) for gene,item in window.instanceDict.items()]
47
35 48
36 F = open (args.output, "w") 49 F = open (args.output, "w")
37 # print >>F, args 50 # print >>F, args
38 print >> F, "\t".join(header) 51 print >> F, "\t".join(header)
39 for item in sorted (MasterListOfGenomes[header[1]].instanceDict.keys() ): 52
53 for item in sorted(gene_count_dict.keys()):
40 line=[item] 54 line=[item]
41 for sample in header[1:]: 55 line.extend(gene_count_dict[item])
42 count = str (MasterListOfGenomes[sample].instanceDict[item].readcount(polarity=Polarity))
43 line.append(count)
44 print >> F, "\t".join(line ) 56 print >> F, "\t".join(line )
45 F.close() 57 F.close()