annotate blast_to_scaffold.py @ 3:f7474298b40a draft

planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit fb47b9859a0703f1fa4a1e76b75b9dae29ca8329
author drosofff
date Fri, 25 Mar 2016 19:22:25 -0400
parents 4be47f92e0f7
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
1 #!/usr/bin/env python
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
2 import sys
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
3 import argparse
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
4
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
5 def insert_newlines(string, every=60):
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
6 lines = []
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
7 for i in xrange(0, len(string), every):
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
8 lines.append(string[i:i+every])
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
9 return '\n'.join(lines)
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
10
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
11 def getseq (fastadict, transcript, up, down, orientation="direct"):
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
12 def reverse (seq):
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
13 revdict = {"A":"T","T":"A","G":"C","C":"G","N":"N"}
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
14 revseq = [revdict[i] for i in seq[::-1]]
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
15 return "".join(revseq)
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
16 pickseq = fastadict[transcript][up-1:down]
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
17 if orientation == "direct":
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
18 return pickseq
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
19 else:
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
20 return reverse(pickseq)
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
21
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
22 def Parser():
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
23 the_parser = argparse.ArgumentParser(
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
24 description="Generate DNA scaffold from blastn or tblastx alignment of Contigs")
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
25 the_parser.add_argument(
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
26 '--sequences', action="store", type=str, help="input sequence file in fasta format")
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
27 the_parser.add_argument(
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
28 '--guideSequence', action="store", type=str, help="the reference sequence to guide the scaffold assembly in fasta format")
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
29 the_parser.add_argument(
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
30 '--blast-tab', dest="blast_tab", action="store", type=str, help="13-columns tabular blastn or tblastx output")
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
31 the_parser.add_argument(
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
32 '--output', action="store", type=str, help="output file path, fasta format")
3
f7474298b40a planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit fb47b9859a0703f1fa4a1e76b75b9dae29ca8329
drosofff
parents: 2
diff changeset
33 the_parser.add_argument(
f7474298b40a planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit fb47b9859a0703f1fa4a1e76b75b9dae29ca8329
drosofff
parents: 2
diff changeset
34 '--scaffold_prefix', action="store", type=str, help="the prefix that will be used for the header of the fasta scaffold")
f7474298b40a planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit fb47b9859a0703f1fa4a1e76b75b9dae29ca8329
drosofff
parents: 2
diff changeset
35 the_parser.add_argument(
f7474298b40a planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit fb47b9859a0703f1fa4a1e76b75b9dae29ca8329
drosofff
parents: 2
diff changeset
36 '--scaffold_suffix', action="store", type=str, help="the sufix that will be used for the header of the fasta scaffold")
0
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
37 args = the_parser.parse_args()
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
38 return args
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
39
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
40 def blatnInfo (file):
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
41 blastlist = []
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
42 with open(file, "r") as f:
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
43 for line in f:
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
44 minilist = []
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
45 fields = line.rstrip().split()
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
46 minilist.append(fields[0])
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
47 minilist.extend(fields[6:10])
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
48 blastlist.append(minilist)
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
49 blastlist.sort(key=lambda x: x[3], reverse=True)
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
50 return blastlist
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
51
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
52 def myContigs (file):
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
53 Contigs = {}
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
54 with open(file, "r") as f:
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
55 for line in f:
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
56 if line[0] == ">":
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
57 header = line[1:-1]
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
58 Contigs[header] = ""
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
59 else:
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
60 Contigs[header] += line[:-1]
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
61 return Contigs
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
62
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
63 def myGuide (file):
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
64 Guide = {}
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
65 coordinate = 0
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
66 with open(file, "r") as f:
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
67 for line in f:
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
68 if line[0] == ">":
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
69 continue
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
70 else:
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
71 for nucleotide in line[:-1]:
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
72 coordinate += 1
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
73 Guide[coordinate] = nucleotide.lower()
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
74 return Guide
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
75
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
76 def updateGuide (blastlist, GuideDict, ContigsDict):
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
77 '''
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
78 the blastlist object is a list of list with
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
79 element [0] : name of the blasted Contig
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
80 element [1] : queryStart of the alignment to the reference
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
81 element [2] = queryStop of the alignment to the reference
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
82 element [3] : subjectStart of the alignment to the reference
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
83 element [4] = subjectStop of the alignment to the reference
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
84 '''
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
85 for fields in blastlist:
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
86 seqHeader = fields[0]
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
87 queryStart = int(fields[1])
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
88 queryStop = int(fields[2])
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
89 subjectStart = int(fields[3])
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
90 subjectStop = int(fields[4])
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
91 if subjectStart > subjectStop:
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
92 subjectStart, subjectStop = subjectStop, subjectStart
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
93 orientation = "reverse"
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
94 else:
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
95 orientation = "direct"
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
96 sequence = getseq (ContigsDict, seqHeader, queryStart, queryStop, orientation)
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
97 for i in range(subjectStart, subjectStop+1):
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
98 try:
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
99 del GuideDict[i]
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
100 except KeyError:
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
101 continue
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
102 for i, nucleotide in enumerate(sequence):
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
103 GuideDict[i+subjectStart] = nucleotide
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
104
3
f7474298b40a planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit fb47b9859a0703f1fa4a1e76b75b9dae29ca8329
drosofff
parents: 2
diff changeset
105 def finalAssembly (GuideDict, outputfile, prefix, suffix):
0
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
106 finalSeqList = []
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
107 for keys in sorted(GuideDict):
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
108 finalSeqList.append(GuideDict[keys])
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
109 finalSequence = insert_newlines("".join(finalSeqList) )
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
110 Out = open (outputfile, "w")
3
f7474298b40a planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit fb47b9859a0703f1fa4a1e76b75b9dae29ca8329
drosofff
parents: 2
diff changeset
111 print >> Out, ">Scaffold_from_%s_guided_by_%s" % (prefix, suffix)
0
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
112 print >> Out, finalSequence
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
113 Out.close()
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
114
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
115 def __main__():
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
116 args = Parser()
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
117 ContigsDict = myContigs (args.sequences)
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
118 GuideDict = myGuide (args.guideSequence)
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
119 blastlist = blatnInfo(args.blast_tab)
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
120 updateGuide(blastlist, GuideDict, ContigsDict)
3
f7474298b40a planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit fb47b9859a0703f1fa4a1e76b75b9dae29ca8329
drosofff
parents: 2
diff changeset
121 finalAssembly(GuideDict, args.output, args.scaffold_prefix, args.scaffold_suffix)
0
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
122
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
123 if __name__ == "__main__":
a97704553a32 planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/blast_to_scaffold commit 5ecc0c7c2e7a6c1dfff04a881e55aa4b6d6e60a9
drosofff
parents:
diff changeset
124 __main__()