Changed FASTA reading to group based on file for merging partial targets
This commit is contained in:
		| @@ -5,12 +5,13 @@ from Bio import SeqIO | ||||
|  | ||||
| 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") | ||||
|     results = [] | ||||
|     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: | ||||
|         async for named_seq in read_fasta(handle): | ||||
|             yield named_seq | ||||
|         yield await read_fasta(handle) | ||||
| @@ -2,6 +2,6 @@ from autobigs.engine.reading import read_fasta | ||||
|  | ||||
|  | ||||
| async def test_fasta_reader_not_none(): | ||||
|     named_strings = read_fasta("tests/resources/tohama_I_bpertussis.fasta") | ||||
|     async for named_string in named_strings: | ||||
|     named_strings = await read_fasta("tests/resources/tohama_I_bpertussis.fasta") | ||||
|     for named_string in named_strings: | ||||
|         assert named_string.name == "BX470248.1" | ||||
|   | ||||
		Reference in New Issue
	
	Block a user