Changed FASTA reading to group based on file for merging partial targets
This commit is contained in:
parent
765cf9d418
commit
d0318536b2
@ -5,12 +5,13 @@ from Bio import SeqIO
|
|||||||
|
|
||||||
from autobigs.engine.structures.genomics import NamedString
|
from autobigs.engine.structures.genomics import NamedString
|
||||||
|
|
||||||
async def read_fasta(handle: Union[str, TextIOWrapper]) -> AsyncGenerator[NamedString, Any]:
|
async def read_fasta(handle: Union[str, TextIOWrapper]) -> Iterable[NamedString]:
|
||||||
fasta_sequences = asyncio.to_thread(SeqIO.parse, handle=handle, format="fasta")
|
fasta_sequences = asyncio.to_thread(SeqIO.parse, handle=handle, format="fasta")
|
||||||
|
results = []
|
||||||
for fasta_sequence in await fasta_sequences:
|
for fasta_sequence in await fasta_sequences:
|
||||||
yield NamedString(fasta_sequence.id, str(fasta_sequence.seq))
|
results.append(NamedString(fasta_sequence.id, str(fasta_sequence.seq)))
|
||||||
|
return results
|
||||||
|
|
||||||
async def read_multiple_fastas(handles: Iterable[Union[str, TextIOWrapper]]) -> AsyncGenerator[NamedString, Any]:
|
async def read_multiple_fastas(handles: Iterable[Union[str, TextIOWrapper]]) -> AsyncGenerator[Iterable[NamedString], Any]:
|
||||||
for handle in handles:
|
for handle in handles:
|
||||||
async for named_seq in read_fasta(handle):
|
yield await read_fasta(handle)
|
||||||
yield named_seq
|
|
@ -2,6 +2,6 @@ from autobigs.engine.reading import read_fasta
|
|||||||
|
|
||||||
|
|
||||||
async def test_fasta_reader_not_none():
|
async def test_fasta_reader_not_none():
|
||||||
named_strings = read_fasta("tests/resources/tohama_I_bpertussis.fasta")
|
named_strings = await read_fasta("tests/resources/tohama_I_bpertussis.fasta")
|
||||||
async for named_string in named_strings:
|
for named_string in named_strings:
|
||||||
assert named_string.name == "BX470248.1"
|
assert named_string.name == "BX470248.1"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user