File: interface_utils.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 (105 lines) | stat: -rwxr-xr-x 3,761 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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
#!/usr/bin/python3

import sys
import os
import subprocess
from parse_read import *
from parse_alignment import *
from parse_qv import *

#filename = sys.argv[1]
#readarg = sys.argv[2]

def get_reads(filename, readlist):
    stream = subprocess.Popen(["DBshow", filename] + list(map(str,readlist)),
                                      stdout=subprocess.PIPE,bufsize=1)
    reads = parse_read(stream.stdout) # generator
    return reads

def get_QV(filename, readlist):
    stream = subprocess.Popen(["DBdump", filename, '-i'] + list(map(str,readlist)),
                                      stdout=subprocess.PIPE,bufsize=1)
    qv = parse_qv(stream.stdout) # generator
    return qv


def get_alignments(filename, readlist):
    stream = subprocess.Popen(["LAshow", filename,filename]+ list(map(str,readlist)),
                                      stdout=subprocess.PIPE,bufsize=1)
    alignments = parse_alignment(stream.stdout) # generator
    return alignments


def get_alignments2(filename, alignmentname, readlist):
    stream = subprocess.Popen(["LA4Awesome", filename, filename, alignmentname]+ list(map(str,readlist)),
                                      stdout=subprocess.PIPE,bufsize=1)
    alignments = parse_alignment2(stream.stdout) # generator
    return alignments
    
    
def get_alignments_mapping(filename, ref, alignmentname, readlist):
    stream = subprocess.Popen(["LA4Awesome", filename, ref, alignmentname]+ list(map(str,readlist))+ ['-F'],
                                      stdout=subprocess.PIPE,bufsize=1)
    alignments = parse_alignment2(stream.stdout) # generator
    return alignments
    
def get_alignments_mapping2(ref, filename, alignmentname):
    print(ref,filename,alignmentname)
    stream = subprocess.Popen(["LA4Awesome", ref, filename, alignmentname],
                                      stdout=subprocess.PIPE,bufsize=1)
    alignments = parse_alignment2(stream.stdout) # generator
    return alignments


    
def get_alignments_mapping3(ref, filename, alignmentname, contig_no):
    print(ref,filename,alignmentname)
    stream = subprocess.Popen(["LA4Awesome", ref, filename, alignmentname, contig_no],
                                      stdout=subprocess.PIPE,bufsize=1)
    alignments = parse_alignment2(stream.stdout) # generator
    return alignments

def get_all_reads(filename):
    stream = subprocess.Popen(["DBshow", filename],
                                      stdout=subprocess.PIPE,bufsize=1)
    reads = parse_read(stream.stdout) # generator
    return reads

def get_all_alignments(filename):
    stream = subprocess.Popen(["LAshow", filename, filename ],
                                      stdout=subprocess.PIPE,bufsize=1)
    alignments = parse_alignment(stream.stdout) # generator
    return alignments

def get_all_alignments2(filename, alignmentname):
    stream = subprocess.Popen(["LA4Awesome", filename, filename, alignmentname ],
                                      stdout=subprocess.PIPE,bufsize=1)
    alignments = parse_alignment2(stream.stdout) # generator
    return alignments

def get_all_reads_in_alignment_with_one(filename,read):
    this_read = get_reads(filename,[read])
    alignments = list(get_alignments(filename,[read]))
    readlist = [x[2] for x in alignments]
    print(readlist)
    other_reads = get_reads(filename,readlist)
    
    return [list(this_read), list(other_reads), alignments] # note that this is not a generator


# test   
#for item in get_reads('G',[1]):
#    print item
    
#for item in get_alignments('G',[1]):
#    print item

#for item in get_alignments2('G','G.1.las',[1]):
#    print item

#for item in get_all_reads_in_alignment_with_one('G',1):
#    print item

#for item in get_reads('G', [1,2,3]):
#    print item