From 717451544b3a5f8197fe526e5f21998179fc2e68 Mon Sep 17 00:00:00 2001 From: Matt Shirley Date: Sun, 1 Mar 2015 09:48:33 -0500 Subject: [PATCH 1/8] Newer modification time on fasta file triggers index to rebuild. Described in #50. --- pyfaidx/__init__.py | 3 ++- tests/test_feature_indexing.py | 10 ++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/pyfaidx/__init__.py b/pyfaidx/__init__.py index 24d7d6d..c16e7b0 100644 --- a/pyfaidx/__init__.py +++ b/pyfaidx/__init__.py @@ -6,6 +6,7 @@ from __future__ import division import os +from os.path import getmtime from six import PY2, PY3, string_types from six.moves import zip_longest try: @@ -203,7 +204,7 @@ def __init__(self, filename, default_seq=None, key_function=None, self.mutable = mutable - if os.path.exists(self.indexname): + if os.path.exists(self.indexname) and getmtime(self.indexname) > getmtime(self.filename): self.read_fai(split_char) else: try: diff --git a/tests/test_feature_indexing.py b/tests/test_feature_indexing.py index 7e89b95..ef636ff 100644 --- a/tests/test_feature_indexing.py +++ b/tests/test_feature_indexing.py @@ -1,4 +1,5 @@ import os +from os.path import getmtime from pyfaidx import Faidx, FastaIndexingError from nose.tools import raises @@ -52,3 +53,12 @@ def test_short_line_lengths(self): @raises(FastaIndexingError) def test_long_line_lengths(self): Faidx('data/long_line.fasta') + + def test_reindex_on_modification(self): + """ This test ensures that the index is regenerated when the FASTA + modification time is newer than the index modification time. + mdshw5/pyfaidx#50 """ + index_mtime = getmtime(self.fai) + os.utime(self.fasta, (index_mtime + 10, ) * 2) + Faidx(self.fasta) + assert getmtime(self.fai) > index_mtime From 5084981a43e18eb2541a0b66edf537193c99efb8 Mon Sep 17 00:00:00 2001 From: Matt Shirley Date: Mon, 2 Mar 2015 13:15:08 -0500 Subject: [PATCH 2/8] Rewrite test suite to function more independently. Test data is now downloaded from NCBI and not stored under version control. Closes #51. --- .travis.yml | 22 +- pyfaidx/__init__.py | 7 +- tests/data/download_gene_fasta.py | 31 + tests/data/expect/genes.fasta.fai | 20 - tests/data/expect/genes.fasta.fai.samtools | 20 - tests/data/genes.fasta | 1021 -------------------- tests/data/genes.fasta.fai | 20 - tests/data/genes.fasta.fai.samtools | 20 - tests/data/long_line.fasta | 10 - tests/data/malformed.bed | 4 +- tests/data/regions.bed | 4 +- tests/data/short_line.fasta | 10 - tests/test_FastaRecord_iter.py | 24 +- tests/test_Fasta_integer_index.py | 22 +- tests/test_MutableFastaRecord.py | 45 +- tests/test_bio_seqio.py | 34 +- tests/test_faidx.py | 21 +- tests/test_feature_bounds_check.py | 31 +- tests/test_feature_default_seq.py | 17 +- tests/test_feature_indexing.py | 183 +++- tests/test_feature_key_function.py | 42 +- tests/test_feature_read_ahead_buffer.py | 29 +- tests/test_feature_sequence_as_raw.py | 30 +- tests/test_feature_split_char.py | 26 +- tests/test_sequence_class.py | 4 +- 25 files changed, 404 insertions(+), 1293 deletions(-) create mode 100644 tests/data/download_gene_fasta.py delete mode 100644 tests/data/expect/genes.fasta.fai delete mode 100644 tests/data/expect/genes.fasta.fai.samtools delete mode 100644 tests/data/genes.fasta delete mode 100644 tests/data/genes.fasta.fai delete mode 100644 tests/data/genes.fasta.fai.samtools delete mode 100644 tests/data/long_line.fasta delete mode 100644 tests/data/short_line.fasta diff --git a/.travis.yml b/.travis.yml index 80dd576..464e5db 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,17 +1,19 @@ language: python sudo: false python: -- '3.4' -- '3.3' -- '3.2' -- '2.7' -- '2.6' -- pypy -- pypy3 + - '3.4' + - '3.3' + - '3.2' + - '2.7' + - '2.6' + - pypy + - pypy3 install: -- pip install biopython || true -- pip install -e . -- pip install coveralls + - pip install biopython || true + - pip install -e . + - pip install coveralls +before_script: + - python tests/data/download_gene_fasta.py script: nosetests --with-coverage --cover-package=pyfaidx deploy: provider: pypi diff --git a/pyfaidx/__init__.py b/pyfaidx/__init__.py index c16e7b0..b987629 100644 --- a/pyfaidx/__init__.py +++ b/pyfaidx/__init__.py @@ -45,7 +45,7 @@ def __init__(self, msg=None): class RegionError(Exception): def __init__(self, msg=None): self.msg = 'Malformed region! Format = rname:start-end.\n' if not msg else msg - super(RegionError, self).__init__(self.msg) + super(RegionError, self).__init__(self.msg) class Sequence(object): @@ -296,7 +296,7 @@ def check_bad_lines(rname, bad_lines, i): # only one short line should be allowed # before we hit the next header, and it # should be the last line in the entry - if line_blen != blen or line_blen == 0: + if line_blen != blen or line_blen == 1: bad_lines.append(i) offset += line_blen rlen += line_clen @@ -421,6 +421,9 @@ def to_file(self, rname, start, end, seq): m += line_len self.file.write(seq[n:].encode()) + def close(self): + self.__exit__() + def __enter__(self): return self diff --git a/tests/data/download_gene_fasta.py b/tests/data/download_gene_fasta.py new file mode 100644 index 0000000..70fdeb7 --- /dev/null +++ b/tests/data/download_gene_fasta.py @@ -0,0 +1,31 @@ +#!/usr/bin/env python +import os.path + +def fetch_fasta(filename): + from Bio import Entrez + Entrez.email = "mdshw5@gmail.com" + + id_list = ['563317589', '557361099', '557361097', '543583796', + '543583795', '543583794', '543583788', '543583786', + '543583785', '543583740', '543583738', '530384540', + '530384538', '530384536', '530384534', '530373237', + '530373235', '530364726', '530364725', '530364724'] + + search_results = Entrez.read(Entrez.epost("nucleotide", id=",".join(id_list))) + + webenv = search_results["WebEnv"] + query_key = search_results["QueryKey"] + + records = Entrez.efetch(db="nucleotide", rettype="fasta", retmode="text", webenv=webenv, query_key=query_key) + + with open(filename, 'w') as fasta: + for line in records: + if len(line) > 1: # skip lines with only \n + fasta.write(line) + + +if __name__ == "__main__": + path = os.path.dirname(__file__) + os.chdir(path) + fasta_name = "genes.fasta" + fetch_fasta(fasta_name) diff --git a/tests/data/expect/genes.fasta.fai b/tests/data/expect/genes.fasta.fai deleted file mode 100644 index e535241..0000000 --- a/tests/data/expect/genes.fasta.fai +++ /dev/null @@ -1,20 +0,0 @@ -AB821309.1 3510 12 70 71 -KF435150.1 481 3585 70 71 -KF435149.1 642 4085 70 71 -NR_104216.1 4573 4750 70 71 -NR_104215.1 5317 9402 70 71 -NR_104212.1 5374 14808 70 71 -NM_001282545.1 4170 20275 70 71 -NM_001282543.1 5466 24521 70 71 -NM_000465.3 5523 30079 70 71 -NM_001282549.1 3984 35697 70 71 -NM_001282548.1 4113 39754 70 71 -XM_005249645.1 2752 43942 70 71 -XM_005249644.1 3004 46750 70 71 -XM_005249643.1 3109 49813 70 71 -XM_005249642.1 3097 52983 70 71 -XM_005265508.1 2794 56141 70 71 -XM_005265507.1 2848 58991 70 71 -XR_241081.1 1009 61893 70 71 -XR_241080.1 4884 62930 70 71 -XR_241079.1 2819 67897 70 71 diff --git a/tests/data/expect/genes.fasta.fai.samtools b/tests/data/expect/genes.fasta.fai.samtools deleted file mode 100644 index e535241..0000000 --- a/tests/data/expect/genes.fasta.fai.samtools +++ /dev/null @@ -1,20 +0,0 @@ -AB821309.1 3510 12 70 71 -KF435150.1 481 3585 70 71 -KF435149.1 642 4085 70 71 -NR_104216.1 4573 4750 70 71 -NR_104215.1 5317 9402 70 71 -NR_104212.1 5374 14808 70 71 -NM_001282545.1 4170 20275 70 71 -NM_001282543.1 5466 24521 70 71 -NM_000465.3 5523 30079 70 71 -NM_001282549.1 3984 35697 70 71 -NM_001282548.1 4113 39754 70 71 -XM_005249645.1 2752 43942 70 71 -XM_005249644.1 3004 46750 70 71 -XM_005249643.1 3109 49813 70 71 -XM_005249642.1 3097 52983 70 71 -XM_005265508.1 2794 56141 70 71 -XM_005265507.1 2848 58991 70 71 -XR_241081.1 1009 61893 70 71 -XR_241080.1 4884 62930 70 71 -XR_241079.1 2819 67897 70 71 diff --git a/tests/data/genes.fasta b/tests/data/genes.fasta deleted file mode 100644 index bec711d..0000000 --- a/tests/data/genes.fasta +++ /dev/null @@ -1,1021 +0,0 @@ ->AB821309.1 -ATGGTCAGCTGGGGTCGTTTCATCTGCCTGGTCGTGGTCACCATGGCAACCTTGTCCCTGGCCCGGCCCT -CCTTCAGTTTAGTTGAGGATACCACATTAGAGCCAGAAGATGCCATCTCATCCGGAGATGATGAGGATGA -CACCGATGGTGCGGAAGATTTTGTCAGTGAGAACAGTAACAACAAGAGAGCACCATACTGGACCAACACA -GAAAAGATGGAAAAGCGGCTCCATGCTGTGCCTGCGGCCAACACTGTCAAGTTTCGCTGCCCAGCCGGGG -GGAACCCAATGCCAACCATGCGGTGGCTGAAAAACGGGAAGGAGTTTAAGCAGGAGCATCGCATTGGAGG -CTACAAGGTACGAAACCAGCACTGGAGCCTCATTATGGAAAGTGTGGTCCCATCTGACAAGGGAAATTAT -ACCTGTGTGGTGGAGAATGAATACGGGTCCATCAATCACACGTACCACCTGGATGTTGTGGAGCGATCGC -CTCACCGGCCCATCCTCCAAGCCGGACTGCCGGCAAATGCCTCCACAGTGGTCGGAGGAGACGTAGAGTT -TGTCTGCAAGGTTTACAGTGATGCCCAGCCCCACATCCAGTGGATCAAGCACGTGGAAAAGAACGGCAGT -AAATACGGGCCCGACGGGCTGCCCTACCTCAAGGTTCTCAAGCACTCGGGGATAAATAGTTCCAATGCAG -AAGTGCTGGCTCTGTTCAATGTGACCGAGGCGGATGCTGGGGAATATATATGTAAGGTCTCCAATTATAT -AGGGCAGGCCAACCAGTCTGCCTGGCTCACTGTCCTGCCAAAACAGCAAGCGCCTGGAAGAGAAAAGGAG -ATTACAGCTTCCCCAGACTACCTGGAGATAGCCATTTACTGCATAGGGGTCTTCTTAATCGCCTGTATGG -TGGTAACAGTCATCCTGTGCCGAATGAAGAACACGACCAAGAAGCCAGACTTCAGCAGCCAGCCGGCTGT -GCACAAGCTGACCAAACGTATCCCCCTGCGGAGACAGGTAACAGTTTCGGCTGAGTCCAGCTCCTCCATG -AACTCCAACACCCCGCTGGTGAGGATAACAACACGCCTCTCTTCAACGGCAGACACCCCCATGCTGGCAG -GGGTCTCCGAGTATGAACTTCCAGAGGACCCAAAATGGGAGTTTCCAAGAGATAAGCTGACACTGGGCAA -GCCCCTGGGAGAAGGTTGCTTTGGGCAAGTGGTCATGGCGGAAGCAGTGGGAATTGACAAAGACAAGCCC -AAGGAGGCGGTCACCGTGGCCGTGAAGATGTTGAAAGATGATGCCACAGAGAAAGACCTTTCTGATCTGG -TGTCAGAGATGGAGATGATGAAGATGATTGGGAAACACAAGAATATCATAAATCTTCTTGGAGCCTGCAC -ACAGGATGGGCCTCTCTATGTCATAGTTGAGTATGCCTCTAAAGGCAACCTCCGAGAATACCTCCGAGCC -CGGAGGCCACCCGGGATGGAGTACTCCTATGACATTAACCGTGTTCCTGAGGAGCAGATGACCTTCAAGG -ACTTGGTGTCATGCACCTACCAGCTGGCCAGAGGCATGGAGTACTTGGCTTCCCAAAAATGTATTCATCG -AGATTTAGCAGCCAGAAATGTTTTGGTAACAGAAAACAATGTGATGAAAATAGCAGACTTTGGACTCGCC -AGAGATATCAACAATATAGACTATTACAAAAAGACCACCAATGGGCGGCTTCCAGTCAAGTGGATGGCTC -CAGAAGCCCTGTTTGATAGAGTATACACTCATCAGAGTGATGTCTGGTCCTTCGGGGTGTTAATGTGGGA -GATCTTCACTTTAGGGGGCTCGCCCTACCCAGGGATTCCCGTGGAGGAACTTTTTAAGCTGCTGAAGGAA -GGACACAGAATGGATAAGCCAGCCAACTGCACCAACGAACTGTACATGATGATGAGGGACTGTTGGCATG -CAGTGCCCTCCCAGAGACCAACGTTCAAGCAGTTGGTAGAAGACTTGGATCGAATTCTCACTCTCACAAC -CAATGAGCAATTCCAGTTTGCTGATGACATGCAGGAGTTCACCAAATTCCCCACCAAAACTGGCCGAAGA -TCTTTGTCTCGCTCGATCTCACAGTCCTCCACTGACAGCTACAGTTCAGCTGCATCCTACACAGATAGCT -CTGATGATGAGGTTTCTCCCCGAGAGAAGCAGCAAACCAACTCCAAGGGCAGCAGCAATTTCTGTGTGAA -GAACATCAAGCAGGCAGAATTTGGACGCCGGGAGATTGAGATTGCAGAGCAAGACATGTCTGCTCTGATT -TCACTCAGGAAACGTGCTCAGGGGGAGAAGCCCTTGGCTGGTGCTAAAATAGTGGGCTGTACACACATCA -CAGCCCAGACAGCGGTGTTGATTGAGACACTCTGTGCCCTGGGGGCTCAGTGCCGCTGGTCTGCTTGTAA -CATCTACTCAACTCAGAATGAAGTAGCTGCAGCACTGGCTGAGGCTGGAGTTGCAGTGTTCGCTTGGAAG -GGCGAGTCAGAAGATGACTTCTGGTGGTGTATTGACCGCTGTGTGAACATGGATGGGTGGCAGGCCAACA -TGATCCTGGATGATGGGGGAGACTTAACCCACTGGGTTTATAAGAAGTATCCAAACGTGTTTAAGAAGAT -CCGAGGCATTGTGGAAGAGAGCGTGACTGGTGTTCACAGGCTGTATCAGCTCTCCAAAGCTGGGAAGCTC -TGTGTTCCGGCCATGAACGTCAATGATTCTGTTACCAAACAGAAGTTTGATAACTTGTACTGCTGCCGAG -AATCCATTTTGGATGGCCTGAAGAGGACCACAGATGTGATGTTTGGTGGGAAACAAGTGGTGGTGTGTGG -CTATGGTGAGGTAGGCAAGGGCTGCTGTGCTGCTCTCAAAGCTCTTGGAGCAATTGTCTACATTACCGAA -ATCGACCCCATCTGTGCTCTGCAGGCCTGCATGGATGGGTTCAGGGTGGTAAAGCTAAATGAAGTCATCC -GGCAAGTCGATGTCGTAATAACTTGCACAGGAAATAAGAATGTAGTGACACGGGAGCACTTGGATCGCAT -GAAAAACAGTTGTATCGTATGCAATATGGGCCACTCCAACACAGAAATCGATGTGACCAGCCTCCGCACT -CCGGAGCTGACGTGGGAGCGAGTACGTTCTCAGGTGGACCATGTCATCTGGCCAGATGGCAAACGAGTTG -TCCTCCTGGCAGAGGGTCGTCTACTCAATTTGAGCTGCTCCACAGTTCCCACCTTTGTTCTGTCCATCAC -AGCCACAACACAGGCTTTGGCACTGATAGAACTCTATAATGCACCCGAGGGGCGATACAAGCAGGATGTG -TACTTGCTTCCTAAGAAAATGGATGAATACGTTGCCAGCTTGCATCTGCCATCATTTGATGCCCACCTTA -CAGAGCTGACAGATGACCAAGCAAAATATCTGGGACTCAACAAAAATGGGCCATTCAAACCTAATTATTA -CAGATACTAA ->KF435150.1 -ATGACATCATTTTCCACCTCTGCTCAGTGTTCAACATCTGACAGTGCTTGCAGGATCTCTCCTGGACAAA -TCAATCAGGTACGACCAAAACTGCCGCTTTTGAAGATTTTGCATGCAGCAGGTGCGCAAGGTGAAATGTT -CACTGTTAAAGAGGTCATGCACTATTTAGGTCAGTACATAATGGTGAAGCAACTTTATGATCAGCAGGAG -CAGCATATGGTATATTGTGGTGGAGATCTTTTGGGAGAACTACTGGGACGTCAGAGCTTCTCCGTGAAAG -ACCCAAGCCCTCTCTATGATATGCTAAGAAAGAATCTTGTCACTTTAGCCACTGCTACTACAGCAAAGTG -CAGAGGAAAGTTCCACTTCCAGAAAAAGAACTACAGAAGACGATATCCCCACACTGCCTACCTCAGAGCA -TAAATGCATACATTCTAGAGAAGGTGATTGAAGTGGGAAAAAATGATGACCTGGAGGACTC ->KF435149.1 -ATGACATCATTTTCCACCTCTGCTCAGTGTTCAACATCTGACAGTGCTTGCAGGATCTCTCCTGGACAAA -TCAATCAGGTACGACCAAAACTGCCGCTTTTGAAGATTTTGCATGCAGCAGGTGCGCAAGGTGAAATGTT -CACTGTTAAAGAGGTCATGCACTATTTAGGTCAGTACATAATGGTGAAGCAACTTTATGATCAGCAGGAG -CAGCATATGGTATATTGTGGTGGAGATCTTTTGGGAGAACTACTGGGACGTCAGAGCTTCTCCGTGAAAG -ACCCAAGCCCTCTCTATGATATGCTAAGAAAGAATCTTGTCACTTTAGCCACTGCTACTACAGCAAAGTG -CAGAGGAAAGTTCCACTTCCAGAAAAAGAACTACAGAAGACGATATCCCCACACTGCCTACCTCAGAGCA -TAAATGCATACATTCTAGAGAAGATGAAGACTTAATTGAAAATTTAGCCCAAGATGAAACATCTAGGCTG -GACCTTGGATTTGAGGAGTGGGATGTAGCTGGCCTGCCTTGGTGGTTTTTAGGAAACTTGAGAAGCAACT -ATACACCTAGAAGTAATGGCTCAACTGATTTACAGACAAATCAGGTGATTGAAGTGGGAAAAAATGATGA -CCTGGAGGACTC ->NR_104216.1 -CCCCGCCCCTCTGGCGGCCCGCCGTCCCAGACGCGGGAAGAGCTTGGCCGGTTTCGAGTCGCTGGCCTGC -AGCTTCCCTGTGGTTTCCCGAGGCTTCCTTGCTTCCCGCTCTGCGAGGAGCCTTTCATCCGAAGGCGGGA -CGATGCCGGATAATCGGCAGCCGAGGAACCGGCAGCCGAGGATCCGCTCCGGGAACGAGCCTCGTTCCGC -GCCCGCCATGGAACCGGATGGTCGCGGTGCCTGGGCCCACAGTCGCGCCGCGCTCGACCGCCTGGAGAAG -CTGCTGCGCTGCTCGCGTTGTACTAACATTCTGAGAGAGCCTGTGTGTTTAGGAGGATGTGAGCACATCT -TCTGTAGTAATTGTGTAAGTGACTGCATTGGAACTGGATGTCCAGTGTGTTACACCCCGGCCTGGATACA -AGACTTGAAGATAAATAGACAACTGGACAGCATGATTCAACTTTGTAGTAAGCTTCGAAATTTGCTACAT -GACAATGAGCTGTCAGGGCGACATACCTTCTGTTGAATACCTTTTACAAAATGGAAGTGATCCAAATGTT -AAAGACCATGCTGGATGGACACCATTGCATGAAGCTTGCAATCATGGGCACCTGAAGGTAGTGGAATTAT -TGCTCCAGCATAAGGCATTGGTGAACACCACCGGGTATCAAAATGACTCACCACTTCACGATGCAGCCAA -GAATGGGCATGTGGATATAGTCAAGCTGTTACTTTCCTATGGAGCCTCCAGAAATGCTGTTAATATATTT -GGTCTGCGGCCTGTCGATTATACAGATGATGAAAGTATGAAATCGCTATTGCTGCTACCAGAGAAGAATG -AATCATCCTCAGCTAGCCACTGCTCAGTAATGAACACTGGGCAGCGTAGGGATGGACCTCTTGTACTTAT -AGGCAGTGGGCTGTCTTCAGAACAACAGAAAATGCTCAGTGAGCTTGCAGTAATTCTTAAGGCTAAAAAA -TATACTGAGTTTGACAGTACAGTAACTCATGTTGTTGTTCCTGGTGATGCAGTTCAAAGTACCTTGAAGT -GTATGCTTGGGATTCTCAATGGATGCTGGATTCTAAAATTTGAATGGGTAAAAGCATGTCTACGAAGAAA -AGTATGTGAACAGGAAGAAAAGTATGAAATTCCTGAAGGTCCACGCAGAAGCAGGCTCAACAGAGAACAG -CTGTTGCCAAAGCTGTTTGATGGATGCTACTTCTATTTGTGGGGAACCTTCAAACACCATCCAAAGGACA -ACCTTATTAAGCTCGTCACTGCAGGTGGGGGCCAGATCCTCAGTAGAAAGCCCAAGCCAGACAGTGACGT -GACTCAGACCATCAATACAGTCGCATACCATGCGAGACCCGATTCTGATCAGCGCTTCTGCACACAGTAT -ATCATCTATGAAGATTTGTGTAATTATCACCCAGAGAGGGTTCGGCAGGGCAAAGTCTGGAAGGCTCCTT -CGAGCTGGTTTATAGACTGTGTGATGTCCTTTGAGTTGCTTCCTCTTGACAGCTGAATATTATACCAGAT -GAACATTTCAAATTGAATTTGCACGGTTTGTGAGAGCCCAGTCATTGTACTGTTTTTAATGTTCACATTT -TTACAAATAGGTAGAGTCATTCATATTTGTCTTTGAATCAAAAAAAAAAAAAAAGTCTAATGCCAGATTA -GGAATTCATGTTATGTTTACCATTTAGAAGCTGGGATTGCTTTTAAAGGTTTTTCTTTTTAAAATTGGCA -TGTTTTTGATTTATCATGTCTTTCTATTCAGATTATTGGGTATCAAAGATTAATGAGGACACCAGAATCT -TGGTTAAATAGACAAGTGGTATCATTACTGTTTGAGTCTTTTAATATTCTCCATACCTGCCACCAGTGAA -AAAACTTGCCTTTTTTTTTTTTTTTTTTTTAGTAAACAGAATATTATCAAACAATTTATTTTGGCTTTAT -TGAAAAAAGAGTATTTGGTCTAAATGTGCCACCATAGGTGTTAAATTCTCCTATCTGCAATTGTCTTTAT -CCTATATTGTGTTCATTTCTTTTCTTAATAATTTACTTTGTTGTGTGTTTCTACACTTTCATCCCTGTTT -TTTATCTTGTATATCATCAGGAAATTGTGATTTAATCATTAACATTGGTTTTTTTGTGTGTGTGGTAAAA -ATCAACACTAGGCTCATGGTACATATTTTTATTCTGTACATTTGCTTGTAACTATCAATTTGTAACTCTG -TTTATCTACTACATGTGTATATATACTTAGAGCATTTTCTCTAACACATTTTAATGTTAGTATTTTTTAA -AAGGTCTGACCAGTCTAGCAAATTGTCAGTCCAACGTCATTACTTTAAATTAAGAAGCAGTCTTCTTCTG -GTAAACCTTGTTGGTATTTGTAAAATAATTTTGAAGGTCTTAATTTCTTCCTTTGTAAAAGGAAAAGGTT -TTTTTTAAAGTTTTTAGGTTGGCATGGAGGCAGAAGTTGGTGATTACTTGATTTACAACAGATTTTTTCC -AGATCATACAAAAGGCCATACAGTAAGTATAGAAGTAGGTATGGGGAGGGCTTACTAATATCAAATAGGC -AAGGCCTTAGTGAGTGGGCAGGATACCACCTGAGAGTGGCCAGATGTGGGGAGGTTACTCTGCTCTGGGT -GCTCTCATTCATGAATCGACAAGGATACATTAGATTATTTTGAAACATTTTTTTAAGAAGCAGAATTCTT -TAATAATTCCTTCCTAGACATTGAATATACTTATAAAATTAAAGACTTGGGGAAGGAGACACTGAGAGAC -TTGCCAGTTTGGTTCCTCATGAACAAAAGAGGACAGTTTGATAACTACCAGAATAGAATATCCCTAGTTT -TAAAATAGTGAGAATCTCTGAAGTTCATCAACATCTTAAGATGCACTTACTTGAAAGTTTGAGATTCTGT -TTATCATTTGAAAACACATTTTGCTTTAATTCTTTCTTTGACATGTTGTTTTTTCATATCAAGAAATATA -TGAACAAAATAATAACCTTTTGACCCTGACCTTGCTGGGTGAATTAGCTCTGAAACACTCTCTACAACCA -GTAATGCATTTGTCCCACATTTCATTCTGATAGAAAATGAACACCATAGCACCAAACAAAAATCCGAGGC -GTTAGATAATGTCTGGATTAAATAATTTAAGACTCTCTAGGATTTTGGTTGTCATTTTTTATTTATAACA -GACTTTAAGTCACTTTCTGTTGCCTCATAGGTCACATTTTAGACAGGTTTGTGTCTGTTCCTTGCATCTG -AATTCCTGATTGTAAAGACACCTATGAGGTCTCTTAGTTTTTGTCATTCATTTTCTTGGTTTATCACCCC -TCCCTTCTTTTTGTTGTTTTTCCCTGACTGTTAAGCAGTTTCATCTTTGCTTTTGTTAAATATTTGACAG -CAGTTAGTTTGTGTTAAGCTCTTGAAACTTGTGATTGTACTTTCTGTGTAGATATACATGTAATTATTTT -TTATTTTTCAATCATAGATTCAAGCTTCCTTCTTTTTTACCACAAATCATTAAAGTTATTTGTGTTTCCA -TATACCTGTGTCTTGTATAAAATTGGCTTATTCTGTGCTGTTGAATGAGGCTCAACATGACTTGGTGAGG -AAGTCTATTAACTAACAAAAGCTTATCTTTTTTAACATAATGCTTTTTAATTAATTTTGAATAAAAATAT -TTCTAAAGTGTACTAGATACTTTATTACCTTAGATTATTCCGAATACAGTATAACTTTGATAGTTTGGAA -TAGTCATTAAGAAACAATTACACACTGATTGCTTTGTGTCTCTAAAAGTGAGAGGCTGGTAGCTTTTCCA -CATTCTCATGGCTATTTTCTAGTTCTACTTGAATTTATAACTGTTTCCCTTTTTCCTTGACAGCTGCCAC -TTTGTAGCTATTTTTCTGTCTCTGCTAATACTTTACCATATCTATCTCAATTGTTTTTTCTTTTGACTTG -CTGAAAAATAGAAACCAGATGGGAAGTATATTAGCATTATGATTGAAATAAGGGTAAATGAGCAATGTGT -GAAGGTTTTCACTGACTTCACCTAAAAGATAGTTTAGCTACTTGAATTTTAGTAAATAGAATTTTTCCTT -TATTTCATCGGTCCCCCCACCTTTTTTTTTTTTTGCACCTGCCTTGTAAATTTAATAGTTAAGTGACCTC -TGCCTAGAGGATGATATTTGGGGAGGTTTGATGTTTCCTGTGGGAATAAGACGATTCACAGGTGAGAGTG -GGGCCACATTAGCTGTTATTGTTTCCATGGGTCAGTGTGGAAAATGCATTAATCATATTCTAAACGTTCA -TGGGCCTCATTACAGTCACAATTGTCTATTCTGTTTCCTACCCTGAACACATTAAAATGGTAGGAACTAA -TGCTTGTCTTATTTAATTACTAAAAGCCACCATTTTCTTTGATAGATTGAGCTACAGATTGTAAACTTCA -TGTATTTCTTTATAAGTCAACCCTTTTCAAAGATACGCACATCAAACTGAATGAATAAATAAATATTGAG -AAGTTGAAAAAAAAAAAAAAAAA ->NR_104215.1 -CCCCGCCCCTCTGGCGGCCCGCCGTCCCAGACGCGGGAAGAGCTTGGCCGGTTTCGAGTCGCTGGCCTGC -AGCTTCCCTGTGGTTTCCCGAGGCTTCCTTGCTTCCCGCTCTGCGAGGAGCCTTTCATCCGAAGGCGGGA -CGATGCCGGATAATCGGCAGCCGAGGAACCGGCAGCCGAGGATCCGCTCCGGGAACGAGCCTCGTTCCGC -GCCCGCCATGGAACCGGATGGTCGCGGTGCCTGGGCCCACAGTCGCGCCGCGCTCGACCGCCTGGAGAAG -CTGCTGCGCTGCTCGCGTTGATTTGAAAGAAGATAAACCTAGGAAAAGTTTGTTTAATGATGCAGGAAAC -AAGAAGAATTCAATTAAAATGTGGTTTAGCCCTCGAAGTAAGAAAGTCAGATATGTTGTGAGTAAAGCTT -CAGTGCAAACCCAGCCTGCAATAAAAAAAGATGCAAGTGCTCAGCAAGACTCATATGAATTTGTTTCCCC -AAGTCCTCCTGCAGATGTTTCTGAGAGGGCTAAAAAGGCTTCTGCAAGATCTGGAAAAAAGCAAAAAAAG -AAAACTTTAGCTGAAATCAACCAAAAATGGAATTTAGAGGCAGAAAAAGAAGATGGTGAATTTGACTCCA -AAGAGGAATCTAAGCAAAAGCTGGTATCCTTCTGTAGCCAACCATCTGTTATCTCCAGTCCTCAGATAAA -TGGTGAAATAGACTTACTAGCAAGTGGCTCCTTGACAGAATCTGAATGTTTTGGAAGTTTAACTGAAGTC -TCTTTACCATTGGCTGAGCAAATAGAGTCTCCAGACACTAAGAGCAGGAATGAAGTAGTGACTCCTGAGA -AGGTCTGCAAAAATTATCTTACATCTAAGAAATCTTTGCCATTAGAAAATAATGGAAAACGTGGCCATCA -CAATAGACTTTCCAGTCCCATTTCTAAGAGATGTAGAACCAGCATTCTGAGCACCAGTGGAGATTTTGTT -AAGCAAACGGTGCCCTCAGAAAATATACCATTGCCTGAATGTTCTTCACCACCTTCATGCAAACGTAAAG -TTGGTGGTACATCAGGGAGGAAAAACAGTAACATGTCCGATGAATTCATTAGTCTTTCACCAGGTACACC -ACCTTCTACATTAAGTAGTTCAAGTTACAGGCGAGTGATGTCTAGTCCCTCAGCAATGAAGCTGTTGCCC -AATATGGCTGTGAAAAGAAATCATAGAGGAGAGACTTTGCTCCATATTGCTTCTATTAAGGGCGACATAC -CTTCTGTTGAATACCTTTTACAAAATGGAAGTGATCCAAATGTTAAAGACCATGCTGGATGGACACCATT -GCATGAAGCTTGCAATCATGGGCACCTGAAGGTAGTGGAATTATTGCTCCAGCATAAGGCATTGGTGAAC -ACCACCGGGTATCAAAATGACTCACCACTTCACGATGCAGCCAAGAATGGGCATGTGGATATAGTCAAGC -TGTTACTTTCCTATGGAGCCTCCAGAAATGCTGTTAATATATTTGGTCTGCGGCCTGTCGATTATACAGA -TGATGAAAGTATGAAATCGCTATTGCTGCTACCAGAGAAGAATGAATCATCCTCAGCTAGCCACTGCTCA -GTAATGAACACTGGGCAGCGTAGGGATGGACCTCTTGTACTTATAGGCAGTGGGCTGTCTTCAGAACAAC -AGAAAATGCTCAGTGAGCTTGCAGTAATTCTTAAGGCTAAAAAATATACTGAGTTTGACAGTACAGTAAC -TCATGTTGTTGTTCCTGGTGATGCAGTTCAAAGTACCTTGAAGTGTATGCTTGGGATTCTCAATGGATGC -TGGATTCTAAAATTTGAATGGGTAAAAGCATGTCTACGAAGAAAAGTATGTGAACAGGAAGAAAAGTATG -AAATTCCTGAAGGTCCACGCAGAAGCAGGCTCAACAGAGAACAGCTGTTGCCAAAGCTGTTTGATGGATG -CTACTTCTATTTGTGGGGAACCTTCAAACACCATCCAAAGGACAACCTTATTAAGCTCGTCACTGCAGGT -GGGGGCCAGATCCTCAGTAGAAAGCCCAAGCCAGACAGTGACGTGACTCAGACCATCAATACAGTCGCAT -ACCATGCGAGACCCGATTCTGATCAGCGCTTCTGCACACAGTATATCATCTATGAAGATTTGTGTAATTA -TCACCCAGAGAGGGTTCGGCAGGGCAAAGTCTGGAAGGCTCCTTCGAGCTGGTTTATAGACTGTGTGATG -TCCTTTGAGTTGCTTCCTCTTGACAGCTGAATATTATACCAGATGAACATTTCAAATTGAATTTGCACGG -TTTGTGAGAGCCCAGTCATTGTACTGTTTTTAATGTTCACATTTTTACAAATAGGTAGAGTCATTCATAT -TTGTCTTTGAATCAAAAAAAAAAAAAAAGTCTAATGCCAGATTAGGAATTCATGTTATGTTTACCATTTA -GAAGCTGGGATTGCTTTTAAAGGTTTTTCTTTTTAAAATTGGCATGTTTTTGATTTATCATGTCTTTCTA -TTCAGATTATTGGGTATCAAAGATTAATGAGGACACCAGAATCTTGGTTAAATAGACAAGTGGTATCATT -ACTGTTTGAGTCTTTTAATATTCTCCATACCTGCCACCAGTGAAAAAACTTGCCTTTTTTTTTTTTTTTT -TTTTAGTAAACAGAATATTATCAAACAATTTATTTTGGCTTTATTGAAAAAAGAGTATTTGGTCTAAATG -TGCCACCATAGGTGTTAAATTCTCCTATCTGCAATTGTCTTTATCCTATATTGTGTTCATTTCTTTTCTT -AATAATTTACTTTGTTGTGTGTTTCTACACTTTCATCCCTGTTTTTTATCTTGTATATCATCAGGAAATT -GTGATTTAATCATTAACATTGGTTTTTTTGTGTGTGTGGTAAAAATCAACACTAGGCTCATGGTACATAT -TTTTATTCTGTACATTTGCTTGTAACTATCAATTTGTAACTCTGTTTATCTACTACATGTGTATATATAC -TTAGAGCATTTTCTCTAACACATTTTAATGTTAGTATTTTTTAAAAGGTCTGACCAGTCTAGCAAATTGT -CAGTCCAACGTCATTACTTTAAATTAAGAAGCAGTCTTCTTCTGGTAAACCTTGTTGGTATTTGTAAAAT -AATTTTGAAGGTCTTAATTTCTTCCTTTGTAAAAGGAAAAGGTTTTTTTTAAAGTTTTTAGGTTGGCATG -GAGGCAGAAGTTGGTGATTACTTGATTTACAACAGATTTTTTCCAGATCATACAAAAGGCCATACAGTAA -GTATAGAAGTAGGTATGGGGAGGGCTTACTAATATCAAATAGGCAAGGCCTTAGTGAGTGGGCAGGATAC -CACCTGAGAGTGGCCAGATGTGGGGAGGTTACTCTGCTCTGGGTGCTCTCATTCATGAATCGACAAGGAT -ACATTAGATTATTTTGAAACATTTTTTTAAGAAGCAGAATTCTTTAATAATTCCTTCCTAGACATTGAAT -ATACTTATAAAATTAAAGACTTGGGGAAGGAGACACTGAGAGACTTGCCAGTTTGGTTCCTCATGAACAA -AAGAGGACAGTTTGATAACTACCAGAATAGAATATCCCTAGTTTTAAAATAGTGAGAATCTCTGAAGTTC -ATCAACATCTTAAGATGCACTTACTTGAAAGTTTGAGATTCTGTTTATCATTTGAAAACACATTTTGCTT -TAATTCTTTCTTTGACATGTTGTTTTTTCATATCAAGAAATATATGAACAAAATAATAACCTTTTGACCC -TGACCTTGCTGGGTGAATTAGCTCTGAAACACTCTCTACAACCAGTAATGCATTTGTCCCACATTTCATT -CTGATAGAAAATGAACACCATAGCACCAAACAAAAATCCGAGGCGTTAGATAATGTCTGGATTAAATAAT -TTAAGACTCTCTAGGATTTTGGTTGTCATTTTTTATTTATAACAGACTTTAAGTCACTTTCTGTTGCCTC -ATAGGTCACATTTTAGACAGGTTTGTGTCTGTTCCTTGCATCTGAATTCCTGATTGTAAAGACACCTATG -AGGTCTCTTAGTTTTTGTCATTCATTTTCTTGGTTTATCACCCCTCCCTTCTTTTTGTTGTTTTTCCCTG -ACTGTTAAGCAGTTTCATCTTTGCTTTTGTTAAATATTTGACAGCAGTTAGTTTGTGTTAAGCTCTTGAA -ACTTGTGATTGTACTTTCTGTGTAGATATACATGTAATTATTTTTTATTTTTCAATCATAGATTCAAGCT -TCCTTCTTTTTTACCACAAATCATTAAAGTTATTTGTGTTTCCATATACCTGTGTCTTGTATAAAATTGG -CTTATTCTGTGCTGTTGAATGAGGCTCAACATGACTTGGTGAGGAAGTCTATTAACTAACAAAAGCTTAT -CTTTTTTAACATAATGCTTTTTAATTAATTTTGAATAAAAATATTTCTAAAGTGTACTAGATACTTTATT -ACCTTAGATTATTCCGAATACAGTATAACTTTGATAGTTTGGAATAGTCATTAAGAAACAATTACACACT -GATTGCTTTGTGTCTCTAAAAGTGAGAGGCTGGTAGCTTTTCCACATTCTCATGGCTATTTTCTAGTTCT -ACTTGAATTTATAACTGTTTCCCTTTTTCCTTGACAGCTGCCACTTTGTAGCTATTTTTCTGTCTCTGCT -AATACTTTACCATATCTATCTCAATTGTTTTTTCTTTTGACTTGCTGAAAAATAGAAACCAGATGGGAAG -TATATTAGCATTATGATTGAAATAAGGGTAAATGAGCAATGTGTGAAGGTTTTCACTGACTTCACCTAAA -AGATAGTTTAGCTACTTGAATTTTAGTAAATAGAATTTTTCCTTTATTTCATCGGTCCCCCCACCTTTTT -TTTTTTTTGCACCTGCCTTGTAAATTTAATAGTTAAGTGACCTCTGCCTAGAGGATGATATTTGGGGAGG -TTTGATGTTTCCTGTGGGAATAAGACGATTCACAGGTGAGAGTGGGGCCACATTAGCTGTTATTGTTTCC -ATGGGTCAGTGTGGAAAATGCATTAATCATATTCTAAACGTTCATGGGCCTCATTACAGTCACAATTGTC -TATTCTGTTTCCTACCCTGAACACATTAAAATGGTAGGAACTAATGCTTGTCTTATTTAATTACTAAAAG -CCACCATTTTCTTTGATAGATTGAGCTACAGATTGTAAACTTCATGTATTTCTTTATAAGTCAACCCTTT -TCAAAGATACGCACATCAAACTGAATGAATAAATAAATATTGAGAAGTTGAAAAAAAAAAAAAAAAA ->NR_104212.1 -CCCCGCCCCTCTGGCGGCCCGCCGTCCCAGACGCGGGAAGAGCTTGGCCGGTTTCGAGTCGCTGGCCTGC -AGCTTCCCTGTGGTTTCCCGAGGCTTCCTTGCTTCCCGCTCTGCGAGGAGCCTTTCATCCGAAGGCGGGA -CGATGCCGGATAATCGGCAGCCGAGGAACCGGCAGCCGAGGATCCGCTCCGGGAACGAGCCTCGTTCCGC -GCCCGCCATGGAACCGGATGGTCGCGGTGCCTGGGCCCACAGTCGCGCCGCGCTCGACCGCCTGGAGAAG -CTGCTGCGCTGCTCGCGTTGTACTAACATTCTGAGAGAGCCTGTGTGTTTAGGAGGATGTGAGCACATCT -TCTGTAGATTTGAAAGAAGATAAACCTAGGAAAAGTTTGTTTAATGATGCAGGAAACAAGAAGAATTCAA -TTAAAATGTGGTTTAGCCCTCGAAGTAAGAAAGTCAGATATGTTGTGAGTAAAGCTTCAGTGCAAACCCA -GCCTGCAATAAAAAAAGATGCAAGTGCTCAGCAAGACTCATATGAATTTGTTTCCCCAAGTCCTCCTGCA -GATGTTTCTGAGAGGGCTAAAAAGGCTTCTGCAAGATCTGGAAAAAAGCAAAAAAAGAAAACTTTAGCTG -AAATCAACCAAAAATGGAATTTAGAGGCAGAAAAAGAAGATGGTGAATTTGACTCCAAAGAGGAATCTAA -GCAAAAGCTGGTATCCTTCTGTAGCCAACCATCTGTTATCTCCAGTCCTCAGATAAATGGTGAAATAGAC -TTACTAGCAAGTGGCTCCTTGACAGAATCTGAATGTTTTGGAAGTTTAACTGAAGTCTCTTTACCATTGG -CTGAGCAAATAGAGTCTCCAGACACTAAGAGCAGGAATGAAGTAGTGACTCCTGAGAAGGTCTGCAAAAA -TTATCTTACATCTAAGAAATCTTTGCCATTAGAAAATAATGGAAAACGTGGCCATCACAATAGACTTTCC -AGTCCCATTTCTAAGAGATGTAGAACCAGCATTCTGAGCACCAGTGGAGATTTTGTTAAGCAAACGGTGC -CCTCAGAAAATATACCATTGCCTGAATGTTCTTCACCACCTTCATGCAAACGTAAAGTTGGTGGTACATC -AGGGAGGAAAAACAGTAACATGTCCGATGAATTCATTAGTCTTTCACCAGGTACACCACCTTCTACATTA -AGTAGTTCAAGTTACAGGCGAGTGATGTCTAGTCCCTCAGCAATGAAGCTGTTGCCCAATATGGCTGTGA -AAAGAAATCATAGAGGAGAGACTTTGCTCCATATTGCTTCTATTAAGGGCGACATACCTTCTGTTGAATA -CCTTTTACAAAATGGAAGTGATCCAAATGTTAAAGACCATGCTGGATGGACACCATTGCATGAAGCTTGC -AATCATGGGCACCTGAAGGTAGTGGAATTATTGCTCCAGCATAAGGCATTGGTGAACACCACCGGGTATC -AAAATGACTCACCACTTCACGATGCAGCCAAGAATGGGCATGTGGATATAGTCAAGCTGTTACTTTCCTA -TGGAGCCTCCAGAAATGCTGTTAATATATTTGGTCTGCGGCCTGTCGATTATACAGATGATGAAAGTATG -AAATCGCTATTGCTGCTACCAGAGAAGAATGAATCATCCTCAGCTAGCCACTGCTCAGTAATGAACACTG -GGCAGCGTAGGGATGGACCTCTTGTACTTATAGGCAGTGGGCTGTCTTCAGAACAACAGAAAATGCTCAG -TGAGCTTGCAGTAATTCTTAAGGCTAAAAAATATACTGAGTTTGACAGTACAGTAACTCATGTTGTTGTT -CCTGGTGATGCAGTTCAAAGTACCTTGAAGTGTATGCTTGGGATTCTCAATGGATGCTGGATTCTAAAAT -TTGAATGGGTAAAAGCATGTCTACGAAGAAAAGTATGTGAACAGGAAGAAAAGTATGAAATTCCTGAAGG -TCCACGCAGAAGCAGGCTCAACAGAGAACAGCTGTTGCCAAAGCTGTTTGATGGATGCTACTTCTATTTG -TGGGGAACCTTCAAACACCATCCAAAGGACAACCTTATTAAGCTCGTCACTGCAGGTGGGGGCCAGATCC -TCAGTAGAAAGCCCAAGCCAGACAGTGACGTGACTCAGACCATCAATACAGTCGCATACCATGCGAGACC -CGATTCTGATCAGCGCTTCTGCACACAGTATATCATCTATGAAGATTTGTGTAATTATCACCCAGAGAGG -GTTCGGCAGGGCAAAGTCTGGAAGGCTCCTTCGAGCTGGTTTATAGACTGTGTGATGTCCTTTGAGTTGC -TTCCTCTTGACAGCTGAATATTATACCAGATGAACATTTCAAATTGAATTTGCACGGTTTGTGAGAGCCC -AGTCATTGTACTGTTTTTAATGTTCACATTTTTACAAATAGGTAGAGTCATTCATATTTGTCTTTGAATC -AAAAAAAAAAAAAAAGTCTAATGCCAGATTAGGAATTCATGTTATGTTTACCATTTAGAAGCTGGGATTG -CTTTTAAAGGTTTTTCTTTTTAAAATTGGCATGTTTTTGATTTATCATGTCTTTCTATTCAGATTATTGG -GTATCAAAGATTAATGAGGACACCAGAATCTTGGTTAAATAGACAAGTGGTATCATTACTGTTTGAGTCT -TTTAATATTCTCCATACCTGCCACCAGTGAAAAAACTTGCCTTTTTTTTTTTTTTTTTTTTAGTAAACAG -AATATTATCAAACAATTTATTTTGGCTTTATTGAAAAAAGAGTATTTGGTCTAAATGTGCCACCATAGGT -GTTAAATTCTCCTATCTGCAATTGTCTTTATCCTATATTGTGTTCATTTCTTTTCTTAATAATTTACTTT -GTTGTGTGTTTCTACACTTTCATCCCTGTTTTTTATCTTGTATATCATCAGGAAATTGTGATTTAATCAT -TAACATTGGTTTTTTTGTGTGTGTGGTAAAAATCAACACTAGGCTCATGGTACATATTTTTATTCTGTAC -ATTTGCTTGTAACTATCAATTTGTAACTCTGTTTATCTACTACATGTGTATATATACTTAGAGCATTTTC -TCTAACACATTTTAATGTTAGTATTTTTTAAAAGGTCTGACCAGTCTAGCAAATTGTCAGTCCAACGTCA -TTACTTTAAATTAAGAAGCAGTCTTCTTCTGGTAAACCTTGTTGGTATTTGTAAAATAATTTTGAAGGTC -TTAATTTCTTCCTTTGTAAAAGGAAAAGGTTTTTTTTAAAGTTTTTAGGTTGGCATGGAGGCAGAAGTTG -GTGATTACTTGATTTACAACAGATTTTTTCCAGATCATACAAAAGGCCATACAGTAAGTATAGAAGTAGG -TATGGGGAGGGCTTACTAATATCAAATAGGCAAGGCCTTAGTGAGTGGGCAGGATACCACCTGAGAGTGG -CCAGATGTGGGGAGGTTACTCTGCTCTGGGTGCTCTCATTCATGAATCGACAAGGATACATTAGATTATT -TTGAAACATTTTTTTAAGAAGCAGAATTCTTTAATAATTCCTTCCTAGACATTGAATATACTTATAAAAT -TAAAGACTTGGGGAAGGAGACACTGAGAGACTTGCCAGTTTGGTTCCTCATGAACAAAAGAGGACAGTTT -GATAACTACCAGAATAGAATATCCCTAGTTTTAAAATAGTGAGAATCTCTGAAGTTCATCAACATCTTAA -GATGCACTTACTTGAAAGTTTGAGATTCTGTTTATCATTTGAAAACACATTTTGCTTTAATTCTTTCTTT -GACATGTTGTTTTTTCATATCAAGAAATATATGAACAAAATAATAACCTTTTGACCCTGACCTTGCTGGG -TGAATTAGCTCTGAAACACTCTCTACAACCAGTAATGCATTTGTCCCACATTTCATTCTGATAGAAAATG -AACACCATAGCACCAAACAAAAATCCGAGGCGTTAGATAATGTCTGGATTAAATAATTTAAGACTCTCTA -GGATTTTGGTTGTCATTTTTTATTTATAACAGACTTTAAGTCACTTTCTGTTGCCTCATAGGTCACATTT -TAGACAGGTTTGTGTCTGTTCCTTGCATCTGAATTCCTGATTGTAAAGACACCTATGAGGTCTCTTAGTT -TTTGTCATTCATTTTCTTGGTTTATCACCCCTCCCTTCTTTTTGTTGTTTTTCCCTGACTGTTAAGCAGT -TTCATCTTTGCTTTTGTTAAATATTTGACAGCAGTTAGTTTGTGTTAAGCTCTTGAAACTTGTGATTGTA -CTTTCTGTGTAGATATACATGTAATTATTTTTTATTTTTCAATCATAGATTCAAGCTTCCTTCTTTTTTA -CCACAAATCATTAAAGTTATTTGTGTTTCCATATACCTGTGTCTTGTATAAAATTGGCTTATTCTGTGCT -GTTGAATGAGGCTCAACATGACTTGGTGAGGAAGTCTATTAACTAACAAAAGCTTATCTTTTTTAACATA -ATGCTTTTTAATTAATTTTGAATAAAAATATTTCTAAAGTGTACTAGATACTTTATTACCTTAGATTATT -CCGAATACAGTATAACTTTGATAGTTTGGAATAGTCATTAAGAAACAATTACACACTGATTGCTTTGTGT -CTCTAAAAGTGAGAGGCTGGTAGCTTTTCCACATTCTCATGGCTATTTTCTAGTTCTACTTGAATTTATA -ACTGTTTCCCTTTTTCCTTGACAGCTGCCACTTTGTAGCTATTTTTCTGTCTCTGCTAATACTTTACCAT -ATCTATCTCAATTGTTTTTTCTTTTGACTTGCTGAAAAATAGAAACCAGATGGGAAGTATATTAGCATTA -TGATTGAAATAAGGGTAAATGAGCAATGTGTGAAGGTTTTCACTGACTTCACCTAAAAGATAGTTTAGCT -ACTTGAATTTTAGTAAATAGAATTTTTCCTTTATTTCATCGGTCCCCCCACCTTTTTTTTTTTTTGCACC -TGCCTTGTAAATTTAATAGTTAAGTGACCTCTGCCTAGAGGATGATATTTGGGGAGGTTTGATGTTTCCT -GTGGGAATAAGACGATTCACAGGTGAGAGTGGGGCCACATTAGCTGTTATTGTTTCCATGGGTCAGTGTG -GAAAATGCATTAATCATATTCTAAACGTTCATGGGCCTCATTACAGTCACAATTGTCTATTCTGTTTCCT -ACCCTGAACACATTAAAATGGTAGGAACTAATGCTTGTCTTATTTAATTACTAAAAGCCACCATTTTCTT -TGATAGATTGAGCTACAGATTGTAAACTTCATGTATTTCTTTATAAGTCAACCCTTTTCAAAGATACGCA -CATCAAACTGAATGAATAAATAAATATTGAGAAGTTGAAAAAAAAAAAAAAAAA ->NM_001282545.1 -CCCCGCCCCTCTGGCGGCCCGCCGTCCCAGACGCGGGAAGAGCTTGGCCGGTTTCGAGTCGCTGGCCTGC -AGCTTCCCTGTGGTTTCCCGAGGCTTCCTTGCTTCCCGCTCTGCGAGGAGCCTTTCATCCGAAGGCGGGA -CGATGCCGGATAATCGGCAGCCGAGGAACCGGCAGCCGAGGATCCGCTCCGGGAACGAGCCTCGTTCCGC -GCCCGCCATGGAACCGGATGGTCGCGGTGCCTGGGCCCACAGTCGCGCCGCGCTCGACCGCCTGGAGAAG -CTGCTGCGCTGCTCGCGTTGTACTAACATTCTGAGAGAGCCTGTGTGTTTAGGAGGATGTGAGCACATCT -TCTGTAGTAATATATTTGGTCTGCGGCCTGTCGATTATACAGATGATGAAAGTATGAAATCGCTATTGCT -GCTACCAGAGAAGAATGAATCATCCTCAGCTAGCCACTGCTCAGTAATGAACACTGGGCAGCGTAGGGAT -GGACCTCTTGTACTTATAGGCAGTGGGCTGTCTTCAGAACAACAGAAAATGCTCAGTGAGCTTGCAGTAA -TTCTTAAGGCTAAAAAATATACTGAGTTTGACAGTACAGTAACTCATGTTGTTGTTCCTGGTGATGCAGT -TCAAAGTACCTTGAAGTGTATGCTTGGGATTCTCAATGGATGCTGGATTCTAAAATTTGAATGGGTAAAA -GCATGTCTACGAAGAAAAGTATGTGAACAGGAAGAAAAGTATGAAATTCCTGAAGGTCCACGCAGAAGCA -GGCTCAACAGAGAACAGCTGTTGCCAAAGCTGTTTGATGGATGCTACTTCTATTTGTGGGGAACCTTCAA -ACACCATCCAAAGGACAACCTTATTAAGCTCGTCACTGCAGGTGGGGGCCAGATCCTCAGTAGAAAGCCC -AAGCCAGACAGTGACGTGACTCAGACCATCAATACAGTCGCATACCATGCGAGACCCGATTCTGATCAGC -GCTTCTGCACACAGTATATCATCTATGAAGATTTGTGTAATTATCACCCAGAGAGGGTTCGGCAGGGCAA -AGTCTGGAAGGCTCCTTCGAGCTGGTTTATAGACTGTGTGATGTCCTTTGAGTTGCTTCCTCTTGACAGC -TGAATATTATACCAGATGAACATTTCAAATTGAATTTGCACGGTTTGTGAGAGCCCAGTCATTGTACTGT -TTTTAATGTTCACATTTTTACAAATAGGTAGAGTCATTCATATTTGTCTTTGAATCAAAAAAAAAAAAAA -AGTCTAATGCCAGATTAGGAATTCATGTTATGTTTACCATTTAGAAGCTGGGATTGCTTTTAAAGGTTTT -TCTTTTTAAAATTGGCATGTTTTTGATTTATCATGTCTTTCTATTCAGATTATTGGGTATCAAAGATTAA -TGAGGACACCAGAATCTTGGTTAAATAGACAAGTGGTATCATTACTGTTTGAGTCTTTTAATATTCTCCA -TACCTGCCACCAGTGAAAAAACTTGCCTTTTTTTTTTTTTTTTTTTTAGTAAACAGAATATTATCAAACA -ATTTATTTTGGCTTTATTGAAAAAAGAGTATTTGGTCTAAATGTGCCACCATAGGTGTTAAATTCTCCTA -TCTGCAATTGTCTTTATCCTATATTGTGTTCATTTCTTTTCTTAATAATTTACTTTGTTGTGTGTTTCTA -CACTTTCATCCCTGTTTTTTATCTTGTATATCATCAGGAAATTGTGATTTAATCATTAACATTGGTTTTT -TTGTGTGTGTGGTAAAAATCAACACTAGGCTCATGGTACATATTTTTATTCTGTACATTTGCTTGTAACT -ATCAATTTGTAACTCTGTTTATCTACTACATGTGTATATATACTTAGAGCATTTTCTCTAACACATTTTA -ATGTTAGTATTTTTTAAAAGGTCTGACCAGTCTAGCAAATTGTCAGTCCAACGTCATTACTTTAAATTAA -GAAGCAGTCTTCTTCTGGTAAACCTTGTTGGTATTTGTAAAATAATTTTGAAGGTCTTAATTTCTTCCTT -TGTAAAAGGAAAAGGTTTTTTTTAAAGTTTTTAGGTTGGCATGGAGGCAGAAGTTGGTGATTACTTGATT -TACAACAGATTTTTTCCAGATCATACAAAAGGCCATACAGTAAGTATAGAAGTAGGTATGGGGAGGGCTT -ACTAATATCAAATAGGCAAGGCCTTAGTGAGTGGGCAGGATACCACCTGAGAGTGGCCAGATGTGGGGAG -GTTACTCTGCTCTGGGTGCTCTCATTCATGAATCGACAAGGATACATTAGATTATTTTGAAACATTTTTT -TAAGAAGCAGAATTCTTTAATAATTCCTTCCTAGACATTGAATATACTTATAAAATTAAAGACTTGGGGA -AGGAGACACTGAGAGACTTGCCAGTTTGGTTCCTCATGAACAAAAGAGGACAGTTTGATAACTACCAGAA -TAGAATATCCCTAGTTTTAAAATAGTGAGAATCTCTGAAGTTCATCAACATCTTAAGATGCACTTACTTG -AAAGTTTGAGATTCTGTTTATCATTTGAAAACACATTTTGCTTTAATTCTTTCTTTGACATGTTGTTTTT -TCATATCAAGAAATATATGAACAAAATAATAACCTTTTGACCCTGACCTTGCTGGGTGAATTAGCTCTGA -AACACTCTCTACAACCAGTAATGCATTTGTCCCACATTTCATTCTGATAGAAAATGAACACCATAGCACC -AAACAAAAATCCGAGGCGTTAGATAATGTCTGGATTAAATAATTTAAGACTCTCTAGGATTTTGGTTGTC -ATTTTTTATTTATAACAGACTTTAAGTCACTTTCTGTTGCCTCATAGGTCACATTTTAGACAGGTTTGTG -TCTGTTCCTTGCATCTGAATTCCTGATTGTAAAGACACCTATGAGGTCTCTTAGTTTTTGTCATTCATTT -TCTTGGTTTATCACCCCTCCCTTCTTTTTGTTGTTTTTCCCTGACTGTTAAGCAGTTTCATCTTTGCTTT -TGTTAAATATTTGACAGCAGTTAGTTTGTGTTAAGCTCTTGAAACTTGTGATTGTACTTTCTGTGTAGAT -ATACATGTAATTATTTTTTATTTTTCAATCATAGATTCAAGCTTCCTTCTTTTTTACCACAAATCATTAA -AGTTATTTGTGTTTCCATATACCTGTGTCTTGTATAAAATTGGCTTATTCTGTGCTGTTGAATGAGGCTC -AACATGACTTGGTGAGGAAGTCTATTAACTAACAAAAGCTTATCTTTTTTAACATAATGCTTTTTAATTA -ATTTTGAATAAAAATATTTCTAAAGTGTACTAGATACTTTATTACCTTAGATTATTCCGAATACAGTATA -ACTTTGATAGTTTGGAATAGTCATTAAGAAACAATTACACACTGATTGCTTTGTGTCTCTAAAAGTGAGA -GGCTGGTAGCTTTTCCACATTCTCATGGCTATTTTCTAGTTCTACTTGAATTTATAACTGTTTCCCTTTT -TCCTTGACAGCTGCCACTTTGTAGCTATTTTTCTGTCTCTGCTAATACTTTACCATATCTATCTCAATTG -TTTTTTCTTTTGACTTGCTGAAAAATAGAAACCAGATGGGAAGTATATTAGCATTATGATTGAAATAAGG -GTAAATGAGCAATGTGTGAAGGTTTTCACTGACTTCACCTAAAAGATAGTTTAGCTACTTGAATTTTAGT -AAATAGAATTTTTCCTTTATTTCATCGGTCCCCCCACCTTTTTTTTTTTTTGCACCTGCCTTGTAAATTT -AATAGTTAAGTGACCTCTGCCTAGAGGATGATATTTGGGGAGGTTTGATGTTTCCTGTGGGAATAAGACG -ATTCACAGGTGAGAGTGGGGCCACATTAGCTGTTATTGTTTCCATGGGTCAGTGTGGAAAATGCATTAAT -CATATTCTAAACGTTCATGGGCCTCATTACAGTCACAATTGTCTATTCTGTTTCCTACCCTGAACACATT -AAAATGGTAGGAACTAATGCTTGTCTTATTTAATTACTAAAAGCCACCATTTTCTTTGATAGATTGAGCT -ACAGATTGTAAACTTCATGTATTTCTTTATAAGTCAACCCTTTTCAAAGATACGCACATCAAACTGAATG -AATAAATAAATATTGAGAAGTTGAAAAAAAAAAAAAAAAA ->NM_001282543.1 -CCCCGCCCCTCTGGCGGCCCGCCGTCCCAGACGCGGGAAGAGCTTGGCCGGTTTCGAGTCGCTGGCCTGC -AGCTTCCCTGTGGTTTCCCGAGGCTTCCTTGCTTCCCGCTCTGCGAGGAGCCTTTCATCCGAAGGCGGGA -CGATGCCGGATAATCGGCAGCCGAGGAACCGGCAGCCGAGGATCCGCTCCGGGAACGAGCCTCGTTCCGC -GCCCGCCATGGAACCGGATGGTCGCGGTGCCTGGGCCCACAGTCGCGCCGCGCTCGACCGCCTGGAGAAG -CTGCTGCGCTGCTCGCGTTGTAATTGTGTAAGTGACTGCATTGGAACTGGATGTCCAGTGTGTTACACCC -CGGCCTGGATACAAGACTTGAAGATAAATAGACAACTGGACAGCATGATTCAACTTTGTAGTAAGCTTCG -AAATTTGCTACATGACAATGAGCTGTCAGATTTGAAAGAAGATAAACCTAGGAAAAGTTTGTTTAATGAT -GCAGGAAACAAGAAGAATTCAATTAAAATGTGGTTTAGCCCTCGAAGTAAGAAAGTCAGATATGTTGTGA -GTAAAGCTTCAGTGCAAACCCAGCCTGCAATAAAAAAAGATGCAAGTGCTCAGCAAGACTCATATGAATT -TGTTTCCCCAAGTCCTCCTGCAGATGTTTCTGAGAGGGCTAAAAAGGCTTCTGCAAGATCTGGAAAAAAG -CAAAAAAAGAAAACTTTAGCTGAAATCAACCAAAAATGGAATTTAGAGGCAGAAAAAGAAGATGGTGAAT -TTGACTCCAAAGAGGAATCTAAGCAAAAGCTGGTATCCTTCTGTAGCCAACCATCTGTTATCTCCAGTCC -TCAGATAAATGGTGAAATAGACTTACTAGCAAGTGGCTCCTTGACAGAATCTGAATGTTTTGGAAGTTTA -ACTGAAGTCTCTTTACCATTGGCTGAGCAAATAGAGTCTCCAGACACTAAGAGCAGGAATGAAGTAGTGA -CTCCTGAGAAGGTCTGCAAAAATTATCTTACATCTAAGAAATCTTTGCCATTAGAAAATAATGGAAAACG -TGGCCATCACAATAGACTTTCCAGTCCCATTTCTAAGAGATGTAGAACCAGCATTCTGAGCACCAGTGGA -GATTTTGTTAAGCAAACGGTGCCCTCAGAAAATATACCATTGCCTGAATGTTCTTCACCACCTTCATGCA -AACGTAAAGTTGGTGGTACATCAGGGAGGAAAAACAGTAACATGTCCGATGAATTCATTAGTCTTTCACC -AGGTACACCACCTTCTACATTAAGTAGTTCAAGTTACAGGCGAGTGATGTCTAGTCCCTCAGCAATGAAG -CTGTTGCCCAATATGGCTGTGAAAAGAAATCATAGAGGAGAGACTTTGCTCCATATTGCTTCTATTAAGG -GCGACATACCTTCTGTTGAATACCTTTTACAAAATGGAAGTGATCCAAATGTTAAAGACCATGCTGGATG -GACACCATTGCATGAAGCTTGCAATCATGGGCACCTGAAGGTAGTGGAATTATTGCTCCAGCATAAGGCA -TTGGTGAACACCACCGGGTATCAAAATGACTCACCACTTCACGATGCAGCCAAGAATGGGCATGTGGATA -TAGTCAAGCTGTTACTTTCCTATGGAGCCTCCAGAAATGCTGTTAATATATTTGGTCTGCGGCCTGTCGA -TTATACAGATGATGAAAGTATGAAATCGCTATTGCTGCTACCAGAGAAGAATGAATCATCCTCAGCTAGC -CACTGCTCAGTAATGAACACTGGGCAGCGTAGGGATGGACCTCTTGTACTTATAGGCAGTGGGCTGTCTT -CAGAACAACAGAAAATGCTCAGTGAGCTTGCAGTAATTCTTAAGGCTAAAAAATATACTGAGTTTGACAG -TACAGTAACTCATGTTGTTGTTCCTGGTGATGCAGTTCAAAGTACCTTGAAGTGTATGCTTGGGATTCTC -AATGGATGCTGGATTCTAAAATTTGAATGGGTAAAAGCATGTCTACGAAGAAAAGTATGTGAACAGGAAG -AAAAGTATGAAATTCCTGAAGGTCCACGCAGAAGCAGGCTCAACAGAGAACAGCTGTTGCCAAAGCTGTT -TGATGGATGCTACTTCTATTTGTGGGGAACCTTCAAACACCATCCAAAGGACAACCTTATTAAGCTCGTC -ACTGCAGGTGGGGGCCAGATCCTCAGTAGAAAGCCCAAGCCAGACAGTGACGTGACTCAGACCATCAATA -CAGTCGCATACCATGCGAGACCCGATTCTGATCAGCGCTTCTGCACACAGTATATCATCTATGAAGATTT -GTGTAATTATCACCCAGAGAGGGTTCGGCAGGGCAAAGTCTGGAAGGCTCCTTCGAGCTGGTTTATAGAC -TGTGTGATGTCCTTTGAGTTGCTTCCTCTTGACAGCTGAATATTATACCAGATGAACATTTCAAATTGAA -TTTGCACGGTTTGTGAGAGCCCAGTCATTGTACTGTTTTTAATGTTCACATTTTTACAAATAGGTAGAGT -CATTCATATTTGTCTTTGAATCAAAAAAAAAAAAAAAGTCTAATGCCAGATTAGGAATTCATGTTATGTT -TACCATTTAGAAGCTGGGATTGCTTTTAAAGGTTTTTCTTTTTAAAATTGGCATGTTTTTGATTTATCAT -GTCTTTCTATTCAGATTATTGGGTATCAAAGATTAATGAGGACACCAGAATCTTGGTTAAATAGACAAGT -GGTATCATTACTGTTTGAGTCTTTTAATATTCTCCATACCTGCCACCAGTGAAAAAACTTGCCTTTTTTT -TTTTTTTTTTTTTAGTAAACAGAATATTATCAAACAATTTATTTTGGCTTTATTGAAAAAAGAGTATTTG -GTCTAAATGTGCCACCATAGGTGTTAAATTCTCCTATCTGCAATTGTCTTTATCCTATATTGTGTTCATT -TCTTTTCTTAATAATTTACTTTGTTGTGTGTTTCTACACTTTCATCCCTGTTTTTTATCTTGTATATCAT -CAGGAAATTGTGATTTAATCATTAACATTGGTTTTTTTGTGTGTGTGGTAAAAATCAACACTAGGCTCAT -GGTACATATTTTTATTCTGTACATTTGCTTGTAACTATCAATTTGTAACTCTGTTTATCTACTACATGTG -TATATATACTTAGAGCATTTTCTCTAACACATTTTAATGTTAGTATTTTTTAAAAGGTCTGACCAGTCTA -GCAAATTGTCAGTCCAACGTCATTACTTTAAATTAAGAAGCAGTCTTCTTCTGGTAAACCTTGTTGGTAT -TTGTAAAATAATTTTGAAGGTCTTAATTTCTTCCTTTGTAAAAGGAAAAGGTTTTTTTTAAAGTTTTTAG -GTTGGCATGGAGGCAGAAGTTGGTGATTACTTGATTTACAACAGATTTTTTCCAGATCATACAAAAGGCC -ATACAGTAAGTATAGAAGTAGGTATGGGGAGGGCTTACTAATATCAAATAGGCAAGGCCTTAGTGAGTGG -GCAGGATACCACCTGAGAGTGGCCAGATGTGGGGAGGTTACTCTGCTCTGGGTGCTCTCATTCATGAATC -GACAAGGATACATTAGATTATTTTGAAACATTTTTTTAAGAAGCAGAATTCTTTAATAATTCCTTCCTAG -ACATTGAATATACTTATAAAATTAAAGACTTGGGGAAGGAGACACTGAGAGACTTGCCAGTTTGGTTCCT -CATGAACAAAAGAGGACAGTTTGATAACTACCAGAATAGAATATCCCTAGTTTTAAAATAGTGAGAATCT -CTGAAGTTCATCAACATCTTAAGATGCACTTACTTGAAAGTTTGAGATTCTGTTTATCATTTGAAAACAC -ATTTTGCTTTAATTCTTTCTTTGACATGTTGTTTTTTCATATCAAGAAATATATGAACAAAATAATAACC -TTTTGACCCTGACCTTGCTGGGTGAATTAGCTCTGAAACACTCTCTACAACCAGTAATGCATTTGTCCCA -CATTTCATTCTGATAGAAAATGAACACCATAGCACCAAACAAAAATCCGAGGCGTTAGATAATGTCTGGA -TTAAATAATTTAAGACTCTCTAGGATTTTGGTTGTCATTTTTTATTTATAACAGACTTTAAGTCACTTTC -TGTTGCCTCATAGGTCACATTTTAGACAGGTTTGTGTCTGTTCCTTGCATCTGAATTCCTGATTGTAAAG -ACACCTATGAGGTCTCTTAGTTTTTGTCATTCATTTTCTTGGTTTATCACCCCTCCCTTCTTTTTGTTGT -TTTTCCCTGACTGTTAAGCAGTTTCATCTTTGCTTTTGTTAAATATTTGACAGCAGTTAGTTTGTGTTAA -GCTCTTGAAACTTGTGATTGTACTTTCTGTGTAGATATACATGTAATTATTTTTTATTTTTCAATCATAG -ATTCAAGCTTCCTTCTTTTTTACCACAAATCATTAAAGTTATTTGTGTTTCCATATACCTGTGTCTTGTA -TAAAATTGGCTTATTCTGTGCTGTTGAATGAGGCTCAACATGACTTGGTGAGGAAGTCTATTAACTAACA -AAAGCTTATCTTTTTTAACATAATGCTTTTTAATTAATTTTGAATAAAAATATTTCTAAAGTGTACTAGA -TACTTTATTACCTTAGATTATTCCGAATACAGTATAACTTTGATAGTTTGGAATAGTCATTAAGAAACAA -TTACACACTGATTGCTTTGTGTCTCTAAAAGTGAGAGGCTGGTAGCTTTTCCACATTCTCATGGCTATTT -TCTAGTTCTACTTGAATTTATAACTGTTTCCCTTTTTCCTTGACAGCTGCCACTTTGTAGCTATTTTTCT -GTCTCTGCTAATACTTTACCATATCTATCTCAATTGTTTTTTCTTTTGACTTGCTGAAAAATAGAAACCA -GATGGGAAGTATATTAGCATTATGATTGAAATAAGGGTAAATGAGCAATGTGTGAAGGTTTTCACTGACT -TCACCTAAAAGATAGTTTAGCTACTTGAATTTTAGTAAATAGAATTTTTCCTTTATTTCATCGGTCCCCC -CACCTTTTTTTTTTTTTGCACCTGCCTTGTAAATTTAATAGTTAAGTGACCTCTGCCTAGAGGATGATAT -TTGGGGAGGTTTGATGTTTCCTGTGGGAATAAGACGATTCACAGGTGAGAGTGGGGCCACATTAGCTGTT -ATTGTTTCCATGGGTCAGTGTGGAAAATGCATTAATCATATTCTAAACGTTCATGGGCCTCATTACAGTC -ACAATTGTCTATTCTGTTTCCTACCCTGAACACATTAAAATGGTAGGAACTAATGCTTGTCTTATTTAAT -TACTAAAAGCCACCATTTTCTTTGATAGATTGAGCTACAGATTGTAAACTTCATGTATTTCTTTATAAGT -CAACCCTTTTCAAAGATACGCACATCAAACTGAATGAATAAATAAATATTGAGAAGTTGAAAAAAAAAAA -AAAAAA ->NM_000465.3 -CCCCGCCCCTCTGGCGGCCCGCCGTCCCAGACGCGGGAAGAGCTTGGCCGGTTTCGAGTCGCTGGCCTGC -AGCTTCCCTGTGGTTTCCCGAGGCTTCCTTGCTTCCCGCTCTGCGAGGAGCCTTTCATCCGAAGGCGGGA -CGATGCCGGATAATCGGCAGCCGAGGAACCGGCAGCCGAGGATCCGCTCCGGGAACGAGCCTCGTTCCGC -GCCCGCCATGGAACCGGATGGTCGCGGTGCCTGGGCCCACAGTCGCGCCGCGCTCGACCGCCTGGAGAAG -CTGCTGCGCTGCTCGCGTTGTACTAACATTCTGAGAGAGCCTGTGTGTTTAGGAGGATGTGAGCACATCT -TCTGTAGTAATTGTGTAAGTGACTGCATTGGAACTGGATGTCCAGTGTGTTACACCCCGGCCTGGATACA -AGACTTGAAGATAAATAGACAACTGGACAGCATGATTCAACTTTGTAGTAAGCTTCGAAATTTGCTACAT -GACAATGAGCTGTCAGATTTGAAAGAAGATAAACCTAGGAAAAGTTTGTTTAATGATGCAGGAAACAAGA -AGAATTCAATTAAAATGTGGTTTAGCCCTCGAAGTAAGAAAGTCAGATATGTTGTGAGTAAAGCTTCAGT -GCAAACCCAGCCTGCAATAAAAAAAGATGCAAGTGCTCAGCAAGACTCATATGAATTTGTTTCCCCAAGT -CCTCCTGCAGATGTTTCTGAGAGGGCTAAAAAGGCTTCTGCAAGATCTGGAAAAAAGCAAAAAAAGAAAA -CTTTAGCTGAAATCAACCAAAAATGGAATTTAGAGGCAGAAAAAGAAGATGGTGAATTTGACTCCAAAGA -GGAATCTAAGCAAAAGCTGGTATCCTTCTGTAGCCAACCATCTGTTATCTCCAGTCCTCAGATAAATGGT -GAAATAGACTTACTAGCAAGTGGCTCCTTGACAGAATCTGAATGTTTTGGAAGTTTAACTGAAGTCTCTT -TACCATTGGCTGAGCAAATAGAGTCTCCAGACACTAAGAGCAGGAATGAAGTAGTGACTCCTGAGAAGGT -CTGCAAAAATTATCTTACATCTAAGAAATCTTTGCCATTAGAAAATAATGGAAAACGTGGCCATCACAAT -AGACTTTCCAGTCCCATTTCTAAGAGATGTAGAACCAGCATTCTGAGCACCAGTGGAGATTTTGTTAAGC -AAACGGTGCCCTCAGAAAATATACCATTGCCTGAATGTTCTTCACCACCTTCATGCAAACGTAAAGTTGG -TGGTACATCAGGGAGGAAAAACAGTAACATGTCCGATGAATTCATTAGTCTTTCACCAGGTACACCACCT -TCTACATTAAGTAGTTCAAGTTACAGGCGAGTGATGTCTAGTCCCTCAGCAATGAAGCTGTTGCCCAATA -TGGCTGTGAAAAGAAATCATAGAGGAGAGACTTTGCTCCATATTGCTTCTATTAAGGGCGACATACCTTC -TGTTGAATACCTTTTACAAAATGGAAGTGATCCAAATGTTAAAGACCATGCTGGATGGACACCATTGCAT -GAAGCTTGCAATCATGGGCACCTGAAGGTAGTGGAATTATTGCTCCAGCATAAGGCATTGGTGAACACCA -CCGGGTATCAAAATGACTCACCACTTCACGATGCAGCCAAGAATGGGCATGTGGATATAGTCAAGCTGTT -ACTTTCCTATGGAGCCTCCAGAAATGCTGTTAATATATTTGGTCTGCGGCCTGTCGATTATACAGATGAT -GAAAGTATGAAATCGCTATTGCTGCTACCAGAGAAGAATGAATCATCCTCAGCTAGCCACTGCTCAGTAA -TGAACACTGGGCAGCGTAGGGATGGACCTCTTGTACTTATAGGCAGTGGGCTGTCTTCAGAACAACAGAA -AATGCTCAGTGAGCTTGCAGTAATTCTTAAGGCTAAAAAATATACTGAGTTTGACAGTACAGTAACTCAT -GTTGTTGTTCCTGGTGATGCAGTTCAAAGTACCTTGAAGTGTATGCTTGGGATTCTCAATGGATGCTGGA -TTCTAAAATTTGAATGGGTAAAAGCATGTCTACGAAGAAAAGTATGTGAACAGGAAGAAAAGTATGAAAT -TCCTGAAGGTCCACGCAGAAGCAGGCTCAACAGAGAACAGCTGTTGCCAAAGCTGTTTGATGGATGCTAC -TTCTATTTGTGGGGAACCTTCAAACACCATCCAAAGGACAACCTTATTAAGCTCGTCACTGCAGGTGGGG -GCCAGATCCTCAGTAGAAAGCCCAAGCCAGACAGTGACGTGACTCAGACCATCAATACAGTCGCATACCA -TGCGAGACCCGATTCTGATCAGCGCTTCTGCACACAGTATATCATCTATGAAGATTTGTGTAATTATCAC -CCAGAGAGGGTTCGGCAGGGCAAAGTCTGGAAGGCTCCTTCGAGCTGGTTTATAGACTGTGTGATGTCCT -TTGAGTTGCTTCCTCTTGACAGCTGAATATTATACCAGATGAACATTTCAAATTGAATTTGCACGGTTTG -TGAGAGCCCAGTCATTGTACTGTTTTTAATGTTCACATTTTTACAAATAGGTAGAGTCATTCATATTTGT -CTTTGAATCAAAAAAAAAAAAAAAGTCTAATGCCAGATTAGGAATTCATGTTATGTTTACCATTTAGAAG -CTGGGATTGCTTTTAAAGGTTTTTCTTTTTAAAATTGGCATGTTTTTGATTTATCATGTCTTTCTATTCA -GATTATTGGGTATCAAAGATTAATGAGGACACCAGAATCTTGGTTAAATAGACAAGTGGTATCATTACTG -TTTGAGTCTTTTAATATTCTCCATACCTGCCACCAGTGAAAAAACTTGCCTTTTTTTTTTTTTTTTTTTT -AGTAAACAGAATATTATCAAACAATTTATTTTGGCTTTATTGAAAAAAGAGTATTTGGTCTAAATGTGCC -ACCATAGGTGTTAAATTCTCCTATCTGCAATTGTCTTTATCCTATATTGTGTTCATTTCTTTTCTTAATA -ATTTACTTTGTTGTGTGTTTCTACACTTTCATCCCTGTTTTTTATCTTGTATATCATCAGGAAATTGTGA -TTTAATCATTAACATTGGTTTTTTTGTGTGTGTGGTAAAAATCAACACTAGGCTCATGGTACATATTTTT -ATTCTGTACATTTGCTTGTAACTATCAATTTGTAACTCTGTTTATCTACTACATGTGTATATATACTTAG -AGCATTTTCTCTAACACATTTTAATGTTAGTATTTTTTAAAAGGTCTGACCAGTCTAGCAAATTGTCAGT -CCAACGTCATTACTTTAAATTAAGAAGCAGTCTTCTTCTGGTAAACCTTGTTGGTATTTGTAAAATAATT -TTGAAGGTCTTAATTTCTTCCTTTGTAAAAGGAAAAGGTTTTTTTTAAAGTTTTTAGGTTGGCATGGAGG -CAGAAGTTGGTGATTACTTGATTTACAACAGATTTTTTCCAGATCATACAAAAGGCCATACAGTAAGTAT -AGAAGTAGGTATGGGGAGGGCTTACTAATATCAAATAGGCAAGGCCTTAGTGAGTGGGCAGGATACCACC -TGAGAGTGGCCAGATGTGGGGAGGTTACTCTGCTCTGGGTGCTCTCATTCATGAATCGACAAGGATACAT -TAGATTATTTTGAAACATTTTTTTAAGAAGCAGAATTCTTTAATAATTCCTTCCTAGACATTGAATATAC -TTATAAAATTAAAGACTTGGGGAAGGAGACACTGAGAGACTTGCCAGTTTGGTTCCTCATGAACAAAAGA -GGACAGTTTGATAACTACCAGAATAGAATATCCCTAGTTTTAAAATAGTGAGAATCTCTGAAGTTCATCA -ACATCTTAAGATGCACTTACTTGAAAGTTTGAGATTCTGTTTATCATTTGAAAACACATTTTGCTTTAAT -TCTTTCTTTGACATGTTGTTTTTTCATATCAAGAAATATATGAACAAAATAATAACCTTTTGACCCTGAC -CTTGCTGGGTGAATTAGCTCTGAAACACTCTCTACAACCAGTAATGCATTTGTCCCACATTTCATTCTGA -TAGAAAATGAACACCATAGCACCAAACAAAAATCCGAGGCGTTAGATAATGTCTGGATTAAATAATTTAA -GACTCTCTAGGATTTTGGTTGTCATTTTTTATTTATAACAGACTTTAAGTCACTTTCTGTTGCCTCATAG -GTCACATTTTAGACAGGTTTGTGTCTGTTCCTTGCATCTGAATTCCTGATTGTAAAGACACCTATGAGGT -CTCTTAGTTTTTGTCATTCATTTTCTTGGTTTATCACCCCTCCCTTCTTTTTGTTGTTTTTCCCTGACTG -TTAAGCAGTTTCATCTTTGCTTTTGTTAAATATTTGACAGCAGTTAGTTTGTGTTAAGCTCTTGAAACTT -GTGATTGTACTTTCTGTGTAGATATACATGTAATTATTTTTTATTTTTCAATCATAGATTCAAGCTTCCT -TCTTTTTTACCACAAATCATTAAAGTTATTTGTGTTTCCATATACCTGTGTCTTGTATAAAATTGGCTTA -TTCTGTGCTGTTGAATGAGGCTCAACATGACTTGGTGAGGAAGTCTATTAACTAACAAAAGCTTATCTTT -TTTAACATAATGCTTTTTAATTAATTTTGAATAAAAATATTTCTAAAGTGTACTAGATACTTTATTACCT -TAGATTATTCCGAATACAGTATAACTTTGATAGTTTGGAATAGTCATTAAGAAACAATTACACACTGATT -GCTTTGTGTCTCTAAAAGTGAGAGGCTGGTAGCTTTTCCACATTCTCATGGCTATTTTCTAGTTCTACTT -GAATTTATAACTGTTTCCCTTTTTCCTTGACAGCTGCCACTTTGTAGCTATTTTTCTGTCTCTGCTAATA -CTTTACCATATCTATCTCAATTGTTTTTTCTTTTGACTTGCTGAAAAATAGAAACCAGATGGGAAGTATA -TTAGCATTATGATTGAAATAAGGGTAAATGAGCAATGTGTGAAGGTTTTCACTGACTTCACCTAAAAGAT -AGTTTAGCTACTTGAATTTTAGTAAATAGAATTTTTCCTTTATTTCATCGGTCCCCCCACCTTTTTTTTT -TTTTGCACCTGCCTTGTAAATTTAATAGTTAAGTGACCTCTGCCTAGAGGATGATATTTGGGGAGGTTTG -ATGTTTCCTGTGGGAATAAGACGATTCACAGGTGAGAGTGGGGCCACATTAGCTGTTATTGTTTCCATGG -GTCAGTGTGGAAAATGCATTAATCATATTCTAAACGTTCATGGGCCTCATTACAGTCACAATTGTCTATT -CTGTTTCCTACCCTGAACACATTAAAATGGTAGGAACTAATGCTTGTCTTATTTAATTACTAAAAGCCAC -CATTTTCTTTGATAGATTGAGCTACAGATTGTAAACTTCATGTATTTCTTTATAAGTCAACCCTTTTCAA -AGATACGCACATCAAACTGAATGAATAAATAAATATTGAGAAGTTGAAAAAAAAAAAAAAAAA ->NM_001282549.1 -CCCCGCCCCTCTGGCGGCCCGCCGTCCCAGACGCGGGAAGAGCTTGGCCGGTTTCGAGTCGCTGGCCTGC -AGCTTCCCTGTGGTTTCCCGAGGCTTCCTTGCTTCCCGCTCTGCGAGGAGCCTTTCATCCGAAGGCGGGA -CGATGCCGGATAATCGGCAGCCGAGGAACCGGCAGCCGAGGATCCGCTCCGGGAACGAGCCTCGTTCCGC -GCCCGCCATGGAACCGGATGGTCGCGGTGCCTGGGCCCACAGTCGCGCCGCGCTCGACCGCCTGGAGAAG -CTGCTGCGCTGCTCGCGTTGTACTAACATTCTGAGAGAGCCTGTGTGTTTAGGAGGATGTGAGCACATCT -TCTGTAGTAATTGTGTAAGTGACTGCATTGGAACTGGATGTCCAGTGTGTTACACCCCGGCCTGGATACA -AGACTTGAAGATAAATAGACAACTGGACAGCATGATTCAACTTTGTAGTAAGCTTCGAAATTTGCTACAT -GACAATGAGCTGTCAGGGGTAAAAGCATGTCTACGAAGAAAAGTATGTGAACAGGAAGAAAAGTATGAAA -TTCCTGAAGGTCCACGCAGAAGCAGGCTCAACAGAGAACAGCTGTTGCCAAAGCTGTTTGATGGATGCTA -CTTCTATTTGTGGGGAACCTTCAAACACCATCCAAAGGACAACCTTATTAAGCTCGTCACTGCAGGTGGG -GGCCAGATCCTCAGTAGAAAGCCCAAGCCAGACAGTGACGTGACTCAGACCATCAATACAGTCGCATACC -ATGCGAGACCCGATTCTGATCAGCGCTTCTGCACACAGTATATCATCTATGAAGATTTGTGTAATTATCA -CCCAGAGAGGGTTCGGCAGGGCAAAGTCTGGAAGGCTCCTTCGAGCTGGTTTATAGACTGTGTGATGTCC -TTTGAGTTGCTTCCTCTTGACAGCTGAATATTATACCAGATGAACATTTCAAATTGAATTTGCACGGTTT -GTGAGAGCCCAGTCATTGTACTGTTTTTAATGTTCACATTTTTACAAATAGGTAGAGTCATTCATATTTG -TCTTTGAATCAAAAAAAAAAAAAAAGTCTAATGCCAGATTAGGAATTCATGTTATGTTTACCATTTAGAA -GCTGGGATTGCTTTTAAAGGTTTTTCTTTTTAAAATTGGCATGTTTTTGATTTATCATGTCTTTCTATTC -AGATTATTGGGTATCAAAGATTAATGAGGACACCAGAATCTTGGTTAAATAGACAAGTGGTATCATTACT -GTTTGAGTCTTTTAATATTCTCCATACCTGCCACCAGTGAAAAAACTTGCCTTTTTTTTTTTTTTTTTTT -TAGTAAACAGAATATTATCAAACAATTTATTTTGGCTTTATTGAAAAAAGAGTATTTGGTCTAAATGTGC -CACCATAGGTGTTAAATTCTCCTATCTGCAATTGTCTTTATCCTATATTGTGTTCATTTCTTTTCTTAAT -AATTTACTTTGTTGTGTGTTTCTACACTTTCATCCCTGTTTTTTATCTTGTATATCATCAGGAAATTGTG -ATTTAATCATTAACATTGGTTTTTTTGTGTGTGTGGTAAAAATCAACACTAGGCTCATGGTACATATTTT -TATTCTGTACATTTGCTTGTAACTATCAATTTGTAACTCTGTTTATCTACTACATGTGTATATATACTTA -GAGCATTTTCTCTAACACATTTTAATGTTAGTATTTTTTAAAAGGTCTGACCAGTCTAGCAAATTGTCAG -TCCAACGTCATTACTTTAAATTAAGAAGCAGTCTTCTTCTGGTAAACCTTGTTGGTATTTGTAAAATAAT -TTTGAAGGTCTTAATTTCTTCCTTTGTAAAAGGAAAAGGTTTTTTTTAAAGTTTTTAGGTTGGCATGGAG -GCAGAAGTTGGTGATTACTTGATTTACAACAGATTTTTTCCAGATCATACAAAAGGCCATACAGTAAGTA -TAGAAGTAGGTATGGGGAGGGCTTACTAATATCAAATAGGCAAGGCCTTAGTGAGTGGGCAGGATACCAC -CTGAGAGTGGCCAGATGTGGGGAGGTTACTCTGCTCTGGGTGCTCTCATTCATGAATCGACAAGGATACA -TTAGATTATTTTGAAACATTTTTTTAAGAAGCAGAATTCTTTAATAATTCCTTCCTAGACATTGAATATA -CTTATAAAATTAAAGACTTGGGGAAGGAGACACTGAGAGACTTGCCAGTTTGGTTCCTCATGAACAAAAG -AGGACAGTTTGATAACTACCAGAATAGAATATCCCTAGTTTTAAAATAGTGAGAATCTCTGAAGTTCATC -AACATCTTAAGATGCACTTACTTGAAAGTTTGAGATTCTGTTTATCATTTGAAAACACATTTTGCTTTAA -TTCTTTCTTTGACATGTTGTTTTTTCATATCAAGAAATATATGAACAAAATAATAACCTTTTGACCCTGA -CCTTGCTGGGTGAATTAGCTCTGAAACACTCTCTACAACCAGTAATGCATTTGTCCCACATTTCATTCTG -ATAGAAAATGAACACCATAGCACCAAACAAAAATCCGAGGCGTTAGATAATGTCTGGATTAAATAATTTA -AGACTCTCTAGGATTTTGGTTGTCATTTTTTATTTATAACAGACTTTAAGTCACTTTCTGTTGCCTCATA -GGTCACATTTTAGACAGGTTTGTGTCTGTTCCTTGCATCTGAATTCCTGATTGTAAAGACACCTATGAGG -TCTCTTAGTTTTTGTCATTCATTTTCTTGGTTTATCACCCCTCCCTTCTTTTTGTTGTTTTTCCCTGACT -GTTAAGCAGTTTCATCTTTGCTTTTGTTAAATATTTGACAGCAGTTAGTTTGTGTTAAGCTCTTGAAACT -TGTGATTGTACTTTCTGTGTAGATATACATGTAATTATTTTTTATTTTTCAATCATAGATTCAAGCTTCC -TTCTTTTTTACCACAAATCATTAAAGTTATTTGTGTTTCCATATACCTGTGTCTTGTATAAAATTGGCTT -ATTCTGTGCTGTTGAATGAGGCTCAACATGACTTGGTGAGGAAGTCTATTAACTAACAAAAGCTTATCTT -TTTTAACATAATGCTTTTTAATTAATTTTGAATAAAAATATTTCTAAAGTGTACTAGATACTTTATTACC -TTAGATTATTCCGAATACAGTATAACTTTGATAGTTTGGAATAGTCATTAAGAAACAATTACACACTGAT -TGCTTTGTGTCTCTAAAAGTGAGAGGCTGGTAGCTTTTCCACATTCTCATGGCTATTTTCTAGTTCTACT -TGAATTTATAACTGTTTCCCTTTTTCCTTGACAGCTGCCACTTTGTAGCTATTTTTCTGTCTCTGCTAAT -ACTTTACCATATCTATCTCAATTGTTTTTTCTTTTGACTTGCTGAAAAATAGAAACCAGATGGGAAGTAT -ATTAGCATTATGATTGAAATAAGGGTAAATGAGCAATGTGTGAAGGTTTTCACTGACTTCACCTAAAAGA -TAGTTTAGCTACTTGAATTTTAGTAAATAGAATTTTTCCTTTATTTCATCGGTCCCCCCACCTTTTTTTT -TTTTTGCACCTGCCTTGTAAATTTAATAGTTAAGTGACCTCTGCCTAGAGGATGATATTTGGGGAGGTTT -GATGTTTCCTGTGGGAATAAGACGATTCACAGGTGAGAGTGGGGCCACATTAGCTGTTATTGTTTCCATG -GGTCAGTGTGGAAAATGCATTAATCATATTCTAAACGTTCATGGGCCTCATTACAGTCACAATTGTCTAT -TCTGTTTCCTACCCTGAACACATTAAAATGGTAGGAACTAATGCTTGTCTTATTTAATTACTAAAAGCCA -CCATTTTCTTTGATAGATTGAGCTACAGATTGTAAACTTCATGTATTTCTTTATAAGTCAACCCTTTTCA -AAGATACGCACATCAAACTGAATGAATAAATAAATATTGAGAAGTTGAAAAAAAAAAAAAAAAA ->NM_001282548.1 -CCCCGCCCCTCTGGCGGCCCGCCGTCCCAGACGCGGGAAGAGCTTGGCCGGTTTCGAGTCGCTGGCCTGC -AGCTTCCCTGTGGTTTCCCGAGGCTTCCTTGCTTCCCGCTCTGCGAGGAGCCTTTCATCCGAAGGCGGGA -CGATGCCGGATAATCGGCAGCCGAGGAACCGGCAGCCGAGGATCCGCTCCGGGAACGAGCCTCGTTCCGC -GCCCGCCATGGAACCGGATGGTCGCGGTGCCTGGGCCCACAGTCGCGCCGCGCTCGACCGCCTGGAGAAG -CTGCTGCGCTGCTCGCGTTGTAATATATTTGGTCTGCGGCCTGTCGATTATACAGATGATGAAAGTATGA -AATCGCTATTGCTGCTACCAGAGAAGAATGAATCATCCTCAGCTAGCCACTGCTCAGTAATGAACACTGG -GCAGCGTAGGGATGGACCTCTTGTACTTATAGGCAGTGGGCTGTCTTCAGAACAACAGAAAATGCTCAGT -GAGCTTGCAGTAATTCTTAAGGCTAAAAAATATACTGAGTTTGACAGTACAGTAACTCATGTTGTTGTTC -CTGGTGATGCAGTTCAAAGTACCTTGAAGTGTATGCTTGGGATTCTCAATGGATGCTGGATTCTAAAATT -TGAATGGGTAAAAGCATGTCTACGAAGAAAAGTATGTGAACAGGAAGAAAAGTATGAAATTCCTGAAGGT -CCACGCAGAAGCAGGCTCAACAGAGAACAGCTGTTGCCAAAGCTGTTTGATGGATGCTACTTCTATTTGT -GGGGAACCTTCAAACACCATCCAAAGGACAACCTTATTAAGCTCGTCACTGCAGGTGGGGGCCAGATCCT -CAGTAGAAAGCCCAAGCCAGACAGTGACGTGACTCAGACCATCAATACAGTCGCATACCATGCGAGACCC -GATTCTGATCAGCGCTTCTGCACACAGTATATCATCTATGAAGATTTGTGTAATTATCACCCAGAGAGGG -TTCGGCAGGGCAAAGTCTGGAAGGCTCCTTCGAGCTGGTTTATAGACTGTGTGATGTCCTTTGAGTTGCT -TCCTCTTGACAGCTGAATATTATACCAGATGAACATTTCAAATTGAATTTGCACGGTTTGTGAGAGCCCA -GTCATTGTACTGTTTTTAATGTTCACATTTTTACAAATAGGTAGAGTCATTCATATTTGTCTTTGAATCA -AAAAAAAAAAAAAAGTCTAATGCCAGATTAGGAATTCATGTTATGTTTACCATTTAGAAGCTGGGATTGC -TTTTAAAGGTTTTTCTTTTTAAAATTGGCATGTTTTTGATTTATCATGTCTTTCTATTCAGATTATTGGG -TATCAAAGATTAATGAGGACACCAGAATCTTGGTTAAATAGACAAGTGGTATCATTACTGTTTGAGTCTT -TTAATATTCTCCATACCTGCCACCAGTGAAAAAACTTGCCTTTTTTTTTTTTTTTTTTTTAGTAAACAGA -ATATTATCAAACAATTTATTTTGGCTTTATTGAAAAAAGAGTATTTGGTCTAAATGTGCCACCATAGGTG -TTAAATTCTCCTATCTGCAATTGTCTTTATCCTATATTGTGTTCATTTCTTTTCTTAATAATTTACTTTG -TTGTGTGTTTCTACACTTTCATCCCTGTTTTTTATCTTGTATATCATCAGGAAATTGTGATTTAATCATT -AACATTGGTTTTTTTGTGTGTGTGGTAAAAATCAACACTAGGCTCATGGTACATATTTTTATTCTGTACA -TTTGCTTGTAACTATCAATTTGTAACTCTGTTTATCTACTACATGTGTATATATACTTAGAGCATTTTCT -CTAACACATTTTAATGTTAGTATTTTTTAAAAGGTCTGACCAGTCTAGCAAATTGTCAGTCCAACGTCAT -TACTTTAAATTAAGAAGCAGTCTTCTTCTGGTAAACCTTGTTGGTATTTGTAAAATAATTTTGAAGGTCT -TAATTTCTTCCTTTGTAAAAGGAAAAGGTTTTTTTTAAAGTTTTTAGGTTGGCATGGAGGCAGAAGTTGG -TGATTACTTGATTTACAACAGATTTTTTCCAGATCATACAAAAGGCCATACAGTAAGTATAGAAGTAGGT -ATGGGGAGGGCTTACTAATATCAAATAGGCAAGGCCTTAGTGAGTGGGCAGGATACCACCTGAGAGTGGC -CAGATGTGGGGAGGTTACTCTGCTCTGGGTGCTCTCATTCATGAATCGACAAGGATACATTAGATTATTT -TGAAACATTTTTTTAAGAAGCAGAATTCTTTAATAATTCCTTCCTAGACATTGAATATACTTATAAAATT -AAAGACTTGGGGAAGGAGACACTGAGAGACTTGCCAGTTTGGTTCCTCATGAACAAAAGAGGACAGTTTG -ATAACTACCAGAATAGAATATCCCTAGTTTTAAAATAGTGAGAATCTCTGAAGTTCATCAACATCTTAAG -ATGCACTTACTTGAAAGTTTGAGATTCTGTTTATCATTTGAAAACACATTTTGCTTTAATTCTTTCTTTG -ACATGTTGTTTTTTCATATCAAGAAATATATGAACAAAATAATAACCTTTTGACCCTGACCTTGCTGGGT -GAATTAGCTCTGAAACACTCTCTACAACCAGTAATGCATTTGTCCCACATTTCATTCTGATAGAAAATGA -ACACCATAGCACCAAACAAAAATCCGAGGCGTTAGATAATGTCTGGATTAAATAATTTAAGACTCTCTAG -GATTTTGGTTGTCATTTTTTATTTATAACAGACTTTAAGTCACTTTCTGTTGCCTCATAGGTCACATTTT -AGACAGGTTTGTGTCTGTTCCTTGCATCTGAATTCCTGATTGTAAAGACACCTATGAGGTCTCTTAGTTT -TTGTCATTCATTTTCTTGGTTTATCACCCCTCCCTTCTTTTTGTTGTTTTTCCCTGACTGTTAAGCAGTT -TCATCTTTGCTTTTGTTAAATATTTGACAGCAGTTAGTTTGTGTTAAGCTCTTGAAACTTGTGATTGTAC -TTTCTGTGTAGATATACATGTAATTATTTTTTATTTTTCAATCATAGATTCAAGCTTCCTTCTTTTTTAC -CACAAATCATTAAAGTTATTTGTGTTTCCATATACCTGTGTCTTGTATAAAATTGGCTTATTCTGTGCTG -TTGAATGAGGCTCAACATGACTTGGTGAGGAAGTCTATTAACTAACAAAAGCTTATCTTTTTTAACATAA -TGCTTTTTAATTAATTTTGAATAAAAATATTTCTAAAGTGTACTAGATACTTTATTACCTTAGATTATTC -CGAATACAGTATAACTTTGATAGTTTGGAATAGTCATTAAGAAACAATTACACACTGATTGCTTTGTGTC -TCTAAAAGTGAGAGGCTGGTAGCTTTTCCACATTCTCATGGCTATTTTCTAGTTCTACTTGAATTTATAA -CTGTTTCCCTTTTTCCTTGACAGCTGCCACTTTGTAGCTATTTTTCTGTCTCTGCTAATACTTTACCATA -TCTATCTCAATTGTTTTTTCTTTTGACTTGCTGAAAAATAGAAACCAGATGGGAAGTATATTAGCATTAT -GATTGAAATAAGGGTAAATGAGCAATGTGTGAAGGTTTTCACTGACTTCACCTAAAAGATAGTTTAGCTA -CTTGAATTTTAGTAAATAGAATTTTTCCTTTATTTCATCGGTCCCCCCACCTTTTTTTTTTTTTGCACCT -GCCTTGTAAATTTAATAGTTAAGTGACCTCTGCCTAGAGGATGATATTTGGGGAGGTTTGATGTTTCCTG -TGGGAATAAGACGATTCACAGGTGAGAGTGGGGCCACATTAGCTGTTATTGTTTCCATGGGTCAGTGTGG -AAAATGCATTAATCATATTCTAAACGTTCATGGGCCTCATTACAGTCACAATTGTCTATTCTGTTTCCTA -CCCTGAACACATTAAAATGGTAGGAACTAATGCTTGTCTTATTTAATTACTAAAAGCCACCATTTTCTTT -GATAGATTGAGCTACAGATTGTAAACTTCATGTATTTCTTTATAAGTCAACCCTTTTCAAAGATACGCAC -ATCAAACTGAATGAATAAATAAATATTGAGAAGTTGAAAAAAAAAAAAAAAAA ->XM_005249645.1 -GTGCTGGGACTACAGAGTCCAGTGTCGTGCTGCTGCAGGAGCACCCCTGCCTGGTGGAGCTGCTGTCCCA -TGTGCTGAAAGTCCAGGACCTGAGTTCTGGGGTCCTCTCCTTCTCACTGCGCCTGGCAGGAACCTTCGCA -GCCCAGGAAAACTGCTTCCAGTATCTTCAGCAGGGGGAGTTACTACCAGGGCTCTTTGGGGAGCCAGGAC -CCCTCGGCCGAGCAACCTGGGCCGTCCCCACCGTGCGCAGCGGCTGGATCCAGGGCCTGCGCTCCCTGGC -ACAGCACCCCAGCGCCCTGCGCTTCCTGGCCGACCATGGTGCGGTCGACACCATCTTCTCCCTGCAGGGA -GACTCCAGCCTGTTTGTGGCCTCGGCGGCCAGTCAGCTCCTGGTGCACGTCCTGGCTTTGTCCATGCGAG -GTGGAGCCGAGGGGCAGCCCTGCCTGCCGGGGGGTGACTGGCCCGCGTGTGCCCAGAAGATCATGGATCA -CGTTGAAGAGTCCTTGTGCTCCGCGGCCACCCCCAAGGTCACTCAGGCCCTGAACGTCCTGACCACGACC -TTCGGGCGCTGCCAGAGCCCCTGGACGGAAGCCCTGTGGGTGCGGCTGAGTCCCCGCGTGGCCTGTCTGC -TGGAGAGAGACCCCATCCCCGCCGCACACTCGTTCGTGGACCTGCTTCTCTGTGTGGCTCGTTCTCCCGT -GTTCAGTTCTTCCGACGGCAGCCTGTGGGAGACAGTGGCGCGGGCTCTGAGCTGCCTGGGTCCCACCCAC -ATGGGACCCCTGGCTTTGGGGATCCTGAAGCTCGAGCACTGTCCACAGGCACTGAGGACCCAGGCCTTCC -AGGTCCTTCTCCAGCCCCTGGCCTGTGTCCTGAAGGCCACGGTTCAGGCCCCCGGACCCCCAGGCTTGCT -GGACGGGACGGCAGACGATGCCACGACGGTGGACACACTCCTGGCCTCCAAGTCGTCCTGCGCCGGCCTC -CTGTGCCGCACCCTGGCTCACCTGGAGGAGCTGCAGCCGCTGCCCCAGCGCCCTTCACCGTGGCCCCAGG -CGTCTCTACTGGGGGCTACAGTGACTGTCCTGCGGCTCTGTGACGGCTCGGCTGCCCCTGCCTCCAGTGT -GGGGGGCCACCTCTGTGGGACCCTGGCGGGCTGCGTCCGGGTCCAGCGAGCAGCCCTCGACTTCCTGGGG -ACGCTGTCACAGGGGACAGGCCCCCAGGAGCTGGTGACGCAGGCGCTTGCTGTCCTCCTGGAGTGCCTCG -AGAGCCCCGGCTCCAGCCCCACGGTTCTGAAGAAGGCCTTCCAGGCCACGCTCAGGTGGCTCCTGAGCTC -ACCCAAGACCCCCGGCTGCTCTGATCTCGGCCCCCTCATCCCGCAGTTCCTCAGAGAGCTGTTCCCTGTG -CTGCAGAAACGCCTGTGCCACCCCTGCTGGGAGGTGAGGGACTCCGCCCTCGAGTTCCTGACCCAGCTGA -GCAGGCACTGGGGAGGACAGGCTGACTTCAGATGCGCACTCTTGGCTTCAGAGGTGCCTCAGCTGGCCCT -GCAGCTCCTCCAGGACCCTGAGAGTTATGTCCGAGCGAGTGCAGTGACCGCCATGGGGCAGCTGTCCAGC -CAGGGCCTGCACGCCCCCACCAGCCCTGAGCATGCAGAGGCCCGGCAGATGGGTAAACTGAGGATTGGAG -GGCCGTGTGCTCACTGCGCAGCATGGGAAGGTGTCAGAGCGGGCTGTGGCCCTAGACTGCATGTCCGGGG -CCAGCCCCCATCATGTACCGGAGTCCTGTTGCGGGAGCCTCGCTCCTGCCACCCCACCAACCATCCGCAC -TTGCTCCCTGTCCCCCAGAGCCTGTTCCTGGAGCTCCTGCACATCCTCTCCGTAGACTCGGAGGGCTTCC -CACGGCGGGCGGTCATGCAAGTCTTCACTGAGTGGCTGCGGGACGGCCACGCCGACGCGGCCCAGGACAC -GGAGCAGTTCGTGGCCACTGTGCTGCAGGCGGCGAGCCGAGACCTGGACTGGGAGGTCCGCGCCCAGGGC -CTGGAGCTGGCCCTCGTGTTCCTGGGCCAGACTTTGGGGCCGCCGCGTACCCACTGCCCCTATGCCGTGG -CCCTACCCGAGGTGGCCCCAGCCCAGCCACTCACCGAGGCACTGAGGGCTCTCTGCCACGTGGGGCTCTT -TGACTTCGCCTTTTGTGCCTTGTTTGACTGCGACCGCCCTGTGGCGCAGAAGTCTTGTGACCTCCTTCTC -TTCCTGAGGGACAAGATTGCTTCCTACAGCAGCCTGCGGGAGGCCAGGGGCAGCCCCAACACTGCCTCCG -CAGAGGCCACCCTGCCGAGGTGGCGGGCGGGTGAGCAGGCCCAGCCCCCAGGGGACCAGGAGCCTGAGGC -TGTGCTGGCCATGCTCAGGTCCCTAGACCTGGAGGGCCTGCGGAGCACGCTGGCCGAGAGCAGCGACCAC -GTGGAAAAGAGTCCCCAGTCCCTCCTGCAGGACATGCTGGCCACGGGAGGCTTCCTGCAGGGGGACGAGG -CCGACTGCTACTGAGCAGAACCAGAGTCTGCCACTGGGGCTCAGGACCAAGGGAGGCAGCACCATGTCCT -TCTGTGGGACACTGCCAGCCCCAGGGCTCCAGCCCAGCCCGGTGGATCCTCTGGGGAAGCCAGGACCAGG -AGAGAAGCAAGGTCAAGAAATCCCACAGTTTGATGTATTAAAGAAATGACTTATTTCTACTCAAAATAAA -TGGCATTGAAGTCTTTCTTTAA ->XM_005249644.1 -ACCGGATGCTCGGCATGAACCACTAGGCGCCTGGCGGGGGTGATCTGTCGGAGCGACCGGCTTGGCGCCT -GCCTGTCCCCAGCCCCTCTCAGCTTGAACTCCTTCCTTCAAGTCTGGGCCCTCGAGGCTTCCAGAGCGGC -CTCCAGGGGTGCAGTCTCAGTTCCCCACGCCAGCCGTCTCCGTCCTCCGCCTCCTCCGGGCCTGGCAGGT -GGCACTGTCCGGAGGCGGAGCCTTGGGCGAGGGGTGGTTGCGGCGGAGGACGCAACCGAGCGGGCCTGCG -GCCTCACCATGGACCCAGAATGCGCCCAGCTGCTCCCGGCTCTCTGTGCTGTTCTGGTAGATCCCAGGCA -GCCGGTGGCAGATGACACCTGTTTGGAGAAGCTCCTGGACTGGTTTAAAACGGTCACTGAAGGAGAGTCC -AGTGTCGTGCTGCTGCAGGAGCACCCCTGCCTGGTGGAGCTGCTGTCCCATGTGCTGAAAGTCCAGGACC -TGAGTTCTGGGGTCCTCTCCTTCTCACTGCGCCTGGCAGGAACCTTCGCAGCCCAGGAAAACTGCTTCCA -GTATCTTCAGGTGCGGTCGACACCATCTTCTCCCTGCAGGGAGACTCCAGCCTGTTTGTGGCCTCGGCGG -CCAGTCAGCTCCTGGTGCACGTCCTGGCTTTGTCCATGCGAGGTGGAGCCGAGGGGCAGCCCTGCCTGCC -GGGGGGTGACTGGCCCGCGTGTGCCCAGAAGATCATGGATCACGTTGAAGAGTCCTTGTGCTCCGCGGCC -ACCCCCAAGGTCACTCAGGCCCTGAACGTCCTGACCACGACCTTCGGGCGCTGCCAGAGCCCCTGGACGG -AAGCCCTGTGGGTGCGGCTGAGTCCCCGCGTGGCCTGTCTGCTGGAGAGAGACCCCATCCCCGCCGCACA -CTCGTTCGTGGACCTGCTTCTCTGTGTGGCTCGTTCTCCCGTGTTCAGTTCTTCCGACGGCAGCCTGTGG -GAGACAGTGGCGCGGGCTCTGAGCTGCCTGGGTCCCACCCACATGGGACCCCTGGCTTTGGGGATCCTGA -AGCTCGAGCACTGTCCACAGGCACTGAGGACCCAGGCCTTCCAGGTCCTTCTCCAGCCCCTGGCCTGTGT -CCTGAAGGCCACGGTTCAGGCCCCCGGACCCCCAGGCTTGCTGGACGGGACGGCAGACGATGCCACGACG -GTGGACACACTCCTGGCCTCCAAGTCGTCCTGCGCCGGCCTCCTGTGCCGCACCCTGGCTCACCTGGAGG -AGCTGCAGCCGCTGCCCCAGCGCCCTTCACCGTGGCCCCAGGCGTCTCTACTGGGGGCTACAGTGACTGT -CCTGCGGCTCTGTGACGGCTCGGCTGCCCCTGCCTCCAGTGTGGGGGGCCACCTCTGTGGGACCCTGGCG -GGCTGCGTCCGGGTCCAGCGAGCAGCCCTCGACTTCCTGGGGACGCTGTCACAGGGGACAGGCCCCCAGG -AGCTGGTGACGCAGGCGCTTGCTGTCCTCCTGGAGTGCCTCGAGAGCCCCGGCTCCAGCCCCACGGTTCT -GAAGAAGGCCTTCCAGGCCACGCTCAGGTGGCTCCTGAGCTCACCCAAGACCCCCGGCTGCTCTGATCTC -GGCCCCCTCATCCCGCAGTTCCTCAGAGAGCTGTTCCCTGTGCTGCAGAAACGCCTGTGCCACCCCTGCT -GGGAGGTGAGGGACTCCGCCCTCGAGTTCCTGACCCAGCTGAGCAGGCACTGGGGAGGACAGGCTGACTT -CAGATGCGCACTCTTGGCTTCAGAGGTGCCTCAGCTGGCCCTGCAGCTCCTCCAGGACCCTGAGAGTTAT -GTCCGAGCGAGTGCAGTGACCGCCATGGGGCAGCTGTCCAGCCAGGGCCTGCACGCCCCCACCAGCCCTG -AGCATGCAGAGGCCCGGCAGATGGGTAAACTGAGGATTGGAGGGCCGTGTGCTCACTGCGCAGCATGGGA -AGGTGTCAGAGCGGGCTGTGGCCCTAGACTGCATGTCCGGGGCCAGCCCCCATCATGTACCGGAGTCCTG -TTGCGGGAGCCTCGCTCCTGCCACCCCACCAACCATCCGCACTTGCTCCCTGTCCCCCAGAGCCTGTTCC -TGGAGCTCCTGCACATCCTCTCCGTAGACTCGGAGGGCTTCCCACGGCGGGCGGTCATGCAAGTCTTCAC -TGAGTGGCTGCGGGACGGCCACGCCGACGCGGCCCAGGACACGGAGCAGTTCGTGGCCACTGTGCTGCAG -GCGGCGAGCCGAGACCTGGACTGGGAGGTCCGCGCCCAGGGCCTGGAGCTGGCCCTCGTGTTCCTGGGCC -AGACTTTGGGGCCGCCGCGTACCCACTGCCCCTATGCCGTGGCCCTACCCGAGGTGGCCCCAGCCCAGCC -ACTCACCGAGGCACTGAGGGCTCTCTGCCACGTGGGGCTCTTTGACTTCGCCTTTTGTGCCTTGTTTGAC -TGCGACCGCCCTGTGGCGCAGAAGTCTTGTGACCTCCTTCTCTTCCTGAGGGACAAGATTGCTTCCTACA -GCAGCCTGCGGGAGGCCAGGGGCAGCCCCAACACTGCCTCCGCAGAGGCCACCCTGCCGAGGTGGCGGGC -GGGTGAGCAGGCCCAGCCCCCAGGGGACCAGGAGCCTGAGGCTGTGCTGGCCATGCTCAGGTCCCTAGAC -CTGGAGGGCCTGCGGAGCACGCTGGCCGAGAGCAGCGACCACGTGGAAAAGAGTCCCCAGTCCCTCCTGC -AGGACATGCTGGCCACGGGAGGCTTCCTGCAGGGGGACGAGGCCGACTGCTACTGAGCAGAACCAGAGTC -TGCCACTGGGGCTCAGGACCAAGGGAGGCAGCACCATGTCCTTCTGTGGGACACTGCCAGCCCCAGGGCT -CCAGCCCAGCCCGGTGGATCCTCTGGGGAAGCCAGGACCAGGAGAGAAGCAAGGTCAAGAAATCCCACAG -TTTGATGTATTAAAGAAATGACTTATTTCTACTCAAAATAAATGGCATTGAAGTCTTTCTTTAA ->XM_005249643.1 -TCTGTCGGAGCGACCGGCTTGGCGCCTGCCTGTCCCCAGCCCCTCTCAGCTTGAACTCCTTCCTTCAAGT -CTGGGCCCTCGAGGCTTCCAGAGCGGCCTCCAGGGGTGCAGTCTCAGTTCCCCACGCCAGCCGTCTCCGT -CCTCCGCCTCCTCCGGGCCTGGCAGGTGGCACTGTCCGGAGGCGGAGCCTTGGGCGAGGGGTGGTTGCGG -CGGAGGACGCAACCGAGCGGGCCTGCGGCCTCACCATGGACCCAGAATGCGCCCAGCTGCTCCCGGCTCT -CTGTGCTGTTCTGGTAGATCCCAGGCAGCCGGTGGCAGATGACACCTGTTTGGAGAAGCTCCTGGACTGG -TTTAAAACGGTCACTGAAGGAGAGTCCAGTGTCGTGCTGCTGCAGGAGCACCCCTGCCTGGTGGAGCTGC -TGTCCCATGTGCTGAAAGTCCAGGACCTGAGTTCTGGGGTCCTCTCCTTCTCACTGCGCCTGGCAGGAAC -CTTCGCAGCCCAGGAAAACTGCTTCCAGTATCTTCAGCAGGGGGAGTTACTACCAGGGCTCTTTGGGGAG -CCAGGACCCCTCGGCCGAGCAACCTGGGCCGTCCCCACCGTGCGCAGCGGCTGGATCCAGGGCCTGCGCT -CCCTGGCACAGCACCCCAGCGCCCTGCGCTTCCTGGCCGACCATGGTGCGGTCGACACCATCTTCTCCCT -GCAGGGAGACTCCAGCCTGTTTGTGGCCTCGGCGGCCAGTCAGCTCCTGGTGCACGTCCTGGCTTTGTCC -ATGCGAGGTGGAGCCGAGGGGCAGCCCTGCCTGCCGGGGGGTGACTGGCCCGCGTGTGCCCAGAAGATCA -TGGATCACGTTGAAGAGTCCTTGTGCTCCGCGGCCACCCCCAAGGTCACTCAGGCCCTGAACGTCCTGAC -CACGACCTTCGGGCGCTGCCAGAGCCCCTGGACGGAAGCCCTGTGGGTGCGGCTGAGTCCCCGCGTGGCC -TGTCTGCTGGAGAGAGACCCCATCCCCGCCGCACACTCGTTCGTGGACCTGCTTCTCTGTGTGGCTCGTT -CTCCCGTGTTCAGTTCTTCCGACGGCAGCCTGTGGGAGACAGTGGCGCGGGCTCTGAGCTGCCTGGGTCC -CACCCACATGGGACCCCTGGCTTTGGGGATCCTGAAGCTCGAGCACTGTCCACAGGCACTGAGGACCCAG -GCCTTCCAGGTCCTTCTCCAGCCCCTGGCCTGTGTCCTGAAGGCCACGGTTCAGGCCCCCGGACCCCCAG -GCTTGCTGGACGGGACGGCAGACGATGCCACGACGGTGGACACACTCCTGGCCTCCAAGTCGTCCTGCGC -CGGCCTCCTGTGCCGCACCCTGGCTCACCTGGAGGAGCTGCAGCCGCTGCCCCAGCGCCCTTCACCGTGG -CCCCAGGCGTCTCTACTGGGGGCTACAGTGACTGTCCTGCGGCTCTGTGACGGCTCGGCTGCCCCTGCCT -CCAGTGTGGGGGGCCACCTCTGTGGGACCCTGGCGGGCTGCGTCCGGGTCCAGCGAGCAGCCCTCGACTT -CCTGGGGACGCTGTCACAGGGGACAGGCCCCCAGGAGCTGGTGACGCAGGCGCTTGCTGTCCTCCTGGAG -TGCCTCGAGAGCCCCGGCTCCAGCCCCACGGTTCTGAAGAAGGCCTTCCAGGCCACGCTCAGGTGGCTCC -TGAGCTCACCCAAGACCCCCGGCTGCTCTGATCTCGGCCCCCTCATCCCGCAGTTCCTCAGAGAGCTGTT -CCCTGTGCTGCAGAAACGCCTGTGCCACCCCTGCTGGGAGGTGAGGGACTCCGCCCTCGAGTTCCTGACC -CAGCTGAGCAGGCACTGGGGAGGACAGGCTGACTTCAGATGCGCACTCTTGGCTTCAGAGGTGCCTCAGC -TGGCCCTGCAGCTCCTCCAGGACCCTGAGAGTTATGTCCGAGCGAGTGCAGTGACCGCCATGGGGCAGCT -GTCCAGCCAGGGCCTGCACGCCCCCACCAGCCCTGAGCATGCAGAGGCCCGGCAGATGGGTAAACTGAGG -ATTGGAGGGCCGTGTGCTCACTGCGCAGCATGGGAAGGTGTCAGAGCGGGCTGTGGCCCTAGACTGCATG -TCCGGGGCCAGCCCCCATCATGTACCGGAGTCCTGTTGCGGGAGCCTCGCTCCTGCCACCCCACCAACCA -TCCGCACTTGCTCCCTGTCCCCCAGAGCCTGTTCCTGGAGCTCCTGCACATCCTCTCCGTAGACTCGGAG -GGCTTCCCACGGCGGGCGGTCATGCAAGTCTTCACTGAGTGGCTGCGGGACGGCCACGCCGACGCGGCCC -AGGACACGGAGCAGTTCGTGGCCACTGTGCTGCAGGCGGCGAGCCGAGACCTGGACTGGGAGGTCCGCGC -CCAGGGCCTGGAGCTGGCCCTCGTGTTCCTGGGCCAGACTTTGGGGCCGCCGCGTACCCACTGCCCCTAT -GCCGTGGCCCTACCCGAGGTGGCCCCAGCCCAGCCACTCACCGAGGCACTGAGGGCTCTCTGCCACGTGG -GGCTCTTTGACTTCGCCTTTTGTGCCTTGTTTGACTGCGACCGCCCTGTGGCGCAGAAGTCTTGTGACCT -CCTTCTCTTCCTGAGGGACAAGATTGCTTCCTACAGCAGCCTGCGGGAGGCCAGGGGCAGCCCCAACACT -GCCTCCGCAGAGGCCACCCTGCCGAGGTGGCGGGCGGGTGAGCAGGCCCAGCCCCCAGGGGACCAGGAGC -CTGAGGCTGTGCTGGCCATGCTCAGGTCCCTAGACCTGGAGGGCCTGCGGAGCACGCTGGCCGAGAGCAG -CGACCACGTGGAAAAGAGTCCCCAGTCCCTCCTGCAGGACATGCTGGCCACGGGAGGCTTCCTGCAGGGG -GACGAGGCCGACTGCTACTGAGCAGAACCAGAGTCTGCCACTGGGGCTCAGGACCAAGGGAGGCAGCACC -ATGTCCTTCTGTGGGACACTGCCAGCCCCAGGGCTCCAGCCCAGCCCGGTGGATCCTCTGGGGAAGCCAG -GACCAGGAGAGAAGCAAGGTCAAGAAATCCCACAGTTTGATGTATTAAAGAAATGACTTATTTCTACTCA -AAATAAATGGCATTGAAGTCTTTCTTTAA ->XM_005249642.1 -GCGACCGGCTTGGCGCCTGCCTGTCCCCAGCCCCTCTCAGCTTGAACTCCTTCCTTCAAGTCTGGGCCCT -CGAGGCTTCCAGAGCGGCCTCCAGGGGTGCAGTCTCAGTTCCCCACGCCAGCCGTCTCCGTCCTCCGCCT -CCTCCGGGCCTGGCAGGTGGCACTGTCCGGAGGCGGAGCCTTGGGCGAGGGGTGGTTGCGGCGGAGGACG -CAACCGAGCGGGCCTGCGGCCTCACCATGGACCCAGAATGCGCCCAGCTGCTCCCGGCTCTCTGTGCTGT -TCTGGTAGATCCCAGGCAGCCGGTGGCAGATGACACCTGTTTGGAGAAGCTCCTGGACTGGTTTAAAACG -GTCACTGAAGGAGAGTCCAGTGTCGTGCTGCTGCAGGAGCACCCCTGCCTGGTGGAGCTGCTGTCCCATG -TGCTGAAAGTCCAGGACCTGAGTTCTGGGGTCCTCTCCTTCTCACTGCGCCTGGCAGGAACCTTCGCAGC -CCAGGAAAACTGCTTCCAGTATCTTCAGGGGGAGTTACTACCAGGGCTCTTTGGGGAGCCAGGACCCCTC -GGCCGAGCAACCTGGGCCGTCCCCACCGTGCGCAGCGGCTGGATCCAGGGCCTGCGCTCCCTGGCACAGC -ACCCCAGCGCCCTGCGCTTCCTGGCCGACCATGGTGCGGTCGACACCATCTTCTCCCTGCAGGGAGACTC -CAGCCTGTTTGTGGCCTCGGCGGCCAGTCAGCTCCTGGTGCACGTCCTGGCTTTGTCCATGCGAGGTGGA -GCCGAGGGGCAGCCCTGCCTGCCGGGGGGTGACTGGCCCGCGTGTGCCCAGAAGATCATGGATCACGTTG -AAGAGTCCTTGTGCTCCGCGGCCACCCCCAAGGTCACTCAGGCCCTGAACGTCCTGACCACGACCTTCGG -GCGCTGCCAGAGCCCCTGGACGGAAGCCCTGTGGGTGCGGCTGAGTCCCCGCGTGGCCTGTCTGCTGGAG -AGAGACCCCATCCCCGCCGCACACTCGTTCGTGGACCTGCTTCTCTGTGTGGCTCGTTCTCCCGTGTTCA -GTTCTTCCGACGGCAGCCTGTGGGAGACAGTGGCGCGGGCTCTGAGCTGCCTGGGTCCCACCCACATGGG -ACCCCTGGCTTTGGGGATCCTGAAGCTCGAGCACTGTCCACAGGCACTGAGGACCCAGGCCTTCCAGGTC -CTTCTCCAGCCCCTGGCCTGTGTCCTGAAGGCCACGGTTCAGGCCCCCGGACCCCCAGGCTTGCTGGACG -GGACGGCAGACGATGCCACGACGGTGGACACACTCCTGGCCTCCAAGTCGTCCTGCGCCGGCCTCCTGTG -CCGCACCCTGGCTCACCTGGAGGAGCTGCAGCCGCTGCCCCAGCGCCCTTCACCGTGGCCCCAGGCGTCT -CTACTGGGGGCTACAGTGACTGTCCTGCGGCTCTGTGACGGCTCGGCTGCCCCTGCCTCCAGTGTGGGGG -GCCACCTCTGTGGGACCCTGGCGGGCTGCGTCCGGGTCCAGCGAGCAGCCCTCGACTTCCTGGGGACGCT -GTCACAGGGGACAGGCCCCCAGGAGCTGGTGACGCAGGCGCTTGCTGTCCTCCTGGAGTGCCTCGAGAGC -CCCGGCTCCAGCCCCACGGTTCTGAAGAAGGCCTTCCAGGCCACGCTCAGGTGGCTCCTGAGCTCACCCA -AGACCCCCGGCTGCTCTGATCTCGGCCCCCTCATCCCGCAGTTCCTCAGAGAGCTGTTCCCTGTGCTGCA -GAAACGCCTGTGCCACCCCTGCTGGGAGGTGAGGGACTCCGCCCTCGAGTTCCTGACCCAGCTGAGCAGG -CACTGGGGAGGACAGGCTGACTTCAGATGCGCACTCTTGGCTTCAGAGGTGCCTCAGCTGGCCCTGCAGC -TCCTCCAGGACCCTGAGAGTTATGTCCGAGCGAGTGCAGTGACCGCCATGGGGCAGCTGTCCAGCCAGGG -CCTGCACGCCCCCACCAGCCCTGAGCATGCAGAGGCCCGGCAGATGGGTAAACTGAGGATTGGAGGGCCG -TGTGCTCACTGCGCAGCATGGGAAGGTGTCAGAGCGGGCTGTGGCCCTAGACTGCATGTCCGGGGCCAGC -CCCCATCATGTACCGGAGTCCTGTTGCGGGAGCCTCGCTCCTGCCACCCCACCAACCATCCGCACTTGCT -CCCTGTCCCCCAGAGCCTGTTCCTGGAGCTCCTGCACATCCTCTCCGTAGACTCGGAGGGCTTCCCACGG -CGGGCGGTCATGCAAGTCTTCACTGAGTGGCTGCGGGACGGCCACGCCGACGCGGCCCAGGACACGGAGC -AGTTCGTGGCCACTGTGCTGCAGGCGGCGAGCCGAGACCTGGACTGGGAGGTCCGCGCCCAGGGCCTGGA -GCTGGCCCTCGTGTTCCTGGGCCAGACTTTGGGGCCGCCGCGTACCCACTGCCCCTATGCCGTGGCCCTA -CCCGAGGTGGCCCCAGCCCAGCCACTCACCGAGGCACTGAGGGCTCTCTGCCACGTGGGGCTCTTTGACT -TCGCCTTTTGTGCCTTGTTTGACTGCGACCGCCCTGTGGCGCAGAAGTCTTGTGACCTCCTTCTCTTCCT -GAGGGACAAGATTGCTTCCTACAGCAGCCTGCGGGAGGCCAGGGGCAGCCCCAACACTGCCTCCGCAGAG -GCCACCCTGCCGAGGTGGCGGGCGGGTGAGCAGGCCCAGCCCCCAGGGGACCAGGAGCCTGAGGCTGTGC -TGGCCATGCTCAGGTCCCTAGACCTGGAGGGCCTGCGGAGCACGCTGGCCGAGAGCAGCGACCACGTGGA -AAAGAGTCCCCAGTCCCTCCTGCAGGACATGCTGGCCACGGGAGGCTTCCTGCAGGGGGACGAGGCCGAC -TGCTACTGAGCAGAACCAGAGTCTGCCACTGGGGCTCAGGACCAAGGGAGGCAGCACCATGTCCTTCTGT -GGGACACTGCCAGCCCCAGGGCTCCAGCCCAGCCCGGTGGATCCTCTGGGGAAGCCAGGACCAGGAGAGA -AGCAAGGTCAAGAAATCCCACAGTTTGATGTATTAAAGAAATGACTTATTTCTACTCAAAATAAATGGCA -TTGAAGTCTTTCTTTAA ->XM_005265508.1 -GCATGCCCGCATCTGCTGTCCGACAGGCGGAAGACGAGCCCAGAGGCGGAGCAGGGCCGTCGCGCCTTGG -TGACGTCTGCCGCCGGCGCGGGCGGGTGACGCGACTGGGCCCGTTGTCTGTGTGTGGGACTGAGGGGCCC -CGGGGGCGGTGGGGGCTCCCGGTGGGGGCAGCGGTGGGGAGGGAGGGCCTGGACATGGCGCTGAGGGGCC -GCCCCGCGGGAAGATGAATAAGGGCTGGCTGGAGCTGGAGAGCGACCCAGGCCTCTTCACCCTGCTCGTG -GAAGATTTCGGTGTCAAGGGGGTGCAAGTGGAGGAGATCTACGACCTTCAGAGCAAATGTCAGGGCCCTG -TATATGGATTTATCTTCCTGTTCAAATGGATCGAAGAGCGCCGGTCCCGGCGAAAGGTCTCTACCTTGGT -GGATGATACGTCCGTGATTGATGATGATATTGTGAATAACATGTTCTTTGCCCACCAGCTGATACCCAAC -TCTTGTGCAACTCATGCCTTGCTGAGCGTGCTCCTGAACTGCAGCAGCGTGGACCTGGGACCCACCCTGA -GTCGCATGAAGGACTTCACCAAGGGTTTCAGCCCTGAGAGCAAAGGATATGCGATTGGCAATGCCCCGGA -GTTGGCCAAGGCCCATAATAGCCATGCCAGGCCCGAGCCACGCCACCTCCCTGAGAAGCAGAATGGCCTT -AGTGCAGTGCGGACCATGGAGGCGTTCCACTTTGTCAGCTATGTGCCTATCACAGGCCGGCTCTTTGAGC -TGGATGGGCTGAAGGTCTACCCCATTGACCATGGGCCCTGGGGGGAGGACGAGGAGTGGACAGACAAGGC -CCGGCGGGTCATCATGGAGCGTATCGGCCTCGCCACTGCAGGGATCAAGTATGAGGCCAGGCTGCATGTG -CTGAAGGTGAACCGTCAGACAGTACTAGAGGCTCTGCAGCAGCTGATAAGAGTAACACAGCCAGAGCTGA -TTCAGACCCACAAGTCTCAAGAGTCACAGCTGCCTGAGGAGTCCAAGTCAGCCAGCAACAAGTCCCCGCT -GGTGCTGGAAGCAAACAGGGCCCCTGCAGCCTCTGAGGGCAACCACACAGATGGTGCAGAGGAGGCGGCT -GGTTCATGCGCACAAGCCCCATCCCACAGCCCTCCCAACAAACCCAAGCTAGTGGTGAAGCCTCCAGGCA -GCAGCCTCAATGGGGTTCACCCCAACCCCACTCCCATTGTCCAGCGGCTGCCGGCCTTTCTAGACAATCA -CAATTATGCCAAGTCCCCCATGCAGGAGGAAGAAGACCTGGCGGCAGGTGTGGGCCGCAGCCGAGTTCCA -GTCCGCCCACCCCAGCAGTACTCAGATGATGAGGATGACTATGAGGATGACGAGGAGGATGACGTGCAGA -ACACCAACTCTGCCCTTAGGTATAAGGGGAAGGGAACAGGGAAGCCAGGGGCATTGAGCGGTTCTGCTGA -TGGGCAACTGTCAGTGCTGCAGCCCAACACCATCAACGTCTTGGCTGAGAAGCTCAAAGAGTCCCAGAAG -GACCTCTCAATTCCTCTGTCCATCAAGACTAGCAGCGGGGCTGGGAGTCCGGCTGTGGCAGTGCCCACAC -ACTCGCAGCCCTCACCCACCCCCAGCAATGAGAGTACAGACACGGCCTCTGAGATCGGCAGTGCTTTCAA -CTCGCCACTGCGCTCGCCTATCCGCTCAGCCAACCCGACGCGGCCCTCCAGCCCTGTCACCTCCCACATC -TCCAAGGTGCTTTTTGGAGAGGATGACAGCCTGCTGCGTGTTGACTGCATACGCTACAACCGTGCTGTCC -GTGATCTGGGTCCTGTCATCAGCACAGGCCTGCTGCACCTGGCTGAGGATGGGGTGCTGAGTCCCCTGGC -GCTGACAGAGGGTGGGAAGGGTTCCTCGCCCTCCATCAGACCAATCCAAGGCAGCCAGGGGTCCAGCAGC -CCAGTGGAGAAGGAGGTCGTGGAAGCCACGGACAGCAGAGAGAAGACGGGGATGGTGAGGCCTGGCGAGC -CCTTGAGTGGGGAGAAATACTCACCCAAGCTGCCTATTGCTCGTGGGGCTTTGTTGCTGGCCCGCCCCGA -TCAGAGGTGCAATGCTGGGTTTTGGCAGGAGCTGCTGGCACTGCTGAAGTGTGTGGAGGCTGAGATTGCA -AACTATGAGGCGTGCCTCAAGGAGGAGGTAGAGAAGAGGAAGAAGTTCAAGATTGATGACCAGAGAAGGA -CCCACAACTACGATGAGTTCATCTGCACCTTTATCTCCATGCTGGCTCAGGAAGGCATGCTGGCCAACCT -AGTGGAGCAGAACATCTCCGTGCGGCGGCGCCAAGGGGTCAGCATCGGCCGGCTCCACAAGCAGCGGAAG -CCTGACCGGCGGAAACGCTCTCGCCCCTACAAGGCCAAGCGCCAGTGAGGACTGCTGGCCCTGACTCTGC -AGCCCACTCTTGCCGTGTGGCCCTCACCAGGGTCCTTCCCTGCCCCACTTCCCCTTTTCCCAGTATTACT -GAATAGTCCCAGCTGGAGAGTCCAGGCCCTGGGAATGGGAGGAACCAGGCCACATTCCTTCCATCGTGCC -CTGAGGCCTGACACGGCAGATCAGCCCCATAGTGCTCAGGAGGCAGCATCTGGAGTTGGGGCACAGCGAG -GTACTGCAGCTTCCTCCACAGCCGGCTGTGGAGCAGCAGGACCTGGCCCTTCTGCCTGGGCAGCAGAATA -TATATTTTACCTATCAGAGACATCTATTTTTCTGGGCTCCAACCCAACATGCCACCATGTTGAC ->XM_005265507.1 -GCATGCCCGCATCTGCTGTCCGACAGGCGGAAGACGAGCCCAGAGGCGGAGCAGGGCCGTCGCGCCTTGG -TGACGTCTGCCGCCGGCGCGGGCGGGTGACGCGACTGGGCCCGTTGTCTGTGTGTGGGACTGAGGGGCCC -CGGGGGCGGTGGGGGCTCCCGGTGGGGGCAGCGGTGGGGAGGGAGGGCCTGGACATGGCGCTGAGGGGCC -GCCCCGCGGGAAGATGAATAAGGGCTGGCTGGAGCTGGAGAGCGACCCAGGCCTCTTCACCCTGCTCGTG -GAAGATTTCGGTGTCAAGGGGGTGCAAGTGGAGGAGATCTACGACCTTCAGAGCAAATGTCAGGGCCCTG -TATATGGATTTATCTTCCTGTTCAAATGGATCGAAGAGCGCCGGTCCCGGCGAAAGGTCTCTACCTTGGT -GGATGATACGTCCGTGATTGATGATGATATTGTGAATAACATGTTCTTTGCCCACCAGCTGATACCCAAC -TCTTGTGCAACTCATGCCTTGCTGAGCGTGCTCCTGAACTGCAGCAGCGTGGACCTGGGACCCACCCTGA -GTCGCATGAAGGACTTCACCAAGGGTTTCAGCCCTGAGAGCAAAGGATATGCGATTGGCAATGCCCCGGA -GTTGGCCAAGGCCCATAATAGCCATGCCAGGCCCGAGCCACGCCACCTCCCTGAGAAGCAGAATGGCCTT -AGTGCAGTGCGGACCATGGAGGCGTTCCACTTTGTCAGCTATGTGCCTATCACAGGCCGGCTCTTTGAGC -TGGATGGGCTGAAGGTCTACCCCATTGACCATGGGCCCTGGGGGGAGGACGAGGAGTGGACAGACAAGGC -CCGGCGGGTCATCATGGAGCGTATCGGCCTCGCCACTGCAGGGGAGCCCTACCACGACATCCGCTTCAAC -CTGATGGCAGTGGTGCCCGACCGCAGGATCAAGTATGAGGCCAGGCTGCATGTGCTGAAGGTGAACCGTC -AGACAGTACTAGAGGCTCTGCAGCAGCTGATAAGAGTAACACAGCCAGAGCTGATTCAGACCCACAAGTC -TCAAGAGTCACAGCTGCCTGAGGAGTCCAAGTCAGCCAGCAACAAGTCCCCGCTGGTGCTGGAAGCAAAC -AGGGCCCCTGCAGCCTCTGAGGGCAACCACACAGATGGTGCAGAGGAGGCGGCTGGTTCATGCGCACAAG -CCCCATCCCACAGCCCTCCCAACAAACCCAAGCTAGTGGTGAAGCCTCCAGGCAGCAGCCTCAATGGGGT -TCACCCCAACCCCACTCCCATTGTCCAGCGGCTGCCGGCCTTTCTAGACAATCACAATTATGCCAAGTCC -CCCATGCAGGAGGAAGAAGACCTGGCGGCAGGTGTGGGCCGCAGCCGAGTTCCAGTCCGCCCACCCCAGC -AGTACTCAGATGATGAGGATGACTATGAGGATGACGAGGAGGATGACGTGCAGAACACCAACTCTGCCCT -TAGGTATAAGGGGAAGGGAACAGGGAAGCCAGGGGCATTGAGCGGTTCTGCTGATGGGCAACTGTCAGTG -CTGCAGCCCAACACCATCAACGTCTTGGCTGAGAAGCTCAAAGAGTCCCAGAAGGACCTCTCAATTCCTC -TGTCCATCAAGACTAGCAGCGGGGCTGGGAGTCCGGCTGTGGCAGTGCCCACACACTCGCAGCCCTCACC -CACCCCCAGCAATGAGAGTACAGACACGGCCTCTGAGATCGGCAGTGCTTTCAACTCGCCACTGCGCTCG -CCTATCCGCTCAGCCAACCCGACGCGGCCCTCCAGCCCTGTCACCTCCCACATCTCCAAGGTGCTTTTTG -GAGAGGATGACAGCCTGCTGCGTGTTGACTGCATACGCTACAACCGTGCTGTCCGTGATCTGGGTCCTGT -CATCAGCACAGGCCTGCTGCACCTGGCTGAGGATGGGGTGCTGAGTCCCCTGGCGCTGACAGAGGGTGGG -AAGGGTTCCTCGCCCTCCATCAGACCAATCCAAGGCAGCCAGGGGTCCAGCAGCCCAGTGGAGAAGGAGG -TCGTGGAAGCCACGGACAGCAGAGAGAAGACGGGGATGGTGAGGCCTGGCGAGCCCTTGAGTGGGGAGAA -ATACTCACCCAAGCTGCCTATTGCTCGTGGGGCTTTGTTGCTGGCCCGCCCCGATCAGAGGTGCAATGCT -GGGTTTTGGCAGGAGCTGCTGGCACTGCTGAAGTGTGTGGAGGCTGAGATTGCAAACTATGAGGCGTGCC -TCAAGGAGGAGGTAGAGAAGAGGAAGAAGTTCAAGATTGATGACCAGAGAAGGACCCACAACTACGATGA -GTTCATCTGCACCTTTATCTCCATGCTGGCTCAGGAAGGCATGCTGGCCAACCTAGTGGAGCAGAACATC -TCCGTGCGGCGGCGCCAAGGGGTCAGCATCGGCCGGCTCCACAAGCAGCGGAAGCCTGACCGGCGGAAAC -GCTCTCGCCCCTACAAGGCCAAGCGCCAGTGAGGACTGCTGGCCCTGACTCTGCAGCCCACTCTTGCCGT -GTGGCCCTCACCAGGGTCCTTCCCTGCCCCACTTCCCCTTTTCCCAGTATTACTGAATAGTCCCAGCTGG -AGAGTCCAGGCCCTGGGAATGGGAGGAACCAGGCCACATTCCTTCCATCGTGCCCTGAGGCCTGACACGG -CAGATCAGCCCCATAGTGCTCAGGAGGCAGCATCTGGAGTTGGGGCACAGCGAGGTACTGCAGCTTCCTC -CACAGCCGGCTGTGGAGCAGCAGGACCTGGCCCTTCTGCCTGGGCAGCAGAATATATATTTTACCTATCA -GAGACATCTATTTTTCTGGGCTCCAACCCAACATGCCACCATGTTGAC ->XR_241081.1 -GTGTGGGAGGCCGGAAGTTGCGGCTTCATTACTCGCCATTTCAAAATGCTGCCGAGGCCCTAGGATCTGT -GACTGCCACCCCTCCCCCCACCCGGGCTCGGCGGGGGAGCGACTCATGGAGCTGCCGTAAGTTTTACCAA -CAGACTGCAGTTTCTTCACTACCAAAATGACATCATTTTCCACCTCTGCTCAGTGTTCAACATCTGACAG -TGCTTGCAGGATCTCTCCTGGACAAATCAATCAGGTACGACCAAAACTGCCGCTTTTGAAGATTTTGCAT -GCAGCAGGTGCGCAAGGTGAAATGTTCACTGTTAAAGAGGTCATGCACTATTTAGGTCAGTACATAATGG -TGAAGCAACTTTATGATCAGCAGGAGCAGCATATGGTATATTGTGGTGGAGATCTTTTGGGAGAACTACT -GGGACGTCAGAGCTTCTCCGTGAAAGACCCAAGCCCTCTCTATGATATGCTAAGAAAGAATCTTGTCACT -TTAGCCACTGCTACTACAGCAAAGTGCAGAGGAAAGTTCCACTTCCAGAAAAAGAACTACAGAAGACGAT -ATCCCCACACTGCCTACCTCAGAGCATAAATGCATACATTCTAGAGAAGATGAAGACTTAATTGAAAATT -TAGCCCAAGATGAAACATCTAGGCTGGACCTTGGATTTGAGGAGTGGGATGTAGCTGGCCTGCCTTGGTG -GTTTTTAGGAAACTTGAGAAGCAACTATACACCTAGAAGTAATGGCTCAACTGATTTACAGACAAATCAG -GTGATTGAAGTGGGAAAAAATGATGACCTGGAGGACTCTAAGTCCTTAAGTGATGATACCGATGTAGAGG -TTACCTCTGAGGATGAGTGGCAGTGTACTGAATGCAAGAAATTTAACTCTCCAAGCAAGAGGTACTGTTT -TCGTTGTTGGGCCTTGAGGAAGGATTGGTATTCAGATTGTTCAAAGTTAACCCATTCTCTCTCCACGTCT -GATATCACTGCCATACCTGAAAAGGAAAA ->XR_241080.1 -GTGTGGGAGGCCGGAAGTTGCGGCTTCATTACTCGCCATTTCAAAATGCTGCCGAGGCCCTAGGATCTGT -GACTGCCACCCCTCCCCCCACCCGGGCTCGGCGGGGGAGCGACTCATGGAGCTGCCGTAAGTTTTACCAA -CAGACTGCAGTTTCTTCACTACCAAAATGACATCATTTTCCACCTCTGCTCAGTGTTCAACATCTGACAG -TGCTTGCAGGATCTCTCCTGGACAAATCAATCAGGTACGACCAAAACTGCCGCTTTTGAAGATTTTGCAT -GCAGCAGGTGCGCAAGGTGAAATGTTCACTGTTAAAGAGGTCATGCACTATTTAGGTCAGTACATAATGG -TGAAGCAACTTTATGATCAGCAGGAGCAGCATATGGTATATTGTGGTGGAGATCTTTTGGGAGAACTACT -GGGACGTCAGAGCTTCTCCGTGAAAGACCCAAGCCCTCTCTATGATATGCTAAGAAAGAATCTTGTCACT -TTAGCCACTGCTACTACAGCAAAGTGCAGAGGAAAGTTCCACTTCCAGAAAAAGAACTACAGAAGACGAT -ATCCCCACACTGCCTACCTCAGAGCATAAATGCATACATTCTAGAGAAGATGAAGACTTAATTGAAAATT -TAGCCCAAGATGAAACATCTAGGCTGGACCTTGGATTTGAGGAGTGGGATGTAGCTGGCCTGCCTTGGTG -GTTTTTAGGAAACTTGAGAAGCAACTATACACCTAGAAGTAATGGCTCAACTGATTTACAGACAAATCAG -GATGTGGGTACTGCCATTGTTTCAGATACTACAGATGACTTGTGGTTTTTGAATGAGTCAGTATCAGAGC -AGTTAGGTGTTGGAATAAAAGTTGAAGCTGCTGATACTGAACAAACAAGTGAAGAAGTAGGGAAAGTAAG -TGACAAAAAGGTGATTGAAGTGGGAAAAAATGATGACCTGGAGGACTCTAAGTCCTTAAGTGATGATACC -GATGTAGAGGTTACCTCTGAGGATGAGTGGCAGTGTACTGAATGCAAGAAATTTAACTCTCCAAGCAAGA -GGTACTGTTTTCGTTGTTGGGCCTTGAGGAAGGATTGGTATTCAGATTGTTCAAAGTTAACCCATTCTCT -CTCCACGTCTGATATCACTGCCATACCTGAAAAGGAAAATGAAGGAAATGATGTCCCTGATTGTCGAAGA -ACCATTTCGGCTCCTGTCGTTAGACCTAAAGATGCGTATATAAAGAAAGAAAACTCCAAACTTTTTGATC -CCTGCAACTCAGTGGAATTCTTGGATTTGGCTCACAGTTCTGAAAGCCAAGAGACCATCTCAAGCATGGG -AGAACAGTTAGATAACCTTTCTGAACAGAGAACAGATACAGAAAACATGGAGGATTGCCAGAATCTCTTG -AAGCCATGTAGCTTATGTGAGAAAAGACCACGAGACGGGAACATTATTCATGGAAGGACGGGCCATCTTG -TCACTTGTTTTCACTGTGCCAGAAGACTAAAGAAGGCTGGGGCTTCATGCCCTATTTGCAAGAAAGAGAT -TCAGCTGGATGCCAAAGAAGAGTGAATGGCCCACAAAGAGCCTGGTAGCACATACGCTTTTCAAAAGGTC -ATGCACTTACAGCTAAAGCCATTAAGGCTGAAGTGCAGTGGCGAGAGGTTCACGGCAGCCTTGACCTCCT -GGCTGAAGCGATCCAGCCATCTCAGCCCCCCGAGTAGCTGAGACCACAGGAGGGGGCTGATTGAAACTGA -AGAATAGTACAGTAGGAGGAGAGGACCAGGAGCTGAAAAGACAGGTCGCTATGTTGAGAGAGAGAGAGAG -GAAGAAAGATCTAATAGGACTTCAAAGGCTGTGGTAGATGTATTACTGTCAAAACCTGCGCAGCTTTTCT -CTACCAGGCCTTGGAAAAGATTGCACTTCCTGCACCACTGGCAGCGGGCTGGCCAATGGGATGCAAGTGG -AAATGAACTGTGCTATTCTGAGCAGAGGCTTAGGGACCATTGTGTGGGCTTAGGCAGATACTCCAATATT -TCTGACACATACATACACGGAAAACCTTGCAAGAGTGGAGAAAAGAAGGGAGAGGGTCTCACTCTGTCAC -CAGGCTGGAGTGCAGTGGCACAATCTAGGCTCACTGCAGCCTCGACCTCCCAGGTTCAAGCAATCCTCCC -ACCTCAGCCTCCCGGTTAGCTGGGACTATAGCTATGCGCCACCATGTCCCTATGTTGCCCAGCCTCGGTG -TCTGGATGCCCAGCCTAACCAAGTCAGCTTCCCATCTTTGGCTGAGACAAGGAGAACCCTGCTGGGCTAG -GGGACCCAGATAGTGACCAGGTTCTGCATGTGATTTCCCTGTGGAATTCCAACCAAGGACAGACAGTTAG -CCTAAAAACAACAGCAGAAGCAGCAGCAACAACGATGCTGAGTGCTGACTGCGAGCCTGGCTTCCTCGGA -GGGAGTTTACCGTGCGCTGCCTCCTTGGACCCTCATCACTGCCCTGCGAAGCAAGCACTTTCCTCACCCC -CTCTGTCTGGAGGAGGGCACTGAGGCACCGAGAAAACTGGGCAGGGGAGGCCCGAGAAGGAGAGGGTGGC -ACCGTCATTCTCACTTTCCAGCTGAGGACACGGATGGTTTCTATAACAGTGAATTTGCAAATAGTTGGAA -CCTCTGAAGTGCTTCCTCTCCTGGACTGGAAACCCCTTGAGGATGTGTACGGCACCCGCATCCCCTCCAT -CTGCACCCGCAGCCACAGCCACAGCCACAGCCAGCGCTATGTCCCGTTGCCATTCACATTCATACCTGCA -ACGTACACTCATACATGTGTCGGATATTTGCGAAGAAGCTCCCTTTCCCACCTAGGCCCCTCTTCTTTCC -TTTCCTTTCCTTTCCCTCCTCTACCTCTTTCCCTTCCTATTCTTCTGCTCCTCCTCCCTCCCAGCTGGTT -CCCTATTTCCCTTACCCCCTCAAACATCTCCCCTCTCTCCATCCCCACTCCCAATCTGCCAAACCCACCC -CCACCTAAAAATGTGGACCGTGGAGTCTCTGACCGAGGTTTCCTTTCCCAACATGGGGAGCCCGGGCTGG -CTGCGATTTGTTGGGGACAGAGATGGGATCTTGCTCTGTTGTTCAGGTGGTGGTTTCAAACTCCTGGCCT -CAAGTGATCCTCCTGCCTTGGCCTCCCAAAGCGCTGGGATTACAGGTGTGAGCCGCTGTGCCCAGGCCAA -TCCCAGAGATTTTGTTTTATTTTATGGCCCAGAAGATGATTTCTCGATACGAGTTTCACGAAGACTTGAA -AAGAATGTGTCCTCTGTTGTTGGATGGAGTGTCCTTGAAATGTTCATTAGCCTTCTAGCTCCATTCAGAA -GAGCCTCCGAAGTAGAGACCAGAAATCCTTCTAGTGGGCTGTGCTTTGAGCAGTACTGCTTGTTGACTGC -TTTACTTGGAAGGAGAGATCGACTGAGAATGTATAACATCAAGAGCTGCCCTAATGTGAACTGGAGACTT -CGAGTGACAACAATGTGCCCATGGAAAGAAGTGGACAAGACTCTGCTCTCTTCATGGAACCGAGTATTCT -AAGGACACAGCCAAGTCAGGAGACTACACCCCTAGTATAATAAGTCCTGTGGCTGTACTGAGAAGAGGTC -CTGACTCAGAACTGGAGGACATCATGGAAGGCTTCCTGGAGGAAGTGCCATCTAGGCTGAAACCTAAAGG -ATGAGTAGAACTAACCAGATGAAAAGGACAGCACTGGATTTGACTCATCCCTGCATCCCCCGAGCACCTC -GTGGGTGCCGTAAAGGCAGCTGGGTTGATGATGACTGAGTGAAGGAGCGCCTGAGTGGATGAGCCACTGA -GTGAATGAACTGGAGTTCATCTTCCACGTGGTCCTCAGCATCCACTCTAGAAGCCAAAGCCAAGCCTGAG -GGATCTAAAGCCTTGGGACTTCTGGATCTGCAAGTGGTCCCTGTTTTGGTAGCTATTGACTGACGAGGGG -CTCTTCGCCCCACAGGTGACTGCTGTAGCCTTGAGTGAGGACCTCGGCCAAAAAGAAGGCTCCTACCGTG -GCTGTTTGCTGATGGTCTTCGCAGAGCCTGCTGTCTTTGAGCTTCCTGAGAGAGGGACACTACCCTCGCT -TAGCCTGGCAGTGTTGCCCAGGAGGAGGCAGTGGAGTTAAGAAGCCTGGGTCTGAGCTCCTCAGCTGTGC -AGACAACTCCTACTTGTTCTTCAACGCTCAACTTTAAGTTCAGTCACCACCTGCAGAAGTCTTCTCCAAA -ACCTCCCCACCTGGCTGACTAAGGGGCTGGCTTTATGCTCTTGCAGTACTCATGCTTCCTACTGTCACAG -TTCTGACCACACCGTGGGAAAACGTCTCTAACTAGAGACCTGTCTTGCCTCTTGTGCCTGTAGTACGGGA -TGGGTGCCCAGTGTGTGTTGATTGTATGAATCAATCTCTGTGACTCCAGAGTTCCTTTCTTCAGGAGATT -AGACATCACCCCTGCAATCAACAATGCAAGCCACTGCTGTTTCCTCCATCCTGAGCATGAGGAACCTATC -CAGTTTCTCTCTCAGATGCCAGGGCCATGAGGCAAGTCCAGCCTTGGCCTAGAACCAAAGATGGAAACAA -AAAGGGGCCAGACTGTGTTGCCTTCTTGAGCCTGGTCTGACTCCTGAGTGGAAGTCTGATTCCAGGTACA -TGAGATAAGCACTAATACCTCCAGTTTGCAGATTAAGAGACTGAGGTCCTGAAGAGGTTAAAGAACTTGG -CTCAAGTCACATAGCTGGTGAGCAGCAAGATACAAGAATCAACCCAAGTCCAGGGGGCTGTGTGCCGTTT -ACACTTCACATCTGTGCTGCCAGGGCTGTAGCTATAAAAGCTTGAAAACCATTA ->XR_241079.1 -AAGTTGCGGCTTCATTACTCGCCATTTCAAAATGCTGCCGAGGCCCTAGGATCTGTGACTGCCACCCCTC -CCCCCACCCGGGCTCGGCGGGGGAGCGACTCATGGAGCTGCCGTAAGTTTTACCAACAGACTGCAGTTTC -TTCACTACCAAAATGACATCATTTTCCACCTCTGCTCAGTGTTCAACATCTGACAGTGCTTGCAGGATCT -CTCCTGGACAAATCAATCAGGTACGACCAAAACTGCCGCTTTTGAAGATTTTGCATGCAGCAGGTGCGCA -AGGTGAAATGTTCACTGTTAAAGAGGTCATGCACTATTTAGGTCAGTACATAATGGTGAAGCAACTTTAT -GATCAGCAGGAGCAGCATATGGTATATTGTGGTGGAGATCTTTTGGGAGAACTACTGGGACGTCAGAGCT -TCTCCGTGAAAGACCCAAGCCCTCTCTATGATATGCTAAGAAAGAATCTTGTCACTTTAGCCACTGCTAC -TACAGGATCACAGTATGGATATTCCAAGTCAAGACCAACTGAAGCAAAGTGCAGAGGAAAGTTCCACTTC -CAGAAAAAGAACTACAGAAGACGATATCCCCACACTGCCTACCTCAGAGCATAAATGCATACATTCTAGA -GAAGATGAAGACTTAATTGAAAATTTAGCCCAAGATGAAACATCTAGGCTGGACCTTGGATTTGAGGAGT -GGGATGTAGCTGGCCTGCCTTGGTGGTTTTTAGGAAACTTGAGAAGCAACTATACACCTAGAAGTAATGG -CTCAACTGATTTACAGACAAATCAGGATGTGGGTACTGCCATTGTTTCAGATACTACAGATGACTTGTGG -TTTTTGAATGAGTCAGTATCAGAGCAGTTAGGTGTTGGAATAAAAGTTGAAGCTGCTGATACTGAACAAA -CAAGTGAAGAAGTAGGGAAAGTAAGTGACAAAAAGGTGATTGAAGTGGGAAAAAATGATGACCTGGAGGA -CTCTAAGTCCTTAAGTGATGATACCGATGTAGAGGTTACCTCTGAGGATGAGTGGCAGTGTACTGAATGC -AAGAAATTTAACTCTCCAAGCAAGAGGTACTGTTTTCGTTGTTGGGCCTTGAGGAAGGATTGGTATTCAG -ATTGTTCAAAGTTAACCCATTCTCTCTCCACGTCTGATATCACTGCCATACCTGAAAAGGAAAATGAAGG -AAATGATGTCCCTGATTGTCGAAGAACCATTTCGGCTCCTGTCGTTAGACCTAAAGATGCGTATATAAAG -AAAGAAAACTCCAAACTTTTTGATCCCTGCAACTCAGTGGAATTCTTGGATTTGGCTCACAGTTCTGAAA -GCCAAGAGACCATCTCAAGCATGGGAGAACAGTTAGATAACCTTTCTGAACAGAGAACAGATACAGAAAA -CATGGAGGATTGCCAGAATCTCTTGAAGCCATGTAGCTTATGTGAGAAAAGACCACGAGACGGGAACATT -ATTCATGGAAGGACGGGCCATCTTGTCACTTGTTTTCACTGTGCCAGAAGACTAAAGAAGGCTGGGGCTT -CATGCCCTATTTGCAAGAAAGAGATTCAGCTGGTTATTAAGGTTTTTATAGCATAATGGTAGTACGAACA -TAAAAATGCATTTATTCCGTTCACTTACCACATTATTTGAAAATCAATCCTTTATTTAATTTTATTTCCA -ACCTGTCAGAGAATGTTCTTAGGCATCAAAATCCAAGGTAGCTGTAAGAAAAATACTGGAGCTAACAATG -AAGAACAGAAGTAATCTGATTAGTCAAATTATTAAGTGCCATGGATTACTTTATGCAGCAGTCAGGTACA -TAGTTAGGTGAACCCAAAAGAAAAACTCTTGAAAACAAGAGATTTCTTCCATGCACATTTACAATATTGA -GGTATAATTAACATGATAAAGTGTTTCCTTCTAACGAGTTGTAGAAATCTGAGTAACCACCCAAAAAAGC -AATAGAATGTTTCTGTCACCCCAAAACACTCCCTTCTGCCCCTCTTCAGACAGTCCTTCAGCTATTTCAT -GGCTCTCACCCTAGTTTTTTTTTTTTTTGCACTTTTTTTTTTCCGGGGGTATAGGGGAGGTGTGGGGCGA -CAGGGTCTGTCTTGTTCTGTCTCCCAGGCTGAAGTGCAGTGCAGTGGTATGATCATGGCTCACTGCAGCC -TTGGTTTCCTGGGCATAAGTGGTCTTCCCACTTCAGCCTCCTGAGTAGCTGAGACTATAGACTAGCATAA -CCACACTGGCTAATTTTTTGTGGAGATGAAGTCTCACTATGTTGCCCAGGCTGGTCTCGAACTCCTGGGC -TCAAACAATCCTCCCGCCTCAGCCTTCCAAATTGCTGGGATTATAGTCATGAGGCACCTAGTCTGGCCCT -TTTGCAAGACTTTAATCTGAAATCTAAATTTTTAAAATTTAAGTACTTACAAAGGATATACTATCCAACA -TATTGCATATTATATATGTGCTTTAAAGTTTTTTTTTTTTTTTGAGAGACGGTCTCACTTTGTCATCCAA -GCTGGAGTGCAGTGGTGCAAACACGGCCCACCTCCTGGGCTCAAGTGATCCTCCAGCCTCAGCTTCCCTC -ACAGGCATTCACTATCACTCCCAGCTAATTAAAATAATTTGTAGACGGTGTCTCGTTATGTTGCCCAGGC -TGGTCTCGAACTCCTGGGTTTAAGTGATTCCCCCGCCTCAGCCTCCCAAAGTGTTGGGCTTACAGCCTTG -AGCCACTATGCTTGGCTCAAAGATATTTTTATGAAAGCCCTGGGACTATAGATTTAGCTGATTAAATTTA -TAGAAAAAGTCCTGTCATA \ No newline at end of file diff --git a/tests/data/genes.fasta.fai b/tests/data/genes.fasta.fai deleted file mode 100644 index e535241..0000000 --- a/tests/data/genes.fasta.fai +++ /dev/null @@ -1,20 +0,0 @@ -AB821309.1 3510 12 70 71 -KF435150.1 481 3585 70 71 -KF435149.1 642 4085 70 71 -NR_104216.1 4573 4750 70 71 -NR_104215.1 5317 9402 70 71 -NR_104212.1 5374 14808 70 71 -NM_001282545.1 4170 20275 70 71 -NM_001282543.1 5466 24521 70 71 -NM_000465.3 5523 30079 70 71 -NM_001282549.1 3984 35697 70 71 -NM_001282548.1 4113 39754 70 71 -XM_005249645.1 2752 43942 70 71 -XM_005249644.1 3004 46750 70 71 -XM_005249643.1 3109 49813 70 71 -XM_005249642.1 3097 52983 70 71 -XM_005265508.1 2794 56141 70 71 -XM_005265507.1 2848 58991 70 71 -XR_241081.1 1009 61893 70 71 -XR_241080.1 4884 62930 70 71 -XR_241079.1 2819 67897 70 71 diff --git a/tests/data/genes.fasta.fai.samtools b/tests/data/genes.fasta.fai.samtools deleted file mode 100644 index e535241..0000000 --- a/tests/data/genes.fasta.fai.samtools +++ /dev/null @@ -1,20 +0,0 @@ -AB821309.1 3510 12 70 71 -KF435150.1 481 3585 70 71 -KF435149.1 642 4085 70 71 -NR_104216.1 4573 4750 70 71 -NR_104215.1 5317 9402 70 71 -NR_104212.1 5374 14808 70 71 -NM_001282545.1 4170 20275 70 71 -NM_001282543.1 5466 24521 70 71 -NM_000465.3 5523 30079 70 71 -NM_001282549.1 3984 35697 70 71 -NM_001282548.1 4113 39754 70 71 -XM_005249645.1 2752 43942 70 71 -XM_005249644.1 3004 46750 70 71 -XM_005249643.1 3109 49813 70 71 -XM_005249642.1 3097 52983 70 71 -XM_005265508.1 2794 56141 70 71 -XM_005265507.1 2848 58991 70 71 -XR_241081.1 1009 61893 70 71 -XR_241080.1 4884 62930 70 71 -XR_241079.1 2819 67897 70 71 diff --git a/tests/data/long_line.fasta b/tests/data/long_line.fasta deleted file mode 100644 index 90bea70..0000000 --- a/tests/data/long_line.fasta +++ /dev/null @@ -1,10 +0,0 @@ ->AB821309.1 -ATGGTCAGCTGGGGTCGTTTCATCTGCCTGGTCGTGGTCACCATGGCAACCTTGTCCCTGGCCCGGCCCT -CCTTCAGTTTAGTTGAGGATACCACATTAGAGCCAGAAGATGCCATCTCATCCGGAGATGATGAGGATGA -CACCGATGGTGCGGAAGATTTTGTCAGTGAGAACAGTAACAACAAGAGAGCACCATACTGGACCAACACA -GAAAAGATGGAAAAGCGGCTCCATGCTGTGCCTGCGGCCAACACTGTCAAGTTTCGCTGCCCAGCCGGGG -AAAAAAAAACAATGCCAACCATGCGGTGGCTGAAAAACGGGAAGGAGTTTAAGCAGGAGCATCGCATTGGAGG -CTACAAGGTACGAAACCAGCACTGGAGCCTCATTATGGAAAGTGTGGTCCCATCTGACAAGGGAAATTAT -ACCTGTGTGGTGGAGAATGAATACGGGTCCATCAATCACACGTACCACCTGGATGTTGTGGAGCGATCGC -CTCACCGGCCCATCCTCCAAGCCGGACTGCCGGCAAATGCCTCCACAGTGGTCGGAGGAGACGTAGAGTT -TGTCTGCAAGGTTTACAGTGATGCCCAGCCCCACATCCAGTGGATCAAGCACGTGGAAAAGAACGGCAGT diff --git a/tests/data/malformed.bed b/tests/data/malformed.bed index c325a8d..9f09f63 100644 --- a/tests/data/malformed.bed +++ b/tests/data/malformed.bed @@ -1,2 +1,2 @@ -AB821309.1 0 -NM_000465.3 99 5522 +gi|563317589|dbj|AB821309.1| 0 +gi|543583785|ref|NM_000465.3| 99 5522 diff --git a/tests/data/regions.bed b/tests/data/regions.bed index 26b4eb4..ede4d25 100644 --- a/tests/data/regions.bed +++ b/tests/data/regions.bed @@ -1,2 +1,2 @@ -AB821309.1 0 999 -NM_000465.3 99 5522 +gi|563317589|dbj|AB821309.1| 0 999 +gi|543583785|ref|NM_000465.3| 99 5522 diff --git a/tests/data/short_line.fasta b/tests/data/short_line.fasta deleted file mode 100644 index 9b80c71..0000000 --- a/tests/data/short_line.fasta +++ /dev/null @@ -1,10 +0,0 @@ ->AB821309.1 -ATGGTCAGCTGGGGTCGTTTCATCTGCCTGGTCGTGGTCACCATGGCAACCTTGTCCCTGGCCCGGCCCT -CCTTCAGTTTAGTTGAGGATACCACATTAGAGCCAGAAGATGCCATCTCATCCGGAGATGATGAGGATGA -CACCGATGGTGCGGAAGATTTTGTCAGTGAGAACAGTAACAACAAGAGAGCACCATACTGGACCAACACA -GAAAAGATGGAAAAGCGGCTCCATGCTGTGCCTGCGGCCAACACTGTCAAGTTTCGCTGCCCAGCCGGGG -CAATGCCAACCATGCGGTGGCTGAAAAACGGGAAGGAGTTTAAGCAGGAGCATCGCATTGGAGG -CTACAAGGTACGAAACCAGCACTGGAGCCTCATTATGGAAAGTGTGGTCCCATCTGACAAGGGAAATTAT -ACCTGTGTGGTGGAGAATGAATACGGGTCCATCAATCACACGTACCACCTGGATGTTGTGGAGCGATCGC -CTCACCGGCCCATCCTCCAAGCCGGACTGCCGGCAAATGCCTCCACAGTGGTCGGAGGAGACGTAGAGTT -TGTCTGCAAGGTTTACAGTGATGCCCAGCCCCACATCCAGTGGATCAAGCACGTGGAAAAGAACGGCAGT diff --git a/tests/test_FastaRecord_iter.py b/tests/test_FastaRecord_iter.py index 467f265..c8dab49 100644 --- a/tests/test_FastaRecord_iter.py +++ b/tests/test_FastaRecord_iter.py @@ -1,19 +1,27 @@ import os from pyfaidx import Fasta +from itertools import chain +from unittest import TestCase path = os.path.dirname(__file__) os.chdir(path) -class TestFastaRecordIter: - def __init__(self): - self.genes = os.path.join(path, 'data/genes.fasta') - self.fasta = Fasta(self.genes) +class TestFastaRecordIter(TestCase): + def setUp(self): + pass + + def tearDown(self): + try: + os.remove('data/genes.fasta.fai') + except FileNotFoundError: + pass # some tests may delete this file def test_fetch_whole_fasta(self): - expect = open(self.genes).read() - result = ''.join(['>' + record.name + '\n' + ''.join([line.seq + '\n' for line in record]) for record in self.fasta]).rstrip() + expect = [line.rstrip('\n') for line in open('data/genes.fasta') if line[0] != '>'] + result = list(chain(*([line for line in record] for record in Fasta('data/genes.fasta', as_raw=True)))) assert expect == result def test_line_len(self): - for record in self.fasta: - assert len(next(iter(record))) == self.fasta.faidx.index[record.name].lenc + fasta = Fasta('data/genes.fasta') + for record in fasta: + assert len(next(iter(record))) == fasta.faidx.index[record.name].lenc diff --git a/tests/test_Fasta_integer_index.py b/tests/test_Fasta_integer_index.py index 605bb0e..fcf364f 100644 --- a/tests/test_Fasta_integer_index.py +++ b/tests/test_Fasta_integer_index.py @@ -1,18 +1,28 @@ import os from pyfaidx import Fasta +from unittest import TestCase path = os.path.dirname(__file__) os.chdir(path) -class TestFastaIntIndex: - fasta = Fasta(os.path.join(path, 'data/genes.fasta')) +class TestFastaIntIndex(TestCase): + def setUp(self): + pass + + def tearDown(self): + try: + os.remove('data/genes.fasta.fai') + except FileNotFoundError: + pass # some tests may delete this file def test_integer_slice(self): - expect = self.fasta['AB821309.1'][:100].seq - result = self.fasta[0][:100].seq + fasta = Fasta('data/genes.fasta') + expect = fasta['gi|563317589|dbj|AB821309.1|'][:100].seq + result = fasta[0][:100].seq assert expect == result def test_integer_index(self): - expect = self.fasta['AB821309.1'][100].seq - result = self.fasta[0][100].seq + fasta = Fasta('data/genes.fasta') + expect = fasta['gi|563317589|dbj|AB821309.1|'][100].seq + result = fasta[0][100].seq assert expect == result diff --git a/tests/test_MutableFastaRecord.py b/tests/test_MutableFastaRecord.py index 0eb704f..cde4564 100644 --- a/tests/test_MutableFastaRecord.py +++ b/tests/test_MutableFastaRecord.py @@ -1,31 +1,40 @@ import os from pyfaidx import Fasta from tempfile import NamedTemporaryFile +from unittest import TestCase path = os.path.dirname(__file__) os.chdir(path) -class TestMutableFastaRecord: - def __init__(self): - self.genes = os.path.join(path, 'data/genes.fasta') - self.fasta = Fasta(self.genes) +class TestMutableFastaRecord(TestCase): + def setUp(self): + with open('data/genes_mutable.fasta', 'wb') as mutable: + mutable.write(open('data/genes.fasta', 'rb').read()) + self.mutable_fasta = Fasta('data/genes_mutable.fasta', mutable=True) - def setup(self): - self.genes_copy = NamedTemporaryFile(mode='wb', delete=False) - self.genes_copy.write(open(self.genes, 'rb').read()) - self.genes_copy.close() - self.mutable_fasta = Fasta(self.genes_copy.name, mutable=True) - - def teardown(self): - self.mutable_fasta.__exit__() - os.remove(self.mutable_fasta.filename) # deletes temporary file + def tearDown(self): + try: + os.remove('data/genes.fasta.fai') + except FileNotFoundError: + pass # some tests may delete this file + try: + os.remove('data/genes_mutable.fasta') + except FileNotFoundError: + pass # some tests may delete this file + try: + os.remove('data/genes_mutable.fasta.fai') + except FileNotFoundError: + pass # some tests may delete this file def test_mutate_fasta_to_same(self): - chunk = self.fasta['KF435150.1'][0:100] - self.mutable_fasta['KF435150.1'][0:100] = chunk.seq - assert str(self.fasta['KF435150.1']) == str(self.mutable_fasta['KF435150.1']) + mutable = Fasta('data/genes_mutable.fasta', mutable=True) + fasta = Fasta('data/genes.fasta', mutable=False) + chunk = fasta['gi|557361099|gb|KF435150.1|'][0:100] + mutable['gi|557361099|gb|KF435150.1|'][0:100] = chunk.seq + assert str(fasta['gi|557361099|gb|KF435150.1|']) == str(mutable['gi|557361099|gb|KF435150.1|']) def test_mutate_fasta_to_N(self): + mutable = Fasta('data/genes_mutable.fasta', mutable=True) chunk = 100 * 'N' - self.mutable_fasta['KF435150.1'][0:100] = chunk - assert self.mutable_fasta['KF435150.1'][0:100].seq == chunk + mutable['gi|557361099|gb|KF435150.1|'][0:100] = chunk + assert mutable['gi|557361099|gb|KF435150.1|'][0:100].seq == chunk diff --git a/tests/test_bio_seqio.py b/tests/test_bio_seqio.py index 0becb0c..fce255c 100644 --- a/tests/test_bio_seqio.py +++ b/tests/test_bio_seqio.py @@ -1,6 +1,7 @@ import os from pyfaidx import Fasta, FetchError from nose.plugins.skip import Skip, SkipTest +from unittest import TestCase try: from Bio import SeqIO test_bio = True @@ -10,29 +11,40 @@ path = os.path.dirname(__file__) os.chdir(path) -class TestBioSeqIO: - def __init__(self): - self.genes = os.path.join(path, 'data/genes.fasta') - self.fasta = Fasta(self.genes) - if test_bio: - with open(self.genes, "rU") as fh: - self.seqio = SeqIO.to_dict(SeqIO.parse(fh, "fasta")) +class TestBioSeqIO(TestCase): + def setUp(self): + pass + + def tearDown(self): + try: + os.remove('data/genes.fasta.fai') + except FileNotFoundError: + pass # some tests may delete this file def test_fetch_whole_entry(self): + fasta = Fasta('data/genes.fasta') if test_bio: - assert str(self.fasta['KF435150.1']) == str(self.seqio['KF435150.1'].seq) - assert self.fasta['KF435150.1'].name == str(self.seqio['KF435150.1'].name) + with open('data/genes.fasta', "rU") as fh: + seqio = SeqIO.to_dict(SeqIO.parse(fh, "fasta")) + assert str(fasta['gi|557361099|gb|KF435150.1|']) == str(seqio['gi|557361099|gb|KF435150.1|'].seq) + assert fasta['gi|557361099|gb|KF435150.1|'].name == str(seqio['gi|557361099|gb|KF435150.1|'].name) else: raise SkipTest def test_slice_whole_entry(self): + fasta = Fasta('data/genes.fasta') if test_bio: - assert str(self.fasta['KF435150.1'][::3]) == str(self.seqio['KF435150.1'].seq[::3]) + with open('data/genes.fasta', "rU") as fh: + seqio = SeqIO.to_dict(SeqIO.parse(fh, "fasta")) + assert str(fasta['gi|557361099|gb|KF435150.1|'][::3]) == str(seqio['gi|557361099|gb|KF435150.1|'].seq[::3]) else: raise SkipTest def test_revcomp_whole_entry(self): + fasta = Fasta('data/genes.fasta') if test_bio: - assert str(self.fasta['KF435150.1'][:].reverse.complement) == str(self.seqio['KF435150.1'].reverse_complement().seq) + with open('data/genes.fasta', "rU") as fh: + seqio = SeqIO.to_dict(SeqIO.parse(fh, "fasta")) + assert str(fasta['gi|557361099|gb|KF435150.1|'][:].reverse.complement) == str(seqio['gi|557361099|gb|KF435150.1|'].reverse_complement().seq) else: raise SkipTest diff --git a/tests/test_faidx.py b/tests/test_faidx.py index 1b1ca43..805ae30 100644 --- a/tests/test_faidx.py +++ b/tests/test_faidx.py @@ -2,16 +2,21 @@ from pyfaidx import FastaIndexingError, BedError, FetchError from pyfaidx.cli import main from nose.tools import raises +from unittest import TestCase path = os.path.dirname(__file__) os.chdir(path) -class TestCLI: +class TestCLI(TestCase): + def setUp(self): + pass - @raises(FastaIndexingError) - def test_short_line_lengths(self): - main(['data/short_line.fasta']) + def tearDown(self): + try: + os.remove('data/genes.fasta.fai') + except FileNotFoundError: + pass # some tests may delete this file @raises(BedError) def test_short_line_lengths(self): @@ -21,10 +26,10 @@ def test_fetch_whole_file(self): main(['data/genes.fasta']) def test_split_entry(self): - main(['--split-files', 'data/genes.fasta', 'KF435150.1']) - assert os.path.exists('KF435150.1.fasta') - os.remove('KF435150.1.fasta') + main(['--split-files', 'data/genes.fasta', 'gi|557361099|gb|KF435150.1|']) + assert os.path.exists('gi557361099gbKF435150.1.fasta') + os.remove('gi557361099gbKF435150.1.fasta') @raises(FetchError) def test_fetch_error(self): - main(['data/genes.fasta', 'KF435150.1:1-1000']) + main(['data/genes.fasta', 'gi|557361099|gb|KF435150.1|:1-1000']) diff --git a/tests/test_feature_bounds_check.py b/tests/test_feature_bounds_check.py index a1cd45e..e12437f 100644 --- a/tests/test_feature_bounds_check.py +++ b/tests/test_feature_bounds_check.py @@ -1,17 +1,23 @@ import os from pyfaidx import Faidx, FetchError from nose.tools import raises +from unittest import TestCase path = os.path.dirname(__file__) os.chdir(path) class TestFeatureBoundsCheck: - def __init__(self): - self.fasta = os.path.join(path, 'data/genes.fasta') - self.faidx = Faidx(self.fasta) - self.faidx_strict = Faidx(self.fasta, strict_bounds=True) + def setUp(self): + pass + + def tearDown(self): + try: + os.remove('data/genes.fasta.fai') + except FileNotFoundError: + pass # some tests may delete this file def test_fetch_whole_entry(self): + faidx = Faidx('data/genes.fasta') expect = ('ATGACATCATTTTCCACCTCTGCTCAGTGTTCAACATCTGA' 'CAGTGCTTGCAGGATCTCTCCTGGACAAATCAATCAGGTACGACCA' 'AAACTGCCGCTTTTGAAGATTTTGCATGCAGCAGGTGCGCAAGG' @@ -22,38 +28,43 @@ def test_fetch_whole_entry(self): 'AGCCACTGCTACTACAGCAAAGTGCAGAGGAAAGTTCCACTTCCAGAAAAA' 'GAACTACAGAAGACGATATCCCCACACTGCCTACCTCAGAGCATAAATGCA' 'TACATTCTAGAGAAGGTGATTGAAGTGGGAAAAAATGATGACCTGGAGGACTC') - result = self.faidx.fetch('KF435150.1', + result = faidx.fetch('gi|557361099|gb|KF435150.1|', 1, 482) assert str(result) == expect def test_fetch_middle(self): + faidx = Faidx('data/genes.fasta') expect = 'TTGAAGATTTTGCATGCAGCAGGTGCGCAAGGTGAAATGTTCACTGTTAAA' - result = self.faidx.fetch('KF435150.1', + result = faidx.fetch('gi|557361099|gb|KF435150.1|', 100, 150) assert str(result) == expect def test_fetch_end(self): + faidx = Faidx('data/genes.fasta') expect = 'TC' - result = self.faidx.fetch('KF435150.1', + result = faidx.fetch('gi|557361099|gb|KF435150.1|', 480, 482) assert str(result) == expect def test_fetch_border(self): """ Fetch past the end of a gene entry """ + faidx = Faidx('data/genes.fasta') expect = 'TC' - result = self.faidx.fetch('KF435150.1', + result = faidx.fetch('gi|557361099|gb|KF435150.1|', 480, 500) assert str(result) == expect def test_rev(self): + faidx = Faidx('data/genes.fasta') expect = 'GA' - result = self.faidx.fetch('KF435150.1', + result = faidx.fetch('gi|557361099|gb|KF435150.1|', 480, 482) assert str(-result) == expect, result @raises(FetchError) def test_fetch_past_bounds(self): """ Fetch past the end of a gene entry """ + faidx = Faidx('data/genes.fasta', strict_bounds=True) expect = 'TC' - result = self.faidx_strict.fetch('KF435150.1', + result = faidx.fetch('gi|557361099|gb|KF435150.1|', 480, 5000) diff --git a/tests/test_feature_default_seq.py b/tests/test_feature_default_seq.py index 34078ef..6bdb187 100644 --- a/tests/test_feature_default_seq.py +++ b/tests/test_feature_default_seq.py @@ -1,17 +1,24 @@ import os from pyfaidx import Faidx +from unittest import TestCase path = os.path.dirname(__file__) os.chdir(path) -class TestFeatureDefaultSeq: - def __init__(self): - self.fasta = os.path.join(path, 'data/genes.fasta') - self.faidx = Faidx(self.fasta, default_seq='N') +class TestFeatureDefaultSeq(TestCase): + def setUp(self): + pass + + def tearDown(self): + try: + os.remove('data/genes.fasta.fai') + except FileNotFoundError: + pass # some tests may delete this file def test_fetch_border_padded(self): """ Fetch past the end of a gene entry """ + faidx = Faidx('data/genes.fasta', default_seq='N') expect = 'TCNNNNNNNNNNNNNNNNNNN' - result = self.faidx.fetch('KF435150.1', + result = faidx.fetch('gi|557361099|gb|KF435150.1|', 480, 500) assert str(result) == expect diff --git a/tests/test_feature_indexing.py b/tests/test_feature_indexing.py index ef636ff..c2bbe1c 100644 --- a/tests/test_feature_indexing.py +++ b/tests/test_feature_indexing.py @@ -2,63 +2,162 @@ from os.path import getmtime from pyfaidx import Faidx, FastaIndexingError from nose.tools import raises +from unittest import TestCase +from tempfile import NamedTemporaryFile +import time path = os.path.dirname(__file__) os.chdir(path) -class TestIndexing: +class TestIndexing(TestCase): + def setUp(self): + pass - def __init__(self): - self.fai = 'data/genes.fasta.fai' - self.expect = 'data/expect/genes.fasta.fai' - self.samtools = 'data/expect/genes.fasta.fai.samtools' - self.fasta = 'data/genes.fasta' - self.faidx = Faidx(self.fasta) - - def teardownclass(self): - os.remove(self.faidx.indexname) + def tearDown(self): + try: + os.remove('data/genes.fasta.fai') + except FileNotFoundError: + pass # some tests may delete this file def test_build(self): - with open(self.expect, 'r') as fai: - expect = fai.read() - with open(self.faidx.indexname, 'r') as fai: - result = fai.read() - assert result == expect - - def test_samtools_compare(self): - with open(self.samtools, 'r') as expect: - expect = expect.read() - with open(self.faidx.indexname, 'r') as fai: - result = fai.read() - assert result == expect + expect_index = ("gi|563317589|dbj|AB821309.1| 3510 114 70 71\n" + "gi|557361099|gb|KF435150.1| 481 3789 70 71\n" + "gi|557361097|gb|KF435149.1| 642 4368 70 71\n" + "gi|543583796|ref|NR_104216.1| 4573 5141 70 71\n" + "gi|543583795|ref|NR_104215.1| 5317 9901 70 71\n" + "gi|543583794|ref|NR_104212.1| 5374 15415 70 71\n" + "gi|543583788|ref|NM_001282545.1| 4170 20980 70 71\n" + "gi|543583786|ref|NM_001282543.1| 5466 25324 70 71\n" + "gi|543583785|ref|NM_000465.3| 5523 30980 70 71\n" + "gi|543583740|ref|NM_001282549.1| 3984 36696 70 71\n" + "gi|543583738|ref|NM_001282548.1| 4113 40851 70 71\n" + "gi|530384540|ref|XM_005249645.1| 2752 45151 70 71\n" + "gi|530384538|ref|XM_005249644.1| 3004 48071 70 71\n" + "gi|530384536|ref|XM_005249643.1| 3109 51246 70 71\n" + "gi|530384534|ref|XM_005249642.1| 3097 54528 70 71\n" + "gi|530373237|ref|XM_005265508.1| 2794 57830 70 71\n" + "gi|530373235|ref|XM_005265507.1| 2848 60824 70 71\n" + "gi|530364726|ref|XR_241081.1| 1009 63849 70 71\n" + "gi|530364725|ref|XR_241080.1| 4884 65009 70 71\n" + "gi|530364724|ref|XR_241079.1| 2819 70099 70 71\n") + index_file = Faidx('data/genes.fasta').indexname + result_index = open(index_file).read() + assert result_index == expect_index def test_order(self): - with open(self.expect, 'r') as fai: - expect = [line.split()[0] for line in fai] - result = list(self.faidx.index.keys()) - assert result == expect + order = ("gi|563317589|dbj|AB821309.1|", + "gi|557361099|gb|KF435150.1|", + "gi|557361097|gb|KF435149.1|", + "gi|543583796|ref|NR_104216.1|", + "gi|543583795|ref|NR_104215.1|", + "gi|543583794|ref|NR_104212.1|", + "gi|543583788|ref|NM_001282545.1|", + "gi|543583786|ref|NM_001282543.1|", + "gi|543583785|ref|NM_000465.3|", + "gi|543583740|ref|NM_001282549.1|", + "gi|543583738|ref|NM_001282548.1|", + "gi|530384540|ref|XM_005249645.1|", + "gi|530384538|ref|XM_005249644.1|", + "gi|530384536|ref|XM_005249643.1|", + "gi|530384534|ref|XM_005249642.1|", + "gi|530373237|ref|XM_005265508.1|", + "gi|530373235|ref|XM_005265507.1|", + "gi|530364726|ref|XR_241081.1|", + "gi|530364725|ref|XR_241080.1|", + "gi|530364724|ref|XR_241079.1|") + result = tuple(Faidx('data/genes.fasta').index.keys()) + assert result == order - def test_remove_bad_index(self): - try: - Faidx('data/short_line.fasta') - except FastaIndexingError: - pass - assert not os.path.exists('data/short_line.fasta.fai') + def test_valgrind_short_lines(self): + """ Makes all full-length lines short and checks that error is raised + in all appropriate circumstances. + """ + indexed = [] + with open('data/genes.fasta') as genes: + fasta = genes.readlines() + n_lines = sum(1 for line in fasta) + for n in range(n_lines): + with NamedTemporaryFile(mode='w') as lines: + for i, line in enumerate(fasta): + if i == n and line[0] != '>' and len(line) == 71: + line = line[:-3] + '\n' + full_line = True + elif i == n: + full_line = False + lines.write(line) + lines.flush() + name = lines.name + if full_line: + try: + Faidx(name) + indexed.append(True) + except FastaIndexingError: + indexed.append(False) + assert not any(indexed) - @raises(FastaIndexingError) - def test_short_line_lengths(self): - Faidx('data/short_line.fasta') + def test_valgrind_long_lines(self): + """ Makes all full-length lines long and checks that error is raised + in all appropriate circumstances. + """ + indexed = [] + with open('data/genes.fasta') as genes: + fasta = genes.readlines() + n_lines = sum(1 for line in fasta) + for n in range(n_lines): + with NamedTemporaryFile(mode='w') as lines: + for i, line in enumerate(fasta): + if i == n and line[0] != '>' and len(line) == 71: + line = line.rstrip('\n') + 'NNN' + '\n' + full_line = True + elif i == n: + full_line = False + lines.write(line) + lines.flush() + name = lines.name + if full_line: + try: + Faidx(name) + indexed.append(True) + except FastaIndexingError: + indexed.append(False) + assert not any(indexed) - @raises(FastaIndexingError) - def test_long_line_lengths(self): - Faidx('data/long_line.fasta') + def test_valgrind_blank_lines(self): + """ Makes all full-length lines blank and checks that error is raised + in all appropriate circumstances. + """ + indexed = [] + with open('data/genes.fasta') as genes: + fasta = genes.readlines() + n_lines = sum(1 for line in fasta) + for n in range(n_lines): + with NamedTemporaryFile(mode='w') as lines: + for i, line in enumerate(fasta): + if i == n and line[0] != '>' and len(line) == 71: + line = '\n' + full_line = True + elif i == n: + full_line = False + lines.write(line) + lines.flush() + name = lines.name + if full_line: + try: + Faidx(name) + indexed.append(True) + except FastaIndexingError: + indexed.append(False) + assert not any(indexed) def test_reindex_on_modification(self): """ This test ensures that the index is regenerated when the FASTA modification time is newer than the index modification time. mdshw5/pyfaidx#50 """ - index_mtime = getmtime(self.fai) - os.utime(self.fasta, (index_mtime + 10, ) * 2) - Faidx(self.fasta) - assert getmtime(self.fai) > index_mtime + faidx = Faidx('data/genes.fasta') + index_mtime = getmtime(faidx.indexname) + faidx.close() + os.utime('data/genes.fasta', (index_mtime + 10, ) * 2) + time.sleep(2) + faidx = Faidx('data/genes.fasta') + assert getmtime(faidx.indexname) > index_mtime diff --git a/tests/test_feature_key_function.py b/tests/test_feature_key_function.py index 2a9944a..3fa2285 100644 --- a/tests/test_feature_key_function.py +++ b/tests/test_feature_key_function.py @@ -1,23 +1,24 @@ import os from pyfaidx import Faidx, Fasta from nose.tools import raises +from unittest import TestCase path = os.path.dirname(__file__) os.chdir(path) ACCESSION_TO_GENE_NAME_DICT = { - 'AB821309.1': 'FGFR2', - 'KF435150.1': 'MDM4', - 'NR_104216.1': 'BARD1', + 'gi|563317589|dbj|AB821309.1|': 'FGFR2', + 'gi|557361099|gb|KF435150.1|': 'MDM4', + 'gi|543583796|ref|NR_104216.1|': 'BARD1', # The rest are deliberately omitted # KF435149.1, NR_104215.1, NR_104212.1, NM_001282545.1 ... } ACCESSION_TO_DUPLICATED_GENE_NAME_DICT = { - 'AB821309.1': 'FGFR2', - 'KF435150.1': 'MDM4', - 'NR_104216.1': 'BARD1', - 'NR_104215.1': 'BARD1', # Duplicated gene names will trigger a warning + 'gi|563317589|dbj|AB821309.1|': 'FGFR2', + 'gi|557361099|gb|KF435150.1|': 'MDM4', + 'gi|543583796|ref|NR_104216.1|': 'BARD1', + 'gi|543583795|ref|NR_104215.1|': 'BARD1', # Duplicated gene names will trigger a warning # The rest are deliberately omitted # KF435149.1, NR_104212.1, NM_001282545.1 ... } @@ -31,28 +32,35 @@ def get_duplicated_gene_name(accession): return ACCESSION_TO_DUPLICATED_GENE_NAME_DICT.get(accession, accession) -class TestFeatureKeyFunction: - def __init__(self): - self.fasta = os.path.join(path, 'data/genes.fasta') - self.faidx = Faidx(self.fasta, key_function=get_gene_name) - self.genes = Fasta(self.fasta, key_function=get_gene_name) +class TestFeatureKeyFunction(TestCase): + def setUp(self): + pass + + def tearDown(self): + try: + os.remove('data/genes.fasta.fai') + except FileNotFoundError: + pass # some tests may delete this file def test_keys(self): - expect = ['BARD1', 'FGFR2', 'KF435149.1', 'MDM4', 'NM_000465.3', 'NM_001282543.1', 'NM_001282545.1', 'NM_001282548.1', 'NM_001282549.1', 'NR_104212.1', 'NR_104215.1', 'XM_005249642.1', 'XM_005249643.1', 'XM_005249644.1', 'XM_005249645.1', 'XM_005265507.1', 'XM_005265508.1', 'XR_241079.1', 'XR_241080.1', 'XR_241081.1'] - result = sorted(self.genes.keys()) + genes = Fasta('data/genes.fasta', key_function=get_gene_name) + expect = ['BARD1', 'FGFR2', 'MDM4', 'gi|530364724|ref|XR_241079.1|', 'gi|530364725|ref|XR_241080.1|', 'gi|530364726|ref|XR_241081.1|', 'gi|530373235|ref|XM_005265507.1|', 'gi|530373237|ref|XM_005265508.1|', 'gi|530384534|ref|XM_005249642.1|', 'gi|530384536|ref|XM_005249643.1|', 'gi|530384538|ref|XM_005249644.1|', 'gi|530384540|ref|XM_005249645.1|', 'gi|543583738|ref|NM_001282548.1|', 'gi|543583740|ref|NM_001282549.1|', 'gi|543583785|ref|NM_000465.3|', 'gi|543583786|ref|NM_001282543.1|', 'gi|543583788|ref|NM_001282545.1|', 'gi|543583794|ref|NR_104212.1|', 'gi|543583795|ref|NR_104215.1|', 'gi|557361097|gb|KF435149.1|'] + result = sorted(genes.keys()) assert result == expect def test_key_function_by_dictionary_get_key(self): + genes = Fasta('data/genes.fasta', key_function=get_gene_name) expect = 'TTGAAGATTTTGCATGCAGCAGGTGCGCAAGGTGAAATGTTCACTGTTAAA' - result = self.genes['MDM4'][100-1:150] + result = genes['MDM4'][100-1:150] assert str(result) == expect def test_key_function_by_fetch(self): + faidx = Faidx('data/genes.fasta', key_function=get_gene_name) expect = 'TTGAAGATTTTGCATGCAGCAGGTGCGCAAGGTGAAATGTTCACTGTTAAA' - result = self.faidx.fetch('MDM4', + result = faidx.fetch('MDM4', 100, 150) assert str(result) == expect @raises(ValueError) def test_duplicated_keys(self): - genes = Fasta(self.fasta, key_function=get_duplicated_gene_name) + genes = Fasta('data/genes.fasta', key_function=get_duplicated_gene_name) diff --git a/tests/test_feature_read_ahead_buffer.py b/tests/test_feature_read_ahead_buffer.py index abba8a2..ae8ec88 100644 --- a/tests/test_feature_read_ahead_buffer.py +++ b/tests/test_feature_read_ahead_buffer.py @@ -1,35 +1,44 @@ import os from pyfaidx import Faidx, Fasta, FetchError from nose.tools import raises +from unittest import TestCase path = os.path.dirname(__file__) os.chdir(path) -class TestFeatureBuffer: - def __init__(self): - self.fasta = os.path.join(path, 'data/genes.fasta') - self.genes_buffer = Fasta(self.fasta, read_ahead=300, strict_bounds=True) - self.genes = Fasta(self.fasta) +class TestFeatureBuffer(TestCase): + def setUp(self): + pass + + def tearDown(self): + try: + os.remove('data/genes.fasta.fai') + except FileNotFoundError: + pass # some tests may delete this file def test_buffer_false(self): + fasta = Fasta('data/genes.fasta', strict_bounds=True) expect = 'TTGAAGATTTTGCATGCAGCAGGTGCGCAAGGTGAAATGTTCACTGTTAAA'.lower() - result = self.genes['KF435150.1'][100-1:150].seq.lower() + result = fasta['gi|557361099|gb|KF435150.1|'][100-1:150].seq.lower() assert result == expect def test_buffer_true(self): + fasta = Fasta('data/genes.fasta', read_ahead=300, strict_bounds=True) expect = 'TTGAAGATTTTGCATGCAGCAGGTGCGCAAGGTGAAATGTTCACTGTTAAA'.lower() - result = self.genes_buffer['KF435150.1'][100-1:150].seq.lower() + result = fasta['gi|557361099|gb|KF435150.1|'][100-1:150].seq.lower() assert result == expect def test_buffer_exceed(self): + fasta = Fasta('data/genes.fasta', read_ahead=300, strict_bounds=True) expect = 'atgacatcattttccacctctgctcagtgttcaacatctgacagtgcttgcaggatctctcctggacaaatcaatcaggtacgaccaaaactgccgcttttgaagattttgcatgcagcaggtgcgcaaggtgaaatgttcactgttaaagaggtcatgcactatttaggtcagtacataatggtgaagcaactttatgatcagcaggagcagcatatggtatattgtggtggagatcttttgggagaactactgggacgtcagagcttctccgtgaaagacccaagccctctctatgatatgctaagaaagaatcttgtcactttagccactgctactacagcaaagtgcagaggaaagttccacttccagaaaaagaactacagaagacgatatcccc' - result = self.genes_buffer['KF435150.1'][0:400].seq.lower() + result = fasta['gi|557361099|gb|KF435150.1|'][0:400].seq.lower() assert result == expect @raises(FetchError) def test_bounds_error(self): - result = self.genes_buffer['KF435150.1'][100-1:15000].seq.lower() + fasta = Fasta('data/genes.fasta', read_ahead=300, strict_bounds=True) + result = fasta['gi|557361099|gb|KF435150.1|'][100-1:15000].seq.lower() @raises(ValueError) def test_buffer_value(self): - Fasta(self.fasta, read_ahead = 0.5) + Fasta('data/genes.fasta', read_ahead=0.5) diff --git a/tests/test_feature_sequence_as_raw.py b/tests/test_feature_sequence_as_raw.py index 0d0aa79..8b2ed2a 100644 --- a/tests/test_feature_sequence_as_raw.py +++ b/tests/test_feature_sequence_as_raw.py @@ -1,35 +1,45 @@ import os from pyfaidx import Faidx, Fasta from nose.tools import raises +from unittest import TestCase path = os.path.dirname(__file__) os.chdir(path) -class TestFeatureSequenceAsRaw: - def __init__(self): - self.fasta = os.path.join(path, 'data/genes.fasta') - self.genes = Fasta(self.fasta) - self.genes_as_raw = Fasta(self.fasta, as_raw=True) +class TestFeatureSequenceAsRaw(TestCase): + def setUp(self): + pass + + def tearDown(self): + try: + os.remove('data/genes.fasta.fai') + except FileNotFoundError: + pass # some tests may delete this file def test_as_raw_false(self): + fasta = Fasta('data/genes.fasta') expect = 'TTGAAGATTTTGCATGCAGCAGGTGCGCAAGGTGAAATGTTCACTGTTAAA'.lower() - result = self.genes['KF435150.1'][100-1:150].seq.lower() + result = fasta['gi|557361099|gb|KF435150.1|'][100-1:150].seq.lower() assert result == expect def test_as_raw_true(self): + fasta = Fasta('data/genes.fasta', as_raw=True) expect = 'TTGAAGATTTTGCATGCAGCAGGTGCGCAAGGTGAAATGTTCACTGTTAAA'.lower() - result = self.genes_as_raw['KF435150.1'][100-1:150].lower() + result = fasta['gi|557361099|gb|KF435150.1|'][100-1:150].lower() assert result == expect @raises(AttributeError) def test_as_raw_false_error(self): - result = self.genes['KF435150.1'][100-1:150].lower() + fasta = Fasta('data/genes.fasta') + result = fasta['gi|557361099|gb|KF435150.1|'][100-1:150].lower() @raises(AttributeError) def test_as_raw_true_error(self): - result = self.genes_as_raw['KF435150.1'][100-1:150].seq.lower() + fasta = Fasta('data/genes.fasta', as_raw=True) + result = fasta['gi|557361099|gb|KF435150.1|'][100-1:150].seq.lower() def test_as_raw_type_when_blen_lt_0(self): + fasta = Fasta('data/genes.fasta', as_raw=True) expect = '' - result = self.genes_as_raw.faidx.fetch('KF435150.1', 10, 0) + result = fasta.faidx.fetch('gi|557361099|gb|KF435150.1|', 10, 0) assert result == expect diff --git a/tests/test_feature_split_char.py b/tests/test_feature_split_char.py index 9ce8c73..252a4cf 100644 --- a/tests/test_feature_split_char.py +++ b/tests/test_feature_split_char.py @@ -1,29 +1,37 @@ import os from pyfaidx import Faidx, Fasta from nose.tools import raises +from unittest import TestCase path = os.path.dirname(__file__) os.chdir(path) -class TestFeatureSplitChar: - def __init__(self): - self.fasta = os.path.join(path, 'data/genes.fasta') - self.faidx = Faidx(self.fasta, split_char='.') - self.genes = Fasta(self.fasta, split_char='.') +class TestFeatureSplitChar(TestCase): + def setUp(self): + pass + + def tearDown(self): + try: + os.remove('data/genes.fasta.fai') + except FileNotFoundError: + pass # some tests may delete this file def test_keys(self): - expect = ['3', 'AB821309', 'KF435149', 'KF435150', 'NM_000465', 'NM_001282543', 'NM_001282545', 'NM_001282548', 'NM_001282549', 'NR_104212', 'NR_104215', 'NR_104216', 'XM_005249642', 'XM_005249643', 'XM_005249644', 'XM_005249645', 'XM_005265507', 'XM_005265508', 'XR_241079', 'XR_241080', 'XR_241081'] - result = sorted(self.genes.keys()) + fasta = Fasta('data/genes.fasta', split_char='|') + expect = ['530364724', '530364725', '530364726', '530373235', '530373237', '530384534', '530384536', '530384538', '530384540', '543583738', '543583740', '543583785', '543583786', '543583788', '543583794', '543583795', '543583796', '557361097', '557361099', '563317589', 'AB821309.1', 'KF435149.1', 'KF435150.1', 'NM_000465.3', 'NM_001282543.1', 'NM_001282545.1', 'NM_001282548.1', 'NM_001282549.1', 'NR_104212.1', 'NR_104215.1', 'NR_104216.1', 'XM_005249642.1', 'XM_005249643.1', 'XM_005249644.1', 'XM_005249645.1', 'XM_005265507.1', 'XM_005265508.1', 'XR_241079.1', 'XR_241080.1', 'XR_241081.1', 'dbj'] + result = sorted(fasta.keys()) assert result == expect def test_key_function_by_dictionary_get_key(self): + fasta = Fasta('data/genes.fasta', split_char='|') expect = 'TTGAAGATTTTGCATGCAGCAGGTGCGCAAGGTGAAATGTTCACTGTTAAA' - result = self.genes['KF435150'][100-1:150] + result = fasta['KF435150.1'][100-1:150] assert str(result) == expect def test_key_function_by_fetch(self): + faidx = Faidx('data/genes.fasta', split_char='|') expect = 'TTGAAGATTTTGCATGCAGCAGGTGCGCAAGGTGAAATGTTCACTGTTAAA' - result = self.faidx.fetch('KF435150', + result = faidx.fetch('KF435150.1', 100, 150) assert str(result) == expect diff --git a/tests/test_sequence_class.py b/tests/test_sequence_class.py index 044b08c..a2f04d9 100644 --- a/tests/test_sequence_class.py +++ b/tests/test_sequence_class.py @@ -1,10 +1,10 @@ from pyfaidx import Sequence, complement from nose.tools import assert_raises, raises -seq = Sequence(name='KF435150.1', seq='TTGAAGATTTTGCATGCAGCAGGTGCGCAAGGTGAAATGTTCACTGTTAAA', +seq = Sequence(name='gi|557361099|gb|KF435150.1|', seq='TTGAAGATTTTGCATGCAGCAGGTGCGCAAGGTGAAATGTTCACTGTTAAA', start=100, end=150) -seq_invalid = Sequence(name='KF435150.1', seq='TTGAAGATTTPGCATGCAGCAGGTGCGCAAGGTGAAATNTTCACTGTTAAA', +seq_invalid = Sequence(name='gi|557361099|gb|KF435150.1|', seq='TTGAAGATTTPGCATGCAGCAGGTGCGCAAGGTGAAATNTTCACTGTTAAA', start=100, end=150) comp_valid = 'TTGAAGATTTnGCATGCAGCAGGtgccaAGGTGAAATGTTNACTGTTAAA' From e4b51ba58c0fe8bd34067d2f949195579fb37362 Mon Sep 17 00:00:00 2001 From: Matt Shirley Date: Mon, 2 Mar 2015 13:16:03 -0500 Subject: [PATCH 3/8] Bump version number. --- pyfaidx/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyfaidx/__init__.py b/pyfaidx/__init__.py index b987629..d977df9 100644 --- a/pyfaidx/__init__.py +++ b/pyfaidx/__init__.py @@ -21,7 +21,7 @@ dna_bases = re.compile(r'([ACTGNactgnYRWSKMDVHBXyrwskmdvhbx]+)') -__version__ = '0.3.5' +__version__ = '0.3.6' class FastaIndexingError(Exception): From 549a9cc89b3e8545bd5c7159f103933942e0954d Mon Sep 17 00:00:00 2001 From: Matt Shirley Date: Mon, 2 Mar 2015 14:10:14 -0500 Subject: [PATCH 4/8] Catch base IOError for Python2 compatibility. Try installing biopython under system python for testing Python3.2. --- .travis.yml | 3 ++- tests/test_FastaRecord_iter.py | 2 +- tests/test_Fasta_integer_index.py | 2 +- tests/test_MutableFastaRecord.py | 6 +++--- tests/test_bio_seqio.py | 2 +- tests/test_faidx.py | 2 +- tests/test_feature_bounds_check.py | 2 +- tests/test_feature_default_seq.py | 2 +- tests/test_feature_indexing.py | 2 +- tests/test_feature_key_function.py | 2 +- tests/test_feature_read_ahead_buffer.py | 2 +- tests/test_feature_sequence_as_raw.py | 2 +- tests/test_feature_split_char.py | 2 +- 13 files changed, 16 insertions(+), 15 deletions(-) diff --git a/.travis.yml b/.travis.yml index 464e5db..b63bf78 100644 --- a/.travis.yml +++ b/.travis.yml @@ -13,7 +13,8 @@ install: - pip install -e . - pip install coveralls before_script: - - python tests/data/download_gene_fasta.py + - /usr/bin/pip install --user biopython + - /usr/bin/python tests/data/download_gene_fasta.py script: nosetests --with-coverage --cover-package=pyfaidx deploy: provider: pypi diff --git a/tests/test_FastaRecord_iter.py b/tests/test_FastaRecord_iter.py index c8dab49..3f32061 100644 --- a/tests/test_FastaRecord_iter.py +++ b/tests/test_FastaRecord_iter.py @@ -13,7 +13,7 @@ def setUp(self): def tearDown(self): try: os.remove('data/genes.fasta.fai') - except FileNotFoundError: + except IOError: pass # some tests may delete this file def test_fetch_whole_fasta(self): diff --git a/tests/test_Fasta_integer_index.py b/tests/test_Fasta_integer_index.py index fcf364f..cc7f992 100644 --- a/tests/test_Fasta_integer_index.py +++ b/tests/test_Fasta_integer_index.py @@ -12,7 +12,7 @@ def setUp(self): def tearDown(self): try: os.remove('data/genes.fasta.fai') - except FileNotFoundError: + except IOError: pass # some tests may delete this file def test_integer_slice(self): diff --git a/tests/test_MutableFastaRecord.py b/tests/test_MutableFastaRecord.py index cde4564..38cab1f 100644 --- a/tests/test_MutableFastaRecord.py +++ b/tests/test_MutableFastaRecord.py @@ -15,15 +15,15 @@ def setUp(self): def tearDown(self): try: os.remove('data/genes.fasta.fai') - except FileNotFoundError: + except IOError: pass # some tests may delete this file try: os.remove('data/genes_mutable.fasta') - except FileNotFoundError: + except IOError: pass # some tests may delete this file try: os.remove('data/genes_mutable.fasta.fai') - except FileNotFoundError: + except IOError: pass # some tests may delete this file def test_mutate_fasta_to_same(self): diff --git a/tests/test_bio_seqio.py b/tests/test_bio_seqio.py index fce255c..d0d3a5a 100644 --- a/tests/test_bio_seqio.py +++ b/tests/test_bio_seqio.py @@ -18,7 +18,7 @@ def setUp(self): def tearDown(self): try: os.remove('data/genes.fasta.fai') - except FileNotFoundError: + except IOError: pass # some tests may delete this file def test_fetch_whole_entry(self): diff --git a/tests/test_faidx.py b/tests/test_faidx.py index 805ae30..a46c35b 100644 --- a/tests/test_faidx.py +++ b/tests/test_faidx.py @@ -15,7 +15,7 @@ def setUp(self): def tearDown(self): try: os.remove('data/genes.fasta.fai') - except FileNotFoundError: + except IOError: pass # some tests may delete this file @raises(BedError) diff --git a/tests/test_feature_bounds_check.py b/tests/test_feature_bounds_check.py index e12437f..053ce18 100644 --- a/tests/test_feature_bounds_check.py +++ b/tests/test_feature_bounds_check.py @@ -13,7 +13,7 @@ def setUp(self): def tearDown(self): try: os.remove('data/genes.fasta.fai') - except FileNotFoundError: + except IOError: pass # some tests may delete this file def test_fetch_whole_entry(self): diff --git a/tests/test_feature_default_seq.py b/tests/test_feature_default_seq.py index 6bdb187..d1438f5 100644 --- a/tests/test_feature_default_seq.py +++ b/tests/test_feature_default_seq.py @@ -12,7 +12,7 @@ def setUp(self): def tearDown(self): try: os.remove('data/genes.fasta.fai') - except FileNotFoundError: + except IOError: pass # some tests may delete this file def test_fetch_border_padded(self): diff --git a/tests/test_feature_indexing.py b/tests/test_feature_indexing.py index c2bbe1c..3e37d32 100644 --- a/tests/test_feature_indexing.py +++ b/tests/test_feature_indexing.py @@ -17,7 +17,7 @@ def setUp(self): def tearDown(self): try: os.remove('data/genes.fasta.fai') - except FileNotFoundError: + except IOError: pass # some tests may delete this file def test_build(self): diff --git a/tests/test_feature_key_function.py b/tests/test_feature_key_function.py index 3fa2285..8689ef5 100644 --- a/tests/test_feature_key_function.py +++ b/tests/test_feature_key_function.py @@ -39,7 +39,7 @@ def setUp(self): def tearDown(self): try: os.remove('data/genes.fasta.fai') - except FileNotFoundError: + except IOError: pass # some tests may delete this file def test_keys(self): diff --git a/tests/test_feature_read_ahead_buffer.py b/tests/test_feature_read_ahead_buffer.py index ae8ec88..7c76292 100644 --- a/tests/test_feature_read_ahead_buffer.py +++ b/tests/test_feature_read_ahead_buffer.py @@ -13,7 +13,7 @@ def setUp(self): def tearDown(self): try: os.remove('data/genes.fasta.fai') - except FileNotFoundError: + except IOError: pass # some tests may delete this file def test_buffer_false(self): diff --git a/tests/test_feature_sequence_as_raw.py b/tests/test_feature_sequence_as_raw.py index 8b2ed2a..c7d9ac2 100644 --- a/tests/test_feature_sequence_as_raw.py +++ b/tests/test_feature_sequence_as_raw.py @@ -13,7 +13,7 @@ def setUp(self): def tearDown(self): try: os.remove('data/genes.fasta.fai') - except FileNotFoundError: + except IOError: pass # some tests may delete this file def test_as_raw_false(self): diff --git a/tests/test_feature_split_char.py b/tests/test_feature_split_char.py index 252a4cf..9ae68c8 100644 --- a/tests/test_feature_split_char.py +++ b/tests/test_feature_split_char.py @@ -14,7 +14,7 @@ def setUp(self): def tearDown(self): try: os.remove('data/genes.fasta.fai') - except FileNotFoundError: + except IOError: pass # some tests may delete this file def test_keys(self): From 49286fcabe277b013723ac7333f6a7905dbf0de6 Mon Sep 17 00:00:00 2001 From: Matt Shirley Date: Mon, 2 Mar 2015 14:15:30 -0500 Subject: [PATCH 5/8] Update apt cache. --- .travis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index b63bf78..ed96fcf 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,5 +1,4 @@ language: python -sudo: false python: - '3.4' - '3.3' @@ -13,7 +12,8 @@ install: - pip install -e . - pip install coveralls before_script: - - /usr/bin/pip install --user biopython + - sudo apt-get update -qq + - sudo apt-get install -y python-biopython - /usr/bin/python tests/data/download_gene_fasta.py script: nosetests --with-coverage --cover-package=pyfaidx deploy: From 81fbe8025bf4cc7d03ad8f09619d625c70abcb6e Mon Sep 17 00:00:00 2001 From: Matt Shirley Date: Mon, 2 Mar 2015 14:28:21 -0500 Subject: [PATCH 6/8] Catch OSError in Python3.2. (Damn you, Python3.2) --- tests/test_FastaRecord_iter.py | 2 +- tests/test_Fasta_integer_index.py | 2 +- tests/test_MutableFastaRecord.py | 6 +++--- tests/test_bio_seqio.py | 2 +- tests/test_faidx.py | 2 +- tests/test_feature_bounds_check.py | 2 +- tests/test_feature_default_seq.py | 2 +- tests/test_feature_indexing.py | 2 +- tests/test_feature_key_function.py | 2 +- tests/test_feature_read_ahead_buffer.py | 2 +- tests/test_feature_sequence_as_raw.py | 2 +- tests/test_feature_split_char.py | 2 +- 12 files changed, 14 insertions(+), 14 deletions(-) diff --git a/tests/test_FastaRecord_iter.py b/tests/test_FastaRecord_iter.py index 3f32061..e41b379 100644 --- a/tests/test_FastaRecord_iter.py +++ b/tests/test_FastaRecord_iter.py @@ -13,7 +13,7 @@ def setUp(self): def tearDown(self): try: os.remove('data/genes.fasta.fai') - except IOError: + except EnvironmentError: pass # some tests may delete this file def test_fetch_whole_fasta(self): diff --git a/tests/test_Fasta_integer_index.py b/tests/test_Fasta_integer_index.py index cc7f992..c2628be 100644 --- a/tests/test_Fasta_integer_index.py +++ b/tests/test_Fasta_integer_index.py @@ -12,7 +12,7 @@ def setUp(self): def tearDown(self): try: os.remove('data/genes.fasta.fai') - except IOError: + except EnvironmentError: pass # some tests may delete this file def test_integer_slice(self): diff --git a/tests/test_MutableFastaRecord.py b/tests/test_MutableFastaRecord.py index 38cab1f..f040ebc 100644 --- a/tests/test_MutableFastaRecord.py +++ b/tests/test_MutableFastaRecord.py @@ -15,15 +15,15 @@ def setUp(self): def tearDown(self): try: os.remove('data/genes.fasta.fai') - except IOError: + except EnvironmentError: pass # some tests may delete this file try: os.remove('data/genes_mutable.fasta') - except IOError: + except EnvironmentError: pass # some tests may delete this file try: os.remove('data/genes_mutable.fasta.fai') - except IOError: + except EnvironmentError: pass # some tests may delete this file def test_mutate_fasta_to_same(self): diff --git a/tests/test_bio_seqio.py b/tests/test_bio_seqio.py index d0d3a5a..e1f7ebb 100644 --- a/tests/test_bio_seqio.py +++ b/tests/test_bio_seqio.py @@ -18,7 +18,7 @@ def setUp(self): def tearDown(self): try: os.remove('data/genes.fasta.fai') - except IOError: + except EnvironmentError: pass # some tests may delete this file def test_fetch_whole_entry(self): diff --git a/tests/test_faidx.py b/tests/test_faidx.py index a46c35b..c816721 100644 --- a/tests/test_faidx.py +++ b/tests/test_faidx.py @@ -15,7 +15,7 @@ def setUp(self): def tearDown(self): try: os.remove('data/genes.fasta.fai') - except IOError: + except EnvironmentError: pass # some tests may delete this file @raises(BedError) diff --git a/tests/test_feature_bounds_check.py b/tests/test_feature_bounds_check.py index 053ce18..b884e84 100644 --- a/tests/test_feature_bounds_check.py +++ b/tests/test_feature_bounds_check.py @@ -13,7 +13,7 @@ def setUp(self): def tearDown(self): try: os.remove('data/genes.fasta.fai') - except IOError: + except EnvironmentError: pass # some tests may delete this file def test_fetch_whole_entry(self): diff --git a/tests/test_feature_default_seq.py b/tests/test_feature_default_seq.py index d1438f5..0342bdf 100644 --- a/tests/test_feature_default_seq.py +++ b/tests/test_feature_default_seq.py @@ -12,7 +12,7 @@ def setUp(self): def tearDown(self): try: os.remove('data/genes.fasta.fai') - except IOError: + except EnvironmentError: pass # some tests may delete this file def test_fetch_border_padded(self): diff --git a/tests/test_feature_indexing.py b/tests/test_feature_indexing.py index 3e37d32..26ebd5b 100644 --- a/tests/test_feature_indexing.py +++ b/tests/test_feature_indexing.py @@ -17,7 +17,7 @@ def setUp(self): def tearDown(self): try: os.remove('data/genes.fasta.fai') - except IOError: + except EnvironmentError: pass # some tests may delete this file def test_build(self): diff --git a/tests/test_feature_key_function.py b/tests/test_feature_key_function.py index 8689ef5..fa7dfa1 100644 --- a/tests/test_feature_key_function.py +++ b/tests/test_feature_key_function.py @@ -39,7 +39,7 @@ def setUp(self): def tearDown(self): try: os.remove('data/genes.fasta.fai') - except IOError: + except EnvironmentError: pass # some tests may delete this file def test_keys(self): diff --git a/tests/test_feature_read_ahead_buffer.py b/tests/test_feature_read_ahead_buffer.py index 7c76292..fa05a9b 100644 --- a/tests/test_feature_read_ahead_buffer.py +++ b/tests/test_feature_read_ahead_buffer.py @@ -13,7 +13,7 @@ def setUp(self): def tearDown(self): try: os.remove('data/genes.fasta.fai') - except IOError: + except EnvironmentError: pass # some tests may delete this file def test_buffer_false(self): diff --git a/tests/test_feature_sequence_as_raw.py b/tests/test_feature_sequence_as_raw.py index c7d9ac2..e4396f4 100644 --- a/tests/test_feature_sequence_as_raw.py +++ b/tests/test_feature_sequence_as_raw.py @@ -13,7 +13,7 @@ def setUp(self): def tearDown(self): try: os.remove('data/genes.fasta.fai') - except IOError: + except EnvironmentError: pass # some tests may delete this file def test_as_raw_false(self): diff --git a/tests/test_feature_split_char.py b/tests/test_feature_split_char.py index 9ae68c8..764c41b 100644 --- a/tests/test_feature_split_char.py +++ b/tests/test_feature_split_char.py @@ -14,7 +14,7 @@ def setUp(self): def tearDown(self): try: os.remove('data/genes.fasta.fai') - except IOError: + except EnvironmentError: pass # some tests may delete this file def test_keys(self): From 2927ea14f5cc84e19326361782c3020a474278ba Mon Sep 17 00:00:00 2001 From: Matt Shirley Date: Mon, 2 Mar 2015 14:59:35 -0500 Subject: [PATCH 7/8] Cache test data and don't download from NCBI unless needed. --- .travis.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index ed96fcf..5dd433c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -14,7 +14,7 @@ install: before_script: - sudo apt-get update -qq - sudo apt-get install -y python-biopython - - /usr/bin/python tests/data/download_gene_fasta.py + - if [ ! -e "tests/data/genes.fasta" ]; then /usr/bin/python tests/data/download_gene_fasta.py; fi script: nosetests --with-coverage --cover-package=pyfaidx deploy: provider: pypi @@ -28,5 +28,6 @@ deploy: repo: mdshw5/pyfaidx cache: - wheelhouse + - tests/data after_success: - coveralls From 7335c2d84306989e355340d1060233bad7b1e5c0 Mon Sep 17 00:00:00 2001 From: Matt Shirley Date: Mon, 2 Mar 2015 15:02:15 -0500 Subject: [PATCH 8/8] Cache apt packages. --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index 5dd433c..d80529a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -29,5 +29,6 @@ deploy: cache: - wheelhouse - tests/data + - apt after_success: - coveralls