def test_mask_fasta_from_end(self, out_file, fasta_file, sequences): mask.mask_fasta([], fasta_file, out_file, mask_from_end=3) output = SeqIO.parse(out_file, "fasta") for seq in output: original = sequences[seq.id] assert seq.seq[-3:] == "NNN" assert seq.seq[:-3] == original.seq[:-3]
def test_mask_fasta_from_beginning_and_end_too_long( self, fasta_file, out_file, beginning, end): mask.mask_fasta([], fasta_file, out_file, mask_from_beginning=beginning, mask_from_end=end) output = SeqIO.parse(out_file, "fasta") for record in output: assert record.seq == "N" * len(record.seq)
def test_mask_fasta_out_of_index(self, out_file, fasta_file, sequences): """mask_fasta provided a list of indexes past the length of the sequences""" max_length = max(len(record.seq) for record in sequences.values()) mask.mask_fasta([5, max_length, max_length + 5], fasta_file, out_file) output = SeqIO.parse(out_file, "fasta") for seq in output: assert seq[5] == "N", "Not all sites masked correctly!" original = sequences[seq.id] for idx, site in enumerate(seq): if idx != 5: assert site == original[idx], "Incorrect sites modified!"
def test_mask_fasta_invalid_sites(self, fasta_file, out_file, sequences, mask_invalid): """Verify that mask_fasta masks invalid nucleotides when and only when mask_invalid is passed as True""" mask.mask_fasta([], fasta_file, out_file, mask_invalid=mask_invalid) output = SeqIO.to_dict(SeqIO.parse(out_file, "fasta")) for name, record in sequences.items(): for site, nucleotide in enumerate(record.seq): if nucleotide not in VALID_NUCLEOTIDES and mask_invalid is True: assert output[name][site] == "N" else: assert output[name][site] == nucleotide
def test_mask_fasta_normal_case(self, fasta_file, out_file, sequences): """mask_fasta normal case - all sites in sequences""" mask_sites = [5, 10] mask.mask_fasta([5, 10], fasta_file, out_file) output = SeqIO.parse(out_file, "fasta") for seq in output: original = sequences[seq.id] for idx, site in enumerate(seq): if idx not in mask_sites: assert site == original[idx], "Incorrect sites modified!" else: assert site == "N", "Not all sites modified correctly!"