Allow setting max_frag_len on a per alignment level
This commit is contained in:
parent
31fc0f218a
commit
1bde2cf076
|
|
@ -133,11 +133,14 @@ cdef class Aligner:
|
||||||
def __bool__(self):
|
def __bool__(self):
|
||||||
return (self._idx != NULL)
|
return (self._idx != NULL)
|
||||||
|
|
||||||
def map(self, seq, seq2=None, buf=None):
|
def map(self, seq, seq2=None, buf=None, max_frag_len=None):
|
||||||
cdef cmappy.mm_reg1_t *regs
|
cdef cmappy.mm_reg1_t *regs
|
||||||
cdef cmappy.mm_hitpy_t h
|
cdef cmappy.mm_hitpy_t h
|
||||||
cdef ThreadBuffer b
|
cdef ThreadBuffer b
|
||||||
cdef int n_regs
|
cdef int n_regs
|
||||||
|
cdef cmappy.mm_mapopt_t map_opt
|
||||||
|
map_opt = self.map_opt
|
||||||
|
if max_frag_len is not None: map_opt.max_frag_len = max_frag_len
|
||||||
|
|
||||||
if self._idx is NULL: return None
|
if self._idx is NULL: return None
|
||||||
if buf is None: b = ThreadBuffer()
|
if buf is None: b = ThreadBuffer()
|
||||||
|
|
@ -145,10 +148,10 @@ cdef class Aligner:
|
||||||
|
|
||||||
_seq = seq if isinstance(seq, bytes) else seq.encode()
|
_seq = seq if isinstance(seq, bytes) else seq.encode()
|
||||||
if seq2 is None:
|
if seq2 is None:
|
||||||
regs = cmappy.mm_map_aux(self._idx, _seq, NULL, &n_regs, b._b, &self.map_opt)
|
regs = cmappy.mm_map_aux(self._idx, _seq, NULL, &n_regs, b._b, &map_opt)
|
||||||
else:
|
else:
|
||||||
_seq2 = seq2 if isinstance(seq2, bytes) else seq2.encode()
|
_seq2 = seq2 if isinstance(seq2, bytes) else seq2.encode()
|
||||||
regs = cmappy.mm_map_aux(self._idx, _seq, _seq2, &n_regs, b._b, &self.map_opt)
|
regs = cmappy.mm_map_aux(self._idx, _seq, _seq2, &n_regs, b._b, &map_opt)
|
||||||
|
|
||||||
for i in range(n_regs):
|
for i in range(n_regs):
|
||||||
cmappy.mm_reg2hitpy(self._idx, ®s[i], &h)
|
cmappy.mm_reg2hitpy(self._idx, ®s[i], &h)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue