File: run_mapping.py

package info (click to toggle)
hinge 0.5.0-8
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 2,972 kB
  • sloc: cpp: 9,480; ansic: 8,826; python: 5,023; sh: 340; makefile: 10
file content (41 lines) | stat: -rwxr-xr-x 1,127 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#!/usr/bin/python3
import sys
import os
import subprocess
from parse_read import *
from parse_alignment import *

filename,filename2 = sys.argv[1:3]
alignmentname = sys.argv[3]
readarg = sys.argv[4]


stream = subprocess.Popen(["LA4Awesome", filename, filename2 , alignmentname ,readarg, '-F'],
                                  stdout=subprocess.PIPE, bufsize=1)

alignments = parse_alignment2(stream.stdout) # generator

d = {}
for alignment in alignments:
    if alignment[2] not in d:
        d[alignment[2]] = []
    d[alignment[2]].append([alignment[0],alignment[3],alignment[4], alignment[6], alignment[7], alignment[1]])
    
#print d

mapping = {}

for key,value in list(d.items()):
    value.sort(key = lambda x:x[2]-x[1], reverse=True)
    aln = value[0]
    
    if aln[0] == 'n':
        mapping[str(key)] = (aln[1], aln[2],aln[-1], 0)
        mapping[str(key)+'\''] = (aln[2], aln[1],aln[-1], 1)
    else:
        mapping[str(key)] = (aln[2], aln[1], aln[-1], 1)
        mapping[str(key)+'\''] = (aln[1], aln[2], aln[-1], 0)
    
#print mapping
import ujson
ujson.dump(mapping,open(filename+'.mapping.json','w'))