Package Bio :: Package builders :: Package Search :: Module search
[hide private]
[frames] | no frames]

Source Code for Module Bio.builders.Search.search

 1  from Martel import Dispatch 
 2  from Bio import Search, StdHandler 
 3   
4 -class BuildSearch(Dispatch.Dispatcher):
5 - def __init__(self):
6 Dispatch.Dispatcher.__init__(self, 7 prefix = "bioformat:", 8 remap = { 9 "bioformat:hit": "bioformat:hit_description_block", 10 } 11 ) 12 13 self.acquire(StdHandler.Handle_hsp(self.add_hsp)) 14 self.acquire(StdHandler.Handle_search_header(self.add_header)) 15 self.acquire(StdHandler.Handle_search_table(self.add_table)) 16 self.acquire(StdHandler.Handle_search_info(self.add_stats))
17
18 - def start_(self, name, attrs):
19 self.algorithm = None 20 self.query = None 21 self.database = None 22 self.table = [] 23 self.hits = [] 24 self.parameters = {} 25 self.statistics = {}
26
27 - def end_(self, name):
28 self.document = None 29 self.document = Search.Search( 30 self.algorithm, 31 self.query, 32 self.database, 33 self.table, 34 self.hits, 35 self.parameters, 36 self.statistics)
37
38 - def start_hit(self, name, attrs):
39 self.hit_description = None 40 self.hit_length = None 41 self.hsps = []
42
43 - def end_hit(self, name):
44 self.hits.append(Search.Hit("XXX SPAM", self.hit_description, 45 "XXX EGGS", self.hit_length, 46 self.algorithm, self.hsps))
47
48 - def add_hsp(self, hsp_values, hsp_handler, strands, frames):
49 self.hsps.append(Search.HSP(hsp_handler.query_seq, 50 hsp_handler.homology_seq, 51 hsp_handler.subject_seq, 52 53 # XXX strand and frame! 54 (hsp_handler.query_start_loc, 55 hsp_handler.query_end_loc), 56 (hsp_handler.subject_start_loc, 57 hsp_handler.subject_end_loc), 58 59 hsp_handler.query_name, 60 hsp_handler.subject_name, 61 62 self.algorithm, 63 64 hsp_values))
65
66 - def add_table(self, table):
67 self.table = [Search.TableInfo(*x) for x in table]
68
69 - def add_header(self, info):
70 self.algorithm = Search.Algorithm(info["appname"], 71 info["appversion"]) 72 self.database = Search.Database(info["dbname"], 73 info["db_num_letters"], 74 info["db_num_sequences"]) 75 self.query = Search.Query("XXX spam", "XXX eggs", 76 info["query_description"], 77 info["query_size"])
78
79 - def add_stats(self, parameters, statistics):
82 83 StdHandler.add_text_block_handler(BuildSearch, "hit_description", 84 "join-description", "join|fixspaces", 85 "hit_description") 86 87 StdHandler.add_int_handler(BuildSearch, "hit_length", "hit_length") 88 89 make_builder = BuildSearch 90