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