annotate blastxml_to_gapped_gff3.py @ 1:877cd0833221 draft

planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 014e89419c7304a50d78e3a3bfcf46f3e174fd7c
author iuc
date Wed, 15 Feb 2017 05:48:02 -0500
parents bd47051afe98
children 561e827baa5f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
877cd0833221 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 014e89419c7304a50d78e3a3bfcf46f3e174fd7c
iuc
parents: 0
diff changeset
1 #!/usr/bin/env python
0
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
2 import argparse
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
3 import copy
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
4 import logging
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
5 import re
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
6 import sys
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
7
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
8 from BCBio import GFF
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
9
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
10 logging.basicConfig(level=logging.INFO)
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
11 log = logging.getLogger(name='blastxml2gff3')
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
12
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
13 __author__ = "Eric Rasche"
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
14 __version__ = "0.4.0"
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
15 __maintainer__ = "Eric Rasche"
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
16 __email__ = "esr@tamu.edu"
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
17
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
18 __doc__ = """
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
19 BlastXML files, when transformed to GFF3, do not normally show gaps in the
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
20 blast hits. This tool aims to fill that "gap".
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
21 """
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
22
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
23
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
24 def blastxml2gff3(blastxml, min_gap=3, trim=False, trim_end=False):
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
25 from Bio.Blast import NCBIXML
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
26 from Bio.Seq import Seq
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
27 from Bio.SeqRecord import SeqRecord
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
28 from Bio.SeqFeature import SeqFeature, FeatureLocation
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
29
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
30 blast_records = NCBIXML.parse(blastxml)
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
31 records = []
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
32 for record in blast_records:
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
33 # http://www.sequenceontology.org/browser/release_2.4/term/SO:0000343
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
34 match_type = { # Currently we can only handle BLASTN, BLASTP
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
35 'BLASTN': 'nucleotide_match',
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
36 'BLASTP': 'protein_match',
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
37 }.get(record.application, 'match')
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
38
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
39 rec = SeqRecord(Seq("ACTG"), id=record.query)
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
40 for hit in record.alignments:
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
41 for hsp in hit.hsps:
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
42 qualifiers = {
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
43 "source": "blast",
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
44 "score": hsp.expect,
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
45 "accession": hit.accession,
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
46 "hit_id": hit.hit_id,
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
47 "length": hit.length,
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
48 "hit_titles": hit.title.split(' >')
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
49 }
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
50 desc = hit.title.split(' >')[0]
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
51 qualifiers['description'] = desc[desc.index(' '):]
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
52
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
53 # This required a fair bit of sketching out/match to figure out
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
54 # the first time.
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
55 #
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
56 # the match_start location must account for queries and
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
57 # subjecst that start at locations other than 1
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
58 parent_match_start = hsp.query_start - hsp.sbjct_start
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
59 # The end is the start + hit.length because the match itself
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
60 # may be longer than the parent feature, so we use the supplied
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
61 # subject/hit length to calculate the real ending of the target
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
62 # protein.
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
63 parent_match_end = hsp.query_start + hit.length + hsp.query.count('-')
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
64
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
65 # However, if the user requests that we trim the feature, then
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
66 # we need to cut the ``match`` start to 0 to match the parent feature.
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
67 # We'll also need to cut the end to match the query's end. It (maybe)
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
68 # should be the feature end? But we don't have access to that data, so
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
69 # We settle for this.
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
70 if trim:
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
71 if parent_match_start < 1:
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
72 parent_match_start = 0
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
73
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
74 if trim or trim_end:
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
75 if parent_match_end > hsp.query_end:
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
76 parent_match_end = hsp.query_end + 1
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
77
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
78 # The ``match`` feature will hold one or more ``match_part``s
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
79 top_feature = SeqFeature(
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
80 FeatureLocation(parent_match_start, parent_match_end),
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
81 type=match_type, strand=0,
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
82 qualifiers=qualifiers
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
83 )
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
84
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
85 # Unlike the parent feature, ``match_part``s have sources.
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
86 part_qualifiers = {
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
87 "source": "blast",
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
88 }
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
89 top_feature.sub_features = []
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
90 for start, end, cigar in generate_parts(hsp.query, hsp.match,
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
91 hsp.sbjct,
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
92 ignore_under=min_gap):
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
93 part_qualifiers['Gap'] = cigar
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
94 part_qualifiers['ID'] = hit.hit_id
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
95
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
96 if trim:
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
97 # If trimming, then we start relative to the
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
98 # match's start
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
99 match_part_start = parent_match_start + start
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
100 else:
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
101 # Otherwise, we have to account for the subject start's location
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
102 match_part_start = parent_match_start + hsp.sbjct_start + start - 1
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
103
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
104 # We used to use hsp.align_length here, but that includes
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
105 # gaps in the parent sequence
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
106 #
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
107 # Furthermore align_length will give calculation errors in weird places
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
108 # So we just use (end-start) for simplicity
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
109 match_part_end = match_part_start + (end - start)
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
110
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
111 top_feature.sub_features.append(
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
112 SeqFeature(
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
113 FeatureLocation(match_part_start, match_part_end),
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
114 type="match_part", strand=0,
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
115 qualifiers=copy.deepcopy(part_qualifiers))
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
116 )
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
117
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
118 rec.features.append(top_feature)
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
119 rec.annotations = {}
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
120 records.append(rec)
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
121 return records
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
122
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
123
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
124 def __remove_query_gaps(query, match, subject):
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
125 """remove positions in all three based on gaps in query
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
126
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
127 In order to simplify math and calculations...we remove all of the gaps
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
128 based on gap locations in the query sequence::
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
129
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
130 Q:ACTG-ACTGACTG
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
131 S:ACTGAAC---CTG
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
132
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
133 will become::
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
134
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
135 Q:ACTGACTGACTG
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
136 S:ACTGAC---CTG
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
137
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
138 which greatly simplifies the process of identifying the correct location
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
139 for a match_part
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
140 """
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
141 prev = 0
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
142 fq = ''
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
143 fm = ''
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
144 fs = ''
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
145 for position in re.finditer('-', query):
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
146 fq += query[prev:position.start()]
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
147 fm += match[prev:position.start()]
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
148 fs += subject[prev:position.start()]
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
149 prev = position.start() + 1
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
150 fq += query[prev:]
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
151 fm += match[prev:]
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
152 fs += subject[prev:]
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
153
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
154 return (fq, fm, fs)
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
155
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
156
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
157 def generate_parts(query, match, subject, ignore_under=3):
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
158 region_q = []
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
159 region_m = []
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
160 region_s = []
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
161
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
162 (query, match, subject) = __remove_query_gaps(query, match, subject)
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
163
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
164 region_start = -1
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
165 region_end = -1
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
166 mismatch_count = 0
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
167 for i, (q, m, s) in enumerate(zip(query, match, subject)):
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
168
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
169 # If we have a match
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
170 if m != ' ' or m == '+':
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
171 if region_start == -1:
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
172 region_start = i
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
173 # It's a new region, we need to reset or it's pre-seeded with
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
174 # spaces
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
175 region_q = []
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
176 region_m = []
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
177 region_s = []
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
178 region_end = i
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
179 mismatch_count = 0
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
180 else:
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
181 mismatch_count += 1
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
182
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
183 region_q.append(q)
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
184 region_m.append(m)
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
185 region_s.append(s)
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
186
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
187 if mismatch_count >= ignore_under and region_start != -1 and region_end != -1:
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
188 region_q = region_q[0:-ignore_under]
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
189 region_m = region_m[0:-ignore_under]
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
190 region_s = region_s[0:-ignore_under]
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
191 yield region_start, region_end + 1, \
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
192 cigar_from_string(region_q, region_m, region_s, strict_m=True)
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
193 region_q = []
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
194 region_m = []
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
195 region_s = []
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
196
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
197 region_start = -1
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
198 region_end = -1
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
199 mismatch_count = 0
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
200
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
201 yield region_start, region_end + 1, \
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
202 cigar_from_string(region_q, region_m, region_s, strict_m=True)
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
203
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
204
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
205 def _qms_to_matches(query, match, subject, strict_m=True):
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
206 matchline = []
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
207
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
208 for (q, m, s) in zip(query, match, subject):
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
209 ret = ''
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
210
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
211 if m != ' ' or m == '+':
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
212 ret = '='
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
213 elif m == ' ':
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
214 if q == '-':
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
215 ret = 'D'
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
216 elif s == '-':
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
217 ret = 'I'
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
218 else:
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
219 ret = 'X'
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
220 else:
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
221 log.warn("Bad data: \n\t%s\n\t%s\n\t%s\n" % (query, match, subject))
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
222
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
223 if strict_m:
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
224 if ret == '=' or ret == 'X':
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
225 ret = 'M'
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
226
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
227 matchline.append(ret)
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
228 return matchline
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
229
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
230
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
231 def _matchline_to_cigar(matchline):
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
232 cigar_line = []
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
233 last_char = matchline[0]
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
234 count = 0
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
235 for char in matchline:
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
236 if char == last_char:
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
237 count += 1
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
238 else:
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
239 cigar_line.append("%s%s" % (last_char, count))
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
240 count = 1
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
241 last_char = char
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
242 cigar_line.append("%s%s" % (last_char, count))
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
243 return ' '.join(cigar_line)
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
244
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
245
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
246 def cigar_from_string(query, match, subject, strict_m=True):
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
247 matchline = _qms_to_matches(query, match, subject, strict_m=strict_m)
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
248 if len(matchline) > 0:
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
249 return _matchline_to_cigar(matchline)
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
250 else:
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
251 return ""
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
252
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
253
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
254 if __name__ == '__main__':
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
255 parser = argparse.ArgumentParser(description='Convert Blast XML to gapped GFF3', epilog='')
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
256 parser.add_argument('blastxml', type=open, help='Blast XML Output')
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
257 parser.add_argument('--min_gap', type=int, help='Maximum gap size before generating a new match_part', default=3)
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
258 parser.add_argument('--trim', action='store_true', help='Trim blast hits to be only as long as the parent feature')
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
259 parser.add_argument('--trim_end', action='store_true', help='Cut blast results off at end of gene')
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
260 args = parser.parse_args()
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
261
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
262 result = blastxml2gff3(**vars(args))
bd47051afe98 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/blastxml_to_gapped_gff3 commit 8f38145c94ecb1e23c3ff6f0243213dc49d2287e
iuc
parents:
diff changeset
263 GFF.write(result, sys.stdout)