def test_others(): filename = sequana_data("test_fasta.fasta") ff = FastA(filename) assert len(ff) == 16 assert len(ff.comments) == 16 assert len(ff.names) == 16 assert len(ff.sequences) == 16 assert is_fasta(filename) == True ff.get_lengths_as_dict() with TempFile(suffix='.fasta') as fh: ff.select_random_reads(4, output_filename=fh.name) ff.select_random_reads([1, 2, 3], output_filename=fh.name) ff.select_random_reads({1, 2, 3}, output_filename=fh.name) assert ff.get_stats()['N'] == 16 assert ff.get_stats()['mean_length'] > 454 with TempFile(suffix='.fasta') as fh: ff.reverse_and_save(fh.name) ff.to_fasta(fh.name) ff.to_igv_chrom_size(fh.name)
def test_fasta_filtering(): filename = sequana_data("test_fasta_filtering.fa") ff = FastA(filename) with TempFile(suffix='.fasta') as fh: ff.to_fasta(fh.name) ff.save_ctg_to_fasta("A", fh.name) with TempFile(suffix='.fasta') as fh: ff.filter(fh.name, names_to_exclude=["A", "B"]) reader = FastA(fh.name) assert set(reader.names) == set(["C", "D"]) ff = FastA(filename) with TempFile(suffix='.fasta') as fh: ff.filter(fh.name, names_to_keep=[ "A", ]) reader = FastA(fh.name) assert set(reader.names) == set(['A'])