コード例 #1
0
ファイル: xnestedlist.py プロジェクト: mamanambiya/pygr
 def getSlice(self, seqID, start, stop):
     'perform an interval query and return results as raw ivals'
     try:
         seq = self.seqDict[seqID]
         nlmsa_id, ns, offset = self.seqs[seq] # GET UNION INFO FOR THIS SEQ
     except KeyError:
         return '' # failure code
     ival = sequence.absoluteSlice(seq, start, stop) # GET THE INTERVAL
     try:
         myslice = self[ival] # DO THE QUERY
     except EmptySliceError:
         return 'EMPTY'
     except KeyError:
         return ''  # FAILURE CODE
     ivals = myslice.rawIvals() # GET RAW INTERVAL DATA
     d = {}
     # Save index info for source seq.
     d[nlmsa_id] = self.seqs.IDdict[str(nlmsa_id)]
     for v in ivals: # SAVE INDEX INFO FOR TARGET SEQS
         id = v[2] # target_id NLMSA_ID
         if not self.seqlist.is_lpo(id):
             # Only non-LPO seqs stored in this index.
             d[id] = self.seqs.IDdict[str(id)]
     # XMLRPC can't handle int dictionaries, use a list.
     l = [(key, val) for key, val in d.items()]
     # List of aligned ivals, list of (nlmsa_id, (seqID, nsID)).
     return nlmsa_id, ivals, l
コード例 #2
0
ファイル: xnestedlist.py プロジェクト: jqian/pygr
 def getSlice(self, seqID, start, stop):
     "perform an interval query and return results as raw ivals"
     try:
         seq = self.seqDict[seqID]
         nlmsa_id, ns, offset = self.seqs[seq]  # GET UNION INFO FOR THIS SEQ
     except KeyError:
         return ""  # failure code
     ival = sequence.absoluteSlice(seq, start, stop)  # GET THE INTERVAL
     try:
         myslice = self[ival]  # DO THE QUERY
     except EmptySliceError:
         return "EMPTY"
     except KeyError:
         return ""  # FAILURE CODE
     ivals = myslice.rawIvals()  # GET RAW INTERVAL DATA
     d = {}
     d[nlmsa_id] = self.seqs.IDdict[str(nlmsa_id)]  # SAVE INDEX INFO FOR SOURCE SEQ
     for v in ivals:  # SAVE INDEX INFO FOR TARGET SEQS
         id = v[2]  # target_id NLMSA_ID
         if not self.seqlist.is_lpo(id):  # ONLY NON-LPO SEQS STORED IN THIS INDEX
             d[id] = self.seqs.IDdict[str(id)]
     l = [(key, val) for key, val in d.items()]  # XMLRPC CAN'T HANDLE int DICT, SO USE LIST
     return nlmsa_id, ivals, l  # LIST OF ALIGNED IVALS, LIST OF (nlmsa_id,(seqID,nsID))