Mercurial > repos > petr-novak > repeatrxplorer
diff bin/last_wrapper.py @ 0:1d1b9e1b2e2f draft
Uploaded
author | petr-novak |
---|---|
date | Thu, 19 Dec 2019 10:24:45 -0500 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/bin/last_wrapper.py Thu Dec 19 10:24:45 2019 -0500 @@ -0,0 +1,50 @@ +#!/usr/bin/env python3 +''' +wrapper for last program +run last with BlastTab+ output and return mgblast like formated output +last BlastTab+ output column order: +1 query name +2 reference name +3 percent identity +4 alignment length +5 mismatches +6 gap opens +7 query start +8 query end +9 reference start +10 reference end +11 e-value +12 bitscore +13 length of query +14 length of reference sequence +(accordin lastal manual - more column may be added in future) + +Needed mgblast order: + +qseqid 1 -> 1 +qlen 2 -> 13 +qstart 3 -> 7 +qend 4 -> 8 +sseqid 5 -> 2 +slen 6 -> 14 +sstart 7 -> 9 +send 8 -> 10 +pident 9 -> 3 +bitscore 10-> 12 +evalue 11-> 11 +sstrand 12-> must be evaluated! + +''' +import subprocess +import sys +last_command = " ".join(["lastal"] + sys.argv[1:]) +p = subprocess.Popen(last_command, shell=True, stdout=subprocess.PIPE) +for j in p.stdout: + line = j.decode() + if line[0] != "#": + items = line.split("\t") + strand = "+" if int(items[6]) < int(items[7]) else "-" + out = "\t".join([items[i - 1] + for i in [1, 13, 7, 8, 2, 14, 9, 10, 3, 12, 11] + ]) + "\t" + strand + "\n" + print(out, end="")