def __init__(self, *args, **keywords): SeqDict.__init__(self) self.index = FastaIndex() if len(args) > 0: self.read(*args, **keywords)
def __init__(self, *args, ** keywords): SeqDict.__init__(self) self.index = FastaIndex() if len(args) > 0: self.read(* args, **keywords)
def __getitem__(self, key): """Get a sequence by key""" val = SeqDict.__getitem__(self, key) if val is None: # if val == None, then we are using fasta indexing val = self.index.get(key) # cache value self[key] = val return val else: return val
def getseq(self, key, start=1, end=None, strand=1): """Get a sequence (or subsequence) by key""" val = SeqDict.__getitem__(self, key) if val is None: # if val == None, then we are using fasta indexing return self.index.get(key, start, end, strand) else: start = util.clamp(start, 1, None) end = util.clamp(end, 1, None) val = val[start - 1:end] # reverse complement if needed if strand == -1: val = _revcomp(val) return val
def getseq(self, key, start=1, end=None, strand=1): """Get a sequence (or subsequence) by key""" val = SeqDict.__getitem__(self, key) if val is None: # if val == None, then we are using fasta indexing return self.index.get(key, start, end, strand) else: start = util.clamp(start, 1, None) end = util.clamp(end, 1, None) val = val[start-1:end] # reverse complement if needed if strand == -1: val = _revcomp(val) return val