def from_lines(cls, lines): """Parses a MSA from a file/list of lines, and returns a dictionary of names to sequences. If read_meta is True, meta information included after the first space in header of each sequence: >NAME META-INFORMATION SEQUENCE As suggested above, sequences are expected to be in FASTA format.""" return MSA(FASTA.from_lines(lines))
def test_fasta__from_lines__multiple_records(): lines = [">first\n", "TGTTCTCCACCGTGCACAAC\n", "CCTTCATCCA\n", ">Second XT:1:0\n", "GAGAGCTCAGCTAAC\n", ">Third\n", "CGCTGACCAAAAACGGACAG\n", "GGCATTCGGC\n"] expected = [FASTA("first", None, "TGTTCTCCACCGTGCACAACCCTTCATCCA"), FASTA("Second", "XT:1:0", "GAGAGCTCAGCTAAC"), FASTA("Third", None, "CGCTGACCAAAAACGGACAGGGCATTCGGC")] assert_list_equal(FASTA.from_lines(lines), expected)
def test_fasta__from_lines__multiple_records(): lines = [ ">first\n", "TGTTCTCCACCGTGCACAAC\n", "CCTTCATCCA\n", ">Second XT:1:0\n", "GAGAGCTCAGCTAAC\n", ">Third\n", "CGCTGACCAAAAACGGACAG\n", "GGCATTCGGC\n" ] expected = [ FASTA("first", None, "TGTTCTCCACCGTGCACAACCCTTCATCCA"), FASTA("Second", "XT:1:0", "GAGAGCTCAGCTAAC"), FASTA("Third", None, "CGCTGACCAAAAACGGACAGGGCATTCGGC") ] assert_list_equal(FASTA.from_lines(lines), expected)
def test_fasta__from_lines__empty_record_name_only__first(): list(FASTA.from_lines([">fasta1\n", ">fasta2\n", "AGTC\n"]))
def test_fasta__from_lines__empty_record_name_only__nothing_else(): list(FASTA.from_lines([">fasta1\n"]))
def test_fasta__from_lines_single_record(): lines = [">single\n", "TGTTCTCCACCGTGCACAAC\n", "CCTTCATCCA\n"] expected = [FASTA("single", None, "TGTTCTCCACCGTGCACAACCCTTCATCCA")] assert_list_equal(FASTA.from_lines(lines), expected)
def test_fasta__from_lines_single_record(): lines = [">single\n", "TGTTCTCCACCGTGCACAAC\n", "CCTTCATCCA\n"] expected = [FASTA("single", None, "TGTTCTCCACCGTGCACAACCCTTCATCCA")] assert_list_equal(FASTA.from_lines(lines), expected)
def test_fasta__from_lines__empty_name__with_others(): lines = [">\n", "ACGT\n", ">Foo\n", "ACGGTA\n"] list(FASTA.from_lines(lines))
def test_fasta__from_lines__missing_name__alone(): lines = ["ACGT\n"] list(FASTA.from_lines(lines))
def test_fasta__from_lines__missing_name__alone(): lines = ["ACGT\n"] list(FASTA.from_lines(lines))
def test_fasta__from_lines__empty_record_last(): lines = [">fasta1\n", "ACGT\n", ">fasta2\n"] list(FASTA.from_lines(lines))
def test_fasta__from_lines__empty_record__middle(): lines = [">fasta0\n", "ACGT\n", ">fasta1\n", ">fasta2\n", "AGTC\n"] list(FASTA.from_lines(lines))
def test_fasta__from_lines__empty_record_name_only__first(): list(FASTA.from_lines([">fasta1\n", ">fasta2\n", "AGTC\n"]))
def test_fasta__from_lines__empty_record_name_only__nothing_else(): list(FASTA.from_lines([">fasta1\n"]))
def test_fasta__from_lines__empty_record__middle(): lines = [">fasta0\n", "ACGT\n", ">fasta1\n", ">fasta2\n", "AGTC\n"] list(FASTA.from_lines(lines))
def test_fasta__from_lines__empty_record_last(): lines = [">fasta1\n", "ACGT\n", ">fasta2\n"] list(FASTA.from_lines(lines))
def test_fasta__from_lines__empty_name__alone(): lines = [">\n", "ACGT\n"] list(FASTA.from_lines(lines))
def test_fasta__from_lines__empty_name__alone(): lines = [">\n", "ACGT\n"] list(FASTA.from_lines(lines))
def test_fasta__from_lines__empty_name__with_others(): lines = [">\n", "ACGT\n", ">Foo\n", "ACGGTA\n"] list(FASTA.from_lines(lines))
def test_fasta__from_lines__no_records(): assert_list_equal(FASTA.from_lines([]), [])
def test_fasta__from_lines__no_records(): assert_list_equal(FASTA.from_lines([]), [])