Cython: fasta writer

This commit is contained in:
Celine Mercier
2018-10-09 16:40:30 +02:00
parent e31c8ea57a
commit aa5ee53478
2 changed files with 13 additions and 15 deletions

View File

@ -4,7 +4,7 @@ from cython.view cimport array as cvarray
cdef class FastaFormat:
cdef HeaderFormat headerFormater
cdef HeaderFormat headerFormatter
cdef size_t sequenceBufferLength
cdef char* sequenceBuffer

View File

@ -1,15 +1,20 @@
#cython: language_level=3
cimport cython
from obitools3.dms.capi.obiview cimport NUC_SEQUENCE_COLUMN
from obitools3.utils cimport bytes2str
cdef class FastaFormat:
def __init__(self, list tags=[], bint printNAKeys=False):
self.headerFormater = HeaderFormat(True,
self.headerFormatter = HeaderFormat("fasta",
tags,
printNAKeys)
@cython.boundscheck(False)
def __call__(self, dict data):
cdef bytes brawseq = data['sequence']
def __call__(self, object data):
cdef bytes brawseq = data[NUC_SEQUENCE_COLUMN]
cdef size_t lseq = len(brawseq)
cdef size_t k = 0
cdef list lines = []
@ -19,12 +24,5 @@ cdef class FastaFormat:
brawseq = b'\n'.join(lines)
return "%s\n%s" % (self.headerFormater(data),bytes2str(brawseq))
return bytes2str(self.headerFormatter(data) + b"\n" + brawseq)