Cython: Added fasta and fastq writers

This commit is contained in:
Celine Mercier
2018-10-17 11:27:15 +02:00
parent 6a8670d24a
commit 32d8396ee2
5 changed files with 96 additions and 0 deletions

View File

View File

@ -0,0 +1,9 @@
#cython: language_level=3
cdef class FastaNucWriter:
cdef object formatter
cdef object output
cdef int only
cdef int skip
cdef int skipped
cdef int read

View File

@ -0,0 +1,37 @@
#cython: language_level=3
'''
Created on oct 12th 2018
@author: celine.mercier.bioinfo@gmail.com
'''
cdef class FastaNucWriter:
def __init__(self,
object formatter,
object output_object,
int skip=0,
only=None):
if only is None:
self.only = -1
else:
self.only = int(only)
self.formatter = formatter
self.output = output_object
self.skip = skip
self.skipped = 0
self.read = 0
def __call__(self, object seq):
if self.only > -1 and self.read == self.only:
raise StopIteration
if self.skip > 0 and self.skipped < self.skip:
self.skipped += 1
return
self.output.write(self.formatter(seq))
self.output.write(b"\n") # TODO is that clean?
self.read += 1

View File

@ -0,0 +1,9 @@
#cython: language_level=3
cdef class FastqWriter:
cdef object formatter
cdef object output
cdef int only
cdef int skip
cdef int skipped
cdef int read

View File

@ -0,0 +1,41 @@
#cython: language_level=3
'''
Created on oct 14th 2018
@author: celine.mercier.bioinfo@gmail.com
'''
cdef class FastqWriter:
def __init__(self,
object formatter,
object output_object,
int skip=0,
only=None):
self.formatter = formatter
self.output = output_object
if only is None:
self.only = -1
else:
self.only = int(only)
self.formatter = formatter
self.output = output_object
self.skip = skip
self.skipped = 0
self.read = 0
def __call__(self, object seq):
if self.only > -1 and self.read == self.only:
raise StopIteration
if self.skip > 0 and self.skipped < self.skip:
self.skipped += 1
return
self.output.write(self.formatter(seq))
self.output.write(b"\n") # TODO is that clean?
self.read += 1