Mercurial > repos > petr-novak > repeatrxplorer
comparison bin/last_wrapper.py @ 0:1d1b9e1b2e2f draft
Uploaded
author | petr-novak |
---|---|
date | Thu, 19 Dec 2019 10:24:45 -0500 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:1d1b9e1b2e2f |
---|---|
1 #!/usr/bin/env python3 | |
2 ''' | |
3 wrapper for last program | |
4 run last with BlastTab+ output and return mgblast like formated output | |
5 last BlastTab+ output column order: | |
6 1 query name | |
7 2 reference name | |
8 3 percent identity | |
9 4 alignment length | |
10 5 mismatches | |
11 6 gap opens | |
12 7 query start | |
13 8 query end | |
14 9 reference start | |
15 10 reference end | |
16 11 e-value | |
17 12 bitscore | |
18 13 length of query | |
19 14 length of reference sequence | |
20 (accordin lastal manual - more column may be added in future) | |
21 | |
22 Needed mgblast order: | |
23 | |
24 qseqid 1 -> 1 | |
25 qlen 2 -> 13 | |
26 qstart 3 -> 7 | |
27 qend 4 -> 8 | |
28 sseqid 5 -> 2 | |
29 slen 6 -> 14 | |
30 sstart 7 -> 9 | |
31 send 8 -> 10 | |
32 pident 9 -> 3 | |
33 bitscore 10-> 12 | |
34 evalue 11-> 11 | |
35 sstrand 12-> must be evaluated! | |
36 | |
37 ''' | |
38 import subprocess | |
39 import sys | |
40 last_command = " ".join(["lastal"] + sys.argv[1:]) | |
41 p = subprocess.Popen(last_command, shell=True, stdout=subprocess.PIPE) | |
42 for j in p.stdout: | |
43 line = j.decode() | |
44 if line[0] != "#": | |
45 items = line.split("\t") | |
46 strand = "+" if int(items[6]) < int(items[7]) else "-" | |
47 out = "\t".join([items[i - 1] | |
48 for i in [1, 13, 7, 8, 2, 14, 9, 10, 3, 12, 11] | |
49 ]) + "\t" + strand + "\n" | |
50 print(out, end="") |