first working DMS class
This commit is contained in:
@ -6,8 +6,12 @@ Created on 30 mars 2016
|
||||
@author: coissac
|
||||
'''
|
||||
|
||||
#from obitools3.dms._obiseq cimport OBI_Seq
|
||||
|
||||
def fastaIterator(lineiterator, int buffersize=100000000):
|
||||
|
||||
def fastaIterator(lineiterator,
|
||||
int buffersize=100000000
|
||||
):
|
||||
cdef LineBuffer lb
|
||||
cdef str ident
|
||||
cdef str definition
|
||||
@ -15,6 +19,7 @@ def fastaIterator(lineiterator, int buffersize=100000000):
|
||||
cdef list s
|
||||
cdef bytes sequence
|
||||
cdef bytes quality
|
||||
# cdef OBI_Seq seq
|
||||
|
||||
if isinstance(lineiterator,(str,bytes)):
|
||||
lineiterator=uopen(lineiterator)
|
||||
@ -41,7 +46,60 @@ def fastaIterator(lineiterator, int buffersize=100000000):
|
||||
|
||||
sequence = b"".join(s)
|
||||
quality = None
|
||||
|
||||
|
||||
|
||||
# seq = OBI_Seq(id,
|
||||
# sequence,
|
||||
# definition,
|
||||
# tags=tags,
|
||||
# )
|
||||
yield { "id" : ident,
|
||||
"definition" : definition,
|
||||
"sequence" : sequence,
|
||||
"quality" : quality,
|
||||
"tags" : tags,
|
||||
"annotation" : {}
|
||||
}
|
||||
|
||||
|
||||
def fastaNucIterator(lineiterator, int buffersize=100000000):
|
||||
cdef LineBuffer lb
|
||||
cdef str ident
|
||||
cdef str definition
|
||||
cdef dict tags
|
||||
cdef list s
|
||||
cdef bytes sequence
|
||||
cdef bytes quality
|
||||
# cdef OBI_Seq seq
|
||||
|
||||
if isinstance(lineiterator,(str,bytes)):
|
||||
lineiterator=uopen(lineiterator)
|
||||
|
||||
if isinstance(lineiterator, LineBuffer):
|
||||
lb=lineiterator
|
||||
else:
|
||||
lb=LineBuffer(lineiterator,buffersize)
|
||||
|
||||
i = iter(lb)
|
||||
line = next(i)
|
||||
|
||||
while True:
|
||||
ident,tags,definition = parseHeader(line)
|
||||
s = []
|
||||
line = next(i)
|
||||
|
||||
try:
|
||||
while line[0]!='>':
|
||||
s.append(str2bytes(line)[0:-1])
|
||||
line = next(i)
|
||||
except StopIteration:
|
||||
pass
|
||||
|
||||
sequence = b"".join(s)
|
||||
quality = None
|
||||
|
||||
|
||||
# seq =
|
||||
yield { "id" : ident,
|
||||
"definition" : definition,
|
||||
"sequence" : sequence,
|
||||
|
Reference in New Issue
Block a user