Mercurial > repos > drosofff > msp_sr_readmap_and_size_histograms
annotate readmap.py @ 0:ac7d8e55bb67 draft
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
author | drosofff |
---|---|
date | Wed, 21 Oct 2015 11:13:18 -0400 |
parents | |
children | ebfc73c72652 |
rev | line source |
---|---|
0
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
1 #!/usr/bin/python |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
2 # python parser module for for readmaps and size distributions, guided by GFF3 |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
3 # version 0.9.1 (1-6-2014) |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
4 # Usage readmap.py <1:index source> <2:extraction directive> <3:output pre-mir> <4: output mature miRs> <5:mirbase GFF3> |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
5 # <6:pathToLatticeDataframe or "dummy_dataframe_path"> <7:Rcode or "dummy_plotCode"> <8:latticePDF or "dummy_latticePDF"> |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
6 # <9:10:11 filePath:FileExt:FileLabel> <.. ad lib> |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
7 |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
8 import sys, subprocess, argparse |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
9 from smRtools import * |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
10 from collections import OrderedDict, defaultdict |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
11 import os |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
12 |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
13 def Parser(): |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
14 the_parser = argparse.ArgumentParser() |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
15 the_parser.add_argument('--output_readmap', action="store", type=str, help="readmap dataframe") |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
16 the_parser.add_argument('--output_size_distribution', action="store", type=str, help="size distribution dataframe") |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
17 the_parser.add_argument('--reference_fasta', action="store", type=str, help="output file") |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
18 the_parser.add_argument('--reference_bowtie_index',action='store', help="paths to indexed or fasta references") |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
19 the_parser.add_argument('--input',nargs='+', help="paths to multiple input files") |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
20 the_parser.add_argument('--ext',nargs='+', help="input file type") |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
21 the_parser.add_argument('--label',nargs='+', help="labels of multiple input files") |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
22 the_parser.add_argument('--normalization_factor',nargs='+', type=float, help="Normalization factor for input file") |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
23 the_parser.add_argument('--gff', type=str, help="GFF containing regions of interest") |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
24 the_parser.add_argument('--minquery', type=int, help="Minimum readsize") |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
25 the_parser.add_argument('--maxquery', type=int, help="Maximum readsize") |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
26 the_parser.add_argument('--rcode', type=str, help="R script") |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
27 args = the_parser.parse_args() |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
28 return args |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
29 |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
30 args=Parser() |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
31 if args.reference_fasta: |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
32 genomeRefFormat = "fastaSource" |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
33 genomeRefFile = args.reference_fasta |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
34 if args.reference_bowtie_index: |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
35 genomeRefFormat = "bowtieIndex" |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
36 genomeRefFile = args.reference_bowtie_index |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
37 readmap_file=args.output_readmap |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
38 size_distribution_file=args.output_size_distribution |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
39 minquery=args.minquery |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
40 maxquery=args.maxquery |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
41 Rcode = args.rcode |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
42 filePath=args.input |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
43 fileExt=args.ext |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
44 fileLabel=args.label |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
45 normalization_factor=args.normalization_factor |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
46 |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
47 MasterListOfGenomes = OrderedDict() |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
48 |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
49 def process_samples(filePath): |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
50 for i, filePath in enumerate(filePath): |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
51 norm=normalization_factor[i] |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
52 print fileLabel[i] |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
53 MasterListOfGenomes[fileLabel[i]] = HandleSmRNAwindows (alignmentFile=filePath, alignmentFileFormat=fileExt[i], genomeRefFile=genomeRefFile, genomeRefFormat=genomeRefFormat,\ |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
54 biosample=fileLabel[i], size_inf=minquery, size_sup=maxquery, norm=norm) |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
55 return MasterListOfGenomes |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
56 |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
57 def dataframe_sanityzer (listofdatalines): |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
58 Dict = defaultdict(float) |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
59 for line in listofdatalines: |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
60 fields= line.split("\t") |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
61 Dict[fields[0]] += float (fields[2]) |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
62 filtered_list = [] |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
63 for line in listofdatalines: |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
64 fields= line.split("\t") |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
65 if Dict[fields[0]] != 0: |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
66 filtered_list.append(line) |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
67 return filtered_list |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
68 |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
69 def write_readplot_dataframe(readDict, readmap_file): |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
70 listoflines = [] |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
71 with open(readmap_file, 'w') as readmap: |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
72 print >>readmap, "gene\tcoord\tcount\tpolarity\tsample" |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
73 for sample in readDict.keys(): |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
74 if args.gff: |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
75 dict=readDict[sample] |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
76 else: |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
77 dict=readDict[sample].instanceDict |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
78 for gene in dict.keys(): |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
79 plottable = dict[gene].readplot() |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
80 for line in plottable: |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
81 #print >>readmap, "%s\t%s" % (line, sample) |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
82 listoflines.append ("%s\t%s" % (line, sample)) |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
83 listoflines = dataframe_sanityzer(listoflines) |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
84 for line in listoflines: |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
85 print >>readmap, line |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
86 |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
87 def write_size_distribution_dataframe(readDict, size_distribution_file): |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
88 listoflines = [] |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
89 with open(size_distribution_file, 'w') as size_distrib: |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
90 print >>size_distrib, "gene\tsize\tcount\tpolarity\tsample" # test before was "gene\tpolarity\tsize\tcount\tsample" |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
91 for sample in readDict.keys(): |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
92 if args.gff: |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
93 dict=readDict[sample] |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
94 else: |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
95 dict=readDict[sample].instanceDict |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
96 for gene in dict.keys(): |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
97 histogram = dict[gene].size_histogram(minquery=args.minquery, maxquery=args.maxquery) |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
98 for polarity in histogram.keys(): |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
99 if polarity=='both': |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
100 continue |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
101 #for size in xrange(args.minquery, args.maxquery): |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
102 # if not size in histogram[polarity].keys(): |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
103 # histogram[size]=0 |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
104 for size, count in histogram[polarity].iteritems(): |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
105 #print >>size_distrib, "%s\t%s\t%s\t%s\t%s" % (gene, size, count, polarity, sample) # test, changed the order accordingly |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
106 listoflines.append ("%s\t%s\t%s\t%s\t%s" % (gene, size, count, polarity, sample) ) |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
107 listoflines = dataframe_sanityzer(listoflines) |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
108 for line in listoflines: |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
109 print >>size_distrib, line |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
110 |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
111 def gff_item_subinstances(readDict, gff3): |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
112 GFFinstanceDict=OrderedDict() |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
113 for sample in readDict.keys(): |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
114 GFFinstanceDict[sample]={} # to implement the 2nd level of directionary in an OrderedDict Class object (would not be required with defaultdict Class) |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
115 with open(gff3) as gff: |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
116 for line in gff: |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
117 if line[0] == "#": continue |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
118 gff_fields = line[:-1].split("\t") |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
119 chrom = gff_fields[0] |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
120 gff_name = gff_fields[-1].split("Name=")[-1].split(";")[0] # to isolate the GFF Name |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
121 item_upstream_coordinate = int(gff_fields[3]) |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
122 item_downstream_coordinate = int(gff_fields[4]) |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
123 item_polarity = gff_fields[6] |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
124 for sample in readDict.keys(): |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
125 ## this is not required anymore but test |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
126 # if not GFFinstanceDict.has_key(sample): |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
127 # GFFinstanceDict[sample]={} |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
128 #### |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
129 subinstance=extractsubinstance(item_upstream_coordinate, item_downstream_coordinate, readDict[sample].instanceDict[chrom]) |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
130 if item_polarity == '-': |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
131 subinstance.readDict={key*-1:value for key, value in subinstance.readDict.iteritems()} |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
132 subinstance.gene=gff_name |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
133 GFFinstanceDict[sample][gff_name]=subinstance |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
134 return GFFinstanceDict |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
135 |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
136 MasterListOfGenomes=process_samples(filePath) |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
137 |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
138 if args.gff: |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
139 MasterListOfGenomes=gff_item_subinstances(MasterListOfGenomes, args.gff) |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
140 |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
141 write_readplot_dataframe(MasterListOfGenomes, readmap_file) |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
142 write_size_distribution_dataframe(MasterListOfGenomes, size_distribution_file) |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
143 |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
144 R_command="Rscript "+ Rcode |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
145 process = subprocess.Popen(R_command.split()) |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
146 process.wait() |
ac7d8e55bb67
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit fe40dec87779c1fcfbd03330e653aa886f4a2cda
drosofff
parents:
diff
changeset
|
147 |