Mercurial > repos > yufei-luo > s_mart
changeset 23:4541611db314
Deleted selected files
author | m-zytnicki |
---|---|
date | Mon, 29 Apr 2013 03:26:52 -0400 |
parents | 1e3f2c2657a3 |
children | 452e051f6562 |
files | commons/core/coord/test/TestSuite_coord.py commons/core/coord/test/Test_Align.py commons/core/coord/test/Test_AlignUtils.py commons/core/coord/test/Test_ConvCoord.py commons/core/coord/test/Test_F_ConvCoord.py commons/core/coord/test/Test_Map.py commons/core/coord/test/Test_MapUtils.py commons/core/coord/test/Test_Match.py commons/core/coord/test/Test_MatchUtils.py commons/core/coord/test/Test_MergedRange.py commons/core/coord/test/Test_Path.py commons/core/coord/test/Test_PathUtils.py commons/core/coord/test/Test_Range.py commons/core/coord/test/Test_Set.py commons/core/coord/test/Test_SetUtils.py commons/core/coord/test/Test_SlidingWindow.py commons/core/coord/test/__init__.py commons/core/parsing/test/Test_BedParser.py commons/core/parsing/test/Test_BlatFileParser.py commons/core/parsing/test/Test_BlatParser.py commons/core/parsing/test/Test_BlatToGff.py commons/core/parsing/test/Test_BlatToGffForBesPaired.py commons/core/parsing/test/Test_BowtieParser.py commons/core/parsing/test/Test_CoordsParser.py commons/core/parsing/test/Test_CrossSsrAndBesMappedByBlatToGff.py commons/core/parsing/test/Test_F_BlatToGff.py commons/core/parsing/test/Test_F_BlatToGffForBesPaired.py commons/core/parsing/test/Test_F_CrossSsrAndBesMappedByBlatToGff.py commons/core/parsing/test/Test_F_VarscanToVCF.py commons/core/parsing/test/Test_FastaParser.py commons/core/parsing/test/Test_FindRep.py commons/core/parsing/test/Test_GffParser.py commons/core/parsing/test/Test_MapParser.py commons/core/parsing/test/Test_MrepsToSet.py commons/core/parsing/test/Test_Multifasta2SNPFile.py commons/core/parsing/test/Test_Multifasta2SNPFileWriter.py commons/core/parsing/test/Test_PalsToAlign.py commons/core/parsing/test/Test_PathNum2Id.py commons/core/parsing/test/Test_PslParser.py commons/core/parsing/test/Test_SsrParser.py commons/core/parsing/test/Test_VarscanFile.py commons/core/parsing/test/Test_VarscanFileForGnpSNP.py commons/core/parsing/test/Test_VarscanHit.py commons/core/parsing/test/Test_VarscanHitForGnpSNP.py commons/core/parsing/test/Test_VarscanHit_WithTag.py commons/core/parsing/test/Test_VarscanHit_v2_2_8.py commons/core/parsing/test/Test_VarscanHit_v2_2_8_WithTag.py commons/core/parsing/test/Test_VarscanToVCF.py commons/core/parsing/test/Test_WigParser.py commons/core/parsing/test/Test_pilerTAToGrouperMap.py commons/core/parsing/test/__init__.py commons/core/parsing/test/data/ExpPotDooblonsSubSNP.csv commons/core/parsing/test/data/Wig/chr1.wig commons/core/parsing/test/data/realExpBatchLine.csv commons/core/parsing/test/data/realExpIndividual.csv commons/core/parsing/test/data/realExpSequences.fsa commons/core/parsing/test/data/realExpSubSNP.csv commons/core/parsing/test/data/real_multifasta_input.fasta commons/core/parsing/test/data/sampleForTestVarscanToVCF.varscan commons/core/parsing/test/data/test.wig commons/core/parsing/test/data/test1.wig commons/core/parsing/test/data/test2.wig commons/core/parsing/test/data/testBedParser1.bed commons/core/parsing/test/data/testCoordsParser.coords commons/core/parsing/test/data/testCoordsParser_showcoord.coords commons/core/parsing/test/data/testCoordsParser_showcoord_promer.coords commons/core/parsing/test/data/testGffParser1.gff3 commons/core/seq/test/TestClusterConsensusCollection.py commons/core/seq/test/TestSuite_seq.py commons/core/seq/test/Test_AlignedBioseqDB.py commons/core/seq/test/Test_Bioseq.py commons/core/seq/test/Test_BioseqDB.py commons/core/seq/test/Test_BioseqUtils.py commons/core/seq/test/Test_FastaUtils.py commons/core/seq/test/Utils_for_T_FastaUtils.py commons/core/seq/test/__init__.py commons/core/utils/test/TestSuite_utils.py commons/core/utils/test/Test_FileUtils.py commons/core/utils/test/__init__.py commons/core/writer/test/Test_Gff3Writer.py commons/core/writer/test/Test_MapWriter.py commons/core/writer/test/__init__.py |
diffstat | 77 files changed, 0 insertions(+), 25873 deletions(-) [+] |
line wrap: on
line diff
--- a/commons/core/coord/test/TestSuite_coord.py Mon Apr 29 03:26:07 2013 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,70 +0,0 @@ -#!/usr/bin/env python - -# Copyright INRA (Institut National de la Recherche Agronomique) -# http://www.inra.fr -# http://urgi.versailles.inra.fr -# -# This software is governed by the CeCILL license under French law and -# abiding by the rules of distribution of free software. You can use, -# modify and/ or redistribute the software under the terms of the CeCILL -# license as circulated by CEA, CNRS and INRIA at the following URL -# "http://www.cecill.info". -# -# As a counterpart to the access to the source code and rights to copy, -# modify and redistribute granted by the license, users are provided only -# with a limited warranty and the software's author, the holder of the -# economic rights, and the successive licensors have only limited -# liability. -# -# In this respect, the user's attention is drawn to the risks associated -# with loading, using, modifying and/or developing or reproducing the -# software by the user in light of its specific status of free software, -# that may mean that it is complicated to manipulate, and that also -# therefore means that it is reserved for developers and experienced -# professionals having in-depth computer knowledge. Users are therefore -# encouraged to load and test the software's suitability as regards their -# requirements in conditions enabling the security of their systems and/or -# data to be ensured and, more generally, to use and operate it in the -# same conditions as regards security. -# -# The fact that you are presently reading this means that you have had -# knowledge of the CeCILL license and that you accept its terms. - - -import unittest -import sys -import Test_Align -import Test_AlignUtils -import Test_Map -import Test_MapUtils -import Test_Match -import Test_MatchUtils -import Test_Path -import Test_PathUtils -import Test_Range -import Test_Set -import Test_SetUtils - - -def main(): - - TestSuite_coord = unittest.TestSuite() - - TestSuite_coord.addTest( unittest.makeSuite( Test_Align.Test_Align, "test" ) ) - TestSuite_coord.addTest( unittest.makeSuite( Test_AlignUtils.Test_AlignUtils, "test" ) ) - TestSuite_coord.addTest( unittest.makeSuite( Test_Map.Test_Map, "test" ) ) - TestSuite_coord.addTest( unittest.makeSuite( Test_MapUtils.Test_MapUtils, "test" ) ) - TestSuite_coord.addTest( unittest.makeSuite( Test_Match.Test_Match, "test" ) ) - TestSuite_coord.addTest( unittest.makeSuite( Test_MatchUtils.Test_MatchUtils, "test" ) ) - TestSuite_coord.addTest( unittest.makeSuite( Test_Path.Test_Path, "test" ) ) - TestSuite_coord.addTest( unittest.makeSuite( Test_PathUtils.Test_PathUtils, "test" ) ) - TestSuite_coord.addTest( unittest.makeSuite( Test_Range.Test_Range, "test" ) ) - TestSuite_coord.addTest( unittest.makeSuite( Test_Set.Test_Set, "test" ) ) - TestSuite_coord.addTest( unittest.makeSuite( Test_SetUtils.Test_SetUtils, "test" ) ) - - runner = unittest.TextTestRunner( sys.stderr, 2, 2 ) - runner.run( TestSuite_coord ) - - -if __name__ == "__main__": - main()
--- a/commons/core/coord/test/Test_Align.py Mon Apr 29 03:26:07 2013 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,518 +0,0 @@ -# Copyright INRA (Institut National de la Recherche Agronomique) -# http://www.inra.fr -# http://urgi.versailles.inra.fr -# -# This software is governed by the CeCILL license under French law and -# abiding by the rules of distribution of free software. You can use, -# modify and/ or redistribute the software under the terms of the CeCILL -# license as circulated by CEA, CNRS and INRIA at the following URL -# "http://www.cecill.info". -# -# As a counterpart to the access to the source code and rights to copy, -# modify and redistribute granted by the license, users are provided only -# with a limited warranty and the software's author, the holder of the -# economic rights, and the successive licensors have only limited -# liability. -# -# In this respect, the user's attention is drawn to the risks associated -# with loading, using, modifying and/or developing or reproducing the -# software by the user in light of its specific status of free software, -# that may mean that it is complicated to manipulate, and that also -# therefore means that it is reserved for developers and experienced -# professionals having in-depth computer knowledge. Users are therefore -# encouraged to load and test the software's suitability as regards their -# requirements in conditions enabling the security of their systems and/or -# data to be ensured and, more generally, to use and operate it in the -# same conditions as regards security. -# -# The fact that you are presently reading this means that you have had -# knowledge of the CeCILL license and that you accept its terms. - - -import unittest -import os -import time -from commons.core.coord.Align import Align -from commons.core.coord.Map import Map -from commons.core.utils.FileUtils import FileUtils -from commons.core.coord.Range import Range - - -class Test_Align( unittest.TestCase ): - - def setUp(self): - self._align = Align() - self._uniqId = "%s_%s" % ( time.strftime("%Y%m%d%H%M%S"), os.getpid() ) - - def tearDown(self): - self._align = None - - def test_isEmpty_True(self): - alignInstance = Align() - - self.assertTrue(alignInstance.isEmpty()) - - def test_isEmpty_True_query_is_empty(self): - alignInstance = Align() - line = "\t-1\t-1\tTE2\t3\t10\t1e-20\t30\t90.2\n" - alignInstance.setFromString(line) - - self.assertTrue(alignInstance.isEmpty()) - - def test_isEmpty_True_subject_is_empty(self): - alignInstance = Align() - line = "chr1\t2\t20\t\t-1\t-1\t1e-20\t30\t90.2\n" - alignInstance.setFromString(line) - - self.assertTrue(alignInstance.isEmpty()) - - def test_isEmpty_False(self): - alignInstance = Align() - line = "chr1\t2\t20\tTE2\t3\t10\t1e-20\t30\t90.2\n" - alignInstance.setFromString(line) - - self.assertFalse(alignInstance.isEmpty()) - - def test_read(self): - line = "chr2\t1\t10\tTE3\t11\t17\t1e-20\t30\t90.2\n" - expReturn = 1 - - dummyMockAlignFile = "dummyMockAlignFile" - mockAlignFileHandle = open(dummyMockAlignFile, "w") - mockAlignFileHandle.write(line) - mockAlignFileHandle.close() - - expAlignInstance = Align() - expAlignInstance.setFromString(line) - - mockAlignFileHandle = open(dummyMockAlignFile, "r") - obsAlignInstance = Align() - obsReturn = obsAlignInstance.read(mockAlignFileHandle) - - mockAlignFileHandle.close() - os.remove(dummyMockAlignFile) - - self.assertEquals(expAlignInstance, obsAlignInstance) - self.assertEquals(expReturn, obsReturn) - - def test_read_empty_file(self): - expReturn = 0 - - dummyMockAlignFile = "dummyMockAlignFile" - mockAlignFileHandle = open(dummyMockAlignFile, "w") - mockAlignFileHandle.close() - - mockAlignFileHandle = open(dummyMockAlignFile, "r") - obsAlignInstance = Align() - obsReturn = obsAlignInstance.read(mockAlignFileHandle) - os.remove(dummyMockAlignFile) - - self.assertEquals(expReturn, obsReturn) - - def test_write (self): - expAlignFile = "expMockAlignFile" - expAlignFileHandle = open(expAlignFile, "w") - expLine = "chr1\t1\t10\tTE2\t3\t10\t0\t30\t90.200000\n" - expAlignFileHandle.write(expLine) - expAlignFileHandle.close() - - obsAlignFile = "obsAlignFile" - obsAlignFileHandle = open(obsAlignFile, "w") - obsAlignInstance = Align() - obsAlignTuple = ("chr1", 1, 10, "TE2", 3, 10, 0.0, 30, 90.2) - obsAlignInstance.setFromTuple(obsAlignTuple) - obsAlignInstance.write(obsAlignFileHandle) - obsAlignFileHandle.close() - - self.assertTrue( FileUtils.are2FilesIdentical( expAlignFile, obsAlignFile ) ) - os.remove(expAlignFile) - os.remove(obsAlignFile) - - def test_merge (self): - alignInstanceChr1 = Align() - alignInstanceChr2 = Align() - - line1 = "chr1\t1\t10\tTE2\t3\t10\t1e-20\t30\t90.2\n" - line2 = "chr2\t1\t10\tTE2\t11\t17\t1e-20\t30\t90.2\n" - - alignInstanceChr1.setFromString(line1) - alignInstanceChr2.setFromString(line2) - - expResult = None - obsResult = alignInstanceChr1.merge(alignInstanceChr2) - - self.assertEquals(expResult, obsResult) - - line1 = "chr1\t1\t10\tTE2\t3\t10\t1e-20\t30\t90.2\n" - line2 = "chr1\t1\t10\tTE3\t11\t17\t1e-20\t30\t90.2\n" - - alignInstanceTE2 = Align() - alignInstanceTE3 = Align() - - alignInstanceTE2.setFromString(line1) - alignInstanceTE3.setFromString(line2) - - expResult = None - obsResult = alignInstanceTE2.merge(alignInstanceTE3) - - self.assertEquals(expResult, obsResult) - - def test_merge_plus_strand1 (self): - alignInstance1 = Align() - alignInstance2 = Align() - - line1 = "chr1\t2\t20\tTE2\t3\t10\t1e-20\t30\t90.2\n" - line2 = "chr1\t1\t10\tTE2\t1\t9\t1e-20\t30\t90.2\n" - - alignInstance1.setFromString(line1) - alignInstance2.setFromString(line2) - - expLine = "chr1\t1\t20\tTE2\t1\t10\t1e-20\t30\t90.2\n" - expAlign = Align() - expAlign.setFromString(expLine) - - alignInstance1.merge(alignInstance2) - obsAlign = alignInstance1 - - self.assertEquals(expAlign, obsAlign) - - def test_merge_plus_strand2 (self ): - alignInstance1 = Align() - alignInstance2 = Align() - - line1 = "chr1\t2\t20\tTE2\t3\t10\t1e-20\t30\t90.2\n" - line2 = "chr1\t4\t30\tTE2\t4\t12\t1e-20\t30\t90.2\n" - - alignInstance1.setFromString(line1) - alignInstance2.setFromString(line2) - - expLine = "chr1\t2\t30\tTE2\t3\t12\t1e-20\t30\t90.2\n" - expAlign = Align() - expAlign.setFromString(expLine) - - alignInstance1.merge(alignInstance2) - obsAlign = alignInstance1 - - self.assertEquals(expAlign, obsAlign) - - def test_merge_plus_strand3 (self ): - alignInstance1 = Align() - alignInstance2 = Align() - - line1 = "chr1\t2\t10\tTE2\t3\t10\t1e-20\t30\t90.2\n" - line2 = "chr1\t1\t20\tTE2\t1\t12\t1e-20\t30\t90.2\n" - - alignInstance1.setFromString(line1) - alignInstance2.setFromString(line2) - - expLine = "chr1\t1\t20\tTE2\t1\t12\t1e-20\t30\t90.2\n" - expAlign = Align() - expAlign.setFromString(expLine) - - alignInstance1.merge(alignInstance2) - obsAlign = alignInstance1 - - self.assertEquals(expAlign, obsAlign) - - def test_merge_plus_strand4 (self ): - alignInstance1 = Align() - alignInstance2 = Align() - - line1 = "chr1\t1\t20\tTE2\t1\t12\t1e-20\t30\t90.2\n" - line2 = "chr1\t2\t10\tTE2\t2\t10\t1e-20\t30\t90.2\n" - - alignInstance1.setFromString(line1) - alignInstance2.setFromString(line2) - - expLine = "chr1\t1\t20\tTE2\t1\t12\t1e-20\t30\t90.2\n" - expAlign = Align() - expAlign.setFromString(expLine) - - alignInstance1.merge(alignInstance2) - obsAlign = alignInstance1 - - self.assertEquals(expAlign, obsAlign) - - def test_merge__neg_strand1 (self): - - rangeQuery1 = Range("chr1", 20, 2); rangeSubject1 = Range("TE2", 10, 3) - rangeQuery2 = Range("chr1", 1, 10); rangeSubject2 = Range("TE2", 1, 9) - - alignInstance1 = Align(rangeQuery1, rangeSubject1, 0, 30, 90.2) - alignInstance2 = Align(rangeQuery2, rangeSubject2, 0, 30, 90.2) - - expRangeQuery = Range("chr1", 20, 1); expRangeSubject = Range("TE2", 10, 1) - expAlign = Align(expRangeQuery, expRangeSubject, 0, 30, 90.2) - - alignInstance1.merge(alignInstance2) - obsAlign = alignInstance1 - - self.assertEquals(expAlign, obsAlign) - - def test_merge__neg_strand2 (self): - rangeQuery1 = Range("chr1", 20, 2); rangeSubject1 = Range("TE2", 10, 3) - rangeQuery2 = Range("chr1", 4, 30); rangeSubject2 = Range("TE2", 4, 12) - - alignInstance1 = Align(rangeQuery1, rangeSubject1, 0, 30, 90.2) - alignInstance2 = Align(rangeQuery2, rangeSubject2, 0, 30, 90.2) - - expRangeQuery = Range("chr1", 30, 2); expRangeSubject = Range("TE2", 12, 3) - expAlign = Align(expRangeQuery, expRangeSubject, 0, 30, 90.2) - - alignInstance1.merge(alignInstance2) - obsAlign = alignInstance1 - - self.assertEquals(expAlign, obsAlign) - - def test_merge_neg_strand3 (self ): - rangeQuery1 = Range("chr1", 10, 2); rangeSubject1 = Range("TE2", 10, 3) - rangeQuery2 = Range("chr1", 1, 20); rangeSubject2 = Range("TE2", 1, 12) - - alignInstance1 = Align(rangeQuery1, rangeSubject1, 0, 30, 90.2) - alignInstance2 = Align(rangeQuery2, rangeSubject2, 0, 30, 90.2) - - expRangeQuery = Range("chr1", 20, 1); expRangeSubject = Range("TE2", 12, 1) - expAlign = Align(expRangeQuery, expRangeSubject, 0, 30, 90.2) - - alignInstance1.merge(alignInstance2) - obsAlign = alignInstance1 - - self.assertEquals(expAlign, obsAlign) - - def test_merge_neg_strand4 (self ): - rangeQuery1 = Range("chr1", 20, 1); rangeSubject1 = Range("TE2", 12, 1) - rangeQuery2 = Range("chr1", 2, 10); rangeSubject2 = Range("TE2", 2, 10) - - alignInstance1 = Align(rangeQuery1, rangeSubject1, 0, 30, 90.2) - alignInstance2 = Align(rangeQuery2, rangeSubject2, 0, 30, 90.2) - - expRangeQuery = Range("chr1", 20, 1); expRangeSubject = Range("TE2", 12, 1) - expAlign = Align(expRangeQuery, expRangeSubject, 0, 30, 90.2) - - alignInstance1.merge(alignInstance2) - obsAlign = alignInstance1 - - self.assertEquals(expAlign, obsAlign) - - def test_merge_id_score_identity_eValue (self): - rangeQuery1 = Range("chr1", 20, 1); rangeSubject1 = Range("TE2", 12, 1) - rangeQuery2 = Range("chr1", 2, 10); rangeSubject2 = Range("TE2", 2, 10) - - alignInstance1 = Align(rangeQuery1, rangeSubject1, 0.05, 20, 90.2) - alignInstance1.id = 1 - alignInstance2 = Align(rangeQuery2, rangeSubject2, 0, 30, 90.3) - alignInstance2.id = 2 - - expRangeQuery = Range("chr1", 20, 1); expRangeSubject = Range("TE2", 12, 1) - expAlign = Align(expRangeQuery, expRangeSubject, 0, 30, 90.3) - expAlign.id = 1 - - alignInstance1.merge(alignInstance2) - obsAlign = alignInstance1 - - self.assertEquals(expAlign, obsAlign) - self.assertEquals(expAlign.id, obsAlign.id) - - def test_setFromTuple_QryRev(self): - self._align.setFromTuple( ( "qry1", 100, 1, "sbj1", 201, 300, 0.0, 135, 97.2 ) ) - self.assertEqual( self._align.range_query.seqname, "qry1" ) - self.assertEqual( self._align.range_query.start, 1 ) - self.assertEqual( self._align.range_query.end, 100 ) - self.assertEqual( self._align.range_subject.seqname, "sbj1" ) - self.assertEqual( self._align.range_subject.start, 300 ) - self.assertEqual( self._align.range_subject.end, 201 ) - self.assertEqual( self._align.e_value, 0.0 ) - self.assertEqual( self._align.score, 135 ) - self.assertEquals( self._align.identity, 97.2 ) - - def test_setFromTuple_identityAsFloat(self): - self._align.setFromTuple( ( "qry1", "301", "600", "sbj1", "1", "300", "0.0", "135", 0.0) ) - self.assertEqual( self._align.range_query.seqname, "qry1" ) - self.assertEqual( self._align.range_query.start, 301 ) - self.assertEqual( self._align.range_query.end, 600 ) - self.assertEqual( self._align.range_subject.seqname, "sbj1" ) - self.assertEqual( self._align.range_subject.start, 1 ) - self.assertEqual( self._align.range_subject.end, 300 ) - self.assertEqual( self._align.e_value, float("0.0") ) - self.assertEqual( self._align.score, float("135") ) - self.assertEquals( self._align.identity, 0.0 ) - - def test_setFromString(self): - line = "chr1\t1\t10\tTE2\t11\t17\t1e-20\t30\t90.2\n" - self._align.setFromString( line ) - self.assertEqual( self._align.range_query.seqname, "chr1" ) - self.assertEqual( self._align.range_query.start, 1 ) - self.assertEqual( self._align.range_query.end, 10 ) - self.assertEqual( self._align.range_subject.seqname, "TE2" ) - self.assertEqual( self._align.range_subject.start, 11 ) - self.assertEqual( self._align.range_subject.end, 17 ) - self.assertEqual( self._align.e_value, float("1e-20") ) - self.assertEqual( self._align.score, float("30") ) - self.assertEquals( float(self._align.identity), float("90.2") ) - - def test__eq__(self): - self._align.setFromString( "chr1\t1\t6\tTE2\t11\t16\t1e-20\t30\t90.2\n" ) - o = Align() - o.setFromString( "chr1\t1\t6\tTE2\t11\t16\t1e-20\t30\t90.2\n" ) - self.assertEqual( self._align, o ) - o.setFromString( "chromosome1\t1\t6\tTE2\t11\t16\t1e-20\t30\t90.2\n" ) - self.assertNotEqual( self._align, o ) - o.setFromString( "chr1\t1\t6\ttranspElem2\t11\t16\t1e-20\t30\t90.2\n" ) - self.assertNotEqual( self._align, o ) - o.setFromString( "chr1\t100\t600\tTE2\t11\t16\t1e-20\t30\t90.2\n" ) - self.assertNotEqual( self._align, o ) - o.setFromString( "chr1\t1\t6\tTE2\t1100\t1600\t1e-20\t30\t90.2\n" ) - self.assertNotEqual( self._align, o ) - o.setFromString( "chr1\t1\t6\tTE2\t11\t16\t1e-20\t30000\t90.2\n" ) - self.assertNotEqual( self._align, o ) - - def test_getSubjectAsMapOfQuery_direct(self): - exp = Map( name="TE2", seqname="chr1", start=1, end=6 ) - self._align.setFromString( "chr1\t1\t6\tTE2\t11\t16\t1e-20\t30\t90.2\n" ) - obs = self._align.getSubjectAsMapOfQuery() - self.assertEqual( obs, exp ) - - def test_getSubjectAsMapOfQuery_reverse(self): - exp = Map( name="TE2", seqname="chr1", start=6, end=1 ) - self._align.setFromString( "chr1\t1\t6\tTE2\t16\t11\t1e-20\t30\t90.2\n" ) - obs = self._align.getSubjectAsMapOfQuery() - self.assertEqual( obs, exp ) - - def test_writeSubjectAsMapOfQuery( self ): - self._align.setFromTuple( ( "chr3", "250", "151", "seq5", "1", "100", "1e-32", "147", "87.9" ) ) - expFile = "dummyExpFile_%s" % ( self._uniqId ) - expFileHandler = open( expFile, "w" ) - expFileHandler.write( "seq5\tchr3\t250\t151\n" ) - expFileHandler.close() - obsFile = "dummyObsFile_%s" % ( self._uniqId ) - obsFileHandler = open( obsFile, "w" ) - self._align.writeSubjectAsMapOfQuery( obsFileHandler ) - obsFileHandler.close() - self.assertTrue( FileUtils.are2FilesIdentical( expFile, obsFile ) ) - for f in [ expFile, obsFile ]: - if os.path.exists( f ): - os.remove( f ) - - def test_areQrySbjOnOppositeStrands(self): - self._align.setFromTuple( ( "qry1", "1", "100", "sbj1", "1", "100", "0.0", "135", "95.7" ) ) - obs = self._align.areQrySbjOnOppositeStrands() - self.assertFalse( obs ) - self._align.setFromTuple( ( "qry1", "600", "301", "sbj1", "1", "300", "0.0", "135", "95.7" ) ) - obs = self._align.areQrySbjOnOppositeStrands() - self.assertTrue( obs ) - - def test_reverse(self): - line = "chr1\t1\t10\tTE2\t11\t17\t1e-20\t30\t90.2" - expLine = "chr1\t10\t1\tTE2\t17\t11\t1e-20\t30\t90.200000" - - obsAlignInstance = Align() - obsAlignInstance.setFromString(line) - obsAlignInstance.reverse() - obsLine = obsAlignInstance.toString() - - self.assertEquals(expLine, obsLine) - - def test_getMapsOfQueryAndSubject(self): - self._align.setFromTuple( ( "qry1", "1", "100", "sbj1", "1", "100", "0.0", "135", "95.7" ) ) - - expMapQuery = Map() - expMapQuery.setFromTuple( ( "repet", "qry1", "1", "100" ) ) - expMapSubject = Map() - expMapSubject.setFromTuple( ( "repet", "sbj1", "1", "100" ) ) - - obsMapQuery, obsMapSubject = self._align.getMapsOfQueryAndSubject() - - self.assertEqual( expMapQuery, obsMapQuery ) - self.assertEqual( expMapSubject, obsMapSubject ) - - def test_getBin_bin_level_9(self): - tuple = ("chr1","190000000","390000000","TE2","11","17","1e-20","30","90.2") - self._align.setFromTuple(tuple) - expRes = 100000000.0 - obsRes = self._align.getBin() - self.assertEquals(expRes, obsRes) - - def test_getBin_bin_level_8(self): - tuple = ("chr1","19000000","39000000","TE2","11","17","1e-20","30","90.2") - self._align.setFromTuple(tuple) - expRes = 100000000.0 - obsRes = self._align.getBin() - self.assertEquals(expRes, obsRes) - - def test_getBin_bin_level_7(self): - tuple = ("chr1","1900000","3900000","TE2","11","17","1e-20","30","90.2") - self._align.setFromTuple(tuple) - expRes = 10000000.0 - obsRes = self._align.getBin() - self.assertEquals(expRes, obsRes) - - def test_getBin_bin_level_6(self): - tuple = ("chr1","190000","390000","TE2","11","17","1e-20","30","90.2") - self._align.setFromTuple(tuple) - obsRes = self._align.getBin() - expRes = 1000000.0 - self.assertEquals(expRes, obsRes) - - def test_getBin_bin_level_5(self): - tuple = ("chr1","19000","39000","TE2","11","17","1e-20","30","90.2") - self._align.setFromTuple(tuple) - obsRes = self._align.getBin() - expRes = 100000.0 - self.assertEquals(expRes, obsRes) - - def test_getBin_bin_level_4(self): - tuple = ("chr1","1900","3900","TE2","11","17","1e-20","30","90.2") - self._align.setFromTuple(tuple) - obsRes = self._align.getBin() - expRes = 10000.0 - self.assertEquals(expRes, obsRes) - - def test_getBin_bin_level_3(self): - tuple = ("chr1","190","390","TE2","11","17","1e-20","30","90.2") - self._align.setFromTuple(tuple) - obsRes = self._align.getBin() - expRes = 1000.0 - self.assertEquals(expRes, obsRes) - - def test_getBin_bin_level_2(self): - tuple = ("chr1","19","39","TE2","11","17","1e-20","30","90.2") - self._align.setFromTuple(tuple) - obsRes = self._align.getBin() - expRes = 1000.0 - self.assertEquals(expRes, obsRes) - - def test_getBin_bin_level_1(self): - tuple = ("chr1","1","3","TE2","11","17","1e-20","30","90.2") - self._align.setFromTuple(tuple) - obsRes = self._align.getBin() - expRes = 1000.0 - self.assertEquals(expRes, obsRes) - - - def test_switchQuerySubject_directS( self ): - tuple = ("chr1","1","3","TE2","11","17","1e-20","30","90.2") - self._align.setFromTuple( tuple ) - exp = Align( Range("TE2","11","17"), Range("chr1","1","3"), "1e-20", "30", "90.2" ) - self._align.switchQuerySubject() - self.assertEquals( exp, self._align ) - - - def test_switchQuerySubject_reverseS( self ): - tuple = ("chr1","1","3","TE2","17","11","1e-20","30","90.2") - self._align.setFromTuple( tuple ) - exp = Align( Range("TE2","11","17"), Range("chr1","3","1"), "1e-20", "30", "90.2" ) - self._align.switchQuerySubject() - self.assertEquals( exp, self._align ) - - - def test_toStringAsGff( self ): - self._align.setFromString( "chr1\t1\t10\tTE3\t11\t17\t1e-20\t30\t85.2\n" ) - exp = "chr1\tREPET\tmatch\t1\t10\t1e-20\t+\t.\tID=23;Target=TE3 11 17" - obs = self._align.toStringAsGff( ID="23" ) - self.assertEqual( obs, exp ) - - -test_suite = unittest.TestSuite() -test_suite.addTest( unittest.makeSuite( Test_Align ) ) -if __name__ == "__main__": - unittest.TextTestRunner(verbosity=2).run( test_suite )
--- a/commons/core/coord/test/Test_AlignUtils.py Mon Apr 29 03:26:07 2013 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,777 +0,0 @@ -# Copyright INRA (Institut National de la Recherche Agronomique) -# http://www.inra.fr -# http://urgi.versailles.inra.fr -# -# This software is governed by the CeCILL license under French law and -# abiding by the rules of distribution of free software. You can use, -# modify and/ or redistribute the software under the terms of the CeCILL -# license as circulated by CEA, CNRS and INRIA at the following URL -# "http://www.cecill.info". -# -# As a counterpart to the access to the source code and rights to copy, -# modify and redistribute granted by the license, users are provided only -# with a limited warranty and the software's author, the holder of the -# economic rights, and the successive licensors have only limited -# liability. -# -# In this respect, the user's attention is drawn to the risks associated -# with loading, using, modifying and/or developing or reproducing the -# software by the user in light of its specific status of free software, -# that may mean that it is complicated to manipulate, and that also -# therefore means that it is reserved for developers and experienced -# professionals having in-depth computer knowledge. Users are therefore -# encouraged to load and test the software's suitability as regards their -# requirements in conditions enabling the security of their systems and/or -# data to be ensured and, more generally, to use and operate it in the -# same conditions as regards security. -# -# The fact that you are presently reading this means that you have had -# knowledge of the CeCILL license and that you accept its terms. - - -import unittest -import os -import time -import shutil -from commons.core.coord.AlignUtils import AlignUtils -from commons.core.coord.Align import Align -from commons.core.utils.FileUtils import FileUtils -from commons.core.coord.Range import Range - - -class Test_AlignUtils( unittest.TestCase ): - - def setUp( self ): - self._uniqId = "%s_%s" % ( time.strftime("%Y%m%d%H%M%S"), os.getpid() ) - - - def tearDown( self ): - self._uniqId = "" - - - def test_getAlignListFromFile( self ): - a1 = Align() - a1.setFromTuple( ( "chr1", "1", "100", "seq3", "1", "100", "1e-23", "89", "97.26" ) ) - a2 = Align() - a2.setFromTuple( ( "chr2", "121", "210", "seq5", "21", "110", "1e-32", "95", "98.13" ) ) - - inFileName = "dummyFile_%s" % ( self._uniqId ) - inFileHandler = open( inFileName, "w" ) - a1.write( inFileHandler ) - a2.write( inFileHandler ) - inFileHandler.close() - - lExp = [ a1, a2 ] - lObs = AlignUtils.getAlignListFromFile( inFileName ) - - self.assertEqual( lExp, lObs ) - - if os.path.exists( inFileName ): - os.remove( inFileName ) - - - def test_getListOfScores( self ): - a1 = Align() - a1.setFromTuple( ( "chr1", "1", "100", "seq3", "1", "100", "1e-23", "89", "97.26" ) ) - a2 = Align() - a2.setFromTuple( ( "chr2", "121", "210", "seq5", "21", "110", "1e-32", "95", "98.13" ) ) - lAligns = [ a1, a2 ] - - lExp = [ 89, 95 ] - lObs = AlignUtils.getListOfScores( lAligns ) - - self.assertEqual( lExp, lObs ) - - - def test_getScoreListFromFile( self ): - alignFile = "dummyAlignFile" - alignFileHandler = open( alignFile, "w" ) - alignFileHandler.write( "chr3\t1\t100\tchr5\t11\t110\t1e-52\t133\t87.2\n" ) - alignFileHandler.write( "chr7\t1\t200\tchr2\t11\t210\t1e-78\t235\t98.9\n" ) - alignFileHandler.close() - - lExp = [ 133, 235 ] - lObs = AlignUtils.getScoreListFromFile( alignFile ) - self.assertEqual( lExp, lObs ) - - os.remove( alignFile ) - - - def test_getScoreListFromFile_empty_file( self ): - alignFile = "dummyAlignFile" - alignFileHandler = open( alignFile, "w" ) - alignFileHandler.close() - - lExp = [] - lObs = AlignUtils.getScoreListFromFile( alignFile ) - - self.assertEqual( lExp, lObs ) - - os.remove( alignFile ) - - - def test_getScoreListFromFile_with_endline_char( self ): - alignFile = "dummyAlignFile" - alignFileHandler = open( alignFile, "w" ) - alignFileHandler.write( "chr3\t1\t100\tchr5\t11\t110\t1e-52\t133\t87.2\n" ) - alignFileHandler.write( "\n" ) - alignFileHandler.write( "chr7\t1\t200\tchr2\t11\t210\t1e-78\t235\t98.9\n" ) - alignFileHandler.write( "\n" ) - alignFileHandler.close() - - lExp = [133, 235] - lObs = AlignUtils.getScoreListFromFile( alignFile ) - - self.assertEqual( lExp, lObs ) - - os.remove( alignFile ) - - - def test_convertAlignFileIntoMapFileWithQueriesAndSubjects( self ): - alignFile = "dummyAlignFile_%s" % ( self._uniqId ) - alignFileHandler = open( alignFile, "w" ) - alignFileHandler.write( "chr3\t1\t100\tchr5\t11\t110\t1e-52\t133\t87.2\n" ) - alignFileHandler.write( "chr7\t1\t200\tchr2\t11\t210\t1e-78\t235\t98.9\n" ) - alignFileHandler.close() - - expFile = "dummyExpFile_%s" % ( self._uniqId ) - expFileHandler = open( expFile, "w" ) - expFileHandler.write( "repet\tchr3\t1\t100\n" ) - expFileHandler.write( "repet\tchr5\t11\t110\n" ) - expFileHandler.write( "repet\tchr7\t1\t200\n" ) - expFileHandler.write( "repet\tchr2\t11\t210\n" ) - expFileHandler.close() - - obsFile = "dummyObsFile_%s" % ( self._uniqId ) - - AlignUtils.convertAlignFileIntoMapFileWithQueriesAndSubjects( alignFile, obsFile ) - - self.assertTrue( FileUtils.are2FilesIdentical( expFile, obsFile ) ) - - for f in [ alignFile, expFile, obsFile ]: - if os.path.exists( f ): - os.remove( f ) - - - def test_convertAlignFileIntoMapFileWithSubjectsOnQueries( self ): - alignFile = "dummyAlignFile_%s" % ( self._uniqId ) - alignFileHandler = open( alignFile, "w" ) - alignFileHandler.write( "chr3\t1\t100\tTE1\t11\t110\t1e-52\t133\t87.2\n" ) - alignFileHandler.write( "chr7\t1\t200\tTE1\t11\t210\t1e-78\t235\t98.9\n" ) - alignFileHandler.close() - - expFile = "dummyExpFile_%s" % ( self._uniqId ) - expFileHandler = open( expFile, "w" ) - expFileHandler.write( "TE1\tchr3\t1\t100\n" ) - expFileHandler.write( "TE1\tchr7\t1\t200\n" ) - expFileHandler.close() - - obsFile = "dummyObsFile_%s" % ( self._uniqId ) - - AlignUtils.convertAlignFileIntoMapFileWithSubjectsOnQueries( alignFile, obsFile ) - - self.assertTrue( FileUtils.are2FilesIdentical( expFile, obsFile ) ) - - for f in [ alignFile, expFile, obsFile ]: - if os.path.exists( f ): - os.remove( f ) - - - def test_getAlignListSortedByDecreasingScoreThenLength( self ): - a1 = Align() - a1.setFromTuple( ( "chr1", "1", "100", "seq3", "1", "100", "1e-23", "89", "97.26" ) ) - a2 = Align() - a2.setFromTuple( ( "chr7", "121", "200", "seq9", "21", "110", "1e-32", "95", "98.13" ) ) - a3 = Align() - a3.setFromTuple( ( "chr2", "121", "210", "seq5", "21", "110", "1e-32", "95", "98.13" ) ) - lAligns = [ a1, a2, a3 ] - - lExp = [ a3, a2, a1 ] - - lObs = AlignUtils.getAlignListSortedByDecreasingScoreThenLength( lAligns ) - - self.assertEqual( lExp, lObs ) - - - def test_convertAlignFileIntoPathFile( self ): - alignFile = "dummyAlignFile_%s" % ( self._uniqId ) - alignFileHandler = open( alignFile, "w" ) - alignFileHandler.write( "chr3\t1\t100\tchr5\t11\t110\t1e-52\t133\t87.200000\n" ) - alignFileHandler.write( "chr7\t1\t200\tchr2\t11\t210\t1e-78\t235\t98.900000\n" ) - alignFileHandler.close() - - expFile = "dummyExpFile_%s" % ( self._uniqId ) - expFileHandler = open( expFile, "w" ) - expFileHandler.write( "1\tchr3\t1\t100\tchr5\t11\t110\t1e-52\t133\t87.200000\n" ) - expFileHandler.write( "2\tchr7\t1\t200\tchr2\t11\t210\t1e-78\t235\t98.900000\n" ) - expFileHandler.close() - - obsFile = "dummyObsFile_%s" % ( self._uniqId ) - - AlignUtils.convertAlignFileIntoPathFile( alignFile, obsFile ) - - self.assertTrue( FileUtils.are2FilesIdentical( expFile, obsFile ) ) - - for f in [ alignFile, expFile, obsFile ]: - if os.path.exists( f ): - os.remove( f ) - - - def test_sortAlignFile( self ): - alignFile = "dummyAlignFile_%s" % ( self._uniqId ) - alignFileHandler = open( alignFile, "w" ) - alignFileHandler.write( "chr7\t1\t200\tchr2\t11\t210\t1e-78\t235\t98.900000\n" ) - alignFileHandler.write( "chr3\t1\t100\tchr5\t11\t110\t1e-52\t133\t87.200000\n" ) - alignFileHandler.write( "chr8\t1\t100\tchr5\t11\t110\t1e-52\t133\t87.200000\n" ) - alignFileHandler.write( "chr8\t1\t100\tchr5\t15\t90\t1e-52\t133\t87.200000\n" ) - alignFileHandler.write( "chr8\t1\t100\tchr5\t11\t100\t1e-52\t133\t87.200000\n" ) - alignFileHandler.close() - - expFile = "dummyExpFile_%s" % ( self._uniqId ) - expFileHandler = open( expFile, "w" ) - expFileHandler.write( "chr3\t1\t100\tchr5\t11\t110\t1e-52\t133\t87.200000\n" ) - expFileHandler.write( "chr7\t1\t200\tchr2\t11\t210\t1e-78\t235\t98.900000\n" ) - expFileHandler.write( "chr8\t1\t100\tchr5\t11\t100\t1e-52\t133\t87.200000\n" ) - expFileHandler.write( "chr8\t1\t100\tchr5\t11\t110\t1e-52\t133\t87.200000\n" ) - expFileHandler.write( "chr8\t1\t100\tchr5\t15\t90\t1e-52\t133\t87.200000\n" ) - expFileHandler.close() - - obsFile = "dummyObsFile_%s" % ( self._uniqId ) - - AlignUtils.sortAlignFile( alignFile, obsFile ) - - self.assertTrue( FileUtils.are2FilesIdentical( expFile, obsFile ) ) - - for f in [ alignFile, expFile, obsFile ]: - if os.path.exists( f ): - os.remove( f ) - - def test_writeListInFile( self ): - line1 = ("chr1\t100\t110\tTE2\t150\t200\t1e-20\t30\t90.200000\n") - line2 = ("chr1\t200\t220\tTE2\t150\t200\t1e-20\t30\t90.200000\n") - line3 = ("chr1\t300\t330\tTE2\t150\t200\t1e-20\t30\t90.200000\n") - - expFileName = "expFileName.align" - expFileHandle = open ( expFileName, 'w' ) - expFileHandle.write(line1) - expFileHandle.write(line2) - expFileHandle.write(line3) - expFileHandle.close() - - iAlign1 = Align() - iAlign1.setFromString("chr1\t100\t110\tTE2\t150\t200\t1e-20\t30\t90.2\n") - iAlign2 = Align() - iAlign2.setFromString("chr1\t200\t220\tTE2\t150\t200\t1e-20\t30\t90.2\n") - iAlign3 = Align() - iAlign3.setFromString("chr1\t300\t330\tTE2\t150\t200\t1e-20\t30\t90.2\n") - - obsFileName = "obsFileName.align" - obsPathList =[iAlign1, iAlign2, iAlign3] - - AlignUtils.writeListInFile( obsPathList, obsFileName ) - - self.assertTrue( FileUtils.are2FilesIdentical( expFileName, obsFileName ) ) - - os.remove( obsFileName ) - os.remove( expFileName ) - - - def test_splitAlignListByQueryName_empty_list( self ): - lAlign = [] - - obsLAlign = AlignUtils.splitAlignListByQueryName( lAlign ) - - expLAlign = [] - - self.assertEquals( expLAlign, obsLAlign ) - - - def test_splitAlignListByQueryName( self ): - iAlign1 = Align() - iAlign1.setFromString("chr1\t100\t110\tTE2\t150\t200\t1e-20\t30\t90.2\n") - iAlign2 = Align() - iAlign2.setFromString("chr2\t200\t220\tTE2\t150\t200\t1e-20\t30\t90.2\n") - iAlign3 = Align() - iAlign3.setFromString("chr1\t300\t330\tTE2\t150\t200\t1e-20\t30\t90.2\n") - lAlign = [ iAlign1, iAlign2, iAlign3 ] - - obsLAlign = AlignUtils.splitAlignListByQueryName( lAlign ) - - expLAlign = [ [ iAlign1, iAlign3 ], - [ iAlign2 ] ] - - self.assertEquals( expLAlign, obsLAlign ) - - - def test_splitAlignListByQueryName_last_align_alone( self ): - iAlign1 = Align() - iAlign1.setFromString("chr1\t100\t110\tTE2\t150\t200\t1e-20\t30\t90.2\n") - iAlign2 = Align() - iAlign2.setFromString("chr2\t200\t220\tTE2\t150\t200\t1e-20\t30\t90.2\n") - iAlign3 = Align() - iAlign3.setFromString("chr1\t300\t330\tTE2\t150\t200\t1e-20\t30\t90.2\n") - iAlign4 = Align() - iAlign4.setFromString("chr3\t100\t110\tTE2\t150\t200\t1e-20\t30\t90.2\n") - iAlign5 = Align() - iAlign5.setFromString("chr2\t200\t220\tTE2\t150\t200\t1e-20\t30\t90.2\n") - iAlign6 = Align() - iAlign6.setFromString("chr1\t300\t330\tTE2\t150\t200\t1e-20\t30\t90.2\n") - iAlign7 = Align() - iAlign7.setFromString("chr1\t100\t110\tTE2\t150\t200\t1e-20\t30\t90.2\n") - iAlign8 = Align() - iAlign8.setFromString("chr2\t200\t220\tTE2\t150\t200\t1e-20\t30\t90.2\n") - iAlign9 = Align() - iAlign9.setFromString("chr4\t300\t330\tTE2\t150\t200\t1e-20\t30\t90.2\n") - lAlign = [ iAlign1, iAlign2, iAlign3, iAlign4, iAlign5, iAlign6, iAlign7, iAlign8, iAlign9 ] - - obsLAlign = AlignUtils.splitAlignListByQueryName( lAlign ) - - expLAlign = [ [ iAlign1, iAlign3, iAlign6, iAlign7 ], - [ iAlign2, iAlign5, iAlign8 ], - [ iAlign4 ], - [ iAlign9 ] ] - - self.assertEquals( expLAlign, obsLAlign ) - - - def test_createAlignFiles( self ): - expFile1 = "dummyExpAlignFile.align_1" - expFile2 = "dummyExpAlignFile.align_2" - expFile3 = "dummyExpAlignFile.align_3" - expFile4 = "dummyExpAlignFile.align_4" - - f1 = open(expFile1, "w") - iAlign1 = Align() - iAlign1.setFromString("chr1\t100\t110\tTE2\t150\t200\t1e-20\t30\t90.2\n") - iAlign1.write(f1) - iAlign3 = Align() - iAlign3.setFromString("chr1\t300\t330\tTE2\t150\t200\t1e-20\t30\t90.2\n") - iAlign3.write(f1) - iAlign6 = Align() - iAlign6.setFromString("chr1\t300\t330\tTE2\t150\t200\t1e-20\t30\t90.2\n") - iAlign6.write(f1) - iAlign7 = Align() - iAlign7.setFromString("chr1\t100\t110\tTE2\t150\t200\t1e-20\t30\t90.2\n") - iAlign7.write(f1) - f1.close() - - f2 = open(expFile2, "w") - iAlign2 = Align() - iAlign2.setFromString("chr2\t200\t220\tTE2\t150\t200\t1e-20\t30\t90.2\n") - iAlign2.write(f2) - iAlign5 = Align() - iAlign5.setFromString("chr2\t200\t220\tTE2\t150\t200\t1e-20\t30\t90.2\n") - iAlign5.write(f2) - iAlign8 = Align() - iAlign8.setFromString("chr2\t200\t220\tTE2\t150\t200\t1e-20\t30\t90.2\n") - iAlign8.write(f2) - f2.close() - - f3 = open(expFile3, "w") - iAlign4 = Align() - iAlign4.setFromString("chr3\t100\t110\tTE2\t150\t200\t1e-20\t30\t90.2\n") - iAlign4.write(f3) - f3.close() - - f4 = open(expFile4, "w") - iAlign9 = Align() - iAlign9.setFromString("chr4\t300\t330\tTE2\t150\t200\t1e-20\t30\t90.2\n") - iAlign9.write(f4) - f4.close() - - lAlignList = [ [ iAlign1, iAlign3, iAlign6, iAlign7 ], - [ iAlign2, iAlign5, iAlign8 ], - [ iAlign4 ], - [ iAlign9 ] ] - - AlignUtils.createAlignFiles( lAlignList, "dummyAlignFile" ) - - obsFile1 = "dummyAlignFile_1.align" - obsFile2 = "dummyAlignFile_2.align" - obsFile3 = "dummyAlignFile_3.align" - obsFile4 = "dummyAlignFile_4.align" - - self.assertTrue( FileUtils.are2FilesIdentical( expFile1, obsFile1 ) ) - self.assertTrue( FileUtils.are2FilesIdentical( expFile2, obsFile2 ) ) - self.assertTrue( FileUtils.are2FilesIdentical( expFile3, obsFile3 ) ) - self.assertTrue( FileUtils.are2FilesIdentical( expFile4, obsFile4 ) ) - - os.remove(expFile1) - os.remove(expFile2) - os.remove(expFile3) - os.remove(expFile4) - os.remove(obsFile1) - os.remove(obsFile2) - os.remove(obsFile3) - os.remove(obsFile4) - - - def test_createAlignFiles_eleven_output_files( self ): - expFile1 = "dummyExpAlignFile.align_01" - expFile2 = "dummyExpAlignFile.align_02" - expFile3 = "dummyExpAlignFile.align_03" - expFile4 = "dummyExpAlignFile.align_04" - expFile5 = "dummyExpAlignFile.align_05" - expFile6 = "dummyExpAlignFile.align_06" - expFile7 = "dummyExpAlignFile.align_07" - expFile8 = "dummyExpAlignFile.align_08" - expFile9 = "dummyExpAlignFile.align_09" - expFile10 = "dummyExpAlignFile.align_10" - expFile11 = "dummyExpAlignFile.align_11" - lExpFiles = [expFile1, expFile2, expFile3, expFile4, expFile5, expFile6, expFile7, expFile8, expFile9, expFile10, expFile11] - - f1 = open(expFile1, "w") - iAlign1 = Align() - iAlign1.setFromString("chr1\t100\t110\tTE2\t150\t200\t1e-20\t30\t90.2\n") - iAlign1.write(f1) - f1.close() - - f2 = open(expFile2, "w") - iAlign2 = Align() - iAlign2.setFromString("chr2\t200\t220\tTE2\t150\t200\t1e-20\t30\t90.2\n") - iAlign2.write(f2) - f2.close() - - f3 = open(expFile3, "w") - iAlign3 = Align() - iAlign3.setFromString("chr3\t100\t110\tTE2\t150\t200\t1e-20\t30\t90.2\n") - iAlign3.write(f3) - f3.close() - - f4 = open(expFile4, "w") - iAlign4 = Align() - iAlign4.setFromString("chr4\t300\t330\tTE2\t150\t200\t1e-20\t30\t90.2\n") - iAlign4.write(f4) - f4.close() - - f = open(expFile5, "w") - iAlign5 = Align() - iAlign5.setFromString("chr5\t300\t330\tTE2\t150\t200\t1e-20\t30\t90.2\n") - iAlign5.write(f) - f.close() - - f = open(expFile6, "w") - iAlign6 = Align() - iAlign6.setFromString("chr6\t300\t330\tTE2\t150\t200\t1e-20\t30\t90.2\n") - iAlign6.write(f) - f.close() - - f = open(expFile7, "w") - iAlign7 = Align() - iAlign7.setFromString("chr7\t300\t330\tTE2\t150\t200\t1e-20\t30\t90.2\n") - iAlign7.write(f) - f.close() - - f = open(expFile8, "w") - iAlign8 = Align() - iAlign8.setFromString("chr8\t300\t330\tTE2\t150\t200\t1e-20\t30\t90.2\n") - iAlign8.write(f) - f.close() - - f = open(expFile9, "w") - iAlign9 = Align() - iAlign9.setFromString("chr9\t300\t330\tTE2\t150\t200\t1e-20\t30\t90.2\n") - iAlign9.write(f) - f.close() - - f = open(expFile10, "w") - iAlign10 = Align() - iAlign10.setFromString("chr10\t300\t330\tTE2\t150\t200\t1e-20\t30\t90.2\n") - iAlign10.write(f) - f.close() - - f = open(expFile11, "w") - iAlign11 = Align() - iAlign11.setFromString("chr11\t300\t330\tTE2\t150\t200\t1e-20\t30\t90.2\n") - iAlign11.write(f) - f.close() - - lAlignList = [[iAlign1], [iAlign2], [iAlign3], [iAlign4], [iAlign5], [iAlign6], [iAlign7], [iAlign8], [iAlign9], [iAlign10], [iAlign11]] - - AlignUtils.createAlignFiles(lAlignList, "dummyAlignFile") - - obsFile1 = "dummyAlignFile_01.align" - obsFile2 = "dummyAlignFile_02.align" - obsFile3 = "dummyAlignFile_03.align" - obsFile4 = "dummyAlignFile_04.align" - obsFile5 = "dummyAlignFile_05.align" - obsFile6 = "dummyAlignFile_06.align" - obsFile7 = "dummyAlignFile_07.align" - obsFile8 = "dummyAlignFile_08.align" - obsFile9 = "dummyAlignFile_09.align" - obsFile10 = "dummyAlignFile_10.align" - obsFile11 = "dummyAlignFile_11.align" - lObsFiles = [obsFile1, obsFile2, obsFile3, obsFile4, obsFile5, obsFile6, obsFile7, obsFile8, obsFile9, obsFile10, obsFile11] - - self.assertTrue( FileUtils.are2FilesIdentical( expFile1, obsFile1 ) ) - self.assertTrue( FileUtils.are2FilesIdentical( expFile2, obsFile2 ) ) - self.assertTrue( FileUtils.are2FilesIdentical( expFile3, obsFile3 ) ) - self.assertTrue( FileUtils.are2FilesIdentical( expFile4, obsFile4 ) ) - self.assertTrue( FileUtils.are2FilesIdentical( expFile5, obsFile5 ) ) - self.assertTrue( FileUtils.are2FilesIdentical( expFile6, obsFile6 ) ) - self.assertTrue( FileUtils.are2FilesIdentical( expFile7, obsFile7 ) ) - self.assertTrue( FileUtils.are2FilesIdentical( expFile8, obsFile8 ) ) - self.assertTrue( FileUtils.are2FilesIdentical( expFile9, obsFile9 ) ) - self.assertTrue( FileUtils.are2FilesIdentical( expFile10, obsFile10 ) ) - self.assertTrue( FileUtils.are2FilesIdentical( expFile11, obsFile11 ) ) - - for file in lExpFiles: - os.remove(file) - for file in lObsFiles: - os.remove(file) - - - def test_createAlignFiles_dirName_specified( self ): - expFile1 = "dummyExpAlignFile.align_1" - expFile2 = "dummyExpAlignFile.align_2" - expFile3 = "dummyExpAlignFile.align_3" - expFile4 = "dummyExpAlignFile.align_4" - - f1 = open(expFile1, "w") - iAlign1 = Align() - iAlign1.setFromString("chr1\t100\t110\tTE2\t150\t200\t1e-20\t30\t90.2\n") - iAlign1.write(f1) - iAlign3 = Align() - iAlign3.setFromString("chr1\t300\t330\tTE2\t150\t200\t1e-20\t30\t90.2\n") - iAlign3.write(f1) - iAlign6 = Align() - iAlign6.setFromString("chr1\t300\t330\tTE2\t150\t200\t1e-20\t30\t90.2\n") - iAlign6.write(f1) - iAlign7 = Align() - iAlign7.setFromString("chr1\t100\t110\tTE2\t150\t200\t1e-20\t30\t90.2\n") - iAlign7.write(f1) - f1.close() - - f2 = open(expFile2, "w") - iAlign2 = Align() - iAlign2.setFromString("chr2\t200\t220\tTE2\t150\t200\t1e-20\t30\t90.2\n") - iAlign2.write(f2) - iAlign5 = Align() - iAlign5.setFromString("chr2\t200\t220\tTE2\t150\t200\t1e-20\t30\t90.2\n") - iAlign5.write(f2) - iAlign8 = Align() - iAlign8.setFromString("chr2\t200\t220\tTE2\t150\t200\t1e-20\t30\t90.2\n") - iAlign8.write(f2) - f2.close() - - f3 = open(expFile3, "w") - iAlign4 = Align() - iAlign4.setFromString("chr3\t100\t110\tTE2\t150\t200\t1e-20\t30\t90.2\n") - iAlign4.write(f3) - f3.close() - - f4 = open(expFile4, "w") - iAlign9 = Align() - iAlign9.setFromString("chr4\t300\t330\tTE2\t150\t200\t1e-20\t30\t90.2\n") - iAlign9.write(f4) - f4.close() - - lAlignList = [[iAlign1, iAlign3, iAlign6, iAlign7], [iAlign2, iAlign5, iAlign8], [iAlign4], [iAlign9]] - - dirName = "dummyAlignDir" - - AlignUtils.createAlignFiles(lAlignList, "dummyAlignFile", dirName) - - obsFile1 = dirName + "/dummyAlignFile_1.align" - obsFile2 = dirName + "/dummyAlignFile_2.align" - obsFile3 = dirName + "/dummyAlignFile_3.align" - obsFile4 = dirName + "/dummyAlignFile_4.align" - - self.assertTrue( FileUtils.are2FilesIdentical( expFile1, obsFile1 ) ) - self.assertTrue( FileUtils.are2FilesIdentical( expFile2, obsFile2 ) ) - self.assertTrue( FileUtils.are2FilesIdentical( expFile3, obsFile3 ) ) - self.assertTrue( FileUtils.are2FilesIdentical( expFile4, obsFile4 ) ) - - os.remove(expFile1) - os.remove(expFile2) - os.remove(expFile3) - os.remove(expFile4) - shutil.rmtree (dirName) - - - def test_createAlignFiles_dirName_specified_with_ended_slash( self ): - expFile1 = "dummyExpAlignFile.align_1" - expFile2 = "dummyExpAlignFile.align_2" - expFile3 = "dummyExpAlignFile.align_3" - expFile4 = "dummyExpAlignFile.align_4" - - f1 = open(expFile1, "w") - iAlign1 = Align() - iAlign1.setFromString("chr1\t100\t110\tTE2\t150\t200\t1e-20\t30\t90.2\n") - iAlign1.write(f1) - iAlign3 = Align() - iAlign3.setFromString("chr1\t300\t330\tTE2\t150\t200\t1e-20\t30\t90.2\n") - iAlign3.write(f1) - iAlign6 = Align() - iAlign6.setFromString("chr1\t300\t330\tTE2\t150\t200\t1e-20\t30\t90.2\n") - iAlign6.write(f1) - iAlign7 = Align() - iAlign7.setFromString("chr1\t100\t110\tTE2\t150\t200\t1e-20\t30\t90.2\n") - iAlign7.write(f1) - f1.close() - - f2 = open(expFile2, "w") - iAlign2 = Align() - iAlign2.setFromString("chr2\t200\t220\tTE2\t150\t200\t1e-20\t30\t90.2\n") - iAlign2.write(f2) - iAlign5 = Align() - iAlign5.setFromString("chr2\t200\t220\tTE2\t150\t200\t1e-20\t30\t90.2\n") - iAlign5.write(f2) - iAlign8 = Align() - iAlign8.setFromString("chr2\t200\t220\tTE2\t150\t200\t1e-20\t30\t90.2\n") - iAlign8.write(f2) - f2.close() - - f3 = open(expFile3, "w") - iAlign4 = Align() - iAlign4.setFromString("chr3\t100\t110\tTE2\t150\t200\t1e-20\t30\t90.2\n") - iAlign4.write(f3) - f3.close() - - f4 = open(expFile4, "w") - iAlign9 = Align() - iAlign9.setFromString("chr4\t300\t330\tTE2\t150\t200\t1e-20\t30\t90.2\n") - iAlign9.write(f4) - f4.close() - - lAlignList = [[iAlign1, iAlign3, iAlign6, iAlign7], [iAlign2, iAlign5, iAlign8], [iAlign4], [iAlign9]] - - dirName = "dummyAlignDir/" - - AlignUtils.createAlignFiles(lAlignList, "dummyAlignFile", dirName) - - obsFile1 = dirName + "dummyAlignFile_1.align" - obsFile2 = dirName + "dummyAlignFile_2.align" - obsFile3 = dirName + "dummyAlignFile_3.align" - obsFile4 = dirName + "dummyAlignFile_4.align" - - self.assertTrue( FileUtils.are2FilesIdentical( expFile1, obsFile1 ) ) - self.assertTrue( FileUtils.are2FilesIdentical( expFile2, obsFile2 ) ) - self.assertTrue( FileUtils.are2FilesIdentical( expFile3, obsFile3 ) ) - self.assertTrue( FileUtils.are2FilesIdentical( expFile4, obsFile4 ) ) - - os.remove(expFile1) - os.remove(expFile2) - os.remove(expFile3) - os.remove(expFile4) - shutil.rmtree (dirName) - - - def test_sortList( self ): - iAlign1 = Align( Range("qry1",3,80), Range("sbj1",3,80), 1e-20, 103, 97.3 ) # higher query start - iAlign2 = Align( Range("qry1",1,100), Range("sbj1",1,100), 1e-20, 113, 97.3 ) # higher score - iAlign3 = Align( Range("qry2",1,100), Range("sbj1",1,100), 1e-20, 103, 97.3 ) # different query - iAlign4 = Align( Range("qry1",1,100), Range("sbj1",1,100), 1e-20, 103, 97.3 ) # canonical - iAlign5 = Align( Range("qry1",1,100), Range("sbj2",1,100), 1e-20, 103, 97.3 ) # different subject - iAlign6 = Align( Range("qry1",201,300), Range("sbj1",100,1), 1e-20, 103, 97.3 ) # subject on reverse strand - iAlign7 = Align( Range("qry1",401,500), Range("sbj1",1,100), 1e-20, 103, 97.3 ) # higher query start - lAligns = [ iAlign1, iAlign2, iAlign3, iAlign4, iAlign5, iAlign6, iAlign7 ] - lExp = [iAlign4, iAlign2, iAlign1, iAlign6, iAlign7, iAlign5, iAlign3] - lObs = AlignUtils.sortList( lAligns ) - self.assertEquals( lExp, lObs ) - - - def test_isOverlapping( self ): - iAlign1 = Align( Range("chr1",1,100), Range("TE1",11,110), 1e-20, 90.2, 30 ) - iAlign2 = Align( Range("chr1",51,80), Range("TE1",61,90), 1e-20, 90.2, 30 ) - self.assertTrue( iAlign1.isOverlapping( iAlign2 ) ) - - iAlign1 = Align( Range("chr1",1,100), Range("TE1",11,110), 1e-20, 90.2, 30 ) - iAlign2 = Align( Range("chr1",51,80), Range("TE1",161,190), 1e-20, 90.2, 30 ) - self.assertFalse( iAlign1.isOverlapping( iAlign2 ) ) - - - def test_mergeList( self ): - iAlign1 = Align( Range("chr1",81,120), Range("TE1",91,130), 1e-20, 90.2, 30 ) - iAlign2 = Align( Range("chr2",51,80), Range("TE1",61,90), 1e-20, 90.2, 30 ) # different query - iAlign3 = Align( Range("chr1",1,100), Range("TE1",11,110), 1e-20, 90.2, 30 ) # to be merged with 1st line - iAlign4 = Align( Range("chr1",1,200), Range("TE2",11,210), 1e-20, 90.2, 30 ) # different subject - iAlign5 = Align( Range("chr1",1,100), Range("TE1",501,600), 1e-20, 90.2, 30 ) # non-overlapping subject - lAligns = [ iAlign1, iAlign2, iAlign3, iAlign4, iAlign5 ] - - iAlign6 = Align( Range("chr1",1,120), Range("TE1",11,130), 1e-20, 90.2, 30 ) - lExp = [ iAlign6, iAlign5, iAlign4, iAlign2 ] - - lObs = AlignUtils.mergeList( lAligns ) - - self.assertEquals( lExp, lObs ) - - - def test_mergeFile_empty( self ): - inFile = "dummyInFile.align" - inF = open( inFile, "w" ) - inF.close() - - expFile = "dummyExpFile.align" - expF = open( expFile, "w" ) - expF.close() - - obsFile = "dummyObsFile.align" - AlignUtils.mergeFile( inFile, obsFile ) - - self.assertTrue( FileUtils.are2FilesIdentical( expFile, obsFile ) ) - - for f in [ inFile, expFile, obsFile ]: - os.remove( f ) - - - def test_mergeFile( self ): - iAlign = Align() - - inFile = "dummyInFile.align" - inF = open( inFile, "w" ) - iAlign.setFromString( "chr1\t81\t120\tTE1\t91\t130\t1e-20\t30\t90.2\n" ) - iAlign.write( inF ) - iAlign.setFromString( "chr2\t51\t80\tTE1\t61\t90\t1e-20\t30\t90.2\n" ) # different query - iAlign.write( inF ) - iAlign.setFromString( "chr1\t1\t100\tTE1\t11\t110\t1e-20\t30\t90.2\n" ) # to be merged with 1st line - iAlign.write( inF ) - iAlign.setFromString( "chr1\t1\t200\tTE2\t11\t210\t1e-20\t30\t90.2\n" ) # different subject - iAlign.write( inF ) - inF.close() - - expFile = "dummyExpFile.align" - expF = open( expFile, "w" ) - iAlign.setFromString( "chr1\t1\t120\tTE1\t11\t130\t1e-20\t30\t90.2\n" ) - iAlign.write( expF ) - iAlign.setFromString( "chr1\t1\t200\tTE2\t11\t210\t1e-20\t30\t90.2\n" ) - iAlign.write( expF ) - iAlign.setFromString( "chr2\t51\t80\tTE1\t61\t90\t1e-20\t30\t90.2\n" ) - iAlign.write( expF ) - expF.close() - - obsFile = "dummyObsFile.align" - AlignUtils.mergeFile( inFile, obsFile ) - - self.assertTrue( FileUtils.are2FilesIdentical( expFile, obsFile ) ) - - for f in [ inFile, expFile, obsFile ]: - os.remove( f ) - - - def test_updateScoresInFile( self ): - iAlign = Align() - - inFile = "dummyInFile.align" - inHandler = open( inFile, "w" ) - iAlign.setFromString( "query1\t1\t100\tsubject1\t1\t95\t1e-180\t230\t90.2\n" ) - iAlign.write( inHandler ) - inHandler.close() - - expFile = "dummyExpFile.align" - expHandler = open( expFile, "w" ) - iAlign.setFromString( "query1\t1\t100\tsubject1\t1\t95\t1e-180\t%i\t90.2\n" % ( ( 100 - 1 + 1 ) * 90.2 / 100.0 ) ) - iAlign.write( expHandler ) - expHandler.close() - - obsFile = "dummyObsFile.align" - AlignUtils.updateScoresInFile( inFile, obsFile ) - - self.assertTrue( FileUtils.are2FilesIdentical( expFile, obsFile ) ) - - for f in [ inFile, expFile, obsFile ]: - os.remove( f ) - - -if __name__ == "__main__": - unittest.main() \ No newline at end of file
--- a/commons/core/coord/test/Test_ConvCoord.py Mon Apr 29 03:26:07 2013 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,205 +0,0 @@ -import unittest -import os -import time -from commons.core.coord.ConvCoord import ConvCoord -from commons.core.utils.FileUtils import FileUtils -from commons.core.sql.DbFactory import DbFactory -from commons.core.coord.Map import Map - -class Test_ConvCoord( unittest.TestCase ): - - def setUp( self ): - self._i = ConvCoord() - self._uniqId = "%s_%s" % ( time.strftime("%Y%m%d%H%M%S") , os.getpid() ) - self._inData = "dummyInData_%s" % ( self._uniqId ) - self._mapData = "dummyMapData_%s" % ( self._uniqId ) - self._expData = "dummyExpData_%s" % ( self._uniqId ) - self._obsData = "dummyObsData_%s" % ( self._uniqId ) - self._iDb = DbFactory.createInstance() - self._i._iDb = self._iDb - - def tearDown( self ): - self._iDb.close() - -#TODO: handle duplicated matchs for path -# def test_convCoordsChkToChrFromFile_duplicated_matchs( self ): -# dChunks2CoordMaps = {"chunk1": Map( "chunk1", "dmel_chr4", 760001, 960000 ), -# "chunk2": Map( "chunk2", "dmel_chr4", 950001, 1150000 ) } -# tmpPathFileName = "dummyPathCoordOnChr_%s" % self._uniqId -# self._writePathFileCoordOnChunk(tmpPathFileName) -# -# expPathFile = "dummyExpPathFile_%s" % self._uniqId -# self._writePathFileCoordOnChrWithOutDoublons(expPathFile) -# -# outTableName = self._i.convCoordsChkToChrFromFile(tmpPathFileName, "path", dChunks2CoordMaps) -# -# obsPathFile = "dummyObsPathFile_%s" % self._uniqId -# self._iDb.exportDataToFile(outTableName, obsPathFile) -# -# self.assertTrue(FileUtils.are2FilesIdentical(expPathFile, obsPathFile)) -# -# for f in [ expPathFile, obsPathFile, tmpPathFileName ]: -# os.remove( f ) -# self._iDb.dropTable(outTableName) - -#TODO: handle matchs out of chunk overlap ? For one side (=> path 128, remove path 152) ? For two sides (path 129, fusion with path 154) ? -# def test_convCoordsChkToChrFromFile_matchs_out_of_overlap( self ): -# dChunks2CoordMaps = {"chunk1": Map( "chunk1", "dmel_chr4", 760001, 960000 ), -# "chunk2": Map( "chunk2", "dmel_chr4", 950001, 1150000 ) } -# tmpPathFileName = "dummyPathCoordOnChr_%s" % self._uniqId -# self._writePathFileCoordOnChunk_outOfOverlap(tmpPathFileName) -# -# expPathFile = "dummyExpPathFile_%s" % self._uniqId -# self._writePathFileCoordOnChrWithOutDoublons_outOfOverlap(expPathFile) -# -# outTableName = self._i.convCoordsChkToChrFromFile(tmpPathFileName, "path", dChunks2CoordMaps) -# -# obsPathFile = "dummyObsPathFile_%s" % self._uniqId -# self._iDb.exportDataToFile(outTableName, obsPathFile) -# -# self.assertTrue(FileUtils.are2FilesIdentical(expPathFile, obsPathFile)) -# -# for f in [ expPathFile, obsPathFile, tmpPathFileName ]: -# os.remove( f ) -# self._iDb.dropTable(outTableName) - - def test_mergeCoordsOnChunkOverlaps( self ): - dChunks2CoordMaps = { "chunk1": Map( "chunk1", "chromosome1", 1, 100 ), - "chunk2": Map( "chunk2", "chromosome1", 91, 190 ), - "chunk3": Map( "chunk3", "chromosome2", 1, 100 ) } - tmpPathTable = "dummyTmpPathTable" - linesToProcess = [ - "1" + "\t" + "chromosome1" + "\t" + "21" + "\t" + "37" + "\t" + "TE1" + "\t" + "1" + "\t" + "27" + "\t" + "8e-58" + "\t" + "30" + "\t" + "97.8" + "\n", # hit within the 1st chunk - "3" + "\t" + "chromosome1" + "\t" + "92" + "\t" + "99" + "\t" + "TE1" + "\t" + "1" + "\t" + "8" + "\t" + "8e-58" + "\t" + "11" + "\t" + "97.8" + "\n", # hit included within the chunk overlap, on the 2nd chunk - "2" + "\t" + "chromosome1" + "\t" + "92" + "\t" + "99" + "\t" + "TE1" + "\t" + "1" + "\t" + "8" + "\t" + "8e-58" + "\t" + "11" + "\t" + "97.8" + "\n", # hit included within the chunk overlap, on the 1st chunk - ] - FileUtils.writeLineListInFile( tmpPathTable, linesToProcess ) - self._iDb.createTable( tmpPathTable, "path", tmpPathTable, True) - os.remove( tmpPathTable ) - - expPathFile = "dummyExpPathFile" - linesToProcess = [ "1" + "\t" + "chromosome1" + "\t" + "21" + "\t" + "37" + "\t" + "TE1" + "\t" + "1" + "\t" + "27" + "\t" + "8e-58" + "\t" + "30" + "\t" + "97.8" + "\n", # hit within the 1st chunk - "2" + "\t" + "chromosome1" + "\t" + "92" + "\t" + "99" + "\t" + "TE1" + "\t" + "1" + "\t" + "8" + "\t" + "8e-58" + "\t" + "11" + "\t" + "97.8" + "\n", # hit included within the chunk overlap, on the 1st chunk - ] - FileUtils.writeLineListInFile( expPathFile, linesToProcess ) - - self._i.mergeCoordsOnChunkOverlaps( dChunks2CoordMaps, tmpPathTable) - - obsPathFile = "dummyObsPathFile" - self._iDb.exportDataToFile( tmpPathTable, obsPathFile ) - - self.assertTrue( FileUtils.are2FilesIdentical( expPathFile, obsPathFile ) ) - - for f in [ expPathFile, obsPathFile ]: - os.remove( f ) - self._iDb.dropTable( tmpPathTable ) - - def test_mergeCoordsOnChunkOverlaps_withConnectedMatches( self ): - dChunks2CoordMaps = { "chunk1": Map( "chunk1", "chromosome1", 1, 100 ), - "chunk2": Map( "chunk2", "chromosome1", 91, 190 ), - "chunk3": Map( "chunk3", "chromosome2", 1, 100 ) } - tmpPathTable = "dummyTmpPathTable" - linesToProcess = [ - "1" + "\t" + "chromosome1" + "\t" + "21" + "\t" + "37" + "\t" + "TE1" + "\t" + "1" + "\t" + "27" + "\t" + "8e-58" + "\t" + "30" + "\t" + "97.8" + "\n", # hit on the 1st chunk - "1" + "\t" + "chromosome1" + "\t" + "92" + "\t" + "99" + "\t" + "TE1" + "\t" + "28" + "\t" + "36" + "\t" + "8e-58" + "\t" + "10" + "\t" + "97.8" + "\n", # hit included within the chunk overlap, on the 1st chunk, connected to the previous - "2" + "\t" + "chromosome1" + "\t" + "92" + "\t" + "99" + "\t" + "TE1" + "\t" + "28" + "\t" + "36" + "\t" + "8e-58" + "\t" + "10" + "\t" + "97.8" + "\n", # hit included within the chunk overlap, on the 2nd chunk - "2" + "\t" + "chromosome1" + "\t" + "111" + "\t" + "120" + "\t" + "TE1" + "\t" + "37" + "\t" + "46" + "\t" + "8e-58" + "\t" + "15" + "\t" + "97.8" + "\n", # hit on the 2nd chunk, connected to the previous - ] - FileUtils.writeLineListInFile( tmpPathTable, linesToProcess ) - self._iDb.createTable( tmpPathTable, "path", tmpPathTable, True) - os.remove( tmpPathTable ) - - expPathFile = "dummyExpPathFile" - linesToProcess = [ "1" + "\t" + "chromosome1" + "\t" + "21" + "\t" + "37" + "\t" + "TE1" + "\t" + "1" + "\t" + "27" + "\t" + "8e-58" + "\t" + "30" + "\t" + "97.8" + "\n", # hit within the 1st chunk - "1" + "\t" + "chromosome1" + "\t" + "92" + "\t" + "99" + "\t" + "TE1" + "\t" + "28" + "\t" + "36" + "\t" + "8e-58" + "\t" + "10" + "\t" + "97.8" + "\n", # hit included within the chunk overlap, on the 1st chunk - "1" + "\t" + "chromosome1" + "\t" + "111" + "\t" + "120" + "\t" + "TE1" + "\t" + "37" + "\t" + "46" + "\t" + "8e-58" + "\t" + "15" + "\t" + "97.8" + "\n", # hit on the 2nd chunk, connected to the previous - ] - FileUtils.writeLineListInFile( expPathFile, linesToProcess ) - - self._i.mergeCoordsOnChunkOverlaps( dChunks2CoordMaps, tmpPathTable ) - - obsPathFile = "dummyObsPathFile" - self._iDb.exportDataToFile( tmpPathTable, obsPathFile ) - - self.assertTrue( FileUtils.are2FilesIdentical( expPathFile, obsPathFile ) ) - - for f in [ expPathFile, obsPathFile ]: - os.remove( f ) - self._iDb.dropTable( tmpPathTable ) - - def _writePathFileCoordOnChrWithOutDoublons(self, pathFileName): - file = open( pathFileName, "w" ) - file.write("123\tdmel_chr4\t868397\t868531\tMariner2_AG_1p:classII:TIR\t53\t97\t8e-19\t28\t35.56\n") - file.write("123\tdmel_chr4\t868545\t869120\tMariner2_AG_1p:classII:TIR\t102\t333\t8e-19\t87\t27.97\n") - file.write("124\tdmel_chr4\t819607\t819714\tLINER1-2_NVi_2p:classI:?\t502\t537\t3e-20\t30\t36.11\n") - file.write("124\tdmel_chr4\t819695\t820156\tLINER1-2_NVi_2p:classI:?\t533\t725\t3e-20\t90\t36.79\n") - file.write("125\tdmel_chr4\t953027\t953101\tCR1-8_AG_1p:classI:LINE\t470\t448\t1e-27\t11\t28.57\n") - file.write("126\tdmel_chr4\t862131\t862178\tTc1-1_TCa_1p:classII:TIR\t288\t274\t5e-29\t18\t52.5\n") - file.write("127\tdmel_chr4\t819520\t819606\tNotoAg1_2p:classI:?\t482\t508\t1e-13\t14\t30.61\n") -# file.write("128\tdmel_chr4\t953866\t953889\tCR1-19_HM_1p:classI:LINE\t898\t891\t5e-21\t4\t34.98\n") -# file.write("129\tdmel_chr4\t953866\t953889\tCR1-83_HM_1p:classI:LINE\t912\t905\t3e-21\t4\t34.62\n") - file.write("150\tdmel_chr4\t971176\t971250\tTc1-1_TCa_1p:classII:TIR\t135\t109\t8e-32\t21\t41.57\n") - file.write("151\tdmel_chr4\t1066603\t1066698\tMARWOLEN1_1p:classII:TIR\t285\t320\t7e-25\t28\t41.67\n") - file.write("152\tdmel_chr4\t953866\t953889\tCR1-19_HM_1p:classI:LINE\t898\t891\t5e-21\t4\t34.98\n") - file.write("153\tdmel_chr4\t953951\t954343\tCR1-1_DWil_1p:classI:LINE\t127\t2\t4e-18\t92\t37.59\n") - file.write("154\tdmel_chr4\t953866\t953889\tCR1-83_HM_1p:classI:LINE\t912\t905\t3e-21\t4\t34.62\n") - file.write("155\tdmel_chr4\t953102\t953199\tCR1-1_DWil_2p:classI:LINE\t869\t837\t2e-26\t38\t57.89\n") - file.close() - - def _writePathFileCoordOnChunk(self, pathFileName): - pathFile = open( pathFileName, "w" ) - pathFile.write("123\tchunk1\t108397\t108531\tMariner2_AG_1p:classII:TIR\t53\t97\t8e-19\t28\t35.56\n") - pathFile.write("123\tchunk1\t108545\t109120\tMariner2_AG_1p:classII:TIR\t102\t333\t8e-19\t87\t27.97\n") - pathFile.write("124\tchunk1\t59607\t59714\tLINER1-2_NVi_2p:classI:?\t502\t537\t3e-20\t30\t36.11\n") - pathFile.write("124\tchunk1\t59695\t60156\tLINER1-2_NVi_2p:classI:?\t533\t725\t3e-20\t90\t36.79\n") - pathFile.write("125\tchunk1\t193027\t193101\tCR1-8_AG_1p:classI:LINE\t470\t448\t1e-27\t11\t28.57\n") - pathFile.write("126\tchunk1\t102131\t102178\tTc1-1_TCa_1p:classII:TIR\t288\t274\t5e-29\t18\t52.5\n") - pathFile.write("127\tchunk1\t59520\t59606\tNotoAg1_2p:classI:?\t482\t508\t1e-13\t14\t30.61\n") - pathFile.write("128\tchunk1\t193866\t193889\tCR1-19_HM_1p:classI:LINE\t898\t891\t5e-21\t4\t34.98\n") - pathFile.write("129\tchunk1\t193866\t193889\tCR1-83_HM_1p:classI:LINE\t912\t905\t3e-21\t4\t34.62\n") - pathFile.write("150\tchunk2\t21176\t21250\tTc1-1_TCa_1p:classII:TIR\t135\t109\t8e-32\t21\t41.57\n") - pathFile.write("151\tchunk2\t116603\t116698\tMARWOLEN1_1p:classII:TIR\t285\t320\t7e-25\t28\t41.67\n") - pathFile.write("152\tchunk2\t3866\t3889\tCR1-19_HM_1p:classI:LINE\t898\t891\t5e-21\t4\t34.98\n") - pathFile.write("153\tchunk2\t3951\t4343\tCR1-1_DWil_1p:classI:LINE\t127\t2\t4e-18\t92\t37.59\n") - pathFile.write("154\tchunk2\t3866\t3889\tCR1-83_HM_1p:classI:LINE\t912\t905\t3e-21\t4\t34.62\n") - pathFile.write("155\tchunk2\t3102\t3199\tCR1-1_DWil_2p:classI:LINE\t869\t837\t2e-26\t38\t57.89\n") - pathFile.close() - -# def _writePathFileCoordOnChunk_outOfOverlap(self, pathFileName): -# pathFile = open( pathFileName, "w" ) -# pathFile.write("123\tchunk1\t108397\t108531\tMariner2_AG_1p:classII:TIR\t53\t97\t8e-19\t28\t35.56\n") -# pathFile.write("123\tchunk1\t108545\t109120\tMariner2_AG_1p:classII:TIR\t102\t333\t8e-19\t87\t27.97\n") -# pathFile.write("124\tchunk1\t59607\t59714\tLINER1-2_NVi_2p:classI:?\t502\t537\t3e-20\t30\t36.11\n") -# pathFile.write("124\tchunk1\t59695\t60156\tLINER1-2_NVi_2p:classI:?\t533\t725\t3e-20\t90\t36.79\n") -# pathFile.write("125\tchunk1\t193027\t193101\tCR1-8_AG_1p:classI:LINE\t470\t448\t1e-27\t11\t28.57\n") -# pathFile.write("126\tchunk1\t102131\t102178\tTc1-1_TCa_1p:classII:TIR\t288\t274\t5e-29\t18\t52.5\n") -# pathFile.write("127\tchunk1\t59520\t59606\tNotoAg1_2p:classI:?\t482\t508\t1e-13\t14\t30.61\n") -# pathFile.write("128\tchunk1\t183866\t193889\tCR1-19_HM_1p:classI:LINE\t898\t1891\t5e-21\t4\t34.98\n") -# pathFile.write("129\tchunk1\t183866\t200000\tCR1-83_HM_1p:classI:LINE\t912\t905\t3e-21\t4\t34.62\n") -# pathFile.write("150\tchunk2\t21176\t21250\tTc1-1_TCa_1p:classII:TIR\t135\t109\t8e-32\t21\t41.57\n") -# pathFile.write("151\tchunk2\t116603\t116698\tMARWOLEN1_1p:classII:TIR\t285\t320\t7e-25\t28\t41.67\n") -# pathFile.write("152\tchunk2\t1\t3889\tCR1-19_HM_1p:classI:LINE\t898\t1891\t5e-21\t4\t34.98\n") -# pathFile.write("153\tchunk2\t3951\t4343\tCR1-1_DWil_1p:classI:LINE\t127\t2\t4e-18\t92\t37.59\n") -# pathFile.write("154\tchunk2\t1\t13889\tCR1-83_HM_1p:classI:LINE\t912\t905\t3e-21\t4\t34.62\n") -# pathFile.write("155\tchunk2\t3102\t3199\tCR1-1_DWil_2p:classI:LINE\t869\t837\t2e-26\t38\t57.89\n") -# pathFile.close() -# -# def _writePathFileCoordOnChrWithOutDoublons_outOfOverlap(self, pathFileName): -# file = open( pathFileName, "w" ) -# file.write("123\tdmel_chr4\t868397\t868531\tMariner2_AG_1p:classII:TIR\t53\t97\t8e-19\t28\t35.56\n") -# file.write("123\tdmel_chr4\t868545\t869120\tMariner2_AG_1p:classII:TIR\t102\t333\t8e-19\t87\t27.97\n") -# file.write("124\tdmel_chr4\t819607\t819714\tLINER1-2_NVi_2p:classI:?\t502\t537\t3e-20\t30\t36.11\n") -# file.write("124\tdmel_chr4\t819695\t820156\tLINER1-2_NVi_2p:classI:?\t533\t725\t3e-20\t90\t36.79\n") -# file.write("125\tdmel_chr4\t953027\t953101\tCR1-8_AG_1p:classI:LINE\t470\t448\t1e-27\t11\t28.57\n") -# file.write("126\tdmel_chr4\t862131\t862178\tTc1-1_TCa_1p:classII:TIR\t288\t274\t5e-29\t18\t52.5\n") -# file.write("127\tdmel_chr4\t819520\t819606\tNotoAg1_2p:classI:?\t482\t508\t1e-13\t14\t30.61\n") -# file.write("128\tdmel_chr4\t943866\t953889\tCR1-19_HM_1p:classI:LINE\t898\t1891\t5e-21\t4\t34.98\n") -# file.write("129\tdmel_chr4\t943866\t963889\tCR1-83_HM_1p:classI:LINE\t912\t905\t3e-21\t4\t34.62\n") -# file.write("150\tdmel_chr4\t971176\t971250\tTc1-1_TCa_1p:classII:TIR\t135\t109\t8e-32\t21\t41.57\n") -# file.write("151\tdmel_chr4\t1066603\t1066698\tMARWOLEN1_1p:classII:TIR\t285\t320\t7e-25\t28\t41.67\n") -# file.write("153\tdmel_chr4\t953951\t954343\tCR1-1_DWil_1p:classI:LINE\t127\t2\t4e-18\t92\t37.59\n") -# file.write("155\tdmel_chr4\t953102\t953199\tCR1-1_DWil_2p:classI:LINE\t869\t837\t2e-26\t38\t57.89\n") -# file.close() - -if __name__ == "__main__": - unittest.main() \ No newline at end of file
--- a/commons/core/coord/test/Test_F_ConvCoord.py Mon Apr 29 03:26:07 2013 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,213 +0,0 @@ -from commons.core.utils.FileUtils import FileUtils -from commons.core.sql.DbFactory import DbFactory -from commons.core.coord.ConvCoord import ConvCoord -import time -import subprocess -import os -import unittest - -class Test_F_ConvCoord(unittest.TestCase): - - def setUp( self ): - self._i = ConvCoord() - self._uniqId = "%s_%s" % ( time.strftime("%Y%m%d%H%M%S") , os.getpid() ) - self._inData = "dummyInData_%s" % ( self._uniqId ) - self._mapData = "dummyMapData_%s" % ( self._uniqId ) - self._expData = "dummyExpData_%s" % ( self._uniqId ) - self._obsData = "dummyObsData_%s" % ( self._uniqId ) - self._iDb = DbFactory.createInstance() - self._i._iDb = self._iDb - - def tearDown( self ): - self._iDb.close() - - def test_run_as_script_alignFile_query( self ): - configFile = "%s/dummyConfigFile_%s" % ( os.getcwd(), self._uniqId ) - configF = open( configFile, "w" ) - configF.write( "[repet_env]\n" ) - configF.write( "repet_host: %s\n" % ( os.environ["REPET_HOST"] ) ) - configF.write( "repet_user: %s\n" % ( os.environ["REPET_USER"] ) ) - configF.write( "repet_pw: %s\n" % ( os.environ["REPET_PW"] ) ) - configF.write( "repet_db: %s\n" % ( os.environ["REPET_DB"] ) ) - configF.write( "repet_port: %s\n" % ( os.environ["REPET_PORT"] ) ) - configF.close() - self._writeMapFile( self._mapData ) - - linesToProcess = [ "chunk1" + "\t" + "21" + "\t" + "37" + "\t" + "TE1" + "\t" + "1" + "\t" + "27" + "\t" + "8e-58" + "\t" + "30" + "\t" + "97.800000" + "\n", # hit within the 1st chunk - "chunk1" + "\t" + "92" + "\t" + "99" + "\t" + "TE1" + "\t" + "1" + "\t" + "8" + "\t" + "8e-58" + "\t" + "11" + "\t" + "97.800000" + "\n", # hit included within the chunk overlap, on the 1st chunk - "chunk2" + "\t" + "2" + "\t" + "9" + "\t" + "TE1" + "\t" + "1" + "\t" + "8" + "\t" + "8e-58" + "\t" + "11" + "\t" + "97.800000" + "\n", # hit included within the chunk overlap, on the 2nd chunk - "chunk2" + "\t" + "51" + "\t" + "58" + "\t" + "TE1" + "\t" + "1" + "\t" + "8" + "\t" + "8e-58" + "\t" + "11" + "\t" + "97.800000" + "\n", # hit inside the 2nd chunk - "chunk2" + "\t" + "51" + "\t" + "70" + "\t" + "TE1" + "\t" + "8" + "\t" + "1" + "\t" + "8e-58" + "\t" + "11" + "\t" + "97.800000" + "\n" # subject on reverse strand - ] - FileUtils.writeLineListInFile( self._inData, linesToProcess ) - - refLines = [ "chromosome1" + "\t" + "21" + "\t" + "37" + "\t" + "TE1" + "\t" + "1" + "\t" + "27" + "\t" + "8e-58" + "\t" + "30" + "\t" + "97.800000" + "\n", - "chromosome1" + "\t" + "92" + "\t" + "99" + "\t" + "TE1" + "\t" + "1" + "\t" + "8" + "\t" + "8e-58" + "\t" + "11" + "\t" + "97.800000" + "\n", - "chromosome1" + "\t" + "141" + "\t" + "148" + "\t" + "TE1" + "\t" + "1" + "\t" + "8" + "\t" + "8e-58" + "\t" + "11" + "\t" + "97.800000" + "\n", - "chromosome1" + "\t" + "141" + "\t" + "160" + "\t" + "TE1" + "\t" + "8" + "\t" + "1" + "\t" + "8e-58" + "\t" + "11" + "\t" + "97.800000" + "\n" - ] - FileUtils.writeLineListInFile( self._expData, refLines ) - - cmd = "ConvCoord.py" - cmd += " -i %s" % ( self._inData ) - cmd += " -f %s" % ( "align" ) - cmd += " -c %s" % ( "q" ) - cmd += " -m %s" % ( self._mapData ) - cmd += " -o %s" % ( self._obsData ) - cmd += " -C %s" % ( configFile ) - process = subprocess.Popen(cmd, shell = True) - process.communicate() - - self.assertTrue( FileUtils.are2FilesIdentical( self._expData, self._obsData ) ) - - os.remove( self._inData ) - os.remove(configFile) - os.remove( self._mapData ) - os.remove( self._expData ) - os.remove( self._obsData ) - - def test_run_as_script_alignFile_queryAndSubject( self ): - self._writeMapFile( self._mapData ) - linesToProcess = [ "chunk1" + "\t" + "21" + "\t" + "37" + "\t" + "chunk3" + "\t" + "1" + "\t" + "27" + "\t" + "8e-58" + "\t" + "30" + "\t" + "97.800000" + "\n", # hit within the 1st chunk - "chunk1" + "\t" + "92" + "\t" + "99" + "\t" + "chunk2" + "\t" + "2" + "\t" + "9" + "\t" + "8e-58" + "\t" + "11" + "\t" + "97.800000" + "\n", # hit included within the chunk overlap, on the 1st chunk - "chunk2" + "\t" + "51" + "\t" + "58" + "\t" + "chunk1" + "\t" + "1" + "\t" + "8" + "\t" + "8e-58" + "\t" + "11" + "\t" + "97.800000" + "\n", # hit inside the 2nd chunk - "chunk2" + "\t" + "51" + "\t" + "70" + "\t" + "chunk1" + "\t" + "8" + "\t" + "1" + "\t" + "8e-58" + "\t" + "11" + "\t" + "97.800000" + "\n" # subject on reverse strand - "chunk2" + "\t" + "51" + "\t" + "70" + "\t" + "chunk1" + "\t" + "8" + "\t" + "1" + "\t" + "8e-58" + "\t" + "11" + "\t" + "97.800000" + "\n" # doublon of previous line - ] - FileUtils.writeLineListInFile( self._inData, linesToProcess ) - - refLines = [ "chromosome1" + "\t" + "21" + "\t" + "37" + "\t" + "chromosome2" + "\t" + "1" + "\t" + "27" + "\t" + "8e-58" + "\t" + "30" + "\t" + "97.800000" + "\n", - "chromosome1" + "\t" + "92" + "\t" + "99" + "\t" + "chromosome1" + "\t" + "92" + "\t" + "99" + "\t" + "8e-58" + "\t" + "11" + "\t" + "97.800000" + "\n", - "chromosome1" + "\t" + "141" + "\t" + "148" + "\t" + "chromosome1" + "\t" + "1" + "\t" + "8" + "\t" + "8e-58" + "\t" + "11" + "\t" + "97.800000" + "\n", - "chromosome1" + "\t" + "141" + "\t" + "160" + "\t" + "chromosome1" + "\t" + "8" + "\t" + "1" + "\t" + "8e-58" + "\t" + "11" + "\t" + "97.800000" + "\n" - ] - FileUtils.writeLineListInFile( self._expData, refLines ) - - cmd = "ConvCoord.py" - cmd += " -i %s" % ( self._inData ) - cmd += " -f %s" % ( "align" ) - cmd += " -c %s" % ( "qs" ) - cmd += " -m %s" % ( self._mapData ) - cmd += " -o %s" % ( self._obsData ) - process = subprocess.Popen(cmd, shell = True) - process.communicate() - - self.assertTrue( FileUtils.are2FilesIdentical( self._expData, self._obsData ) ) - - os.remove( self._inData ) - self._iDb.dropTable( self._mapData ) - os.remove( self._expData ) - os.remove( self._obsData ) - os.remove( self._mapData ) - - def test_run_as_script_pathTable_query( self ): - self._writeMapFile( self._mapData ) - self._iDb.createTable( self._mapData, "map", self._mapData, True ) - os.remove( self._mapData ) - - linesToProcess = [ "1" + "\t" + "chunk1" + "\t" + "21" + "\t" + "37" + "\t" + "TE1" + "\t" + "1" + "\t" + "27" + "\t" + "8e-58" + "\t" + "30" + "\t" + "97.800000" + "\n", # hit within the 1st chunk - "2" + "\t" + "chunk1" + "\t" + "92" + "\t" + "99" + "\t" + "TE1" + "\t" + "1" + "\t" + "8" + "\t" + "8e-58" + "\t" + "11" + "\t" + "97.800000" + "\n", # hit included within the chunk overlap, on the 1st chunk - "3" + "\t" + "chunk2" + "\t" + "2" + "\t" + "9" + "\t" + "TE1" + "\t" + "1" + "\t" + "8" + "\t" + "8e-58" + "\t" + "11" + "\t" + "97.800000" + "\n", # hit included within the chunk overlap, on the 2nd chunk - "4" + "\t" + "chunk2" + "\t" + "51" + "\t" + "58" + "\t" + "TE1" + "\t" + "1" + "\t" + "8" + "\t" + "8e-58" + "\t" + "11" + "\t" + "97.800000" + "\n", # hit inside the 2nd chunk - "5" + "\t" + "chunk2" + "\t" + "51" + "\t" + "70" + "\t" + "TE1" + "\t" + "8" + "\t" + "1" + "\t" + "8e-58" + "\t" + "11" + "\t" + "97.800000" + "\n" # subject on reverse strand - ] - FileUtils.writeLineListInFile( self._inData, linesToProcess ) - self._iDb.createTable( self._inData, "path", self._inData, True ) - os.remove( self._inData ) - - refLines = [ "1" + "\t" + "chromosome1" + "\t" + "21" + "\t" + "37" + "\t" + "TE1" + "\t" + "1" + "\t" + "27" + "\t" + "8e-58" + "\t" + "30" + "\t" + "97.8" + "\n", - "2" + "\t" + "chromosome1" + "\t" + "92" + "\t" + "99" + "\t" + "TE1" + "\t" + "1" + "\t" + "8" + "\t" + "8e-58" + "\t" + "11" + "\t" + "97.8" + "\n", - "4" + "\t" + "chromosome1" + "\t" + "141" + "\t" + "148" + "\t" + "TE1" + "\t" + "1" + "\t" + "8" + "\t" + "8e-58" + "\t" + "11" + "\t" + "97.8" + "\n", - "5" + "\t" + "chromosome1" + "\t" + "141" + "\t" + "160" + "\t" + "TE1" + "\t" + "8" + "\t" + "1" + "\t" + "8e-58" + "\t" + "11" + "\t" + "97.8" + "\n" - ] - FileUtils.writeLineListInFile( self._expData, refLines ) - - cmd = "ConvCoord.py" - cmd += " -i %s" % ( self._inData ) - cmd += " -f %s" % ( "path" ) - cmd += " -c %s" % ( "q" ) - cmd += " -m %s" % ( self._mapData ) - cmd += " -o %s" % ( self._obsData ) - process = subprocess.Popen(cmd, shell = True) - process.communicate() - - self._iDb.exportDataToFile( self._obsData, self._obsData ) - self.assertTrue( FileUtils.are2FilesIdentical( self._expData, self._obsData ) ) - - os.remove( self._obsData ) - os.remove( self._expData ) - self._iDb.dropTable( self._mapData ) - self._iDb.dropTable( self._inData ) - self._iDb.dropTable( self._expData ) - self._iDb.dropTable( self._obsData ) - - def test_run_as_script_pathTable_query_noMergeChunkOverlaps( self ): - self._writeMapFile( self._mapData ) - self._iDb.createTable( self._mapData, "map", self._mapData, True ) - os.remove( self._mapData ) - - linesToProcess = [ "1" + "\t" + "chunk1" + "\t" + "21" + "\t" + "37" + "\t" + "TE1" + "\t" + "1" + "\t" + "27" + "\t" + "8e-58" + "\t" + "30" + "\t" + "97.800000" + "\n", # hit within the 1st chunk - "2" + "\t" + "chunk1" + "\t" + "92" + "\t" + "99" + "\t" + "TE1" + "\t" + "1" + "\t" + "8" + "\t" + "8e-58" + "\t" + "11" + "\t" + "97.800000" + "\n", # hit included within the chunk overlap, on the 1st chunk - "3" + "\t" + "chunk2" + "\t" + "2" + "\t" + "9" + "\t" + "TE1" + "\t" + "1" + "\t" + "8" + "\t" + "8e-58" + "\t" + "11" + "\t" + "97.800000" + "\n", # hit included within the chunk overlap, on the 2nd chunk - "4" + "\t" + "chunk2" + "\t" + "51" + "\t" + "58" + "\t" + "TE1" + "\t" + "1" + "\t" + "8" + "\t" + "8e-58" + "\t" + "11" + "\t" + "97.800000" + "\n", # hit inside the 2nd chunk - "5" + "\t" + "chunk2" + "\t" + "51" + "\t" + "70" + "\t" + "TE1" + "\t" + "8" + "\t" + "1" + "\t" + "8e-58" + "\t" + "11" + "\t" + "97.800000" + "\n" # subject on reverse strand - ] - FileUtils.writeLineListInFile( self._inData, linesToProcess ) - self._iDb.createTable( self._inData, "path", self._inData, True ) - os.remove( self._inData ) - - refLines = [ "1" + "\t" + "chromosome1" + "\t" + "21" + "\t" + "37" + "\t" + "TE1" + "\t" + "1" + "\t" + "27" + "\t" + "8e-58" + "\t" + "30" + "\t" + "97.8" + "\n", - "2" + "\t" + "chromosome1" + "\t" + "92" + "\t" + "99" + "\t" + "TE1" + "\t" + "1" + "\t" + "8" + "\t" + "8e-58" + "\t" + "11" + "\t" + "97.8" + "\n", - "3" + "\t" + "chromosome1" + "\t" + "92" + "\t" + "99" + "\t" + "TE1" + "\t" + "1" + "\t" + "8" + "\t" + "8e-58" + "\t" + "11" + "\t" + "97.8" + "\n", # hit included within the chunk overlap, on the 2nd chunk - "4" + "\t" + "chromosome1" + "\t" + "141" + "\t" + "148" + "\t" + "TE1" + "\t" + "1" + "\t" + "8" + "\t" + "8e-58" + "\t" + "11" + "\t" + "97.8" + "\n", - "5" + "\t" + "chromosome1" + "\t" + "141" + "\t" + "160" + "\t" + "TE1" + "\t" + "8" + "\t" + "1" + "\t" + "8e-58" + "\t" + "11" + "\t" + "97.8" + "\n" - ] - FileUtils.writeLineListInFile( self._expData, refLines ) - - cmd = "ConvCoord.py" - cmd += " -i %s" % ( self._inData ) - cmd += " -f %s" % ( "path" ) - cmd += " -c %s" % ( "q" ) - cmd += " -m %s" % ( self._mapData ) - cmd += " -M %s" % ( "no" ) - cmd += " -o %s" % ( self._obsData ) - process = subprocess.Popen(cmd, shell = True) - process.communicate() - - self._iDb.exportDataToFile( self._obsData, self._obsData ) - self.assertTrue( FileUtils.are2FilesIdentical( self._expData, self._obsData ) ) - - os.remove( self._obsData ) - os.remove( self._expData ) - self._iDb.dropTable( self._mapData ) - self._iDb.dropTable( self._inData ) - self._iDb.dropTable( self._expData ) - self._iDb.dropTable( self._obsData ) - - def test_run(self): - inFileName = "DmelChr4_chk.align.not_over.filtered" - expFileName = "%s/Tools/DmelChr4_chr.align.not_over.filtered" % os.environ["REPET_DATA"] - obsFileName = "obs.align" - os.symlink("%s/Tools/%s" % (os.environ["REPET_DATA"], inFileName), inFileName) - iConvCoord = ConvCoord() - iConvCoord.setInputData(inFileName) - iConvCoord.setMapData("%s/Tools/DmelChr4_chunks.map" % os.environ["REPET_DATA"]) - iConvCoord.setCoordinatesToConvert("qs") - iConvCoord.setMergeChunkOverlaps(False) - iConvCoord.setOutputData(obsFileName) - iConvCoord.run() - - self.assertTrue(FileUtils.are2FilesIdentical(expFileName, obsFileName)) - - os.remove(inFileName) - os.remove(obsFileName) - - def _writeMapFile( self, mapFile ): - mapF = open( mapFile, "w" ) - mapF.write( "chunk1\tchromosome1\t1\t100\n" ) - mapF.write( "chunk2\tchromosome1\t91\t190\n" ) - mapF.write( "chunk3\tchromosome2\t1\t100\n" ) - mapF.close() - -if __name__ == "__main__": - unittest.main() \ No newline at end of file
--- a/commons/core/coord/test/Test_Map.py Mon Apr 29 03:26:07 2013 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,183 +0,0 @@ -# Copyright INRA (Institut National de la Recherche Agronomique) -# http://www.inra.fr -# http://urgi.versailles.inra.fr -# -# This software is governed by the CeCILL license under French law and -# abiding by the rules of distribution of free software. You can use, -# modify and/ or redistribute the software under the terms of the CeCILL -# license as circulated by CEA, CNRS and INRIA at the following URL -# "http://www.cecill.info". -# -# As a counterpart to the access to the source code and rights to copy, -# modify and redistribute granted by the license, users are provided only -# with a limited warranty and the software's author, the holder of the -# economic rights, and the successive licensors have only limited -# liability. -# -# In this respect, the user's attention is drawn to the risks associated -# with loading, using, modifying and/or developing or reproducing the -# software by the user in light of its specific status of free software, -# that may mean that it is complicated to manipulate, and that also -# therefore means that it is reserved for developers and experienced -# professionals having in-depth computer knowledge. Users are therefore -# encouraged to load and test the software's suitability as regards their -# requirements in conditions enabling the security of their systems and/or -# data to be ensured and, more generally, to use and operate it in the -# same conditions as regards security. -# -# The fact that you are presently reading this means that you have had -# knowledge of the CeCILL license and that you accept its terms. - - -import unittest -import os -from commons.core.coord.Map import Map -from commons.core.utils.FileUtils import FileUtils - - -class Test_Map( unittest.TestCase ): - - def setUp(self): - self._map = Map() - - def test_setFromString(self): - line = "MbQ12Gr2Cl2\tconsensus1\t51\t1230\n" # test with '\t' separator - self._map.setFromString(line) - self.assertEqual( self._map.name, "MbQ12Gr2Cl2" ) - self.assertEqual( self._map.seqname, "consensus1" ) - self.assertEqual( self._map.start, 51 ) - self.assertEqual( self._map.end, 1230 ) - line = "MbQ12Gr2Cl2;consensus1;51;1230" # test with ';' separator - self._map.setFromString(line,";") - self.assertEqual( self._map.name, "MbQ12Gr2Cl2" ) - self.assertEqual( self._map.seqname, "consensus1" ) - self.assertEqual( self._map.start, 51 ) - self.assertEqual( self._map.end, 1230 ) - - def test___eq__(self): - self._map.setFromString( "MbQ12Gr2Cl2\tconsensus1\t51\t1230\n" ) - o = Map() - o.setFromString( "MbQ12Gr2Cl2\tconsensus1\t51\t1230\n" ) - self.assertEqual( self._map, o ) # same data - o.setFromString( "MbQ12Gr2Cl1\tconsensus1\t51\t1230\n" ) - self.assertNotEqual( self._map, o ) # different name - o.setFromString( "MbQ12Gr2Cl2\tconsensus2\t51\t1230\n" ) - self.assertNotEqual( self._map, o ) # different seqname - o.setFromString( "MbQ12Gr2Cl2\tconsensus1\t15\t1230\n" ) - self.assertNotEqual( self._map, o ) # different start - o.setFromString( "MbQ12Gr2Cl2\tconsensus1\t51\t123000\n" ) - self.assertNotEqual( self._map, o ) # different end - o.setFromString( "MbQ12Gr2Cl2\tconsensus1\t1230\t51\n" ) - self.assertNotEqual( self._map, o ) # same start/end but in different order - - def test_setFromTuple(self): - tuple = ("MbQ12Gr2Cl2", "consensus1","51","1230") - self._map.setFromTuple(tuple) - - expMap = Map("MbQ12Gr2Cl2", "consensus1",51,1230) - obsMap = self._map - - self.assertEquals(expMap, obsMap) - - def test_read_empty_file(self): - - fileName = "dummyFile" - os.system("touch " + fileName) - fileHandle = open(fileName, "r") - - obsResult = self._map.read(fileHandle) - expResult = 0 - - fileHandle.close() - os.remove(fileName) - - self.assertEquals(expResult, obsResult) - - def test_read_uncompleted_line( self): - uncompletedLine = "MbQ12Gr2Cl2\tconsensus1\t51" - fileName = "dummyFile" - - fileHandle = open(fileName, "w") - fileHandle.write(uncompletedLine) - fileHandle.close() - - fileHandle = open(fileName, "r") - - obsResult = self._map.read(fileHandle) - expResult = 0 - - fileHandle.close() - os.remove(fileName) - - self.assertEquals(obsResult, expResult) - - def test_read(self): - line = "MbQ12Gr2Cl2\tconsensus1\t51\t1230\n" - fileName = "dummyFile" - - fileHandle = open(fileName, "w") - fileHandle.write(line) - fileHandle.close() - - fileHandle = open(fileName, "r") - self._map.read(fileHandle) - obsResult = self._map - - expResult = Map() - expResult.setFromString(line) - - fileHandle.close() - os.remove(fileName) - - self.assertEquals(obsResult, expResult) - - def test_write(self): - line = "MbQ12Gr2Cl2\tconsensus1\t51\t1230\n" - expFileName = "expFileName" - - fileHandle = open(expFileName, "w") - fileHandle.write(line) - fileHandle.close() - - obsFileName = "obsFileName" - fileHandle = open(obsFileName, "w") - self._map.setFromString(line) - self._map.write(fileHandle) - fileHandle.close() - - self.assertTrue( FileUtils.are2FilesIdentical( expFileName, obsFileName ) ) - - os.remove(obsFileName) - os.remove(expFileName) - - def test_diff1(self): - map1 = Map("seq1","DmelChr4", 190000, 390000) - map2 = Map("seq2","DmelChr4", 290000, 590000) - - expMap1 = Map("seq1", "DmelChr4", 190000, 289999) - expReturnedMap = Map() - - obsReturnedMap = map1.diff(map2) - obsMap1 = map1 - - self.assertEquals(expMap1, obsMap1) - self.assertEquals(expReturnedMap, obsReturnedMap) - - def test_diff2(self): - map1 = Map("seq1","DmelChr4", 190000, 590000) - map2 = Map("seq2","DmelChr4", 290000, 390000) - - expMap1 = Map("seq1", "DmelChr4", 190000, 289999) - expReturnedMap = Map("seq1", "DmelChr4", 390001, 590000) - - obsReturnedMap = map1.diff(map2) - obsMap1 = map1 - - self.assertEquals(expMap1, obsMap1) - self.assertEquals(expReturnedMap, obsReturnedMap) - - -test_suite = unittest.TestSuite() -test_suite.addTest( unittest.makeSuite( Test_Map ) ) -if __name__ == "__main__": - unittest.TextTestRunner(verbosity=2).run( test_suite )
--- a/commons/core/coord/test/Test_MapUtils.py Mon Apr 29 03:26:07 2013 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,384 +0,0 @@ -# Copyright INRA (Institut National de la Recherche Agronomique) -# http://www.inra.fr -# http://urgi.versailles.inra.fr -# -# This software is governed by the CeCILL license under French law and -# abiding by the rules of distribution of free software. You can use, -# modify and/ or redistribute the software under the terms of the CeCILL -# license as circulated by CEA, CNRS and INRIA at the following URL -# "http://www.cecill.info". -# -# As a counterpart to the access to the source code and rights to copy, -# modify and redistribute granted by the license, users are provided only -# with a limited warranty and the software's author, the holder of the -# economic rights, and the successive licensors have only limited -# liability. -# -# In this respect, the user's attention is drawn to the risks associated -# with loading, using, modifying and/or developing or reproducing the -# software by the user in light of its specific status of free software, -# that may mean that it is complicated to manipulate, and that also -# therefore means that it is reserved for developers and experienced -# professionals having in-depth computer knowledge. Users are therefore -# encouraged to load and test the software's suitability as regards their -# requirements in conditions enabling the security of their systems and/or -# data to be ensured and, more generally, to use and operate it in the -# same conditions as regards security. -# -# The fact that you are presently reading this means that you have had -# knowledge of the CeCILL license and that you accept its terms. - - -import unittest -import os -import sys -from commons.core.coord.MapUtils import MapUtils -from commons.core.coord.Map import Map -from commons.core.coord.Set import Set -from commons.core.utils.FileUtils import FileUtils - - -class Test_MapUtils( unittest.TestCase ): - - def test_getMapListSortedByIncreasingMinThenMax( self ): - iMap1 = Map("name1", "chr1", 1, 350) - iMap2 = Map("name2", "chr1", 1, 100) - iMap3 = Map("name3", "chr1", 50, 350) - iMap4 = Map("name4", "chr1", 5, 450) - lMaps = [ iMap1, iMap2, iMap3, iMap4 ] - - expLMaps = [ iMap2, iMap1, iMap4, iMap3 ] - - obsLMaps = MapUtils.getMapListSortedByIncreasingMinThenMax( lMaps ) - - self.assertEquals( expLMaps, obsLMaps ) - - - def test_getMapListSortedByIncreasingMinThenMax_ordered( self ): - iMap1 = Map("name1", "chr1", 1, 100) - iMap2 = Map("name2", "chr1", 1, 350) - - lMaps = [ iMap1, iMap2 ] - expLMaps = [ iMap1, iMap2 ] - - obsLMaps = MapUtils.getMapListSortedByIncreasingMinThenMax( lMaps ) - - self.assertEquals( expLMaps, obsLMaps ) - - - def test_getMapListSortedByIncreasingMinThenMax_unordered( self ): - iMap1 = Map("name1", "chr1", 1, 350) - iMap2 = Map("name2", "chr1", 1, 100) - - lMaps = [ iMap1, iMap2 ] - expLMaps = [ iMap2, iMap1 ] - - obsLMaps = MapUtils.getMapListSortedByIncreasingMinThenMax( lMaps ) - - self.assertEquals( expLMaps, obsLMaps ) - - - def test_getMapListSortedByIncreasingMinThenMax_nonOverlapping( self ): - iMap1 = Map("name1", "chr1", 1, 350) - iMap2 = Map("name2", "chr1", 400, 600) - - lMaps = [ iMap2, iMap1 ] - expLMaps = [ iMap1, iMap2 ] - - obsLMaps = MapUtils.getMapListSortedByIncreasingMinThenMax( lMaps ) - - self.assertEquals( expLMaps, obsLMaps ) - - - def test_getMapListSortedByIncreasingMinThenMax_sameMinThreeMaps( self ): - iMap1 = Map("name1", "chr1", 350, 1) - iMap2 = Map("name2", "chr1", 400, 1) - iMap3 = Map("name3", "chr1", 500, 1) - - lMaps = [ iMap2, iMap1, iMap3 ] - expLMaps = [ iMap1, iMap2, iMap3 ] - - obsLMaps = MapUtils.getMapListSortedByIncreasingMinThenMax( lMaps ) - - self.assertEquals( expLMaps, obsLMaps ) - - - def test_getMapListSortedByIncreasingMinThenMax_included( self ): - iMap1 = Map("name1", "chr1", 350, 1) - iMap2 = Map("name2", "chr1", 300, 10) - - lMaps = [ iMap2, iMap1 ] - expLMaps = [ iMap1, iMap2] - - obsLMaps = MapUtils.getMapListSortedByIncreasingMinThenMax( lMaps ) - - self.assertEquals( expLMaps, obsLMaps ) - - - def test_getMapListSortedByIncreasingMinThenMax_equal( self ): - iMap1 = Map("name1", "chr1", 350, 1) - iMap2 = Map("name2", "chr1", 350, 1) - - lMaps = [ iMap2, iMap1 ] - expLMaps = [ iMap2, iMap1 ] - notExpLMaps = [ iMap1, iMap2 ] - - obsLMaps = MapUtils.getMapListSortedByIncreasingMinThenMax( lMaps ) - - self.assertEquals( expLMaps, obsLMaps ) - self.assertNotEquals( notExpLMaps, obsLMaps ) - - - def test_getMapListSortedByIncreasingNameThenSeqnameThenMinThenMax( self ): - iMap1 = Map("name1", "chr1", 1, 350) - iMap2 = Map("name4", "chr2", 5, 450) - iMap3 = Map("name4", "chr1", 10, 450) - iMap4 = Map("name4", "chr1", 10, 500) - iMap5 = Map("name4", "chr1", 5, 450) - iMap6 = Map("name3", "chr1", 50, 350) - iMap7 = Map("name2", "chr1", 1, 100) - - lMaps = [ iMap1, iMap2, iMap3, iMap4, iMap5, iMap6, iMap7 ] - - expLMaps = [ iMap1, iMap7, iMap6, iMap5, iMap3, iMap4, iMap2 ] - - obsLMaps = MapUtils.getMapListSortedByIncreasingNameThenSeqnameThenMinThenMax( lMaps ) - - self.assertEquals( expLMaps, obsLMaps ) - - - def test_getMapListSortedByIncreasingNameThenSeqnameThenMinThenMax_ordered( self ): - iMap1 = Map("name1", "chr1", 1, 100) - iMap2 = Map("name1", "chr2", 1, 350) - - lMaps = [ iMap1, iMap2 ] - expLMaps = [ iMap1, iMap2 ] - - obsLMaps = MapUtils.getMapListSortedByIncreasingNameThenSeqnameThenMinThenMax( lMaps ) - - self.assertEquals( expLMaps, obsLMaps ) - - - def test_getMapListSortedByIncreasingNameThenSeqnameThenMinThenMax_unordered( self ): - iMap1 = Map("name1", "chr2", 1, 350) - iMap2 = Map("name1", "chr1", 1, 100) - - lMaps = [ iMap1, iMap2 ] - expLMaps = [ iMap2, iMap1 ] - - obsLMaps = MapUtils.getMapListSortedByIncreasingNameThenSeqnameThenMinThenMax( lMaps ) - - self.assertEquals( expLMaps, obsLMaps ) - - - def test_getMapListSortedByIncreasingNameThenSeqnameThenMinThenMax_nonOverlapping( self ): - iMap1 = Map("name1", "chr1", 1, 350) - iMap2 = Map("name2", "chr1", 400, 600) - - lMaps = [ iMap2, iMap1 ] - expLMaps = [ iMap1, iMap2 ] - - obsLMaps = MapUtils.getMapListSortedByIncreasingNameThenSeqnameThenMinThenMax( lMaps ) - - self.assertEquals( expLMaps, obsLMaps ) - - - def test_getMapListSortedByIncreasingNameThenSeqnameThenMinThenMax_sameMinThreeMaps( self ): - iMap1 = Map("name2", "chr1", 150, 10) - iMap2 = Map("name2", "chr1", 1, 100) - iMap3 = Map("name2", "chr1", 100, 1) - - lMaps = [ iMap1, iMap2, iMap3 ] - expLMaps = [ iMap2, iMap3, iMap1 ] - - obsLMaps = MapUtils.getMapListSortedByIncreasingNameThenSeqnameThenMinThenMax( lMaps ) - - self.assertEquals( expLMaps, obsLMaps ) - - - def test_getDictPerNameFromMapFile( self ): - iMap1 = Map( "chunk1", "chromosome1", 1, 100 ) - iMap2 = Map( "chunk2", "chromosome1", 91, 190 ) - iMap3 = Map( "chunk3", "chromosome2", 1, 100 ) - iMap4 = Map( "chunk1", "chromosome1", 1, 100 ) # redundant with iMap1 - - mapFile = "dummyFile.map" - mapFileHandler = open( mapFile, "w" ) - for iMap in [ iMap1, iMap2, iMap3, iMap4 ]: - iMap.write( mapFileHandler ) - mapFileHandler.close() - - dExp = { "chunk1": iMap1, "chunk2": iMap2, "chunk3": iMap3 } - - dObs = MapUtils.getDictPerNameFromMapFile( mapFile ) - - self.assertEquals( dExp, dObs ) - - os.remove( mapFile ) - - - def test_mapList2SetList(self): - map1 = Map( "name1", "desc1", 1, 120 ) - map2 = Map( "name2", "desc2", 1, 20 ) - lMap = [ map1, map2 ] - set1 = Set( 1, "name1", "desc1", 1, 120 ) - set2 = Set( 2, "name2", "desc2", 1, 20 ) - explMapSet = [ set1, set2 ] - obslMapSet = MapUtils.mapList2SetList( lMap ) - - self.assertEquals( explMapSet, obslMapSet ) - - - def test_mergeCoordsInFile( self ): - if sys.modules.has_key( "commons.core.checker.CheckerUtils" ): - inFile = "dummyInFile" - inFileHandler = open( inFile, "w" ) - inFileHandler.write( "TE1\tchr1\t1501\t2500\n" ) - inFileHandler.write( "TE3\tchr1\t4000\t3401\n" ) - inFileHandler.write( "TE3\tchr1\t3800\t3601\n" ) - inFileHandler.close() - expFile = "dummyExpFile" - expFileHandler = open( expFile, "w" ) - expFileHandler.write( "TE1\tchr1\t1501\t2500\n" ) - expFileHandler.write( "TE3\tchr1\t4000\t3401\n" ) - expFileHandler.close() - obsFile = "dummyObsFile" - MapUtils.mergeCoordsInFile( inFile, obsFile ) - self.assertTrue( FileUtils.are2FilesIdentical( expFile, obsFile ) ) - for f in [ inFile, expFile, obsFile ]: - os.remove( f ) - - - def test_getDictPerSeqNameFromMapFile( self ): - inFile = "dummyInFile" - inFileHandler = open( inFile, "w" ) - inFileHandler.write( "TE1\tchr1\t1\t10\n" ) - inFileHandler.write( "TE2\tchr1\t60\t41\n" ) - inFileHandler.write( "TE3\tchr2\t5\t36\n" ) - inFileHandler.close() - dExp = { "chr1": [ Map( "TE1", "chr1", 1, 10 ), Map( "TE2", "chr1", 60, 41 ) ], - "chr2": [ Map( "TE3", "chr2", 5, 36 ) ] } - dObs = MapUtils.getDictPerSeqNameFromMapFile( inFile ) - self.assertEqual( dExp, dObs ) - os.remove( inFile ) - - def test_convertMapFileIntoSetFile(self): - mapInputFile = "dummyExpFile" - mapFileHandler = open( mapInputFile, "w" ) - mapFileHandler.write( "seq31\tchr1\t151\t250\n" ) - mapFileHandler.write( "seq27\tchr2\t301\t500\n" ) - mapFileHandler.write( "seq40\tchr2\t600\t700\n" ) - mapFileHandler.write( "seq2\tchr3\t301\t500\n" ) - mapFileHandler.close() - - expSetFile = "dummyexpSetFile" - expSetFileHandler = open( expSetFile, "w" ) - expSetFileHandler.write( "1\tseq31\tchr1\t151\t250\n" ) - expSetFileHandler.write( "2\tseq27\tchr2\t301\t500\n" ) - expSetFileHandler.write( "3\tseq40\tchr2\t600\t700\n" ) - expSetFileHandler.write( "4\tseq2\tchr3\t301\t500\n" ) - expSetFileHandler.close() - - obsFile = "dummyObsFile" - - MapUtils.convertMapFileIntoSetFile( mapInputFile, obsFile ) - - self.assertTrue( FileUtils.are2FilesIdentical( expSetFile, obsFile ) ) - - for f in [ expSetFile, mapInputFile, obsFile ]: - os.remove( f ) - - def test_convertMapFileIntoSetFile_one_line(self): - mapInputFile = "dummyExpFile" - mapFileHandler = open( mapInputFile, "w" ) - mapFileHandler.write( "seq31\tchr1\t151\t250\n" ) - mapFileHandler.close() - - expSetFile = "dummyexpSetFile" - expSetFileHandler = open( expSetFile, "w" ) - expSetFileHandler.write( "1\tseq31\tchr1\t151\t250\n" ) - expSetFileHandler.close() - - obsFile = "dummyObsFile" - - MapUtils.convertMapFileIntoSetFile( mapInputFile, obsFile ) - - self.assertTrue( FileUtils.are2FilesIdentical( expSetFile, obsFile ) ) - - for f in [ expSetFile, mapInputFile, obsFile ]: - os.remove( f ) - - def test_convertMapFileIntoSetFile_empty_file(self): - mapInputFile = "dummyFile.map" - mapFileHandler = open( mapInputFile, "w" ) - mapFileHandler.close() - - expFile = "dummyExpFile.map.set" - expFileHandler = open( expFile, "w" ) - expFileHandler.close() - - obsFile = "dummyFile.map.set" - - MapUtils.convertMapFileIntoSetFile( mapInputFile ) - - self.assertTrue( FileUtils.are2FilesIdentical( expFile, obsFile ) ) - - for f in [ expFile, mapInputFile, obsFile ]: - os.remove( f ) - - def test_writeListInFile_empty_list(self): - lMaps = [ ] - expFileName = "expFileName" - fileHandle = open(expFileName, "w") - fileHandle.close() - - obsFileName = "obsFileName" - fileHandle = open(obsFileName, "w") - MapUtils.writeListInFile(lMaps, obsFileName, "w") - fileHandle.close() - - self.assertTrue( FileUtils.are2FilesIdentical( expFileName, obsFileName ) ) - - os.remove(obsFileName) - os.remove(expFileName) - - def test_writeListInFile_list_one_set(self): - lMaps = [ Map( "map1", "map1seq", 1, 10 ) ] - line = "map1\tmap1seq\t1\t10\n" - - expFileName = "expFileName" - - fileHandle = open(expFileName, "w") - fileHandle.write(line) - fileHandle.close() - - obsFileName = "obsFileName" - fileHandle = open(obsFileName, "w") - MapUtils.writeListInFile(lMaps, obsFileName, "w") - fileHandle.close() - - self.assertTrue( FileUtils.are2FilesIdentical( expFileName, obsFileName ) ) - - os.remove(obsFileName) - os.remove(expFileName) - - def test_getMinLengthOfMapFile(self): - mapFileName = "%s/Gnome_tools/Vein_v4_scaffold_00001.fa.Nstretch.map" % os.environ["REPET_DATA"] - expMinLengthofMapFile = 20 - iMap = MapUtils() - obsMinLengthofMapFile = iMap.getMinLengthOfMapFile(mapFileName) - self.assertEquals(expMinLengthofMapFile, obsMinLengthofMapFile) - - def test_getMaxLengthOfMapFile(self): - mapFileName = "%s/Gnome_tools/Vein_v4_scaffold_00001.fa.Nstretch.map" % os.environ["REPET_DATA"] - expMinLengthofMapFile = 6344 - iMap = MapUtils() - obsMinLengthofMapFile = iMap.getMaxLengthOfMapFile(mapFileName) - self.assertEquals(expMinLengthofMapFile, obsMinLengthofMapFile) - - - -test_suite = unittest.TestSuite() -test_suite.addTest( unittest.makeSuite( Test_MapUtils ) ) -if __name__ == "__main__": - unittest.TextTestRunner(verbosity=2).run( test_suite )
--- a/commons/core/coord/test/Test_Match.py Mon Apr 29 03:26:07 2013 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,363 +0,0 @@ -# Copyright INRA (Institut National de la Recherche Agronomique) -# http://www.inra.fr -# http://urgi.versailles.inra.fr -# -# This software is governed by the CeCILL license under French law and -# abiding by the rules of distribution of free software. You can use, -# modify and/ or redistribute the software under the terms of the CeCILL -# license as circulated by CEA, CNRS and INRIA at the following URL -# "http://www.cecill.info". -# -# As a counterpart to the access to the source code and rights to copy, -# modify and redistribute granted by the license, users are provided only -# with a limited warranty and the software's author, the holder of the -# economic rights, and the successive licensors have only limited -# liability. -# -# In this respect, the user's attention is drawn to the risks associated -# with loading, using, modifying and/or developing or reproducing the -# software by the user in light of its specific status of free software, -# that may mean that it is complicated to manipulate, and that also -# therefore means that it is reserved for developers and experienced -# professionals having in-depth computer knowledge. Users are therefore -# encouraged to load and test the software's suitability as regards their -# requirements in conditions enabling the security of their systems and/or -# data to be ensured and, more generally, to use and operate it in the -# same conditions as regards security. -# -# The fact that you are presently reading this means that you have had -# knowledge of the CeCILL license and that you accept its terms. - - -import unittest -from commons.core.coord.Match import Match -from commons.core.coord.Path import Path - - -class Test_Match( unittest.TestCase ): - - def test_eq_match_equals( self ): - tuple1 = ("QName", 1, 5, 5, 0.1, 0.2, "SName", 5, 25, 20, 0.15, 1e-20, 15, 87.2, 1) - match1 = Match() - match1.setFromTuple(tuple1) - tuple2 = ("QName", 1, 5, 5, 0.1, 0.2, "SName", 5, 25, 20, 0.15, 1e-20, 15, 87.2, 1) - match2 = Match() - match2.setFromTuple(tuple2) - self.assertEquals( match1, match2 ) - - def test_eq_match_not_equals_query_name( self ): - tuple1 = ("Name", 1, 5, 5, 0.1, 0.2, "SName", 5, 25, 20, 0.15, 1e-20, 15, 87.2, 1) - match1 = Match() - match1.setFromTuple(tuple1) - tuple2 = ("QName", 1, 5, 5, 0.1, 0.2, "SName", 5, 25, 20, 0.15, 1e-20, 15, 87.2, 1) - match2 = Match() - match2.setFromTuple(tuple2) - self.assertNotEquals( match1, match2 ) - - def test_eq_match_not_equals_query_start( self ): - tuple1 = ("QName", 2, 5, 5, 0.1, 0.2, "SName", 5, 25, 20, 0.15, 1e-20, 15, 87.2, 1) - match1 = Match() - match1.setFromTuple(tuple1) - tuple2 = ("QName", 1, 5, 5, 0.1, 0.2, "SName", 5, 25, 20, 0.15, 1e-20, 15, 87.2, 1) - match2 = Match() - match2.setFromTuple(tuple2) - self.assertNotEquals( match1, match2 ) - - def test_eq_match_not_equals_query_end( self ): - tuple1 = ("QName", 1, 6, 5, 0.1, 0.2, "SName", 5, 25, 20, 0.15, 1e-20, 15, 87.2, 1) - match1 = Match() - match1.setFromTuple(tuple1) - tuple2 = ("QName", 1, 5, 5, 0.1, 0.2, "SName", 5, 25, 20, 0.15, 1e-20, 15, 87.2, 1) - match2 = Match() - match2.setFromTuple(tuple2) - self.assertNotEquals( match1, match2 ) - - def test_eq_match_not_equals_query_length( self ): - tuple1 = ("QName", 1, 5, 6, 0.1, 0.2, "SName", 5, 25, 20, 0.15, 1e-20, 15, 87.2, 1) - match1 = Match() - match1.setFromTuple(tuple1) - tuple2 = ("QName", 1, 5, 5, 0.1, 0.2, "SName", 5, 25, 20, 0.15, 1e-20, 15, 87.2, 1) - match2 = Match() - match2.setFromTuple(tuple2) - self.assertNotEquals( match1, match2 ) - - def test_eq_match_not_equals_query_length_perc( self ): - tuple1 = ("QName", 1, 5, 5, 0.15, 0.2, "SName", 5, 25, 20, 0.15, 1e-20, 15, 87.2, 1) - match1 = Match() - match1.setFromTuple(tuple1) - tuple2 = ("QName", 1, 5, 5, 0.1, 0.2, "SName", 5, 25, 20, 0.15, 1e-20, 15, 87.2, 1) - match2 = Match() - match2.setFromTuple(tuple2) - self.assertNotEquals( match1, match2 ) - - def test_eq_match_not_equals_match_length_perc( self ): - tuple1 = ("QName", 1, 5, 5, 0.1, 0.25, "SName", 5, 25, 20, 0.15, 1e-20, 15, 87.2, 1) - match1 = Match() - match1.setFromTuple(tuple1) - tuple2 = ("QName", 1, 5, 5, 0.1, 0.2, "SName", 5, 25, 20, 0.15, 1e-20, 15, 87.2, 1) - match2 = Match() - match2.setFromTuple(tuple2) - self.assertNotEquals( match1, match2 ) - - def test_eq_match_not_equals_subject_name( self ): - tuple1 = ("QName", 1, 5, 5, 0.1, 0.2, "Name", 5, 25, 20, 0.15, 1e-20, 15, 87.2, 1) - match1 = Match() - match1.setFromTuple(tuple1) - tuple2 = ("QName", 1, 5, 5, 0.1, 0.2, "SName", 5, 25, 20, 0.15, 1e-20, 15, 87.2, 1) - match2 = Match() - match2.setFromTuple(tuple2) - self.assertNotEquals( match1, match2 ) - - def test_eq_match_not_equals_subject_start( self ): - tuple1 = ("QName", 1, 5, 5, 0.1, 0.2, "SName", 6, 25, 20, 0.15, 1e-20, 15, 87.2, 1) - match1 = Match() - match1.setFromTuple(tuple1) - tuple2 = ("QName", 1, 5, 5, 0.1, 0.2, "SName", 5, 25, 20, 0.15, 1e-20, 15, 87.2, 1) - match2 = Match() - match2.setFromTuple(tuple2) - self.assertNotEquals( match1, match2 ) - - def test_eq_match_not_equals_subject_end( self ): - tuple1 = ("QName", 1, 5, 5, 0.1, 0.2, "SName", 5, 26, 20, 0.15, 1e-20, 15, 87.2, 1) - match1 = Match() - match1.setFromTuple(tuple1) - tuple2 = ("QName", 1, 5, 5, 0.1, 0.2, "SName", 5, 25, 20, 0.15, 1e-20, 15, 87.2, 1) - match2 = Match() - match2.setFromTuple(tuple2) - self.assertNotEquals( match1, match2 ) - - def test_eq_match_not_equals_subject_length( self ): - tuple1 = ("QName", 1, 5, 5, 0.1, 0.2, "SName", 5, 25, 21, 0.15, 1e-20, 15, 87.2, 1) - match1 = Match() - match1.setFromTuple(tuple1) - tuple2 = ("QName", 1, 5, 5, 0.1, 0.2, "SName", 5, 25, 20, 0.15, 1e-20, 15, 87.2, 1) - match2 = Match() - match2.setFromTuple(tuple2) - self.assertNotEquals( match1, match2 ) - - def test_eq_match_not_equals_subject_length_perc( self ): - tuple1 = ("QName", 1, 5, 5, 0.1, 0.2, "SName", 5, 25, 20, 0.16, 1e-20, 15, 87.2, 1) - match1 = Match() - match1.setFromTuple(tuple1) - tuple2 = ("QName", 1, 5, 5, 0.1, 0.2, "SName", 5, 25, 20, 0.15, 1e-20, 15, 87.2, 1) - match2 = Match() - match2.setFromTuple(tuple2) - self.assertNotEquals( match1, match2 ) - - def test_eq_match_not_equals_subject_e_value( self ): - tuple1 = ("QName", 1, 5, 5, 0.1, 0.2, "SName", 5, 25, 20, 0.15, 1e-21, 15, 87.2, 1) - match1 = Match() - match1.setFromTuple(tuple1) - tuple2 = ("QName", 1, 5, 5, 0.1, 0.2, "SName", 5, 25, 20, 0.15, 1e-20, 15, 87.2, 1) - match2 = Match() - match2.setFromTuple(tuple2) - self.assertNotEquals( match1, match2 ) - - def test_eq_match_not_equals_subject_score( self ): - tuple1 = ("QName", 1, 5, 5, 0.1, 0.2, "SName", 5, 25, 20, 0.15, 1e-20, 16, 87.2, 1) - match1 = Match() - match1.setFromTuple(tuple1) - tuple2 = ("QName", 1, 5, 5, 0.1, 0.2, "SName", 5, 25, 20, 0.15, 1e-20, 15, 87.2, 1) - match2 = Match() - match2.setFromTuple(tuple2) - self.assertNotEquals( match1, match2 ) - - def test_eq_match_not_equals_subject_identity( self ): - tuple1 = ("QName", 1, 5, 5, 0.1, 0.2, "SName", 5, 25, 20, 0.15, 1e-20, 15, 85.2, 1) - match1 = Match() - match1.setFromTuple(tuple1) - tuple2 = ("QName", 1, 5, 5, 0.1, 0.2, "SName", 5, 25, 20, 0.15, 1e-20, 15, 87.2, 1) - match2 = Match() - match2.setFromTuple(tuple2) - self.assertNotEquals( match1, match2 ) - - def test_eq_match_not_equals_subject_id( self ): - tuple1 = ("QName", 1, 5, 5, 0.1, 0.2, "SName", 5, 25, 20, 0.15, 1e-20, 15, 87.2, 2) - match1 = Match() - match1.setFromTuple(tuple1) - tuple2 = ("QName", 1, 5, 5, 0.1, 0.2, "SName", 5, 25, 20, 0.15, 1e-20, 15, 87.2, 1) - match2 = Match() - match2.setFromTuple(tuple2) - self.assertNotEquals( match1, match2 ) - - def test_setFromTuple_direct_strand( self ): - tuple = ("QName", 1, 5, 5, 0.1, 0.2, "SName", 5, 25, 20, 0.15, 1e-20, 15, 87.2, 1) - obsMatch = Match() - obsMatch.setFromTuple(tuple) - expMatch = Match() - expMatch.range_query.seqname = "QName" - expMatch.range_query.start = 1 - expMatch.range_query.end = 5 - expMatch.query_length = 5 - expMatch.query_length_perc = 0.1 - expMatch.match_length_perc = 0.2 - expMatch.range_subject.seqname = "SName" - expMatch.range_subject.start = 5 - expMatch.range_subject.end = 25 - expMatch.subject_length = 20 - expMatch.subject_length_perc = 0.15 - expMatch.e_value = 1e-20 - expMatch.score = 15 - expMatch.identity = 87.2 - expMatch.id = 1 - expMatch.subject_seqlength = int( expMatch.subject_length / expMatch.subject_length_perc ) - expMatch.query_seqlength = int( expMatch.query_length / expMatch.query_length_perc ) - self.assertEquals( expMatch, obsMatch ) - - def test_setFromTuple_reverse_strand_on_subject( self ): - tuple = ("QName", 1, 5, 5, 0.1, 0.2, "SName", 25, 5, 20, 0.15, 1e-20, 15, 87.2, 1) - obsMatch = Match() - obsMatch.setFromTuple(tuple) - expMatch = Match() - expMatch.range_query.seqname = "QName" - expMatch.range_query.start = 1 - expMatch.range_query.end = 5 - expMatch.query_length = 5 - expMatch.query_length_perc = 0.1 - expMatch.match_length_perc = 0.2 - expMatch.range_subject.seqname = "SName" - expMatch.range_subject.start = 25 - expMatch.range_subject.end = 5 - expMatch.subject_length = 20 - expMatch.subject_length_perc = 0.15 - expMatch.e_value = 1e-20 - expMatch.score = 15 - expMatch.identity = 87.2 - expMatch.id = 1 - expMatch.subject_seqlength = int( expMatch.subject_length / expMatch.subject_length_perc ) - expMatch.query_seqlength = int( expMatch.query_length / expMatch.query_length_perc ) - self.assertEquals( expMatch, obsMatch ) - - def test_setFromTuple_reverse_strand_on_query( self ): - tuple = ("QName", 5, 1, 5, 0.1, 0.2, "SName", 5, 25, 20, 0.15, 1e-20, 15, 87.2, 1) - obsMatch = Match() - obsMatch.setFromTuple(tuple) - expMatch = Match() - expMatch.range_query.seqname = "QName" - expMatch.range_query.start = 1 - expMatch.range_query.end = 5 - expMatch.query_length = 5 - expMatch.query_length_perc = 0.1 - expMatch.match_length_perc = 0.2 - expMatch.range_subject.seqname = "SName" - expMatch.range_subject.start = 25 - expMatch.range_subject.end = 5 - expMatch.subject_length = 20 - expMatch.subject_length_perc = 0.15 - expMatch.e_value = 1e-20 - expMatch.score = 15 - expMatch.identity = 87.2 - expMatch.id = 1 - expMatch.subject_seqlength = int( expMatch.subject_length / expMatch.subject_length_perc ) - expMatch.query_seqlength = int( expMatch.query_length / expMatch.query_length_perc ) - self.assertEquals( expMatch, obsMatch ) - - def test_setFromTuple_reverse_strand_on_query_and_subject( self ): - tuple = ("QName", 5, 1, 5, 0.1, 0.2, "SName", 25, 5, 20, 0.15, 1e-20, 15, 87.2, 1) - obsMatch = Match() - obsMatch.setFromTuple(tuple) - expMatch = Match() - expMatch.range_query.seqname = "QName" - expMatch.range_query.start = 1 - expMatch.range_query.end = 5 - expMatch.query_length = 5 - expMatch.query_length_perc = 0.1 - expMatch.match_length_perc = 0.2 - expMatch.range_subject.seqname = "SName" - expMatch.range_subject.start = 5 - expMatch.range_subject.end = 25 - expMatch.subject_length = 20 - expMatch.subject_length_perc = 0.15 - expMatch.e_value = 1e-20 - expMatch.score = 15 - expMatch.identity = 87.2 - expMatch.id = 1 - expMatch.subject_seqlength = int( expMatch.subject_length / expMatch.subject_length_perc ) - expMatch.query_seqlength = int( expMatch.query_length / expMatch.query_length_perc ) - self.assertEquals( expMatch, obsMatch ) - - def test_toString( self ): - tuple = ("QName", 1, 5, 5, 0.1, 0.2, "SName", 5, 25, 20, 0.15, 1e-20, 15, 87.2, 1) - match = Match() - match.setFromTuple(tuple) - expString = "QName\t1\t5\t5\t%f\t%f\tSName\t5\t25\t20\t%f\t%g\t15\t%f\t1" % (0.1,0.2,0.15,1e-20, 87.2) - obsString = match.toString() - self.assertEquals(expString, obsString) - - def test_getPathInstance( self ): - tuple = ( "QName", 1, 5, 5, 0.1, 0.2, "SName", 5, 25, 20, 0.15, 1e-20, 15, 87.2, 1 ) - match = Match() - match.setFromTuple( tuple ) - tuple = ( 1, "QName", 1, 5, "SName", 5, 25, 1e-20, 15, 87.2 ) - exp = Path() - exp.setFromTuple( tuple ) - obs = match.getPathInstance() - self.assertEqual( exp, obs ) - - def test_getQryIsIncluded(self): - tuple = ("QName", 1, 5, 5, 0.1, 0.2, "SName", 5, 25, 20, 0.15, 1e-20, 15, 87.2, 1) - match = Match() - match.setFromTuple(tuple) - expString = "query QName (50 bp: 1-5) is contained in subject SName (133 bp: 5-25): id=87.20 - 0.100 - 0.200 - 0.150" - obsString = match.getQryIsIncluded() - self.assertEquals(expString, obsString) - - def test_isDoublonWith_Matchs_equals(self): - tuple1 = ("QName", 1, 5, 5, 0.1, 0.2, "SName", 5, 25, 20, 0.15, 1e-20, 15, 87.2, 1) - match1 = Match() - match1.setFromTuple(tuple1) - tuple2 = ("QName", 1, 5, 5, 0.1, 0.2, "SName", 5, 25, 20, 0.15, 1e-20, 15, 87.2, 1) - match2 = Match() - match2.setFromTuple(tuple2) - self.assertTrue(match1.isDoublonWith(match2)) - - def test_isDoublonWith_Matchs_unequals_on_MatchNumbers(self): - tuple1 = ("QName", 1, 5, 5, 0.1, 0.2, "SName", 5, 25, 20, 0.15, 1e-20, 15, 87.2, 1) - match1 = Match() - match1.setFromTuple(tuple1) - tuple2 = ("QName", 1, 5, 5, 0.1, 0.2, "SName", 5, 25, 20, 0.15, 1e-20, 15, 86.2, 1) - match2 = Match() - match2.setFromTuple(tuple2) - self.assertFalse(match1.isDoublonWith(match2)) - - def test_isDoublonWith_Matchs_unequals_on_SeqNames(self): - tuple1 = ("QName", 1, 5, 5, 0.1, 0.2, "SName", 5, 25, 20, 0.15, 1e-20, 15, 87.2, 1) - match1 = Match() - match1.setFromTuple(tuple1) - tuple2 = ("QName", 1, 5, 5, 0.1, 0.2, "Name", 5, 25, 20, 0.15, 1e-20, 15, 87.2, 1) - match2 = Match() - match2.setFromTuple(tuple2) - self.assertFalse(match1.isDoublonWith(match2)) - - def test_isDoublonWith_Matchs_unequals_on_Coordinates(self): - tuple1 = ("QName", 1, 5, 5, 0.1, 0.2, "SName", 5, 25, 20, 0.15, 1e-20, 15, 87.2, 1) - match1 = Match() - match1.setFromTuple(tuple1) - tuple2 = ("QName", 1, 6, 5, 0.1, 0.2, "SName", 5, 25, 20, 0.15, 1e-20, 15, 87.2, 1) - match2 = Match() - match2.setFromTuple(tuple2) - self.assertFalse(match1.isDoublonWith(match2)) - - def test_isDoublonWith_Reversed_Matchs_equals(self): - tuple1 = ("QName", 1, 5, 5, 0.1, 0.2, "SName", 5, 25, 20, 0.15, 1e-20, 15, 87.2, 1) - match1 = Match() - match1.setFromTuple(tuple1) - tuple2 = ("SName", 5, 25, 20, 0.15, 0.2, "QName", 1, 5, 5, 0.1, 1e-20, 15, 87.2, 1) - match2 = Match() - match2.setFromTuple(tuple2) - self.assertTrue(match1.isDoublonWith(match2)) - - def test_isDoublonWith_Reversed_Matchs_unequals(self): - tuple1 = ("QName", 1, 5, 5, 0.1, 0.2, "SName", 5, 25, 20, 0.15, 1e-20, 15, 87.2, 1) - match1 = Match() - match1.setFromTuple(tuple1) - tuple2 = ("SName", 5, 25, 20, 0.15, 0.2, "QName", 1, 6, 5, 0.1, 1e-20, 15, 87.2, 1) - match2 = Match() - match2.setFromTuple(tuple2) - self.assertFalse(match1.isDoublonWith(match2)) - - -test_suite = unittest.TestSuite() -test_suite.addTest( unittest.makeSuite( Test_Match ) ) -if __name__ == "__main__": - unittest.TextTestRunner(verbosity=2).run( test_suite )
--- a/commons/core/coord/test/Test_MatchUtils.py Mon Apr 29 03:26:07 2013 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,439 +0,0 @@ -# Copyright INRA (Institut National de la Recherche Agronomique) -# http://www.inra.fr -# http://urgi.versailles.inra.fr -# -# This software is governed by the CeCILL license under French law and -# abiding by the rules of distribution of free software. You can use, -# modify and/ or redistribute the software under the terms of the CeCILL -# license as circulated by CEA, CNRS and INRIA at the following URL -# "http://www.cecill.info". -# -# As a counterpart to the access to the source code and rights to copy, -# modify and redistribute granted by the license, users are provided only -# with a limited warranty and the software's author, the holder of the -# economic rights, and the successive licensors have only limited -# liability. -# -# In this respect, the user's attention is drawn to the risks associated -# with loading, using, modifying and/or developing or reproducing the -# software by the user in light of its specific status of free software, -# that may mean that it is complicated to manipulate, and that also -# therefore means that it is reserved for developers and experienced -# professionals having in-depth computer knowledge. Users are therefore -# encouraged to load and test the software's suitability as regards their -# requirements in conditions enabling the security of their systems and/or -# data to be ensured and, more generally, to use and operate it in the -# same conditions as regards security. -# -# The fact that you are presently reading this means that you have had -# knowledge of the CeCILL license and that you accept its terms. - - -import unittest -import os -from commons.core.utils.FileUtils import FileUtils -from commons.core.coord.MatchUtils import MatchUtils -from commons.core.coord.Match import Match -from commons.core.seq.BioseqDB import BioseqDB - - -class Test_MatchUtils( unittest.TestCase ): - - def test_getMatchListFromFile( self ): - inFile = "dummyInFile" - inFileHandler = open( inFile, "w" ) - inFileHandler.write( "query.name\tquery.start\tquery.end\tquery.length\tquery.length.%\tmatch.length.%\tsubject.name\tsubject.start\tsubject.end\tsubject.length\tsubject.length.%\tE.value\tScore\tIdentity\tpath\n" ) - m1 = Match() - m1.setFromTuple( ("QName", 1, 5, 5, 0.1, 0.2, "SName1", 5, 25, 20, 0.15, 1e-20, 15, 87.2, 1) ) - m1.write( inFileHandler ) - m2 = Match() - m2.setFromTuple( ("QName", 1, 5, 5, 0.1, 0.2, "SName2", 5, 25, 20, 0.15, 1e-20, 15, 87.2, 1) ) - m2.write( inFileHandler ) - inFileHandler.close() - - lExp = [ m1, m2 ] - - lObs = MatchUtils.getMatchListFromFile( inFile ) - - self.assertEquals( lExp, lObs ) - - os.remove( inFile ) - - def test_getDictOfListsWithSubjectAsKey( self ): - m1 = Match() - m1.setFromTuple( ("QName", 1, 5, 5, 0.1, 0.2, "SName1", 5, 25, 20, 0.15, 1e-20, 15, 87.2, 1) ) - m2 = Match() - m2.setFromTuple( ("QName", 1, 5, 5, 0.1, 0.2, "SName2", 5, 25, 20, 0.15, 1e-20, 15, 87.2, 1) ) - lMatch = [ m1, m2 ] - - dExp = { "SName1": [ m1 ], "SName2": [ m2 ] } - - dObs = MatchUtils.getDictOfListsWithSubjectAsKey( lMatch ) - - self.assertEquals( dExp, dObs ) - - def test_getDictOfListsWithQueryAsKey( self ): - m1 = Match() - m1.setFromTuple( ("QName1", 1, 5, 5, 0.1, 0.2, "SName1", 5, 25, 20, 0.15, 1e-20, 15, 87.2, 1) ) - m2 = Match() - m2.setFromTuple( ("QName2", 1, 5, 5, 0.1, 0.2, "SName2", 5, 25, 20, 0.15, 1e-20, 15, 87.2, 1) ) - m3 = Match() - m3.setFromTuple( ("QName1", 1, 5, 5, 0.1, 0.2, "SName3", 5, 25, 20, 0.15, 1e-20, 15, 87.2, 1) ) - lMatch = [ m1, m2, m3 ] - - dExp = { "QName1": [ m1, m3 ], "QName2": [ m2 ] } - - dObs = MatchUtils.getDictOfListsWithQueryAsKey( lMatch ) - - self.assertEquals( dExp, dObs ) - - def test_getIdListFromMatchList( self ): - m1 = Match() - m1.setFromTuple( ("QName", 1, 5, 5, 0.1, 0.2, "SName1", 5, 25, 20, 0.15, 1e-20, 15, 87.2, 1) ) - m2 = Match() - m2.setFromTuple( ("QName", 1, 5, 5, 0.1, 0.2, "SName2", 5, 25, 20, 0.15, 1e-20, 15, 87.2, 10) ) - lMatch = [ m1, m2 ] - - lExp = [1, 10] - - lObs = MatchUtils.getIdListFromMatchList( lMatch ) - - self.assertEquals(lExp, lObs) - - def test_getIdListFromMatchList_empty_list( self ): - lMatch = [] - lExp = [] - - lObs = MatchUtils.getIdListFromMatchList( lMatch ) - - self.assertEquals(lExp, lObs) - - def test_writeListInFile_without_header( self ): - m1 = Match() - m1.setFromTuple( ("QName", 1, 5, 5, 0.1, 0.2, "SName1", 5, 25, 20, 0.15, 1e-20, 15, 87.2, 1) ) - m2 = Match() - m2.setFromTuple( ("QName", 1, 5, 5, 0.1, 0.2, "SName2", 5, 25, 20, 0.15, 1e-20, 15, 87.2, 10) ) - lMatch = [ m1, m2 ] - - line1 = "QName\t1\t5\t5\t0.100000\t0.200000\tSName1\t5\t25\t20\t0.150000\t1e-20\t15\t87.200000\t1\n" - line2 = "QName\t1\t5\t5\t0.100000\t0.200000\tSName2\t5\t25\t20\t0.150000\t1e-20\t15\t87.200000\t10\n" - - expFileName = "expFileName.match" - expFileHandle = open ( expFileName, 'w' ) - expFileHandle.write(line1) - expFileHandle.write(line2) - expFileHandle.close() - - obsFileName = "obsFileName.match" - - MatchUtils.writeListInFile( lMatch, obsFileName ) - - self.assertTrue( FileUtils.are2FilesIdentical( expFileName, obsFileName ) ) - - os.remove( obsFileName ) - os.remove( expFileName ) - - def test_writeListInFile_with_header( self ): - m1 = Match() - m1.setFromTuple( ("QName", 1, 5, 5, 0.1, 0.2, "SName1", 5, 25, 20, 0.15, 1e-20, 15, 87.2, 1) ) - m2 = Match() - m2.setFromTuple( ("QName", 1, 5, 5, 0.1, 0.2, "SName2", 5, 25, 20, 0.15, 1e-20, 15, 87.2, 10) ) - lMatch = [ m1, m2 ] - - headerLine = "query.name\tquery.start\tquery.end\tquery.length\tquery.length.%\tmatch.length.%\tsubject.name\tsubject.start\tsubject.end\tsubject.length\tsubject.length.%\tE.value\tScore\tIdentity\tpath\n" - - line1 = headerLine - line2 = "QName\t1\t5\t5\t0.100000\t0.200000\tSName1\t5\t25\t20\t0.150000\t1e-20\t15\t87.200000\t1\n" - line3 = "QName\t1\t5\t5\t0.100000\t0.200000\tSName2\t5\t25\t20\t0.150000\t1e-20\t15\t87.200000\t10\n" - - expFileName = "expFileName.match" - expFileHandle = open ( expFileName, 'w' ) - expFileHandle.write(line1) - expFileHandle.write(line2) - expFileHandle.write(line3) - expFileHandle.close() - - obsFileName = "obsFileName.match" - - MatchUtils.writeListInFile( lMatch, obsFileName, header=headerLine ) - - self.assertTrue( FileUtils.are2FilesIdentical( expFileName, obsFileName ) ) - - os.remove( obsFileName ) - os.remove( expFileName ) - - def test_writeListInFile_with_append_mode( self ): - m1 = Match() - m1.setFromTuple( ("QName", 1, 5, 5, 0.1, 0.2, "SName1", 5, 25, 20, 0.15, 1e-20, 15, 87.2, 1) ) - m2 = Match() - m2.setFromTuple( ("QName", 1, 5, 5, 0.1, 0.2, "SName2", 5, 25, 20, 0.15, 1e-20, 15, 87.2, 10) ) - lMatch = [ m1, m2 ] - - line1 = "QName\t1\t5\t5\t0.100000\t0.200000\tSName1\t5\t25\t20\t0.150000\t1e-20\t15\t87.200000\t1\n" - line2 = "QName\t1\t5\t5\t0.100000\t0.200000\tSName2\t5\t25\t20\t0.150000\t1e-20\t15\t87.200000\t10\n" - - expFileName = "expFileName.match" - expFileHandle = open ( expFileName, 'w' ) - expFileHandle.write(line1) - expFileHandle.write(line1) - expFileHandle.write(line2) - expFileHandle.close() - - obsFileName = "obsFileName.match" - obsFileHandle = open ( obsFileName, 'w' ) - obsFileHandle.write(line1) - obsFileHandle.close() - - MatchUtils.writeListInFile( lMatch, obsFileName, 'a' ) - - self.assertTrue( FileUtils.are2FilesIdentical( expFileName, obsFileName ) ) - - os.remove( obsFileName ) - os.remove( expFileName ) - - def test_rmvDuplicateMatches(self): - m1 = Match() - m1.setFromTuple( ("QName", 1, 5, 5, 0.1, 0.2, "SName", 5, 25, 20, 0.15, 1e-20, 15, 87.2, 1) ) - m2 = Match() - m2.setFromTuple( ("QName", 1, 5, 5, 0.1, 0.2, "SName2", 5, 25, 20, 0.15, 1e-20, 15, 86.2, 1) ) - m3 = Match() - m3.setFromTuple( ("QName", 1, 5, 5, 0.1, 0.2, "SName", 5, 25, 20, 0.15, 1e-20, 15, 87.2, 1) ) - lMatch = [ m1, m3, m2 ] - - lExp = [m1, m2] - lObs = MatchUtils.rmvDuplicateMatches(lMatch) - - self.assertEquals(lExp, lObs) - - def test_filterDiffQrySbj_same_seq(self): - fastaFileName = "file.fa" - self._writeFastaFile(fastaFileName) - qryDB = BioseqDB(fastaFileName) - tabFileName = "file.tab" - self._writeMatchFile(tabFileName) - - expListToKeep = ["HELITRON2"] - obsListToKeep = MatchUtils.filterDiffQrySbj(qryDB,tabFileName, 0.95, 0.98, 2) - self.assertEquals(expListToKeep, obsListToKeep) - os.remove(fastaFileName) - os.remove(tabFileName) - - def test_filterDiffQrySbj_TE_included_in_67percent_in_other_TE(self): - fastaFileName = "file.fa" - self._writeFastaFile2(fastaFileName) - qryDB = BioseqDB(fastaFileName) - tabFileName = "file.tab" - self._writeMatchFile2(tabFileName) - expListToKeep = [] - obsListToKeep = MatchUtils.filterDiffQrySbj(qryDB, tabFileName, 0.95, 0.98, 2) - self.assertEquals(expListToKeep, obsListToKeep) - os.remove(fastaFileName) - os.remove(tabFileName) - - def test_getNbDistinctSequencesInsideMatchesWithThresh_query(self): - tabFileName = "file.tab" - self._writeMatchFile3(tabFileName) - lMatches = MatchUtils.getMatchListFromFile(tabFileName) - expNbDistinctMatches = 1 - obsNbDistinctMatches = MatchUtils.getNbDistinctSequencesInsideMatchesWithThresh(lMatches,0.95, 0.98,"query") - self.assertEquals(expNbDistinctMatches, obsNbDistinctMatches) - os.remove(tabFileName) - - def test_getNbDistinctSequencesInsideMatchesWithThresh_subject(self): - tabFileName = "file.tab" - self._writeMatchFile3(tabFileName) - lMatches = MatchUtils.getMatchListFromFile(tabFileName) - expNbDistinctMatches = 1 - obsNbDistinctMatches = MatchUtils.getNbDistinctSequencesInsideMatchesWithThresh(lMatches,0.95, 0.98,"subject") - self.assertEquals(expNbDistinctMatches, obsNbDistinctMatches) - os.remove(tabFileName) - - def test_convertMatchFileToAlignFile(self): - inputMatchFileName = "file.tab" - expAlignFileName = "expected.align" - obsAlignFileName = "file.align" - - self._writeExpAlignFile(expAlignFileName) - self._writeMatchFile4(inputMatchFileName) - MatchUtils.convertMatchFileToAlignFile(inputMatchFileName) - - self.assertTrue(FileUtils.are2FilesIdentical(expAlignFileName, obsAlignFileName)) - - os.remove(inputMatchFileName) - os.remove(expAlignFileName) - os.remove(obsAlignFileName) - - def test_convertMatchFileToAlignFile_empty_file(self): - inputMatchFileName = "file.tab" - expAlignFileName = "expected.align" - obsAlignFileName = "file.align" - - f = open(expAlignFileName, "w") - f.close() - f = open(inputMatchFileName, "w") - f.close() - MatchUtils.convertMatchFileToAlignFile(inputMatchFileName) - - self.assertTrue(FileUtils.are2FilesIdentical(expAlignFileName, obsAlignFileName)) - - os.remove(inputMatchFileName) - os.remove(expAlignFileName) - os.remove(obsAlignFileName) - - def test_generateMatchFileWithNewPathId(self): - inputMatchFileName = "file.tab" - expMatchFileName = "expected.tab" - obsMatchFileName = "obsFile.tab" - - self._writeMatchFile5(inputMatchFileName) - self._writeExpMatchFile(expMatchFileName) - MatchUtils.generateMatchFileWithNewPathId(inputMatchFileName, obsMatchFileName) - - self.assertTrue(FileUtils.are2FilesIdentical(expMatchFileName, obsMatchFileName)) - - os.remove(inputMatchFileName) - os.remove(expMatchFileName) - os.remove(obsMatchFileName) - - def test_generateMatchFileWithNewPathId_empty_file(self): - inputMatchFileName = "file.tab" - expMatchFileName = "expected.tab" - obsMatchFileName = "obsFile.tab" - - f = open(expMatchFileName, "w") - f.write("query.name\tquery.start\tquery.end\tquery.length\tquery.length.%\tmatch.length.%\tsubject.name\tsubject.start\tsubject.end\tsubject.length\tsubject.length.%\tE.value\tScore\tIdentity\tpath\n") - f.close() - f = open(inputMatchFileName, "w") - f.close() - MatchUtils.generateMatchFileWithNewPathId(inputMatchFileName, obsMatchFileName) - - self.assertTrue(FileUtils.are2FilesIdentical(expMatchFileName, obsMatchFileName)) - - os.remove(inputMatchFileName) - os.remove(expMatchFileName) - os.remove(obsMatchFileName) - - def test_convertMatchFileIntoABCFileOnQueryCoverage(self): - matchFileName = "dummy.tab" - with open(matchFileName, "w") as f: - f.write("query.name\tquery.start\tquery.end\tquery.length\tquery.length.%\tmatch.length.%\tsubject.name\tsubject.start\tsubject.end\tsubject.length\tsubject.length.%\tE.value\tScore\tIdentity\tpath\n") - f.write("chr3\t1\t100\t100\t0.98\t0.95\tchr5\t11\t110\t100\t0.95\t1e-52\t133\t87.200000\n") - f.write("chr7\t1\t200\t200\t0.98\t0.95\tchr2\t11\t210\t200\t0.95\t1e-78\t235\t98.900000\n") - f.write("chr5\t1\t100\t100\t0.95\t0.95\tchr3\t11\t110\t100\t0.98\t1e-52\t133\t87.200000\n") - f.write("chr2\t1\t200\t200\t0.95\t0.95\tchr7\t11\t210\t200\t0.98\t1e-78\t235\t98.900000\n") - expFileName = "exp.abc" - with open(expFileName, "w") as f: - f.write("chr3\tchr5\t0.98\n") - f.write("chr7\tchr2\t0.98\n") - f.write("chr5\tchr3\t0.95\n") - f.write("chr2\tchr7\t0.95\n") - obsFileName = "obs.abc" - - MatchUtils.convertMatchFileIntoABCFileOnQueryCoverage(matchFileName, obsFileName) - - self.assertTrue(FileUtils.are2FilesIdentical(expFileName, obsFileName)) - - os.remove(matchFileName) - os.remove(expFileName) - os.remove(obsFileName) - - def test_convertMatchFileIntoABCFileOnQueryCoverage_coverage_threshold_85(self): - matchFileName = "dummy.tab" - with open(matchFileName, "w") as f: - f.write("query.name\tquery.start\tquery.end\tquery.length\tquery.length.%\tmatch.length.%\tsubject.name\tsubject.start\tsubject.end\tsubject.length\tsubject.length.%\tE.value\tScore\tIdentity\tpath\n") - f.write("chr3\t1\t100\t100\t0.98\t0.95\tchr5\t11\t110\t100\t0.95\t1e-52\t133\t87.200000\n") - f.write("chr7\t1\t200\t200\t0.98\t0.95\tchr2\t11\t210\t200\t0.95\t1e-78\t235\t98.900000\n") - f.write("chr5\t1\t100\t100\t0.85\t0.95\tchr3\t11\t110\t100\t0.98\t1e-52\t133\t87.200000\n") - f.write("chr2\t1\t200\t200\t0.80\t0.95\tchr7\t11\t210\t200\t0.98\t1e-78\t235\t98.900000\n") - expFileName = "exp.abc" - with open(expFileName, "w") as f: - f.write("chr3\tchr5\t0.98\n") - f.write("chr7\tchr2\t0.98\n") - f.write("chr5\tchr3\t0.85\n") - obsFileName = "obs.abc" - - MatchUtils.convertMatchFileIntoABCFileOnQueryCoverage(matchFileName, obsFileName, coverage = 0.85) - - self.assertTrue(FileUtils.are2FilesIdentical(expFileName, obsFileName)) - - os.remove(matchFileName) - os.remove(expFileName) - os.remove(obsFileName) - - def _writeFastaFile(self, fileName): - f = open(fileName, "w") - f.write(">HELITRON3\n") - f.write("GGCCAGTCACAATGGGGGTTTCACTGGTGTGTCATGCACATTTAATAGGGGTAAGACTGA\n") - f.write("ATAAAAAATGATTATTTGCATGAAATGGGGATGAGAGAGAAGGAAAGAGTTTCATCCTGG\n") - f.write("GATTCGTTTCATTCACCGGATCTCTTGCGTCCGCCTCCGCCGTGCGACCTCCGCATTCTC\n") - f.write(">HELITRON2\n") - f.write("GGCCAGTCACAATGGGGGTTTCACTGGTGTGTCATGCACATTTAATAGGGGTAAGACTGA\n") - f.write("ATAAAAAATGATTATTTGCATGAAATGGGGATGAGAGAGAAGGAAAGAGTTTCATCCTGG\n") - f.write("GATTCGTTTCATTCACCGGATCTCTTGCGTCCGCCTCCGCCGTGCGACCTCCGCATTCTC\n") - f.close() - - def _writeMatchFile(self, fileName): - f = open(fileName, "w") - f.write("query.name\tquery.start\tquery.end\tquery.length\tquery.length.%\tmatch.length.%\tsubject.name\tsubject.start\tsubject.end\tsubject.length\tsubject.length.%\tE.value\tScore\tIdentity\tpath\n") - f.write("HELITRON3\t1\t180\t180\t1\t1\tHELITRON2\t1\t180\t180\t1\t2e-103\t357\t100\t1\n") - f.close() - - def _writeFastaFile2(self, fileName): - f = open(fileName, "w") - f.write(">header2\n") - f.write("TTTCACTGGTGTGTCATGCACATTTAATAGGGGTAAGACTGAATAAAAAATGATTATTTG\n") - f.write("CATGAAATGGGGATGAGAGAGAAGGAAAGAGTTTCATCCTGGGATTCGTTTCATTCACCG\n") - f.close() - - def _writeMatchFile2(self, fileName): - f = open(fileName, "w") - f.write("query.name\tquery.start\tquery.end\tquery.length\tquery.length.%\tmatch.length.%\tsubject.name\tsubject.start\tsubject.end\tsubject.length\tsubject.length.%\tE.value\tScore\tIdentity\tpath\n") - f.write("header2\t1\t120\t120\t1\t0.674157\tBS31790\t19\t138\t120\t0.674157\t3e-68\t238\t100\t1\n") - f.close() - - def _writeMatchFile3(self, fileName): - f = open(fileName, "w") - f.write("query.name\tquery.start\tquery.end\tquery.length\tquery.length.%\tmatch.length.%\tsubject.name\tsubject.start\tsubject.end\tsubject.length\tsubject.length.%\tE.value\tScore\tIdentity\tpath\n") - f.write("header2\t1\t120\t120\t0.674157\t0.674157\tBS31790\t19\t138\t120\t0.674157\t3e-68\t238\t100\t1\n") - f.write("header3\t1\t120\t120\t0.99\t0.994157\tBS31790\t19\t138\t120\t0.994157\t3e-68\t238\t100\t1\n") - f.write("header4\t1\t120\t120\t1\t0.94157\tBS31790\t19\t138\t120\t0.674157\t3e-68\t238\t67\t1\n") - f.close() - - def _writeMatchFile4(self, fileName): - f = open(fileName, "w") - f.write("query.name\tquery.start\tquery.end\tquery.length\tquery.length.%\tmatch.length.%\tsubject.name\tsubject.start\tsubject.end\tsubject.length\tsubject.length.%\tE.value\tScore\tIdentity\tpath\n") - f.write("header2\t1\t120\t120\t0.674157\t0.674157\tBS31790\t19\t138\t120\t0.674157\t3e-68\t238\t100\t1\n") - f.write("header3\t120\t220\t120\t0.99\t0.994157\tBS31790\t19\t138\t120\t0.994157\t3e-65\t238\t100\t1\n") - f.write("header4\t1\t120\t120\t1\t0.94157\tBS31790\t19\t138\t120\t0.674157\t3e-67\t244\t90\t1\n") - f.close() - - def _writeExpAlignFile(self,fileName): - f = open(fileName, "w") - f.write("header2\t1\t120\tBS31790\t19\t138\t3e-68\t238.0\t100.0\n") - f.write("header3\t120\t220\tBS31790\t19\t138\t3e-65\t238.0\t100.0\n") - f.write("header4\t1\t120\tBS31790\t19\t138\t3e-67\t244.0\t90.0\n") - f.close() - - def _writeMatchFile5(self,fileName): - f = open(fileName, "w") - f.write("query.name\tquery.start\tquery.end\tquery.length\tquery.length.%\tmatch.length.%\tsubject.name\tsubject.start\tsubject.end\tsubject.length\tsubject.length.%\tE.value\tScore\tIdentity\tpath\n") - f.write("header2\t1\t120\t120\t0.674157\t0.674157\tBS31790\t19\t138\t120\t0.674157\t3e-68\t238\t100\t1\n") - f.write("header2\t124\t144\t120\t0.674157\t0.674157\tBS31790\t19\t138\t120\t0.674157\t3e-68\t238\t100\t1\n") - f.write("header3\t120\t220\t120\t0.99\t0.994157\tBS31790\t19\t138\t120\t0.994157\t3e-65\t238\t100\t1\n") - f.write("header4\t1\t120\t120\t1\t0.94157\tBS31790\t19\t138\t120\t0.674157\t3e-67\t244\t90\t1\n") - f.close() - - def _writeExpMatchFile(self,fileName): - f = open(fileName, "w") - f.write("query.name\tquery.start\tquery.end\tquery.length\tquery.length.%\tmatch.length.%\tsubject.name\tsubject.start\tsubject.end\tsubject.length\tsubject.length.%\tE.value\tScore\tIdentity\tpath\n") - f.write("header2\t1\t120\t120\t0.674157\t0.674157\tBS31790\t19\t138\t120\t0.674157\t3e-68\t238\t100.000000\t1\n") - f.write("header2\t124\t144\t120\t0.674157\t0.674157\tBS31790\t19\t138\t120\t0.674157\t3e-68\t238\t100.000000\t1\n") - f.write("header3\t120\t220\t120\t0.990000\t0.994157\tBS31790\t19\t138\t120\t0.994157\t3e-65\t238\t100.000000\t2\n") - f.write("header4\t1\t120\t120\t1.000000\t0.941570\tBS31790\t19\t138\t120\t0.674157\t3e-67\t244\t90.000000\t3\n") - f.close() - - -test_suite = unittest.TestSuite() -test_suite.addTest( unittest.makeSuite( Test_MatchUtils ) ) -if __name__ == "__main__": - unittest.TextTestRunner(verbosity=2).run( test_suite )
--- a/commons/core/coord/test/Test_MergedRange.py Mon Apr 29 03:26:07 2013 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,119 +0,0 @@ -import unittest -from commons.core.coord.MergedRange import MergedRange -from commons.core.coord.Match import Match - -class Test_MergedRange(unittest.TestCase): - - def test_eq_True(self): - mr1 = MergedRange([1], 6, 10) - mr2 = MergedRange([1], 6, 10) - self.assertEquals(mr1, mr2) - - def test_eq_different_list(self): - mr1 = MergedRange([1], 6, 10) - mr2 = MergedRange([1, 2], 6, 10) - self.assertNotEquals(mr1, mr2) - - def test_eq_different_start(self): - mr1 = MergedRange([1], 5, 10) - mr2 = MergedRange([1], 6, 10) - self.assertNotEquals(mr1, mr2) - - def test_eq_different_end(self): - mr1 = MergedRange([1], 6, 10) - mr2 = MergedRange([1], 6, 11) - self.assertNotEquals(mr1, mr2) - - def test_isOverlapping_no( self ): - mr1 = MergedRange([1], 6, 10) - mr2 = MergedRange([2], 16, 20) - exp = False - obs = mr1.isOverlapping( mr2 ) - self.assertEquals( exp, obs ) - - def test_isOverlapping_yes( self ): - mr1 = MergedRange([1], 6, 10) - mr2 = MergedRange([2], 5, 20) - exp = True - obs = mr1.isOverlapping( mr2 ) - self.assertEquals( exp, obs ) - - def test_isOverlapping_range1_before_range2( self ): - mr1 = MergedRange([1], 6, 10) - mr2 = MergedRange([2], 8, 15) - exp = True - obs = mr1.isOverlapping( mr2 ) - self.assertEquals( exp, obs ) - - def test_isOverlapping_range1_after_range2( self ): - mr1 = MergedRange([1], 6, 10) - mr2 = MergedRange([2], 1, 8) - exp = True - obs = mr1.isOverlapping( mr2 ) - self.assertEquals( exp, obs ) - - def test_isOverlapping_range1_equal_range2( self ): - mr1 = MergedRange([1], 6, 10) - mr2 = MergedRange([2], 6, 10) - exp = True - obs = mr1.isOverlapping( mr2 ) - self.assertEquals( exp, obs ) - - def test_merge_mr1_with_mr2(self): - otherMergedRange = MergedRange() - otherMergedRange._lId.append(3) - otherMergedRange._start = 1 - otherMergedRange._end = 10 - - mr1 = MergedRange() - mr1._lId.append(1) - mr1._start = 6 - mr1._end = 10 - - mr2 = MergedRange([2], 1, 15) - mr1.merge(mr2) - - exp = MergedRange([1, 2], 1, 15) - self.assertEquals(exp, mr1) - - def test_merge_mr2_with_mr1(self): - mr1 = MergedRange([1], 6, 10) - mr2 = MergedRange([2], 1, 15) - mr2.merge(mr1) - exp = MergedRange([1, 2], 1, 15) - self.assertEquals(exp, mr2) - - def test_setFromMatch(self): - tuple = ("QName", 1, 5, 5, 0.1, 0.2, "SName", 5, 25, 20, 0.15, 1e-20, 15, 87.2, 1) - iMatch = Match() - iMatch.setFromTuple(tuple) - - expMergedRange = MergedRange([1], 1, 5) - obsMergedRange = MergedRange() - obsMergedRange.setFromMatch(iMatch) - - self.assertEquals(expMergedRange, obsMergedRange) - - def test_getMergedRangeListFromMatchList(self): - tuple1 = ("QName", 1, 5, 5, 0.1, 0.2, "SName", 5, 25, 20, 0.15, 1e-20, 15, 87.2, 1) - iMatch1 = Match() - iMatch1.setFromTuple(tuple1) - tuple2 = ("QName", 10, 15, 5, 0.1, 0.2, "SName", 5, 25, 20, 0.15, 1e-20, 15, 87.2, 2) - iMatch2 = Match() - iMatch2.setFromTuple(tuple2) - lMatch = [iMatch1, iMatch2] - - explMergedRange = [MergedRange([1], 1, 5), MergedRange([2], 10, 15)] - obslMergedRange = MergedRange.getMergedRangeListFromMatchList(lMatch) - - self.assertEquals(explMergedRange, obslMergedRange) - - def test_getMergedRangeListFromMatchList_empty_list(self): - lMatch = [] - explMergedRange = [] - obslMergedRange = MergedRange.getMergedRangeListFromMatchList(lMatch) - - self.assertEquals(explMergedRange, obslMergedRange) - -if __name__ == "__main__": - unittest.main() \ No newline at end of file
--- a/commons/core/coord/test/Test_Path.py Mon Apr 29 03:26:07 2013 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,146 +0,0 @@ -# Copyright INRA (Institut National de la Recherche Agronomique) -# http://www.inra.fr -# http://urgi.versailles.inra.fr -# -# This software is governed by the CeCILL license under French law and -# abiding by the rules of distribution of free software. You can use, -# modify and/ or redistribute the software under the terms of the CeCILL -# license as circulated by CEA, CNRS and INRIA at the following URL -# "http://www.cecill.info". -# -# As a counterpart to the access to the source code and rights to copy, -# modify and redistribute granted by the license, users are provided only -# with a limited warranty and the software's author, the holder of the -# economic rights, and the successive licensors have only limited -# liability. -# -# In this respect, the user's attention is drawn to the risks associated -# with loading, using, modifying and/or developing or reproducing the -# software by the user in light of its specific status of free software, -# that may mean that it is complicated to manipulate, and that also -# therefore means that it is reserved for developers and experienced -# professionals having in-depth computer knowledge. Users are therefore -# encouraged to load and test the software's suitability as regards their -# requirements in conditions enabling the security of their systems and/or -# data to be ensured and, more generally, to use and operate it in the -# same conditions as regards security. -# -# The fact that you are presently reading this means that you have had -# knowledge of the CeCILL license and that you accept its terms. - - -import unittest -from commons.core.coord.Path import Path -from commons.core.coord.Align import Align -from commons.core.coord.Set import Set - - -class Test_Path( unittest.TestCase ): - - def setUp( self ): - self._path = Path() - - def test_setFromTuple( self ): - line = "1\tchr1\t1\t10\tTE2\t11\t17\t1e-20\t30\t90.2" - self._path.setFromTuple( line.split("\t") ) - self.assertEqual( self._path.id, 1 ) - self.assertEqual( self._path.range_query.seqname, "chr1" ) - self.assertEqual( self._path.range_query.start, 1 ) - self.assertEqual( self._path.range_query.end, 10 ) - self.assertEqual( self._path.range_subject.seqname, "TE2" ) - self.assertEqual( self._path.range_subject.start, 11 ) - self.assertEqual( self._path.range_subject.end, 17 ) - self.assertEqual( self._path.e_value, float("1e-20") ) - self.assertEqual( self._path.score, float("30") ) - self.assertEqual( self._path.identity, float("90.2") ) - - def test___eq__( self ): - self._path.setFromString( "1\tchr1\t1\t6\tTE2\t11\t16\t1e-20\t30\t90.2\n" ) - o = Path() - o.setFromString( "1\tchr1\t1\t6\tTE2\t11\t16\t1e-20\t30\t90.2\n" ) - self.assertEqual( self._path, o ) - o.setFromString( "2\tchr1\t1\t6\tTE2\t11\t16\t1e-20\t30\t90.2\n" ) - self.assertNotEqual( self._path, o ) - o.setFromString( "1\tchr1\t1\t6\tTE2\t11\t16\t1e-20\t3000000\t90.2\n" ) - self.assertNotEqual( self._path, o ) - - def test_canMerge( self ): - tuple = ("1", "chr1","1", "10","TE2","11","17","1e-20","30","90.2") - self._path.setFromTuple(tuple) - tuple = ("2", "chr1","2", "9","TE2","10","13","1e-20","30","90.2") - o = Path() - o.setFromTuple(tuple) - self.assertTrue(self._path.canMerge(o)) - - def test_canMerge_on_same_id ( self ): - tuple = ("1", "chr1","1", "10","TE2","11","17","1e-20","30","90.2") - self._path.setFromTuple(tuple) - tuple = ("1", "chr1","2", "9","TE2","10","13","1e-20","30","90.2") - o = Path() - o.setFromTuple(tuple) - self.assertFalse(self._path.canMerge(o)) - - def test_canMerge_on_same_chr( self ): - tuple = ("1", "chr1","1", "10","TE2","11","17","1e-20","30","90.2") - self._path.setFromTuple(tuple) - tuple = ("2", "chr2","2", "9","TE2","10","13","1e-20","30","90.2") - o = Path() - o.setFromTuple(tuple) - self.assertFalse(self._path.canMerge(o)) - - def test_canMerge_on_diff_subj( self ): - tuple = ("1", "chr1","1", "10","TE2","11","17","1e-20","30","90.2") - self._path.setFromTuple(tuple) - tuple = ("2", "chr1","2", "9","TE3","10","13","1e-20","30","90.2") - o = Path() - o.setFromTuple(tuple) - self.assertFalse(self._path.canMerge(o)) - - def test_canMerge_on_queries_that_do_not_overlap( self ): - tuple = ("1", "chr1","5", "11","TE2","11","17","1e-20","30","90.2") - self._path.setFromTuple(tuple) - tuple = ("2", "chr1","1", "4","TE2","10","13","1e-20","30","90.2") - o = Path() - o.setFromTuple(tuple) - self.assertFalse(self._path.canMerge(o)) - - def test_canMerge_on_subjects_that_do_not_overlap( self ): - tuple = ("1", "chr1","1", "10","TE2","11","17","1e-20","30","90.2") - self._path.setFromTuple(tuple) - tuple = ("2", "chr1","2", "9","TE2","1","10","1e-20","30","90.2") - o = Path() - o.setFromTuple(tuple) - self.assertFalse(self._path.canMerge(o)) - - def test_getSubjectAsSetOfQuery( self ): - tuple = ("1","chr1","1","10","TE2","11","17","1e-20","30","90.2") - self._path.setFromTuple(tuple) - exp = Set(1,"TE2","chr1",1,10) - obs = self._path.getSubjectAsSetOfQuery() - self.assertEqual( exp, obs ) - - def test_getSubjectAsSetOfQuery_on_neg_strand( self ): - tuple = ("1","chr1","10","1","TE2","11","17","1e-20","30","90.2") - self._path.setFromTuple(tuple) - exp = Set(1,"TE2","chr1",10,1) - obs = self._path.getSubjectAsSetOfQuery() - self.assertEqual( exp, obs ) - - def test_toString( self ): - self._path.setFromString( "1\tchr1\t1\t10\tTE3\t11\t17\t1e-20\t30\t85.2\n" ) - exp = "1\tchr1\t1\t10\tTE3\t11\t17\t%g\t30\t%f" % ( 1e-20, 85.2 ) - obs = self._path.toString() - self.assertEqual( obs, exp ) - - def test_getAlignInstance( self ): - self._path.setFromTuple( ( "2", "chr3", "250", "151", "seq5", "1", "100", "1e-32", "147", "87.9" ) ) - expAlign = Align() - expAlign.setFromTuple( ( "chr3", "151", "250", "seq5", "100", "1", "1e-32", "147", "87.9" ) ) - obsAlign = self._path.getAlignInstance() - self.assertEqual( expAlign, obsAlign ) - - -test_suite = unittest.TestSuite() -test_suite.addTest( unittest.makeSuite( Test_Path ) ) -if __name__ == "__main__": - unittest.TextTestRunner(verbosity=2).run( test_suite )
--- a/commons/core/coord/test/Test_PathUtils.py Mon Apr 29 03:26:07 2013 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1667 +0,0 @@ -# Copyright INRA (Institut National de la Recherche Agronomique) -# http://www.inra.fr -# http://urgi.versailles.inra.fr -# -# This software is governed by the CeCILL license under French law and -# abiding by the rules of distribution of free software. You can use, -# modify and/ or redistribute the software under the terms of the CeCILL -# license as circulated by CEA, CNRS and INRIA at the following URL -# "http://www.cecill.info". -# -# As a counterpart to the access to the source code and rights to copy, -# modify and redistribute granted by the license, users are provided only -# with a limited warranty and the software's author, the holder of the -# economic rights, and the successive licensors have only limited -# liability. -# -# In this respect, the user's attention is drawn to the risks associated -# with loading, using, modifying and/or developing or reproducing the -# software by the user in light of its specific status of free software, -# that may mean that it is complicated to manipulate, and that also -# therefore means that it is reserved for developers and experienced -# professionals having in-depth computer knowledge. Users are therefore -# encouraged to load and test the software's suitability as regards their -# requirements in conditions enabling the security of their systems and/or -# data to be ensured and, more generally, to use and operate it in the -# same conditions as regards security. -# -# The fact that you are presently reading this means that you have had -# knowledge of the CeCILL license and that you accept its terms. - - -import unittest -import os -import time -from commons.core.coord.PathUtils import PathUtils -from commons.core.coord.Path import Path -from commons.core.coord.Set import Set -from commons.core.utils.FileUtils import FileUtils -from commons.core.coord.Range import Range -from commons.core.coord.Align import Align - - -class Test_PathUtils ( unittest.TestCase ): - - def test_getSetListFromQueries( self ): - set1 = Set(1,"TE2","chr1",1,10) - set2 = Set(1,"TE2","chr1",10,1) - set3 = Set(1,"TE3","chr4",12,22) - - expList = [set1, set2, set3] - - tuple1 = ("1","chr1","1","10","TE2","11","17","1e-20","30","90.2") - tuple2 = ("1","chr1","10","1","TE2","11","17","1e-20","30","90.2") - tuple3 = ("1","chr4","12","22","TE3","11","17","1e-20","30","90.2") - - pathList = self._makePathListFromTupleList( [ tuple1, tuple2, tuple3 ] ) - - obsList = PathUtils.getSetListFromQueries( pathList ) - - self.assertEquals( expList, obsList ) - - - def test_getSetListFromQueries_on_empty_list( self ): - expList = [] - obsList = PathUtils.getSetListFromQueries( [] ) - - self.assertEquals( expList, obsList ) - - - def test_getSetListFromQueries_on_list_size1( self ): - set1 = Set(1,"TE2","chr1",1,10) - - expList = [set1] - - tuple1 = ("1","chr1","1","10","TE2","11","17","1e-20","30","90.2") - path1 = Path() - path1.setFromTuple(tuple1) - - pathList = [path1] - obsList = PathUtils.getSetListFromQueries( pathList ) - - self.assertEquals( expList, obsList ) - - - def test_getRangeListFromSubjects_initiallyOrdered_directStrand( self ): - tuple1 = ("1","chr1","1","10","TE2","1","10","1e-20","30","90.2") - tuple2 = ("1","chr1","21","30","TE2","11","20","1e-20","30","90.2") - tuple3 = ("1","chr1","41","50","TE2","21","30","1e-20","30","90.2") - lPaths = self._makePathListFromTupleList( [ tuple1, tuple2, tuple3 ] ) - - iSet1 = Range( "TE2", 1, 10 ) - iSet2 = Range( "TE2", 11, 20 ) - iSet3 = Range( "TE2", 21, 30 ) - lExp = [ iSet1, iSet2, iSet3 ] - - lObs = PathUtils.getRangeListFromSubjects( lPaths ) - - self.assertEquals( lExp, lObs ) - - - def test_getRangeListFromSubjects_initiallyUnordered_directStrand( self ): - tuple1 = ("1","chr1","1","10","TE2","1","10","1e-20","30","90.2") - tuple2 = ("1","chr1","41","50","TE2","21","30","1e-20","30","90.2") - tuple3 = ("1","chr1","21","30","TE2","11","20","1e-20","30","90.2") - lPaths = self._makePathListFromTupleList( [ tuple1, tuple2, tuple3 ] ) - - iSet1 = Range( "TE2", 1, 10 ) - iSet2 = Range( "TE2", 11, 20 ) - iSet3 = Range( "TE2", 21, 30 ) - lExp = [ iSet1, iSet2, iSet3 ] - - lObs = PathUtils.getRangeListFromSubjects( lPaths ) - - self.assertEquals( lExp, lObs ) - - - def test_getRangeListFromSubjects_initiallyUnordered_reverseStrand( self ): - tuple1 = ("1","chr1","1","10","TE2","10","1","1e-20","30","90.2") - tuple2 = ("1","chr1","41","50","TE2","30","21","1e-20","30","90.2") - tuple3 = ("1","chr1","21","30","TE2","20","11","1e-20","30","90.2") - lPaths = self._makePathListFromTupleList( [ tuple1, tuple2, tuple3 ] ) - - iSet3 = Range( "TE2", 30, 21 ) - iSet2 = Range( "TE2", 20, 11 ) - iSet1 = Range( "TE2", 10, 1 ) - lExp = [ iSet1, iSet2, iSet3 ] - - lObs = PathUtils.getRangeListFromSubjects( lPaths ) - - self.assertEquals( lExp, lObs ) - - - def test_getQueryMinMaxFromPathList( self ): - tuple1 = ("1","chr1","1","10","TE2","11","17","1e-20","30","90.2") - tuple2 = ("1","chr1","10","1","TE2","11","17","1e-20","30","90.2") - tuple3 = ("1","chr4","12","22","TE3","11","17","1e-20","30","90.2") - - pathList = self._makePathListFromTupleList([tuple1, tuple2, tuple3]) - - obsTuple = PathUtils.getQueryMinMaxFromPathList( pathList ) - expTuple = (1,22) - - self.assertEquals(expTuple, obsTuple) - - def test_getQueryMinMaxFromPathList_on_empty_list( self ): - obsTuple = PathUtils.getQueryMinMaxFromPathList( [] ) - expTuple = (-1,-1) - self.assertEquals( expTuple, obsTuple ) - - def test_getQueryMinMaxFromPathList_on_list_size1( self ): - tuple1 = ("1","chr1","1","10","TE2","11","17","1e-20","30","90.2") - path1 = Path() - path1.setFromTuple(tuple1) - - pathList = [path1] - obsTuple = PathUtils.getQueryMinMaxFromPathList( pathList ) - - expTuple = (1,10) - - self.assertEquals(expTuple, obsTuple) - - def test_getSubjectMinMaxFromPathList( self ): - tuple1 = ("1","chr1","1","10","TE2","11","17","1e-20","30","90.2") - tuple2 = ("1","chr1","10","1","TE2","17","11","1e-20","30","90.2") - tuple3 = ("1","chr4","12","22","TE3","22","34","1e-20","30","90.2") - - pathList = self._makePathListFromTupleList([tuple1, tuple2, tuple3]) - obsTuple = PathUtils.getSubjectMinMaxFromPathList(pathList) - - expTuple = (11,34) - - self.assertEquals(expTuple, obsTuple) - - def test_getSubjectMinMaxFromPathList_on_empty_list( self ): - obsTuple = PathUtils.getSubjectMinMaxFromPathList([]) - expTuple = (-1,-1) - self.assertEquals(expTuple, obsTuple) - - def test_getSubjectMinMaxFromPathList_on_list_size1( self ): - tuple1 = ("1","chr1","1","10","TE2","11","17","1e-20","30","90.2") - path1 = Path() - path1.setFromTuple(tuple1) - - pathList = [path1] - obsTuple = PathUtils.getSubjectMinMaxFromPathList(pathList) - - expTuple = (11,17) - - self.assertEquals(expTuple, obsTuple) - - def test_areQueriesOverlappingBetweenPathLists_list2_empty( self ): - tuple1 = ("1","chr1","100","110","TE2","15","10","1e-20","30","90.2") - tuple2 = ("1","chr1","200","220","TE2","15","10","1e-20","30","90.2") - tuple3 = ("1","chr1","300","330","TE2","15","10","1e-20","30","90.2") - pathList1 = self._makePathListFromTupleList([tuple1, tuple2, tuple3]) - - pathList2 = [] - - expRes = False - obsRes = PathUtils.areQueriesOverlappingBetweenPathLists( pathList1, pathList2 ) - - self.assertEquals( expRes, obsRes ) - - def test_areQueriesOverlappingBetweenPathLists_list2_size1( self ): - tuple1 = ("1","chr1","9","11","TE2","150","200","1e-20","30","90.2") - tuple2 = ("1","chr1","20","22","TE2","150","200","1e-20","30","90.2") - tuple3 = ("1","chr1","30","33","TE2","150","200","1e-20","30","90.2") - pathList1 = self._makePathListFromTupleList( [ tuple1, tuple2, tuple3 ] ) - - tuple11 = ("1","chr1","8","11","TE2","150","200","1e-20","30","90.2") - pathList2 = self._makePathListFromTupleList( [ tuple11 ] ) - - expRes = True - obsRes = PathUtils.areQueriesOverlappingBetweenPathLists( pathList1, pathList2 ) - - self.assertEquals( expRes, obsRes ) - - def test_areQueriesOverlappingBetweenPathLists_list1_greater_list2( self ): - tuple1 = ("1","chr1","100","110","TE2","15","10","1e-20","30","90.2") - tuple2 = ("1","chr1","200","220","TE2","15","10","1e-20","30","90.2") - tuple3 = ("1","chr1","300","330","TE2","15","10","1e-20","30","90.2") - pathList1 = self._makePathListFromTupleList( [ tuple1, tuple2, tuple3 ] ) - - tuple11 = ("1","chr1","10","11","TE2","150","200","1e-20","30","90.2") - tuple22 = ("1","chr1","20","22","TE2","150","200","1e-20","30","90.2") - tuple33 = ("1","chr1","30","33","TE2","150","200","1e-20","30","90.2") - pathList2 = self._makePathListFromTupleList( [ tuple11, tuple22, tuple33 ] ) - - expRes = False - obsRes = PathUtils.areQueriesOverlappingBetweenPathLists( pathList1, pathList2 ) - - self.assertEquals( expRes, obsRes ) - - def test_areQueriesOverlappingBetweenPathLists_unordered_first_item_of_list1_greater_second_item_smaller( self ): - tuple1 = ("1","chr1","400","440","TE2","15","10","1e-20","30","90.2") - tuple2 = ("1","chr1","1","11","TE2","15","10","1e-20","30","90.2") - pathList1 = self._makePathListFromTupleList( [ tuple1, tuple2 ] ) - - tuple11 = ("1","chr1","15","17","TE2","150","200","1e-20","30","90.2") - tuple22 = ("1","chr1","20","22","TE2","150","200","1e-20","30","90.2") - tuple33 = ("1","chr1","30","33","TE2","150","200","1e-20","30","90.2") - pathList2 = self._makePathListFromTupleList( [ tuple11, tuple22, tuple33 ] ) - - expRes = False - obsRes = PathUtils.areQueriesOverlappingBetweenPathLists( pathList1, pathList2 ) - - self.assertEquals( expRes, obsRes ) - - def test_areQueriesOverlappingBetweenPathLists_unorderd_second_item_of_list1_overlap_first_item( self ): - tuple1 = ("1","chr1","400","440","TE2","15","10","1e-20","30","90.2") - tuple2 = ("1","chr1","1","18","TE2","15","10","1e-20","30","90.2") - pathList1 = self._makePathListFromTupleList( [ tuple1, tuple2 ] ) - - tuple11 = ("1","chr1","15","17","TE2","150","200","1e-20","30","90.2") - tuple22 = ("1","chr1","20","22","TE2","150","200","1e-20","30","90.2") - tuple33 = ("1","chr1","30","33","TE2","150","200","1e-20","30","90.2") - pathList2 = self._makePathListFromTupleList( [ tuple11, tuple22, tuple33 ] ) - - expRes = True - obsRes = PathUtils.areQueriesOverlappingBetweenPathLists( pathList1, pathList2 ) - - self.assertEquals( expRes, obsRes ) - - def test_areQueriesOverlappingBetweenPathLists_last_item_list1_overlap_last_item_list2( self ): - tuple1 = ("1","chr1","400","440","TE2","15","10","1e-20","30","90.2") - tuple2 = ("1","chr1","320","340","TE2","15","10","1e-20","30","90.2") - pathList1 = self._makePathListFromTupleList( [ tuple1, tuple2 ] ) - - tuple11 = ("1","chr1","100","110","TE2","150","200","1e-20","30","90.2") - tuple22 = ("1","chr1","200","220","TE2","150","200","1e-20","30","90.2") - tuple33 = ("1","chr1","300","330","TE2","150","200","1e-20","30","90.2") - pathList2 = self._makePathListFromTupleList( [ tuple11, tuple22, tuple33 ] ) - - expRes = True - obsRes = PathUtils.areQueriesOverlappingBetweenPathLists( pathList1, pathList2 ) - - self.assertEquals( expRes, obsRes ) - - def test_writeListInFile( self ): - line1 = ("1\tchr1\t100\t110\tTE2\t150\t200\t1e-20\t30\t90.200000\n") - line2 = ("1\tchr1\t200\t220\tTE2\t150\t200\t1e-20\t30\t90.200000\n") - line3 = ("1\tchr1\t300\t330\tTE2\t150\t200\t1e-20\t30\t90.200000\n") - - expFileName = "expFileName.path" - expFileHandle = open ( expFileName, 'w' ) - expFileHandle.write(line1) - expFileHandle.write(line2) - expFileHandle.write(line3) - expFileHandle.close() - - line1 = ("1\tchr1\t100\t110\tTE2\t150\t200\t1e-20\t30\t90.2\n") - line2 = ("1\tchr1\t200\t220\tTE2\t150\t200\t1e-20\t30\t90.2\n") - line3 = ("1\tchr1\t300\t330\tTE2\t150\t200\t1e-20\t30\t90.2\n") - - obsFileName = "obsFileName.path" - obsPathList = self._makePathListFromStringList( [ line1, line2, line3 ] ) - - PathUtils.writeListInFile( obsPathList, obsFileName ) - - self.assertTrue( FileUtils.are2FilesIdentical( expFileName, obsFileName ) ) - - os.remove( obsFileName ) - os.remove( expFileName ) - - def test_writeListInFile_in_append_mode( self ): - line1 = ("1\tchr1\t100\t110\tTE2\t150\t200\t1e-20\t30\t90.200000\n") - line2 = ("1\tchr1\t200\t220\tTE2\t150\t200\t1e-20\t30\t90.200000\n") - line3 = ("1\tchr1\t300\t330\tTE2\t150\t200\t1e-20\t30\t90.200000\n") - line4 = ("1\tchr1\t400\t410\tTE2\t150\t200\t1e-20\t30\t90.200000\n") - line5 = ("1\tchr1\t500\t520\tTE2\t150\t200\t1e-20\t30\t90.200000\n") - line6 = ("1\tchr1\t600\t630\tTE2\t150\t200\t1e-20\t30\t90.200000\n") - - expFileName = "expFileName.path" - expFileHandle = open ( expFileName, 'w' ) - expFileHandle.write(line1) - expFileHandle.write(line2) - expFileHandle.write(line3) - expFileHandle.write(line4) - expFileHandle.write(line5) - expFileHandle.write(line6) - expFileHandle.close() - - line1 = ("1\tchr1\t100\t110\tTE2\t150\t200\t1e-20\t30\t90.200000\n") - line2 = ("1\tchr1\t200\t220\tTE2\t150\t200\t1e-20\t30\t90.200000\n") - line3 = ("1\tchr1\t300\t330\tTE2\t150\t200\t1e-20\t30\t90.200000\n") - line4 = ("1\tchr1\t400\t410\tTE2\t150\t200\t1e-20\t30\t90.2\n") - line5 = ("1\tchr1\t500\t520\tTE2\t150\t200\t1e-20\t30\t90.2\n") - line6 = ("1\tchr1\t600\t630\tTE2\t150\t200\t1e-20\t30\t90.2\n") - - obsFileName = "obsFileName.path" - obsFileHandle = open( obsFileName, 'w' ) - obsFileHandle.write(line1) - obsFileHandle.write(line2) - obsFileHandle.write(line3) - obsFileHandle.close() - - obsPathList = self._makePathListFromStringList( [ line4, line5, line6 ] ) - - PathUtils.writeListInFile( obsPathList, obsFileName, "a" ) - - self.assertTrue( FileUtils.are2FilesIdentical( expFileName, obsFileName ) ) - - os.remove(obsFileName) - os.remove(expFileName) - - def test_getPathListWithoutDuplicates_empty_list( self ): - pathList = [] - obsPathList = PathUtils.getPathListWithoutDuplicates( pathList ) - - expPathList = [] - - self.assertEquals( expPathList, obsPathList ) - - def test_getPathListWithoutDuplicates_list_size1( self ): - line1 = ("1\tchr1\t100\t110\tTE2\t150\t200\t0.000000\t30\t90.200000\n") - pathList = self._makePathListFromStringList([line1]) - - obsPathList = PathUtils.getPathListWithoutDuplicates( pathList ) - - expPathList = pathList - - self.assertEquals( expPathList, obsPathList ) - - def test_getPathListWithoutDuplicates_list_with_only_doublons( self ): - line1 = ("1\tchr1\t100\t110\tTE2\t150\t200\t0.000000\t30\t90.200000\n") - line2 = ("1\tchr1\t100\t110\tTE2\t150\t200\t0.000000\t30\t90.200000\n") - line3 = ("1\tchr1\t100\t110\tTE2\t150\t200\t0.000000\t30\t90.200000\n") - line4 = ("1\tchr1\t100\t110\tTE2\t150\t200\t0.000000\t30\t90.200000\n") - pathList = self._makePathListFromStringList( [ line1, line2, line3, line4 ] ) - - obsPathList = PathUtils.getPathListWithoutDuplicates( pathList ) - - expPathList = self._makePathListFromStringList( [ line1 ] ) - - self.assertEquals( expPathList, obsPathList ) - - def test_getPathListWithoutDuplicates_list_with_doublons_at_start_and_at_end( self ): - line1 = ("1\tchr1\t100\t110\tTE2\t150\t200\t0.000000\t30\t90.200000\n") - line2 = ("1\tchr1\t200\t210\tTE2\t150\t200\t0.000000\t30\t90.200000\n") - line3 = ("1\tchr1\t300\t310\tTE2\t150\t200\t0.000000\t30\t90.200000\n") - line4 = ("1\tchr1\t100\t110\tTE2\t150\t200\t0.000000\t30\t90.200000\n") - pathList = self._makePathListFromStringList( [ line1, line2, line3, line4 ] ) - - obsPathList = PathUtils.getPathListWithoutDuplicates( pathList ) - - expPathList = self._makePathListFromStringList( [ line1, line2, line3 ] ) - expPathList = PathUtils.getPathListSortedByIncreasingMinQueryThenMaxQuery( expPathList ) - - self.assertEquals( expPathList, obsPathList ) - - def test_getPathListWithoutDuplicates_list_with_contiguus_doublons( self ): - line1 = ("1\tchr1\t200\t210\tTE2\t150\t200\t0.000000\t30\t90.200000\n") - line2 = ("1\tchr1\t100\t110\tTE2\t150\t200\t0.000000\t30\t90.200000\n") - line3 = ("1\tchr1\t100\t110\tTE2\t150\t200\t0.000000\t30\t90.200000\n") - line4 = ("1\tchr1\t300\t310\tTE2\t150\t200\t0.000000\t30\t90.200000\n") - pathList = self._makePathListFromStringList( [ line1, line2, line3, line4 ] ) - - obsPathList = PathUtils.getPathListWithoutDuplicates( pathList ) - - expPathList = self._makePathListFromStringList( [ line1, line2, line4 ] ) - expPathList = PathUtils.getPathListSortedByIncreasingMinQueryThenMaxQuery( expPathList ) - - self.assertEquals( expPathList, obsPathList ) - - def test_getPathListWithoutDuplicates_list_with_one_doublon( self ): - line1 = ("1\tchr1\t200\t210\tTE2\t150\t200\t0.000000\t30\t90.200000\n") - line2 = ("1\tchr1\t100\t110\tTE2\t150\t200\t0.000000\t30\t90.200000\n") - line3 = ("1\tchr1\t210\t250\tTE2\t150\t200\t0.000000\t30\t90.200000\n") - line4 = ("1\tchr1\t100\t110\tTE2\t150\t200\t0.000000\t30\t90.200000\n") - line5 = ("1\tchr1\t300\t310\tTE2\t150\t200\t0.000000\t30\t90.200000\n") - pathList = self._makePathListFromStringList( [ line1, line2, line3, line4, line5 ] ) - - obsPathList = PathUtils.getPathListWithoutDuplicates( pathList ) - - expPathList = self._makePathListFromStringList( [ line1, line2, line3, line5 ] ) - expPathList = PathUtils.getPathListSortedByIncreasingMinQueryThenMaxQuery( expPathList ) - - self.assertEquals( expPathList, obsPathList ) - - def test_getPathListWithoutDuplicates_list_with_two_doublons( self ): - line1 = ("1\tchr1\t200\t210\tTE2\t150\t200\t0.000000\t30\t90.200000\n") - line2 = ("1\tchr1\t100\t110\tTE2\t150\t200\t0.000000\t30\t90.200000\n") - line3 = ("1\tchr1\t210\t250\tTE2\t150\t200\t0.000000\t30\t90.200000\n") - line4 = ("1\tchr1\t230\t250\tTE2\t150\t200\t0.000000\t30\t90.200000\n") - line5 = ("1\tchr1\t210\t250\tTE2\t150\t200\t0.000000\t30\t90.200000\n") - line6 = ("1\tchr1\t100\t110\tTE2\t150\t200\t0.000000\t30\t90.200000\n") - line7 = ("1\tchr1\t300\t310\tTE2\t150\t200\t0.000000\t30\t90.200000\n") - pathList = self._makePathListFromStringList( [ line1, line2, line3, line4, line5, line6, line7 ] ) - - obsPathList = PathUtils.getPathListWithoutDuplicates( pathList ) - - expPathList = self._makePathListFromStringList( [ line1, line2, line3, line4, line7 ] ) - expPathList = PathUtils.getPathListSortedByIncreasingMinQueryThenMaxQuery( expPathList ) - - self.assertEquals( expPathList, obsPathList ) - - def test_getPathListWithoutDuplicates_list_with_two_doublons_useOnlyCoord_is_False_different_id( self ): - line1 = ("1\tchr1\t200\t210\tTE2\t150\t200\t0.000000\t30\t90.200000\n") - line2 = ("2\tchr1\t200\t210\tTE2\t150\t200\t0.000000\t30\t90.200000\n") - line3 = ("3\tchr1\t200\t210\tTE2\t150\t200\t0.000000\t30\t90.200000\n") - line4 = ("4\tchr1\t200\t210\tTE2\t150\t200\t0.000000\t30\t90.200000\n") - line5 = ("1\tchr1\t200\t210\tTE2\t150\t200\t0.000000\t30\t90.200000\n") - line6 = ("1\tchr1\t200\t210\tTE2\t150\t200\t0.000000\t30\t90.200000\n") - line7 = ("5\tchr1\t200\t210\tTE2\t150\t200\t0.000000\t30\t90.200000\n") - pathList = self._makePathListFromStringList( [ line1, line2, line3, line4, line5, line6, line7 ] ) - - obsPathList = PathUtils.getPathListWithoutDuplicates( pathList ) - - expPathList = self._makePathListFromStringList( [ line1, line2, line3, line4, line7 ] ) - expPathList = PathUtils.getPathListSortedByIncreasingMinQueryThenMaxQuery( expPathList ) - - self.assertEquals( expPathList, obsPathList ) - - def test_getPathListWithoutDuplicates_list_with_two_doublons_useOnlyCoord_is_True_different_id( self ): - line1 = ("1\tchr1\t200\t210\tTE2\t150\t200\t0.000000\t30\t90.200000\n") - line2 = ("2\tchr1\t200\t210\tTE2\t150\t200\t0.000000\t30\t90.200000\n") - line3 = ("3\tchr1\t200\t210\tTE2\t150\t200\t0.000000\t30\t90.200000\n") - line4 = ("4\tchr1\t200\t210\tTE2\t150\t200\t0.000000\t30\t90.200000\n") - line5 = ("1\tchr1\t200\t210\tTE2\t150\t200\t0.000000\t30\t90.200000\n") - line6 = ("1\tchr1\t200\t210\tTE2\t150\t200\t0.000000\t30\t90.200000\n") - line7 = ("5\tchr1\t200\t210\tTE2\t150\t200\t0.000000\t30\t90.200000\n") - pathList = self._makePathListFromStringList( [ line1, line2, line3, line4, line5, line6, line7 ] ) - - obsPathList = PathUtils.getPathListWithoutDuplicates( pathList, True ) - - expPathList = self._makePathListFromStringList( [ line1 ] ) - expPathList = PathUtils.getPathListSortedByIncreasingMinQueryThenMaxQuery( expPathList ) - - self.assertEquals( expPathList, obsPathList ) - - def test_path_getDictOfListsWithIdAsKey_empty_list( self ): - pathList = [] - - obsDict = PathUtils.getDictOfListsWithIdAsKey( pathList ) - expDict = {} - - self.assertEquals( expDict, obsDict ) - - def test_path_getDictOfListsWithIdAsKey_list_size1( self ): - line1 = ( "1\tchr1\t100\t110\tTE2\t150\t200\t0.000000\t30\t90.200000\n" ) - pathList = self._makePathListFromStringList( [ line1 ] ) - - obsDict = PathUtils.getDictOfListsWithIdAsKey( pathList ) - - expPathInstance = Path() - expPathInstance.setFromString( line1 ) - expDict = { 1: [ expPathInstance ] } - - self.assertEquals( expDict, obsDict ) - - def test_getDictOfListsWithIdAsKey_ids_only_once( self ): - line1 = ( "1\tchr1\t100\t110\tTE2\t150\t200\t0.000000\t30\t90.200000\n" ) - line2 = ( "2\tchr1\t200\t210\tTE2\t150\t200\t0.000000\t30\t90.200000\n" ) - line3 = ( "3\tchr1\t210\t250\tTE2\t150\t200\t0.000000\t30\t90.200000\n" ) - - pathList = self._makePathListFromStringList( [ line1, line2, line3 ] ) - - obsDict = PathUtils.getDictOfListsWithIdAsKey( pathList ) - - expPathInstance1 = Path() - expPathInstance1.setFromString( line1 ) - - expPathInstance2 = Path() - expPathInstance2.setFromString( line2 ) - - expPathInstance3 = Path() - expPathInstance3.setFromString( line3 ) - - expDict = { 1: [ expPathInstance1 ], 2: [ expPathInstance2 ], 3: [ expPathInstance3 ] } - - self.assertEquals( expDict, obsDict ) - - def test_getDictOfListsWithIdAsKey_ids_more_than_only_once( self ): - line1 = ( "1\tchr1\t100\t110\tTE2\t150\t200\t0.000000\t30\t90.200000\n" ) - line2 = ( "2\tchr1\t200\t210\tTE2\t150\t200\t0.000000\t30\t90.200000\n" ) - line3 = ( "3\tchr1\t210\t250\tTE2\t150\t200\t0.000000\t30\t90.200000\n" ) - - line4 = ( "1\tchr1\t100\t120\tTE2\t150\t200\t0.000000\t30\t90.200000\n" ) - line5 = ( "2\tchr1\t200\t220\tTE2\t150\t200\t0.000000\t30\t90.200000\n" ) - line6 = ( "3\tchr1\t210\t260\tTE2\t150\t200\t0.000000\t30\t90.200000\n" ) - - line7 = ( "1\tchr1\t110\t120\tTE2\t150\t200\t0.000000\t30\t90.200000\n" ) - line8 = ( "2\tchr1\t210\t220\tTE2\t150\t200\t0.000000\t30\t90.200000\n" ) - line9 = ( "3\tchr1\t220\t260\tTE2\t150\t200\t0.000000\t30\t90.200000\n" ) - - pathList = self._makePathListFromStringList( [ line1, line2, line3, line4, line5, line6, line7, line8, line9 ] ) - - obsDict = PathUtils.getDictOfListsWithIdAsKey( pathList ) - - expPathInstance1 = Path() - expPathInstance1.setFromString( line1 ) - - expPathInstance2 = Path() - expPathInstance2.setFromString( line2 ) - - expPathInstance3 = Path() - expPathInstance3.setFromString( line3 ) - - expPathInstance4 = Path() - expPathInstance4.setFromString( line4 ) - - expPathInstance5 = Path() - expPathInstance5.setFromString( line5 ) - - expPathInstance6 = Path() - expPathInstance6.setFromString( line6 ) - - expPathInstance7 = Path() - expPathInstance7.setFromString( line7 ) - - expPathInstance8 = Path() - expPathInstance8.setFromString( line8 ) - - expPathInstance9 = Path() - expPathInstance9.setFromString( line9 ) - - expDict = { 1: [ expPathInstance1, expPathInstance4, expPathInstance7 ], 2 :[ expPathInstance2, expPathInstance5, expPathInstance8 ], 3: [ expPathInstance3, expPathInstance6, expPathInstance9 ] } - - self.assertEquals( expDict, obsDict ) - - def test_getPathListUnjoinedBasedOnQuery_listToKeep_empty_listToUnjoin_empty( self ): - pathListToKeep = [] - pathListToUnjoin = [] - - expList = [] - - obsList = PathUtils.getPathListUnjoinedBasedOnQuery( pathListToKeep, pathListToUnjoin ) - - self.assertEquals( expList, obsList ) - - def test_getPathListUnjoinedBasedOnQuery_listToKeep_empty_listToUnjoin_size1( self ): - pathListToKeep = [] - - line1 = ("1\tchr1\t100\t110\tTE2\t150\t200\t0.000000\t30\t90.200000\n") - pathListToUnjoin = self._makePathListFromStringList( [ line1 ] ) - - expList = [ pathListToUnjoin ] - - obsList = PathUtils.getPathListUnjoinedBasedOnQuery( pathListToKeep, pathListToUnjoin ) - - self.assertEquals( expList, obsList ) - - def test_getPathListUnjoinedBasedOnQuery_listToKeep_size1_listToUnjoin_empty( self ): - lineKeep1 = ("1\tchr1\t1\t11\tTE2\t150\t200\t0.000000\t30\t90.200000\n") - pathListToKeep = self._makePathListFromStringList( [ lineKeep1 ] ) - - pathListToUnjoin = [] - - expList = [] - - obsList = PathUtils.getPathListUnjoinedBasedOnQuery( pathListToKeep, pathListToUnjoin ) - - self.assertEquals( expList, obsList ) - - def test_getPathListUnjoinedBasedOnQuery_listToKeep_empty( self ): - pathListToKeep = [] - - line1 = ("1\tchr1\t100\t110\tTE2\t150\t200\t0.000000\t30\t90.200000\n") - line2 = ("1\tchr1\t200\t210\tTE2\t150\t200\t0.000000\t30\t90.200000\n") - line3 = ("1\tchr1\t250\t280\tTE2\t150\t200\t0.000000\t30\t90.200000\n") - pathListToUnjoin = self._makePathListFromStringList( [ line1, line2, line3 ] ) - - expList = [ pathListToUnjoin ] - - obsList = PathUtils.getPathListUnjoinedBasedOnQuery( pathListToKeep, pathListToUnjoin ) - - self.assertEquals( expList, obsList ) - - def test_getPathListUnjoinedBasedOnQuery_listToKeep_size1_listToUnjoin_size1( self ): - lineKeep1 = ("1\tchr1\t1\t11\tTE2\t150\t200\t0.000000\t30\t90.200000\n") - pathListToKeep = self._makePathListFromStringList( [ lineKeep1 ] ) - - lineUnjoin1 = ("1\tchr1\t100\t110\tTE2\t150\t200\t0.000000\t30\t90.200000\n") - pathListToUnjoin = self._makePathListFromStringList( [ lineUnjoin1 ] ) - - expList = [ pathListToUnjoin ] - - obsList = PathUtils.getPathListUnjoinedBasedOnQuery( pathListToKeep, pathListToUnjoin ) - - self.assertEquals( expList, obsList ) - - def test_getPathListUnjoinedBasedOnQuery_listToKeep_size1_listToUnjoin_size2_noSplit_minKeep( self ): - lineKeep1 = ("1\tchr1\t1\t10\tTE2\t150\t90\t0.000000\t30\t90.200000\n") - pathListToKeep = self._makePathListFromStringList( [ lineKeep1 ] ) - - lineUnjoin1 = ("1\tchr1\t100\t110\tTE2\t150\t200\t0.000000\t30\t90.200000\n") - lineUnjoin2 = ("1\tchr1\t200\t210\tTE2\t150\t200\t0.000000\t30\t90.200000\n") - pathListToUnjoin = self._makePathListFromStringList( [ lineUnjoin1, lineUnjoin2 ] ) - - expList = [ pathListToUnjoin ] - - obsList = PathUtils.getPathListUnjoinedBasedOnQuery( pathListToKeep, pathListToUnjoin ) - - self.assertEquals( expList, obsList ) - - def test_getPathListUnjoinedBasedOnQuery_listToKeep_size1_listToUnjoin_size3_noSplit_minKeep( self ): - lineKeep1 = ("1\tchr1\t1\t10\tTE2\t150\t200\t0.000000\t30\t90.200000\n") - pathListToKeep = self._makePathListFromStringList( [ lineKeep1 ] ) - - lineUnjoin1 = ("1\tchr1\t100\t110\tTE2\t150\t200\t0.000000\t30\t90.200000\n") - lineUnjoin2 = ("1\tchr1\t200\t210\tTE2\t150\t200\t0.000000\t30\t90.200000\n") - lineUnjoin3 = ("1\tchr1\t250\t280\tTE2\t150\t200\t0.000000\t30\t90.200000\n") - pathListToUnjoin = self._makePathListFromStringList( [ lineUnjoin1, lineUnjoin2, lineUnjoin3 ] ) - - obsList = PathUtils.getPathListUnjoinedBasedOnQuery( pathListToKeep, pathListToUnjoin ) - - expList = [ pathListToUnjoin ] - - self.assertEquals( expList, obsList ) - - def test_getPathListUnjoinedBasedOnQuery_listToKeep_size1_listToUnjoin_size2_noSplit_minUnjoin( self ): - lineKeep1 = ("1\tchr1\t101\t150\tTE2\t150\t90\t0.000000\t30\t90.200000\n") - pathListToKeep = self._makePathListFromStringList( [ lineKeep1 ] ) - - lineUnjoin1 = ("1\tchr1\t1\t10\tTE2\t150\t200\t0.000000\t30\t90.200000\n") - lineUnjoin2 = ("1\tchr1\t21\t40\tTE2\t150\t200\t0.000000\t30\t90.200000\n") - pathListToUnjoin = self._makePathListFromStringList( [ lineUnjoin1, lineUnjoin2 ] ) - - expList = [ pathListToUnjoin ] - - obsList = PathUtils.getPathListUnjoinedBasedOnQuery( pathListToKeep, pathListToUnjoin ) - - self.assertEquals( expList, obsList ) - - def test_getPathListUnjoinedBasedOnQuery_listToKeep_size3_listToUnjoin_size2_oneSplit_minKeep( self ): - lineKeep1 = ("1\tchr1\t1\t10\tTE2\t150\t90\t0.000000\t30\t90.200000\n") - lineKeep2 = ("1\tchr1\t21\t30\tTE2\t150\t90\t0.000000\t30\t90.200000\n") - lineKeep3 = ("1\tchr1\t61\t70\tTE2\t150\t90\t0.000000\t30\t90.200000\n") - pathListToKeep = self._makePathListFromStringList( [ lineKeep1, lineKeep2, lineKeep3 ] ) - - lineUnjoin1 = ("1\tchr1\t41\t50\tTE2\t150\t200\t0.000000\t30\t90.200000\n") - lineUnjoin2 = ("1\tchr1\t81\t90\tTE2\t150\t200\t0.000000\t30\t90.200000\n") - pathListToUnjoin = self._makePathListFromStringList( [ lineUnjoin1, lineUnjoin2 ] ) - - expList = [] - expList.append( self._makePathListFromStringList( [ lineUnjoin1 ] ) ) - expList.append( self._makePathListFromStringList( [ lineUnjoin2 ] ) ) - - obsList = PathUtils.getPathListUnjoinedBasedOnQuery( pathListToKeep, pathListToUnjoin ) - - self.assertEquals( expList, obsList ) - - def test_getPathListUnjoinedBasedOnQuery_listToKeep_size3_listToUnjoin_size3_twoSplits_minUnjoin( self ): - lineKeep1 = ("1\tchr1\t21\t30\tTE2\t150\t90\t0.000000\t30\t90.200000\n") - lineKeep2 = ("1\tchr1\t41\t50\tTE2\t150\t200\t0.000000\t30\t90.200000\n") - lineKeep3 = ("1\tchr1\t81\t90\tTE2\t150\t200\t0.000000\t30\t90.200000\n") - pathListToKeep = self._makePathListFromStringList( [ lineKeep1, lineKeep2, lineKeep3 ] ) - - lineUnjoin1 = ("1\tchr1\t1\t10\tTE2\t150\t90\t0.000000\t30\t90.200000\n") - lineUnjoin2 = ("1\tchr1\t61\t70\tTE2\t150\t90\t0.000000\t30\t90.200000\n") - lineUnjoin3 = ("1\tchr1\t101\t110\tTE2\t150\t90\t0.000000\t30\t90.200000\n") - pathListToUnjoin = self._makePathListFromStringList( [ lineUnjoin1, lineUnjoin2, lineUnjoin3 ] ) - - expList = [] - expList.append( self._makePathListFromStringList( [ lineUnjoin1 ] ) ) - expList.append( self._makePathListFromStringList( [ lineUnjoin2 ] ) ) - expList.append( self._makePathListFromStringList( [ lineUnjoin3 ] ) ) - - obsList = PathUtils.getPathListUnjoinedBasedOnQuery( pathListToKeep, pathListToUnjoin ) - - self.assertEquals( expList, obsList ) - - def test_getPathListUnjoinedBasedOnQuery_listToKeep_size1_listToUnjoin_size2_split( self ): - lineKeep1 = ("1\tchr1\t51\t80\tTE2\t150\t200\t0.000000\t30\t90.200000\n") - pathListToKeep = self._makePathListFromStringList( [ lineKeep1 ] ) - - lineUnjoin1 = ("1\tchr1\t21\t40\tTE2\t150\t200\t0.000000\t30\t90.200000\n") - lineUnjoin2 = ("1\tchr1\t101\t150\tTE2\t150\t200\t0.000000\t30\t90.200000\n") - pathListToUnjoin = self._makePathListFromStringList( [ lineUnjoin1, lineUnjoin2 ] ) - - expList = [] - expList.append( self._makePathListFromStringList( [ lineUnjoin1 ] ) ) - expList.append( self._makePathListFromStringList( [ lineUnjoin2 ] ) ) - - obsList = PathUtils.getPathListUnjoinedBasedOnQuery( pathListToKeep, pathListToUnjoin ) - - self.assertEquals( expList, obsList ) - - def test_getPathListUnjoinedBasedOnQuery_listToKeep_size2_listToUnjoin_size2_split( self ): - lineKeep1 = ("1\tchr1\t1\t15\tTE2\t150\t200\t0.000000\t30\t90.200000\n") - lineKeep2 = ("1\tchr1\t81\t130\tTE2\t150\t200\t0.000000\t30\t90.200000\n") - pathListToKeep = self._makePathListFromStringList( [ lineKeep1, lineKeep2 ] ) - - lineUnjoin1 = ("1\tchr1\t21\t40\tTE2\t150\t200\t0.000000\t30\t90.200000\n") - lineUnjoin2 = ("1\tchr1\t201\t250\tTE2\t150\t200\t0.000000\t30\t90.200000\n") - pathListToUnjoin = self._makePathListFromStringList( [ lineUnjoin1, lineUnjoin2 ] ) - - expList = [] - expList.append( self._makePathListFromStringList( [ lineUnjoin1 ] ) ) - expList.append( self._makePathListFromStringList( [ lineUnjoin2 ] ) ) - - obsList = PathUtils.getPathListUnjoinedBasedOnQuery( pathListToKeep, pathListToUnjoin ) - - self.assertEquals( expList, obsList ) - - def test_getPathListUnjoinedBasedOnQuery_listToKeep_size1_listToUnjoin_ordered_OneSplit( self ): - lineKeep1 = ("1\tchr1\t120\t180\tTE2\t150\t200\t0.000000\t30\t90.200000\n") - pathListToKeep = self._makePathListFromStringList( [ lineKeep1 ] ) - - lineUnjoin1 = ("1\tchr1\t100\t110\tTE2\t150\t200\t0.000000\t30\t90.200000\n") - lineUnjoin2 = ("1\tchr1\t200\t210\tTE2\t150\t200\t0.000000\t30\t90.200000\n") - lineUnjoin3 = ("1\tchr1\t250\t280\tTE2\t150\t200\t0.000000\t30\t90.200000\n") - pathListToUnjoin = self._makePathListFromStringList( [ lineUnjoin1, lineUnjoin2, lineUnjoin3 ] ) - - expList = [] - expList.append( self._makePathListFromStringList( [ lineUnjoin1 ] ) ) - expList.append( self._makePathListFromStringList( [ lineUnjoin2, lineUnjoin3 ] ) ) - - obsList = PathUtils.getPathListUnjoinedBasedOnQuery( pathListToKeep, pathListToUnjoin ) - - self.assertEquals( expList, obsList ) - - def test_getPathListUnjoinedBasedOnQuery_listToKeep_size1_listToUnjoin_unordered_OneSplit( self ): - lineKeep1 = ("1\tchr1\t120\t180\tTE2\t150\t200\t0.000000\t30\t90.200000\n") - pathListToKeep = self._makePathListFromStringList( [ lineKeep1 ] ) - - lineUnjoin1 = ("1\tchr1\t200\t210\tTE2\t150\t200\t0.000000\t30\t90.200000\n") - lineUnjoin2 = ("1\tchr1\t250\t280\tTE2\t150\t200\t0.000000\t30\t90.200000\n") - lineUnjoin3 = ("1\tchr1\t100\t110\tTE2\t150\t200\t0.000000\t30\t90.200000\n") - pathListToUnjoin = self._makePathListFromStringList( [ lineUnjoin1, lineUnjoin2, lineUnjoin3 ] ) - - expList = [] - expList.append( self._makePathListFromStringList( [ lineUnjoin3 ] ) ) - expList.append( self._makePathListFromStringList( [ lineUnjoin1, lineUnjoin2 ] ) ) - - obsList = PathUtils.getPathListUnjoinedBasedOnQuery( pathListToKeep, pathListToUnjoin ) - - self.assertEquals( expList, obsList ) - - def test_getPathListUnjoinedBasedOnQuery_listToKeep_size2_listToUnjoin_size4_twoSplits( self ): - lineKeep1 = ("1\tchr1\t21\t30\tTE2\t150\t200\t0.000000\t30\t90.200000\n") - lineKeep2 = ("1\tchr1\t81\t90\tTE2\t150\t200\t0.000000\t30\t90.200000\n") - pathListToKeep = self._makePathListFromStringList( [ lineKeep1, lineKeep2 ] ) - - lineUnjoin1 = ("1\tchr1\t1\t10\tTE2\t150\t200\t0.000000\t30\t90.200000\n") - lineUnjoin2 = ("1\tchr1\t41\t50\tTE2\t150\t200\t0.000000\t30\t90.200000\n") - lineUnjoin3 = ("1\tchr1\t61\t70\tTE2\t150\t200\t0.000000\t30\t90.200000\n") - lineUnjoin4 = ("1\tchr1\t101\t110\tTE2\t150\t200\t0.000000\t30\t90.200000\n") - pathListToUnjoin = self._makePathListFromStringList( [ lineUnjoin1, lineUnjoin2, lineUnjoin3, lineUnjoin4 ] ) - - expList = [] - expList.append( self._makePathListFromStringList( [ lineUnjoin1 ] ) ) - expList.append( self._makePathListFromStringList( [ lineUnjoin2, lineUnjoin3 ] ) ) - expList.append( self._makePathListFromStringList( [ lineUnjoin4 ] ) ) - - obsList = PathUtils.getPathListUnjoinedBasedOnQuery( pathListToKeep, pathListToUnjoin ) - - self.assertEquals( expList, obsList ) - - def test_changeIdInList_empty_list ( self ): - pathList = [] - - PathUtils.changeIdInList(pathList,1) - - obsList = pathList - expList = [] - - self.assertEquals(expList, obsList) - - def test_changeIdInList_list_size1 ( self ): - line1 = ("1\tchr1\t100\t110\tTE2\t150\t200\t0.000000\t30\t90.200000\n") - line2 = ("2\tchr1\t100\t110\tTE2\t150\t200\t0.000000\t30\t90.200000\n") - - pathList = self._makePathListFromStringList([line1]) - PathUtils.changeIdInList(pathList,2) - - expPathList = pathList - - obsPathList = self._makePathListFromStringList([line2]) - - self.assertEquals(expPathList, obsPathList) - - def test_changeIdInList( self ): - line1 = ( "1\tchr1\t100\t110\tTE2\t150\t200\t0.000000\t30\t90.200000\n" ) - line2 = ( "2\tchr1\t200\t210\tTE2\t150\t200\t0.000000\t30\t90.200000\n" ) - line3 = ( "3\tchr1\t300\t310\tTE2\t150\t200\t0.000000\t30\t90.200000\n" ) - - pathList = self._makePathListFromStringList( [ line1, line2, line3 ] ) - PathUtils.changeIdInList( pathList, 2 ) - obsPathList = pathList - - line11 = ( "2\tchr1\t100\t110\tTE2\t150\t200\t0.000000\t30\t90.200000\n" ) - line22 = ( "2\tchr1\t200\t210\tTE2\t150\t200\t0.000000\t30\t90.200000\n" ) - line33 = ( "2\tchr1\t300\t310\tTE2\t150\t200\t0.000000\t30\t90.200000\n" ) - - expPathList = self._makePathListFromStringList( [ line11, line22, line33 ] ) - - self.assertEquals( expPathList, obsPathList ) - - - def test_getIdentityFromPathList( self ): - p1 = Path() - p1.setFromTuple( ( "1", "qry1", "1", "100", "sbj1", "1", "100", "0.0", "239", "90.0" ) ) - p2 = Path() - p2.setFromTuple( ( "2", "qry1", "121", "350", "sbj1", "101", "200", "0.0", "176", "91.2" ) ) - lPaths = [ p1, p2 ] - exp = ( 90.0 * ( 100-1+1) + 91.2 * (350-121+1) ) / ( (100-1+1) + (350-121+1) ) # 90.836363636363643 - obs = PathUtils.getIdentityFromPathList( lPaths ) - self.assertEqual( exp, obs ) - - - def test_getIdentityFromPathList_withOverlap( self ): - p1 = Path() - p1.setFromTuple( ( "1", "qry1", "1", "100", "sbj1", "1", "100", "0.0", "239", "90.0" ) ) - p2 = Path() - p2.setFromTuple( ( "2", "qry1", "21", "80", "sbj1", "21", "80", "0.0", "176", "91.2" ) ) - p3 = Path() - p3.setFromTuple( ( "2", "qry1", "121", "350", "sbj1", "101", "200", "0.0", "176", "91.2" ) ) - lPaths = [ p1, p2, p3 ] - exp = ( 91.2 * ( 100-1+1) + 91.2 * (350-121+1) ) / ( (100-1+1) + (350-121+1) ) - obs = PathUtils.getIdentityFromPathList( lPaths ) - self.assertEqual( exp, obs ) - - - def test_getIdentityFromPathList_diffQueries( self ): - p1 = Path() - p1.setFromTuple( ( "1", "qry1", "1", "100", "sbj1", "1", "100", "0.0", "239", "90.0" ) ) - p2 = Path() - p2.setFromTuple( ( "2", "qry2", "121", "350", "sbj1", "101", "200", "0.0", "176", "91.2" ) ) - lPaths = [ p1, p2 ] - try: - obs = PathUtils.getIdentityFromPathList( lPaths ) - except: - pass - - - def test_getIdentityFromPathList_diffSubjects_check( self ): - p1 = Path() - p1.setFromTuple( ( "1", "qry1", "1", "100", "sbj1", "1", "100", "0.0", "239", "90.0" ) ) - p2 = Path() - p2.setFromTuple( ( "1", "qry1", "121", "350", "sbj2", "101", "200", "0.0", "176", "91.2" ) ) - lPaths = [ p1, p2 ] - try: - obs = PathUtils.getIdentityFromPathList( lPaths, True ) - except: - pass - - - def test_getIdentityFromPathList_diffSubjects_noCheck( self ): - p1 = Path() - p1.setFromTuple( ( "1", "qry1", "1", "100", "sbj1", "1", "100", "0.0", "239", "90.0" ) ) - p2 = Path() - p2.setFromTuple( ( "1", "qry1", "121", "350", "sbj2", "101", "200", "0.0", "176", "91.2" ) ) - lPaths = [ p1, p2 ] - exp = ( 90.0 * ( 100-1+1) + 91.2 * (350-121+1) ) / ( (100-1+1) + (350-121+1) ) # 90.836363636363643 - obs = PathUtils.getIdentityFromPathList( lPaths, False ) - self.assertEqual( exp, obs ) - - - def test_getPathListSortedByIncreasingMinQueryThenMaxQuery_alreadyOrdered_diffIdentifier( self ): - p1 = Path() - p1.setFromTuple( ( "1", "qry1", "1", "10", "sbj1", "1", "100", "0.0", "239", "90.0" ) ) - p2 = Path() - p2.setFromTuple( ( "2", "qry1", "21", "30", "sbj1", "101", "200", "0.0", "176", "91.2" ) ) - lPaths = [ p1, p2 ] - - expList = [ p1, p2 ] - - obsList = PathUtils.getPathListSortedByIncreasingMinQueryThenMaxQuery( lPaths ) - - self.assertEqual( expList, obsList ) - - def test_getPathListSortedByIncreasingMinQueryThenMaxQuery_unordered_diffIdentifier( self ): - p1 = Path() - p1.setFromTuple( ( "2", "qry1", "21", "30", "sbj1", "101", "200", "0.0", "176", "91.2" ) ) - p2 = Path() - p2.setFromTuple( ( "1", "qry1", "1", "10", "sbj1", "1", "100", "0.0", "239", "90.0" ) ) - lPaths = [ p1, p2 ] - - expList = [ p2, p1 ] - - obsList = PathUtils.getPathListSortedByIncreasingMinQueryThenMaxQuery( lPaths ) - - self.assertEqual( expList, obsList ) - - def test_getPathListSortedByIncreasingMinQueryThenMaxQuery_unordered_sameIdentifier( self ): - p1 = Path() - p1.setFromTuple( ( "1", "qry1", "21", "30", "sbj1", "101", "200", "0.0", "176", "91.2" ) ) - p2 = Path() - p2.setFromTuple( ( "1", "qry1", "1", "10", "sbj1", "1", "100", "0.0", "239", "90.0" ) ) - lPaths = [ p1, p2 ] - - expList = [ p2, p1 ] - - obsList = PathUtils.getPathListSortedByIncreasingMinQueryThenMaxQuery( lPaths ) - - self.assertEqual( expList, obsList ) - - def test_getPathListSortedByIncreasingMinQueryThenMaxQuery_unordered_overlapping( self ): - p1 = Path() - p1.setFromTuple( ( "1", "qry1", "6", "15", "sbj1", "101", "200", "0.0", "176", "91.2" ) ) - p2 = Path() - p2.setFromTuple( ( "2", "qry1", "1", "10", "sbj1", "1", "100", "0.0", "239", "90.0" ) ) - lPaths = [ p1, p2 ] - - expList = [ p2, p1 ] - - obsList = PathUtils.getPathListSortedByIncreasingMinQueryThenMaxQuery( lPaths ) - - self.assertEqual( expList, obsList ) - - def test_getPathListSortedByIncreasingMinQueryThenMaxQuery_unordered_sameMin_threeSets( self ): - p1 = Path() - p1.setFromTuple( ( "1", "qry1", "1", "15", "sbj1", "1", "100", "0.0", "239", "90.0" ) ) - p2 = Path() - p2.setFromTuple( ( "2", "qry1", "1", "10", "sbj1", "101", "200", "0.0", "176", "91.2" ) ) - p3 = Path() - p3.setFromTuple( ( "2", "qry1", "1", "12", "sbj1", "101", "200", "0.0", "176", "91.2" ) ) - lPaths = [ p1, p2, p3 ] - - expList = [ p2, p3, p1 ] - - obsList = PathUtils.getPathListSortedByIncreasingMinQueryThenMaxQuery( lPaths ) - - self.assertEqual( expList, obsList ) - - def test_getPathListSortedByIncreasingMinQueryThenMaxQuery_unordered_included( self ): - p1 = Path() - p1.setFromTuple( ( "1", "qry1", "2", "4", "sbj1", "101", "200", "0.0", "176", "91.2" ) ) - p2 = Path() - p2.setFromTuple( ( "2", "qry1", "1", "5", "sbj1", "1", "100", "0.0", "239", "90.0" ) ) - lPaths = [ p1, p2 ] - - expList = [ p2, p1 ] - - obsList = PathUtils.getPathListSortedByIncreasingMinQueryThenMaxQuery( lPaths ) - - self.assertEqual( expList, obsList ) - - def test_getPathListSortedByIncreasingMinQueryThenMaxQueryThenIdentifier_sameCoord_diffId( self ): - p1 = Path() - p1.setFromTuple( ( "1", "qry1", "1", "5", "sbj1", "101", "200", "0.0", "176", "91.2" ) ) - p2 = Path() - p2.setFromTuple( ( "2", "qry1", "1", "5", "sbj1", "101", "200", "0.0", "176", "91.2" ) ) - lPaths = [ p2, p1 ] - - expList = [ p1, p2 ] - - obsList = PathUtils.getPathListSortedByIncreasingMinQueryThenMaxQueryThenIdentifier( lPaths ) - - self.assertEqual( expList, obsList ) - - def test_getListOfDistinctIdentifiers( self ): - p1 = Path() - p1.setFromTuple( ( "1", "qry1", "1", "100", "sbj1", "1", "100", "0.0", "239", "90.0" ) ) - p2 = Path() - p2.setFromTuple( ( "2", "qry1", "121", "350", "sbj1", "101", "200", "0.0", "176", "91.2" ) ) - p3 = Path() - p3.setFromTuple( ( "2", "qry1", "121", "350", "sbj1", "101", "200", "0.0", "176", "91.2" ) ) - lPaths = [ p1, p2, p3 ] - lExp = [ 1, 2 ] - lObs = PathUtils.getListOfDistinctIdentifiers( lPaths ) - lExp.sort() - lObs.sort() - self.assertEqual( lObs, lExp ) - - def test_getListOfDistinctQueryNames( self ): - p1 = Path() - p1.setFromTuple( ( "1", "qry1", "1", "100", "sbj1", "1", "100", "0.0", "239", "90.0" ) ) - p2 = Path() - p2.setFromTuple( ( "2", "qry2", "121", "350", "sbj1", "101", "200", "0.0", "176", "91.2" ) ) - p3 = Path() - p3.setFromTuple( ( "2", "qry2", "121", "350", "sbj1", "101", "200", "0.0", "176", "91.2" ) ) - lPaths = [ p1, p2, p3 ] - lExp = [ "qry1", "qry2" ] - lObs = PathUtils.getListOfDistinctQueryNames( lPaths ) - lExp.sort() - lObs.sort() - self.assertEqual( lObs, lExp ) - - def test_getListOfDistinctSubjectNames( self ): - p1 = Path() - p1.setFromTuple( ( "1", "qry1", "1", "100", "sbj1", "1", "100", "0.0", "239", "90.0" ) ) - p2 = Path() - p2.setFromTuple( ( "2", "qry2", "121", "350", "sbj1", "101", "200", "0.0", "176", "91.2" ) ) - p3 = Path() - p3.setFromTuple( ( "2", "qry2", "121", "350", "sbj2", "101", "200", "0.0", "176", "91.2" ) ) - lPaths = [ p1, p2, p3 ] - lExp = [ "sbj1", "sbj2" ] - lObs = PathUtils.getListOfDistinctSubjectNames( lPaths ) - lExp.sort() - lObs.sort() - self.assertEqual( lObs, lExp ) - - def test_getListOfJoinCoordinatesOnQuery_returnCoord( self ): - p1a = Path() - p1a.setFromTuple( ( "1", "qry1", "1", "500", "sbj1", "1", "500", "0.0", "532", "95.0" ) ) - p1b = Path() - p1b.setFromTuple( ( "1", "qry1", "701", "900", "sbj1", "501", "700", "0.0", "232", "95.3" ) ) - lExp = [ [ 501, 700 ] ] - lPaths = [ p1a, p1b ] - lObs = PathUtils.getListOfJoinCoordinatesOnQuery( lPaths ) - lExp.sort() - lObs.sort() - self.assertEqual( lObs, lExp ) - - def test_getListOfJoinCoordinatesOnQuery_overlap( self ): - p1a = Path() - p1a.setFromTuple( ( "1", "qry1", "1", "500", "sbj1", "1", "500", "0.0", "532", "95.0" ) ) - p1b = Path() - p1b.setFromTuple( ( "1", "qry1", "491", "900", "sbj1", "501", "770", "0.0", "232", "95.3" ) ) - lExp = [] - lPaths = [ p1a, p1b ] - minLength = 100 - lObs = PathUtils.getListOfJoinCoordinatesOnQuery( lPaths, minLength ) - lExp.sort() - lObs.sort() - self.assertEqual( lObs, lExp ) - - def test_getListOfJoinCoordinates_tooShort( self ): - p1a = Path() - p1a.setFromTuple( ( "1", "qry1", "1", "500", "sbj1", "1", "500", "0.0", "532", "95.0" ) ) - p1b = Path() - p1b.setFromTuple( ( "1", "qry1", "551", "900", "sbj1", "501", "750", "0.0", "232", "95.3" ) ) - lExp = [] - lPaths = [ p1a, p1b ] - minLength = 100 - lObs = PathUtils.getListOfJoinCoordinatesOnQuery( lPaths, minLength ) - lExp.sort() - lObs.sort() - self.assertEqual( lObs, lExp ) - - def test_getLengthOnQueryFromPathList( self ): - p1 = Path() - p1.setFromTuple( ( "1", "qry1", "1", "70", "sbj1", "1", "70", "0.0", "132", "95.0" ) ) - p2 = Path() - p2.setFromTuple( ( "2", "qry1", "51", "90", "sbj2", "40", "1", "0.0", "132", "95.0" ) ) - lPaths = [ p1, p2 ] - exp = 90 - obs = PathUtils.getLengthOnQueryFromPathList( lPaths ) - self.assertEqual( obs, exp ) - - def test_convertPathFileIntoAlignFile( self ): - pathFile = "dummyPathFile_%s_%s" % ( time.strftime("%Y%m%d%H%M%S"), os.getpid() ) - pathFileHandler = open( pathFile, "w" ) - pathFileHandler.write( "3\tchr2\t250\t151\tseq5\t1\t100\t1e-31\t147\t98.3\n" ) - pathFileHandler.close() - - expFile = "dummyExpFile_%s_%s" % ( time.strftime("%Y%m%d%H%M%S"), os.getpid() ) - expFileHandler = open( expFile, "w" ) - expFileHandler.write( "chr2\t151\t250\tseq5\t100\t1\t1e-31\t147\t98.300000\n" ) - expFileHandler.close() - - obsFile = "dummyObsFile_%s_%s" % ( time.strftime("%Y%m%d%H%M%S"), os.getpid() ) - - PathUtils.convertPathFileIntoAlignFile( pathFile, obsFile ) - - self.assertTrue( FileUtils.are2FilesIdentical( expFile, obsFile ) ) - - for f in [ pathFile, expFile, obsFile ]: - if os.path.exists( f ): - os.remove ( f ) - - def test_convertPathFileIntoMapFileWithQueryCoordsOnly( self ): - pathFile = "dummyPathFile_%s_%s" % ( time.strftime("%Y%m%d%H%M%S"), os.getpid() ) - pathFileHandler = open( pathFile, "w" ) - pathFileHandler.write( "3\tchr2\t250\t151\tseq5\t1\t100\t1e-31\t147\t98.3\n" ) - pathFileHandler.write( "4\tchr2\t191\t230\tseq8\t237\t387\t1e-11\t187\t95.3\n" ) - pathFileHandler.write( "3\tchr2\t500\t301\tseq5\t101\t300\t1e-81\t247\t96.2\n" ) - pathFileHandler.close() - - expFile = "dummyExpFile_%s_%s" % ( time.strftime("%Y%m%d%H%M%S"), os.getpid() ) - expFileHandler = open( expFile, "w" ) - expFileHandler.write( "seq5\tchr2\t250\t151\n" ) - expFileHandler.write( "seq8\tchr2\t191\t230\n" ) - expFileHandler.write( "seq5\tchr2\t500\t301\n" ) - expFileHandler.close() - - obsFile = "dummyObsFile_%s_%s" % ( time.strftime("%Y%m%d%H%M%S"), os.getpid() ) - - PathUtils.convertPathFileIntoMapFileWithQueryCoordsOnly( pathFile, obsFile ) - - self.assertTrue( FileUtils.are2FilesIdentical( expFile, obsFile ) ) - - for f in [ pathFile, expFile, obsFile ]: - if os.path.exists( f ): - os.remove( f ) - - - def test_mergeMatchesOnQueries( self ): - pathFile = "dummyPathFile_%s_%s" % ( time.strftime("%Y%m%d%H%M%S"), os.getpid() ) - pathFileHandler = open( pathFile, "w" ) - pathFileHandler.write( "3\tchr2\t250\t151\tseq5\t1\t100\t1e-31\t147\t98.3\n" ) - pathFileHandler.write( "4\tchr2\t230\t191\tseq8\t237\t387\t1e-11\t187\t95.3\n" ) - pathFileHandler.write( "3\tchr2\t500\t301\tseq5\t101\t300\t1e-81\t247\t96.2\n" ) - pathFileHandler.close() - - expFile = "dummyExpFile_%s_%s" % ( time.strftime("%Y%m%d%H%M%S"), os.getpid() ) - expFileHandler = open( expFile, "w" ) - expFileHandler.write( "0\tchr2\t151\t250\tseq5\t0\t0\t0.0\t0\t0\n" ) - expFileHandler.write( "0\tchr2\t301\t500\tseq5\t0\t0\t0.0\t0\t0\n" ) - expFileHandler.close() - - obsFile = "dummyObsFile_%s_%s" % ( time.strftime("%Y%m%d%H%M%S"), os.getpid() ) - - PathUtils.mergeMatchesOnQueries( pathFile, obsFile ) - - self.assertTrue( FileUtils.are2FilesIdentical( expFile, obsFile ) ) - - for f in [ pathFile, expFile, obsFile ]: - if os.path.exists( f ): - os.remove( f ) - - - def test_filterPathListOnChainLength( self ): - p1a = Path() - p1a.setFromTuple( ( "1", "qry1", "1", "12", "sbj1", "1", "12", "0.0", "132", "95.0" ) ) - p1b = Path() - p1b.setFromTuple( ( "1", "qry1", "15", "30", "sbj1", "13", "28", "0.0", "132", "95.0" ) ) - p2 = Path() - p2.setFromTuple( ( "2", "qry1", "51", "90", "sbj2", "40", "1", "0.0", "132", "95.0" ) ) - p3 = Path() - p3.setFromTuple( ( "3", "qry2", "1", "12", "sbj3", "15", "1", "0.0", "132", "95.0" ) ) - lPaths = [ p1a, p1b, p2, p3 ] - lExp = [ p1a, p1b, p2 ] - lObs = PathUtils.filterPathListOnChainLength( lPaths, 20 ) - self.assertEqual( lExp, lObs ) - - def test_getPathListFromFile(self): - file = "dummyFile_%s_%s" % ( time.strftime("%Y%m%d%H%M%S"), os.getpid() ) - fileHandler = open( file, "w" ) - fileHandler.write( "1\tchr2\t151\t250\tseq5\t0\t0\t0.0\t0\t0\n" ) - fileHandler.write( "2\tchr2\t301\t500\tseq5\t0\t0\t0.0\t0\t0\n" ) - fileHandler.close() - p1 = Path() - p1.setFromTuple( ( "1", "chr2", "151", "250", "seq5", "0", "0", "0.0", "0", "0" ) ) - p2 = Path() - p2.setFromTuple( ( "2", "chr2", "301", "500", "seq5", "0", "0", "0.0", "0", "0" ) ) - expLPath = [ p1, p2 ] - obsLPath = PathUtils.getPathListFromFile(file) - expLPathSorted = PathUtils.getPathListSortedByIncreasingQueryMinThenInvQueryLength(expLPath) - obsLPathSorted = PathUtils.getPathListSortedByIncreasingQueryMinThenInvQueryLength(obsLPath) - os.remove(file) - self.assertEqual( expLPathSorted, obsLPathSorted ) - - def test_getPathListFromFile_empty_file(self): - file = "dummyFile_%s_%s" % ( time.strftime("%Y%m%d%H%M%S"), os.getpid() ) - fileHandler = open( file, "w" ) - fileHandler.close() - expLPath = [] - obsLPath = PathUtils.getPathListFromFile(file) - expLPathSorted = PathUtils.getPathListSortedByIncreasingQueryMinThenInvQueryLength(expLPath) - obsLPathSorted = PathUtils.getPathListSortedByIncreasingQueryMinThenInvQueryLength(obsLPath) - os.remove(file) - self.assertEqual( expLPathSorted, obsLPathSorted ) - - def test_convertPathFileIntoAlignFileViaPathrange_sortedInput( self ): - p1a = Path() - p1a.setFromTuple( ( "1", "qry1", "1", "12", "sbj1", "1", "12", "0.0", "132", "95.0" ) ) - p1b = Path() - p1b.setFromTuple( ( "1", "qry1", "16", "30", "sbj1", "13", "28", "1e-270", "150", "97.0" ) ) - p2 = Path() - p2.setFromTuple( ( "2", "qry1", "51", "90", "sbj2", "40", "1", "0.0", "132", "95.0" ) ) - inFile = "dummyInFile" - inF = open( inFile, "w" ) - for iPath in [ p1a, p1b, p2 ]: - iPath.write( inF ) - inF.close() - - expFile = "dummyExpFile" - expF = open( expFile, "w" ) - a1 = Align() - a1.setFromTuple( ( "qry1", "1", "30", "sbj1", "1", "28", "0.0", "282", str((95*12+97*15)/float(12+15)) ) ) - a2 = Align() - a2.setFromTuple( ( "qry1", "51", "90", "sbj2", "40", "1", "0.0", "132", "95.0" ) ) - for iAlign in [ a1, a2 ]: - iAlign.write( expF ) - expF.close() - - obsFile = "dummyObsFile" - - PathUtils.convertPathFileIntoAlignFileViaPathrange( inFile, obsFile, 0 ) - - self.assertTrue( FileUtils.are2FilesIdentical( expFile, obsFile ) ) - - for f in [ inFile, expFile, obsFile ]: - os.remove( f ) - - - def test_convertPathFileIntoAlignFileViaPathrange_unsortedInput( self ): - p1a = Path() - p1a.setFromTuple( ( "1", "qry1", "1", "12", "sbj1", "1", "12", "0.0", "132", "95.0" ) ) - p1b = Path() - p1b.setFromTuple( ( "1", "qry1", "16", "30", "sbj1", "13", "28", "0.0", "150", "97.0" ) ) - p2 = Path() - p2.setFromTuple( ( "2", "qry1", "51", "90", "sbj2", "40", "1", "0.0", "132", "95.0" ) ) - inFile = "dummyInFile" - inF = open( inFile, "w" ) - for iPath in [ p1b, p2, p1a ]: - iPath.write( inF ) - inF.close() - - expFile = "dummyExpFile" - expF = open( expFile, "w" ) - a1 = Align() - a1.setFromTuple( ( "qry1", "1", "30", "sbj1", "1", "28", "0.0", "282", str((95*12+97*15)/float(12+15)) ) ) - a2 = Align() - a2.setFromTuple( ( "qry1", "51", "90", "sbj2", "40", "1", "0.0", "132", "95.0" ) ) - for iAlign in [ a1, a2 ]: - iAlign.write( expF ) - expF.close() - - obsFile = "dummyObsFile" - - PathUtils.convertPathFileIntoAlignFileViaPathrange( inFile, obsFile, 0 ) - - self.assertTrue( FileUtils.are2FilesIdentical( expFile, obsFile ) ) - - for f in [ inFile, expFile, obsFile ]: - os.remove( f ) - - - def test_convertPathFileIntoAlignFileViaPathrange_sortedInput_subjectReverseStrand( self ): - p1a = Path() - p1a.setFromTuple( ( "1", "qry1", "1", "12", "sbj1", "12", "1", "0.0", "132", "95.0" ) ) - p1b = Path() - p1b.setFromTuple( ( "1", "qry1", "16", "30", "sbj1", "28", "13", "0.0", "150", "97.0" ) ) - p2 = Path() - p2.setFromTuple( ( "2", "qry1", "51", "90", "sbj2", "40", "1", "0.0", "132", "95.0" ) ) - inFile = "dummyInFile" - inF = open( inFile, "w" ) - for iPath in [ p1a, p1b, p2 ]: - iPath.write( inF ) - inF.close() - - expFile = "dummyExpFile" - expF = open( expFile, "w" ) - a1 = Align() - a1.setFromTuple( ( "qry1", "1", "30", "sbj1", "28", "1", "0.0", "282", str((95*12+97*15)/float(12+15)) ) ) - a2 = Align() - a2.setFromTuple( ( "qry1", "51", "90", "sbj2", "40", "1", "0.0", "132", "95.0" ) ) - for iAlign in [ a1, a2 ]: - iAlign.write( expF ) - expF.close() - - obsFile = "dummyObsFile" - - PathUtils.convertPathFileIntoAlignFileViaPathrange( inFile, obsFile, 0 ) - - self.assertTrue( FileUtils.are2FilesIdentical( expFile, obsFile ) ) - - for f in [ inFile, expFile, obsFile ]: - os.remove( f ) - - - def test_splitPathListByQueryName_empty_list( self ): - lPath = [] - - obsLPath = PathUtils.splitPathListByQueryName( lPath ) - - expLPath = [] - - self.assertEquals( expLPath, obsLPath ) - - - def test_splitPathListByQueryName( self ): - iPath1 = Path() - iPath1.setFromString("1\tchr1\t100\t110\tTE2\t150\t200\t1e-20\t30\t90.2\n") - iPath2 = Path() - iPath2.setFromString("2\tchr2\t200\t220\tTE2\t150\t200\t1e-20\t30\t90.2\n") - iPath3 = Path() - iPath3.setFromString("3\tchr1\t300\t330\tTE2\t150\t200\t1e-20\t30\t90.2\n") - lPath = [ iPath1, iPath2, iPath3 ] - - obsLPath = PathUtils.splitPathListByQueryName( lPath ) - - expLPath = [ [ iPath1, iPath3 ], - [ iPath2 ] ] - - self.assertEquals( expLPath, obsLPath ) - - - def test_splitPathListByQueryName_last_align_alone( self ): - iPath1 = Path() - iPath1.setFromString("1\tchr1\t100\t110\tTE2\t150\t200\t1e-20\t30\t90.2\n") - iPath2 = Path() - iPath2.setFromString("2\tchr2\t200\t220\tTE2\t150\t200\t1e-20\t30\t90.2\n") - iPath3 = Path() - iPath3.setFromString("3\tchr1\t300\t330\tTE2\t150\t200\t1e-20\t30\t90.2\n") - iPath4 = Path() - iPath4.setFromString("4\tchr3\t100\t110\tTE2\t150\t200\t1e-20\t30\t90.2\n") - iPath5 = Path() - iPath5.setFromString("5\tchr2\t200\t220\tTE2\t150\t200\t1e-20\t30\t90.2\n") - iPath6 = Path() - iPath6.setFromString("6\tchr1\t300\t330\tTE2\t150\t200\t1e-20\t30\t90.2\n") - iPath7 = Path() - iPath7.setFromString("7\tchr1\t100\t110\tTE2\t150\t200\t1e-20\t30\t90.2\n") - iPath8 = Path() - iPath8.setFromString("8\tchr2\t200\t220\tTE2\t150\t200\t1e-20\t30\t90.2\n") - iPath9 = Path() - iPath9.setFromString("9\tchr4\t300\t330\tTE2\t150\t200\t1e-20\t30\t90.2\n") - lPath = [ iPath1, iPath2, iPath3, iPath4, iPath5, iPath6, iPath7, iPath8, iPath9 ] - - obsLPath = PathUtils.splitPathListByQueryName( lPath ) - - expLPath = [ [ iPath1, iPath3, iPath6, iPath7 ], - [ iPath2, iPath5, iPath8 ], - [ iPath4 ], - [ iPath9 ] ] - - self.assertEquals( expLPath, obsLPath ) - - - def test_getPathListSortedByIncreasingQueryMinThenInvQueryLength_alreadyOrdered_diffIdentifier( self ): - iPath1 = Path( 1, Range("qry1",1,10), Range("sbj1",1,10), 0.0, 10, 98.7 ) - iPath2 = Path( 2, Range("qry1",21,30), Range("sbj1",11,20), 0.0, 10, 98.7 ) - lPaths = [ iPath1, iPath2 ] - - lExp = [ Path( 1, Range("qry1",1,10), Range("sbj1",1,10), 0.0, 10, 98.7 ), - Path( 2, Range("qry1",21,30), Range("sbj1",11,20), 0.0, 10, 98.7 ) ] - - lObs = PathUtils.getPathListSortedByIncreasingQueryMinThenInvQueryLength( lPaths ) - - self.assertEquals( lExp, lObs ) - - - def test_getPathListSortedByIncreasingQueryMinThenInvQueryLength_unordered_diffIdentifier( self ): - iPath1 = Path( 1, Range("qry1",1,10), Range("sbj1",1,10), 0.0, 10, 98.7 ) - iPath2 = Path( 2, Range("qry1",21,30), Range("sbj1",11,20), 0.0, 10, 98.7 ) - lPaths = [ iPath2, iPath1 ] - - lExp = [ Path( 1, Range("qry1",1,10), Range("sbj1",1,10), 0.0, 10, 98.7 ), - Path( 2, Range("qry1",21,30), Range("sbj1",11,20), 0.0, 10, 98.7 ) ] - - lObs = PathUtils.getPathListSortedByIncreasingQueryMinThenInvQueryLength( lPaths ) - - self.assertEquals( lExp, lObs ) - - - def test_getPathListSortedByIncreasingQueryMinThenInvQueryLength_unordered_sameIdentifier( self ): - iPath1a = Path( 1, Range("qry1",1,10), Range("sbj1",1,10), 0.0, 10, 98.7 ) - iPath1b = Path( 1, Range("qry1",21,30), Range("sbj1",11,20), 0.0, 10, 98.7 ) - lPaths = [ iPath1b, iPath1a ] - - lExp = [ Path( 1, Range("qry1",1,10), Range("sbj1",1,10), 0.0, 10, 98.7 ), - Path( 1, Range("qry1",21,30), Range("sbj1",11,20), 0.0, 10, 98.7 ) ] - - lObs = PathUtils.getPathListSortedByIncreasingQueryMinThenInvQueryLength( lPaths ) - - self.assertEquals( lExp, lObs ) - - - def test_getPathListSortedByIncreasingQueryMinThenInvQueryLength_unordered_overlapping( self ): - iPath1 = Path( 1, Range("qry1",1,6), Range("sbj1",1,6), 0.0, 10, 98.7 ) - iPath2 = Path( 2, Range("qry1",5,10), Range("sbj1",5,10), 0.0, 10, 98.7 ) - lPaths = [ iPath2, iPath1 ] - - lExp = [ Path( 1, Range("qry1",1,6), Range("sbj1",1,6), 0.0, 10, 98.7 ), - Path( 2, Range("qry1",5,10), Range("sbj1",5,10), 0.0, 10, 98.7 ) ] - - lObs = PathUtils.getPathListSortedByIncreasingQueryMinThenInvQueryLength( lPaths ) - - self.assertEquals( lExp, lObs ) - - - def test_getPathListSortedByIncreasingQueryMinThenInvQueryLength_threePaths_2sameMin( self ): - iPath1 = Path( 1, Range("qry1",1,6), Range("sbj1",1,6), 0.0, 10, 98.7 ) - iPath2 = Path( 2, Range("qry1",5,12), Range("sbj1",5,12), 0.0, 10, 98.7 ) - iPath3 = Path( 3, Range("qry1",5,10), Range("sbj1",5,10), 0.0, 10, 98.7 ) - lPaths = [ iPath3, iPath2, iPath1 ] - - lExp = [ Path( 1, Range("qry1",1,6), Range("sbj1",1,6), 0.0, 10, 98.7 ), - Path( 2, Range("qry1",5,12), Range("sbj1",5,12), 0.0, 10, 98.7 ), - Path( 3, Range("qry1",5,10), Range("sbj1",5,10), 0.0, 10, 98.7 ) ] - - lObs = PathUtils.getPathListSortedByIncreasingQueryMinThenInvQueryLength( lPaths ) - - self.assertEquals( lExp, lObs ) - - - def test_getPathListSortedByIncreasingQueryMinThenInvQueryLength_unordered_included( self ): - iPath1 = Path( 1, Range("qry1",1,6), Range("sbj1",1,6), 0.0, 10, 98.7 ) - iPath2 = Path( 2, Range("qry1",2,5), Range("sbj1",2,5), 0.0, 10, 98.7 ) - lPaths = [ iPath2, iPath1 ] - - lExp = [ Path( 1, Range("qry1",1,6), Range("sbj1",1,6), 0.0, 10, 98.7 ), - Path( 2, Range("qry1",2,5), Range("sbj1",2,5), 0.0, 10, 98.7 ) ] - - lObs = PathUtils.getPathListSortedByIncreasingQueryMinThenInvQueryLength( lPaths ) - - self.assertEquals( lExp, lObs ) - - - def test_mergePathsInList_emptyList( self ): - lPaths = [] - lExp = [] - lObs = PathUtils.mergePathsInList( lPaths ) - self.assertEquals( lExp, lObs ) - - - def test_mergePathsInList_onePath( self ): - iPath1 = Path( 1, Range("qry1",1,10), Range("sbj1",1,10), 0.0, 10, 98.7 ) - lPaths = [ iPath1 ] - lExp = [ Path( 1, Range("qry1",1,10), Range("sbj1",1,10), 0.0, 10, 98.7 ) ] - lObs = PathUtils.mergePathsInList( lPaths ) - self.assertEquals( lExp, lObs ) - - - def test_mergePathsInList_noOverlap( self ): - iPath1 = Path( 1, Range("qry1",1,10), Range("sbj1",1,10), 0.0, 10, 98.7 ) - iPath2 = Path( 1, Range("qry1",21,30), Range("sbj1",11,20), 0.0, 10, 98.7 ) - lPaths = [ iPath1, iPath2 ] - - lExp = [ Path( 1, Range("qry1",1,10), Range("sbj1",1,10), 0.0, 10, 98.7 ), - Path( 1, Range("qry1",21,30), Range("sbj1",11,20), 0.0, 10, 98.7 ) ] - - lObs = PathUtils.mergePathsInList( lPaths ) - - self.assertEquals( lExp, lObs ) - - - def test_mergePathsInList_withOverlap( self ): - iPath1 = Path( 1, Range("qry1",1,10), Range("sbj1",1,10), 0.0, 10, 98.7 ) - iPath2 = Path( 1, Range("qry1",6,15), Range("sbj1",6,15), 0.0, 10, 98.7 ) - lPaths = [ iPath2, iPath1 ] - - lExp = [ Path( 1, Range("qry1",1,15), Range("sbj1",1,15), 0.0, 10, 98.7 ) ] - - lObs = PathUtils.mergePathsInList( lPaths ) - - self.assertEquals( lExp, lObs ) - - - def test_mergePathsInList_withOverlap_reverseOnly( self ): - iPath1 = Path( 1, Range("qry1",10,1), Range("sbj1",10,1), 0.0, 10, 98.7 ) - iPath2 = Path( 1, Range("qry1",15,6), Range("sbj1",15,6), 0.0, 10, 98.7 ) - lPaths = [ iPath2, iPath1 ] - - lExp = [ Path( 1, Range("qry1",15,1), Range("sbj1",15,1), 0.0, 10, 98.7 ) ] - - lObs = PathUtils.mergePathsInList( lPaths ) - - self.assertEquals( lExp, lObs ) - - - def test_mergePathsInList_withOverlap_directAndReverse( self ): - iPath1 = Path( 1, Range("qry1",10,1), Range("sbj1",10,1), 0.0, 10, 98.7 ) - iPath2 = Path( 1, Range("qry1",15,6), Range("sbj1",15,6), 0.0, 10, 98.7 ) - iPath3 = Path( 1, Range("qry1",2,5), Range("sbj1",2,5), 0.0, 10, 98.7 ) - lPaths = [ iPath3, iPath2, iPath1 ] - - lExp = [ Path( 1, Range("qry1",15,1), Range("sbj1",15,1), 0.0, 10, 98.7 ) ] - - lObs = PathUtils.mergePathsInList( lPaths ) - - self.assertEquals( lExp, lObs ) - - - def test_mergePathsInList_diffQueries_withOverlap( self ): - iPath1 = Path( 1, Range("qry1",1,10), Range("sbj1",1,10), 0.0, 10, 98.7 ) - iPath2 = Path( 2, Range("qry2",6,15), Range("sbj1",6,15), 0.0, 10, 98.7 ) - lPaths = [ iPath2, iPath1 ] - - lExp = [ Path( 1, Range("qry1",1,10), Range("sbj1",1,10), 0.0, 10, 98.7 ), - Path( 2, Range("qry2",6,15), Range("sbj1",6,15), 0.0, 10, 98.7 ) ] - - lObs = PathUtils.mergePathsInList( lPaths ) - - self.assertEquals( lExp, lObs ) - - - def test_mergePathsInList_nonOverlappingSubjects( self ): - iPath1 = Path( 1, Range("qry1",398,491), Range("sbj1",10,112), 0.0, 10, 98.7 ) - iPath2 = Path( 1, Range("qry1",451,492), Range("sbj1",124,169), 0.0, 10, 98.7 ) - iPath3 = Path( 1, Range("qry1",493,531), Range("sbj1",249,294), 0.0, 10, 98.7 ) - lPaths = [ iPath3, iPath2, iPath1 ] - - lExp = [ Path( 1, Range("qry1",398,491), Range("sbj1",10,112), 0.0, 10, 98.7 ), - Path( 1, Range("qry1",451,492), Range("sbj1",124,169), 0.0, 10, 98.7 ), - Path( 1, Range("qry1",493,531), Range("sbj1",249,294), 0.0, 10, 98.7 ) ] - - lObs = PathUtils.mergePathsInList( lPaths ) - - self.assertEquals( lExp, lObs ) - - - def test_mergePathsInListUsingQueryCoordsOnly( self ): - iPath1 = Path( 1, Range("qry1",398,491), Range("sbj1",10,112), 0.0, 10, 98.7 ) - iPath2 = Path( 1, Range("qry1",451,492), Range("sbj1",124,169), 0.0, 10, 98.7 ) - iPath3 = Path( 1, Range("qry1",493,531), Range("sbj1",249,294), 0.0, 10, 98.7 ) - lPaths = [ iPath3, iPath2, iPath1 ] - - lExp = [ Path( 1, Range("qry1",398,492), Range("sbj1",10,169), 0.0, 10, 98.7 ), - Path( 1, Range("qry1",493,531), Range("sbj1",249,294), 0.0, 10, 98.7 ) ] - - lObs = PathUtils.mergePathsInListUsingQueryCoordsOnly( lPaths ) - - self.assertEquals( lExp, lObs ) - - - def test_convertPathFileIntoGffFile( self ): - p1 = Path() - p1.setFromTuple( ( "1", "qry1", "12", "1", "sbj1", "1", "12", "0.0", "132", "95.0" ) ) - p2a = Path() - p2a.setFromTuple( ( "2", "qry1", "16", "30", "sbj2", "1", "15", "1e-270", "150", "97.0" ) ) - p2b = Path() - p2b.setFromTuple( ( "2", "qry1", "51", "90", "sbj2", "21", "60", "0.0", "132", "95.9" ) ) - inFile = "dummyInFile" - PathUtils.writeListInFile( [ p1, p2a, p2b ], inFile, "w" ) - - expFile = "dummyExpFile" - expF = open( expFile, "w" ) - expF.write( "qry1\tREPET\tmatch\t1\t12\t0\t-\t.\tID=1;Target=sbj1 1 12\n" ) - expF.write( "qry1\tREPET\tmatch\t16\t90\t0\t+\t.\tID=ms2;Target=sbj2 1 60\n" ) - expF.write( "qry1\tREPET\tmatch_part\t16\t30\t1e-270\t+\t.\tID=mp2-1;Parent=ms2;Target=sbj2 1 15\n" ) - expF.write( "qry1\tREPET\tmatch_part\t51\t90\t0\t+\t.\tID=mp2-2;Parent=ms2;Target=sbj2 21 60\n" ) - expF.close() - - obsFile = "dummyObsFile" - - PathUtils.convertPathFileIntoGffFile( inFile, obsFile ) - - self.assertTrue( FileUtils.are2FilesIdentical( expFile, obsFile ) ) - - for f in [ inFile, expFile, obsFile ]: - os.remove( f ) - - - def test_convertPathFileIntoSetFile( self ): - pathFile = "dummyPathFile_%s_%s" % ( time.strftime("%Y%m%d%H%M%S"), os.getpid() ) - pathFileHandler = open( pathFile, "w" ) - pathFileHandler.write( "3\tchr2\t250\t151\tseq5\t1\t100\t1e-31\t147\t98.3\n" ) - pathFileHandler.close() - - expFile = "dummyExpFile_%s_%s" % ( time.strftime("%Y%m%d%H%M%S"), os.getpid() ) - expFileHandler = open( expFile, "w" ) - expFileHandler.write( "3\tseq5\tchr2\t250\t151\n" ) - expFileHandler.close() - - obsFile = "dummyObsFile_%s_%s" % ( time.strftime("%Y%m%d%H%M%S"), os.getpid() ) - - PathUtils.convertPathFileIntoSetFile( pathFile, obsFile ) - - self.assertTrue( FileUtils.are2FilesIdentical( expFile, obsFile ) ) - - for f in [ pathFile, expFile, obsFile ]: - if os.path.exists( f ): - os.remove ( f ) - - - def test_removeInPathFileDuplicatedPathOnQueryNameQueryCoordAndSubjectName(self): - pathFile = "dummyPathFile" - f = open(pathFile, "w") - f.write("1\tG4\t1\t3856\tAtha5Chr4_Pals_Piler_3590_69_MAP_3\t1\t3856\t0\t7642\t99.9741\n") - f.write("1\tG4\t1\t3856\tAtha5Chr4_Pals_Piler_3590_69_MAP_3\t100\t3956\t0\t7642\t99.9741\n") - f.write("2\trooA\t1\t386\tAtha5Chr4_Pals_Piler_3589_69_MAP_3\t1\t386\t6.3e-220\t758\t99.4819\n") - f.write("3\trooA\t7236\t7621\tAtha5Chr4_Pals_Piler_3536_69_MAP_3\t1\t386\t6.3e-220\t758\t99.4819\n") - f.write("4\trooA\t387\t7235\tAtha5Chr4_Pals_Piler_3596_69_MAP_3\t1\t6849\t0\t13580\t99.9854\n") - f.write("5\taurora-element\t4046\t4257\tAtha5Chr4_Pals_Piler_3540_69_MAP_3\t1\t204\t6.1e-80\t300\t96.5686\n") - f.write("6\taurora-element\t274\t381\tAtha5Chr4_Pals_Piler_3595_23_MAP_3\t177\t284\t0\t191\t97.2222\n") - f.write("6\taurora-element\t116\t287\tAtha5Chr4_Pals_Piler_3595_30_MAP_3\t3\t170\t0\t290\t98.8095\n") - f.write("7\taurora-element\t393\t902\tAtha5Chr4_Pals_Piler_3595_31_MAP_3\t1467\t1945\t0\t873\t97.2441\n") - f.write("7\taurora-element\t393\t902\tAtha5Chr4_Pals_Piler_3595_31_MAP_3\t276\t100784\t0\t869\t98.1211\n") - f.write("7\taurora-element\t1387\t2271\tAtha5Chr4_Pals_Piler_3595_31_MAP_3\t276\t10780\t0\t1576\t97.6244\n") - f.write("8\taurora-element\t2486\t2828\tAtha5Chr4_Pals_Piler_3595_50_MAP_3\t4301\t4641\t0\t585\t97.3607\n") - f.write("9\taurora-element\t2265\t2483\tAtha5Chr4_Pals_Piler_3595_62_MAP_3\t3999\t4218\t0\t361\t96.347\n") - f.write("10\taurora-element\t2834\t4045\tAtha5Chr4_Pals_Piler_3595_69_MAP_3\t4800\t6011\t0\t2074\t97.0248\n") - f.write("11\taurora-element\t2\t113\tAtha5Chr4_Pals_Piler_3598_69_MAP_3\t205\t317\t8.5e-37\t157\t93.75\n") - f.write("11\taurora-element\t2\t113\tAtha5Chr4_Pals_Piler_3598_69_MAP_3\t305\t417\t8.5e-37\t157\t93.75\n") - f.write("11\taurora-element\t2\t113\tAtha5Chr4_Pals_Piler_3598_69_MAP_3\t305\t417\t8.5e-37\t157\t93.75\n") - f.close() - - obsPathFile = "obsDummyPathFile" - PathUtils.removeInPathFileDuplicatedPathOnQueryNameQueryCoordAndSubjectName(pathFile, obsPathFile) - - expPathFile = "expDummyPathFile" - f = open(expPathFile, "w") - f.write("1\tG4\t1\t3856\tAtha5Chr4_Pals_Piler_3590_69_MAP_3\t1\t3856\t0\t7642\t99.974100\n") - f.write("2\trooA\t1\t386\tAtha5Chr4_Pals_Piler_3589_69_MAP_3\t1\t386\t6.3e-220\t758\t99.481900\n") - f.write("3\trooA\t7236\t7621\tAtha5Chr4_Pals_Piler_3536_69_MAP_3\t1\t386\t6.3e-220\t758\t99.481900\n") - f.write("4\trooA\t387\t7235\tAtha5Chr4_Pals_Piler_3596_69_MAP_3\t1\t6849\t0\t13580\t99.985400\n") - f.write("5\taurora-element\t4046\t4257\tAtha5Chr4_Pals_Piler_3540_69_MAP_3\t1\t204\t6.1e-80\t300\t96.568600\n") - f.write("6\taurora-element\t274\t381\tAtha5Chr4_Pals_Piler_3595_23_MAP_3\t177\t284\t0\t191\t97.222200\n") - f.write("6\taurora-element\t116\t287\tAtha5Chr4_Pals_Piler_3595_30_MAP_3\t3\t170\t0\t290\t98.809500\n") - f.write("7\taurora-element\t393\t902\tAtha5Chr4_Pals_Piler_3595_31_MAP_3\t1467\t1945\t0\t873\t97.244100\n") - f.write("7\taurora-element\t1387\t2271\tAtha5Chr4_Pals_Piler_3595_31_MAP_3\t276\t10780\t0\t1576\t97.624400\n") - f.write("8\taurora-element\t2486\t2828\tAtha5Chr4_Pals_Piler_3595_50_MAP_3\t4301\t4641\t0\t585\t97.360700\n") - f.write("9\taurora-element\t2265\t2483\tAtha5Chr4_Pals_Piler_3595_62_MAP_3\t3999\t4218\t0\t361\t96.347000\n") - f.write("10\taurora-element\t2834\t4045\tAtha5Chr4_Pals_Piler_3595_69_MAP_3\t4800\t6011\t0\t2074\t97.024800\n") - f.write("11\taurora-element\t2\t113\tAtha5Chr4_Pals_Piler_3598_69_MAP_3\t205\t317\t8.5e-37\t157\t93.750000\n") - f.close() - - self.assertTrue(FileUtils.are2FilesIdentical(expPathFile, obsPathFile)) - - os.remove(pathFile) - os.remove(expPathFile) - os.remove(obsPathFile) - - - def test_getPathListWithoutDuplicatesOnQueryCoord(self): - iPath1 = Path(1, Range("qry1",398,491), Range("sbj1",10,112), 0.0, 10, 98.7) - iPath2 = Path(1, Range("qry1",451,492), Range("sbj1",124,169), 0.0, 10, 98.7) - iPath3 = Path(1, Range("qry1",451,492), Range("sbj1",249,294), 0.0, 10, 98.7) - lPaths = [iPath3, iPath2, iPath1] - - obslPaths = PathUtils.getPathListWithoutDuplicatesOnQueryCoord(lPaths) - - explPaths = [iPath1, iPath3] - - self.assertEquals(explPaths, obslPaths) - - - def _makePathListFromTupleList ( self, tupleList ): - pathList = [] - for tuple in tupleList: - path = Path() - path.setFromTuple(tuple) - pathList.append(path) - return pathList - - def _makePathListFromStringList (self, stringList): - pathList = [] - for string in stringList: - path = Path() - path.setFromString(string) - pathList.append(path) - return pathList - - def _show (self, list): - for item in list: - print item.toString() - - -test_suite = unittest.TestSuite() -test_suite.addTest( unittest.makeSuite( Test_PathUtils ) ) -if __name__ == "__main__": - unittest.TextTestRunner(verbosity=2).run( test_suite )
--- a/commons/core/coord/test/Test_Range.py Mon Apr 29 03:26:07 2013 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,698 +0,0 @@ -# Copyright INRA (Institut National de la Recherche Agronomique) -# http://www.inra.fr -# http://urgi.versailles.inra.fr -# -# This software is governed by the CeCILL license under French law and -# abiding by the rules of distribution of free software. You can use, -# modify and/ or redistribute the software under the terms of the CeCILL -# license as circulated by CEA, CNRS and INRIA at the following URL -# "http://www.cecill.info". -# -# As a counterpart to the access to the source code and rights to copy, -# modify and redistribute granted by the license, users are provided only -# with a limited warranty and the software's author, the holder of the -# economic rights, and the successive licensors have only limited -# liability. -# -# In this respect, the user's attention is drawn to the risks associated -# with loading, using, modifying and/or developing or reproducing the -# software by the user in light of its specific status of free software, -# that may mean that it is complicated to manipulate, and that also -# therefore means that it is reserved for developers and experienced -# professionals having in-depth computer knowledge. Users are therefore -# encouraged to load and test the software's suitability as regards their -# requirements in conditions enabling the security of their systems and/or -# data to be ensured and, more generally, to use and operate it in the -# same conditions as regards security. -# -# The fact that you are presently reading this means that you have had -# knowledge of the CeCILL license and that you accept its terms. - - -import unittest -from commons.core.coord.Range import Range -from commons.core.coord.Range import getBin, getIdx - - -class Test_Range( unittest.TestCase ): - - def setUp(self): - self._range = Range() - - def test_setFromString(self): - line = "chunk1\t190000\t390000" - self._range.setFromString( line ) - self.assertEqual( self._range.seqname, "chunk1" ) - self.assertEqual( self._range.start, 190000 ) - self.assertEqual( self._range.end, 390000 ) - - line = "chunk1\t190000\t390000\n" - self._range.setFromString( line ) - self.assertEqual( self._range.seqname, "chunk1" ) - self.assertEqual( self._range.start, 190000 ) - self.assertEqual( self._range.end, 390000 ) - - line = "chunk1;190000;390000" - self._range.setFromString( line, ";" ) - self.assertEqual( self._range.seqname, "chunk1" ) - self.assertEqual( self._range.start, 190000 ) - self.assertEqual( self._range.end, 390000 ) - - def test_setFromTuple(self): - tuple = ("chunk1","190000","390000") - self._range.setFromTuple( tuple) - - self.assertEqual( self._range.seqname, "chunk1" ) - self.assertEqual( self._range.start, 190000 ) - self.assertEqual( self._range.end, 390000 ) - - def test___eq__(self): - self._range.setFromString( "chunk1\t190000\t390000\n" ) - o = Range() - o.setFromString( "chunk1\t190000\t390000\n" ) - self.assertEqual( self._range, o ) - - o.setFromString( "chunk1\t190000\t39" ) - self.assertNotEquals( self._range, o ) - - o.setFromString( "chromosome1\t190000\t390000" ) - self.assertNotEquals( self._range, o ) - - o.setFromString( "chunk1\t390000\t190000" ) - self.assertNotEquals( self._range, o ) - - o.setFromString( "chromosome1\t390000\t190000" ) - self.assertNotEquals( self._range, o ) - - def test_getMin(self): - self._range.setFromTuple( ("chunk1", 190000, 390000) ) - expMin = 190000 - obsMin = self._range.getMin() - self.assertTrue(expMin, obsMin) - - def test_getMax(self): - self._range.setFromTuple( ("chunk1", 190000, 390000) ) - expMax = 390000 - obsMax = self._range.getMax() - self.assertTrue(expMax, obsMax) - - def test_isOnDirectStrand_true(self): - self._range.setFromTuple( ("chunk1", 190000, 390000) ) - self.assertTrue(self._range.isOnDirectStrand()) - - def test_isOnDirectStrand_false(self): - self._range.setFromTuple( ("chunk1", 390000, 190000) ) - self.assertFalse(self._range.isOnDirectStrand()) - - def test_isOnReverseStrand_true(self): - self._range.setFromTuple( ("chunk1", 390000, 190000) ) - self.assertTrue(self._range.isOnReverseStrand()) - - def test_isOnReverseStrand_false(self): - self._range.setFromTuple( ("chunk1", 190000, 390000) ) - self.assertFalse(self._range.isOnReverseStrand()) - - def test_getStrand_direct(self): - self._range.setFromTuple( ("chunk1", 190000, 390000) ) - expStrand = '+' - obsStrand = self._range.getStrand() - self.assertEqual(expStrand, obsStrand) - - def test_getStrand_reverse(self): - self._range.setFromTuple( ("chunk1", 390000, 190000) ) - expStrand = '-' - obsStrand = self._range.getStrand() - self.assertEqual(expStrand, obsStrand) - - def test_reverse(self): - obsRange = Range("chunk1", 190000, 390000) - expRange = Range("chunk1", 390000, 190000) - obsRange.reverse() - self.assertEquals(expRange, obsRange) - - def test_getLength(self): - self._range.setFromTuple( ("chunk1", 190000, 390000) ) - expLength = 200001 - obsLength = self._range.getLength() - self.assertEquals(expLength, obsLength) - - def test_isEmpty_true( self ): - exp = True - obs = self._range.isEmpty() - self.assertEquals( exp, obs ) - - def test_isEmpty_false( self ): - self._range.setFromTuple( ( "seq1", 1, 10 ) ) - exp = False - obs = self._range.isEmpty() - self.assertEquals( exp, obs ) - - def test_merge_diff_sequences( self ): - self._range.setFromTuple( ( "seq1", 6, 10 ) ) - range2 = Range( "seq2", 6, 12 ) - expReturn = None - expRange = Range( "seq1", 6, 10 ) - obsReturn = self._range.merge( range2 ) - obsRange = self._range - self.assertEquals( expReturn, obsReturn ) - self.assertEquals( expRange, obsRange ) - - def test_merge_no_overlapping_ranges( self ): - self._range.setFromTuple( ( "seq1", 6, 10 ) ) - range2 = Range( "seq1", 12, 20 ) - expReturn = None - expRange = Range( "seq1", 6, 20 ) - obsReturn = self._range.merge( range2 ) - obsRange = self._range - self.assertEquals( expReturn, obsReturn ) - self.assertEquals( expRange, obsRange ) - - def test_merge_no_overlapping_ranges_range1_on_neg_strand( self ): - self._range.setFromTuple( ( "seq1", 10, 6 ) ) - range2 = Range( "seq1", 12, 20 ) - expReturn = None - expRange = Range( "seq1", 20, 6 ) - obsReturn = self._range.merge( range2 ) - obsRange = self._range - self.assertEquals( expReturn, obsReturn ) - self.assertEquals( expRange, obsRange ) - - def test_merge_overlapping_ranges_range1_and_range2_on_neg_strand( self ): - self._range.setFromTuple( ( "seq1", 10, 6 ) ) - range2 = Range( "seq1", 20, 12 ) - expReturn = None - expRange = Range( "seq1", 20, 6 ) - obsReturn = self._range.merge( range2 ) - obsRange = self._range - self.assertEquals( expReturn, obsReturn ) - self.assertEquals( expRange, obsRange ) - - def test_merge_on_overlapping_ranges_range1_and_range2( self ): - self._range.setFromTuple( ( "seq1", 6, 10 ) ) - range2 = Range( "seq1", 8, 20 ) - expReturn = None - expRange = Range( "seq1", 6, 20 ) - obsReturn = self._range.merge( range2 ) - obsRange = self._range - self.assertEquals( expReturn, obsReturn ) - self.assertEquals( expRange, obsRange ) - - def test_isOverlapping_diff_sequences( self ): - self._range.setFromTuple( ( "seq1", 6, 10 ) ) - r2 = Range( "seq2", 6, 10 ) - exp = False - obs = self._range.isOverlapping( r2 ) - self.assertEquals( exp, obs ) - - def test_isOverlapping_no( self ): - self._range.setFromTuple( ( "seq1", 6, 10 ) ) - r2 = Range( "seq1", 16, 20 ) - exp = False - obs = self._range.isOverlapping( r2 ) - self.assertEquals( exp, obs ) - - def test_isOverlapping_yes( self ): - self._range.setFromTuple( ( "seq1", 6, 10 ) ) - r2 = Range( "seq1", 1, 15 ) - exp = True - obs = self._range.isOverlapping( r2 ) - self.assertEquals( exp, obs ) - - def test_isOverlapping_yes_range2_on_neg_strand( self ): - self._range.setFromTuple( ( "seq1", 6, 10 ) ) - r2 = Range( "seq1", 15, 1 ) - exp = True - obs = self._range.isOverlapping( r2 ) - self.assertEquals( exp, obs ) - - def test_isOverlapping_range1_before_range2( self ): - self._range.setFromTuple( ( "seq1", 6, 10 ) ) - r2 = Range( "seq1", 8, 15 ) - exp = True - obs = self._range.isOverlapping( r2 ) - self.assertEquals( exp, obs ) - - def test_isOverlapping_range1_after_range2( self ): - self._range.setFromTuple( ( "seq1", 6, 10 ) ) - r2 = Range( "seq1", 1, 8 ) - exp = True - obs = self._range.isOverlapping( r2 ) - self.assertEquals( exp, obs ) - - def test_isOverlapping_range1_equal_range2( self ): - self._range.setFromTuple( ( "seq1", 6, 10 ) ) - r2 = Range( "seq1", 6, 10 ) - exp = True - obs = self._range.isOverlapping( r2 ) - self.assertEquals( exp, obs ) - - def test_isOverlapping_yes_edges_left( self ): - self._range.setFromTuple( ( "seq1", 6, 10 ) ) - r2 = Range( "seq1", 1, 6 ) - exp = True - obs = self._range.isOverlapping( r2 ) - self.assertEquals( exp, obs ) - - def test_isOverlapping_yes_edges_right( self ): - self._range.setFromTuple( ( "seq1", 6, 10 ) ) - r2 = Range( "seq1", 10, 20 ) - exp = True - obs = self._range.isOverlapping( r2 ) - self.assertEquals( exp, obs ) - - def test_isOverlapping_yes_one_nt( self ): - self._range.setFromTuple( ( "seq1", 10, 10 ) ) - r2 = Range( "seq1", 10, 20 ) - exp = True - obs = self._range.isOverlapping( r2 ) - self.assertEquals( exp, obs ) - - def test_isOverlapping_yes_span_1( self ): - self._range.setFromTuple( ( "seq1", 10, 100 ) ) - r2 = Range( "seq1", 5, 110 ) - exp = True - obs = self._range.isOverlapping( r2 ) - self.assertEquals( exp, obs ) - - def test_isOverlapping_yes_span_2( self ): - self._range.setFromTuple( ( "seq1", 5, 110 ) ) - r2 = Range( "seq1", 10, 100 ) - exp = True - obs = self._range.isOverlapping( r2 ) - self.assertEquals( exp, obs ) - - def test_isOverlapping_yes_include_1( self ): - self._range.setFromTuple( ( "seq1", 10, 100 ) ) - r2 = Range( "seq1", 15, 90 ) - exp = True - obs = self._range.isOverlapping( r2 ) - self.assertEquals( exp, obs ) - - def test_isOverlapping_yes_include_2( self ): - self._range.setFromTuple( ( "seq1", 15, 90 ) ) - r2 = Range( "seq1", 10, 100 ) - exp = True - obs = self._range.isOverlapping( r2 ) - self.assertEquals( exp, obs ) - - def test_getOverlapLength_on_different_range( self ): - range1 = Range( "chunk1", 190000, 390000 ) - range2 = Range( "chunk2", 290000, 590000 ) - expSize = 0 - obsSize = range1.getOverlapLength( range2 ) - self.assertEquals( expSize, obsSize ) - - - def test_getOverlapLength_on_no_overalping_range( self ): - range1 =Range( "chunk1", 190000, 390000 ) - range2 =Range( "chunk1", 490000, 590000 ) - expSize = 0 - obsSize = range1.getOverlapLength( range2 ) - self.assertEquals( expSize, obsSize ) - - - def test_getOverlapLength_range2_included_in_range1( self ): - range1 = Range( "chunk1", 19, 39 ) - range2 = Range( "chunk1", 22, 25 ) - expSize = 4 - obsSize = range1.getOverlapLength( range2 ) - self.assertEquals( expSize, obsSize ) - obsSize = range2.getOverlapLength( range1 ) - self.assertEquals( expSize, obsSize ) - - - def test_getOverlapLength_range1_included_in_range2( self ): - range1 = Range( "chunk1", 220000, 250000 ) - range2 = Range( "chunk1", 190000, 390000 ) - expSize = 30001 - obsSize = range1.getOverlapLength( range2 ) - self.assertEquals( expSize, obsSize ) - - - def test_getOverlapLength_range1_before_range2( self ): - range1 = Range( "chunk1", 190000, 390000 ) - range2 = Range( "chunk1", 290000, 590000 ) - expSize = 100001 - obsSize = range1.getOverlapLength( range2 ) - self.assertEquals( expSize, obsSize ) - - - def test_getOverlapLength_range1_after_range2( self ): - range1 = Range( "chunk1", 390000, 790000 ) - range2 = Range( "chunk1", 290000, 590000 ) - expSize = 200001 - obsSize = range1.getOverlapLength( range2 ) - self.assertEquals( expSize, obsSize ) - - - def test_isIncludedIn( self ): - iRange1 = Range( "chunk1", 21, 30 ) - iRange2 = Range( "chunk1", 11, 40 ) - self.assertTrue( iRange1.isIncludedIn( iRange2 ) ) - - - def test_isIncludedIn_diffStrand( self ): - iRange1 = Range( "chunk1", 21, 30 ) - iRange2 = Range( "chunk1", 40, 11 ) - self.assertTrue( iRange1.isIncludedIn( iRange2 ) ) - - - def test_isIncludedIn_onlyOverlap( self ): - iRange1 = Range( "chunk1", 21, 50 ) - iRange2 = Range( "chunk1", 11, 40 ) - self.assertFalse( iRange1.isIncludedIn( iRange2 ) ) - - - def test_isIncludedIn_diffSeqname( self ): - iRange1 = Range( "chunk1", 21, 30 ) - iRange2 = Range( "chunk2", 11, 40 ) - self.assertFalse( iRange1.isIncludedIn( iRange2 ) ) - - - def test_getDistance_on_overlapping_range(self): - overlapTuple1 = ("chunk1", 220000, 250000) - overlapRange1 = Range() - overlapRange1.setFromTuple(overlapTuple1) - - overlapTuple2 = ("chunk1", 190000, 390000) - overlapRange2 = Range() - overlapRange2.setFromTuple(overlapTuple2) - - expDistance = 0 - obsDistance = overlapRange1.getDistance(overlapRange2) - - self.assertEquals(expDistance, obsDistance) - - def test_getDistance_on_range1_on_plus_strand_included_in_range2_on_neg_strand(self): - tuple1 = ("chunk1", 220000, 250000) - range1 = Range() - range1.setFromTuple(tuple1) - - tuple2 = ("chunk1", 390000, 190000) - range2 = Range() - range1.setFromTuple(tuple2) - - expDistance = -1 - obsDistance = range1.getDistance(range2) - - self.assertEquals(expDistance, obsDistance) - - def test_getDistance_range1_after_range2(self): - tuple1 = ("chunk1", 390000, 590000) - range1 = Range() - range1.setFromTuple(tuple1) - - tuple2 = ("chunk1", 190000, 290000) - range2 = Range() - range2.setFromTuple(tuple2) - - expDistance = 100000 - obsDistance = range1.getDistance(range2) - - self.assertEquals(expDistance, obsDistance) - - def test_getDistance_range1_before_range2(self): - tuple1 = ("chunk1", 190000, 290000) - range1 = Range() - range1.setFromTuple(tuple1) - - tuple2 = ("chunk1", 390000, 590000) - range2 = Range() - range2.setFromTuple(tuple2) - - expDistance = 100000 - obsDistance = range1.getDistance(range2) - - self.assertEquals(expDistance, obsDistance) - - def test_getDistance_range1_after_range2_both_on_neg_strand(self): - tuple1 = ("chunk1", 590000, 390000) - range1 = Range() - range1.setFromTuple(tuple1) - - tuple2 = ("chunk1", 290000, 190000) - range2 = Range() - range2.setFromTuple(tuple2) - - expDistance = 100000 - obsDistance = range1.getDistance(range2) - - self.assertEquals(expDistance, obsDistance) - - def test_getDistance_range1_before_range2_both_on_neg_strand(self): - tuple1 = ("chunk1", 290000, 190000) - range1 = Range() - range1.setFromTuple(tuple1) - - tuple2 = ("chunk1", 590000, 390000) - range2 = Range() - range2.setFromTuple(tuple2) - - expDistance = 100000 - obsDistance = range1.getDistance(range2) - - self.assertEquals(expDistance, obsDistance) - - def test_diff_on_no_overlapping_range(self): - range1 = Range("chunk1", 190000, 390000) - range2 = Range("chunk1", 490000, 590000) - - expRange1 = Range("chunk1",190000,390000) - expReturnedRange = Range("chunk1") - - obsReturnedRange = range1.diff(range2) - obsRange1 = range1 - - self.assertEquals(expRange1, obsRange1) - self.assertEquals(expReturnedRange, obsReturnedRange) - - def test_diff_on_different_chunks(self): - range1 = Range("chunk1", 190000, 390000) - range2 = Range("chunk2", 290000, 590000) - - expRange1 = Range("chunk1", 190000, 390000) - expReturnedRange = Range("chunk1") - - obsReturnedRange = range1.diff(range2) - obsRange1 = range1 - - self.assertEquals(expRange1, obsRange1) - self.assertEquals(expReturnedRange, obsReturnedRange) - - def test_diff_range1_before_range2(self): - range1 = Range("chunk1", 190000, 390000) - range2 = Range("chunk1", 290000, 590000) - - expRange1 = Range("chunk1", 190000, 289999) - expReturnedRange = Range("chunk1") - - obsReturnedRange = range1.diff(range2) - obsRange1 = range1 - - self.assertEquals(expRange1, obsRange1) - self.assertEquals(expReturnedRange, obsReturnedRange) - - def test_diff_range1_before_range2_range1_on_neg_strand(self): - range1 = Range("chunk1", 390000, 190000) - range2 = Range("chunk1", 290000, 590000) - - expRange1 = Range("chunk1", 289999, 190000) - expReturnedRange = Range("chunk1") - - obsReturnedRange = range1.diff(range2) - obsRange1 = range1 - - self.assertEquals(expRange1, obsRange1) - self.assertEquals(expReturnedRange, obsReturnedRange) - - def test_diff_range2_included_in_range1(self): - range1 = Range("chunk1", 190000, 590000) - range2 = Range("chunk1", 290000, 390000) - - expRange1 = Range("chunk1", 190000, 289999) - expReturnedRange = Range("chunk1", 390001, 590000) - - obsReturnedRange = range1.diff(range2) - obsRange1 = range1 - - self.assertEquals(expRange1, obsRange1) - self.assertEquals(expReturnedRange, obsReturnedRange) - - def test_diff_range2_included_in_range1_range1_on_reverse_strand(self): - range1 = Range("chunk1", 590000, 190000) - range2 = Range("chunk1", 290000, 390000) - - expRange1 = Range("chunk1", 289999, 190000) - expReturnedRange = Range("chunk1", 590000, 390001) - - obsReturnedRange = range1.diff(range2) - obsRange1 = range1 - - self.assertEquals(expRange1, obsRange1) - self.assertEquals(expReturnedRange, obsReturnedRange) - - def test_diff_range1_included_in_range2(self): - range1 = Range("chunk1", 390000, 490000) - range2 = Range("chunk1", 290000, 590000) - - expRange1 = Range("chunk1",0,0) - expReturnedRange = Range("chunk1") - - obsReturnedRange = range1.diff(range2) - obsRange1 = range1 - - self.assertEquals(expRange1, obsRange1) - self.assertEquals(expReturnedRange, obsReturnedRange) - - def test_diff_range1_after_range2(self): - range1 = Range("chunk1", 390000, 590000) - range2 = Range("chunk1", 290000, 490000) - - expRange1 = Range("chunk1", 490001, 590000) - expReturnedRange = Range("chunk1") - - obsReturnedRange = range1.diff(range2) - obsRange1 = range1 - - self.assertEquals(expRange1, obsRange1) - self.assertEquals(expReturnedRange, obsReturnedRange) - - def test_diff_range1_after_range2_range1_on_neg_strand(self): - range1 = Range("chunk1", 590000, 390000) - range2 = Range("chunk1", 290000, 490000) - - expRange1 = Range("chunk1", 590000, 490001) - expReturnedRange = Range("chunk1") - - obsReturnedRange = range1.diff(range2) - obsRange1 = range1 - - self.assertEquals(expRange1, obsRange1) - self.assertEquals(expReturnedRange, obsReturnedRange) - - def test_getIdx(self): - self.assertEqual(getIdx(1000,3),1000001) - self.assertEqual(getIdx(999,3),1000000) - self.assertEqual(getIdx(2000,3),1000002) - self.assertEqual(getIdx(2000,4),2000000) - self.assertEqual(getIdx(2000,5),3000000) - self.assertEqual(getIdx(20000000,6),4000000) - self.assertEqual(getIdx(20000000,5),3000200) - self.assertEqual(getIdx(20000000,4),2002000) - self.assertEqual(getIdx(20000000,3),1020000) - - def test_getBin_bin_level_9(self): - tuple1 = ("chunk1", 190000000, 390000000) - range1 =Range() - range1.setFromTuple(tuple1) - - expRes = 100000000.0 - obsRes = range1.getBin() - - self.assertEquals(expRes, obsRes) - - def test_getBin_bin_level_8(self): - tuple1 = ("chunk1", 19000000, 39000000) - range1 =Range() - range1.setFromTuple(tuple1) - - expRes = 100000000.0 - obsRes = range1.getBin() - - self.assertEquals(expRes, obsRes) - - def test_getBin_bin_level_7(self): - tuple1 = ("chunk1", 1900000, 3900000) - range1 =Range() - range1.setFromTuple(tuple1) - - expRes = 10000000.0 - obsRes = range1.getBin() - - self.assertEquals(expRes, obsRes) - - def test_getBin_bin_level_6(self): - tuple1 = ("chunk1", 190000, 390000) - range1 =Range() - range1.setFromTuple(tuple1) - - expRes = 1000000.0 - obsRes = range1.getBin() - - self.assertEquals(expRes, obsRes) - - def test_getBin_bin_level_5(self): - tuple = ("chunk1", 19000, 39000) - range =Range() - range.setFromTuple(tuple) - expRes = 100000.0 - obsRes = range.getBin() - - self.assertEquals(expRes, obsRes) - - def test_getBin_bin_level_4(self): - tuple = ("chunk1", 1900, 3900) - range =Range() - range.setFromTuple(tuple) - - expRes = 10000.0 - obsRes = range.getBin() - - self.assertEquals(expRes, obsRes) - - def test_getBin_bin_level_3(self): - tuple = ("chunk1", 190, 390) - range =Range() - range.setFromTuple(tuple) - - expRes = 1000.0 - obsRes = range.getBin() - - self.assertEquals(expRes, obsRes) - - def test_getBin_bin_level_2(self): - tuple = ("chunk1", 19, 39) - range =Range() - range.setFromTuple(tuple) - - expRes = 1000.0 - obsRes = range.getBin() - - self.assertEquals(expRes, obsRes) - - def test_getBin_bin_level_1(self): - tuple = ("chunk1", 1, 3) - range =Range() - range.setFromTuple(tuple) - - expRes = 1000.0 - obsRes = range.getBin() - - self.assertEquals(expRes, obsRes) - - - def test_getBin_function(self): - expBin = 2L - obsBin = getBin(200, 2) - - self.assertEquals(expBin, obsBin) - - def test_findIdx(self): - o = Range() - o.setFromString( "chunk1\t1000\t2000\n" ) - self.assertEqual(o.findIdx(),2000000) - - o.setFromString( "chunk1\t2000\t1000\n" ) - self.assertEqual(o.findIdx(),2000000) - - o.setFromString( "chunk1\t200\t999\n" ) - self.assertEqual(o.findIdx(),1000000) - - o.setFromString( "chunk1\t1\t20000000\n" ) - self.assertEqual(o.findIdx(),4000000) - - -test_suite = unittest.TestSuite() -test_suite.addTest( unittest.makeSuite( Test_Range ) ) -if __name__ == "__main__": - unittest.TextTestRunner(verbosity=2).run( test_suite )
--- a/commons/core/coord/test/Test_Set.py Mon Apr 29 03:26:07 2013 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,282 +0,0 @@ -# Copyright INRA (Institut National de la Recherche Agronomique) -# http://www.inra.fr -# http://urgi.versailles.inra.fr -# -# This software is governed by the CeCILL license under French law and -# abiding by the rules of distribution of free software. You can use, -# modify and/ or redistribute the software under the terms of the CeCILL -# license as circulated by CEA, CNRS and INRIA at the following URL -# "http://www.cecill.info". -# -# As a counterpart to the access to the source code and rights to copy, -# modify and redistribute granted by the license, users are provided only -# with a limited warranty and the software's author, the holder of the -# economic rights, and the successive licensors have only limited -# liability. -# -# In this respect, the user's attention is drawn to the risks associated -# with loading, using, modifying and/or developing or reproducing the -# software by the user in light of its specific status of free software, -# that may mean that it is complicated to manipulate, and that also -# therefore means that it is reserved for developers and experienced -# professionals having in-depth computer knowledge. Users are therefore -# encouraged to load and test the software's suitability as regards their -# requirements in conditions enabling the security of their systems and/or -# data to be ensured and, more generally, to use and operate it in the -# same conditions as regards security. -# -# The fact that you are presently reading this means that you have had -# knowledge of the CeCILL license and that you accept its terms. - - -import unittest -import os -from commons.core.coord.Set import Set -from commons.core.coord.Map import Map - - -class Test_Set( unittest.TestCase ): - - def test__eq__sets_equals(self): - set1 = Set( 1, "set1", "seq1", 1, 2 ) - set2 = Set( 1, "set1", "seq1", 1 ,2 ) - self.assertEquals( set1, set2 ) - - def test__eq__sets_not_equals_ids(self): - set1 = Set( 1, "set1", "seq1", 1, 2 ) - set2 = Set( 2, "set1", "seq1", 1 ,2 ) - self.assertNotEquals( set1, set2 ) - - def test__eq__sets_not_equals_name(self): - set1 = Set( 1, "set1", "seq1", 1, 2 ) - set2 = Set( 1, "set2", "seq1", 1 ,2 ) - self.assertNotEquals( set1, set2 ) - - def test__eq__on_empty_set(self): - set1 = Set() - set2 = Set() - self.assertEquals( set1, set2 ) - - def test_setFromTuple_equals_instances(self): - tuple = ( 1, "set1", "seq1", 1, 2 ) - obsSet = Set() - obsSet.setFromTuple(tuple) - expSet = Set( 1, "set1", "seq1", 1, 2 ) - self.assertEquals( expSet, obsSet ) - - def test_setFromTuple_not_equals_instances(self): - tuple = ( 1, "set1", "seq1", 1, 2 ) - obsSet = Set() - obsSet.setFromTuple(tuple) - expSet = Set( 2, "set1", "seq1", 1, 2 ) - self.assertNotEquals( expSet, obsSet ) - - def test_read_empty_line_file(self): - fileName = "dummyFile" - - os.system(" touch " + fileName) - - fileHandler = open(fileName, "r") - - obsSet = Set() - - obsRes = obsSet.read( fileHandler ) - expRes = 0 - - fileHandler.close() - os.remove(fileName) - - self.assertEquals( expRes, obsRes ) - - def test_read_one_line_file(self): - line = ( "1\tset1\tseq1\t1\t2" ) - fileName = "dummyFile" - - fileHandler = open( fileName, "w" ) - fileHandler.write( line ) - fileHandler.close() - - fileHandler = open( fileName, "r" ) - - tuple = line.split("\t") - expSet = Set() - expSet.setFromTuple(tuple) - - obsSet = Set() - - expRes = 1 - obsRes = obsSet.read(fileHandler) - - fileHandler.close() - os.remove(fileName) - self.assertEquals( expRes, obsRes ) - self.assertEquals( expSet, obsSet ) - - def test_read_two_line_file(self): - line1 = ( "1\tset1\tseq1\t1\t2\n" ) - line2 = ( "2\tset2\tseq2\t3\t4" ) - fileName = "dummyFile" - - fileHandler = open( fileName, "w" ) - fileHandler.write( line1 ) - fileHandler.write( line2 ) - fileHandler.close() - - tuple1 = line1.split("\t") - tuple2 = line2.split("\t") - - expSet1 = Set() - expSet2 = Set() - - expSet1.setFromTuple(tuple1) - expSet2.setFromTuple(tuple2) - - expSetList = [ expSet1, expSet2 ] - expResList = [ 1, 1 ] - - fileHandler = open( fileName, "r" ) - - obsSet1 = Set() - obsSet2 = Set() - - obsRes1 = obsSet1.read(fileHandler) - obsRes2 = obsSet2.read(fileHandler) - - obsSetList= [ obsSet1, obsSet2 ] - obsResList = [ obsRes1, obsRes2 ] - - fileHandler.close() - os.remove(fileName) - - self.assertEquals( expSetList, obsSetList ) - self.assertEquals( expResList, obsResList ) - - def test_merge_first_id_greater_than_second_id(self): - firstSet = Set( 2, "set1", "seq1", 10, 40 ) - secondSet = Set( 1, "set2", "seq1", 20, 60 ) - - firstSet.merge( secondSet ) - - expSet = Set( 1, "set1", "seq1", 10, 60) - obsSet = firstSet - - self.assertEquals( expSet, obsSet) - - def test_merge_first_id_smaller_than_second_id(self): - firstSet = Set( 1, "set1", "seq1", 10, 40 ) - secondSet = Set( 2, "set2", "seq1", 20, 60 ) - - firstSet.merge( secondSet ) - - expSet = Set( 1, "set1", "seq1", 10, 60) - obsSet = firstSet - - self.assertEquals( expSet, obsSet) - - def test_merge_first_id_equals_second_id(self): - firstSet = Set( 1, "set1", "seq1", 10, 40 ) - secondSet = Set( 1, "set2", "seq1", 20, 60 ) - - firstSet.merge( secondSet ) - - expSet = Set( 1, "set1", "seq1", 10, 60) - obsSet = firstSet - - self.assertEquals( expSet, obsSet) - - def test_merge_different_seqnames(self): - firstSet = Set( 2, "set1", "seq1", 10, 40 ) - secondSet = Set( 1, "set1", "seq2", 20, 60 ) - expSet = Set( 2, "set1", "seq1", 10, 40 ) - firstSet.merge( secondSet ) - obsSet = firstSet - self.assertEquals( expSet, obsSet ) - - def test_diff_on_empty_sets(self): - firstSet = Set() - firstSet.seqname = "seq1" - secondSet = Set() - secondSet.seqname = "seq2" - - obsSet = firstSet.diff( secondSet ) - expSet = Set() - - self.assertEquals( expSet, obsSet ) - - def test_diff(self): - firstSet = Set( 2, "set1", "seq1", 10, 80 ) - secondSet = Set( 1, "set2", "seq1", 20, 60 ) - - expSet1 = Set( 2, "set1", "seq1", 10, 19 ) - expSet2 = Set( 2, "set1", "seq1", 61, 80 ) - - obsSet2 = firstSet.diff( secondSet ) - obsSet1 = firstSet - - self.assertEquals( expSet1, obsSet1 ) - self.assertEquals( expSet2, obsSet2 ) - - def test_diff_reverse(self): - firstSet = Set( 2, "set1", "seq1", 20, 60 ) - secondSet = Set( 1, "set2", "seq1", 10, 80 ) - - expSet1 = Set( 2, "set1", "seq1", 0, 0 ) - expSet2 = Set( ) - - obsSet2 = firstSet.diff( secondSet ) - obsSet1 = firstSet - - self.assertEquals( expSet1, obsSet1 ) - self.assertEquals( expSet2, obsSet2 ) - - def test_diff_list1_overlap_end_list2(self): - firstSet = Set( 2, "set1", "seq1", 20, 100 ) - secondSet = Set( 1, "set2", "seq1", 10, 80 ) - - expSet1 = Set( 2, "set1", "seq1", 81, 100 ) - expSet2 = Set( ) - - obsSet2 = firstSet.diff( secondSet ) - obsSet1 = firstSet - - self.assertEquals( expSet1, obsSet1 ) - self.assertEquals( expSet2, obsSet2 ) - - def test_diff_with_empty_set1(self): - set2 = Set( 1, "set1", "seq1", 2, 45 ) - set1 = Set( ) - - expSet1 = Set( ) - expSet2 = Set( ) - - obsSet2 = set1.diff( set2 ) - obsSet1 = set1 - - self.assertEquals( expSet1, obsSet1 ) - self.assertEquals( expSet2, obsSet2 ) - - def test_diff_list2_overlap_end_list1(self): - firstSet = Set( 2, "set1", "seq1", 10, 70 ) - secondSet = Set( 1, "set2", "seq1", 40, 100 ) - - expSet1 = Set( 2, "set1", "seq1", 10, 39 ) - expSet2 = Set( ) - - obsSet2 = firstSet.diff( secondSet ) - obsSet1 = firstSet - - self.assertEquals( expSet1, obsSet1 ) - self.assertEquals( expSet2, obsSet2 ) - - def test_set2map(self): - set = Set( 1, "set", "seq", 1, 2 ) - - expMap = Map( "set::1", "seq", 1, 2 ) - obsMap = set.set2map() - - self.assertEquals( expMap, obsMap ) - -test_suite = unittest.TestSuite() -test_suite.addTest( unittest.makeSuite( Test_Set ) ) -if __name__ == "__main__": - unittest.TextTestRunner(verbosity=2).run( test_suite )
--- a/commons/core/coord/test/Test_SetUtils.py Mon Apr 29 03:26:07 2013 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1689 +0,0 @@ -# Copyright INRA (Institut National de la Recherche Agronomique) -# http://www.inra.fr -# http://urgi.versailles.inra.fr -# -# This software is governed by the CeCILL license under French law and -# abiding by the rules of distribution of free software. You can use, -# modify and/ or redistribute the software under the terms of the CeCILL -# license as circulated by CEA, CNRS and INRIA at the following URL -# "http://www.cecill.info". -# -# As a counterpart to the access to the source code and rights to copy, -# modify and redistribute granted by the license, users are provided only -# with a limited warranty and the software's author, the holder of the -# economic rights, and the successive licensors have only limited -# liability. -# -# In this respect, the user's attention is drawn to the risks associated -# with loading, using, modifying and/or developing or reproducing the -# software by the user in light of its specific status of free software, -# that may mean that it is complicated to manipulate, and that also -# therefore means that it is reserved for developers and experienced -# professionals having in-depth computer knowledge. Users are therefore -# encouraged to load and test the software's suitability as regards their -# requirements in conditions enabling the security of their systems and/or -# data to be ensured and, more generally, to use and operate it in the -# same conditions as regards security. -# -# The fact that you are presently reading this means that you have had -# knowledge of the CeCILL license and that you accept its terms. - - -import unittest -import os -import time -from commons.core.coord.Set import Set -from commons.core.coord.Map import Map -from commons.core.coord.SetUtils import SetUtils -from commons.core.utils.FileUtils import FileUtils - - -class Test_SetUtils( unittest.TestCase ): - - def test_changeIdInList_on_empty_list(self): - lSets = [] - SetUtils.changeIdInList( lSets , 1 ) - obsLSets = lSets - expLSets = [] - self.assertEquals( expLSets , obsLSets ) - - def test_changeIdInList_on_list_size_one(self): - set1 = Set( 1, "set1", "seq1", 1, 2 ) - lSets = [ set1 ] - SetUtils.changeIdInList( lSets , 9 ) - obsLSets = lSets - set1 = Set( 9, "set1", "seq1", 1, 2 ) - expLSets = [ set1 ] - self.assertEquals( expLSets , obsLSets ) - - def test_changeIdInList(self): - set1 = Set( 1, "set1", "seq1", 1, 2 ) - set2 = Set( 2, "set2", "seq2", 2, 3 ) - lSets = [ set1, set2 ] - SetUtils.changeIdInList( lSets , 9 ) - obsLSets = lSets - set1 = Set( 9, "set1", "seq1", 1, 2 ) - set2 = Set( 9, "set2", "seq2", 2, 3 ) - expLSets = [ set1, set2 ] - - self.assertEquals( expLSets , obsLSets ) - - def test_getOverlapLengthBetweenLists_all_list_are_empty (self): - lSets1 = [] - lSets2 = [] - - expOverlapSize = 0 - obsOverlapSize = SetUtils.getOverlapLengthBetweenLists( lSets1, lSets2 ) - - self.assertEquals( expOverlapSize, obsOverlapSize ) - - def test_getOverlapLengthBetweenLists_list1_empty_list2_size_one (self): - lSets1 = [] - lSets2 = [ Set( 9, "set1", "seq1", 1, 2 ) ] - - expOverlapSize = 0 - obsOverlapSize = SetUtils.getOverlapLengthBetweenLists( lSets1, lSets2 ) - - self.assertEquals( expOverlapSize, obsOverlapSize ) - - def test_getOverlapLengthBetweenLists_list1_empty_list2_size_two (self): - lSets1 = [] - lSets2 = [ Set( 9, "set1", "seq1", 1, 2 ), Set( 9, "set2", "seq2", 2, 3 ) ] - - expOverlapSize = 0 - obsOverlapSize = SetUtils.getOverlapLengthBetweenLists( lSets1, lSets2 ) - - self.assertEquals( expOverlapSize, obsOverlapSize ) - - def test_getOverlapLengthBetweenLists_list1_size_one_list2_empty (self): - lSets1 = [ Set( 9, "set1", "seq1", 1, 2 ) ] - lSets2 = [] - - expOverlapSize = 0 - obsOverlapSize = SetUtils.getOverlapLengthBetweenLists( lSets1, lSets2 ) - - self.assertEquals( expOverlapSize, obsOverlapSize ) - - def test_getOverlapLengthBetweenLists_list1_size_one_list2_size_one_without_overlapp (self): - lSets1 = [ Set( 1, "set1", "seq1", 1, 2 ) ] - lSets2 = [ Set( 2, "set2", "seq2", 2, 3 ) ] - - expOverlapSize = 0 - obsOverlapSize = SetUtils.getOverlapLengthBetweenLists( lSets1, lSets2 ) - - self.assertEquals( expOverlapSize, obsOverlapSize ) - - def test_getOverlapLengthBetweenLists_list1_size_one_list2_size_one_with_overlap_size_1 (self): - lSets1 = [ Set( 1, "set1", "seq1", 1, 2 ) ] - lSets2 = [ Set( 2, "set1", "seq1", 2, 3 ) ] - - expOverlapSize = 1 - obsOverlapSize = SetUtils.getOverlapLengthBetweenLists( lSets1, lSets2 ) - - self.assertEquals( expOverlapSize, obsOverlapSize ) - - def test_getOverlapLengthBetweenLists_list1_size_one_list2_size_one_with_overlap_size_2 (self): - lSets1 = [ Set( 1, "set1", "seq1", 1, 2 ) ] - lSets2 = [ Set( 2, "set1", "seq1", 1, 3 ) ] - - expOverlapSize = 2 - obsOverlapSize = SetUtils.getOverlapLengthBetweenLists( lSets1, lSets2 ) - - self.assertEquals( expOverlapSize, obsOverlapSize ) - - def test_getOverlapLengthBetweenLists_list1_size_one_list2_size_two_without_overlap_sets_in_list1_greater_than_sets_in_list2 (self): - lSets1 = [ Set( 1, "set1", "seq1", 4, 6 ) ] - lSets2 = [ Set( 2, "set2", "seq1", 2, 3 ), Set( 3, "set3", "seq3", 1, 2 ) ] - - expOverlapSize = 0 - obsOverlapSize = SetUtils.getOverlapLengthBetweenLists( lSets1, lSets2 ) - - self.assertEquals( expOverlapSize, obsOverlapSize ) - - def test_getOverlapLengthBetweenLists_list1_size_one_list2_size_two_with_overlap_sets_in_list1_greater_than_sets_in_list2 (self): - lSets1 = [ Set( 1, "set1", "seq1", 4, 6 ) ] - lSets2 = [ Set( 2, "set2", "seq2", 2, 3 ), Set( 3, "set3", "seq1", 4, 5 ) ] - - expOverlapSize = 2 - obsOverlapSize = SetUtils.getOverlapLengthBetweenLists( lSets1, lSets2 ) - - self.assertEquals( expOverlapSize, obsOverlapSize ) - - def test_getOverlapLengthBetweenLists_list1_size_one_list2_size_two_with_overlap_on_redundant_position (self): - lSets1 = [ Set( 1, "set1", "seq1", 1, 2 ) ] - lSets2 = [ Set( 2, "set2", "seq1", 2, 3 ), Set( 3, "set1", "seq1", 1, 2 ) ] - - expOverlapSize = 3 - obsOverlapSize = SetUtils.getOverlapLengthBetweenLists( lSets1, lSets2 ) - - self.assertEquals( expOverlapSize, obsOverlapSize ) - - def test_getOverlapLengthBetweenLists_list1_size_two_list2_empty (self): - lSets1 = [ Set( 1, "set1", "seq1", 1, 2 ), Set( 2, "set2", "seq2", 2, 3 ) ] - lSets2 = [] - - expOverlapSize = 0 - obsOverlapSize = SetUtils.getOverlapLengthBetweenLists( lSets1, lSets2 ) - - self.assertEquals( expOverlapSize, obsOverlapSize ) - - def test_getOverlapLengthBetweenLists_on_different_seq_names (self): - lSets1 = [ Set( 1, "set1", "seq1", 1, 2 ), Set( 2, "set2", "seq2", 2, 3 ) ] - lSets2 = [ Set( 3, "set1", "seq2", 4, 5 ), Set( 5, "set2", "seq4", 2, 3 ) ] - - expOverlapSize = 0 - obsOverlapSize = SetUtils.getOverlapLengthBetweenLists( lSets1, lSets2 ) - - self.assertEquals( expOverlapSize, obsOverlapSize ) - - def test_getOverlapLengthBetweenLists_list1_size_two_list2_size_two_with_overlap (self): - lSets1 = [ Set( 1, "set1", "seq1", 1, 6 ), Set( 2, "set2", "seq2", 2, 3 ) ] - lSets2 = [ Set( 3, "set1", "seq1", 1, 2 ), Set( 2, "set2", "seq3", 2, 3 ) ] - - expOverlapSize = 2 - obsOverlapSize = SetUtils.getOverlapLengthBetweenLists( lSets1, lSets2 ) - - self.assertEquals( expOverlapSize, obsOverlapSize ) - - def test_areSetsOverlappingBetweenLists_list2_empty(self): - tuple1 = ("1","chr1","seq1", "100","110") - tuple2 = ("1","chr1","seq1", "200","220") - tuple3 = ("1","chr1","seq1", "300","330") - setList1 = self._makeSetListFromTupleList([tuple1, tuple2, tuple3]) - - setList2 = [] - - expRes = False - obsRes = SetUtils.areSetsOverlappingBetweenLists( setList1, setList2 ) - - self.assertEquals( expRes, obsRes ) - - def test_areSetsOverlappingBetweenLists_list2_size1(self): - tuple1 = ("1","chr1","seq1", "9","11") - tuple2 = ("1","chr1","seq1", "20","22") - tuple3 = ("1","chr1","seq1", "30","33") - setList1 = self._makeSetListFromTupleList( [ tuple1, tuple2, tuple3 ] ) - - tuple11 = ("1","chr1", "seq1", "8","11") - setList2 = self._makeSetListFromTupleList( [ tuple11 ] ) - - expRes = True - obsRes = SetUtils.areSetsOverlappingBetweenLists( setList1, setList2 ) - - self.assertEquals( expRes, obsRes ) - - def test_areSetsOverlappingBetweenLists_list1_greater_list2(self): - tuple1 = ("1","chr1","seq1","100","110") - tuple2 = ("1","chr1","seq1","200","220") - tuple3 = ("1","chr1","seq1","300","330") - setList1 = self._makeSetListFromTupleList( [ tuple1, tuple2, tuple3 ] ) - - tuple11 = ("1","chr1","seq1", "10","11") - tuple22 = ("1","chr1","seq1", "20","22") - tuple33 = ("1","chr1","seq1", "30","33") - setList2 = self._makeSetListFromTupleList( [ tuple11, tuple22, tuple33 ] ) - - expRes = False - obsRes = SetUtils.areSetsOverlappingBetweenLists( setList1, setList2 ) - - self.assertEquals( expRes, obsRes ) - - def test_areSetsOverlappingBetweenLists_unordered_first_item_of_list1_greater_second_item_smaller(self): - tuple1 = ("1","chr1","seq1","400","440") - tuple2 = ("1","chr1","seq1","1","11") - setList1 = self._makeSetListFromTupleList( [ tuple1, tuple2 ] ) - - tuple11 = ("1","chr1","seq1","15","17") - tuple22 = ("1","chr1","seq1", "20","22") - tuple33 = ("1","chr1","seq1","30","33") - setList2 = self._makeSetListFromTupleList( [ tuple11, tuple22, tuple33 ] ) - - expRes = False - obsRes = SetUtils.areSetsOverlappingBetweenLists( setList1, setList2 ) - - self.assertEquals( expRes, obsRes ) - - def test_areSetsOverlappingBetweenLists_unorderd_second_item_of_list1_overlap_first_item(self): - tuple1 = ("1","chr1","seq1","400","440") - tuple2 = ("1","chr1","seq1", "1","18") - setList1 = self._makeSetListFromTupleList( [ tuple1, tuple2 ] ) - - tuple11 = ("1","chr1","seq1","15","17") - tuple22 = ("1","chr1","seq1","20","22") - tuple33 = ("1","chr1","seq1","30","33") - setList2 = self._makeSetListFromTupleList( [ tuple11, tuple22, tuple33 ] ) - - expRes = True - obsRes = SetUtils.areSetsOverlappingBetweenLists( setList1, setList2 ) - - self.assertEquals( expRes, obsRes ) - - def test_areSetsOverlappingBetweenLists_last_item_list1_overlap_last_item_list2(self): - tuple1 = ("1","chr1","seq1","400","440") - tuple2 = ("1","chr1","seq1","320","340") - pathList1 = self._makeSetListFromTupleList( [ tuple1, tuple2 ] ) - - tuple11 = ("1","chr1","seq1","100","110") - tuple22 = ("1","chr1","seq1","200","220") - tuple33 = ("1","chr1","seq1","300","330") - pathList2 = self._makeSetListFromTupleList( [ tuple11, tuple22, tuple33 ] ) - - expRes = True - obsRes = SetUtils.areSetsOverlappingBetweenLists( pathList1, pathList2 ) - - self.assertEquals( expRes, obsRes ) - - def test_getCumulLength_empty_list(self): - lSets = [] - - expSize = 0 - obsSize = SetUtils.getCumulLength( lSets ) - - self.assertEquals( expSize, obsSize ) - - def test_getCumulLength_1_item(self): - lSets = [ Set( 1, "set1", "seq1", 1, 6 ) ] - - expSize = 6 - obsSize = SetUtils.getCumulLength( lSets ) - - self.assertEquals( expSize, obsSize ) - - def test_getCumulLength_2_items(self): - lSets = [ Set( 1, "set1", "seq1", 1, 6 ), Set( 1, "set1", "seq1", 1, 2 ) ] - - expSize = 8 - obsSize = SetUtils.getCumulLength( lSets ) - - self.assertEquals( expSize, obsSize ) - - def test_getCumulLength_complex(self): - set8 = Set(498, "(TACATA)25", "Mela_Blaster_Grouper_611_MAP_20", 17, 348) - set5 = Set(502, "(GGAGA)2", "Mela_Blaster_Grouper_611_MAP_20", 356, 366) - set6 = Set(503, "(TTTAAAGAACCC)2", "Mela_Blaster_Grouper_611_MAP_20", 433, 457) - set7 = Set(504, "(TATAA)2", "Mela_Blaster_Grouper_611_MAP_20", 484, 495) - lSets = [ set8, set5, set6, set7 ] - expSize = 380 - obsSize = SetUtils.getCumulLength( lSets ) - - self.assertEquals( expSize, obsSize ) - - def test_getListBoundaries_one_set(self): - lSets = [ Set( 1, "set1", "seq1", 3, 8 ) ] - - expTuple = ( 3, 8 ) - obsTuple = SetUtils.getListBoundaries( lSets ) - - self.assertEquals( expTuple, obsTuple ) - - def test_getListBoundaries_two_sets(self): - lSets = [ Set( 1, "set1", "seq1", 3, 8 ), Set( 2, "set2", "seq2", 5, 10 ) ] - - expTuple = ( 3, 10 ) - obsTuple = SetUtils.getListBoundaries( lSets ) - - self.assertEquals( expTuple, obsTuple ) - - def test_writeListInFile_empty_list(self): - lSets = [ ] - expFileName = "expFileName" - fileHandle = open(expFileName, "w") - fileHandle.close() - - obsFileName = "obsFileName" - fileHandle = open(obsFileName, "w") - SetUtils.writeListInFile(lSets, obsFileName, "w") - fileHandle.close() - - self.assertTrue( FileUtils.are2FilesIdentical( expFileName, obsFileName ) ) - - os.remove(obsFileName) - os.remove(expFileName) - - def test_writeListInFile_list_one_set(self): - lSets = [ Set( 1, "set1", "seq1", 3, 8 ) ] - line = "1\tset1\tseq1\t3\t8\n" - expFileName = "expFileName" - - fileHandle = open(expFileName, "w") - fileHandle.write(line) - fileHandle.close() - - obsFileName = "obsFileName" - fileHandle = open(obsFileName, "w") - SetUtils.writeListInFile(lSets, obsFileName, "w") - fileHandle.close() - - self.assertTrue( FileUtils.are2FilesIdentical( expFileName, obsFileName ) ) - - os.remove(obsFileName) - os.remove(expFileName) - - - def test_getDictOfListsWithIdAsKey_empty_list( self ): - lSets = [] - expDic = {} - obsDic = SetUtils.getDictOfListsWithIdAsKey( lSets ) - self.assertEquals( expDic, obsDic ) - - - def test_getDictOfListsWithIdAsKey_one_set( self ): - lSets = [ Set( 2, "set2", "seq2", 3, 8 ) ] - expDic = { 2: [ Set( 2, "set2", "seq2", 3, 8 ) ] } - obsDic = SetUtils.getDictOfListsWithIdAsKey( lSets ) - self.assertEquals( expDic, obsDic ) - - - def test_getDictOfListsWithIdAsKey_two_sets_with_same_id( self ): - lSets = [ Set( 2, "set2", "seq2", 10, 50 ), Set( 2, "set2", "seq2", 3, 8 )] - expDic = { 2: [Set( 2, "set2", "seq2", 10, 50 ), Set( 2, "set2", "seq2", 3, 8 )] } - obsDic = SetUtils.getDictOfListsWithIdAsKey( lSets ) - self.assertEquals( expDic, obsDic ) - - - def test_getDictOfListsWithIdAsKey_sets_with_3_different_id( self ): - set1 = Set( 1, "set2", "seq2", 10, 50 ) - set2 = Set( 1, "set2", "seq2", 20, 50 ) - set3 = Set( 2, "set2", "seq2", 30, 50 ) - set4 = Set( 2, "set2", "seq2", 40, 50 ) - set5 = Set( 3, "set2", "seq2", 1, 2 ) - lSets = [ set1, set2, set3, set4, set5 ] - expDic = { 1: [set1, set2], - 2: [set3, set4], - 3: [set5] } - obsDic = SetUtils.getDictOfListsWithIdAsKey( lSets ) - self.assertEquals( expDic, obsDic ) - - - def test_getDictOfListsWithIdAsKeyFromFile(self): - setFile = "dummySetFile" - setFileHandler = open( setFile, "w" ) - setFileHandler.write( "1\tseq31\tchr1\t151\t250\n" ) - setFileHandler.write( "2\tseq27\tchr2\t301\t500\n" ) - setFileHandler.write( "2\tseq27\tchr2\t601\t650\n" ) - setFileHandler.close() - - dExp = { 1: [ Set( 1, "seq31", "chr1", 151, 250 ) ], - 2: [ Set( 2, "seq27", "chr2", 301, 500 ), - Set( 2, "seq27", "chr2", 601, 650 ) ] } - dObs = SetUtils.getDictOfListsWithIdAsKeyFromFile( setFile ) - - self.assertEquals( dExp, dObs ) - - os.remove( setFile ) - - - def test_getMapListFromSetList_empty_list(self): - lSets = [] - - expLMap = [] - obsLMap = SetUtils.getMapListFromSetList(lSets) - - self.assertEquals(expLMap, obsLMap) - - def test_getMapListFromSetList_one_set(self): - lSets = [ Set( 1, "set", "seq1", 1, 6 )] - map1 = Map("set::1","seq1",1,6) - - expLMap = [ map1 ] - obsLMap = SetUtils.getMapListFromSetList(lSets) - - self.assertEquals(expLMap, obsLMap) - - def test_getMapListFromSetList_two_sets(self): - lSets = [ Set( 1, "set", "seq1", 1, 6 ), Set( 2, "set", "seq2", 3, 8 ) ] - map1 = Map("set::1","seq1",1,6) - map2 = Map("set::2","seq2",3,8) - - expLMap = [ map1, map2 ] - obsLMap = SetUtils.getMapListFromSetList(lSets) - - self.assertEquals(expLMap, obsLMap) - - def test_getSetListFromMapList_empty_list(self): - lMap =[] - expLSets = [] - obsLSets = SetUtils.getSetListFromMapList(lMap) - - self.assertEquals(expLSets, obsLSets) - - def test_getSetListFromMapList_one_map(self): - map1 = Map( "map1","seq1",1,6) - lMap =[ map1 ] - expLSets = [ Set( 1, "map1", "seq1", 1, 6 ) ] - obsLSets = SetUtils.getSetListFromMapList(lMap) - - self.assertEquals(expLSets, obsLSets) - - def test_getSetListFromMapList_two_maps(self): - map1 = Map( "map1","seq1",1,6) - map2 = Map( "map2","seq2",3,8) - lMap =[ map1,map2 ] - expLSets = [ Set( 1, "map1", "seq1", 1, 6 ), Set( 2, "map2", "seq2", 3, 8 ) ] - obsLSets = SetUtils.getSetListFromMapList(lMap) - - self.assertEquals(expLSets, obsLSets) - - def test_getSetListFromMapList_list_with_one_empty_map(self): - map1 = Map( "map1","seq1",1,6) - map2 = Map() - lMap =[ map1,map2 ] - expLSets = [ Set( 1, "map1", "seq1", 1, 6 ), Set(2, ) ] - obsLSets = SetUtils.getSetListFromMapList(lMap) - - self.assertEquals(expLSets, obsLSets) - - def test_mergeSetsInList(self): - set1 = Set( 1, "set1", "seq1", 1, 6 ) - set2 = Set( 2, "set2", "seq1", 3, 6 ) - set3 = Set( 3, "set3", "seq1", 3, 5 ) - set4 = Set( 4, "set4", "seq1", 1, 2 ) - lSets = [ set1, set2, set3, set4 ] - - obsList = SetUtils.mergeSetsInList( lSets ) - expList = [ Set( 1, "set1", "seq1", 1, 6 ) ] - - self.assertEquals( expList, obsList ) - - - def test_mergeSetsInList_with_reverse_only(self): - set1 = Set( 1, "set1", "seq1", 6, 1 ) - set2 = Set( 2, "set2", "seq1", 6, 3 ) - set3 = Set( 3, "set3", "seq1", 5, 3 ) - set4 = Set( 4, "set4", "seq1", 2, 1 ) - lSets = [ set1, set2, set3, set4 ] - - obsList = SetUtils.mergeSetsInList( lSets ) - expList = [ Set( 1, "set1", "seq1", 6, 1 ) ] - - self.assertEquals( expList, obsList ) - - - def test_mergeSetsInList_with_direct_and_reverse(self): - set1 = Set( 1, "set1", "seq1", 6, 1 ) - set2 = Set( 2, "set2", "seq1", 6, 3 ) - set3 = Set( 3, "set3", "seq1", 3, 5 ) - set4 = Set( 4, "set4", "seq1", 2, 1 ) - lSets = [ set1, set2, set3, set4 ] - - obsList = SetUtils.mergeSetsInList( lSets ) - expList = [ set1 ] - - self.assertEquals( expList, obsList ) - - - def test_mergeSetsInList_with_empty_set(self): - set1 = Set( 1, "set1", "seq1", 1, 6 ) - set2 = Set() - set3 = Set( 3, "set3", "seq1", 3, 5 ) - set4 = Set( 4, "set4", "seq1", 1, 2 ) - lSets = [ set1, set2, set3, set4 ] - - obsList = SetUtils.mergeSetsInList( lSets ) - expList = [ set2, set1 ] - - self.assertEquals( expList, obsList ) - - - def test_mergeSetsInList_empty_list(self): - lSets = [] - - obsList = SetUtils.mergeSetsInList( lSets ) - expList = [] - - self.assertEquals( expList, obsList ) - - - def test_mergeSetsInList_one_set (self): - set1 = Set( 1, "set1", "seq1", 1, 6 ) - lSets = [ set1 ] - - obsLSets = SetUtils.mergeSetsInList( lSets ) - expLSets = [ set1 ] - - self.assertEquals( expLSets, obsLSets ) - - - def test_mergeSetsInList_diffSeqnames_without_overlapping(self): - set1 = Set( 1, "set1", "seq1", 1, 6 ) - set2 = Set( 1, "set2", "seq2", 11, 16 ) - lSets = [ set1, set2 ] - - obsLSets = SetUtils.mergeSetsInList( lSets ) - expLSets = [ set1, set2 ] - - self.assertEquals( expLSets, obsLSets ) - - - def test_mergeSetsInList_diffSeqnames_overlapping(self): - set1 = Set( 1, "set1", "seq1", 1, 6 ) - set2 = Set( 1, "set2", "seq2", 2, 5 ) - lSets = [ set1, set2 ] - - obsLSets = SetUtils.mergeSetsInList( lSets ) - expLSets = [ set1, set2 ] - - self.assertEquals( expLSets, obsLSets ) - - - def test_mergeSetsInList_sameSeqnames_without_overlapping(self): - set1 = Set( 1, "set1", "seq1", 1, 6 ) - set2 = Set( 1, "set2", "seq1", 11, 16 ) - lSets = [ set1, set2 ] - - obsLSets = SetUtils.mergeSetsInList( lSets ) - expLSets = [ set1, set2 ] - - self.assertEquals( expLSets, obsLSets ) - - def test_mergeSetsInList_complex(self): - set1 = Set(498, "(ACATATAATAA)10", "Mela_Blaster_Grouper_611_MAP_20", 77, 181) - set2 = Set(499, "(TACATA)25", "Mela_Blaster_Grouper_611_MAP_20", 17, 166) - set3 = Set(500, "(ATAAAATAC)26", "Mela_Blaster_Grouper_611_MAP_20", 94, 348) - set4 = Set(501, "(TAA)15", "Mela_Blaster_Grouper_611_MAP_20", 257, 303) - set5 = Set(502, "(GGAGA)2", "Mela_Blaster_Grouper_611_MAP_20", 356, 366) - set6 = Set(503, "(TTTAAAGAACCC)2", "Mela_Blaster_Grouper_611_MAP_20", 433, 457) - set7 = Set(504, "(TATAA)2", "Mela_Blaster_Grouper_611_MAP_20", 484, 495) - lSets = [ set1, set2, set3, set4, set5, set6, set7 ] - obsLSets = SetUtils.mergeSetsInList( lSets ) - - set8 = Set(498, "(TACATA)25", "Mela_Blaster_Grouper_611_MAP_20", 17, 348) - - expLSets = [ set8, set5, set6, set7 ] - - self.assertEquals( expLSets, obsLSets ) - - def test_getSetListUnjoined_listToKeep_empty_listToUnjoin_empty (self): - setListToKeep = [] - setListToUnjoin = [] - - obsLSets = SetUtils.getSetListUnjoined(setListToKeep, setListToUnjoin) - expLSets = [] - - self.assertEquals(expLSets, obsLSets) - - def test_getSetListUnjoined_listToKeep_empty (self): - setListToKeep = [] - - setUnjoin1 = Set( 1, "set", "seq", 1, 3 ) - setUnjoin2 = Set( 1, "set", "seq", 2, 3 ) - setUnjoin3 = Set( 1, "set", "seq", 5, 7 ) - setListToUnjoin = [ setUnjoin1, setUnjoin2, setUnjoin3 ] - - obsLSets = SetUtils.getSetListUnjoined(setListToKeep, setListToUnjoin) - expLSets = [ setListToUnjoin ] - - self.assertEquals(expLSets, obsLSets) - - def test_getSetListUnjoined_listToKeep_empty_listToUnjoin_size1 (self): - setListToKeep = [] - - setUnjoin = Set( 1, "set", "seq", 1, 3 ) - setListToUnjoin = [ setUnjoin ] - - obsLSets = SetUtils.getSetListUnjoined(setListToKeep, setListToUnjoin) - expLSets = [ setListToUnjoin ] - - self.assertEquals(expLSets, obsLSets) - - def test_getSetListUnjoined_listToKeep_size1_listToUnjoin_empty (self): - setKeep = Set( 1, "set", "seq", 1, 3 ) - setListToKeep = [ setKeep ] - - setListToUnjoin = [] - - obsLSets = SetUtils.getSetListUnjoined(setListToKeep, setListToUnjoin) - expLSets = [] - - self.assertEquals(expLSets, obsLSets) - - def test_getSetListUnjoined_listToKeep_size1_listToUnjoin_size1 (self): - setKeep = Set( 1, "set", "seq", 1, 3 ) - setListToKeep = [ setKeep ] - - setUnjoin = Set( 1, "set", "seq", 5, 9 ) - setListToUnjoin = [ setUnjoin ] - - obsLSets = SetUtils.getSetListUnjoined(setListToKeep, setListToUnjoin) - expLSets = [ setListToUnjoin ] - - self.assertEquals(expLSets, obsLSets) - - def test_getSetListUnjoined_listToKeep_size1_listToUnjoin_size2_noSplit_item_in_listToKeep_smaller_item_in_listToUnjoin (self): - setKeep = Set( 1, "set", "seq", 1, 3 ) - setListToKeep = [ setKeep ] - - setUnjoin1 = Set( 1, "set", "seq", 5, 9 ) - setUnjoin2 = Set( 1, "set", "seq", 11, 16 ) - setListToUnjoin = [ setUnjoin1, setUnjoin2 ] - - obsLSets = SetUtils.getSetListUnjoined(setListToKeep, setListToUnjoin) - expLSets = [ setListToUnjoin ] - - self.assertEquals(expLSets, obsLSets) - - def test_getSetListUnjoined_listToKeep_size1_listToUnjoin_size3_noSplit_item_in_listToKeep_smaller_item_in_listToUnjoin (self): - setKeep = Set( 1, "set", "seq", 1, 3 ) - setListToKeep = [ setKeep ] - - setUnjoin1 = Set( 1, "set", "seq", 5, 9 ) - setUnjoin2 = Set( 1, "set", "seq", 11, 16 ) - setUnjoin3 = Set( 1, "set", "seq", 21, 26 ) - setListToUnjoin = [ setUnjoin1, setUnjoin2, setUnjoin3 ] - - obsLSets = SetUtils.getSetListUnjoined(setListToKeep, setListToUnjoin) - expLSets = [ setListToUnjoin ] - - self.assertEquals(expLSets, obsLSets) - - def test_getSetListUnjoined_listToKeep_size1_listToUnjoin_size2_noSplit_item_in_listToUnjoin_smaller_item_in_listToKeep (self): - setKeep = Set( 1, "set", "seq", 10, 13 ) - setListToKeep = [ setKeep ] - - setUnjoin1 = Set( 1, "set", "seq", 5, 9 ) - setUnjoin2 = Set( 1, "set", "seq", 1, 3 ) - setListToUnjoin = [ setUnjoin1, setUnjoin2 ] - - obsLSets = SetUtils.getSetListUnjoined(setListToKeep, setListToUnjoin) - expLSets = [ SetUtils.getSetListSortedByIncreasingMinThenMax( setListToUnjoin ) ] - - self.assertEquals(expLSets, obsLSets) - - def test_getSetListUnjoined_listToKeep_size3_listToUnjoin_size2_oneSplit_item_in_listToKeep_smaller_item_in_listToUnjoin (self): - setKeep1 = Set( 1, "set", "seq", 1, 1 ) - setKeep2 = Set( 1, "set", "seq", 21, 30 ) - setKeep3 = Set( 1, "set", "seq", 61, 70 ) - setListToKeep = [ setKeep1, setKeep2, setKeep3 ] - - setUnjoin1 = Set( 1, "set", "seq", 41, 50 ) - setUnjoin2 = Set( 2, "set", "seq", 81, 90 ) - setListToUnjoin = [ setUnjoin1, setUnjoin2 ] - - expLSets = [ [ setUnjoin1 ], [ setUnjoin2 ] ] - - obsLSets = SetUtils.getSetListUnjoined(setListToKeep, setListToUnjoin) - - self.assertEquals(expLSets, obsLSets) - - def test_getSetListUnjoined_listToKeep_size3_listToUnjoin_size3_twoSplits_item_in_listToUnjoin_smaller_item_in_listToKeep(self): - setKeep1 = Set( 1, "set", "seq", 21, 30 ) - setKeep2 = Set( 1, "set", "seq", 41, 50 ) - setKeep3 = Set( 1, "set", "seq", 81, 90 ) - setListToKeep = [ setKeep1, setKeep2, setKeep3 ] - - setUnjoin1 = Set( 1, "set", "seq", 1, 10 ) - setUnjoin2 = Set( 2, "set", "seq", 61, 70 ) - setUnjoin3 = Set( 2, "set", "seq", 101, 110 ) - setListToUnjoin = [ setUnjoin1, setUnjoin2, setUnjoin3 ] - - expLSets = [ [ setUnjoin1 ], [ setUnjoin2 ], [ setUnjoin3 ] ] - - obsLSets = SetUtils.getSetListUnjoined( setListToKeep, setListToUnjoin ) - - self.assertEquals(expLSets, obsLSets) - - def test_getSetListUnjoined_listToKeep_size1_listToUnjoin_size2_split(self): - setKeep1 = Set( 1, "set", "seq", 51, 80 ) - setListToKeep = [ setKeep1 ] - - setUnjoin1 = Set( 1, "set", "seq", 21, 40 ) - setUnjoin2 = Set( 1, "set", "seq", 101, 150 ) - setListToUnjoin = [ setUnjoin1, setUnjoin2 ] - - expLSets = [ [setUnjoin1] , [setUnjoin2] ] - - obsLSets = SetUtils.getSetListUnjoined( setListToKeep, setListToUnjoin ) - - self.assertEquals( expLSets, obsLSets ) - - def test_getSetListUnjoined_listToKeep_size2_listToUnjoin_size2_split(self): - setKeep1 = Set( 1, "set", "seq", 1, 15 ) - setKeep2 = Set( 1, "set", "seq", 81, 130 ) - setListToKeep = [ setKeep1, setKeep2 ] - - setUnjoin1 = Set( 1, "set", "seq", 21, 40 ) - setUnjoin2 = Set( 1, "set", "seq", 201, 250 ) - setListToUnjoin = [ setUnjoin1, setUnjoin2 ] - - expLSets = [ [setUnjoin1] , [setUnjoin2] ] - - obsLSets = SetUtils.getSetListUnjoined( setListToKeep, setListToUnjoin ) - - self.assertEquals( expLSets, obsLSets ) - - def test_getSetListUnjoined_listToKeep_size1_listToUnjoin_ordered_OneSplit(self): - setKeep = Set( 1, "set", "seq", 120, 180 ) - setListToKeep = [ setKeep ] - - setUnjoin1 = Set( 1, "set", "seq", 100, 110 ) - setUnjoin2 = Set( 1, "set", "seq", 200, 210 ) - setUnjoin3 = Set( 1, "set", "seq", 250, 280 ) - setListToUnjoin = [ setUnjoin1, setUnjoin2, setUnjoin3 ] - - obsLSets = SetUtils.getSetListUnjoined(setListToKeep, setListToUnjoin) - expLSets = [ [setUnjoin1], [setUnjoin2, setUnjoin3] ] - - self.assertEquals(expLSets, obsLSets) - - def test_getSetListUnjoined_listToKeep_size1_listToUnjoin_unordered_OneSplit(self): - setKeep = Set( 1, "set", "seq", 120, 180 ) - setListToKeep = [ setKeep ] - - setUnjoin1 = Set( 1, "set", "seq", 200, 210 ) - setUnjoin2 = Set( 1, "set", "seq", 250, 280 ) - setUnjoin3 = Set( 1, "set", "seq", 100, 110 ) - setListToUnjoin = [ setUnjoin1, setUnjoin2, setUnjoin3 ] - - obsLSets = SetUtils.getSetListUnjoined(setListToKeep, setListToUnjoin) - expLSets = [ [setUnjoin3], [setUnjoin1, setUnjoin2] ] - - self.assertEquals(expLSets, obsLSets) - - def test_getSetListUnjoined_listToKeep_size2_listToUnjoin_size4_twoSplits(self): - setKeep1 = Set( 1, "set", "seq", 21, 30 ) - setKeep2 = Set( 1, "set", "seq", 81, 90 ) - setListToKeep = [ setKeep1, setKeep2 ] - - setUnjoin1 = Set( 1, "set", "seq", 1, 10 ) - setUnjoin2 = Set( 1, "set", "seq", 41, 50 ) - setUnjoin3 = Set( 1, "set", "seq", 61, 70 ) - setUnjoin4 = Set( 1, "set", "seq", 101, 110 ) - setListToUnjoin = [ setUnjoin1, setUnjoin2, setUnjoin3, setUnjoin4 ] - - expLSets = [ [setUnjoin1], [ setUnjoin2, setUnjoin3 ], [setUnjoin4] ] - - obsLSets = SetUtils.getSetListUnjoined(setListToKeep, setListToUnjoin) - - self.assertEquals( expLSets, obsLSets ) - - def test_getSetListWithoutDuplicates_empty_list(self): - lSets = [] - obsLSets = SetUtils.getSetListWithoutDuplicates( lSets ) - expLSets = [] - self.assertEquals( expLSets, obsLSets ) - - def test_getSetListWithoutDuplicates_list_size1(self): - set = Set( 1, "set", "seq", 100, 110 ) - lSets = [ set ] - obsLSets = SetUtils.getSetListWithoutDuplicates( lSets ) - expLSets = lSets - self.assertEquals( expLSets, obsLSets ) - - def test_getSetListWithoutDuplicates_list_with_only_doublons(self): - set1 = Set( 1, "set", "seq", 100, 110 ) - set2 = Set( 1, "set", "seq", 100, 110 ) - set3 = Set( 1, "set", "seq", 100, 110 ) - set4 = Set( 1, "set", "seq", 100, 110 ) - lSets = [set1, set2, set3, set4] - - obsLSets = SetUtils.getSetListWithoutDuplicates( lSets ) - - expLSets = [ set1 ] - - self.assertEquals( expLSets, obsLSets ) - - def test_getSetListWithoutDuplicates_list_with_doublons_at_start_and_at_end(self): - set1 = Set( 1, "set", "seq", 200, 210 ) - set2 = Set( 1, "set", "seq", 100, 110 ) - set3 = Set( 1, "set", "seq", 300, 310 ) - set4 = Set( 1, "set", "seq", 100, 110 ) - lSets = [set1, set2, set3, set4] - - obsLSets = SetUtils.getSetListWithoutDuplicates( lSets ) - - expLSets = [ set1, set2, set3 ] - expLSets = SetUtils.getSetListSortedByIncreasingMinThenMax(expLSets) - - self.assertEquals( expLSets, obsLSets ) - - def test_getSetListWithoutDuplicates_list_with_contiguous_doublons(self): - set1 = Set( 1, "set", "seq", 200, 210 ) - set2 = Set( 1, "set", "seq", 100, 110 ) - set3 = Set( 1, "set", "seq", 100, 110 ) - set4 = Set( 1, "set", "seq", 300, 310 ) - lSets = [set1, set2, set3, set4] - - obsLSets = SetUtils.getSetListWithoutDuplicates( lSets ) - - expLSets = [ set1, set2, set4 ] - expLSets = SetUtils.getSetListSortedByIncreasingMinThenMax(expLSets) - - self.assertEquals( expLSets, obsLSets ) - - def test_getSetListWithoutDuplicates_list_with_one_doublon(self): - set1 = Set( 1, "set", "seq", 200, 210 ) - set2 = Set( 1, "set", "seq", 100, 110 ) - set3 = Set( 1, "set", "seq", 210, 250 ) - set4 = Set( 1, "set", "seq", 100, 110 ) - set5 = Set( 1, "set", "seq", 300, 310 ) - lSets = [set1, set2, set3, set4, set5] - - obsLSets = SetUtils.getSetListWithoutDuplicates( lSets ) - - expLSets = [ set1, set2, set3, set5 ] - expLSets = SetUtils.getSetListSortedByIncreasingMinThenMax(expLSets) - - self.assertEquals( expLSets, obsLSets ) - - def test_getSetListWithoutDuplicates_list_with_two_doublons(self): - set1 = Set( 1, "set", "seq", 200, 210 ) - set2 = Set( 1, "set", "seq", 100, 110 ) - set3 = Set( 1, "set", "seq", 210, 250 ) - set4 = Set( 1, "set", "seq", 230, 250 ) - set5 = Set( 1, "set", "seq", 210, 250 ) - set6 = Set( 1, "set", "seq", 100, 110 ) - set7 = Set( 1, "set", "seq", 300, 310 ) - lSets = [set1, set2, set3, set4, set5, set6, set7] - - obsLSets = SetUtils.getSetListWithoutDuplicates( lSets ) - - expLSets = [ set1, set2, set3, set4, set7 ] - expLSets = SetUtils.getSetListSortedByIncreasingMinThenMax(expLSets) - - self.assertEquals( expLSets, obsLSets ) - - def test_getSetListSortedByIncreasingMinThenMax_alreadyOrdered_diffIdentifier(self): - set1 = Set( 1, "set1", "seq1", 1, 10 ) - set2 = Set( 2, "set1", "seq1", 21, 30 ) - lSets = [ set1, set2 ] - - expList = [ set1, set2 ] - - obsList = SetUtils.getSetListSortedByIncreasingMinThenMax( lSets ) - - self.assertEqual( expList, obsList ) - - - def test_getSetListSortedByIncreasingMinThenMax_unordered_diffIdentifier(self): - set1 = Set( 1, "set1", "seq1", 21, 30 ) - set2 = Set( 2, "set1", "seq1", 1, 10 ) - lSets = [ set1, set2 ] - - expList = [ set2, set1 ] - - obsList = SetUtils.getSetListSortedByIncreasingMinThenMax( lSets ) - - self.assertEqual( expList, obsList ) - - - def test_getSetListSortedByIncreasingMinThenMax_unordered_sameIdentifier(self): - set1 = Set( 1, "set1", "seq1", 21, 30 ) - set2 = Set( 1, "set1", "seq1", 1, 10 ) - lSets = [ set1, set2 ] - - expList = [ set2, set1 ] - - obsList = SetUtils.getSetListSortedByIncreasingMinThenMax( lSets ) - - self.assertEqual( expList, obsList ) - - - def test_getSetListSortedByIncreasingMinThenMax_unordered_overlapping(self): - set1 = Set( 2, "set1", "seq1", 6, 15 ) - set2 = Set( 1, "set1", "seq1", 1, 10 ) - lSets = [ set1, set2 ] - - expList = [ set2, set1 ] - - obsList = SetUtils.getSetListSortedByIncreasingMinThenMax( lSets ) - - self.assertEqual( expList, obsList ) - - def test_getSetListSortedByIncreasingMinThenMax_unordered_sameMin_threeSets(self): - set1 = Set( 1, "set1", "seq1", 1, 15 ) - set2 = Set( 2, "set2", "seq1", 1, 10 ) - set3 = Set( 3, "set3", "seq1", 1, 12 ) - lSets = [ set1, set2, set3 ] - - expList = [ set2, set3, set1 ] - - obsList = SetUtils.getSetListSortedByIncreasingMinThenMax( lSets ) - - self.assertEqual( expList, obsList ) - - - def test_getSetListSortedByIncreasingMinThenMax_unordered_included(self): - set1 = Set( 1, "set1", "seq1", 2, 4 ) - set2 = Set( 2, "set2", "seq1", 1, 5 ) - lSets = [ set1, set2 ] - - expList = [ set2, set1 ] - - obsList = SetUtils.getSetListSortedByIncreasingMinThenMax( lSets ) - - self.assertEqual( expList, obsList ) - - - def test_getSetListSortedByIncreasingMinThenInvLength_alreadyOrdered_diffIdentifier(self): - set1 = Set( 1, "set1", "seq1", 1, 10 ) - set2 = Set( 2, "set1", "seq1", 21, 30 ) - lSets = [ set1, set2 ] - - expList = [ set1, set2 ] - - obsList = SetUtils.getSetListSortedByIncreasingMinThenInvLength( lSets ) - - self.assertEqual( expList, obsList ) - - - def test_getSetListSortedByIncreasingMinThenInvLength_unordered_diffIdentifier(self): - set1 = Set( 1, "set1", "seq1", 21, 30 ) - set2 = Set( 2, "set1", "seq1", 1, 10 ) - lSets = [ set1, set2 ] - - expList = [ set2, set1 ] - - obsList = SetUtils.getSetListSortedByIncreasingMinThenInvLength( lSets ) - - self.assertEqual( expList, obsList ) - - - def test_getSetListSortedByIncreasingMinThenInvLength_unordered_sameIdentifier(self): - set1 = Set( 1, "set1", "seq1", 21, 30 ) - set2 = Set( 1, "set1", "seq1", 1, 10 ) - lSets = [ set1, set2 ] - - expList = [ set2, set1 ] - - obsList = SetUtils.getSetListSortedByIncreasingMinThenInvLength( lSets ) - - self.assertEqual( expList, obsList ) - - - def test_getSetListSortedByIncreasingMinThenInvLength_unordered_overlapping(self): - set1 = Set( 2, "set1", "seq1", 6, 15 ) - set2 = Set( 1, "set1", "seq1", 1, 10 ) - lSets = [ set1, set2 ] - - expList = [ set2, set1 ] - - obsList = SetUtils.getSetListSortedByIncreasingMinThenInvLength( lSets ) - - self.assertEqual( expList, obsList ) - - - def test_getSetListSortedByIncreasingMinThenInvLength_unordered_sameMin_threeSets(self): - set1 = Set( 1, "set1", "seq1", 1, 10 ) - set2 = Set( 2, "set2", "seq1", 3, 8 ) - set3 = Set( 3, "set3", "seq1", 3, 17 ) - lSets = [ set1, set2, set3 ] - - expList = [ set1, set3, set2 ] - - obsList = SetUtils.getSetListSortedByIncreasingMinThenInvLength( lSets ) - - self.assertEqual( expList, obsList ) - - def test_getSetListSortedByIncreasingMinThenInvLength_unordered_included(self): - set1 = Set( 1, "set1", "seq1", 2, 4 ) - set2 = Set( 2, "set2", "seq1", 1, 5 ) - lSets = [ set1, set2 ] - - expList = [ set2, set1 ] - - obsList = SetUtils.getSetListSortedByIncreasingMinThenInvLength( lSets ) - - self.assertEqual( expList, obsList ) - - def test_getSetListSortedBySeqThenRegionThenMinThenMax_already_sorted(self): - set1 = Set(1, "set1", "seq1", 2, 4) - set2 = Set(2, "set2", "seq2", 1, 5) - set3 = Set(3, "set3", "seq2", 8, 10) - lSets = [set1, set2, set3] - - expList = [set1, set2, set3] - - obsList = SetUtils.getSetListSortedBySeqThenRegionThenMinThenMax(lSets) - - self.assertEqual(expList, obsList) - - def test_getSetListSortedBySeqThenRegionThenMinThenMax_not_sorted_by_seqname(self): - set1 = Set(1, "set1", "seq1", 2, 4) - set2 = Set(2, "set2", "seq2", 1, 5) - set3 = Set(3, "set3", "seq2", 8, 10) - lSets = [set2, set1, set3] - - expList = [set1, set2, set3] - - obsList = SetUtils.getSetListSortedBySeqThenRegionThenMinThenMax(lSets) - - self.assertEqual(expList, obsList) - - def test_getSetListSortedBySeqThenRegionThenMinThenMax_not_sorted_by_region_and_start(self): - set1 = Set(1, "set1", "seq1", 2, 4) - set2 = Set(2, "set2", "seq2", 1, 5) - set3 = Set(3, "set3", "seq2", 8, 10) - lSets = [set3, set2, set1] - - expList = [set1, set2, set3] - - obsList = SetUtils.getSetListSortedBySeqThenRegionThenMinThenMax(lSets) - - self.assertEqual(expList, obsList) - - def test_getSetListSortedBySeqThenRegionThenMinThenMax_not_sorted_with_overlap(self): - set1 = Set(1, "set1", "seq1", 2, 4) - set2 = Set(2, "set2", "seq2", 1, 5) - set3 = Set(3, "set2", "seq2", 8, 10) - set4 = Set(4, "set2", "seq3", 7, 9) - set5 = Set(5, "set3", "seq3", 8, 12) - lSets = [set3, set2, set1, set5, set4] - - expList = [set1, set2, set3, set4, set5] - - obsList = SetUtils.getSetListSortedBySeqThenRegionThenMinThenMax(lSets) - - self.assertEqual(expList, obsList) - - def test_getSetListSortedBySeqThenRegionThenMinThenMax_not_sorted_with_reverse(self): - set1 = Set(1, "set1", "seq1", 2, 4) - set2 = Set(2, "set2", "seq2", 1, 5) - set3 = Set(3, "set2", "seq2", 8, 10) - set4 = Set(4, "set3", "seq3", 7, 9) - set5 = Set(5, "set3", "seq3", 12, 5) - lSets = [set3, set2, set5, set1, set4] - - expList = [set1, set2, set3, set5, set4] - - obsList = SetUtils.getSetListSortedBySeqThenRegionThenMinThenMax(lSets) - - self.assertEqual(expList, obsList) - - def test_getListOfIdListOfOverlappingSets_2_item_in_reference_list_overlaps_with_one_item_in_subject_list(self): - set1 = Set( 1, "set1", "seq1", 10, 30 ) - set2 = Set( 2, "set2", "seq1", 40, 60 ) - - lRef = [set1, set2] - - set3 = Set( 3, "set2", "seq1", 25, 45 ) - lSubj = [set3] - - lExp = [[1,-3,2]] - lObs = SetUtils.getListOfIdListOfOverlappingSets(lRef, lSubj) - - self.assertEquals(lExp, lObs) - - def test_getListOfIdListOfOverlappingSets_one_item_in_reference_list_overlaps_with_2_item_in_subject_list(self): - set1 = Set( 1, "set2", "seq1", 25, 45 ) - lRef = [set1] - - set2 = Set( 2, "set1", "seq1", 10, 30 ) - set3 = Set( 3, "set2", "seq1", 40, 60 ) - - lSubj = [set2, set3] - - lExp = [[1,-2,-3]] - lObs = SetUtils.getListOfIdListOfOverlappingSets(lRef, lSubj) - - self.assertEquals(lExp, lObs) - - def test_getListOfIdListOfOverlappingSets_all_item_in_reference_list_overlaps_with_items_in_subject_list(self): - set1 = Set( 1, "set1", "seq1", 10, 30 ) - set2 = Set( 2, "set2", "seq1", 40, 60 ) - set3 = Set( 3, "set2", "seq1", 70, 90 ) - - lRef = [set1, set2, set3] - - set4 = Set( 4, "set1", "seq1", 5, 9 ) - set5 = Set( 5, "set1", "seq1", 15, 29 ) - set6 = Set( 6, "set2", "seq1", 45, 55 ) - set7 = Set( 7, "set2", "seq1", 57, 68 ) - set8 = Set( 8, "set2", "seq1", 73, 85 ) - set9 = Set( 9, "set2", "seq1", 100, 115 ) - - lSubj = [set4, set5, set6, set7, set8, set9] - - lExp = [[1,-5], [2,-6,-7], [3,-8]] - lObs = SetUtils.getListOfIdListOfOverlappingSets(lRef, lSubj) - - self.assertEquals(lObs, lExp) - - def test_getListOfIdListOfOverlappingSets_all_item_in_subject_list_overlaps_with_items_in_reference_list(self): - set1 = Set( 1, "set1", "seq1", 5, 9 ) - set2 = Set( 2, "set1", "seq1", 15, 29 ) - set3 = Set( 3, "set2", "seq1", 45, 55 ) - set4 = Set( 4, "set2", "seq1", 57, 68 ) - set5 = Set( 5, "set2", "seq1", 73, 85 ) - set6 = Set( 6, "set2", "seq1", 100, 115 ) - - lRef = [set1, set2, set3, set4, set5, set6] - - set7 = Set( 7, "set1", "seq1", 10, 30 ) - set8 = Set( 8, "set2", "seq1", 40, 60 ) - set9 = Set( 9, "set2", "seq1", 70, 90 ) - - lSubj = [set7, set8, set9] - - lExp = [[2, -7], [3, -8, 4], [5, -9]] - lObs = SetUtils.getListOfIdListOfOverlappingSets(lRef, lSubj) - - self.assertEquals(lObs, lExp) - - def test_getListOfIdListOfOverlappingSets_all_item_overlaps_one_by_one(self): - set1 = Set( 1, "set1", "seq1", 10, 20 ) - set2 = Set( 2, "set1", "seq1", 30, 40 ) - set3 = Set( 3, "set2", "seq1", 50, 60 ) - - lRef = [set1, set2, set3] - - lSubj = [set1, set2, set3] - - lExp = [[1, -1], [2, -2], [3, -3]] - lObs = SetUtils.getListOfIdListOfOverlappingSets(lRef, lSubj) - - self.assertEquals(lObs, lExp) - - def test_getListOfIdListOfOverlappingSets_continuus_overlap_between_item_in_reference_list_and_item_in_subject_list(self): - set1 = Set( 1, "set1", "seq1", 10, 20 ) - set2 = Set( 2, "set1", "seq1", 30, 40 ) - set3 = Set( 3, "set2", "seq1", 50, 60 ) - set4 = Set( 4, "set2", "seq1", 70, 80 ) - - lRef = [set1, set2, set3, set4] - - set5 = Set( 5, "set1", "seq1", 15, 32 ) - set6 = Set( 6, "set2", "seq1", 35, 52 ) - set7 = Set( 7, "set2", "seq1", 55, 75 ) - - lSubj = [set5, set6, set7] - - lExp = [[ 1, -5, 2, -6, 3, -7, 4 ]] - lObs = SetUtils.getListOfIdListOfOverlappingSets(lRef, lSubj) - - self.assertEquals(lObs, lExp) - - - def test_getListOfIdListOfOverlappingSets_first_item_in_reference_overlap_with_one_item_in_subject_list(self): - set1 = Set( 1, "set1", "seq1", 10, 20 ) - set2 = Set( 2, "set1", "seq1", 30, 40 ) - - lRef = [set1, set2] - - set3 = Set( 3, "set1", "seq1", 5, 9 ) - set4 = Set( 4, "set2", "seq1", 12, 25 ) - set5 = Set( 5, "set2", "seq1", 55, 75 ) - - lSubj = [set3, set4, set5] - - lExp = [[1, -4]] - lObs = SetUtils.getListOfIdListOfOverlappingSets(lRef, lSubj) - - self.assertEquals(lObs, lExp) - - def test_getListOfIdListOfOverlappingSets_last_item_in_reference_overlap_with_one_item_in_subject_list(self): - set1 = Set( 1, "set1", "seq1", 10, 20 ) - set2 = Set( 2, "set1", "seq1", 30, 40 ) - - lRef = [set1, set2] - - set3 = Set( 3, "set1", "seq1", 5, 9 ) - set4 = Set( 4, "set2", "seq1", 32, 45 ) - set5 = Set( 5, "set2", "seq1", 55, 75 ) - - lSubj = [set3, set4, set5] - - lExp = [[2, -4]] - lObs = SetUtils.getListOfIdListOfOverlappingSets(lRef, lSubj) - - self.assertEquals(lObs, lExp) - - def test_getListOfIdListOfOverlappingSets_one_item_in_reference_in_the_middle_overlap_with_one_item_in_subject_list(self): - set1 = Set( 1, "set1", "seq1", 10, 20 ) - set2 = Set( 2, "set1", "seq1", 30, 40 ) - set3 = Set( 3, "set1", "seq1", 50, 60 ) - set4 = Set( 4, "set1", "seq1", 70, 80 ) - - lRef = [set1, set2, set3, set4] - - set5 = Set( 5, "set1", "seq1", 2, 9 ) - set6 = Set( 6, "set2", "seq1", 55, 65 ) - set7 = Set( 7, "set2", "seq1", 90, 100 ) - - lSubj = [set5, set6, set7] - - lExp = [[3, -6]] - lObs = SetUtils.getListOfIdListOfOverlappingSets(lRef, lSubj) - - self.assertEquals(lObs, lExp) - - def test_getListOfIdListOfOverlappingSets_first_item_in_subject_overlap_with_one_item_in_reference_list(self): - set1 = Set( 1, "set1", "seq1", 10, 20 ) - set2 = Set( 2, "set1", "seq1", 30, 40 ) - - lRef = [set1, set2] - - set3 = Set( 3, "set1", "seq1", 15, 25 ) - set4 = Set( 4, "set2", "seq1", 45, 50 ) - set5 = Set( 5, "set2", "seq1", 55, 75 ) - - lSubj = [set3, set4, set5] - - lExp = [[1, -3]] - lObs = SetUtils.getListOfIdListOfOverlappingSets(lRef, lSubj) - - self.assertEquals(lObs, lExp) - - def test_getListOfIdListOfOverlappingSets_last_item_in_subject_overlap_with_one_item_in_reference_list(self): - set1 = Set( 1, "set1", "seq1", 10, 20 ) - set2 = Set( 2, "set1", "seq1", 30, 40 ) - - lRef = [set1, set2] - - set3 = Set( 3, "set1", "seq1", 1, 9 ) - set4 = Set( 4, "set2", "seq1", 21, 29 ) - set5 = Set( 5, "set2", "seq1", 35, 50 ) - - lSubj = [set3, set4, set5] - - lExp = [[2, -5]] - lObs = SetUtils.getListOfIdListOfOverlappingSets(lRef, lSubj) - - self.assertEquals(lObs, lExp) - - def test_getListOfIdListOfOverlappingSets_one_item_in_subject_in_the_middle_overlap_with_one_item_in_reference_list(self): - set1 = Set( 1, "set1", "seq1", 10, 20 ) - set2 = Set( 2, "set1", "seq1", 30, 40 ) - - lRef = [set1, set2] - - set3 = Set( 3, "set1", "seq1", 1, 9 ) - set4 = Set( 4, "set2", "seq1", 21, 29 ) - set5 = Set( 5, "set2", "seq1", 35, 50 ) - set6 = Set( 6, "set2", "seq1", 60, 70 ) - - lSubj = [set3, set4, set5, set6] - - lExp = [[2, -5]] - lObs = SetUtils.getListOfIdListOfOverlappingSets(lRef, lSubj) - - self.assertEquals(lObs, lExp) - - def test_getListOfMergedSetsAndNextId_each_item_in_reference_list_overlap_with_one_different_item_in_subject_list(self): - setRef1 = Set( 1, "set1", "seq1", 10, 20 ) - setRef2 = Set( 2, "set1", "seq1", 30, 40 ) - setRef3 = Set( 3, "set1", "seq1", 50, 60 ) - - lRef = [setRef1, setRef2, setRef3] - - setSubj1 = Set( 1, "set1", "seq1", 12, 25 ) - setSubj2 = Set( 2, "set1", "seq1", 31, 45 ) - setSubj3 = Set( 3, "set1", "seq1", 55, 80 ) - - lSubj = [setSubj1, setSubj2, setSubj3] - - setRef1merged = Set( 1, "set1", "seq1", 10, 25 ) - setRef2merged = Set( 2, "set1", "seq1", 30, 45 ) - setRef3merged = Set( 3, "set1", "seq1", 50, 80 ) - - nextId = 4 - - lExp = ([setRef1merged, setRef2merged, setRef3merged], nextId) - lObs = SetUtils.getListOfMergedSetsAndNextId(lRef, lSubj) - - self.assertEquals(lObs, lExp) - - def test_getListOfMergedSetsAndNextId_all_items_in_reference_list_overlap_with_the_same_item_in_subject_list(self): - setRef1 = Set( 1, "set1", "seq1", 10, 20 ) - setRef2 = Set( 2, "set1", "seq1", 15, 25 ) - setRef3 = Set( 3, "set1", "seq1", 20, 30 ) - - lRef = [setRef1, setRef2, setRef3] - - setSubj1 = Set( 1, "set1", "seq1", 12, 35 ) - setSubj2 = Set( 2, "set1", "seq1", 40, 45 ) - setSubj3 = Set( 3, "set1", "seq1", 55, 80 ) - - lSubj = [setSubj1, setSubj2, setSubj3] - - setRef1merged = Set( 1, "set1", "seq1", 10, 35 ) - setSubj2Exp = Set( 4, "set1", "seq1", 40, 45 ) - setSubj3Exp = Set( 5, "set1", "seq1", 55, 80 ) - - nextId = 6 - - lExp = ([setRef1merged, setSubj2Exp, setSubj3Exp], nextId) - lObs = SetUtils.getListOfMergedSetsAndNextId(lRef, lSubj) - - self.assertEquals(lObs, lExp) - - def test_getListOfMergedSetsAndNextId_two_last_ref_items_overlap_with_last_subject_item(self): - setRef1 = Set( 1, "set1", "seq1", 10, 20 ) - setRef2 = Set( 2, "set1", "seq1", 30, 40 ) - setRef3 = Set( 3, "set1", "seq1", 50, 60 ) - - lRef = [setRef1, setRef2, setRef3] - - setSubj1 = Set( 1, "set1", "seq1", 1, 5 ) - setSubj2 = Set( 2, "set1", "seq1", 6, 9 ) - setSubj3 = Set( 3, "set1", "seq1", 35, 55 ) - - lSubj = [setSubj1, setSubj2, setSubj3] - - setRef1Exp = Set( 1, "set1", "seq1", 10, 20 ) - setRef2merged = Set( 2, "set1", "seq1", 30, 60 ) - setSubj1Exp = Set( 4, "set1", "seq1", 1, 5 ) - setSubj2Exp = Set( 5, "set1", "seq1", 6, 9 ) - - nextId = 6 - - lExp = ([setRef2merged, setRef1Exp, setSubj1Exp, setSubj2Exp], nextId) - lObs = SetUtils.getListOfMergedSetsAndNextId(lRef, lSubj) - - self.assertEquals(lObs, lExp) - - def test_getListOfMergedSetsAndNextId_all_items_in_reference_list_overlap_with_all_items_in_subject_list(self): - setRef1 = Set( 1, "set1", "seq1", 10, 20 ) - setRef2 = Set( 2, "set1", "seq1", 30, 40 ) - - lRef = [setRef1, setRef2] - - setSubj1 = Set( 1, "set1", "seq1", 10, 20 ) - setSubj2 = Set( 2, "set1", "seq1", 30, 40 ) - - lSubj = [setSubj1, setSubj2] - - setRef1merged = Set( 1, "set1", "seq1", 10, 20 ) - setRef2merged = Set( 2, "set1", "seq1", 30, 40 ) - - nextId = 3 - - lExp = ([setRef1merged, setRef2merged], nextId) - lObs = SetUtils.getListOfMergedSetsAndNextId(lRef, lSubj) - - self.assertEquals(lObs, lExp) - - def test_getListOfMergedSetsAndNextId_one_item_in_reference_list_overlap_with_all_items_in_subject_list(self): - setRef1 = Set( 1, "set1", "seq1", 10, 20 ) - setRef2 = Set( 2, "set1", "seq1", 30, 40 ) - setRef3 = Set( 3, "set1", "seq1", 50, 60 ) - - lRef = [setRef1, setRef2, setRef3] - - setSubj1 = Set( 1, "set1", "seq1", 11, 13 ) - setSubj2 = Set( 2, "set1", "seq1", 14, 16 ) - setSubj3 = Set( 3, "set1", "seq1", 17, 25 ) - - lSubj = [setSubj1, setSubj2, setSubj3] - - setRef1merged = Set( 1, "set1", "seq1", 10, 25 ) - setRef2Exp = Set( 2, "set1", "seq1", 30, 40 ) - setRef3Exp = Set( 3, "set1", "seq1", 50, 60 ) - - nextId = 4 - - lExp = ([setRef1merged, setRef2Exp, setRef3Exp], nextId) - lObs = SetUtils.getListOfMergedSetsAndNextId(lRef, lSubj) - - self.assertEquals(lObs, lExp) - - def test_getListOfMergedSetsAndNextId_one_item_in_reference_list_overlap_with_one_item_in_subject_list(self): - setRef1 = Set( 1, "set1", "seq1", 10, 20 ) - setRef2 = Set( 2, "set1", "seq1", 30, 40 ) - setRef3 = Set( 3, "set1", "seq1", 50, 60 ) - - lRef = [setRef1, setRef2, setRef3] - - setSubj1 = Set( 1, "set1", "seq1", 1, 9 ) - setSubj2 = Set( 2, "set1", "seq1", 31, 45 ) - setSubj3 = Set( 3, "set1", "seq1", 70, 80 ) - - lSubj = [setSubj1, setSubj2, setSubj3] - - setRef1Exp = Set( 1, "set1", "seq1", 10, 20 ) - setRef2merged = Set( 2, "set1", "seq1", 30, 45 ) - setRef3Exp = Set( 3, "set1", "seq1", 50, 60 ) - setSubj1Exp = Set( 4, "set1", "seq1", 1, 9 ) - setSubj3Exp = Set( 5, "set1", "seq1", 70, 80 ) - - nextId = 6 - - lExp = ([setRef2merged, setRef1Exp, setRef3Exp, setSubj1Exp, setSubj3Exp], nextId) - - lObs = SetUtils.getListOfMergedSetsAndNextId(lRef, lSubj) - - self.assertEquals(lObs, lExp) - - def test_getListOfMergedSetsAndNextId_one_item_in_reference_list_overlap_with_one_item_in_subject_list_with_strange_output_order(self): - setRef1 = Set( 5, "set1", "seq1", 10, 20 ) - setRef2 = Set( 6, "set1", "seq1", 30, 40 ) - setRef3 = Set( 7, "set1", "seq1", 50, 60 ) - setRef4 = Set( 8, "set1", "seq1", 90, 92 ) - - lRef = [setRef1, setRef2, setRef3, setRef4] - - setSubj1 = Set( 1, "set1", "seq1", 1, 9 ) - setSubj2 = Set( 2, "set1", "seq1", 35, 45 ) - setSubj3 = Set( 3, "set1", "seq1", 70, 80 ) - setSubj4 = Set( 4, "set1", "seq1", 130, 140 ) - - lSubj = [setSubj1, setSubj2, setSubj3, setSubj4] - - setRef1Exp = Set( 5, "set1", "seq1", 10, 20 ) - setRef2merged = Set( 6, "set1", "seq1", 30, 45 ) - setRef3Exp = Set( 7, "set1", "seq1", 50, 60 ) - setRef4Exp = Set( 8, "set1", "seq1", 90, 92 ) - setSubj1Exp = Set( 9, "set1", "seq1", 1, 9 ) - setSubj3Exp = Set( 10, "set1", "seq1", 70, 80 ) - setSubj4Exp = Set( 11, "set1", "seq1", 130, 140 ) - - nextId = 12 - - lExp = ([setRef2merged, setRef4Exp, setRef1Exp, setRef3Exp, setSubj1Exp, setSubj3Exp, setSubj4Exp], nextId) - - lObs = SetUtils.getListOfMergedSetsAndNextId(lRef, lSubj) - - self.assertEquals(lObs, lExp) - - def test_getListOfMergedSetsAndNextId_all_items_overlap_between_lists_with_same_length(self): - setRef1 = Set( 1, "set1", "seq1", 10, 20 ) - setRef2 = Set( 2, "set1", "seq1", 30, 40 ) - setRef3 = Set( 3 , "set1", "seq1", 50, 60 ) - - lRef = [setRef1, setRef2, setRef3] - - setSubj1 = Set( 1, "set1", "seq1", 15, 35 ) - setSubj2 = Set( 2, "set1", "seq1", 36, 55 ) - setSubj3 = Set( 3, "set1", "seq1", 56, 65 ) - - lSubj = [setSubj1, setSubj2, setSubj3] - - setRef1merged = Set( 1, "set1", "seq1", 10, 65 ) - - nextId = 4 - - lExp = ([setRef1merged], nextId) - lObs = SetUtils.getListOfMergedSetsAndNextId(lRef, lSubj) - - self.assertEquals(lObs, lExp) - - def test_getListOfMergedSetsAndNextId_all_items_overlap_between_lists_with_different_length(self): - setRef1 = Set( 1, "set1", "seq1", 10, 20 ) - setRef2 = Set( 2, "set1", "seq1", 30, 40 ) - setRef3 = Set( 3 , "set1", "seq1", 50, 60 ) - - lRef = [setRef1, setRef2, setRef3] - - setSubj1 = Set( 1, "set1", "seq1", 15, 35 ) - setSubj2 = Set( 2, "set1", "seq1", 36, 55 ) - - lSubj = [setSubj1, setSubj2] - - setRef1merged = Set( 1, "set1", "seq1", 10, 60 ) - - nextId = 4 - - lExp = ([setRef1merged], nextId) - lObs = SetUtils.getListOfMergedSetsAndNextId(lRef, lSubj) - - self.assertEquals(lObs, lExp) - - def test_getListOfSetWithoutOverlappingBetweenTwoListOfSet(self): - set1 = Set( 1, "set1", "seq1", 10, 20 ) - set2 = Set( 2, "set1", "seq1", 30, 40 ) - set3 = Set( 3, "set1", "seq1", 50, 60 ) - - lSet1 = [set1, set2, set3] - - set4 = Set( 1, "set1", "seq1", 15, 35 ) - set5 = Set( 2, "set1", "seq1", 36, 55 ) - set6 = Set( 3, "set1", "seq1", 66, 95 ) - - lSet2 = [set4, set5, set6] - - expLSet = [set6] - obsLSet = SetUtils.getListOfSetWithoutOverlappingBetweenTwoListOfSet(lSet1, lSet2) - - self.assertEquals(expLSet, obsLSet) - - def test_getListOfSetWithoutOverlappingBetweenTwoListOfSet_Empty_Result(self): - set1 = Set( 1, "set1", "seq1", 10, 20 ) - set2 = Set( 2, "set1", "seq1", 30, 40 ) - set3 = Set( 3, "set1", "seq1", 50, 60 ) - - lSet1 = [set1, set2, set3] - - set4 = Set( 1, "set1", "seq1", 15, 35 ) - set5 = Set( 2, "set1", "seq1", 36, 55 ) - - lSet2 = [set4, set5] - - expLSet = [] - obsLSet = SetUtils.getListOfSetWithoutOverlappingBetweenTwoListOfSet(lSet1, lSet2) - - self.assertEquals(expLSet, obsLSet) - - def test_getListOfSetWithoutOverlappingBetweenTwoListOfSet_Empty_Result_Length_Condition(self): - set1 = Set( 1, "set1", "seq1", 10, 20 ) - set2 = Set( 2, "set1", "seq1", 30, 40 ) - set3 = Set( 3, "set1", "seq1", 50, 60 ) - - lSet1 = [set1, set2, set3] - - set4 = Set( 1, "set1", "seq1", 15, 35 ) - set5 = Set( 2, "set1", "seq1", 36, 55 ) - set6 = Set( 3, "set1", "seq1", 66, 68 ) - - lSet2 = [set4, set5, set6] - - expLSet = [] - obsLSet = SetUtils.getListOfSetWithoutOverlappingBetweenTwoListOfSet(lSet1, lSet2) - - self.assertEquals(expLSet, obsLSet) - - - def test_getSetListFromFile(self): - file = "dummyFile_%s_%s" % ( time.strftime("%Y%m%d%H%M%S"), os.getpid() ) - fileHandler = open( file, "w" ) - fileHandler.write( "1\tseq1\tchr1\t151\t250\n" ) - fileHandler.write( "2\tseq2\tchr2\t301\t500\n" ) - fileHandler.close() - s1 = Set() - s1.setFromTuple( ( "1", "seq1", "chr1", "151", "250" ) ) - s2 = Set() - s2.setFromTuple( ( "2", "seq2", "chr2", "301", "500" ) ) - expLSet = [ s1, s2 ] - obsLSet = SetUtils.getSetListFromFile(file) - os.remove(file) - self.assertEqual( expLSet, obsLSet ) - - - def test_convertSetFileIntoMapFile( self ): - setFile = "dummySetFile" - setFileHandler = open( setFile, "w" ) - setFileHandler.write( "1\tseq31\tchr1\t151\t250\n" ) - setFileHandler.write( "2\tseq27\tchr2\t301\t500\n" ) - setFileHandler.close() - - expFile = "dummyExpFile" - expFileHandler = open( expFile, "w" ) - expFileHandler.write( "seq31\tchr1\t151\t250\n" ) - expFileHandler.write( "seq27\tchr2\t301\t500\n" ) - expFileHandler.close() - - obsFile = "dummyObsFile" - - SetUtils.convertSetFileIntoMapFile( setFile, obsFile ) - - self.assertTrue( FileUtils.are2FilesIdentical( expFile, obsFile ) ) - - for f in [ setFile, expFile, obsFile ]: - os.remove( f ) - - - def test_getDictOfListsWithSeqnameAsKey_empty( self ): - lSets = [] - dExp = {} - dObs = SetUtils.getDictOfListsWithSeqnameAsKey( lSets ) - self.assertEquals( dExp, dObs ) - - - def test_getDictOfListsWithSeqnameAsKey( self ): - lSets = [ Set( 1, "TE3", "chr2", 10, 50 ), - Set( 2, "gene74", "chr1", 31, 800 ), - Set( 3, "TE1", "chr1", 1, 30 ) ] - dExp = { "chr1": [ Set( 2, "gene74", "chr1", 31, 800 ), - Set( 3, "TE1", "chr1", 1, 30 ) ], - "chr2": [ Set( 1, "TE3", "chr2", 10, 50 ) ] } - dObs = SetUtils.getDictOfListsWithSeqnameAsKey( lSets ) - self.assertEquals( dExp, dObs ) - - - def test_filterOnLength( self ): - lSets = [ Set( 1, "TE3", "chr2", 10, 50 ), - Set( 2, "gene74", "chr1", 31, 800 ), - Set( 3, "TE1", "chr1", 1, 30 ) ] - lExp = [ Set( 2, "gene74", "chr1", 31, 800 ) ] - lObs = SetUtils.filterOnLength( lSets, 100 ) - self.assertEqual( lExp, lObs ) - - - def test_getListOfNames( self ): - setFile = "dummySetFile" - setFileHandler = open( setFile, "w" ) - setFileHandler.write( "1\tseq31\tchr1\t151\t250\n" ) - setFileHandler.write( "2\tseq27\tchr2\t301\t500\n" ) - setFileHandler.close() - - lExp = [ "seq31", "seq27" ] - lObs = SetUtils.getListOfNames( setFile ) - - self.assertEquals( lExp, lObs ) - - os.remove( setFile ) - - - def test_getDictOfDictsWithNamesThenIdAsKeyFromFile( self ): - setFile = "dummySetFile" - setFileHandler = open( setFile, "w" ) - setFileHandler.write( "1\tseq31\tchr1\t151\t250\n" ) - setFileHandler.write( "3\tseq27\tchr3\t1\t100\n" ) - setFileHandler.write( "2\tseq27\tchr2\t301\t500\n" ) - setFileHandler.write( "2\tseq27\tchr2\t601\t650\n" ) - setFileHandler.close() - - dExp = { "seq31": { 1: [ Set( 1, "seq31", "chr1", 151, 250 ) ] }, - "seq27": { 2: [ Set( 2, "seq27", "chr2", 301, 500 ), - Set( 2, "seq27", "chr2", 601, 650 ) ], - 3: [ Set( 3, "seq27", "chr3", 1, 100 ) ] - } - } - dObs = SetUtils.getDictOfDictsWithNamesThenIdAsKeyFromFile( setFile ) - - self.assertEquals( dExp, dObs ) - - os.remove( setFile ) - - - def _makeSetListFromTupleList (self, tupleList): - setList = [] - for tuple in tupleList: - set = Set() - set.setFromTuple(tuple) - setList.append(set) - return setList - - -test_suite = unittest.TestSuite() -test_suite.addTest( unittest.makeSuite( Test_SetUtils ) ) -if __name__ == "__main__": - unittest.TextTestRunner(verbosity=2).run( test_suite )
--- a/commons/core/coord/test/Test_SlidingWindow.py Mon Apr 29 03:26:07 2013 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,109 +0,0 @@ -import unittest -from commons.core.coord.SlidingWindow import SlidingWindow -from commons.core.coord.SlidingWindow import SlidingWindowToCountMatchingBases -from commons.core.coord.Set import Set - -class Test_SlidingWindow( unittest.TestCase ): - - def test_slideWindowOnce( self ): - expStart = 91 - expEnd = 190 - self.sw = SlidingWindow(100, 10) - self.sw.slideWindowOnce() - obsStart = self.sw._start - obsEnd = self.sw._end - - self.assertEqual(expStart, obsStart) - self.assertEqual(expEnd, obsEnd) - - def test_slideWindowOnceFourTime( self ): - expStart = 201 - expEnd = 300 - self.sw = SlidingWindow(100, 50) - i = 0 - for i in range(4): - self.sw.slideWindowOnce() - i += 1 - obsStart = self.sw._start - obsEnd = self.sw._end - - self.assertEqual(expStart, obsStart) - self.assertEqual(expEnd, obsEnd) - - -class Test_SlidingWindowToCountMatchingBases(unittest.TestCase): - - def test_getSetLengthOnWindow_featureIncluded( self ): - self.sw = SlidingWindowToCountMatchingBases(100, 1) - iSet = Set( 1, "TE3", "chr1", 21, 30 ) - exp = 10 - obs = self.sw.getSetLengthOnWindow( iSet) - self.assertEqual( exp, obs ) - - def test_getSetLengthOnWindow_windowIncluded( self ): - self.sw = SlidingWindowToCountMatchingBases(100, 10) - self.sw.slideWindowOnce() - iSet = Set( 1, "TE3", "chr1", 21, 530 ) - exp = 100 - obs = self.sw.getSetLengthOnWindow( iSet) - self.assertEqual( exp, obs ) - - def test_getSetLengthOnWindow_featureOverlapLeft( self ): - self.sw = SlidingWindowToCountMatchingBases(100, 10) - self.sw.slideWindowOnce() - iSet = Set( 1, "TE3", "chr1", 21, 130 ) - exp = 40 - obs = self.sw.getSetLengthOnWindow( iSet) - self.assertEqual( exp, obs ) - - def test_getSetLengthOnWindow_featureOverlapRight( self ): - self.sw = SlidingWindowToCountMatchingBases(100, 10) - self.sw.slideWindowOnce() - iSet = Set( 1, "TE3", "chr1", 121, 230 ) - exp = 70 - obs = self.sw.getSetLengthOnWindow( iSet) - self.assertEqual( exp, obs ) - - def test_getCoordSetOnWindow_featureIncluded( self ): - self.sw = SlidingWindowToCountMatchingBases(100, 1) - iSet = Set( 1, "TE3", "chr1", 21, 30 ) - expStart = 21 - expEnd = 30 - obsStart,obsEnd = self.sw.getCoordSetOnWindow( iSet) - self.assertEqual( expStart, obsStart ) - self.assertEqual( expEnd, obsEnd ) - - def test_getCoordSetOnWindow_windowIncluded( self ): - self.sw = SlidingWindowToCountMatchingBases(100, 10) - self.sw.slideWindowOnce() - iSet = Set( 1, "TE3", "chr1", 21, 530 ) - expStart = 91 - expEnd = 190 - obsStart,obsEnd = self.sw.getCoordSetOnWindow( iSet) - self.assertEqual( expStart, obsStart ) - self.assertEqual( expEnd, obsEnd ) - - def test_getCoordSetOnWindow_featureOverlapLeft( self ): - self.sw = SlidingWindowToCountMatchingBases(100, 10) - self.sw.slideWindowOnce() - iSet = Set( 1, "TE3", "chr1", 21, 130 ) - expStart = 91 - expEnd = 130 - obsStart,obsEnd = self.sw.getCoordSetOnWindow( iSet) - self.assertEqual( expStart, obsStart ) - self.assertEqual( expEnd, obsEnd ) - - def test_getCoordSetOnWindow_featureOverlapRight( self ): - self.sw = SlidingWindowToCountMatchingBases(100, 10) - self.sw.slideWindowOnce() - iSet = Set( 1, "TE3", "chr1", 121, 230 ) - expStart = 121 - expEnd = 190 - obsStart,obsEnd = self.sw.getCoordSetOnWindow( iSet) - self.assertEqual( expStart, obsStart ) - self.assertEqual( expEnd, obsEnd ) - -test_suite = unittest.TestSuite() -test_suite.addTest( unittest.makeSuite( Test_SlidingWindow ) ) -if __name__ == "__main__": - unittest.TextTestRunner(verbosity=2).run( test_suite ) \ No newline at end of file
--- a/commons/core/parsing/test/Test_BedParser.py Mon Apr 29 03:26:07 2013 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,58 +0,0 @@ -import unittest, os -from commons.core.parsing.BedParser import BedParser - - -class Test_BedParser(unittest.TestCase): - - def test_Parser(self): - parser = BedParser("data/testBedParser1.bed") - - self.assertEqual(parser.getNbTranscripts(), 1) - - for transcript in parser.getIterator(): - self.assertEqual(transcript.getChromosome(), "arm_X") - self.assertEqual(transcript.getName(), "test1.1") - self.assertEqual(transcript.getStart(), 1000) - self.assertEqual(transcript.getEnd(), 2999) - self.assertEqual(transcript.getDirection(), 1) - self.assertEqual(transcript.getNbExons(), 2) - exons = transcript.getExons() - self.assertEqual(exons[0].getChromosome(), "arm_X") - self.assertEqual(exons[0].getStart(), 1000) - self.assertEqual(exons[0].getEnd(), 1099) - self.assertEqual(exons[0].getDirection(), 1) - self.assertEqual(exons[1].getChromosome(), "arm_X") - self.assertEqual(exons[1].getStart(), 2000) - self.assertEqual(exons[1].getEnd(), 2999) - self.assertEqual(exons[1].getDirection(), 1) - - def test_Parser_short(self): - tmpFileName = "tmpFile.bed" - tmpHandle = open(tmpFileName, "w") - tmpHandle.write("""X\t554748\t554904\texon -X\t554748\t554904\tCDS -X\t554748\t554750\tstart_codon -""") - tmpHandle.close() - parser = BedParser(tmpFileName) - self.assertEqual(parser.getNbTranscripts(), 3) - for cpt, transcript in enumerate(parser.getIterator()): - self.assertEqual(transcript.getNbExons(), 1) - self.assertEqual(transcript.getChromosome(), "X") - self.assertEqual(transcript.getStart(), 554748) - if cpt == 0: - self.assertEqual(transcript.getEnd(), 554903) - self.assertEqual(transcript.getName(), "exon") - elif cpt == 1: - self.assertEqual(transcript.getEnd(), 554903) - self.assertEqual(transcript.getName(), "CDS") - elif cpt == 2: - self.assertEqual(transcript.getEnd(), 554749) - self.assertEqual(transcript.getName(), "start_codon") - os.remove(tmpFileName) - - - -if __name__ == '__main__': - unittest.main() -
--- a/commons/core/parsing/test/Test_BlatFileParser.py Mon Apr 29 03:26:07 2013 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,61 +0,0 @@ -import unittest -from commons.core.parsing.BlatFileParser import BlatFileParser - - -class Test_BlatFileParser(unittest.TestCase): - - - def test_parseBlatFile(self): - fileName = "dummayBlat.psl" - self._writeBlatInputFile(fileName) - blatFileParser = BlatFileParser(fileName) - blatFileParser.parseBlatFile() - obsNbHits = len(blatFileParser.getListsOfHits()) - self.assertTrue(obsNbHits == 10) - obsQueries = blatFileParser.getDictOfQueries() - expQueries = {'5:574_1:574_539_5:1:G/C': 1, '3:574_1:574_539_5:1:G/C': 1, '5:574_2:574_433_5:1:G/C': 1,"3:574_2:574_433_5:1:G/C":1, "5:574_5:574_607_5:1:G/C": 1, "3:574_5:574_607_5:1:G/C": 1} - self.assertEquals(expQueries, obsQueries) - - def test_parseBlatFileByQueries(self): - fileName = "dummayBlat.psl" - self._writeBlatInputFile(fileName) - blatFileParser = BlatFileParser(fileName) - blatFileParser.parseBlatFileByQueries() - obsDict = blatFileParser.getDictOfBlatHitsByQueries() - obs1 = len(obsDict["5:574_1:574_539_5:1:G/C"]) - obs2 = len(obsDict["3:574_1:574_539_5:1:G/C"]) - obs3 = len(obsDict["5:574_2:574_433_5:1:G/C"]) - obs4 = len(obsDict["3:574_2:574_433_5:1:G/C"]) - obs5 = len(obsDict["5:574_5:574_607_5:1:G/C"]) - obs6 = len(obsDict["3:574_5:574_607_5:1:G/C"]) - self.assertTrue(obs1 == 1) - self.assertTrue(obs2 == 1) - self.assertTrue(obs3 == 1) - self.assertTrue(obs4 == 5) - self.assertTrue(obs5 == 1) - self.assertTrue(obs6 == 1) - obsQueries = blatFileParser.getDictOfQueries() - expQueries = {'5:574_1:574_539_5:1:G/C': 1, '3:574_1:574_539_5:1:G/C': 1, '5:574_2:574_433_5:1:G/C': 1,"3:574_2:574_433_5:1:G/C":1, "5:574_5:574_607_5:1:G/C": 1, "3:574_5:574_607_5:1:G/C": 1} - self.assertEquals(expQueries, obsQueries) - - def _writeBlatInputFile(self, fileName): - file = open(fileName, "w") - file.write("psLayout version 3\n") - file.write("\n") - file.write("match\tmis- \trep. \tN's\tQ gap\tQ gap\tT gap\tT gap\tstrand\tQ \tQ \tQ \tQ \tT \tT \tT \tT \tblock\tblockSizes \tqStarts\t tStarts\n") - file.write(" \tmatch\tmatch\t \tcount\tbases\tcount\tbases\t \tname \tsize\tstart\tend\tname \tsize\tstart\tend\tcount\n") - file.write("---------------------------------------------------------------------------------------------------------------------------------------------------------------\n") - file.write("246\t0\t0\t4\t0\t0\t0\t0\t-\t5:574_1:574_539_5:1:G/C\t250\t0\t250\ttaecs3B_RPH7\t3109948\t1065213\t1065463\t1\t250,\t0,\t1065213,\n") - file.write("247\t0\t0\t2\t0\t0\t0\t0\t-\t3:574_1:574_539_5:1:G/C\t250\t1\t250\ttaecs3B_RPH7\t3109948\t1064962\t1065211\t1\t249,\t0,\t1064962,\n") - file.write("249\t0\t0\t1\t0\t0\t0\t0\t-\t5:574_2:574_433_5:1:G/C\t250\t0\t250\ttaecs3B_RPH7\t3109948\t1065319\t1065569\t1\t250,\t0,\t1065319,\n") - file.write("245\t0\t0\t5\t0\t0\t0\t0\t-\t3:574_2:574_433_5:1:G/C\t250\t0\t250\ttaecs3B_RPH8\t3109948\t1065068\t1065318\t1\t250,\t0,\t1065068,\n") - file.write("247\t0\t0\t3\t0\t0\t0\t0\t-\t3:574_2:574_433_5:1:G/C\t250\t0\t250\ttaecs3B_RPH8\t3109948\t1065310\t1065560\t1\t250,\t0,\t1065310,\n") - file.write("247\t0\t0\t3\t0\t0\t0\t0\t-\t3:574_2:574_433_5:1:G/C\t250\t0\t250\ttaecs3B_RPH9\t3109948\t1065059\t1065309\t1\t250,\t0,\t1065059,\n") - file.write("247\t0\t0\t3\t0\t0\t0\t0\t-\t3:574_2:574_433_5:1:G/C\t250\t0\t250\ttaecs3B_RPH9\t3109948\t1064805\t1065055\t1\t250,\t0,\t1064805,\n") - file.write("68\t0\t0\t1\t0\t0\t0\t0\t-\t3:574_2:574_433_5:1:G/C\t69\t0\t69\ttaecs3B_RPH9\t3109948\t1064733\t1064802\t1\t69,\t0,\t1064733,\n") - file.write("245\t0\t0\t5\t0\t0\t0\t0\t-\t5:574_5:574_607_5:1:G/C\t250\t0\t250\ttaecs3B_RPH9\t3109948\t1065145\t1065395\t1\t250,\t0,\t1065145,\n") - file.write("247\t0\t0\t3\t0\t0\t0\t0\t-\t3:574_5:574_607_5:1:G/C\t250\t0\t250\ttaecs3B_RPH9\t3109948\t1064894\t1065144\t1\t250,\t0,\t1064894,\n") - file.close() - -if __name__ == "__main__": - unittest.main() \ No newline at end of file
--- a/commons/core/parsing/test/Test_BlatParser.py Mon Apr 29 03:26:07 2013 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,445 +0,0 @@ -from commons.core.parsing.BlatParser import BlatParser -import unittest - - -class Test_BlatParser(unittest.TestCase): - - - def test_setAttributesFromString(self): - blatLine = "315\t20\t0\t0\t3\t10\t2\t9\t+\tMRRE1H001H13FM1\t378\t0\t345\tchr16\t22053297\t21686950\t21687294\t4\t76,185,7,67,\t0,77,263,278,\t21686950,21687026,21687213,21687227," - - iBlatParser = BlatParser() - iBlatParser.setAttributesFromString(blatLine) - - obsmatch = iBlatParser.getMatch() - obsmismatch = iBlatParser.getMismatch() - obsrepMatch = iBlatParser.getRepMatch() - obsN = iBlatParser.getN() - obsQGapCount = iBlatParser.getQGapCount() - obsQGapBases = iBlatParser.getQGapBases() - obsTGapCount = iBlatParser.getTGapCount() - obsTGapBases = iBlatParser.getTGapBases() - obsstrand = iBlatParser.getStrand() - obsQName = iBlatParser.getQName() - obsQSize = iBlatParser.getQSize() - obsQStart = iBlatParser.getQStart() - obsQEnd = iBlatParser.getQEnd() - obsTName = iBlatParser.getTName() - obsTSize = iBlatParser.getTSize() - obsTStart = iBlatParser.getTStart() - obsTEnd = iBlatParser.getTEnd() - obsblockCount = iBlatParser.getBlockCount() - obsblockSizes = iBlatParser.getBlockSizes() - obsqStarts = iBlatParser.getQStarts() - obstStarts = iBlatParser.getTStarts() - - expmatch = "315" - expmismatch = "20" - exprepMatch = "0" - expN = "0" - expQGapCount = "3" - expQGapBases = "10" - expTGapCount = "2" - expTGapBases = "9" - expstrand = "+" - expQName = "MRRE1H001H13FM1" - expQSize = "378" - expQStart = "0" - expQEnd = "345" - expTName = "chr16" - expTSize = "22053297" - expTStart = "21686950" - expTEnd = "21687294" - expblockCount = "4" - expblockSizes = "76,185,7,67," - expqStarts = "0,77,263,278," - exptStarts = "21686950,21687026,21687213,21687227," - - self.assertEquals(expmatch, obsmatch) - self.assertEquals(expmismatch, obsmismatch) - self.assertEquals(exprepMatch, obsrepMatch) - self.assertEquals(expN, obsN) - self.assertEquals(expQGapCount, obsQGapCount) - self.assertEquals(expQGapBases, obsQGapBases) - self.assertEquals(expTGapCount, obsTGapCount) - self.assertEquals(expTGapBases, obsTGapBases) - self.assertEquals(expstrand, obsstrand) - self.assertEquals(expQName, obsQName) - self.assertEquals(expQSize, obsQSize) - self.assertEquals(expQStart, obsQStart) - self.assertEquals(expQEnd, obsQEnd) - self.assertEquals(expTName, obsTName) - self.assertEquals(expTSize, obsTSize) - self.assertEquals(expTStart, obsTStart) - self.assertEquals(expTEnd, obsTEnd) - self.assertEquals(expblockCount, obsblockCount) - self.assertEquals(expblockSizes, obsblockSizes) - self.assertEquals(expqStarts, obsqStarts) - self.assertEquals(exptStarts, obstStarts) - - def test_setAttributesFromString_empty_QName(self): - blatLine = "315\t20\t0\t0\t3\t10\t2\t9\t+\t\t378\t0\t345\tchr16\t22053297\t21686950\t21687294\t4\t76,185,7,67,\t0,77,263,278,\t21686950,21687026,21687213,21687227," - - iBlatParser = BlatParser() - iBlatParser.setAttributesFromString(blatLine) - - obsmatch = iBlatParser.getMatch() - obsmismatch = iBlatParser.getMismatch() - obsrepMatch = iBlatParser.getRepMatch() - obsN = iBlatParser.getN() - obsQGapCount = iBlatParser.getQGapCount() - obsQGapBases = iBlatParser.getQGapBases() - obsTGapCount = iBlatParser.getTGapCount() - obsTGapBases = iBlatParser.getTGapBases() - obsstrand = iBlatParser.getStrand() - obsQName = iBlatParser.getQName() - obsQSize = iBlatParser.getQSize() - obsQStart = iBlatParser.getQStart() - obsQEnd = iBlatParser.getQEnd() - obsTName = iBlatParser.getTName() - obsTSize = iBlatParser.getTSize() - obsTStart = iBlatParser.getTStart() - obsTEnd = iBlatParser.getTEnd() - obsblockCount = iBlatParser.getBlockCount() - obsblockSizes = iBlatParser.getBlockSizes() - obsqStarts = iBlatParser.getQStarts() - obstStarts = iBlatParser.getTStarts() - - expmatch = "" - expmismatch = "" - exprepMatch = "" - expN = "" - expQGapCount = "" - expQGapBases = "" - expTGapCount = "" - expTGapBases = "" - expstrand = "" - expQName = "" - expQSize = "" - expQStart = "" - expQEnd = "" - expTName = "" - expTSize = "" - expTStart = "" - expTEnd = "" - expblockCount = "" - expblockSizes = "" - expqStarts = "" - exptStarts = "" - - self.assertEquals(expmatch, obsmatch) - self.assertEquals(expmismatch, obsmismatch) - self.assertEquals(exprepMatch, obsrepMatch) - self.assertEquals(expN, obsN) - self.assertEquals(expQGapCount, obsQGapCount) - self.assertEquals(expQGapBases, obsQGapBases) - self.assertEquals(expTGapCount, obsTGapCount) - self.assertEquals(expTGapBases, obsTGapBases) - self.assertEquals(expstrand, obsstrand) - self.assertEquals(expQName, obsQName) - self.assertEquals(expQSize, obsQSize) - self.assertEquals(expQStart, obsQStart) - self.assertEquals(expQEnd, obsQEnd) - self.assertEquals(expTName, obsTName) - self.assertEquals(expTSize, obsTSize) - self.assertEquals(expTStart, obsTStart) - self.assertEquals(expTEnd, obsTEnd) - self.assertEquals(expblockCount, obsblockCount) - self.assertEquals(expblockSizes, obsblockSizes) - self.assertEquals(expqStarts, obsqStarts) - self.assertEquals(exptStarts, obstStarts) - - def test_setAttributesFromString_less_than_21_fields(self): - blatLine = "315\t20\t0\t0\t3\t10\t2\t9\t378\t0\t345\tchr16\t22053297\t21686950\t21687294\t4\t76,185,7,67,\t0,77,263,278,\t21686950,21687026,21687213,21687227," - - iBlatParser = BlatParser() - iBlatParser.setAttributesFromString(blatLine) - - obsmatch = iBlatParser.getMatch() - obsmismatch = iBlatParser.getMismatch() - obsrepMatch = iBlatParser.getRepMatch() - obsN = iBlatParser.getN() - obsQGapCount = iBlatParser.getQGapCount() - obsQGapBases = iBlatParser.getQGapBases() - obsTGapCount = iBlatParser.getTGapCount() - obsTGapBases = iBlatParser.getTGapBases() - obsstrand = iBlatParser.getStrand() - obsQName = iBlatParser.getQName() - obsQSize = iBlatParser.getQSize() - obsQStart = iBlatParser.getQStart() - obsQEnd = iBlatParser.getQEnd() - obsTName = iBlatParser.getTName() - obsTSize = iBlatParser.getTSize() - obsTStart = iBlatParser.getTStart() - obsTEnd = iBlatParser.getTEnd() - obsblockCount = iBlatParser.getBlockCount() - obsblockSizes = iBlatParser.getBlockSizes() - obsqStarts = iBlatParser.getQStarts() - obstStarts = iBlatParser.getTStarts() - - expmatch = "" - expmismatch = "" - exprepMatch = "" - expN = "" - expQGapCount = "" - expQGapBases = "" - expTGapCount = "" - expTGapBases = "" - expstrand = "" - expQName = "" - expQSize = "" - expQStart = "" - expQEnd = "" - expTName = "" - expTSize = "" - expTStart = "" - expTEnd = "" - expblockCount = "" - expblockSizes = "" - expqStarts = "" - exptStarts = "" - - self.assertEquals(expmatch, obsmatch) - self.assertEquals(expmismatch, obsmismatch) - self.assertEquals(exprepMatch, obsrepMatch) - self.assertEquals(expN, obsN) - self.assertEquals(expQGapCount, obsQGapCount) - self.assertEquals(expQGapBases, obsQGapBases) - self.assertEquals(expTGapCount, obsTGapCount) - self.assertEquals(expTGapBases, obsTGapBases) - self.assertEquals(expstrand, obsstrand) - self.assertEquals(expQName, obsQName) - self.assertEquals(expQSize, obsQSize) - self.assertEquals(expQStart, obsQStart) - self.assertEquals(expQEnd, obsQEnd) - self.assertEquals(expTName, obsTName) - self.assertEquals(expTSize, obsTSize) - self.assertEquals(expTStart, obsTStart) - self.assertEquals(expTEnd, obsTEnd) - self.assertEquals(expblockCount, obsblockCount) - self.assertEquals(expblockSizes, obsblockSizes) - self.assertEquals(expqStarts, obsqStarts) - self.assertEquals(exptStarts, obstStarts) - - def test_setAttributes(self): - lResults = ['315','20','0','0','3','10','2','9','+','MRRE1H001H13FM1','378','0','345','chr16','22053297','21686950','21687294','4','76,185,7,67,','0,77,263,278,','21686950,21687026,21687213,21687227,'] - lineNumber = 1 - - iBlatParser = BlatParser() - iBlatParser.setAttributes(lResults, lineNumber) - - obsmatch = iBlatParser.getMatch() - obsmismatch = iBlatParser.getMismatch() - obsrepMatch = iBlatParser.getRepMatch() - obsN = iBlatParser.getN() - obsQGapCount = iBlatParser.getQGapCount() - obsQGapBases = iBlatParser.getQGapBases() - obsTGapCount = iBlatParser.getTGapCount() - obsTGapBases = iBlatParser.getTGapBases() - obsstrand = iBlatParser.getStrand() - obsQName = iBlatParser.getQName() - obsQSize = iBlatParser.getQSize() - obsQStart = iBlatParser.getQStart() - obsQEnd = iBlatParser.getQEnd() - obsTName = iBlatParser.getTName() - obsTSize = iBlatParser.getTSize() - obsTStart = iBlatParser.getTStart() - obsTEnd = iBlatParser.getTEnd() - obsblockCount = iBlatParser.getBlockCount() - obsblockSizes = iBlatParser.getBlockSizes() - obsqStarts = iBlatParser.getQStarts() - obstStarts = iBlatParser.getTStarts() - - expmatch = "315" - expmismatch = "20" - exprepMatch = "0" - expN = "0" - expQGapCount = "3" - expQGapBases = "10" - expTGapCount = "2" - expTGapBases = "9" - expstrand = "+" - expQName = "MRRE1H001H13FM1" - expQSize = "378" - expQStart = "0" - expQEnd = "345" - expTName = "chr16" - expTSize = "22053297" - expTStart = "21686950" - expTEnd = "21687294" - expblockCount = "4" - expblockSizes = "76,185,7,67," - expqStarts = "0,77,263,278," - exptStarts = "21686950,21687026,21687213,21687227," - - self.assertEquals(expmatch, obsmatch) - self.assertEquals(expmismatch, obsmismatch) - self.assertEquals(exprepMatch, obsrepMatch) - self.assertEquals(expN, obsN) - self.assertEquals(expQGapCount, obsQGapCount) - self.assertEquals(expQGapBases, obsQGapBases) - self.assertEquals(expTGapCount, obsTGapCount) - self.assertEquals(expTGapBases, obsTGapBases) - self.assertEquals(expstrand, obsstrand) - self.assertEquals(expQName, obsQName) - self.assertEquals(expQSize, obsQSize) - self.assertEquals(expQStart, obsQStart) - self.assertEquals(expQEnd, obsQEnd) - self.assertEquals(expTName, obsTName) - self.assertEquals(expTSize, obsTSize) - self.assertEquals(expTStart, obsTStart) - self.assertEquals(expTEnd, obsTEnd) - self.assertEquals(expblockCount, obsblockCount) - self.assertEquals(expblockSizes, obsblockSizes) - self.assertEquals(expqStarts, obsqStarts) - self.assertEquals(exptStarts, obstStarts) - - def test_eq_Equals_case1(self): - BlatParser1 = BlatParser() - BlatParser1.setMatch("315") - BlatParser1.setMismatch("20") - BlatParser1.setRepMatch("0") - BlatParser1.setN("0") - BlatParser1.setQGapCount("3") - BlatParser1.setQGapBases("10") - BlatParser1.setTGapCount("2") - BlatParser1.setTGapBases("9") - BlatParser1.setStrand("+") - BlatParser1.setQName("MRRE1H001H13FM1") - BlatParser1.setQSize("378") - BlatParser1.setQStart("0") - BlatParser1.setQEnd("345") - BlatParser1.setTName("chr16") - BlatParser1.setTSize("22053297") - BlatParser1.setTStart("21686950") - BlatParser1.setTEnd("21687294") - BlatParser1.setBlockCount("4") - BlatParser1.setBlockSizes("76,185,7,67,") - BlatParser1.setQStarts("0,77,263,278,") - BlatParser1.setTStarts("21686950,21687026,21687213,21687227,") - - BlatParser2 = BlatParser() - BlatParser2.setMatch("315") - BlatParser2.setMismatch("20") - BlatParser2.setRepMatch("0") - BlatParser2.setN("0") - BlatParser2.setQGapCount("3") - BlatParser2.setQGapBases("10") - BlatParser2.setTGapCount("2") - BlatParser2.setTGapBases("9") - BlatParser2.setStrand("+") - BlatParser2.setQName("MRRE1H001H13FM1") - BlatParser2.setQSize("378") - BlatParser2.setQStart("0") - BlatParser2.setQEnd("345") - BlatParser2.setTName("chr16") - BlatParser2.setTSize("22053297") - BlatParser2.setTStart("21686950") - BlatParser2.setTEnd("21687294") - BlatParser2.setBlockCount("4") - BlatParser2.setBlockSizes("76,185,7,67,") - BlatParser2.setQStarts("0,77,263,278,") - BlatParser2.setTStarts("21686950,21687026,21687213,21687227,") - - self.assertTrue(BlatParser1 == BlatParser2) - - def test_eq_Equals_case2(self): - BlatParser1 = BlatParser() - BlatParser1.setMatch("315") - BlatParser1.setMismatch("20") - BlatParser1.setRepMatch("0") - BlatParser1.setN("0") - BlatParser1.setQGapCount("3") - BlatParser1.setQGapBases("10") - BlatParser1.setTGapCount("2") - BlatParser1.setTGapBases("9") - BlatParser1.setStrand("+") - BlatParser1.setQName("MRRE1H001H13FM1") - BlatParser1.setQSize("378") - BlatParser1.setQStart("0") - BlatParser1.setQEnd("345") - BlatParser1.setTName("chr16") - BlatParser1.setTSize("22053297") - BlatParser1.setTStart("21686950") - BlatParser1.setTEnd("21687294") - BlatParser1.setBlockCount("4") - BlatParser1.setBlockSizes("76,185,7,67,") - BlatParser1.setQStarts("0,77,263,278,") - BlatParser1.setTStarts("21686950,21687026,21687213,21687227,") - - BlatParser2 = BlatParser() - BlatParser2.setMatch("315") - BlatParser2.setMismatch("20") - BlatParser2.setRepMatch("0") - BlatParser2.setN("0") - BlatParser2.setQGapCount("3") - BlatParser2.setQGapBases("10") - BlatParser2.setTGapCount("2") - BlatParser2.setTGapBases("9") - BlatParser2.setStrand("+") - BlatParser2.setQName("TotoFM2") - BlatParser2.setQSize("378") - BlatParser2.setQStart("0") - BlatParser2.setQEnd("345") - BlatParser2.setTName("chr16") - BlatParser2.setTSize("22053297") - BlatParser2.setTStart("21686950") - BlatParser2.setTEnd("21687294") - BlatParser2.setBlockCount("4") - BlatParser2.setBlockSizes("76,185,7,67,") - BlatParser2.setQStarts("0,77,263,278,") - BlatParser2.setTStarts("21686950,21687026,21687213,21687227,") - - self.assertTrue(BlatParser1 == BlatParser2) - - def test_eq_notEquals(self): - BlatParser1 = BlatParser() - BlatParser1.setMatch("315") - BlatParser1.setMismatch("20") - BlatParser1.setRepMatch("0") - BlatParser1.setN("0") - BlatParser1.setQGapCount("3") - BlatParser1.setQGapBases("10") - BlatParser1.setTGapCount("2") - BlatParser1.setTGapBases("9") - BlatParser1.setStrand("+") - BlatParser1.setQName("MRRE1H001H13FM1") - BlatParser1.setQSize("378") - BlatParser1.setQStart("0") - BlatParser1.setQEnd("345") - BlatParser1.setTName("chr16") - BlatParser1.setTSize("22053297") - BlatParser1.setTStart("21686950") - BlatParser1.setTEnd("21687294") - BlatParser1.setBlockCount("4") - BlatParser1.setBlockSizes("76,185,7,67,") - BlatParser1.setQStarts("0,77,263,278,") - BlatParser1.setTStarts("21686950,21687026,21687213,21687227,") - - BlatParser2 = BlatParser() - BlatParser2.setMatch("315") - BlatParser2.setMismatch("20") - BlatParser2.setRepMatch("0") - BlatParser2.setN("0") - BlatParser2.setQGapCount("3") - BlatParser2.setQGapBases("10") - BlatParser2.setTGapCount("2") - BlatParser2.setTGapBases("9") - BlatParser2.setStrand("+") - BlatParser2.setQName("TotoFM2") - BlatParser2.setQSize("378") - BlatParser2.setQStart("0") - BlatParser2.setQEnd("345") - BlatParser2.setTName("chr8") - BlatParser2.setTSize("2205") - BlatParser2.setTStart("2124") - BlatParser2.setTEnd("2168") - BlatParser2.setBlockCount("4") - BlatParser2.setBlockSizes("76,185,7,67,") - BlatParser2.setQStarts("0,77,263,278,") - BlatParser2.setTStarts("21686950,21687026,21687213,21687227,") - - self.assertFalse(BlatParser1 == BlatParser2) - -if __name__ == "__main__": - unittest.main() \ No newline at end of file
--- a/commons/core/parsing/test/Test_BlatToGff.py Mon Apr 29 03:26:07 2013 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,28 +0,0 @@ -from commons.core.parsing.BlatToGff import BlatToGff -import unittest - - -class Test_BlatToGff(unittest.TestCase): - - - def test_convertBlatObjectToGffLine(self): - blatLine = '315\t20\t0\t0\t3\t10\t2\t9\t+\tMRRE1H001H13FM1\t378\t0\t345\tchr16\t22053297\t21686950\t21687294\t4\t76,185,7,67,\t0,77,263,278,\t21686950,21687026,21687213,21687227,\n' - nbLine = 15 - iBlatToGff = BlatToGff() - BlatToGff._methodName = '' - obsGffLine = iBlatToGff.convertBlatObjectToGffLine(blatLine, nbLine) - expGffLine = 'chr16\tBlatToGff\tBES\t21686950\t21687294\t.\t+\t.\tID=MRRE1H001H13FM1;Name=MRRE1H001H13FM1;bes_start=21686950;bes_end=21687294;bes_size=22053297\n' - self.assertEquals(expGffLine, obsGffLine) - - def test_convertBlatObjectToGffLine_with_methodName(self): - blatLine = '315\t20\t0\t0\t3\t10\t2\t9\t+\tMRRE1H001H13FM1\t378\t0\t345\tchr16\t22053297\t21686950\t21687294\t4\t76,185,7,67,\t0,77,263,278,\t21686950,21687026,21687213,21687227,\n' - nbLine = 15 - iBlatToGff = BlatToGff() - BlatToGff._methodName = 'Test' - obsGffLine = iBlatToGff.convertBlatObjectToGffLine(blatLine, nbLine) - expGffLine = 'chr16\tBlatToGff\tTest:BES\t21686950\t21687294\t.\t+\t.\tID=MRRE1H001H13FM1;Name=MRRE1H001H13FM1;bes_start=21686950;bes_end=21687294;bes_size=22053297\n' - self.assertEquals(expGffLine, obsGffLine) - - -if __name__ == "__main__": - unittest.main() \ No newline at end of file
--- a/commons/core/parsing/test/Test_BlatToGffForBesPaired.py Mon Apr 29 03:26:07 2013 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,292 +0,0 @@ -import unittest, os -from commons.core.parsing.BlatToGffForBesPaired import BlatToGffForBesPaired - - -class Test_BlatToGffForBesPaired(unittest.TestCase): - - - def test_convertBlatObjectToGffLine(self): - blatLine = '315\t20\t0\t0\t3\t10\t2\t9\t+\tMRRE1H001H13FM1\t378\t0\t345\tchr16\t22053297\t21686950\t21687294\t4\t76,185,7,67,\t0,77,263,278,\t21686950,21687026,21687213,21687227,\n' - nbLine = 15 - besFastaFileName = '%s/commons/core/parsing/test/besSequences.fasta' % os.environ['REPET_PATH'] - self._writeBesSequences(besFastaFileName) - iBlatToGffForBesPaired = BlatToGffForBesPaired() - iBlatToGffForBesPaired._methodName = '' - iBlatToGffForBesPaired._inputFileFasta = besFastaFileName - obsGffLine, obsBesName, obsBesSeq, obsBesType = iBlatToGffForBesPaired.convertBlatObjectToGffLine(blatLine, nbLine) - expGffLine = 'chr16\tBlatToGffForBesPaired\tBES\t21686950\t21687294\t.\t+\t.\tID=MRRE1H001H13FM1;Name=MRRE1H001H13FM1;bes_start=21686950;bes_end=21687294;bes_size=22053297;muscadine_seq=AGACCTACTACGACGTACGATCGATCGACTGCTAGCTAGCTAGGCCTAGCTAGCTAGCTAGCTAGCTAGC\n' - expBesName = 'MRRE1H001H13FM1' - expBesSeq = 'AGACCTACTACGACGTACGATCGATCGACTGCTAGCTAGCTAGGCCTAGCTAGCTAGCTAGCTAGCTAGC' - expBesType = 'FM' - self.assertEquals(expGffLine, obsGffLine) - self.assertEquals(expBesName, obsBesName) - self.assertEquals(expBesSeq, obsBesSeq) - self.assertEquals(expBesType, obsBesType) - os.remove(besFastaFileName) - - def test_convertBlatObjectToGffLine_with_methodName(self): - blatLine = '315\t20\t0\t0\t3\t10\t2\t9\t+\tMRRE1H001H13FM1\t378\t0\t345\tchr16\t22053297\t21686950\t21687294\t4\t76,185,7,67,\t0,77,263,278,\t21686950,21687026,21687213,21687227,\n' - nbLine = 15 - besFastaFileName = '%s/commons/core/parsing/test/besSequences.fasta' % os.environ['REPET_PATH'] - self._writeBesSequences(besFastaFileName) - iBlatToGffForBesPaired = BlatToGffForBesPaired() - iBlatToGffForBesPaired._methodName = 'Test' - iBlatToGffForBesPaired._inputFileFasta = besFastaFileName - obsGffLine, obsBesName, obsBesSeq, obsBesType = iBlatToGffForBesPaired.convertBlatObjectToGffLine(blatLine, nbLine) - expGffLine = 'chr16\tBlatToGffForBesPaired\tTest:BES\t21686950\t21687294\t.\t+\t.\tID=MRRE1H001H13FM1;Name=MRRE1H001H13FM1;bes_start=21686950;bes_end=21687294;bes_size=22053297;muscadine_seq=AGACCTACTACGACGTACGATCGATCGACTGCTAGCTAGCTAGGCCTAGCTAGCTAGCTAGCTAGCTAGC\n' - expBesName = 'MRRE1H001H13FM1' - expBesSeq = 'AGACCTACTACGACGTACGATCGATCGACTGCTAGCTAGCTAGGCCTAGCTAGCTAGCTAGCTAGCTAGC' - expBesType = 'FM' - self.assertEquals(expGffLine, obsGffLine) - self.assertEquals(expBesName, obsBesName) - self.assertEquals(expBesSeq, obsBesSeq) - self.assertEquals(expBesType, obsBesType) - os.remove(besFastaFileName) - - def test_getBesName(self): - col9 = 'ID=machin1;Name=machin1;bes_start=21736364;bes_end=21737069;bes_size=22053297\n' - iBlatToGffForBesPaired = BlatToGffForBesPaired() - obsBesName = iBlatToGffForBesPaired.getBesName(col9) - expBesName = 'machin1' - self.assertEquals(expBesName, obsBesName) - - def test_checkBesNames_OK(self): - besName1 = 'MRRE1H001H13FM8' - besName2 = 'MRRE1H001H13RM2' - line = 10 - iBlatToGffForBesPaired = BlatToGffForBesPaired() - self.assertTrue(iBlatToGffForBesPaired.checkBesNames(besName1, besName2, line)) - - def test_checkBesNames_NOK(self): - besName1 = 'MRRE1H001H13FM1' - besName2 = 'TOTORM2' - line = 10 - iBlatToGffForBesPaired = BlatToGffForBesPaired() - self.assertFalse(iBlatToGffForBesPaired.checkBesNames(besName1, besName2, line)) - - def test_checkBesPositions_OK1(self): - tBes1 = ('chr16', 25, 150) - tBes2 = ('chr16', 300, 350) - iBlatToGffForBesPaired = BlatToGffForBesPaired() - self.assertTrue(iBlatToGffForBesPaired.checkBesPositions(tBes1, tBes2)) - - def test_checkBesPositions_OK2(self): - tBes1 = ('chr16', 300, 350) - tBes2 = ('chr16', 3, 50) - iBlatToGffForBesPaired = BlatToGffForBesPaired() - self.assertTrue(iBlatToGffForBesPaired.checkBesPositions(tBes1, tBes2)) - - def test_checkBesPositions_NOK1(self): - tBes1 = ('chr16', 25, 150) - tBes2 = ('chr14', 300, 350) - iBlatToGffForBesPaired = BlatToGffForBesPaired() - self.assertFalse(iBlatToGffForBesPaired.checkBesPositions(tBes1, tBes2)) - - def test_checkBesPositions_NOK2(self): - tBes1 = ('chr16', 25, 300) - tBes2 = ('chr16', 150, 350) - iBlatToGffForBesPaired = BlatToGffForBesPaired() - self.assertFalse(iBlatToGffForBesPaired.checkBesPositions(tBes1, tBes2)) - - def test_checkBesPositions_NOK3(self): - tBes1 = ('chr16', 25, 300) - tBes2 = ('chr16', 1, 50) - iBlatToGffForBesPaired = BlatToGffForBesPaired() - self.assertFalse(iBlatToGffForBesPaired.checkBesPositions(tBes1, tBes2)) - - def test_getBacName(self): - besName = 'MRRE1H001H13FM1' - iBlatToGffForBesPaired = BlatToGffForBesPaired() - obsBacName = iBlatToGffForBesPaired.getBacName(besName) - expBacName = 'MRRE1H001H13' - self.assertEquals(expBacName, obsBacName) - - def test_getBacPositions_case1(self): - tBes1 = ('chr16', 25, 300) - tBes2 = ('chr16', 1, 50) - iBlatToGffForBesPaired = BlatToGffForBesPaired() - obsStart, obsEnd = iBlatToGffForBesPaired.getBacPositions(tBes1, tBes2) - expStart = 1 - expEnd = 300 - self.assertEquals(expStart, obsStart) - self.assertEquals(expEnd, obsEnd) - - def test_getBacPositions_case2(self): - tBes1 = ('chr16', 1, 300) - tBes2 = ('chr16', 1000, 50000) - iBlatToGffForBesPaired = BlatToGffForBesPaired() - obsStart, obsEnd = iBlatToGffForBesPaired.getBacPositions(tBes1, tBes2) - expStart = 1 - expEnd = 50000 - self.assertEquals(expStart, obsStart) - self.assertEquals(expEnd, obsEnd) - - def test_getBacPositions_case3(self): - tBes1 = ('chr16', 300, 25) - tBes2 = ('chr16', 1, 50) - iBlatToGffForBesPaired = BlatToGffForBesPaired() - obsStart, obsEnd = iBlatToGffForBesPaired.getBacPositions(tBes1, tBes2) - expStart = 1 - expEnd = 300 - self.assertEquals(expStart, obsStart) - self.assertEquals(expEnd, obsEnd) - - def test_createGffLineForBac(self): - gffLine1 = 'chr16\tBlatToGffForBesPaired\tBES\t10\t1000\t.\t+\t.\tID=MRRE1H001H13FM1;Name=MRRE1H001H13FM1;bes_start=10;bes_end=1000;bes_size=991;muscadine_seq=ATCGATCGATCGATCGTACGACTGACTCGATCAGCTAGCTAGCTAGCACATCG\n' - nameBes1 = 'MRRE1H001H13FM1' - seqBes1 = 'ATCGATCGATCGATCGTACGACTGACTCGATCAGCTAGCTAGCTAGCACATCG' - typeBes1 = 'FM' - gffLine2 = 'chr16\tBlatToGffForBesPaired\tBES\t2000\t3000\t.\t+\t.\tID=MRRE1H001H13RM2;Name=MRRE1H001H13RM2;bes_start=2000;bes_end=3000;bes_size=1001;muscadine_seq=CAGCTAGCTACGTACGTACGTACGTAGCATCGATCGAT\n' - nameBes2 = 'MRRE1H001H13RM2' - seqBes2 = 'CAGCTAGCTACGTACGTACGTACGTAGCATCGATCGAT' - typeBes2 = 'RM' - line = 2 - iBlatToGffForBesPaired = BlatToGffForBesPaired() - iBlatToGffForBesPaired._methodName = '' - obsGffBac = iBlatToGffForBesPaired.createGffLineForBac(gffLine1, nameBes1, seqBes1, typeBes1, gffLine2, nameBes2, seqBes2, typeBes2, line) - expGffBac = 'chr16\tBlatToGffForBesPaired\tBAC\t10\t3000\t.\t.\t.\tID=MRRE1H001H13;Name=MRRE1H001H13;bac_start=10;bac_end=3000;bac_size=2991;besFM_name=MRRE1H001H13FM1;muscadine_besFM_seq=ATCGATCGATCGATCGTACGACTGACTCGATCAGCTAGCTAGCTAGCACATCG;besRM_name=MRRE1H001H13RM2;muscadine_besRM_seq=CAGCTAGCTACGTACGTACGTACGTAGCATCGATCGAT\n' - self.assertEquals(expGffBac, obsGffBac) - - def test_createGffLineForBac_with_methodName(self): - gffLine1 = 'chr16\tBlatToGffForBesPaired\tBES\t10\t1000\t.\t+\t.\tID=MRRE1H001H13FM1;Name=MRRE1H001H13FM1;bes_start=10;bes_end=1000;bes_size=991;muscadine_seq=ATCGATCGATCGATCGTACGACTGACTCGATCAGCTAGCTAGCTAGCACATCG\n' - nameBes1 = 'MRRE1H001H13FM1' - seqBes1 = 'ATCGATCGATCGATCGTACGACTGACTCGATCAGCTAGCTAGCTAGCACATCG' - typeBes1 = 'FM' - gffLine2 = 'chr16\tBlatToGffForBesPaired\tBES\t2000\t3000\t.\t+\t.\tID=MRRE1H001H13RM2;Name=MRRE1H001H13RM2;bes_start=2000;bes_end=3000;bes_size=1001;muscadine_seq=CAGCTAGCTACGTACGTACGTACGTAGCATCGATCGAT\n' - nameBes2 = 'MRRE1H001H13RM2' - seqBes2 = 'CAGCTAGCTACGTACGTACGTACGTAGCATCGATCGAT' - typeBes2 = 'RM' - line = 2 - iBlatToGffForBesPaired = BlatToGffForBesPaired() - iBlatToGffForBesPaired._methodName = 'Test' - obsGffBac = iBlatToGffForBesPaired.createGffLineForBac(gffLine1, nameBes1, seqBes1, typeBes1, gffLine2, nameBes2, seqBes2, typeBes2, line) - expGffBac = 'chr16\tBlatToGffForBesPaired\tTest:BAC\t10\t3000\t.\t.\t.\tID=MRRE1H001H13;Name=MRRE1H001H13;bac_start=10;bac_end=3000;bac_size=2991;besFM_name=MRRE1H001H13FM1;muscadine_besFM_seq=ATCGATCGATCGATCGTACGACTGACTCGATCAGCTAGCTAGCTAGCACATCG;besRM_name=MRRE1H001H13RM2;muscadine_besRM_seq=CAGCTAGCTACGTACGTACGTACGTAGCATCGATCGAT\n' - self.assertEquals(expGffBac, obsGffBac) - - def test_extractBesSequenceFromFastaFileToTmpFile_with_seqInMultipleLines(self): - fastaFileName = '%s/commons/core/parsing/test/sequence.fasta' % os.environ['REPET_PATH'] - fastaFile = open(fastaFileName, 'w') - fastaFile.write('>seq1\n') - fastaFile.write('ATCGATCGATCGATCGATACGTCAGCGATCGAT\n') - fastaFile.write('TACGTACGTACGATCGATCGATCGATCGATCGG\n') - fastaFile.write('TACGTACGTACGATCGACGATCGATGCCGATCG\n') - fastaFile.write('ATCGAC\n') - fastaFile.write('>seq2\n') - fastaFile.write('GTCTAGCTAGCTATATCTGACTGACGCGACGGT\n') - fastaFile.write('CATGCTAGCTAGCACTGTACAGCTATCGATGCT\n') - fastaFile.write('ACTGACACTGTACGTAC\n') - fastaFile.write('>seq3\n') - fastaFile.write('ACTCGATCGATCG\n') - fastaFile.close() - - seqName = 'seq1' - iBlatToGffForBesPaired = BlatToGffForBesPaired() - iBlatToGffForBesPaired._inputFileFasta = fastaFileName - obsSeq = iBlatToGffForBesPaired.extractBesSequenceFromFastaFile(seqName, 5) - expSeq = 'ATCGATCGATCGATCGATACGTCAGCGATCGATTACGTACGTACGATCGATCGATCGATCGATCGGTACGTACGTACGATCGACGATCGATGCCGATCGATCGAC' - self.assertEquals(expSeq, obsSeq) - os.remove(fastaFileName) - - def test_extractBesSequenceFromFastaFileToTmpFile_with_seqInUniqueLines(self): - fastaFileName = '%s/commons/core/parsing/test/sequence.fasta' % os.environ['REPET_PATH'] - fastaFile = open(fastaFileName, 'w') - fastaFile.write('>seq1\n') - fastaFile.write('ATCGATCGATCGATCGATACGTCAGCGATCGAT\n') - fastaFile.write('TACGTACGTACGATCGATCGATCGATCGATCGG\n') - fastaFile.write('TACGTACGTACGATCGACGATCGATGCCGATCG\n') - fastaFile.write('ATCGAC\n') - fastaFile.write('>seq2\n') - fastaFile.write('GTCTAGCTAGCTATATCTGACTGACGCGACGGT\n') - fastaFile.write('CATGCTAGCTAGCACTGTACAGCTATCGATGCT\n') - fastaFile.write('ACTGACACTGTACGTAC\n') - fastaFile.write('>seq3\n') - fastaFile.write('ACTCGATCGATCG\n') - fastaFile.close() - - seqName = 'seq3' - iBlatToGffForBesPaired = BlatToGffForBesPaired() - iBlatToGffForBesPaired._inputFileFasta = fastaFileName - obsSeq = iBlatToGffForBesPaired.extractBesSequenceFromFastaFile(seqName, 5) - expSeq = 'ACTCGATCGATCG' - self.assertEquals(expSeq, obsSeq) - os.remove(fastaFileName) - - def test_extractBesSequenceFromFastaFileToTmpFile_without_seqInThisFastaFile(self): - fastaFileName = '%s/commons/core/parsing/test/sequence.fasta' % os.environ['REPET_PATH'] - fastaFile = open(fastaFileName, 'w') - fastaFile.write('>seq1\n') - fastaFile.write('ATCGATCGATCGATCGATACGTCAGCGATCGAT\n') - fastaFile.write('TACGTACGTACGATCGATCGATCGATCGATCGG\n') - fastaFile.write('TACGTACGTACGATCGACGATCGATGCCGATCG\n') - fastaFile.write('ATCGAC\n') - fastaFile.write('>seq2\n') - fastaFile.write('GTCTAGCTAGCTATATCTGACTGACGCGACGGT\n') - fastaFile.write('CATGCTAGCTAGCACTGTACAGCTATCGATGCT\n') - fastaFile.write('ACTGACACTGTACGTAC\n') - fastaFile.write('>seq3\n') - fastaFile.write('ACTCGATCGATCG\n') - fastaFile.close() - - seqName = 'seq4' - iBlatToGffForBesPaired = BlatToGffForBesPaired() - iBlatToGffForBesPaired._inputFileFasta = fastaFileName - obsSeq = iBlatToGffForBesPaired.extractBesSequenceFromFastaFile(seqName, 5) - expSeq = 'NA' - self.assertEquals(expSeq, obsSeq) - os.remove(fastaFileName) - - def test_getBesFmAndRmNamesAndSequences_case1(self): - nameBes1 = 'MRRE1H0072T1FM1' - seqBes1 = 'TACGTCAGCTGATCGACATCGATCGATCGATCGATCGATCGTC' - typeBes1 = 'FM' - nameBes2 = 'MRRE1H0072T1RM3' - seqBes2 = 'GCGCAGCGCGACTGACTTGACTATCGGCGACGCGACGATCGATCGATCGATC' - typeBes2 = 'RM' - iBlatToGffForBesPaired = BlatToGffForBesPaired() - obsNameBesFM, obsSeqBesFM, obsNameBesRM, obsSeqBesRM = iBlatToGffForBesPaired.getBesFmAndRmNamesAndSequences(nameBes1, seqBes1, typeBes1, nameBes2, seqBes2, typeBes2) - expNameBesFM = 'MRRE1H0072T1FM1' - expNameBesRM = 'MRRE1H0072T1RM3' - expSeqBesFM = 'TACGTCAGCTGATCGACATCGATCGATCGATCGATCGATCGTC' - expSeqBesRM = 'GCGCAGCGCGACTGACTTGACTATCGGCGACGCGACGATCGATCGATCGATC' - self.assertEquals(expNameBesFM, obsNameBesFM) - self.assertEquals(expNameBesRM, obsNameBesRM) - self.assertEquals(expSeqBesFM, obsSeqBesFM) - self.assertEquals(expSeqBesRM, obsSeqBesRM) - - def test_getBesFmAndRmNamesAndSequences_case2(self): - nameBes1 = 'MRRE1H0072T1RM1' - seqBes1 = 'TACGTCAGCTGATCGACATCGATCGATCGATCGATCGATCGTC' - typeBes1 = 'RM' - nameBes2 = 'MRRE1H0072T1FM3' - seqBes2 = 'GCGCAGCGCGACTGACTTGACTATCGGCGACGCGACGATCGATCGATCGATC' - typeBes2 = 'FM' - iBlatToGffForBesPaired = BlatToGffForBesPaired() - obsNameBesFM, obsSeqBesFM, obsNameBesRM, obsSeqBesRM = iBlatToGffForBesPaired.getBesFmAndRmNamesAndSequences(nameBes1, seqBes1, typeBes1, nameBes2, seqBes2, typeBes2) - expNameBesFM = 'MRRE1H0072T1FM3' - expNameBesRM = 'MRRE1H0072T1RM1' - expSeqBesFM = 'GCGCAGCGCGACTGACTTGACTATCGGCGACGCGACGATCGATCGATCGATC' - expSeqBesRM = 'TACGTCAGCTGATCGACATCGATCGATCGATCGATCGATCGTC' - self.assertEquals(expNameBesFM, obsNameBesFM) - self.assertEquals(expNameBesRM, obsNameBesRM) - self.assertEquals(expSeqBesFM, obsSeqBesFM) - self.assertEquals(expSeqBesRM, obsSeqBesRM) - - def _writeBesSequences(self, fileName): - file = open(fileName, 'w') - file.write('>MRRE1H001H13RM1\n') - file.write('ATACGTACGTACGTCAGTACGACTACGTACGTACGTACGTCGTAC\n') - file.write('TACGTCAGCATCGTACGTACGTACGTCGTGCTGGCTAGCTGACGA\n') - file.write('ATCGATCGATCGATCGACATCGTACG\n') - file.write('>MRRE1H001H13FM1\n') - file.write('AGACCTACTACGACGTACGATCGATCGACTGCTAGCTAGCTAGGC\n') - file.write('CTAGCTAGCTAGCTAGCTAGCTAGC\n') - file.write('>MRRE2H007A13FM3\n') - file.write('TCAGCTAGCTGACTGACATCGCTAGCTAGCTAGCTAGCTAGCTAG\n') - file.write('TACGCAGCTACGGGGCATCGACTAAAAAAAAAAACCCACGACTGG\n') - file.write('CTAGCTAGCTAGCTAGCTAGCTACGTCGATCGATCGACTGTTGCC\n') - file.write('TCAGCTACTGACTGATCGATCGACTACGTACGTACGTAC\n') - file.close() - - -if __name__ == "__main__": - unittest.main() \ No newline at end of file
--- a/commons/core/parsing/test/Test_BowtieParser.py Mon Apr 29 03:26:07 2013 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,57 +0,0 @@ -from commons.core.parsing.BowtieParser import BowtieParser -import unittest, os - - -class Test_BlatParser(unittest.TestCase): - - - def test_simple(self): - fileName = "tmpFile.bowtie" - handle = open(fileName, "w") - handle.write("HWI-EAS179_0053:2:1:1365:7879#0/2\t+\tchrXHet\t191698\tACCGCTGAACCACTTTCATNCNTGGGATTGTGAACTGAAACTGTTCACATGAACTTGGAATTCCCAGTAAGTGTGA\tLcaYcacLaTdd`dacacYBaBTa^^TL^M`]`^aa`Tca`LaLTUa]a_bcLcTMMMMa^a^`bT`ccT_UbM_B\t0\t19:G>N,21:T>N\n") - handle.write("HWI-EAS179_0053:2:1:1365:7879#0/1\t-\tchrXHet\t191803\tCCCCTTGTACACACCGCCCGTCGCTACTACCGATTGAATTATGTAGTGAGGTCTCCGGACGTGATCACTGTGACGC\tBBBBBBBBB`O`DS]]aYabaaa[ULYLY]^b`^a^aZZZ_LLLca_a_b^^aYdbd``d^ccaY`_caccc^acc\t0\t33:T>G,72:T>C\n") - handle.write("HWI-EAS179_0053:2:1:1371:11420#0/2\t+\tchr3L\t16569206\tTATGAGCGCCAATTTTGCANTTTTATTTTTGTACAAGCCAAGGGTTTTGCAACATTCACAGCGCTTGCCACTTGTC\tcY^bcYLcaL]`]]`aaTaBaab^_ZZ__R[`[cYccc^Ybb^_L`L`Y`aM_a_TcTcc`LL]]MYaYabbTY`^\t0\t19:G>N\n") - handle.write("HWI-EAS179_0053:2:1:1371:11420#0/1\t-\tchr3L\t16569298\tAATGAACCATTGTAATTACCCACAACACATACAGTCACACACGAGATGCACACAAGTCGGAAACGGAAGCGAGACG\tBBBBBBBBBBBBBBBBBBBBBB^T`]Y^`KZY__LY_a]^T^ccYaYY__YT]VZbL]`b^cLT^a^caccYbT^b\t0\n") - handle.close() - - parser = BowtieParser("tmpFile.bowtie", 0) - for cpt, mapping in enumerate(parser.getIterator()): - transcript = mapping.getTranscript() - if cpt == 0: - self.assertEquals(transcript.getName(), "HWI-EAS179_0053:2:1:1365:7879#0/2") - self.assertEquals(transcript.getChromosome(), "chrXHet") - self.assertEquals(transcript.getDirection(), 1) - self.assertEquals(transcript.getStart(), 191699) - self.assertEquals(transcript.getEnd(), 191774) - self.assertEquals(transcript.getTagValue("nbMismatches"), 2) - elif cpt == 1: - self.assertEquals(transcript.getName(), "HWI-EAS179_0053:2:1:1365:7879#0/1") - self.assertEquals(transcript.getChromosome(), "chrXHet") - self.assertEquals(transcript.getDirection(), -1) - self.assertEquals(transcript.getStart(), 191804) - self.assertEquals(transcript.getEnd(), 191879) - self.assertEquals(transcript.getTagValue("nbMismatches"), 2) - elif cpt == 2: - self.assertEquals(transcript.getName(), "HWI-EAS179_0053:2:1:1371:11420#0/2") - self.assertEquals(transcript.getChromosome(), "chr3L") - self.assertEquals(transcript.getDirection(), 1) - self.assertEquals(transcript.getStart(), 16569207) - self.assertEquals(transcript.getEnd(), 16569282) - self.assertEquals(transcript.getTagValue("nbMismatches"), 1) - elif cpt == 3: - self.assertEquals(transcript.getName(), "HWI-EAS179_0053:2:1:1371:11420#0/1") - self.assertEquals(transcript.getChromosome(), "chr3L") - self.assertEquals(transcript.getDirection(), -1) - self.assertEquals(transcript.getStart(), 16569299) - self.assertEquals(transcript.getEnd(), 16569374) - self.assertEquals(transcript.getTagValue("nbMismatches"), 0) - else: - self.fail() - - os.remove(fileName) - - - -if __name__ == "__main__": - unittest.main() -
--- a/commons/core/parsing/test/Test_CoordsParser.py Mon Apr 29 03:26:07 2013 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,105 +0,0 @@ -import unittest -from commons.core.parsing.CoordsParser import CoordsParser -from SMART.Java.Python.mappingToCoordinates import MappingToCoordinates - - -class Test_CoordsParser(unittest.TestCase): - - - def test_Parser(self): - parser = CoordsParser("data/testCoordsParser.coords") - - cpt = 0 - for mapping in parser.getIterator(): - transcript = mapping.getTranscript() - cpt += 1 - if cpt == 1: - self.assertEqual(transcript.getChromosome(), "scaffold_1") - self.assertEqual(transcript.getName(), "gi|240254421:1-30427671") - self.assertEqual(transcript.getStart(), 1) - self.assertEqual(transcript.getEnd(), 6251) - self.assertEqual(transcript.getDirection(), -1) - self.assertEqual(transcript.getNbExons(), 1) - self.assertEqual(transcript.getTagValue("identity"), 89.030000000000001) - exons = transcript.getExons() - self.assertEqual(exons[0].getChromosome(), "scaffold_1") - self.assertEqual(exons[0].getStart(), 1) - self.assertEqual(exons[0].getEnd(), 6251) - self.assertEqual(exons[0].getDirection(), -1) - self.assertEqual(transcript.getSize(), 6251) - elif cpt == 2: - self.assertEqual(transcript.getChromosome(), "scaffold_1") - self.assertEqual(transcript.getName(), "gi|240254421:1-30427671") - self.assertEqual(transcript.getStart(), 9127) - self.assertEqual(transcript.getEnd(), 11947) - self.assertEqual(transcript.getDirection(), -1) - self.assertEqual(transcript.getNbExons(), 1) - self.assertEqual(transcript.getTagValue("identity"), 90.450000000000003) - exons = transcript.getExons() - self.assertEqual(exons[0].getChromosome(), "scaffold_1") - self.assertEqual(exons[0].getStart(), 9127) - self.assertEqual(exons[0].getEnd(), 11947) - self.assertEqual(exons[0].getDirection(), -1) - self.assertEqual(transcript.getSize(), 2821) - if cpt == 3: - self.assertEqual(transcript.getChromosome(), "scaffold_1") - self.assertEqual(transcript.getName(), "gi|240254421:1-30427671") - self.assertEqual(transcript.getStart(), 12201) - self.assertEqual(transcript.getEnd(), 12953) - self.assertEqual(transcript.getDirection(), -1) - self.assertEqual(transcript.getNbExons(), 1) - exons = transcript.getExons() - self.assertEqual(exons[0].getChromosome(), "scaffold_1") - self.assertEqual(exons[0].getStart(), 12201) - self.assertEqual(exons[0].getEnd(), 12953) - self.assertEqual(exons[0].getDirection(), -1) - self.assertEqual(transcript.getSize(), 753) - - def test_Parser_showcoord(self): - parser = CoordsParser("data/testCoordsParser_showcoord.coords") - expTranscriptCount = 1 - obsTranscriptCount = 0 - - for mapping in parser.getIterator(): - transcript = mapping.getTranscript() - obsTranscriptCount += 1 - self.assertEqual(transcript.getChromosome(), "mivi_sl_A1_scaffold00001") - self.assertEqual(transcript.getName(), "mivi_sl_A2_scaffold00003") - self.assertEqual(transcript.getStart(), 296) - self.assertEqual(transcript.getEnd(), 2292) - self.assertEqual(transcript.getDirection(), 1) - self.assertEqual(transcript.getTagValue("identity"), 98.30) - self.assertEqual(transcript.getTagValue("target_pident"), 98.30) - self.assertEqual(transcript.getTagValue("target_pcover"), 3.32) - self.assertEqual(transcript.getTagValue("target_length"), 60273) - self.assertEqual(transcript.getTagValue("Target"), "mivi_sl_A2_scaffold00003 1 2001") - self.assertEqual(transcript.getSize(), 1997) - - self.assertEquals(expTranscriptCount, obsTranscriptCount) - - def test_Parser_showcoord_promer(self): - parser = CoordsParser("data/testCoordsParser_showcoord_promer.coords") - expTranscriptCount = 1 - obsTranscriptCount = 0 - - for mapping in parser.getIterator(): - transcript = mapping.getTranscript() - obsTranscriptCount += 1 - self.assertEqual(transcript.getChromosome(), "mivi_sl_A1_scaffold00001") - self.assertEqual(transcript.getName(), "mivi_sl_A2_scaffold00003") - self.assertEqual(transcript.getStart(), 291) - self.assertEqual(transcript.getEnd(), 1229) - self.assertEqual(transcript.getDirection(), -1) - self.assertEqual(transcript.getTagValue("identity"), 94.25) - self.assertEqual(transcript.getTagValue("target_pident"), 94.25) - self.assertEqual(transcript.getTagValue("target_pcover"), 1.56) - self.assertEqual(transcript.getTagValue("target_length"), 60273) - self.assertEqual(transcript.getTagValue("Target"), "mivi_sl_A2_scaffold00003 939 1") - self.assertEqual(transcript.getSize(), 939) - - self.assertEquals(expTranscriptCount, obsTranscriptCount) - - -if __name__ == '__main__': - unittest.main() -
--- a/commons/core/parsing/test/Test_CrossSsrAndBesMappedByBlatToGff.py Mon Apr 29 03:26:07 2013 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,70 +0,0 @@ -from commons.core.parsing.CrossSsrAndBesMappedByBlatToGff import CrossSsrAndBesMappedByBlatToGff -from commons.core.parsing.SsrParser import SsrParser - -import unittest -import os - - -class Test_CrossSsrAndBesMappedByBlatToGff(unittest.TestCase): - - - def test_createDictOfSsrParser(self): - obsDictSsrParser = {} - - ssrFileName = 'input_SSR_Resuts.tab' - SSRFile = open(ssrFileName, 'w') - SSRFile.write('BES_name\tBES_redundancy\tSSR_di/tri/tetranucleotide\tSSR_Motif\tSSR_Motif_number\tSSR_start\tSSR_end\tBES_size\n') - SSRFile.write('MRRE1H001A12RM1\t1\t4\tttta\t6\t272\t295\t724\n') - SSRFile.write('MRRE1H001B01RM1\t1\t3\taat\t8\t264\t287\t683\n') - SSRFile.write('MRRE1H001B07RM1\t1\t2\tta\t19\t153\t190\t734\n') - SSRFile.write('MRRE1H001B07RM1\t2\t2\taata\t25\t83\t90\t734\n') - SSRFile.close() - - iCrossSsrAndBesMappedByBlatToGff = CrossSsrAndBesMappedByBlatToGff() - iCrossSsrAndBesMappedByBlatToGff._inputFileSSR = ssrFileName - obsDictSsrParser = iCrossSsrAndBesMappedByBlatToGff.createDictOfSsrParser(obsDictSsrParser) - - SsrParser1 = SsrParser('MRRE1H001A12RM1', '1', '4', 'ttta', '6', '272', '295', '724') - SsrParser2 = SsrParser('MRRE1H001B01RM1', '1', '3', 'aat', '8', '264', '287', '683') - SsrParser3 = SsrParser('MRRE1H001B07RM1', '1', '2', 'ta', '19', '153', '190', '734') - SsrParser4 = SsrParser('MRRE1H001B07RM1', '2', '2', 'aata', '25', '83', '90', '734') - - expDictSsrParser = { - 'MRRE1H001A12RM1': [SsrParser1], - 'MRRE1H001B01RM1': [SsrParser2], - 'MRRE1H001B07RM1': [SsrParser3, SsrParser4] - } - - self.assertEquals(expDictSsrParser, obsDictSsrParser) - os.remove(ssrFileName) - - def test_convertSSRPositionsToBlatPositions_strand_FW(self): - ssrPos = 75 - blatPosStart = 10501475 - blatPosEnd = 10501985 - strand = '+' - iCrossSsrAndBesMappedByBlatToGff = CrossSsrAndBesMappedByBlatToGff() - obsNewPos = iCrossSsrAndBesMappedByBlatToGff.convertSSRPositionsToChromPositions(ssrPos, blatPosStart, blatPosEnd, strand) - expNewPos = 10501549 - self.assertEquals(expNewPos, obsNewPos) - - def test_convertSSRPositionsToBlatPositions_strand_RV(self): - ssrPos = 75 - blatPosStart = 10501475 - blatPosEnd = 10501985 - strand = '-' - iCrossSsrAndBesMappedByBlatToGff = CrossSsrAndBesMappedByBlatToGff() - obsNewPos = iCrossSsrAndBesMappedByBlatToGff.convertSSRPositionsToChromPositions(ssrPos, blatPosStart, blatPosEnd, strand) - expNewPos = 10501911 - self.assertEquals(expNewPos, obsNewPos) - - def test_getSsrMotif(self): - ssrMotif = 'atg' - ssrNbMotif = 4 - iCrossSsrAndBesMappedByBlatToGff = CrossSsrAndBesMappedByBlatToGff() - obsSsrSeq = iCrossSsrAndBesMappedByBlatToGff.getSsrSeq(ssrMotif, ssrNbMotif) - expSsrSeq = 'atgatgatgatg' - self.assertEquals(expSsrSeq, obsSsrSeq) - -if __name__ == "__main__": - unittest.main() \ No newline at end of file
--- a/commons/core/parsing/test/Test_F_BlatToGff.py Mon Apr 29 03:26:07 2013 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,77 +0,0 @@ -import unittest -import os -from commons.core.utils.FileUtils import FileUtils - - -class Test_F_BlatToGff(unittest.TestCase): - - - def test_run(self): - blatInputFileName = '%s/commons/core/parsing/test/inputFile.tab' % os.environ['REPET_PATH'] - self._writeBlatInputFile(blatInputFileName) - - obsOutputFileName = '%s/commons/core/parsing/test/obsOutputFile.tab' % os.environ['REPET_PATH'] - cmd = 'python %s/commons/core/parsing/BlatToGff.py -i %s -o %s' % (os.environ['REPET_PATH'], blatInputFileName, obsOutputFileName) - os.system(cmd) - - expOutputFileName = '%s/commons/core/parsing/test/expOutputFile.tab' % os.environ['REPET_PATH'] - self._writeExpOutputFile(expOutputFileName) - - self.assertTrue(FileUtils.are2FilesIdentical(expOutputFileName, obsOutputFileName)) - os.remove(blatInputFileName) - os.remove(obsOutputFileName) - os.remove(expOutputFileName) - - def test_run_with_methodName(self): - blatInputFileName = '%s/commons/core/parsing/test/inputFile.tab' % os.environ['REPET_PATH'] - self._writeBlatInputFile(blatInputFileName) - - obsOutputFileName = '%s/commons/core/parsing/test/obsOutputFile.tab' % os.environ['REPET_PATH'] - cmd = 'python %s/commons/core/parsing/BlatToGff.py -i %s -o %s -n Test_F' % (os.environ['REPET_PATH'], blatInputFileName, obsOutputFileName) - os.system(cmd) - - expOutputFileName = '%s/commons/core/parsing/test/expOutputFile.tab' % os.environ['REPET_PATH'] - self._writeExpOutputFile_with_methodName(expOutputFileName) - - self.assertTrue(FileUtils.are2FilesIdentical(expOutputFileName, obsOutputFileName)) - os.remove(blatInputFileName) - os.remove(obsOutputFileName) - os.remove(expOutputFileName) - - def _writeBlatInputFile(self, blatInputFileName): - file = open(blatInputFileName, 'w') - file.write('psLayout version 3\n') - file.write('\n') - file.write('match mis- rep. N\'s Q gap Q gap T gap T gap strand Q Q Q Q T T T T block blockSizes qStarts tStarts\n') - file.write(' match match count bases count bases name size start end name size start end count\n') - file.write('---------------------------------------------------------------------------------------------------------------------------------------------------------------\n') - file.write('315\t20\t0\t0\t3\t10\t2\t9\t+\tMRRE1H001H13FM1\t378\t0\t345\tchr16\t22053297\t21686950\t21687294\t4\t76,185,7,67,\t0,77,263,278,\t21686950,21687026,21687213,21687227,\n') - file.write('690\t11\t0\t0\t1\t3\t2\t4\t-\tmachin1\t704\t0\t704\tchr16\t22053297\t21736364\t21737069\t3\t40,647,14,\t0,43,690,\t21736364,21736406,21737055,\n') - file.write('554\t26\t0\t0\t1\t16\t1\t17\t-\tMRRE1H032F08FM1\t606\t10\t606\tchr11\t19818926\t3725876\t3726473\t2\t553,27,\t10,579,\t3725876,3726446,\n') - file.write('620\t23\t0\t0\t0\t0\t0\t0\t-\tmachin2\t643\t0\t643\tchr11\t19818926\t3794984\t3795627\t1\t643,\t0,\t3794984,\n') - file.write('347\t25\t0\t0\t0\t0\t0\t0\t-\tmachin3\t393\t21\t393\tchr18\t29360087\t12067347\t12067719\t1\t372,\t0,\t12067347,\n') - file.close() - - def _writeExpOutputFile(self, expOutputFileName): - file = open(expOutputFileName, 'w') - file.write('##gff-version 3\n') - file.write('chr16\tBlatToGff\tBES\t21686950\t21687294\t.\t+\t.\tID=MRRE1H001H13FM1;Name=MRRE1H001H13FM1;bes_start=21686950;bes_end=21687294;bes_size=22053297\n') - file.write('chr16\tBlatToGff\tBES\t21736364\t21737069\t.\t+\t.\tID=machin1;Name=machin1;bes_start=21736364;bes_end=21737069;bes_size=22053297\n') - file.write('chr11\tBlatToGff\tBES\t3725876\t3726473\t.\t+\t.\tID=MRRE1H032F08FM1;Name=MRRE1H032F08FM1;bes_start=3725876;bes_end=3726473;bes_size=19818926\n') - file.write('chr11\tBlatToGff\tBES\t3794984\t3795627\t.\t+\t.\tID=machin2;Name=machin2;bes_start=3794984;bes_end=3795627;bes_size=19818926\n') - file.write('chr18\tBlatToGff\tBES\t12067347\t12067719\t.\t+\t.\tID=machin3;Name=machin3;bes_start=12067347;bes_end=12067719;bes_size=29360087\n') - file.close() - - def _writeExpOutputFile_with_methodName(self, expOutputFileName): - file = open(expOutputFileName, 'w') - file.write('##gff-version 3\n') - file.write('chr16\tBlatToGff\tTest_F:BES\t21686950\t21687294\t.\t+\t.\tID=MRRE1H001H13FM1;Name=MRRE1H001H13FM1;bes_start=21686950;bes_end=21687294;bes_size=22053297\n') - file.write('chr16\tBlatToGff\tTest_F:BES\t21736364\t21737069\t.\t+\t.\tID=machin1;Name=machin1;bes_start=21736364;bes_end=21737069;bes_size=22053297\n') - file.write('chr11\tBlatToGff\tTest_F:BES\t3725876\t3726473\t.\t+\t.\tID=MRRE1H032F08FM1;Name=MRRE1H032F08FM1;bes_start=3725876;bes_end=3726473;bes_size=19818926\n') - file.write('chr11\tBlatToGff\tTest_F:BES\t3794984\t3795627\t.\t+\t.\tID=machin2;Name=machin2;bes_start=3794984;bes_end=3795627;bes_size=19818926\n') - file.write('chr18\tBlatToGff\tTest_F:BES\t12067347\t12067719\t.\t+\t.\tID=machin3;Name=machin3;bes_start=12067347;bes_end=12067719;bes_size=29360087\n') - file.close() - - -if __name__ == "__main__": - unittest.main() \ No newline at end of file
--- a/commons/core/parsing/test/Test_F_BlatToGffForBesPaired.py Mon Apr 29 03:26:07 2013 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,117 +0,0 @@ -import unittest -import os -from commons.core.utils.FileUtils import FileUtils - - -class Test_F_BlatToGffForBesPaired(unittest.TestCase): - - - def test_run(self): - blatInputFileName = '%s/commons/core/parsing/test/inputFile.tab' % os.environ['REPET_PATH'] - self._writeBlatInputFileName(blatInputFileName) - fastaInputFileName = '%s/commons/core/parsing/test/sequences.fasta' % os.environ['REPET_PATH'] - self._writeFastaInputFile(fastaInputFileName) - - obsOutputFileName = '%s/commons/core/parsing/test/obsOutputFileName.gff' % os.environ['REPET_PATH'] - cmd = 'python %s/commons/core/parsing/BlatToGffForBesPaired.py -i %s -f %s -o %s' % (os.environ['REPET_PATH'], blatInputFileName, fastaInputFileName, obsOutputFileName) - os.system(cmd) - - expOutputFileName = '%s/commons/core/parsing/test/expOutputFileName.gff' % os.environ['REPET_PATH'] - self._writeExpOutputFileName(expOutputFileName) - self.assertTrue(FileUtils.are2FilesIdentical(expOutputFileName, obsOutputFileName)) - os.remove(blatInputFileName) - os.remove(fastaInputFileName) - os.remove(expOutputFileName) - os.remove(obsOutputFileName) - - def test_run_with_methodName(self): - blatInputFileName = '%s/commons/core/parsing/test/inputFile.tab' % os.environ['REPET_PATH'] - self._writeBlatInputFileName(blatInputFileName) - fastaInputFileName = '%s/commons/core/parsing/test/sequences.fasta' % os.environ['REPET_PATH'] - self._writeFastaInputFile(fastaInputFileName) - - obsOutputFileName = '%s/commons/core/parsing/test/obsOutputFileName.gff' % os.environ['REPET_PATH'] - cmd = 'python %s/commons/core/parsing/BlatToGffForBesPaired.py -i %s -f %s -o %s -n TestF' % (os.environ['REPET_PATH'], blatInputFileName, fastaInputFileName, obsOutputFileName) - os.system(cmd) - - expOutputFileName = '%s/commons/core/parsing/test/expOutputFileName.gff' % os.environ['REPET_PATH'] - self._writeExpOutputFileName_with_methodName(expOutputFileName) - self.assertTrue(FileUtils.are2FilesIdentical(expOutputFileName, obsOutputFileName)) - os.remove(blatInputFileName) - os.remove(fastaInputFileName) - os.remove(expOutputFileName) - os.remove(obsOutputFileName) - - def _writeBlatInputFileName(self, blatInputFileName): - file = open(blatInputFileName, 'w') - file.write('psLayout version 3\n') - file.write('\n') - file.write('match mis- rep. N\'s Q gap Q gap T gap T gap strand Q Q Q Q T T T T block blockSizes qStarts tStarts\n') - file.write(' match match count bases count bases name size start end name size start end count\n') - file.write('---------------------------------------------------------------------------------------------------------------------------------------------------------------\n') - file.write('315\t20\t0\t0\t3\t10\t2\t9\t+\tMRRE1H001H13FM1\t378\t0\t345\tchr16\t22053297\t21686950\t21687294\t4\t76,185,7,67,\t0,77,263,278,\t21686950,21687026,21687213,21687227,\n') - file.write('690\t11\t0\t0\t1\t3\t2\t4\t-\tMRRE1H001H13RM1\t704\t0\t704\tchr16\t22053297\t21736364\t21737069\t3\t40,647,14,\t0,43,690,\t21736364,21736406,21737055,\n') - file.write('554\t26\t0\t0\t1\t16\t1\t17\t+\tMACHINFM1\t606\t10\t606\tchr11\t19818926\t3725876\t3726473\t2\t553,27,\t10,579,\t3725876,3726446,\n') - file.write('620\t23\t0\t0\t0\t0\t0\t0\t-\tBIDULERM1\t643\t0\t643\tchr11\t19818926\t3794984\t3795627\t1\t643,\t0,\t3794984,\n') - file.write('554\t26\t0\t0\t1\t16\t1\t17\t+\tMRRE1H032F08FM1\t606\t10\t606\tchr11\t19818926\t3725876\t3726473\t2\t553,27,\t10,579,\t3725876,3726446,\n') - file.write('620\t23\t0\t0\t0\t0\t0\t0\t-\tMRRE1H032F08RM1\t643\t0\t643\tchr11\t19818926\t3794984\t3795627\t1\t643,\t0,\t3794984,\n') - file.write('347\t25\t0\t0\t0\t0\t0\t0\t-\tMRRE1B072N12FM1\t393\t21\t393\tchr18\t29360087\t12067347\t12067719\t1\t372,\t0,\t12067347,\n') - file.write('294\t16\t0\t0\t0\t0\t2\t393\t+\tMRRE1B072N12RM1\t339\t21\t331\tchr18\t29360087\t11978635\t11979338\t3\t146,154,10,\t21,167,321,\t11978635,11978783,11979328,\n') - file.close() - - def _writeExpOutputFileName(self, expOutputFileName): - file = open(expOutputFileName, 'w') - file.write('##gff-version 3\n') - file.write('chr16\tBlatToGffForBesPaired\tBES\t21686950\t21687294\t.\t+\t.\tID=MRRE1H001H13FM1;Name=MRRE1H001H13FM1;bes_start=21686950;bes_end=21687294;bes_size=22053297;muscadine_seq=ATCGATCGATCGATCGATCGATCGATCGATCGATCGATCGATCGATCGATCCTACGTAGCTAGCTAGCTAGCTGATCGATCGATCGTAGCTAGCTAGCTAGCACTGCTAGCTACG\n') - file.write('chr16\tBlatToGffForBesPaired\tBES\t21736364\t21737069\t.\t+\t.\tID=MRRE1H001H13RM1;Name=MRRE1H001H13RM1;bes_start=21736364;bes_end=21737069;bes_size=22053297;muscadine_seq=ACTGATCGATCGTACGTACGATCGCTGATCGTACGTACGATCGATCGATCGACTCGATCGTAGCTAGCTACGTCAGTCAGACTGACTGCTGCGCTGCATCGTACTGATCGACTGATCGACTGC\n') - file.write('chr16\tBlatToGffForBesPaired\tBAC\t21686950\t21737069\t.\t.\t.\tID=MRRE1H001H13;Name=MRRE1H001H13;bac_start=21686950;bac_end=21737069;bac_size=50120;besFM_name=MRRE1H001H13FM1;muscadine_besFM_seq=ATCGATCGATCGATCGATCGATCGATCGATCGATCGATCGATCGATCGATCCTACGTAGCTAGCTAGCTAGCTGATCGATCGATCGTAGCTAGCTAGCTAGCACTGCTAGCTACG;besRM_name=MRRE1H001H13RM1;muscadine_besRM_seq=ACTGATCGATCGTACGTACGATCGCTGATCGTACGTACGATCGATCGATCGACTCGATCGTAGCTAGCTACGTCAGTCAGACTGACTGCTGCGCTGCATCGTACTGATCGACTGATCGACTGC\n') - file.write('chr11\tBlatToGffForBesPaired\tBES\t3725876\t3726473\t.\t+\t.\tID=MRRE1H032F08FM1;Name=MRRE1H032F08FM1;bes_start=3725876;bes_end=3726473;bes_size=19818926;muscadine_seq=TCAGCTATCGATCGTACGTACGTCGATCGTACGTACGTACGATCGATCGATATCGATCG\n') - file.write('chr11\tBlatToGffForBesPaired\tBES\t3794984\t3795627\t.\t+\t.\tID=MRRE1H032F08RM1;Name=MRRE1H032F08RM1;bes_start=3794984;bes_end=3795627;bes_size=19818926;muscadine_seq=ATCGACTGATCGTCGATCGTACGATCGACTGATCGATCGATCGACTGACTGTACGTACGTAC\n') - file.write('chr11\tBlatToGffForBesPaired\tBAC\t3725876\t3795627\t.\t.\t.\tID=MRRE1H032F08;Name=MRRE1H032F08;bac_start=3725876;bac_end=3795627;bac_size=69752;besFM_name=MRRE1H032F08FM1;muscadine_besFM_seq=TCAGCTATCGATCGTACGTACGTCGATCGTACGTACGTACGATCGATCGATATCGATCG;besRM_name=MRRE1H032F08RM1;muscadine_besRM_seq=ATCGACTGATCGTCGATCGTACGATCGACTGATCGATCGATCGACTGACTGTACGTACGTAC\n') - file.write('chr18\tBlatToGffForBesPaired\tBES\t12067347\t12067719\t.\t+\t.\tID=MRRE1B072N12FM1;Name=MRRE1B072N12FM1;bes_start=12067347;bes_end=12067719;bes_size=29360087;muscadine_seq=ATCGTACGTACGATCGATCGCATGACTACGT\n') - file.write('chr18\tBlatToGffForBesPaired\tBES\t11978635\t11979338\t.\t+\t.\tID=MRRE1B072N12RM1;Name=MRRE1B072N12RM1;bes_start=11978635;bes_end=11979338;bes_size=29360087;muscadine_seq=TACGTACGATCGACTGATGCTAGCTAGCTCC\n') - file.write('chr18\tBlatToGffForBesPaired\tBAC\t11978635\t12067719\t.\t.\t.\tID=MRRE1B072N12;Name=MRRE1B072N12;bac_start=11978635;bac_end=12067719;bac_size=89085;besFM_name=MRRE1B072N12FM1;muscadine_besFM_seq=ATCGTACGTACGATCGATCGCATGACTACGT;besRM_name=MRRE1B072N12RM1;muscadine_besRM_seq=TACGTACGATCGACTGATGCTAGCTAGCTCC\n') - file.close() - - def _writeExpOutputFileName_with_methodName(self, expOutputFileName): - file = open(expOutputFileName, 'w') - file.write('##gff-version 3\n') - file.write('chr16\tBlatToGffForBesPaired\tTestF:BES\t21686950\t21687294\t.\t+\t.\tID=MRRE1H001H13FM1;Name=MRRE1H001H13FM1;bes_start=21686950;bes_end=21687294;bes_size=22053297;muscadine_seq=ATCGATCGATCGATCGATCGATCGATCGATCGATCGATCGATCGATCGATCCTACGTAGCTAGCTAGCTAGCTGATCGATCGATCGTAGCTAGCTAGCTAGCACTGCTAGCTACG\n') - file.write('chr16\tBlatToGffForBesPaired\tTestF:BES\t21736364\t21737069\t.\t+\t.\tID=MRRE1H001H13RM1;Name=MRRE1H001H13RM1;bes_start=21736364;bes_end=21737069;bes_size=22053297;muscadine_seq=ACTGATCGATCGTACGTACGATCGCTGATCGTACGTACGATCGATCGATCGACTCGATCGTAGCTAGCTACGTCAGTCAGACTGACTGCTGCGCTGCATCGTACTGATCGACTGATCGACTGC\n') - file.write('chr16\tBlatToGffForBesPaired\tTestF:BAC\t21686950\t21737069\t.\t.\t.\tID=MRRE1H001H13;Name=MRRE1H001H13;bac_start=21686950;bac_end=21737069;bac_size=50120;besFM_name=MRRE1H001H13FM1;muscadine_besFM_seq=ATCGATCGATCGATCGATCGATCGATCGATCGATCGATCGATCGATCGATCCTACGTAGCTAGCTAGCTAGCTGATCGATCGATCGTAGCTAGCTAGCTAGCACTGCTAGCTACG;besRM_name=MRRE1H001H13RM1;muscadine_besRM_seq=ACTGATCGATCGTACGTACGATCGCTGATCGTACGTACGATCGATCGATCGACTCGATCGTAGCTAGCTACGTCAGTCAGACTGACTGCTGCGCTGCATCGTACTGATCGACTGATCGACTGC\n') - file.write('chr11\tBlatToGffForBesPaired\tTestF:BES\t3725876\t3726473\t.\t+\t.\tID=MRRE1H032F08FM1;Name=MRRE1H032F08FM1;bes_start=3725876;bes_end=3726473;bes_size=19818926;muscadine_seq=TCAGCTATCGATCGTACGTACGTCGATCGTACGTACGTACGATCGATCGATATCGATCG\n') - file.write('chr11\tBlatToGffForBesPaired\tTestF:BES\t3794984\t3795627\t.\t+\t.\tID=MRRE1H032F08RM1;Name=MRRE1H032F08RM1;bes_start=3794984;bes_end=3795627;bes_size=19818926;muscadine_seq=ATCGACTGATCGTCGATCGTACGATCGACTGATCGATCGATCGACTGACTGTACGTACGTAC\n') - file.write('chr11\tBlatToGffForBesPaired\tTestF:BAC\t3725876\t3795627\t.\t.\t.\tID=MRRE1H032F08;Name=MRRE1H032F08;bac_start=3725876;bac_end=3795627;bac_size=69752;besFM_name=MRRE1H032F08FM1;muscadine_besFM_seq=TCAGCTATCGATCGTACGTACGTCGATCGTACGTACGTACGATCGATCGATATCGATCG;besRM_name=MRRE1H032F08RM1;muscadine_besRM_seq=ATCGACTGATCGTCGATCGTACGATCGACTGATCGATCGATCGACTGACTGTACGTACGTAC\n') - file.write('chr18\tBlatToGffForBesPaired\tTestF:BES\t12067347\t12067719\t.\t+\t.\tID=MRRE1B072N12FM1;Name=MRRE1B072N12FM1;bes_start=12067347;bes_end=12067719;bes_size=29360087;muscadine_seq=ATCGTACGTACGATCGATCGCATGACTACGT\n') - file.write('chr18\tBlatToGffForBesPaired\tTestF:BES\t11978635\t11979338\t.\t+\t.\tID=MRRE1B072N12RM1;Name=MRRE1B072N12RM1;bes_start=11978635;bes_end=11979338;bes_size=29360087;muscadine_seq=TACGTACGATCGACTGATGCTAGCTAGCTCC\n') - file.write('chr18\tBlatToGffForBesPaired\tTestF:BAC\t11978635\t12067719\t.\t.\t.\tID=MRRE1B072N12;Name=MRRE1B072N12;bac_start=11978635;bac_end=12067719;bac_size=89085;besFM_name=MRRE1B072N12FM1;muscadine_besFM_seq=ATCGTACGTACGATCGATCGCATGACTACGT;besRM_name=MRRE1B072N12RM1;muscadine_besRM_seq=TACGTACGATCGACTGATGCTAGCTAGCTCC\n') - file.close() - - def _writeFastaInputFile(self, fileName): - file = open(fileName, 'w') - file.write('>MRRE1H001H13FM1\n') - file.write('ATCGATCGATCGATCGATCGATCGATCGATCGATCGATCGATCGATCGATC\n') - file.write('CTACGTAGCTAGCTAGCTAGCTGATCGATCGATCGTAGCTAGCTAGCTAGC\n') - file.write('ACTGCTAGCTACG\n') - file.write('>MRRE1H001H13RM1\n') - file.write('ACTGATCGATCGTACGTACGATCGCTGATCGTACGTACGATCGATCGATCG\n') - file.write('ACTCGATCGTAGCTAGCTACGTCAGTCAGACTGACTGCTGCGCTGCATCGT\n') - file.write('ACTGATCGACTGATCGACTGC\n') - file.write('>MRRE1H032F08FM1\n') - file.write('TCAGCTATCGATCGTACGTACGTCGATCGTACGTACGTACGATCGATCGAT\n') - file.write('ATCGATCG\n') - file.write('>MRRE1H032F08RM1\n') - file.write('ATCGACTGATCGTCGATCGTACGATCGACTGATCGATCGATCGACTGACTG\n') - file.write('TACGTACGTAC\n') - file.write('>MRRE1B072N12FM1\n') - file.write('ATCGTACGTACGATCGATCGCATGACTACGT\n') - file.write('>MRRE1B072N12RM1\n') - file.write('TACGTACGATCGACTGATGCTAGCTAGCTCC\n') - file.write('>MACHINFM1\n') - file.write('ATCGTACGCTAGCTAGTCGATCGATCGATCGATCG\n') - file.write('>BIDULERM1\n') - file.write('ACTCGATCGACTACGTACGTAGACTG\n') - file.close() - -if __name__ == "__main__": - unittest.main() \ No newline at end of file
--- a/commons/core/parsing/test/Test_F_CrossSsrAndBesMappedByBlatToGff.py Mon Apr 29 03:26:07 2013 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,66 +0,0 @@ -import unittest -import os -from commons.core.utils.FileUtils import FileUtils - -class Test_F_CrossSsrAndBesMappedByBlatToGff(unittest.TestCase): - - - def test_run(self): - ssrInputFileName = '%s/commons/core/parsing/test/ssrInputFile.tab' % os.environ['REPET_PATH'] - self._writeSsrInputFile(ssrInputFileName) - blatInputFileName = '%s/commons/core/parsing/test/blatInputFile.tab' % os.environ['REPET_PATH'] - self._writeBlatInputFile(blatInputFileName) - - obsOutputFileName = '%s/commons/core/parsing/test/obsOutputFile.tab' % os.environ['REPET_PATH'] - cmd = 'python %s/commons/core/parsing/CrossSsrAndBesMappedByBlatToGff.py -s %s -b %s -o %s' % (os.environ['REPET_PATH'], ssrInputFileName, blatInputFileName, obsOutputFileName) - os.system(cmd) - - expOutputFileName = '%s/commons/core/parsing/test/expOutputFile.tab' % os.environ['REPET_PATH'] - self._writeExpOutputFile(expOutputFileName) - - self.assertTrue(FileUtils.are2FilesIdentical(expOutputFileName, obsOutputFileName)) - os.remove(ssrInputFileName) - os.remove(blatInputFileName) - os.remove(obsOutputFileName) - os.remove(expOutputFileName) - - def _writeBlatInputFile(self, blatInputFileName): - file = open(blatInputFileName, 'w') - file.write('psLayout version 3\n') - file.write('\n') - file.write('match mis- rep. N\'s Q gap Q gap T gap T gap strand Q Q Q Q T T T T block blockSizes qStarts tStarts\n') - file.write(' match match count bases count bases name size start end name size start end count\n') - file.write('---------------------------------------------------------------------------------------------------------------------------------------------------------------\n') - file.write('315\t20\t0\t0\t3\t10\t2\t9\t+\tMRRE1H001H13FM1\t378\t0\t345\tchr16\t22053297\t21686950\t21687294\t4\t76,185,7,67,\t0,77,263,278,\t21686950,21687026,21687213,21687227,\n') - file.write('690\t11\t0\t0\t1\t3\t2\t4\t-\tmachin1\t704\t0\t704\tchr16\t22053297\t21736364\t21737069\t3\t40,647,14,\t0,43,690,\t21736364,21736406,21737055,\n') - file.write('554\t26\t0\t0\t1\t16\t1\t17\t-\tMRRE1H032F08FM1\t606\t10\t606\tchr11\t19818926\t3725876\t3726473\t2\t553,27,\t10,579,\t3725876,3726446,\n') - file.write('620\t23\t0\t0\t0\t0\t0\t0\t-\tmachin2\t643\t0\t643\tchr11\t19818926\t3794984\t3795627\t1\t643,\t0,\t3794984,\n') - file.write('347\t25\t0\t0\t0\t0\t0\t0\t-\tmachin3\t393\t21\t393\tchr18\t29360087\t12067347\t12067719\t1\t372,\t0,\t12067347,\n') - file.close() - - def _writeSsrInputFile(self, ssrInputFileName): - file = open(ssrInputFileName, 'w') - file.write('BES_name BES_redundancy SSR_di/tri/tetranucleotide SSR_Motif SSR_Motif_number SSR_start SSR_end BES_size\n') - file.write('truc1\t1\t4\tttta\t6\t272\t295\t724\n') - file.write('truc2\t1\t3\taat\t8\t264\t287\t683\n') - file.write('MRRE1H001H13FM1\t1\t2\tta\t19\t153\t190\t378\n') - file.write('truc3\t2\t4\taaag\t8\t518\t549\t734\n') - file.write('MRRE1H032F08FM1\t1\t4\taaat\t7\t544\t571\t606\n') - file.write('MRRE1H032F08FM1\t2\t2\tag\t10\t587\t606\t606\n') - file.write('truc4\t1\t2\tat\t16\t519\t550\t672\n') - file.write('truc5\t1\t3\ttct\t8\t205\t228\t752\n') - file.write('truc6\t1\t2\tat\t33\t287\t352\t569\n') - file.close() - - def _writeExpOutputFile(self, expOutputFileName): - file = open(expOutputFileName, 'w') - file.write('##gff-version 3\n') - file.write('chr16\tCrossSsrAndBesAlignedByBlat\tSSR\t21687102\t21687139\t.\t+\t.\tID=SSR_MRRE1H001H13FM1_1;Name=SSR_MRRE1H001H13FM1_1;bes_name=MRRE1H001H13FM1;bes_size=378;bes_matchstart=0;bes_matchend=345;bes_redundancy=1;ssr_type=2;ssr_motif=ta;ssr_motif_number=19;ssr_start=153;ssr_end=190;muscadine_seq=tatatatatatatatatatatatatatatatatatata\n') - file.write('chr11\tCrossSsrAndBesAlignedByBlat\tSSR\t3725930\t3725903\t.\t-\t.\tID=SSR_MRRE1H032F08FM1_1;Name=SSR_MRRE1H032F08FM1_1;bes_name=MRRE1H032F08FM1;bes_size=606;bes_matchstart=10;bes_matchend=606;bes_redundancy=1;ssr_type=4;ssr_motif=aaat;ssr_motif_number=7;ssr_start=544;ssr_end=571;muscadine_seq=aaataaataaataaataaataaataaat\n') - file.write('chr11\tCrossSsrAndBesAlignedByBlat\tSSR\t3725887\t3725868\t.\t-\t.\tID=SSR_MRRE1H032F08FM1_2;Name=SSR_MRRE1H032F08FM1_2;bes_name=MRRE1H032F08FM1;bes_size=606;bes_matchstart=10;bes_matchend=606;bes_redundancy=2;ssr_type=2;ssr_motif=ag;ssr_motif_number=10;ssr_start=587;ssr_end=606;muscadine_seq=agagagagagagagagagag\n') - file.close() - -if __name__ == "__main__": - unittest.main() - - \ No newline at end of file
--- a/commons/core/parsing/test/Test_F_VarscanToVCF.py Mon Apr 29 03:26:07 2013 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,173 +0,0 @@ -import unittest -import os -from commons.core.parsing.VarscanToVCF import VarscanToVCF -from commons.core.utils.FileUtils import FileUtils - -class Test_F_VarscanToVCF(unittest.TestCase): - - def setUp(self): - self.emptyVarscanFileName = "emptyfile.varscan" - self.varscanFileName = "%s/commons/core/parsing/test/data/sampleForTestVarscanToVCF.varscan" % os.environ["REPET_PATH"] - self.expVCFFileName = "expVCF.vcf" - self.obsVCFFileName = "obsVCF.vcf" - - def tearDown(self): - if os.path.exists(self.emptyVarscanFileName): - os.remove(self.emptyVarscanFileName) - os.remove(self.expVCFFileName) - os.remove(self.obsVCFFileName) - - def test_VarscanToVCF(self): - self._writeExpOutputFile() - iVarscanFile = VarscanToVCF(self.varscanFileName, self.obsVCFFileName, doClean = True) - iVarscanFile.run() - self.assertTrue(FileUtils.are2FilesIdentical(self.expVCFFileName, self.obsVCFFileName)) - - def test_VarscanToVCF_empty(self): - self._writeInputFile_empty() - self._writeExpOutputFile_empty() - iVarscanFile = VarscanToVCF(self.emptyVarscanFileName, self.obsVCFFileName, doClean = True) - iVarscanFile.run() - self.assertTrue(FileUtils.are2FilesIdentical(self.expVCFFileName, self.obsVCFFileName)) - - def _writeInputFile_empty(self): - with open(self.emptyVarscanFileName, "w") as varscanFileName: - varscanFileName.write("Chrom\tPosition\tRef\tCons\tReads1\tReads2\tVarFreq\tStrands1\tStrands2\tQual1\tQual2\tPvalue\tMapQual1\tMapQual2\tReads1Plus\tReads1Minus\tReads2Plus\tReads2Minus\tVarAllele\n") - - def _writeExpOutputFile_empty(self): - with open(self.expVCFFileName, "w") as vcfFileName: - vcfFileName.write("##fileformat=VCFv4.1\n") - vcfFileName.write("#CHROM\tPOS\tID\tREF\tALT\tQUAL\tFILTER\tINFO\n") - - def _writeExpOutputFile(self): - with open(self.expVCFFileName, "w") as vcfFileName: - vcfFileName.write("##fileformat=VCFv4.1\n") - vcfFileName.write("#CHROM\tPOS\tID\tREF\tALT\tQUAL\tFILTER\tINFO\n") - vcfFileName.write("chr1\t10759\t.\tC\tT\t0.087739243\t.\tAF=0.3333;DP=3;RBQ=65;ABQ=47\n") - vcfFileName.write("chr1\t12438\t.\tC\tG\t0.087739243\t.\tAF=0.5000;DP=2;RBQ=62;ABQ=42\n") - vcfFileName.write("chr1\t17432\t.\tA\tC\t0.087739243\t.\tAF=0.3333;DP=3;RBQ=55;ABQ=37\n") - vcfFileName.write("chr1\t20391\t.\tA\tT\t0.087739243\t.\tAF=0.3333;DP=3;RBQ=56;ABQ=37\n") - vcfFileName.write("chr1\t21207\t.\tT\tC\t0.087739243\t.\tAF=0.3333;DP=3;RBQ=55;ABQ=41\n") - vcfFileName.write("chr1\t26057\t.\tT\tG\t0.087739243\t.\tAF=0.1538;DP=13;RBQ=60;ABQ=37\n") - vcfFileName.write("chr1\t36838\t.\tT\tC\t0.087739243\t.\tAF=0.3333;DP=3;RBQ=61;ABQ=36\n") - vcfFileName.write("chr1\t37751\t.\tA\tC\t0.087739243\t.\tAF=0.2500;DP=4;RBQ=65;ABQ=42\n") - vcfFileName.write("chr1\t43500\t.\tC\tG\t0.087739243\t.\tAF=0.2500;DP=4;RBQ=65;ABQ=40\n") - vcfFileName.write("chr1\t50481\t.\tA\tT\t0.087739243\t.\tAF=0.3333;DP=3;RBQ=60;ABQ=40\n") - vcfFileName.write("chr1\t106849\t.\tC\tG\t0.087739243\t.\tAF=0.2500;DP=4;RBQ=65;ABQ=40\n") - vcfFileName.write("chr1\t108726\t.\tT\tA\t0.087739243\t.\tAF=0.3333;DP=3;RBQ=50;ABQ=41\n") - vcfFileName.write("chr1\t114204\t.\tG\tC\t0.087739243\t.\tAF=0.3333;DP=6;RBQ=60;ABQ=39\n") - vcfFileName.write("chr1\t115030\t.\tA\tC\t0.087739243\t.\tAF=0.2500;DP=4;RBQ=57;ABQ=41\n") - vcfFileName.write("chr1\t116173\t.\tA\tG\t0.087739243\t.\tAF=0.2222;DP=9;RBQ=58;ABQ=39\n") - vcfFileName.write("chr1\t118433\t.\tG\tC\t0.087739243\t.\tAF=0.1429;DP=7;RBQ=64;ABQ=50\n") - vcfFileName.write("chr1\t119042\t.\tA\tG\t0.087739243\t.\tAF=0.1667;DP=6;RBQ=55;ABQ=51\n") - vcfFileName.write("chr1\t139219\t.\tA\tG\t0.087739243\t.\tAF=0.5000;DP=2;RBQ=65;ABQ=46\n") - vcfFileName.write("chr1\t140710\t.\tA\tG\t0.087739243\t.\tAF=0.1818;DP=11;RBQ=63;ABQ=41\n") - vcfFileName.write("chr1\t144419\t.\tT\tC\t0.087739243\t.\tAF=0.2500;DP=4;RBQ=63;ABQ=39\n") - vcfFileName.write("chr1\t146099\t.\tG\tC\t0.087739243\t.\tAF=0.3333;DP=3;RBQ=64;ABQ=38\n") - vcfFileName.write("chr1\t146435\t.\tT\tC\t0.087739243\t.\tAF=0.3889;DP=18;RBQ=60;ABQ=24\n") - vcfFileName.write("chr1\t147232\t.\tA\tT\t0.087739243\t.\tAF=0.3333;DP=3;RBQ=64;ABQ=39\n") - vcfFileName.write("chr1\t158703\t.\tA\tC\t0.087739243\t.\tAF=0.3333;DP=3;RBQ=60;ABQ=55\n") - vcfFileName.write("chr1\t166732\t.\tA\tT\t0.087739243\t.\tAF=0.3333;DP=6;RBQ=62;ABQ=24\n") - vcfFileName.write("chr1\t179887\t.\tC\tA\t0.087739243\t.\tAF=0.2500;DP=4;RBQ=64;ABQ=39\n") - vcfFileName.write("chr1\t185971\t.\tA\tG\t0.087739243\t.\tAF=0.2500;DP=4;RBQ=55;ABQ=40\n") - vcfFileName.write("chr1\t211074\t.\tA\tC\t0.087739243\t.\tAF=0.2500;DP=4;RBQ=65;ABQ=40\n") - vcfFileName.write("chr1\t219573\t.\tG\tC\t0.087739243\t.\tAF=0.5000;DP=2;RBQ=61;ABQ=41\n") - vcfFileName.write("chr1\t229396\t.\tC\tG\t0.087739243\t.\tAF=0.3333;DP=3;RBQ=57;ABQ=39\n") - vcfFileName.write("chr1\t236388\t.\tT\tG\t0.087739243\t.\tAF=0.2000;DP=10;RBQ=52;ABQ=32\n") - vcfFileName.write("chr1\t245990\t.\tG\tC\t0.087739243\t.\tAF=0.1667;DP=6;RBQ=61;ABQ=46\n") - vcfFileName.write("chr1\t249155\t.\tC\tG\t0.087739243\t.\tAF=0.3333;DP=3;RBQ=62;ABQ=37\n") - vcfFileName.write("chr1\t261257\t.\tT\tG\t0.087739243\t.\tAF=0.2500;DP=4;RBQ=60;ABQ=39\n") - vcfFileName.write("chr1\t274692\t.\tA\tG\t0.087739243\t.\tAF=0.3333;DP=3;RBQ=63;ABQ=39\n") - vcfFileName.write("chr1\t283468\t.\tG\tC\t0.087739243\t.\tAF=0.2500;DP=4;RBQ=63;ABQ=45\n") - vcfFileName.write("chr1\t284288\t.\tT\tA\t0.087739243\t.\tAF=0.2500;DP=4;RBQ=64;ABQ=39\n") - vcfFileName.write("chr1\t286983\t.\tT\tC\t0.087739243\t.\tAF=0.3333;DP=3;RBQ=64;ABQ=37\n") - vcfFileName.write("chr1\t287378\t.\tC\tA\t0.087739243\t.\tAF=0.3333;DP=3;RBQ=65;ABQ=37\n") - vcfFileName.write("chr1\t302928\t.\tA\tG\t0.087739243\t.\tAF=0.5000;DP=2;RBQ=64;ABQ=38\n") - vcfFileName.write("chr1\t305952\t.\tC\tA\t0.087739243\t.\tAF=0.3333;DP=3;RBQ=65;ABQ=38\n") - vcfFileName.write("chr1\t307932\t.\tT\tC\t0.087739243\t.\tAF=0.2000;DP=5;RBQ=65;ABQ=42\n") - vcfFileName.write("chr1\t317422\t.\tG\tC\t0.087739243\t.\tAF=0.2500;DP=4;RBQ=57;ABQ=40\n") - vcfFileName.write("chr1\t321480\t.\tA\tT\t0.087739243\t.\tAF=0.3333;DP=3;RBQ=64;ABQ=38\n") - vcfFileName.write("chr1\t322307\t.\tA\tC\t0.087739243\t.\tAF=0.5000;DP=2;RBQ=65;ABQ=37\n") - vcfFileName.write("chr1\t328326\t.\tG\tC\t0.087739243\t.\tAF=0.1667;DP=6;RBQ=62;ABQ=52\n") - vcfFileName.write("chr1\t333138\t.\tT\tG\t0.087739243\t.\tAF=0.4000;DP=5;RBQ=63;ABQ=24\n") - vcfFileName.write("chr1\t333388\t.\tT\tC\t0.087739243\t.\tAF=0.2000;DP=5;RBQ=64;ABQ=43\n") - vcfFileName.write("chr1\t335592\t.\tT\tG\t0.087739243\t.\tAF=0.3333;DP=3;RBQ=58;ABQ=39\n") - vcfFileName.write("chr1\t336572\t.\tC\tG\t0.087739243\t.\tAF=0.5000;DP=2;RBQ=58;ABQ=38\n") - vcfFileName.write("chr1\t347396\t.\tT\tG\t0.087739243\t.\tAF=0.1667;DP=6;RBQ=62;ABQ=52\n") - vcfFileName.write("chr1\t359080\t.\tT\tG\t0.087739243\t.\tAF=0.2000;DP=5;RBQ=61;ABQ=42\n") - vcfFileName.write("chr1\t360223\t.\tA\tT\t0.087739243\t.\tAF=0.1667;DP=6;RBQ=54;ABQ=52\n") - vcfFileName.write("chr1\t361047\t.\tT\tG\t0.087739243\t.\tAF=0.1667;DP=6;RBQ=62;ABQ=50\n") - vcfFileName.write("chr1\t366048\t.\tA\tC\t0.087739243\t.\tAF=0.3333;DP=3;RBQ=65;ABQ=39\n") - vcfFileName.write("chr1\t368105\t.\tA\tG\t0.087739243\t.\tAF=0.2500;DP=4;RBQ=55;ABQ=40\n") - vcfFileName.write("chr1\t373782\t.\tT\tA\t0.087739243\t.\tAF=0.2500;DP=4;RBQ=64;ABQ=41\n") - vcfFileName.write("chr1\t378159\t.\tG\tT\t0.087739243\t.\tAF=0.3333;DP=3;RBQ=63;ABQ=41\n") - vcfFileName.write("chr1\t383945\t.\tC\tG\t0.087739243\t.\tAF=0.1111;DP=9;RBQ=58;ABQ=57\n") - vcfFileName.write("chr1\t389461\t.\tA\tG\t0.087739243\t.\tAF=0.5000;DP=2;RBQ=65;ABQ=36\n") - vcfFileName.write("chr1\t396860\t.\tG\tT\t0.087739243\t.\tAF=0.2000;DP=5;RBQ=65;ABQ=43\n") - vcfFileName.write("chr1\t397170\t.\tA\tG\t0.087739243\t.\tAF=0.5000;DP=2;RBQ=65;ABQ=36\n") - vcfFileName.write("chr1\t399939\t.\tA\tC\t0.087739243\t.\tAF=0.1667;DP=6;RBQ=63;ABQ=46\n") - vcfFileName.write("chr1\t400733\t.\tG\tC\t0.087739243\t.\tAF=0.2500;DP=4;RBQ=65;ABQ=41\n") - vcfFileName.write("chr1\t401165\t.\tA\tG\t0.087739243\t.\tAF=0.2500;DP=4;RBQ=64;ABQ=41\n") - vcfFileName.write("chr1\t406774\t.\tT\tG\t0.087739243\t.\tAF=0.2500;DP=4;RBQ=58;ABQ=39\n") - vcfFileName.write("chr1\t417293\t.\tC\tT\t0.087739243\t.\tAF=0.3333;DP=3;RBQ=65;ABQ=55\n") - vcfFileName.write("chr1\t417723\t.\tG\tC\t0.087739243\t.\tAF=0.3333;DP=3;RBQ=65;ABQ=49\n") - vcfFileName.write("chr1\t420308\t.\tC\tA\t0.087739243\t.\tAF=0.5000;DP=2;RBQ=65;ABQ=36\n") - vcfFileName.write("chr1\t435579\t.\tC\tT\t0.087739243\t.\tAF=0.2500;DP=4;RBQ=64;ABQ=40\n") - vcfFileName.write("chr1\t437183\t.\tG\tA\t0.087739243\t.\tAF=0.3333;DP=3;RBQ=65;ABQ=39\n") - vcfFileName.write("chr1\t437194\t.\tA\tT\t0.087739243\t.\tAF=0.2500;DP=4;RBQ=64;ABQ=41\n") - vcfFileName.write("chr1\t438866\t.\tG\tC\t0.087739243\t.\tAF=0.1429;DP=7;RBQ=62;ABQ=52\n") - vcfFileName.write("chr1\t446237\t.\tT\tC\t0.087739243\t.\tAF=0.2500;DP=4;RBQ=65;ABQ=39\n") - vcfFileName.write("chr1\t446308\t.\tA\tG\t0.087739243\t.\tAF=0.3333;DP=3;RBQ=50;ABQ=38\n") - vcfFileName.write("chr1\t452322\t.\tA\tC\t0.087739243\t.\tAF=0.5000;DP=2;RBQ=65;ABQ=36\n") - vcfFileName.write("chr1\t462721\t.\tT\tG\t0.087739243\t.\tAF=0.5000;DP=2;RBQ=58;ABQ=41\n") - vcfFileName.write("chr1\t477145\t.\tC\tG\t0.087739243\t.\tAF=0.3333;DP=3;RBQ=64;ABQ=39\n") - vcfFileName.write("chr1\t493772\t.\tG\tC\t0.087739243\t.\tAF=0.2500;DP=4;RBQ=65;ABQ=40\n") - vcfFileName.write("chr1\t498962\t.\tC\tA\t0.087739243\t.\tAF=0.3333;DP=3;RBQ=65;ABQ=41\n") - vcfFileName.write("chr1\t510532\t.\tT\tC\t0.087739243\t.\tAF=0.2000;DP=5;RBQ=64;ABQ=53\n") - vcfFileName.write("chr1\t516369\t.\tT\tC\t0.087739243\t.\tAF=0.5000;DP=2;RBQ=34;ABQ=40\n") - vcfFileName.write("chr1\t523631\t.\tG\tT\t0.087739243\t.\tAF=0.2500;DP=4;RBQ=64;ABQ=40\n") - vcfFileName.write("chr1\t524680\t.\tC\tT\t0.087739243\t.\tAF=0.3333;DP=3;RBQ=65;ABQ=41\n") - vcfFileName.write("chr1\t525898\t.\tT\tG\t0.087739243\t.\tAF=0.2500;DP=4;RBQ=62;ABQ=49\n") - vcfFileName.write("chr1\t526118\t.\tA\tC\t0.087739243\t.\tAF=0.1667;DP=6;RBQ=61;ABQ=50\n") - vcfFileName.write("chr1\t535762\t.\tC\tT\t0.087739243\t.\tAF=0.2500;DP=4;RBQ=65;ABQ=42\n") - vcfFileName.write("chr1\t543235\t.\tG\tT\t0.087739243\t.\tAF=0.5000;DP=2;RBQ=45;ABQ=41\n") - vcfFileName.write("chr1\t550086\t.\tT\tC\t0.087739243\t.\tAF=0.2500;DP=4;RBQ=50;ABQ=41\n") - vcfFileName.write("chr1\t550508\t.\tA\tG\t0.087739243\t.\tAF=0.2500;DP=4;RBQ=55;ABQ=40\n") - vcfFileName.write("chr1\t551143\t.\tG\tC\t0.087739243\t.\tAF=0.3333;DP=3;RBQ=65;ABQ=39\n") - vcfFileName.write("chr1\t552924\t.\tA\tG\t0.087739243\t.\tAF=0.2500;DP=8;RBQ=62;ABQ=38\n") - vcfFileName.write("chr1\t553541\t.\tA\tG\t0.087739243\t.\tAF=0.1250;DP=8;RBQ=65;ABQ=52\n") - vcfFileName.write("chr1\t560806\t.\tT\tC\t0.087739243\t.\tAF=0.1667;DP=6;RBQ=65;ABQ=49\n") - vcfFileName.write("chr1\t562736\t.\tC\tG\t0.087739243\t.\tAF=0.1667;DP=6;RBQ=64;ABQ=52\n") - vcfFileName.write("chr1\t563224\t.\tT\tC\t0.087739243\t.\tAF=0.3333;DP=3;RBQ=51;ABQ=39\n") - vcfFileName.write("chr1\t564217\t.\tT\tA\t0.087739243\t.\tAF=0.2500;DP=4;RBQ=62;ABQ=40\n") - vcfFileName.write("chr1\t567288\t.\tC\tT\t0.087739243\t.\tAF=0.3333;DP=3;RBQ=65;ABQ=40\n") - vcfFileName.write("chr1\t569652\t.\tT\tC\t0.087739243\t.\tAF=0.5000;DP=2;RBQ=48;ABQ=42\n") - vcfFileName.write("chr1\t570280\t.\tG\tT\t0.087739243\t.\tAF=0.1250;DP=8;RBQ=60;ABQ=53\n") - vcfFileName.write("chr1\t582185\t.\tT\tC\t0.087739243\t.\tAF=0.5000;DP=2;RBQ=63;ABQ=40\n") - vcfFileName.write("chr1\t582453\t.\tG\tC\t0.087739243\t.\tAF=0.5000;DP=2;RBQ=65;ABQ=38\n") - vcfFileName.write("chr1\t583477\t.\tT\tG\t0.087739243\t.\tAF=0.3333;DP=3;RBQ=62;ABQ=39\n") - vcfFileName.write("chr1\t584179\t.\tG\tT\t0.087739243\t.\tAF=0.2500;DP=4;RBQ=65;ABQ=41\n") - vcfFileName.write("chr1\t589074\t.\tG\tC\t0.087739243\t.\tAF=0.3333;DP=3;RBQ=65;ABQ=36\n") - vcfFileName.write("chr1\t596641\t.\tC\tG\t0.087739243\t.\tAF=0.3333;DP=3;RBQ=65;ABQ=40\n") - vcfFileName.write("chr1\t599263\t.\tG\tT\t0.087739243\t.\tAF=0.3333;DP=3;RBQ=60;ABQ=38\n") - -##fileDate=20090805 -##source=myImputationProgramV3.1 -##reference=1000Gchr1 10759 . C T 0.087739243 . AF=33.33%;DP=3enomesPilot-NCBI36 -##phasing=partial -##INFO=<ID=NS,Number=1,Type=Integer,Description="Number of Samples With Data"> -##INFO=<ID=DP,Number=1,Type=Integer,Description="Total Depth"> -##INFO=<ID=AF,Number=.,Type=Float,Description="Allele Frequency"> -##INFO=<ID=AA,Number=1,Type=String,Description="Ancestral Allele"> -##INFO=<ID=DB,Number=0,Type=Flag,Description="dbSNP membership, build 129"> -##INFO=<ID=H2,Number=0,Type=Flag,Description="HapMap2 membership"> -##FILTER=<ID=q10,Description="Quality below 10"> -##FILTER=<ID=s50,Description="Less than 50% of samples have data"> -##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype"> -##FORMAT=<ID=GQ,Number=1,Type=Integer,Description="Genotype Quality"> -##FORMAT=<ID=DP,Number=1,Type=Integer,Description="Read Depth"> -##FORMAT=<ID=HQ,Number=2,Type=Integer,Description="Haplotype Quality"> - -if __name__ == "__main__": - unittest.main() - \ No newline at end of file
--- a/commons/core/parsing/test/Test_FastaParser.py Mon Apr 29 03:26:07 2013 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,75 +0,0 @@ -from commons.core.parsing.FastaParser import FastaParser -from SMART.Java.Python.structure.Sequence import Sequence -import unittest - -class Test_FastaParser(unittest.TestCase): - - def test_getSubsequence(self): - fastaFile = "myFastaInput.fasta" - self._writeInputFastaFile(fastaFile) - parser = FastaParser(fastaFile) - chromosome = "1" - expSeq = Sequence("1:1-20 (1)", "CCTAAGCCATTGCTTGGTGA") - obsSeq = parser.getSubSequence(chromosome, 1, 20, 1) - self.assertEquals(expSeq, obsSeq) - - def test_getSubsequence_long_sequence(self): - fastaFile = "myFastaInput.fasta" - self._writeInputFastaFile(fastaFile) - parser = FastaParser(fastaFile) - chromosome = "2" - expSeq = Sequence("subsequence", "TGAAGA") - obsSeq = parser.getSubSequence(chromosome, 55, 60, 1, "subsequence") - self.assertEquals(expSeq, obsSeq) - - def test_getSubsequence_long_sequence_inside_and_outside(self): - fastaFile = "myFastaInput.fasta" - self._writeInputFastaFile(fastaFile) - parser = FastaParser(fastaFile) - chromosome = "2" - expSeq = Sequence("subsequence", "TTA") - obsSeq = parser.getSubSequence(chromosome, 137, 151, 1, "subsequence") - self.assertEquals(expSeq, obsSeq) - - def test_getSubsequence_long_sequence_last_letter(self): - fastaFile = "myFastaInput.fasta" - self._writeInputFastaFile(fastaFile) - parser = FastaParser(fastaFile) - chromosome = "2" - expSeq = Sequence("subsequence", "A") - obsSeq = parser.getSubSequence(chromosome, 139, 151, 1, "subsequence") - self.assertEquals(expSeq, obsSeq) - - def test_getSubsequence_long_sequence_totally_outside(self): - fastaFile = "myFastaInput.fasta" - self._writeInputFastaFile(fastaFile) - parser = FastaParser(fastaFile) - chromosome = "2" - isSysExit = False - try: - parser.getSubSequence(chromosome, 140, 151, 1, "subsequence") - except: - isSysExit = True - self.assertTrue(isSysExit) - - def test_setTags(self): - fastaFile = "myFastaInput.fasta" - self._writeInputFastaFile(fastaFile) - parser = FastaParser(fastaFile) - parser.setTags() - expTags = {"1" : 0, - "2" : 54} - obsTags = parser.getTags() - self.assertEquals(expTags, obsTags) - - def _writeInputFastaFile(self, fastaFile): - myHandler = open(fastaFile, 'w') - myHandler.write(">1\n") - myHandler.write("CCTAAGCCATTGCTTGGTGATTATGAAGGCAGTAGTCAAACCTCCACAAT\n") - myHandler.write(">2\n") - myHandler.write("TATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCG\n") - myHandler.write("GACCTGAAGAAATTCCTGATTGTACGTTCTGGTTACTCTTCAATTTGGGC\n") - myHandler.write("TGCTTAATTATCTCCTCAATTTCAATTTGGCCATGCTTA\n") - -if __name__ == "__main__": - unittest.main()
--- a/commons/core/parsing/test/Test_FindRep.py Mon Apr 29 03:26:07 2013 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,108 +0,0 @@ -import unittest -import os -from commons.core.utils.FileUtils import FileUtils -from xml.sax import make_parser -from xml.sax.handler import feature_namespaces -from commons.core.parsing.FindRep import FindRep - - -class Test_FindRep(unittest.TestCase): - def setUp(self): - self._mrepsOuputFileName = "output.xml" - self._obsSetFileName = "obsOuput.set" - self._expSetFileName = "expOuput.set" - self._writeExpSet(self._expSetFileName) - self._writeMrepsOutput(self._mrepsOuputFileName) - - def tearDown(self): - os.remove(self._expSetFileName) - os.remove(self._obsSetFileName) - os.remove(self._mrepsOuputFileName) - - def test_parse(self): - xmlParser = make_parser() - xmlParser.setFeature( feature_namespaces, 0 ) - xmlParser.setContentHandler( FindRep( self._obsSetFileName,0, 0 ) ) - xmlParser.parse( self._mrepsOuputFileName ) - self.assertTrue(FileUtils.are2FilesIdentical(self._obsSetFileName, self._expSetFileName)) - - def _writeExpSet(self, fileName): - f = open(fileName, "w") - f.write("1\t(tatt)3\tseq1\t4\t16\n") - f.write("2\t(tatt)3\tseq1\t23\t35\n") - f.write("3\t(tatt)3\tseq1\t42\t54\n") - f.close() - - def _writeMrepsOutput(self, fileName): - f = open(fileName, "w") - f.write("<?xml version='1.0' encoding='UTF-8' ?>\n") - f.write("<mreps>\n") - f.write("<time>Thu Dec 1 17:25:54 2011\n") - f.write("</time>\n") - f.write("<parameters>\n") - f.write(" <type-of-input>file in fasta format</type-of-input>\n") - f.write(" <err>3</err>\n") - f.write(" <from>1</from>\n") - f.write(" <to>-1</to>\n") - f.write(" <win>-1</win>\n") - f.write(" <minsize>1</minsize>\n") - f.write(" <maxsize>-1</maxsize>\n") - f.write(" <minperiod>1</minperiod>\n") - f.write(" <maxperiod>-1</maxperiod>\n") - f.write(" <minexponent>3.00</minexponent>\n") - f.write("</parameters>\n") - f.write("<results>\n") - f.write("<sequence-name>seq1</sequence-name>\n") - f.write("<repetitions>\n") - f.write("<window>\n") - f.write("<windowstart>1</windowstart>\n") - f.write("<windowend>60</windowend>\n") - f.write(" <repeat>\n") - f.write(" <start>4</start>\n") - f.write(" <end>16</end>\n") - f.write(" <length>13</length>\n") - f.write(" <period>4</period>\n") - f.write(" <exponent>3.25</exponent>\n") - f.write(" <score>0.000</score>\n") - f.write(" <sequence>\n") - f.write(" <unit>tatt</unit>\n") - f.write(" <unit>tatt</unit>\n") - f.write(" <unit>tatt</unit>\n") - f.write(" <unit>t</unit>\n") - f.write(" </sequence>\n") - f.write(" </repeat>\n") - f.write(" <repeat>\n") - f.write(" <start>23</start>\n") - f.write(" <end>35</end>\n") - f.write(" <length>13</length>\n") - f.write(" <period>4</period>\n") - f.write(" <exponent>3.25</exponent>\n") - f.write(" <score>0.000</score>\n") - f.write(" <sequence>\n") - f.write(" <unit>tatt</unit>\n") - f.write(" <unit>tatt</unit>\n") - f.write(" <unit>tatt</unit>\n") - f.write(" <unit>t</unit>\n") - f.write(" </sequence>\n") - f.write(" </repeat>\n") - f.write(" <repeat>\n") - f.write(" <start>42</start>\n") - f.write(" <end>54</end>\n") - f.write(" <length>13</length>\n") - f.write(" <period>4</period>\n") - f.write(" <exponent>3.25</exponent>\n") - f.write(" <score>0.000</score>\n") - f.write(" <sequence>\n") - f.write(" <unit>tatt</unit>\n") - f.write(" <unit>tatt</unit>\n") - f.write(" <unit>tatt</unit>\n") - f.write(" <unit>t</unit>\n") - f.write(" </sequence>\n") - f.write(" </repeat>\n") - f.write("<nbofreps>3</nbofreps>\n") - f.write("</window>\n") - f.write("</repetitions>\n") - f.write("</results>\n") - f.write("<errorcode>0</errorcode>\n") - f.write("</mreps>\n") - f.close()
--- a/commons/core/parsing/test/Test_GffParser.py Mon Apr 29 03:26:07 2013 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,62 +0,0 @@ -import unittest -from commons.core.parsing.GffParser import GffParser - - -class Test_GffParser(unittest.TestCase): - - - def test_Parser(self): - parser = GffParser("data/testGffParser1.gff3") - - self.assertEqual(parser.getNbTranscripts(), 3) - - cpt = 0 - for transcript in parser.getIterator(): - cpt += 1 - if cpt == 1: - self.assertEqual(transcript.getChromosome(), "arm_X") - self.assertEqual(transcript.getName(), "test1") - self.assertEqual(transcript.getStart(), 1000) - self.assertEqual(transcript.getEnd(), 2000) - self.assertEqual(transcript.getDirection(), 1) - self.assertEqual(transcript.getNbExons(), 1) - self.assertEqual(transcript.getTagValue("field"), "value1") - exons = transcript.getExons() - self.assertEqual(exons[0].getChromosome(), "arm_X") - self.assertEqual(exons[0].getStart(), 1000) - self.assertEqual(exons[0].getEnd(), 2000) - self.assertEqual(exons[0].getDirection(), 1) - self.assertEqual(transcript.getSize(), 1001) - elif cpt == 2: - self.assertEqual(transcript.getChromosome(), "arm_X") - self.assertEqual(transcript.getName(), "test2") - self.assertEqual(transcript.getStart(), 10000) - self.assertEqual(transcript.getEnd(), 20000) - self.assertEqual(transcript.getDirection(), -1) - self.assertEqual(transcript.getNbExons(), 2) - self.assertEqual(transcript.getTagValue("field"), "value2") - exons = transcript.getExons() - self.assertEqual(exons[0].getChromosome(), "arm_X") - self.assertEqual(exons[0].getStart(), 10000) - self.assertEqual(exons[0].getEnd(), 10100) - self.assertEqual(exons[0].getDirection(), -1) - self.assertEqual(transcript.getSize(), 9602) - if cpt == 3: - self.assertEqual(transcript.getChromosome(), "arm_X") - self.assertEqual(transcript.getName(), "test1.1") - self.assertEqual(transcript.getStart(), 1000) - self.assertEqual(transcript.getEnd(), 2000) - self.assertEqual(transcript.getDirection(), 1) - self.assertEqual(transcript.getNbExons(), 1) - self.assertEqual(transcript.getTagValue("ID"), "test1.1-1") - exons = transcript.getExons() - self.assertEqual(exons[0].getChromosome(), "arm_X") - self.assertEqual(exons[0].getStart(), 1000) - self.assertEqual(exons[0].getEnd(), 2000) - self.assertEqual(exons[0].getDirection(), 1) - self.assertEqual(transcript.getSize(), 1001) - - -if __name__ == '__main__': - unittest.main() -
--- a/commons/core/parsing/test/Test_MapParser.py Mon Apr 29 03:26:07 2013 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,53 +0,0 @@ -import unittest -import os -from commons.core.parsing.MapParser import MapParser - -class Test_MapParser(unittest.TestCase): - - - def setUp(self): - self.inputMapFileName = "testMapParser.map" - self._writeInputMapFile() - - def tearDown(self): - if os.path.exists(self.inputMapFileName): - os.remove(self.inputMapFileName) - - def test_Parser(self): - parser = MapParser(self.inputMapFileName) - - cpt = 0 - for transcript in parser.getIterator(): - cpt += 1 - if cpt == 1: - self.assertEqual(transcript.getChromosome(), "dmel_chr4") - self.assertEqual(transcript.getName(), "aagatgcgtaacggccatac_17") - self.assertEqual(transcript.getStart(), 4380) - self.assertEqual(transcript.getEnd(), 4400) - self.assertEqual(transcript.getDirection(), 1) - self.assertEqual(transcript.getSize(), 21) - elif cpt == 10: - self.assertEqual(transcript.getChromosome(), "dmel_chr4") - self.assertEqual(transcript.getName(), "aacggccatacattggtttg_12") - self.assertEqual(transcript.getStart(), 4389) - self.assertEqual(transcript.getEnd(), 4409) - self.assertEqual(transcript.getDirection(), 1) - self.assertEqual(transcript.getSize(), 21) - - - def _writeInputMapFile(self): - inputFile = open(self.inputMapFileName,'w') - inputFile.write("aagatgcgtaacggccatac_17\tdmel_chr4\t4380\t4400\n") - inputFile.write("agatgcgtaacggccataca_16\tdmel_chr4\t4381\t4401\n") - inputFile.write("gatgcgtaacggccatacat_16\tdmel_chr4\t4382\t4402\n") - inputFile.write("atgcgtaacggccatacatt_15\tdmel_chr4\t4383\t4403\n") - inputFile.write("tgcgtaacggccatacattg_15\tdmel_chr4\t4384\t4404\n") - inputFile.write("gcgtaacggccatacattgg_15\tdmel_chr4\t4385\t4405\n") - inputFile.write("cgtaacggccatacattggt_14\tdmel_chr4\t4386\t4406\n") - inputFile.write("gtaacggccatacattggtt_14\tdmel_chr4\t4387\t4407\n") - inputFile.write("taacggccatacattggttt_14\tdmel_chr4\t4388\t4408\n") - inputFile.write("aacggccatacattggtttg_12\tdmel_chr4\t4389\t4409\n") - inputFile.close() - -if __name__ == '__main__': - unittest.main() \ No newline at end of file
--- a/commons/core/parsing/test/Test_MrepsToSet.py Mon Apr 29 03:26:07 2013 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,105 +0,0 @@ -import unittest -import os -from commons.core.utils.FileUtils import FileUtils -from commons.core.parsing.MrepsToSet import MrepsToSet - -class Test_MrepsToSet(unittest.TestCase): - def setUp(self): - self._mrepsInputFileName = "mrepsInput.fa" - self._mrepsOuputFileName = "mrepsOutput.xml" - self._obsSetFileName = "obsOuput.set" - self._expSetFileName = "expOuput.set" - - self._writeExpSet(self._expSetFileName) - self._writeMrepsOutput(self._mrepsOuputFileName) - - def tearDown(self): - os.remove(self._expSetFileName) - os.remove(self._obsSetFileName) - os.remove(self._mrepsOuputFileName) - - def test_convert(self): - iMrepsToSet = MrepsToSet(self._mrepsInputFileName, self._mrepsOuputFileName, self._obsSetFileName) - iMrepsToSet.run() - self.assertTrue(FileUtils.are2FilesIdentical(self._obsSetFileName, self._expSetFileName)) - - def _writeExpSet(self, fileName): - f = open(fileName, "w") - f.write("1\t(tatt)3\tseq1\t4\t16\n") - f.write("2\t(tatt)3\tseq1\t23\t35\n") - f.write("3\t(tatt)3\tseq1\t42\t54\n") - f.close() - - def _writeMrepsOutput(self, fileName): - f = open(fileName, "w") - f.write("<?xml version='1.0' encoding='UTF-8' ?>\n") - f.write("<mreps>\n") - f.write("<time>Thu Dec 1 17:25:54 2011\n") - f.write("</time>\n") - f.write("<parameters>\n") - f.write(" <type-of-input>file in fasta format</type-of-input>\n") - f.write(" <err>3</err>\n") - f.write(" <from>1</from>\n") - f.write(" <to>-1</to>\n") - f.write(" <win>-1</win>\n") - f.write(" <minsize>1</minsize>\n") - f.write(" <maxsize>-1</maxsize>\n") - f.write(" <minperiod>1</minperiod>\n") - f.write(" <maxperiod>-1</maxperiod>\n") - f.write(" <minexponent>3.00</minexponent>\n") - f.write("</parameters>\n") - f.write("<results>\n") - f.write("<sequence-name>seq1</sequence-name>\n") - f.write("<repetitions>\n") - f.write("<window>\n") - f.write("<windowstart>1</windowstart>\n") - f.write("<windowend>60</windowend>\n") - f.write(" <repeat>\n") - f.write(" <start>4</start>\n") - f.write(" <end>16</end>\n") - f.write(" <length>13</length>\n") - f.write(" <period>4</period>\n") - f.write(" <exponent>3.25</exponent>\n") - f.write(" <score>0.000</score>\n") - f.write(" <sequence>\n") - f.write(" <unit>tatt</unit>\n") - f.write(" <unit>tatt</unit>\n") - f.write(" <unit>tatt</unit>\n") - f.write(" <unit>t</unit>\n") - f.write(" </sequence>\n") - f.write(" </repeat>\n") - f.write(" <repeat>\n") - f.write(" <start>23</start>\n") - f.write(" <end>35</end>\n") - f.write(" <length>13</length>\n") - f.write(" <period>4</period>\n") - f.write(" <exponent>3.25</exponent>\n") - f.write(" <score>0.000</score>\n") - f.write(" <sequence>\n") - f.write(" <unit>tatt</unit>\n") - f.write(" <unit>tatt</unit>\n") - f.write(" <unit>tatt</unit>\n") - f.write(" <unit>t</unit>\n") - f.write(" </sequence>\n") - f.write(" </repeat>\n") - f.write(" <repeat>\n") - f.write(" <start>42</start>\n") - f.write(" <end>54</end>\n") - f.write(" <length>13</length>\n") - f.write(" <period>4</period>\n") - f.write(" <exponent>3.25</exponent>\n") - f.write(" <score>0.000</score>\n") - f.write(" <sequence>\n") - f.write(" <unit>tatt</unit>\n") - f.write(" <unit>tatt</unit>\n") - f.write(" <unit>tatt</unit>\n") - f.write(" <unit>t</unit>\n") - f.write(" </sequence>\n") - f.write(" </repeat>\n") - f.write("<nbofreps>3</nbofreps>\n") - f.write("</window>\n") - f.write("</repetitions>\n") - f.write("</results>\n") - f.write("<errorcode>0</errorcode>\n") - f.write("</mreps>\n") - f.close()
--- a/commons/core/parsing/test/Test_Multifasta2SNPFile.py Mon Apr 29 03:26:07 2013 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1786 +0,0 @@ -import os -import shutil -import unittest -from commons.core.utils.FileUtils import FileUtils -from commons.core.parsing.Multifasta2SNPFile import Multifasta2SNPFile -from commons.core.parsing.Multifasta2SNPFile import ReferenceBioseqAndLinesBioseqDBWrapper -from commons.core.seq.Bioseq import Bioseq -from commons.core.seq.BioseqDB import BioseqDB -from smac_pipe.tests.Utils4Test import Utils4Test - - -class Test_Multifasta2SNPFile(unittest.TestCase): -# TODO TEST LOGFILE - def setUp(self): - os.chdir("%s/commons/core/parsing/test/" % os.environ["REPET_PATH"]) - self._inFileName = "multifasta_input.fasta" - - self._expSubSNPFileName = "%s/commons/core/parsing/test/expSubSNP.csv" % os.environ["REPET_PATH"] - self._expAlleleFileName = "%s/commons/core/parsing/test/expAllele.csv" % os.environ["REPET_PATH"] - - self._expIndividualFileName = "%s/commons/core/parsing/test/expIndividual.csv" % os.environ["REPET_PATH"] - self._expSequenceFSAFileName = "%s/commons/core/parsing/test/expSequences.fsa" % os.environ["REPET_PATH"] - self._expSequenceCSVFileName = "%s/commons/core/parsing/test/expSequences.csv" % os.environ["REPET_PATH"] - self._expBatchFileName = "%s/commons/core/parsing/test/expBatch.txt" % os.environ["REPET_PATH"] - self._expBatchLineFileName = "%s/commons/core/parsing/test/expBatchLine.csv" % os.environ["REPET_PATH"] - - self._realInputFileName = "data/real_multifasta_input.fasta" - self._realExpSubSNPFileName = "data/realExpSubSNP.csv" - self._realExpSequenceFSAFileName = "data/realExpSequences.fsa" - self._realExpBatchLineFileName = "data/realExpBatchLine.csv" - self._realExpIndividualFileName = "data/realExpIndividual.csv" - - self._inputDirSeveralBatches = "%s/commons/core/parsing/test/severalBatchDir" % os.environ["REPET_PATH"] - - self._obsSubSNPFileName = "SubSNP.csv" - self._obsAlleleFileName = "Allele.csv" - self._obsIndividualFileName = "Individual.csv" - self._obsSequenceFSAFileName = "Sequences.fsa" - self._obsSequenceCSVFileName = "Sequences.csv" - self._obsBatchFileName = "Batch.txt" - self._obsBatchLineFileName = "BatchLine.csv" - - self._fileUtils = FileUtils() - - def tearDown(self): - os.chdir("%s/commons/core/parsing/test/" % os.environ["REPET_PATH"]) - logFileName = "multifasta2SNP.log" - if self._fileUtils.isRessourceExists(self._inFileName): - os.remove(self._inFileName) - if self._fileUtils.isRessourceExists(self._obsSubSNPFileName): - os.remove(self._obsSubSNPFileName) - if self._fileUtils.isRessourceExists(self._obsSubSNPFileName + "_filtered"): - os.remove(self._obsSubSNPFileName + "_filtered") - if self._fileUtils.isRessourceExists(self._obsAlleleFileName): - os.remove(self._obsAlleleFileName) - if self._fileUtils.isRessourceExists(self._obsIndividualFileName): - os.remove(self._obsIndividualFileName) - if self._fileUtils.isRessourceExists(self._obsSequenceFSAFileName): - os.remove(self._obsSequenceFSAFileName) - if self._fileUtils.isRessourceExists(self._obsSequenceCSVFileName): - os.remove(self._obsSequenceCSVFileName) - if self._fileUtils.isRessourceExists(self._obsBatchFileName): - os.remove(self._obsBatchFileName) - if self._fileUtils.isRessourceExists(self._obsBatchLineFileName): - os.remove(self._obsBatchLineFileName) - - if self._fileUtils.isRessourceExists(self._expSubSNPFileName): - os.remove(self._expSubSNPFileName) - if self._fileUtils.isRessourceExists(self._realExpSubSNPFileName + "_filtered"): - os.remove(self._realExpSubSNPFileName + "_filtered") - if self._fileUtils.isRessourceExists(self._expAlleleFileName): - os.remove(self._expAlleleFileName) - if self._fileUtils.isRessourceExists(self._expIndividualFileName): - os.remove(self._expIndividualFileName) - if self._fileUtils.isRessourceExists(self._expSequenceFSAFileName): - os.remove(self._expSequenceFSAFileName) - if self._fileUtils.isRessourceExists(self._expSequenceCSVFileName): - os.remove(self._expSequenceCSVFileName) - if self._fileUtils.isRessourceExists(self._expBatchFileName): - os.remove(self._expBatchFileName) - if self._fileUtils.isRessourceExists(self._expBatchLineFileName): - os.remove(self._expBatchLineFileName) - - if self._fileUtils.isRessourceExists(logFileName): - os.remove(logFileName) - if self._fileUtils.isRessourceExists(self._inputDirSeveralBatches): - shutil.rmtree(self._inputDirSeveralBatches) - - - def test_runOneBatch(self): - self._writeInputFile() - self._writeExpSubSNPFile() - self._writeExpAlleleFile() - self._writeExpIndividualFile() - self._writeExpSequenceFile() - self._writeExpBatchFile() - self._writeExpBatchLineFile() - - multifasta2SNPFile = Multifasta2SNPFile("Arabidopsis thaliana", "Batch1", "methyltransferase") - multifasta2SNPFile.runOneBatch(self._inFileName) - - self.assertTrue(FileUtils.isRessourceExists(self._obsAlleleFileName)) - self.assertTrue(FileUtils.are2FilesIdentical(self._expAlleleFileName, self._obsAlleleFileName)) - - self.assertTrue(FileUtils.isRessourceExists(self._obsIndividualFileName)) - self.assertTrue(FileUtils.are2FilesIdentical(self._expIndividualFileName, self._obsIndividualFileName)) - - self.assertTrue(FileUtils.isRessourceExists(self._obsSequenceFSAFileName)) - self.assertTrue(FileUtils.are2FilesIdentical(self._expSequenceFSAFileName, self._obsSequenceFSAFileName)) - - self.assertTrue(FileUtils.isRessourceExists(self._obsSequenceCSVFileName)) - self.assertTrue(FileUtils.are2FilesIdentical(self._expSequenceCSVFileName, self._obsSequenceCSVFileName)) - - self.assertTrue(FileUtils.isRessourceExists(self._obsBatchFileName)) - self.assertTrue(FileUtils.are2FilesIdentical(self._expBatchFileName, self._obsBatchFileName)) - - self.assertTrue(FileUtils.isRessourceExists(self._obsBatchLineFileName)) - self.assertTrue(FileUtils.are2FilesIdentical(self._expBatchLineFileName, self._obsBatchLineFileName)) - self.assertTrue(FileUtils.isRessourceExists(self._obsSubSNPFileName)) - self.assertTrue(FileUtils.are2FilesIdentical(self._expSubSNPFileName, self._obsSubSNPFileName)) - - def test_runOneBatch_with_a_real_input_file(self): - self._writeRealExpAlleleFile() - self._writeRealExpSequenceCSVFile() - self._writeRealExpBatchFile() - - multifasta2SNPFile = Multifasta2SNPFile("Pinus pinaster", "INRA_Pinus_pinaster_HDZ31-1", "PpHDZ31") - multifasta2SNPFile.runOneBatch(self._realInputFileName) - - self.assertTrue(FileUtils.isRessourceExists(self._obsIndividualFileName)) - self.assertTrue(FileUtils.are2FilesIdentical(self._realExpIndividualFileName, self._obsIndividualFileName)) - - self.assertTrue(FileUtils.isRessourceExists(self._obsSequenceFSAFileName)) - self.assertTrue(FileUtils.are2FilesIdentical(self._realExpSequenceFSAFileName, self._obsSequenceFSAFileName)) - - self.assertTrue(FileUtils.isRessourceExists(self._obsSequenceCSVFileName)) - self.assertTrue(FileUtils.are2FilesIdentical(self._expSequenceCSVFileName, self._obsSequenceCSVFileName)) - - self.assertTrue(FileUtils.isRessourceExists(self._obsBatchFileName)) - self.assertTrue(FileUtils.are2FilesIdentical(self._expBatchFileName, self._obsBatchFileName)) - - self.assertTrue(FileUtils.isRessourceExists(self._obsBatchLineFileName)) - self.assertTrue(FileUtils.are2FilesIdentical(self._realExpBatchLineFileName, self._obsBatchLineFileName)) - - self.assertTrue(FileUtils.isRessourceExists(self._obsAlleleFileName)) - self.assertTrue(FileUtils.are2FilesIdentical(self._expAlleleFileName, self._obsAlleleFileName)) - - self.assertTrue(FileUtils.isRessourceExists(self._obsSubSNPFileName)) - self.assertTrue(FileUtils.are2FilesIdentical(self._realExpSubSNPFileName , self._obsSubSNPFileName)) - - def test_runOneBatch_with_errors_in_refSeq(self): - self._writeInputFileWithSeqErrorsInRefSeq() - multifasta2SNPFile = Multifasta2SNPFile("Arabidopsis thaliana", "Batch1", "methyltransferase") - self.assertRaises(Exception, multifasta2SNPFile.runOneBatch, self._inFileName, self._obsSubSNPFileName) - - def test_runOneBatch_with_errors_in_lineSeq(self): - self._writeInputFileWithSeqErrorsInOneLineSeq() - multifasta2SNPFile = Multifasta2SNPFile("Arabidopsis thaliana", "Batch1", "methyltransferase") - self.assertRaises(Exception, multifasta2SNPFile.runOneBatch, self._inFileName, self._obsSubSNPFileName) - - def test_runOneBatch_with_a_several_lineSeq(self): - self._writeInputFileWithASeveralLineSeq() - self._writeExpSubSNPFileSeveralLineSeq() - self._writeExpAlleleFile() - self._writeExpIndividualFile() - self._writeExpSequenceFileSeveralLineSeq() - self._writeExpBatchFile() - self._writeExpBatchLineFile() - - multifasta2SNPFile = Multifasta2SNPFile("Arabidopsis thaliana", "Batch1", "methyltransferase") - multifasta2SNPFile.runOneBatch(self._inFileName) - - self.assertTrue(FileUtils.isRessourceExists(self._obsSubSNPFileName)) - self.assertTrue(FileUtils.are2FilesIdentical(self._expSubSNPFileName, self._obsSubSNPFileName)) - - self.assertTrue(FileUtils.isRessourceExists(self._obsAlleleFileName)) - self.assertTrue(FileUtils.are2FilesIdentical(self._expAlleleFileName, self._obsAlleleFileName)) - - self.assertTrue(FileUtils.isRessourceExists(self._obsIndividualFileName)) - self.assertTrue(FileUtils.are2FilesIdentical(self._expIndividualFileName, self._obsIndividualFileName)) - - self.assertTrue(FileUtils.isRessourceExists(self._obsSequenceFSAFileName)) - self.assertTrue(FileUtils.are2FilesIdentical(self._expSequenceFSAFileName, self._obsSequenceFSAFileName)) - - self.assertTrue(FileUtils.isRessourceExists(self._obsSequenceCSVFileName)) - self.assertTrue(FileUtils.are2FilesIdentical(self._expSequenceCSVFileName, self._obsSequenceCSVFileName)) - - self.assertTrue(FileUtils.isRessourceExists(self._obsBatchFileName)) - self.assertTrue(FileUtils.are2FilesIdentical(self._expBatchFileName, self._obsBatchFileName)) - - self.assertTrue(FileUtils.isRessourceExists(self._obsBatchLineFileName)) - self.assertTrue(FileUtils.are2FilesIdentical(self._expBatchLineFileName, self._obsBatchLineFileName)) - - def test_runOneBatch_with_2_seqs_with_the_same_name(self): - self._writeInputFileWith2SeqsWithTheSameName() - batchName = "batch1" - taxon = "Arabidopsis thaliana" - gene = "methyltransferase" - isSysExitRaised = False - multifasta2SNPFile = Multifasta2SNPFile(taxon, batchName, gene) - - try: - multifasta2SNPFile.runOneBatch(self._inFileName) - except SystemExit: - isSysExitRaised = True - - self.assertTrue(isSysExitRaised) - - def test_runOneBatch_with_indels_and_snps(self): - self._writeInputFileWithSnpsAndIndels() - self._writeExpSubSNPFileWithSnpsAndIndels() - self._writeExpAlleleFileWithSnpsAndIndels() - self._writeExpIndividualFile() - self._writeExpSequenceFileWithDeletion() - self._writeExpBatchFile() - self._writeExpBatchLineFile() - - batchName = "Batch1" - taxon = "Arabidopsis thaliana" - gene = "methyltransferase" - multifasta2SNPFile = Multifasta2SNPFile(taxon, batchName, gene) - multifasta2SNPFile.runOneBatch(self._inFileName) - - self.assertTrue(FileUtils.isRessourceExists(self._obsIndividualFileName)) - self.assertTrue(FileUtils.are2FilesIdentical(self._expIndividualFileName, self._obsIndividualFileName)) - - self.assertTrue(FileUtils.isRessourceExists(self._obsSequenceFSAFileName)) - self.assertTrue(FileUtils.are2FilesIdentical(self._expSequenceFSAFileName, self._obsSequenceFSAFileName)) - - self.assertTrue(FileUtils.isRessourceExists(self._obsSequenceCSVFileName)) - self.assertTrue(FileUtils.are2FilesIdentical(self._expSequenceCSVFileName, self._obsSequenceCSVFileName)) - - self.assertTrue(FileUtils.isRessourceExists(self._obsBatchFileName)) - self.assertTrue(FileUtils.are2FilesIdentical(self._expBatchFileName, self._obsBatchFileName)) - - self.assertTrue(FileUtils.isRessourceExists(self._obsBatchLineFileName)) - self.assertTrue(FileUtils.are2FilesIdentical(self._expBatchLineFileName, self._obsBatchLineFileName)) - - self.assertTrue(FileUtils.isRessourceExists(self._obsAlleleFileName)) - self.assertTrue(FileUtils.are2FilesIdentical(self._expAlleleFileName, self._obsAlleleFileName)) - - self.assertTrue(FileUtils.isRessourceExists(self._obsSubSNPFileName)) - self.assertTrue(FileUtils.are2FilesIdentical(self._expSubSNPFileName, self._obsSubSNPFileName)) - - def test_runOneBatchWithPotentialDooblons(self): - self._writeInputFileBatchWithPotentialDooblons() - - batchName = "Batch_AU247387" - taxon = "Arabidopsis thaliana" - gene = "methyltransferase" - multifasta2SNPFile = Multifasta2SNPFile(taxon, batchName, gene) - multifasta2SNPFile.runOneBatch(self._inFileName) - self.assertTrue(FileUtils.isRessourceExists(self._obsSubSNPFileName)) - - expSubSNPFile = "data/ExpPotDooblonsSubSNP.csv" - - Utils4Test.removeOneSpecifiedColumn(expSubSNPFile, ";", 8) - Utils4Test.removeOneSpecifiedColumn(self._obsSubSNPFileName, ";", 8) - - Utils4Test.removeOneSpecifiedColumn(expSubSNPFile + "_filtered", ";", 9) - Utils4Test.removeOneSpecifiedColumn(self._obsSubSNPFileName + "_filtered", ";", 9) - - Utils4Test.removeOneSpecifiedColumn(expSubSNPFile + "_filtered_filtered", ";", 13) - Utils4Test.removeOneSpecifiedColumn(self._obsSubSNPFileName + "_filtered_filtered", ";", 13) - - comparableExpSubSNPFile = expSubSNPFile + "_filtered_filtered_filtered" - comparableObsSubSNPFile = self._obsSubSNPFileName + "_filtered_filtered_filtered" - - self.assertTrue(FileUtils.isRessourceExists(comparableExpSubSNPFile)) - self.assertTrue(FileUtils.isRessourceExists(comparableObsSubSNPFile)) - self.assertTrue(FileUtils.are2FilesIdentical(comparableExpSubSNPFile, comparableObsSubSNPFile)) - - if(self._fileUtils.isRessourceExists(self._obsSubSNPFileName + "_filtered")): - os.remove(self._obsSubSNPFileName + "_filtered") - if(self._fileUtils.isRessourceExists(expSubSNPFile + "_filtered")): - os.remove(expSubSNPFile + "_filtered") - - if(self._fileUtils.isRessourceExists(self._obsSubSNPFileName + "_filtered_filtered")): - os.remove(self._obsSubSNPFileName + "_filtered_filtered") - if(self._fileUtils.isRessourceExists(expSubSNPFile + "_filtered_filtered")): - os.remove(expSubSNPFile + "_filtered_filtered") - - if self._fileUtils.isRessourceExists(comparableExpSubSNPFile): - os.remove(comparableExpSubSNPFile) - if self._fileUtils.isRessourceExists(comparableObsSubSNPFile): - os.remove(comparableObsSubSNPFile) - - def test_runSeveralBatches(self): - self._writeInputFileSeveralBatches() - self._writeExpSubSNPFileSeveralBatches() - self._writeExpAlleleFileSeveralBatches() - self._writeExpIndividualFile() - self._writeExpSequenceSeveralBatches() - self._writeExpBatchFileSeveralBatches() - self._writeExpBatchLineFileSeveralBatches() - - multifasta2SNPFile = Multifasta2SNPFile("Arabidopsis thaliana") - multifasta2SNPFile.runSeveralBatches(self._inputDirSeveralBatches) - - self.assertTrue(FileUtils.isRessourceExists(self._inputDirSeveralBatches + "/" + self._obsAlleleFileName)) - self.assertTrue(FileUtils.are2FilesIdentical(self._expAlleleFileName, self._inputDirSeveralBatches + "/" + self._obsAlleleFileName)) - - self.assertTrue(FileUtils.isRessourceExists(self._inputDirSeveralBatches + "/" +self._obsIndividualFileName)) - self.assertTrue(FileUtils.are2FilesIdentical(self._expIndividualFileName, self._inputDirSeveralBatches + "/" + self._obsIndividualFileName)) - - self.assertTrue(FileUtils.isRessourceExists(self._inputDirSeveralBatches + "/" + self._obsSequenceFSAFileName)) - self.assertTrue(FileUtils.are2FilesIdentical(self._expSequenceFSAFileName, self._inputDirSeveralBatches + "/" + self._obsSequenceFSAFileName)) - - self.assertTrue(FileUtils.isRessourceExists(self._inputDirSeveralBatches + "/" + self._obsSequenceCSVFileName)) - self.assertTrue(FileUtils.are2FilesIdentical(self._expSequenceCSVFileName, self._inputDirSeveralBatches + "/" + self._obsSequenceCSVFileName)) - - self.assertTrue(FileUtils.isRessourceExists(self._inputDirSeveralBatches + "/" + self._obsBatchFileName)) - self.assertTrue(FileUtils.are2FilesIdentical(self._expBatchFileName, self._inputDirSeveralBatches + "/" + self._obsBatchFileName)) - - self.assertTrue(FileUtils.isRessourceExists(self._inputDirSeveralBatches + "/" + self._obsBatchLineFileName)) - self.assertTrue(FileUtils.are2FilesIdentical(self._expBatchLineFileName, self._inputDirSeveralBatches + "/" + self._obsBatchLineFileName)) - self.assertTrue(FileUtils.isRessourceExists(self._inputDirSeveralBatches + "/" + self._obsSubSNPFileName)) - self.assertTrue(FileUtils.are2FilesIdentical(self._expSubSNPFileName, self._inputDirSeveralBatches + "/" + self._obsSubSNPFileName)) - - def test_runSeveralBatches_different_lines_between_files(self): - self._writeInputFileSeveralBatches_different_lines_between_files() - self._writeExpSubSNPFileSeveralBatches_different_lines_between_files() - self._writeExpAlleleFileSeveralBatches() - self._writeExpIndividualFile_different_lines_between_files() - self._writeExpSequenceSeveralBatches() - self._writeExpBatchFileSeveralBatches() - self._writeExpBatchLineFileSeveralBatches_different_lines_between_files() - - multifasta2SNPFile = Multifasta2SNPFile("Arabidopsis thaliana") - multifasta2SNPFile.runSeveralBatches(self._inputDirSeveralBatches) - - self.assertTrue(FileUtils.isRessourceExists(self._inputDirSeveralBatches + "/" + self._obsAlleleFileName)) - self.assertTrue(FileUtils.are2FilesIdentical(self._expAlleleFileName, self._inputDirSeveralBatches + "/" + self._obsAlleleFileName)) - - self.assertTrue(FileUtils.isRessourceExists(self._inputDirSeveralBatches + "/" +self._obsIndividualFileName)) - self.assertTrue(FileUtils.are2FilesIdentical(self._expIndividualFileName, self._inputDirSeveralBatches + "/" + self._obsIndividualFileName)) - - self.assertTrue(FileUtils.isRessourceExists(self._inputDirSeveralBatches + "/" + self._obsSequenceFSAFileName)) - self.assertTrue(FileUtils.are2FilesIdentical(self._expSequenceFSAFileName, self._inputDirSeveralBatches + "/" + self._obsSequenceFSAFileName)) - - self.assertTrue(FileUtils.isRessourceExists(self._inputDirSeveralBatches + "/" + self._obsSequenceCSVFileName)) - self.assertTrue(FileUtils.are2FilesIdentical(self._expSequenceCSVFileName, self._inputDirSeveralBatches + "/" + self._obsSequenceCSVFileName)) - - self.assertTrue(FileUtils.isRessourceExists(self._inputDirSeveralBatches + "/" + self._obsBatchFileName)) - self.assertTrue(FileUtils.are2FilesIdentical(self._expBatchFileName, self._inputDirSeveralBatches + "/" + self._obsBatchFileName)) - - self.assertTrue(FileUtils.isRessourceExists(self._inputDirSeveralBatches + "/" + self._obsBatchLineFileName)) - self.assertTrue(FileUtils.are2FilesIdentical(self._expBatchLineFileName, self._inputDirSeveralBatches + "/" + self._obsBatchLineFileName)) - self.assertTrue(FileUtils.isRessourceExists(self._inputDirSeveralBatches + "/" + self._obsSubSNPFileName)) - self.assertTrue(FileUtils.are2FilesIdentical(self._expSubSNPFileName, self._inputDirSeveralBatches + "/" + self._obsSubSNPFileName)) - - def test_runSeveralBatches_different_lines_and_same_refseq_between_files(self): - self._writeInputFileSeveralBatches_different_lines_and_same_refseq_between_files() - self._writeExpSubSNPFileSeveralBatches_different_lines_between_files() - self._writeExpAlleleFileSeveralBatches() - self._writeExpIndividualFile_different_lines_between_files() - self._writeExpSequenceSeveralBatchesForSameRefSeq() - self._writeExpBatchFileSeveralBatchesForSameRefSeq() - self._writeExpBatchLineFileSeveralBatches_different_lines_between_files() - - multifasta2SNPFile = Multifasta2SNPFile("Arabidopsis thaliana") - try: - multifasta2SNPFile.runSeveralBatches(self._inputDirSeveralBatches) - except Exception, e : - self.assertRaises(Exception, e) - - def test_detectSNPAndIndels(self): - refBioseq = Bioseq() - alignedBioseqDB = BioseqDB() - batchName = "batch1" - taxon = "Arabidopsis thaliana" - gene = "methyltransferase" - multifasta2SNPFile = Multifasta2SNPFile(taxon, batchName, gene) - refBioseq.sequence = "ATTCGCGTATGCGTATGCTT" - refBioseq.header = "reference" - - bs1 = Bioseq( "line1", "ATCCGCGTATGCGTATGATT" ) - bs2 = Bioseq( "line2", "ATTCGTGTATGCGTATGGTT" ) - - alignedBioseqDB.setData( [ bs1, bs2 ] ) - - multifasta2SNPFile._wrapper = ReferenceBioseqAndLinesBioseqDBWrapper(refBioseq, alignedBioseqDB, multifasta2SNPFile._logFile, self._inFileName) - multifasta2SNPFile._dBatchResults = {'BatchNumber': 1, 'BatchName': "Batch1", 'GeneName': "methyltransferase", 'RefSeqName': "Sequence_de_Reference"} - multifasta2SNPFile.detectSNPsAndIndels(multifasta2SNPFile._wrapper) - - dExpAllele = {'C': 1, 'A': 2, 'T': 3, 'G': 4 } - lExpSNP = [{'subSNPName': batchName + "_SNP_3_line1", 'position': 3, 'lineName': 1, 'allele': 1, '5flank': "AT", '3flank': "CGCGTATGCGTATGATT", 'batchNumber': 1, 'confidenceValue' : "A", 'type' : "SNP", 'length': 1}, - {'subSNPName': batchName + "_SNP_3_line2", 'position': 3, 'lineName': 2, 'allele': 3, '5flank': "AT", '3flank': "CGTGTATGCGTATGGTT", 'batchNumber': 1, 'confidenceValue' : "A", 'type' : "SNP", 'length': 1}, - {'subSNPName': batchName + "_SNP_6_line2", 'position': 6, 'lineName': 2, 'allele': 3, '5flank': "ATTCG", '3flank': "GTATGCGTATGGTT", 'batchNumber': 1, 'confidenceValue' : "A", 'type' : "SNP", 'length': 1}, - {'subSNPName': batchName + "_SNP_6_line1", 'position': 6, 'lineName': 1, 'allele': 1, '5flank': "ATCCG", '3flank': "GTATGCGTATGATT",'batchNumber': 1, 'confidenceValue' : "A", 'type' : "SNP", 'length': 1}, - {'subSNPName': batchName + "_SNP_18_line1", 'position': 18, 'lineName': 1, 'allele': 2, '5flank': "ATCCGCGTATGCGTATG", '3flank': "TT", 'batchNumber': 1, 'confidenceValue' : "A", 'type' : "SNP", 'length': 1}, - {'subSNPName': batchName + "_SNP_18_line2", 'position': 18, 'lineName': 2, 'allele': 4, '5flank': "ATTCGTGTATGCGTATG", '3flank': "TT", 'batchNumber': 1, 'confidenceValue' : "A", 'type' : "SNP", 'length': 1}] - lExpIndividual = [{'individualNumber': 1, 'individualName': "line1", 'scientificName': "Arabidopsis thaliana"}, - {'individualNumber': 2, 'individualName': "line2", 'scientificName': "Arabidopsis thaliana"},] - - self.assertEquals(multifasta2SNPFile._sortSubSNPResultByBatchPositionAndLineName(lExpSNP), multifasta2SNPFile._lSubSNPFileResults) - self.assertEquals(dExpAllele, multifasta2SNPFile._dAlleleFileResults) - self.assertEquals(lExpIndividual, multifasta2SNPFile._lIndividualFileResults) - - def test_detectSNPAndIndels_no_polym(self): - refBioseq = Bioseq() - alignedBioseqDB = BioseqDB() - batchName = "batch1" - taxon = "Arabidopsis thaliana" - gene = "methyltransferase" - multifasta2SNPFile = Multifasta2SNPFile(taxon, batchName, gene) - refBioseq.sequence = "ATTCGCGTATGCGTATGCTT" - refBioseq.header = "reference" - - bs1 = Bioseq( "line1", "ATTCGCGTATGCGTATGCTT" ) - bs2 = Bioseq( "line2", "ATTCGCGTATGCGTATGCTT" ) - - alignedBioseqDB.setData( [ bs1, bs2 ] ) - - instance = ReferenceBioseqAndLinesBioseqDBWrapper(refBioseq, alignedBioseqDB, multifasta2SNPFile._logFile, self._inFileName) - - multifasta2SNPFile.detectSNPsAndIndels(instance) - - lExpSNP = [] - - self.assertEquals(lExpSNP, multifasta2SNPFile._lSubSNPFileResults) - - def test_detectSNPAndIndels_with_only_dels(self): - refBioseq = Bioseq() - alignedBioseqDB = BioseqDB() - batchName = "batch1" - taxon = "Arabidopsis thaliana" - gene = "methyltransferase" - multifasta2SNPFile = Multifasta2SNPFile(taxon, batchName, gene) - refBioseq.sequence = "ATTACCGAA" - refBioseq.header = "reference" - - bs1 = Bioseq( "line1", "A--ACCGAA" ) - bs2 = Bioseq( "line2", "---ACCGAA" ) - - alignedBioseqDB.setData( [ bs1, bs2 ] ) - - multifasta2SNPFile._wrapper = ReferenceBioseqAndLinesBioseqDBWrapper(refBioseq, alignedBioseqDB, multifasta2SNPFile._logFile, self._inFileName) - multifasta2SNPFile._dBatchResults = {'BatchNumber': 1, 'BatchName': "Batch1", 'GeneName': "methyltransferase", 'RefSeqName': "Sequence_de_Reference"} - multifasta2SNPFile.detectSNPsAndIndels(multifasta2SNPFile._wrapper) - - dExpAllele = {'A--': 1, '---': 2} - lExpSNP = [{'subSNPName': batchName + "_DEL_1_line2", 'position': 1, 'lineName': 2, 'allele': 2, '5flank': "", '3flank': "ACCGAA", 'batchNumber': 1, 'confidenceValue' : "A", 'type' : "DELETION", 'length': 3}, - {'subSNPName': batchName + "_DEL_1_line1", 'position': 1, 'lineName': 1, 'allele': 1, '5flank': "", '3flank': "ACCGAA", 'batchNumber': 1, 'confidenceValue' : "A", 'type' : "DELETION", 'length': 3}] - lExpIndividual = [{'individualNumber': 1, 'individualName': "line1", 'scientificName': "Arabidopsis thaliana"}, - {'individualNumber': 2, 'individualName': "line2", 'scientificName': "Arabidopsis thaliana"}] - - self.assertEquals(dExpAllele, multifasta2SNPFile._dAlleleFileResults) - self.assertEquals(multifasta2SNPFile._sortSubSNPResultByBatchPositionAndLineName(lExpSNP), multifasta2SNPFile._lSubSNPFileResults) - self.assertEquals(lExpIndividual, multifasta2SNPFile._lIndividualFileResults) - - def test_detectSNPAndIndels_with_dels_and_snps(self): - refBioseq = Bioseq() - alignedBioseqDB = BioseqDB() - batchName = "batch1" - taxon = "Arabidopsis thaliana" - gene = "methyltransferase" - multifasta2SNPFile = Multifasta2SNPFile(taxon, batchName, gene) - refBioseq.sequence = "ATTACCGAA" - refBioseq.header = "reference" - - bs1 = Bioseq( "line1", "A--ACCGAA" ) - bs2 = Bioseq( "line2", "---ACCGAA" ) - bs3 = Bioseq( "line3", "ATTACCGGA" ) - bs4 = Bioseq( "line4", "----CCGAA" ) - - alignedBioseqDB.setData( [ bs1, bs2, bs3, bs4 ] ) - - multifasta2SNPFile._wrapper = ReferenceBioseqAndLinesBioseqDBWrapper(refBioseq, alignedBioseqDB, multifasta2SNPFile._logFile, self._inFileName) - multifasta2SNPFile._dBatchResults = {'BatchNumber': 1, 'BatchName': "Batch1", 'GeneName': "methyltransferase", 'RefSeqName': "Sequence_de_Reference"} - multifasta2SNPFile.detectSNPsAndIndels(multifasta2SNPFile._wrapper) - - dExpAllele = {'G': 1, 'A--A': 2, '---A': 3, '----': 4, 'ATTA': 5, 'A': 6} - lExpSNP = [{'subSNPName': batchName + "_DEL_1_line2", 'position': 1, 'lineName': 2, 'allele': 3, '5flank': "", '3flank': "CCGAA", 'batchNumber': 1, 'confidenceValue' : "A", 'type' : "DELETION", 'length': 4}, - {'subSNPName': batchName + "_DEL_1_line1", 'position': 1, 'lineName': 1, 'allele': 2, '5flank': "", '3flank': "CCGAA",'batchNumber': 1, 'confidenceValue' : "A", 'type' : "DELETION", 'length': 4}, - {'subSNPName': batchName + "_SNP_8_line3", 'position': 8, 'lineName': 3, 'allele': 1, '5flank': "ATTACCG", '3flank': "A", 'batchNumber': 1, 'confidenceValue' : "A", 'type' : "SNP", 'length': 1}, - {'subSNPName': batchName + "_SNP_8_line1", 'position': 8, 'lineName': 1, 'allele': 6, '5flank': "A--ACCG", '3flank': "A", 'batchNumber': 1, 'confidenceValue' : "A", 'type' : "SNP", 'length': 1}, - {'subSNPName': batchName + "_SNP_8_line2", 'position': 8, 'lineName': 2, 'allele': 6, '5flank': "---ACCG", '3flank': "A", 'batchNumber': 1, 'confidenceValue' : "A", 'type' : "SNP", 'length': 1}, - {'subSNPName': batchName + "_SNP_8_line4", 'position': 8, 'lineName': 4, 'allele': 6, '5flank': "----CCG", '3flank': "A", 'batchNumber': 1, 'confidenceValue' : "A", 'type' : "SNP", 'length': 1}, - {'subSNPName': batchName + "_DEL_1_line4", 'position': 1, 'lineName': 4, 'allele': 4, '5flank': "", '3flank': "CCGAA",'batchNumber': 1, 'confidenceValue' : "A", 'type' : "DELETION", 'length': 4}, - {'subSNPName': batchName + "_DEL_1_line3", 'position': 1, 'lineName': 3, 'allele': 5, '5flank': "", '3flank': "CCGGA",'batchNumber': 1, 'confidenceValue' : "A", 'type' : "DELETION", 'length': 4}] - lExpIndividual = [{'individualNumber': 1, 'individualName': "line1", 'scientificName': "Arabidopsis thaliana"}, - {'individualNumber': 2, 'individualName': "line2", 'scientificName': "Arabidopsis thaliana"}, - {'individualNumber': 3, 'individualName': "line3", 'scientificName': "Arabidopsis thaliana"}, - {'individualNumber': 4, 'individualName': "line4", 'scientificName': "Arabidopsis thaliana"}] - - self.assertEquals(dExpAllele, multifasta2SNPFile._dAlleleFileResults) - self.assertEquals(multifasta2SNPFile._sortSubSNPResultByBatchPositionAndLineName(lExpSNP), multifasta2SNPFile._lSubSNPFileResults) - self.assertEquals(lExpIndividual, multifasta2SNPFile._lIndividualFileResults) - - def test_detectSNPAndIndels_with_only_inserts(self): - refBioseq = Bioseq() - alignedBioseqDB = BioseqDB() - batchName = "batch1" - taxon = "Arabidopsis thaliana" - gene = "methyltransferase" - multifasta2SNPFile = Multifasta2SNPFile(taxon, batchName, gene) - refBioseq.sequence = "A--ACCGAA" - refBioseq.header = "reference" - - bs1 = Bioseq( "line1", "A--ACCGAA" ) - bs2 = Bioseq( "line2", "AG-ACCGAA" ) - bs3 = Bioseq( "line3", "ATTACCGAA" ) - - alignedBioseqDB.setData( [ bs1, bs2, bs3 ] ) - - multifasta2SNPFile._wrapper = ReferenceBioseqAndLinesBioseqDBWrapper(refBioseq, alignedBioseqDB, multifasta2SNPFile._logFile, self._inFileName) - multifasta2SNPFile._dBatchResults = {'BatchNumber': 1, 'BatchName': "Batch1", 'GeneName': "methyltransferase", 'RefSeqName': "Sequence_de_Reference"} - multifasta2SNPFile.detectSNPsAndIndels(multifasta2SNPFile._wrapper) - - dExpAllele = {'G-': 1, 'TT': 2, '--': 3} - lExpSNP = [{'subSNPName': batchName + "_INS_1_line2", 'position': 1, 'lineName': 2, 'allele': 1, '5flank': "A", '3flank': "ACCGAA", 'batchNumber': 1, 'confidenceValue' : "A", 'type' : "INSERTION", 'length': 2}, - {'subSNPName': batchName + "_INS_1_line3", 'position': 1, 'lineName': 3, 'allele': 2, '5flank': "A", '3flank': "ACCGAA", 'batchNumber': 1, 'confidenceValue' : "A", 'type' : "INSERTION", 'length': 2}, - {'subSNPName': batchName + "_INS_1_line1", 'position': 1, 'lineName': 1, 'allele': 3, '5flank': "A", '3flank': "ACCGAA", 'batchNumber': 1, 'confidenceValue' : "A", 'type' : "INSERTION", 'length': 2}] - lExpIndividual = [{'individualNumber': 1, 'individualName': "line1", 'scientificName': "Arabidopsis thaliana"}, - {'individualNumber': 2, 'individualName': "line2", 'scientificName': "Arabidopsis thaliana"}, - {'individualNumber': 3, 'individualName': "line3", 'scientificName': "Arabidopsis thaliana"}] - - self.assertEquals(dExpAllele, multifasta2SNPFile._dAlleleFileResults) - self.assertEquals(multifasta2SNPFile._sortSubSNPResultByBatchPositionAndLineName(lExpSNP), multifasta2SNPFile._lSubSNPFileResults) - self.assertEquals(lExpIndividual, multifasta2SNPFile._lIndividualFileResults) - - def test_detectSNPAndIndels_with_snps_and_inserts(self): - refBioseq = Bioseq() - alignedBioseqDB = BioseqDB() - batchName = "batch1" - taxon = "Arabidopsis thaliana" - gene = "methyltransferase" - multifasta2SNPFile = Multifasta2SNPFile(taxon, batchName, gene) - refBioseq.sequence = "A--ACCGAA" - refBioseq.header = "reference" - - bs1 = Bioseq( "line1", "A--ACCGAA" ) - bs2 = Bioseq( "line2", "AG-ACCGAA" ) - bs3 = Bioseq( "line3", "ATTACCGCA" ) - - alignedBioseqDB.setData( [ bs1, bs2, bs3 ] ) - - multifasta2SNPFile._wrapper = ReferenceBioseqAndLinesBioseqDBWrapper(refBioseq, alignedBioseqDB, multifasta2SNPFile._logFile, self._inFileName) - multifasta2SNPFile._dBatchResults = {'BatchNumber': 1, 'BatchName': "Batch1", 'GeneName': "methyltransferase", 'RefSeqName': "Sequence_de_Reference"} - multifasta2SNPFile.detectSNPsAndIndels(multifasta2SNPFile._wrapper) - - dExpAllele = {'C': 1, 'G-': 2, 'TT': 3, '--': 4, 'A' : 5} - lExpSNP = [{'subSNPName': batchName + "_SNP_6_line3", 'position': 6, 'lineName': 3, 'allele': 1, '5flank': "ATTACCG", '3flank': "A", 'batchNumber': 1, 'confidenceValue' : "A", 'type' : "SNP", 'length': 1}, - {'subSNPName': batchName + "_SNP_6_line1", 'position': 6, 'lineName': 1, 'allele': 5, '5flank': "A--ACCG", '3flank': "A", 'batchNumber': 1, 'confidenceValue' : "A", 'type' : "SNP", 'length': 1}, - {'subSNPName': batchName + "_SNP_6_line2", 'position': 6, 'lineName': 2, 'allele': 5, '5flank': "AG-ACCG", '3flank': "A", 'batchNumber': 1, 'confidenceValue' : "A", 'type' : "SNP", 'length': 1}, - {'subSNPName': batchName + "_INS_1_line2", 'position': 1, 'lineName': 2, 'allele': 2, '5flank': "A", '3flank': "ACCGAA", 'batchNumber': 1, 'confidenceValue' : "A", 'type' : "INSERTION", 'length': 2}, - {'subSNPName': batchName + "_INS_1_line3", 'position': 1, 'lineName': 3, 'allele': 3, '5flank': "A", '3flank': "ACCGCA", 'batchNumber': 1, 'confidenceValue' : "A", 'type' : "INSERTION", 'length': 2}, - {'subSNPName': batchName + "_INS_1_line1", 'position': 1, 'lineName': 1, 'allele': 4, '5flank': "A", '3flank': "ACCGAA", 'batchNumber': 1, 'confidenceValue' : "A", 'type' : "INSERTION", 'length': 2}] - lExpIndividual = [{'individualNumber': 1, 'individualName': "line1", 'scientificName': "Arabidopsis thaliana"}, - {'individualNumber': 2, 'individualName': "line2", 'scientificName': "Arabidopsis thaliana"}, - {'individualNumber': 3, 'individualName': "line3", 'scientificName': "Arabidopsis thaliana"}] - - self.assertEquals(dExpAllele, multifasta2SNPFile._dAlleleFileResults) - self.assertEquals(multifasta2SNPFile._sortSubSNPResultByBatchPositionAndLineName(lExpSNP), multifasta2SNPFile._lSubSNPFileResults) - self.assertEquals(lExpIndividual, multifasta2SNPFile._lIndividualFileResults) - - def test_detectSNPAndIndels_with_snps_inserts_and_dels(self): - refBioseq = Bioseq() - alignedBioseqDB = BioseqDB() - batchName = "batch1" - taxon = "Arabidopsis thaliana" - gene = "methyltransferase" - multifasta2SNPFile = Multifasta2SNPFile(taxon, batchName, gene) - refBioseq.sequence = "A--ACCGAATATAC" - refBioseq.header = "reference" - - bs1 = Bioseq( "line1", "A--ACCGAATATAC" ) - bs2 = Bioseq( "line2", "AG-ACCGAAT--AC" ) - bs3 = Bioseq( "line3", "ATTACCGCA-----" ) - - alignedBioseqDB.setData( [ bs1, bs2, bs3 ] ) - - multifasta2SNPFile._wrapper = ReferenceBioseqAndLinesBioseqDBWrapper(refBioseq, alignedBioseqDB, multifasta2SNPFile._logFile, self._inFileName) - multifasta2SNPFile._dBatchResults = {'BatchNumber': 1, 'BatchName': "Batch1", 'GeneName': "methyltransferase", 'RefSeqName': "Sequence_de_Reference"} - multifasta2SNPFile.detectSNPsAndIndels(multifasta2SNPFile._wrapper) - - dExpAllele = {'C': 1, 'G-': 2, 'T--AC': 3, 'TT': 4, '-----': 5, '--': 6, 'TATAC': 7, 'A': 8} - lExpSNP = [{'subSNPName': batchName + "_SNP_6_line3", 'position': 6, 'lineName': 3, 'allele': 1, '5flank': "ATTACCG", '3flank': "A-----", 'batchNumber': 1, 'confidenceValue' : "A", 'type' : "SNP", 'length': 1}, - {'subSNPName': batchName + "_SNP_6_line1", 'position': 6, 'lineName': 1, 'allele': 8, '5flank': "A--ACCG", '3flank': "ATATAC", 'batchNumber': 1, 'confidenceValue' : "A", 'type' : "SNP", 'length': 1}, - {'subSNPName': batchName + "_SNP_6_line2", 'position': 6, 'lineName': 2, 'allele': 8, '5flank': "AG-ACCG", '3flank': "AT--AC", 'batchNumber': 1, 'confidenceValue' : "A", 'type' : "SNP", 'length': 1}, - - {'subSNPName': batchName + "_INS_1_line2", 'position': 1, 'lineName': 2, 'allele': 2, '5flank': "A", '3flank': "ACCGAAT--AC", 'batchNumber': 1, 'confidenceValue' : "A", 'type' : "INSERTION", 'length': 2}, - {'subSNPName': batchName + "_INS_1_line3", 'position': 1, 'lineName': 3, 'allele': 4, '5flank': "A", '3flank': "ACCGCA-----", 'batchNumber': 1, 'confidenceValue' : "A", 'type' : "INSERTION", 'length': 2}, - {'subSNPName': batchName + "_INS_1_line1", 'position': 1, 'lineName': 1, 'allele': 6, '5flank': "A", '3flank': "ACCGAATATAC", 'batchNumber': 1, 'confidenceValue' : "A", 'type' : "INSERTION", 'length': 2}, - - {'subSNPName': batchName + "_DEL_8_line2", 'position': 8, 'lineName': 2, 'allele': 3, '5flank': "AG-ACCGAA", '3flank': "", 'batchNumber': 1, 'confidenceValue' : "A", 'type' : "DELETION", 'length': 5}, - {'subSNPName': batchName + "_DEL_8_line3", 'position': 8, 'lineName': 3, 'allele': 5, '5flank': "ATTACCGCA", '3flank': "", 'batchNumber': 1, 'confidenceValue' : "A", 'type' : "DELETION", 'length': 5}, - {'subSNPName': batchName + "_DEL_8_line1", 'position': 8, 'lineName': 1, 'allele': 7, '5flank': "A--ACCGAA", '3flank': "", 'batchNumber': 1, 'confidenceValue' : "A", 'type' : "DELETION", 'length': 5}] - lExpIndividual = [{'individualNumber': 1, 'individualName': "line1", 'scientificName': "Arabidopsis thaliana"}, - {'individualNumber': 2, 'individualName': "line2", 'scientificName': "Arabidopsis thaliana"}, - {'individualNumber': 3, 'individualName': "line3", 'scientificName': "Arabidopsis thaliana"}] - - self.assertEquals(dExpAllele, multifasta2SNPFile._dAlleleFileResults) - self.assertEquals(multifasta2SNPFile._sortSubSNPResultByBatchPositionAndLineName(lExpSNP), multifasta2SNPFile._lSubSNPFileResults) - self.assertEquals(lExpIndividual, multifasta2SNPFile._lIndividualFileResults) - - def test_createWrapperFromFile_with_upcase_and_lowcase_nucleotide(self): - self._writeInputFileWithUpcaseAndLowcaseNucleotide() - batchName = "batch1" - taxon = "Arabidopsis thaliana" - gene = "methyltransferase" - multifasta2SNPFile = Multifasta2SNPFile(taxon, batchName, gene) - - expLineBioseqDB = BioseqDB() - expRefBioseq = Bioseq("Sequence_de_Reference",\ - "CCTAAGCCATTGCTTGGTGATTATGAAGGCAGTAGTCAAACCTCCACAATCCGCAGTAGCCAAACCTCCACAATA") - iBioSeq = Bioseq("Line1","CCTTAGCCATTGCTTGGTGACTATGAAGGCAGTAGGCAAACCTCCACAATCCGCAGTAGCCAAACCTCCACAATA") - expLineBioseqDB.add ( iBioSeq ) - iBioSeq = Bioseq("Line2","CCTAAGCCATTGCTTGGTGACTATCAAGGCAGTAGCCAAACCTCCACAATACGCAGTAGCCAAACCTCCACAATA") - expLineBioseqDB.add ( iBioSeq ) - - expBioseqDBWrapper = ReferenceBioseqAndLinesBioseqDBWrapper (expRefBioseq, expLineBioseqDB, multifasta2SNPFile._logFile, self._inFileName) - - obsBioseqDBWrapper = multifasta2SNPFile.createWrapperFromFile(self._inFileName) - - self.assertEquals(obsBioseqDBWrapper._iReferenceBioseq, expBioseqDBWrapper._iReferenceBioseq) - self.assertEquals(obsBioseqDBWrapper._iLinesBioseqDB, expBioseqDBWrapper._iLinesBioseqDB) - - def test_checkHeaderAlphabet(self): - # header ALPHABET [^a-zA-Z0-9_-:] - batchName = "batch1" - taxon = "Arabidopsis thaliana" - gene = "methyltransferase" - multifasta2SNPFile = Multifasta2SNPFile(taxon, batchName, gene) - strToBeCheck="abcdefghijklmnopqrstuvwxyz0912834567_:-" - self.assertTrue ( multifasta2SNPFile.checkHeaderAlphabet(strToBeCheck)) - strToBeCheck="ABCDEFGHIJKLMNOPQRSTUVWXYZ0912834567_:-" - self.assertTrue ( multifasta2SNPFile.checkHeaderAlphabet(strToBeCheck)) - - def test_checkHeaderAlphabet_empty_string(self): - batchName = "batch1" - taxon = "Arabidopsis thaliana" - gene = "methyltransferase" - multifasta2SNPFile = Multifasta2SNPFile(taxon, batchName, gene) - strToBeCheck="" - self.assertFalse ( multifasta2SNPFile.checkHeaderAlphabet(strToBeCheck)) - - def test_checkHeaderAlphabet_space(self): - batchName = "batch1" - taxon = "Arabidopsis thaliana" - gene = "methyltransferase" - multifasta2SNPFile = Multifasta2SNPFile(taxon, batchName, gene) - strToBeCheck=" " - self.assertFalse ( multifasta2SNPFile.checkHeaderAlphabet(strToBeCheck)) - - def test_checkHeaderAlphabet_non_aphabetical(self): - batchName = "batch1" - taxon = "Arabidopsis thaliana" - gene = "methyltransferase" - multifasta2SNPFile = Multifasta2SNPFile(taxon, batchName, gene) - strToBeCheck="}" - self.assertFalse ( multifasta2SNPFile.checkHeaderAlphabet(strToBeCheck)) - - def test_isDNA_bases( self ): - batchName = "batch1" - taxon = "Arabidopsis thaliana" - gene = "methyltransferase" - multifasta2SNPFile = Multifasta2SNPFile(taxon, batchName, gene) - strToBeCheck="TGTGGCTTCTAGTTGATCAGTTTATGATCACAATGATTTCACGTAGGTGTCTCGTGGCTCCGACTAATCAACAATATAATGCGAGTAGAGCTTGA" - self.assertTrue ( multifasta2SNPFile.isDNA_bases(strToBeCheck)) - - def test_isDNA_bases_non_DNA_letter( self ): - batchName = "batch1" - taxon = "Arabidopsis thaliana" - gene = "methyltransferase" - multifasta2SNPFile = Multifasta2SNPFile(taxon, batchName, gene) - strToBeCheck="XTAGTTGATCA" - self.assertFalse ( multifasta2SNPFile.isDNA_bases(strToBeCheck)) - - def test_isDNA_bases_carriage_return( self ): - batchName = "batch1" - taxon = "Arabidopsis thaliana" - gene = "methyltransferase" - multifasta2SNPFile = Multifasta2SNPFile(taxon, batchName, gene) - strToBeCheck="TA\nGTTGATCA" - self.assertFalse ( multifasta2SNPFile.isDNA_bases(strToBeCheck)) - - def test_isDNA_bases_empty_string( self ): - batchName = "batch1" - taxon = "Arabidopsis thaliana" - gene = "methyltransferase" - multifasta2SNPFile = Multifasta2SNPFile(taxon, batchName, gene) - strToBeCheck="" - self.assertFalse ( multifasta2SNPFile.isDNA_bases(strToBeCheck)) - - def test_isDNA_bases_space( self ): - batchName = "batch1" - taxon = "Arabidopsis thaliana" - gene = "methyltransferase" - multifasta2SNPFile = Multifasta2SNPFile(taxon, batchName, gene) - strToBeCheck=" " - self.assertFalse ( multifasta2SNPFile.isDNA_bases(strToBeCheck)) - - def test_isDNA_bases_IUPAC_letter_but_non_DNA_bases( self ): - batchName = "batch1" - taxon = "Arabidopsis thaliana" - gene = "methyltransferase" - multifasta2SNPFile = Multifasta2SNPFile(taxon, batchName, gene) - strToBeCheck="UMWSB" - self.assertFalse ( multifasta2SNPFile.isDNA_bases(strToBeCheck)) - - def test_getLineAsAHeader (self): - lineToBeCheck=">test on good header" - batchName = "batch1" - expHeader = "test_on_good_header" - taxon = "Arabidopsis thaliana" - gene = "methyltransferase" - multifasta2SNPFile = Multifasta2SNPFile(taxon, batchName, gene) - obsHeader = multifasta2SNPFile.getLineAsAHeader(lineToBeCheck) - self.assertEqual(obsHeader,expHeader) - - def test_getLineAsAHeader_warning_bad_header_tag_omitted(self): - - lineToBeCheck="test on bad header with tag omitted" - batchName = "batch1" - taxon = "Arabidopsis thaliana" - gene = "methyltransferase" - multifasta2SNPFile = Multifasta2SNPFile(taxon, batchName, gene) - try : - expHeader = multifasta2SNPFile.getLineAsAHeader( lineToBeCheck ) - except Exception, e : - self.assertRaises(Exception, e , self._inFileName, self._obsSubSNPFileName) - - def test_getLineAsAHeader_warning_repeated_blanks_removed(self): - - lineToBeCheck =">test on header \twith warning" - expHeader = "test_on_header_with_warning" - batchName = "batch1" - taxon = "Arabidopsis thaliana" - gene = "methyltransferase" - multifasta2SNPFile = Multifasta2SNPFile(taxon, batchName, gene) - obsHeader = multifasta2SNPFile.getLineAsAHeader( lineToBeCheck ) - self.assertEquals( obsHeader, expHeader) - self.assertRaises(Exception, multifasta2SNPFile.getLineAsAHeader( lineToBeCheck ) , self._inFileName, self._obsSubSNPFileName) - - def test_getLineAsAHeader_fatal_error_bad_header(self): - lineToBeCheck=">test\on bad header with fatal error" - - batchName = "batch1" - taxon = "Arabidopsis thaliana" - gene = "methyltransferase" - multifasta2SNPFile = Multifasta2SNPFile(taxon, batchName, gene) - try : - expHeader = multifasta2SNPFile.getLineAsAHeader( lineToBeCheck ) - except Exception, e : - self.assertRaises(Exception, e , self._inFileName, self._obsSubSNPFileName) - - def test_isHeaderInRefSeqList(self): - header = "line1" - bs1 = Bioseq( "line1", "A--ACCGAATATAC" ) - bs2 = Bioseq( "line2", "AG-ACCGAAT--AC" ) - bs3 = Bioseq( "line3", "ATTACCGCA-----" ) - - batchName = "batch1" - taxon = "Arabidopsis thaliana" - gene = "methyltransferase" - - multifasta2SNPFile = Multifasta2SNPFile(taxon, batchName, gene) - multifasta2SNPFile._lRefSequences = [bs1, bs2, bs3] - try: - isHeader = multifasta2SNPFile.isHeaderInRefSeqList(header) - except Exception, e : - self.assertRaises(Exception, e) - - def test_completeAlleleSetWithCurrentAllele_one_allele_added(self): - dAlleleSetInInput = {"A" : 1, - "T" : 2, - "G" : 3} - alleleToAdd = "C" - dAlleleExpSet = {"A" : 1, - "T" : 2, - "G" : 3, - "C" : 4} - batchName = "batch1" - taxon = "Arabidopsis thaliana" - gene = "methyltransferase" - multifasta2SNPFile = Multifasta2SNPFile(taxon, batchName, gene) - dAlleleObsSet = multifasta2SNPFile._completeAlleleSetWithCurrentAllele(dAlleleSetInInput, alleleToAdd) - self.assertEquals(dAlleleObsSet, dAlleleExpSet) - - def test_completeAlleleSetWithCurrentAllele_no_allele_added(self): - dAlleleSetInInput = {"A" : 1, - "T" : 2, - "G" : 3} - alleleToAdd = "T" - dAlleleExpSet = {"A" : 1, - "T" : 2, - "G" : 3} - batchName = "batch1" - taxon = "Arabidopsis thaliana" - gene = "methyltransferase" - multifasta2SNPFile = Multifasta2SNPFile(taxon, batchName, gene) - dAlleleObsSet = multifasta2SNPFile._completeAlleleSetWithCurrentAllele(dAlleleSetInInput, alleleToAdd) - self.assertEquals(dAlleleObsSet, dAlleleExpSet) - - def test_completeAlleleSetWithCurrentAllele_with_an_empty_allele_set(self): - dAlleleSetInInput = {} - alleleToAdd = "T" - dAlleleExpSet = {"T" : 1} - batchName = "batch1" - taxon = "Arabidopsis thaliana" - gene = "methyltransferase" - multifasta2SNPFile = Multifasta2SNPFile(taxon, batchName, gene) - dAlleleObsSet = multifasta2SNPFile._completeAlleleSetWithCurrentAllele(dAlleleSetInInput, alleleToAdd) - self.assertEquals(dAlleleObsSet, dAlleleExpSet) - - def test_completeBatchLineListWithCurrentIndividual(self): - #TODO: this test only pass with a batchNumber of 1 - iCurrentBatchNumber = 1 - lBatchLineResults = [{'IndividualNumber': "1", 'BatchNumber': iCurrentBatchNumber}, - {'IndividualNumber': "2", 'BatchNumber': iCurrentBatchNumber}] - lIndividualResults = [{'individualNumber': 1, 'individualName': "Individual1", 'scientificName': "Arabidopsis thaliana"}, - {'individualNumber': 2, 'individualName': "Individual2", 'scientificName': "Arabidopsis thaliana"}, - {'individualNumber': 3, 'individualName': "Individual3", 'scientificName': "Arabidopsis thaliana"}] - lExpBatchLineResults = [{'IndividualNumber': "1", 'BatchNumber': iCurrentBatchNumber}, - {'IndividualNumber': "2", 'BatchNumber': iCurrentBatchNumber}, - {'IndividualNumber': "3", 'BatchNumber': iCurrentBatchNumber}] - lineName2Add = "Individual3" - batchName = "batch1" - taxon = "Arabidopsis thaliana" - gene = "methyltransferase" - multifasta2SNPFile = Multifasta2SNPFile(taxon, batchName, gene) - lBatchLineResults = multifasta2SNPFile._completeBatchLineListWithCurrentIndividual(lBatchLineResults, lIndividualResults, lineName2Add) - self.assertEquals(lBatchLineResults, lExpBatchLineResults) - - def test_completeBatchLineListWithCurrentIndividual_no_entries_in_batchline_results_in_input(self): - lBatchLineResults = [] - lIndividualResults = [{'individualNumber': 1, 'individualName': "Individual1", 'scientificName': "Arabidopsis thaliana"}, - {'individualNumber': 2, 'individualName': "Individual2", 'scientificName': "Arabidopsis thaliana"}, - {'individualNumber': 3, 'individualName': "Individual3", 'scientificName': "Arabidopsis thaliana"}] - lExpBatchLineResults = [{'IndividualNumber': "2", 'BatchNumber': 1}] - lineName2Add = "Individual2" - batchName = "batch1" - taxon = "Arabidopsis thaliana" - gene = "methyltransferase" - multifasta2SNPFile = Multifasta2SNPFile(taxon, batchName, gene) - lBatchLineResults = multifasta2SNPFile._completeBatchLineListWithCurrentIndividual(lBatchLineResults, lIndividualResults, lineName2Add) - self.assertEquals(lBatchLineResults, lExpBatchLineResults) - - def test_completeBatchLineListWithCurrentIndividual_no_individual_in_individualList(self): - lBatchLineResults = [{'IndividualNumber': "1", 'BatchNumber': 1}, - {'IndividualNumber': "2", 'BatchNumber': 1}] - lIndividualResults = [] - - lineName2Add = "Individual3" - batchName = "batch1" - taxon = "Arabidopsis thaliana" - gene = "methyltransferase" - multifasta2SNPFile = Multifasta2SNPFile(taxon, batchName, gene) - try: - lBatchLineResults = multifasta2SNPFile._completeBatchLineListWithCurrentIndividual(lBatchLineResults, lIndividualResults, lineName2Add) - except Exception, e : - self.assertRaises(Exception, e) - - def test_completeBatchLineListWithCurrentIndividual_individual_added_has_no_individual_number(self): - lBatchLineResults = [{'IndividualNumber': "1", 'BatchNumber': "1"}, - {'IndividualNumber': "2", 'BatchNumber': "1"}] - lIndividualResults = [{'individualNumber': 1, 'individualName': "Individual1", 'scientificName': "Arabidopsis thaliana"}, - {'individualNumber': 2, 'individualName': "Individual2", 'scientificName': "Arabidopsis thaliana"}, - {'individualName': "Individual3", 'scientificName': "Arabidopsis thaliana"}] - - lineName2Add = "Individual3" - batchName = "batch1" - taxon = "Arabidopsis thaliana" - gene = "methyltransferase" - multifasta2SNPFile = Multifasta2SNPFile(taxon, batchName, gene) - try: - lBatchLineResults = multifasta2SNPFile._completeBatchLineListWithCurrentIndividual(lBatchLineResults, lIndividualResults, lineName2Add) - except Exception, e : - self.assertRaises(Exception, e) - - def test_completeBatchLineListWithCurrentIndividual_individual_not_present_in_individualList(self): - lBatchLineResults = [{'IndividualNumber': "1", 'BatchNumber': "1"}, - {'IndividualNumber': "2", 'BatchNumber': "1"}] - lIndividualResults = [{'individualNumber': 1, 'individualName': "Individual1", 'scientificName': "Arabidopsis thaliana"}, - {'individualNumber': 2, 'individualName': "Individual2", 'scientificName': "Arabidopsis thaliana"}, - {'individualNumber': 3, 'individualName': "Individual3", 'scientificName': "Arabidopsis thaliana"}] - - lineName2Add = "Michael Corleone" - batchName = "batch1" - taxon = "Arabidopsis thaliana" - gene = "methyltransferase" - multifasta2SNPFile = Multifasta2SNPFile(taxon, batchName, gene) - try: - lBatchLineResults = multifasta2SNPFile._completeBatchLineListWithCurrentIndividual(lBatchLineResults, lIndividualResults, lineName2Add) - except Exception, e : - self.assertRaises(Exception, e) - - def test_findASubSNPInAListWithHisName(self): - lSubSNPList = [{'subSNPName': "SubSNP_batch1_1_line2", 'position': 1, 'lineName': 2, 'allele': 2, 'batchNumber': 1, 'confidenceValue' : "A", 'type' : "DELETION"}, - {'subSNPName': "SubSNP_batch1_2_line1", 'position': 1, 'lineName': 1, 'allele': 1, 'batchNumber': 1, 'confidenceValue' : "A", 'type' : "DELETION"}, - {'subSNPName': "SubSNP_batch1_6_line1", 'position': 6, 'lineName': 1, 'allele': 3, 'batchNumber': 1, 'confidenceValue' : "A", 'type' : "SNP"}] - name = "SubSNP_batch1_2_line1" - - dExpSubSNP = {'subSNPName': "SubSNP_batch1_2_line1", 'position': 1, 'lineName': 1, 'allele': 1, 'batchNumber': 1, 'confidenceValue' : "A", 'type' : "DELETION"} - expIndice = 1 - - multifasta2SNPFile = Multifasta2SNPFile("batch1", "gene1", "mouse") - - dObsSubSNP, obsIndice = multifasta2SNPFile.findASubSNPInAListWithHisName(name, lSubSNPList) - - self.assertEquals(expIndice, obsIndice) - self.assertEquals(dExpSubSNP, dObsSubSNP) - - def test_findASubSNPInAListWithHisName_SubSNP_not_found(self): - lSubSNPList = [{'subSNPName': "SubSNP_batch1_1_line2", 'position': 1, 'lineName': 2, 'allele': 2, 'batchNumber': 1, 'confidenceValue' : "A", 'type' : "DELETION"}, - {'subSNPName': "SubSNP_batch1_2_line1", 'position': 1, 'lineName': 1, 'allele': 1, 'batchNumber': 1, 'confidenceValue' : "A", 'type' : "DELETION"}, - {'subSNPName': "SubSNP_batch1_6_line1", 'position': 6, 'lineName': 1, 'allele': 3, 'batchNumber': 1, 'confidenceValue' : "A", 'type' : "SNP"}] - name = "SubSNP_fake" - - multifasta2SNPFile = Multifasta2SNPFile("batch1", "gene1", "mouse") - - try: - dObsSubSNP, obsIndice = multifasta2SNPFile.findASubSNPInAListWithHisName(name, lSubSNPList) - except Exception, e : - self.assertRaises(Exception, e) - - def test_clusteriseIndels(self): - multifasta2SNPFile = Multifasta2SNPFile("batch1", "gene1", "mouse") - lObsIndelsList = [{'name' : "indel1", 'start': 1, 'end': 6}, - {'name' : "indel2", 'start': 12, 'end': 15}, - {'name' : "indel3",'start': 5, 'end': 10}] - dIndel = {'start': 1, 'end': 6} - - lObsIndelsList = multifasta2SNPFile.clusteriseIndels(dIndel, lObsIndelsList) - lexpIndelsList = [{'name' : "indel1", 'start': 1, 'end': 10}, - {'name' : "indel2", 'start': 12, 'end': 15}, - {'name' : "indel3", 'start': 1, 'end': 10}] - - self.assertEquals(lexpIndelsList, lObsIndelsList) - - def test_clusteriseIndels_no_overlap(self): - multifasta2SNPFile = Multifasta2SNPFile("batch1", "gene1", "mouse") - lObsIndelsList = [{'name' : "indel1", 'start': 1, 'end': 6}, - {'name' : "indel2", 'start': 12, 'end': 15}, - {'name' : "indel3",'start': 25, 'end': 30}] - dIndel = {'start': 1, 'end': 6} - - lObsIndelsList = multifasta2SNPFile.clusteriseIndels(dIndel, lObsIndelsList) - lexpIndelsList = [{'name' : "indel1", 'start': 1, 'end': 6}, - {'name' : "indel2", 'start': 12, 'end': 15}, - {'name' : "indel3", 'start': 25, 'end': 30}] - - self.assertEquals(lexpIndelsList, lObsIndelsList) - - def test_clusteriseIndels_many_overlaps_complicated(self): - multifasta2SNPFile = Multifasta2SNPFile("batch1", "gene1", "mouse") - lObsIndelsList = [{'name' : "indel1", 'start': 1, 'end': 6}, - {'name' : "indel2", 'start': 12, 'end': 15}, - {'name' : "indel3",'start': 5, 'end': 10}, - {'name' : "indel4",'start': 9, 'end': 40}] - dIndel = {'start': 5, 'end': 10} - - lObsIndelsList = multifasta2SNPFile.clusteriseIndels(dIndel, lObsIndelsList) - lexpIndelsList = [{'name' : "indel1", 'start': 1, 'end': 40}, - {'name' : "indel2", 'start': 1, 'end': 40}, - {'name' : "indel3", 'start': 1, 'end': 40}, - {'name' : "indel4",'start': 1, 'end': 40}] - - self.assertEquals(lexpIndelsList, lObsIndelsList) - - def test_updateBoundsForAnIndelInAnIndelList(self): - lIndelsList = [{'name' : "indel1", 'start': 1, 'end': 6}, - {'name' : "indel2", 'start': 12, 'end': 15}, - {'name' : "indel3",'start': 5, 'end': 10}, - {'name' : "indel4",'start': 9, 'end': 40}] - dIndelWithNewBounds = {'name': "indel2", 'start': 7, 'end': 19} - multifasta2SNPFile = Multifasta2SNPFile("batch1", "gene1", "mouse") - lObsNewIndelsList = multifasta2SNPFile.updateBoundsForAnIndelInAnIndelList(lIndelsList, dIndelWithNewBounds) - lExpNewIndelsList = [{'name' : "indel1", 'start': 1, 'end': 6}, - {'name' : "indel2", 'start': 7, 'end': 19}, - {'name' : "indel3",'start': 5, 'end': 10}, - {'name' : "indel4",'start': 9, 'end': 40}] - self.assertEquals(lExpNewIndelsList, lObsNewIndelsList) - - def test_updateBoundsForAnIndelInAnIndelList_no_update_to_do(self): - lIndelsList = [{'name' : "indel1", 'start': 1, 'end': 6}, - {'name' : "indel2", 'start': 12, 'end': 15}, - {'name' : "indel3",'start': 5, 'end': 10}, - {'name' : "indel4",'start': 9, 'end': 40}] - dIndelWithNewBounds = {'name': "indel2", 'start': 12, 'end': 15} - multifasta2SNPFile = Multifasta2SNPFile("batch1", "gene1", "mouse") - lObsNewIndelsList = multifasta2SNPFile.updateBoundsForAnIndelInAnIndelList(lIndelsList, dIndelWithNewBounds) - lExpNewIndelsList = [{'name' : "indel1", 'start': 1, 'end': 6}, - {'name' : "indel2", 'start': 12, 'end': 15}, - {'name' : "indel3",'start': 5, 'end': 10}, - {'name' : "indel4",'start': 9, 'end': 40}] - self.assertEquals(lExpNewIndelsList, lObsNewIndelsList) - - def test_updateBoundsForAnIndelInAnIndelList_indel_2_update_does_not_exist(self): - lIndelsList = [{'name' : "indel1", 'start': 1, 'end': 6}, - {'name' : "indel2", 'start': 12, 'end': 15}, - {'name' : "indel3",'start': 5, 'end': 10}, - {'name' : "indel4",'start': 9, 'end': 40}] - dIndelWithNewBounds = {'name': "DeNiro", 'start': 12, 'end': 15} - multifasta2SNPFile = Multifasta2SNPFile("batch1", "gene1", "mouse") - try: - lObsNewIndelsList = multifasta2SNPFile.updateBoundsForAnIndelInAnIndelList(lIndelsList, dIndelWithNewBounds) - except Exception, e : - self.assertRaises(Exception, e) - - def test_mergeBoundsFor2Indels(self): - multifasta2SNPFile = Multifasta2SNPFile("batch1", "gene1", "mouse") - dIndel1 = {'start': 1, 'end': 4} - dIndel2 = {'start': 2, 'end': 15} - dIndel1, dIndel2 = multifasta2SNPFile.mergeBoundsForTwoOverlappingIndels(dIndel1, dIndel2) - dExpIndel1 = {'start': 1, 'end': 15} - dExpIndel2 = {'start': 1, 'end': 15} - self.assertEquals(dExpIndel1, dIndel1) - self.assertEquals(dExpIndel2, dIndel2) - - def test_mergeBoundsFor2Indels_no_overlap(self): - multifasta2SNPFile = Multifasta2SNPFile("batch1", "gene1", "mouse") - dIndel1 = {'start': 1, 'end': 4} - dIndel2 = {'start': 5, 'end': 15} - dIndel1, dIndel2 = multifasta2SNPFile.mergeBoundsForTwoOverlappingIndels(dIndel1, dIndel2) - dExpIndel1 = {'start': 1, 'end': 4} - dExpIndel2 = {'start': 5, 'end': 15} - self.assertEquals(dExpIndel1, dIndel1) - self.assertEquals(dExpIndel2, dIndel2) - - def test_getUngappedPositionInRefSeq(self): - multifasta2SNPFile = Multifasta2SNPFile("batch1", "gene1", "mouse") - refBioseq = Bioseq() - alignedBioseqDB = BioseqDB() - refBioseq.sequence = "A--TTACC-GAA" - refBioseq.header = "reference" - bs1 = Bioseq( "line1", "AACTTTCCAGAA" ) - bs2 = Bioseq( "line2", "AACTTACC-GAA" ) - - alignedBioseqDB.setData( [ bs1, bs2 ] ) - - multifasta2SNPFile._wrapper = ReferenceBioseqAndLinesBioseqDBWrapper(refBioseq, alignedBioseqDB, multifasta2SNPFile._logFile, self._inFileName) - - expUngappedPositionFor1 = 1 - obsUngappedPositionFor1 = multifasta2SNPFile.getUngappedPositionInRefSeq(1) - expUngappedPositionFor5 = 3 - obsUngappedPositionFor5 = multifasta2SNPFile.getUngappedPositionInRefSeq(5) - expUngappedPositionFor10 = 7 - obsUngappedPositionFor10 = multifasta2SNPFile.getUngappedPositionInRefSeq(10) - - self.assertEquals(expUngappedPositionFor1, obsUngappedPositionFor1) - self.assertEquals(expUngappedPositionFor5, obsUngappedPositionFor5) - self.assertEquals(expUngappedPositionFor10, obsUngappedPositionFor10) - - def test_getUngappedPositionInRefSeq_no_gap(self): - multifasta2SNPFile = Multifasta2SNPFile("batch1", "gene1", "mouse") - refBioseq = Bioseq() - alignedBioseqDB = BioseqDB() - refBioseq.sequence = "AACTTACCAGAA" - refBioseq.header = "reference" - bs1 = Bioseq( "line1", "AACTTTCCAGAA" ) - bs2 = Bioseq( "line2", "AACTTACC-GAA" ) - - alignedBioseqDB.setData( [ bs1, bs2 ] ) - - multifasta2SNPFile._wrapper = ReferenceBioseqAndLinesBioseqDBWrapper(refBioseq, alignedBioseqDB, multifasta2SNPFile._logFile, self._inFileName) - - expUngappedPositionFor1 = 1 - obsUngappedPositionFor1 = multifasta2SNPFile.getUngappedPositionInRefSeq(1) - expUngappedPositionFor5 = 5 - obsUngappedPositionFor5 = multifasta2SNPFile.getUngappedPositionInRefSeq(5) - expUngappedPositionFor10 = 10 - obsUngappedPositionFor10 = multifasta2SNPFile.getUngappedPositionInRefSeq(10) - - self.assertEquals(expUngappedPositionFor1, obsUngappedPositionFor1) - self.assertEquals(expUngappedPositionFor5, obsUngappedPositionFor5) - self.assertEquals(expUngappedPositionFor10, obsUngappedPositionFor10) - - def test_checkAllSeq_sequences_with_different_sizes_one_seq_longer(self): - multifasta2SNPFile = Multifasta2SNPFile("batch1", "gene1", "mouse") - refBioseq = Bioseq() - alignedBioseqDB = BioseqDB() - refBioseq.sequence = "AACTTACCAGAA" - refBioseq.header = "reference" - bs1 = Bioseq( "line1", "AACTTTCCAGAA" ) - bs2 = Bioseq( "line2", "AACTTACC-GAATTTC" ) - - alignedBioseqDB.setData( [ bs1, bs2 ] ) - - try: - multifasta2SNPFile._wrapper = ReferenceBioseqAndLinesBioseqDBWrapper(refBioseq, alignedBioseqDB, multifasta2SNPFile._logFile, self._inFileName) - except Exception, e : - self.assertRaises(Exception, e) - obsMsg = e.message - expMsg = "File: " + self._inFileName + ", problem with the sequence " + bs2.header + ": its length is different from the reference seq! All the sequences must have the same length.\n" - expMsg += "refseq length: " + str(len(refBioseq.sequence)) + "\n" - expMsg += "seq length: " + str(len(bs2.sequence)) + "\n" - self.assertEquals(expMsg, obsMsg) - - def test_checkAllSeq_sequences_with_different_sizes_one_seq_shorter(self): - multifasta2SNPFile = Multifasta2SNPFile("batch1", "gene1", "mouse") - refBioseq = Bioseq() - alignedBioseqDB = BioseqDB() - refBioseq.sequence = "AACTTACCAGAA" - refBioseq.header = "reference" - bs1 = Bioseq( "line1", "AACTTTCCAGAA" ) - bs2 = Bioseq( "line2", "AACTTACC" ) - - alignedBioseqDB.setData( [ bs1, bs2 ] ) - - try: - multifasta2SNPFile._wrapper = ReferenceBioseqAndLinesBioseqDBWrapper(refBioseq, alignedBioseqDB, multifasta2SNPFile._logFile, self._inFileName) - except Exception, e : - self.assertRaises(Exception, e) - obsMsg = e.message - expMsg = "File: " + self._inFileName + ", problem with the sequence " + bs2.header + ": its length is different from the reference seq! All the sequences must have the same length.\n" - expMsg += "refseq length: " + str(len(refBioseq.sequence)) + "\n" - expMsg += "seq length: " + str(len(bs2.sequence)) + "\n" - self.assertEquals(expMsg, obsMsg) - - - def test_getFlanksOfASubSNP(self): - refBioseq = Bioseq() - alignedBioseqDB = BioseqDB() - refBioseq.sequence = "AACTTACCAGAA" - refBioseq.header = "reference" - bs1 = Bioseq( "line1", "AACTTTCCAGAA" ) - bs2 = Bioseq( "line2", "AACTTACC-GAA" ) - alignedBioseqDB.setData( [ bs1, bs2 ] ) - multifasta2SNPFile = Multifasta2SNPFile("batch1", "gene1", "mouse") - multifasta2SNPFile._wrapper = ReferenceBioseqAndLinesBioseqDBWrapper(refBioseq, alignedBioseqDB, multifasta2SNPFile._logFile, self._inFileName) - subsnpPosition = 3 - polymLength = 3 - lineName = "line1" - exp5flank = "AA" - exp3flank = "TCCAGAA" - - obs5flank, obs3flank = multifasta2SNPFile.getFlanksOfASubSNP(lineName, subsnpPosition, polymLength, 7) - self.assertEquals(exp5flank, obs5flank) - self.assertEquals(exp3flank, obs3flank) - - def test_getFlanksOfASubSNP_flank_truncated(self): - refBioseq = Bioseq() - alignedBioseqDB = BioseqDB() - refBioseq.sequence = "AACTTACCAGAA" - refBioseq.header = "reference" - bs1 = Bioseq( "line1", "AACTTTCCAGAA" ) - bs2 = Bioseq( "line2", "AACTTACC-GAA" ) - alignedBioseqDB.setData( [ bs1, bs2 ] ) - multifasta2SNPFile = Multifasta2SNPFile("batch1", "gene1", "mouse") - multifasta2SNPFile._wrapper = ReferenceBioseqAndLinesBioseqDBWrapper(refBioseq, alignedBioseqDB, multifasta2SNPFile._logFile, self._inFileName) - subsnpPosition = 3 - polymLength = 3 - lineName = "line1" - exp5flank = "AA" - exp3flank = "TCCAGAA" - - obs5flank, obs3flank = multifasta2SNPFile.getFlanksOfASubSNP(lineName, subsnpPosition, polymLength, 500) - self.assertEquals(exp5flank, obs5flank) - self.assertEquals(exp3flank, obs3flank) - - def test_getFlanksOfASubSNP_empty_seq(self): - refBioseq = Bioseq() - alignedBioseqDB = BioseqDB() - refBioseq.sequence = "" - refBioseq.header = "reference" - bs1 = Bioseq( "line1", "" ) - bs2 = Bioseq( "line2", "" ) - alignedBioseqDB.setData( [ bs1, bs2 ] ) - multifasta2SNPFile = Multifasta2SNPFile("batch1", "gene1", "mouse") - multifasta2SNPFile._wrapper = ReferenceBioseqAndLinesBioseqDBWrapper(refBioseq, alignedBioseqDB, multifasta2SNPFile._logFile, self._inFileName) - subsnpPosition = 3 - polymLength = 3 - lineName = "line1" - exp5flank = "" - exp3flank = "" - - obs5flank, obs3flank = multifasta2SNPFile.getFlanksOfASubSNP(lineName, subsnpPosition, polymLength, 500) - self.assertEquals(exp5flank, obs5flank) - self.assertEquals(exp3flank, obs3flank) - - def test_getFlanksOfASubSNP_flank_of_first_base(self): - refBioseq = Bioseq() - alignedBioseqDB = BioseqDB() - refBioseq.sequence = "AACTTACCAGAA" - refBioseq.header = "reference" - bs1 = Bioseq( "line1", "AACTTTCCAGAA" ) - bs2 = Bioseq( "line2", "AACTTACC-GAA" ) - alignedBioseqDB.setData( [ bs1, bs2 ] ) - multifasta2SNPFile = Multifasta2SNPFile("batch1", "gene1", "mouse") - multifasta2SNPFile._wrapper = ReferenceBioseqAndLinesBioseqDBWrapper(refBioseq, alignedBioseqDB, multifasta2SNPFile._logFile, self._inFileName) - subsnpPosition = 1 - polymLength = 1 - lineName = "line1" - exp5flank = "" - exp3flank = "ACTTTCCAGAA" - - obs5flank, obs3flank = multifasta2SNPFile.getFlanksOfASubSNP(lineName, subsnpPosition, polymLength, 500) - self.assertEquals(exp5flank, obs5flank) - self.assertEquals(exp3flank, obs3flank) - - def test_getFlanksOfASubSNP_flank_of_first_base_with_polym_on_all_sequence(self): - refBioseq = Bioseq() - alignedBioseqDB = BioseqDB() - refBioseq.sequence = "AACTTACCAGAA" - refBioseq.header = "reference" - bs1 = Bioseq( "line1", "AACTTTCCAGAA" ) - bs2 = Bioseq( "line2", "AACTTACC-GAA" ) - alignedBioseqDB.setData( [ bs1, bs2 ] ) - multifasta2SNPFile = Multifasta2SNPFile("batch1", "gene1", "mouse") - multifasta2SNPFile._wrapper = ReferenceBioseqAndLinesBioseqDBWrapper(refBioseq, alignedBioseqDB, multifasta2SNPFile._logFile, self._inFileName) - subsnpPosition = 1 - polymLength = 12 - lineName = "line1" - exp5flank = "" - exp3flank = "" - obs5flank, obs3flank = multifasta2SNPFile.getFlanksOfASubSNP(lineName, subsnpPosition, polymLength, 500) - self.assertEquals(exp5flank, obs5flank) - self.assertEquals(exp3flank, obs3flank) - - def test_getFlanksOfASubSNP_flank_of_last_base_with_polym_on_all_sequence(self): - refBioseq = Bioseq() - alignedBioseqDB = BioseqDB() - refBioseq.sequence = "AACTTACCAGAA" - refBioseq.header = "reference" - bs1 = Bioseq( "line1", "AACTTTCCAGAA" ) - bs2 = Bioseq( "line2", "AACTTACC-GAA" ) - alignedBioseqDB.setData( [ bs1, bs2 ] ) - multifasta2SNPFile = Multifasta2SNPFile("batch1", "gene1", "mouse") - multifasta2SNPFile._wrapper = ReferenceBioseqAndLinesBioseqDBWrapper(refBioseq, alignedBioseqDB, multifasta2SNPFile._logFile, self._inFileName) - subsnpPosition = 12 - polymLength = 1 - lineName = "line1" - exp5flank = "AACTTTCCAGA" - exp3flank = "" - obs5flank, obs3flank = multifasta2SNPFile.getFlanksOfASubSNP(lineName, subsnpPosition, polymLength, 500) - self.assertEquals(exp5flank, obs5flank) - self.assertEquals(exp3flank, obs3flank) -# - def test_subSNPExistsInSubSNPList_subSNP_exists(self): - batchName = "batch1" - lSubSNP = [{'subSNPName': batchName + "_DEL_1_line2", 'position': 1, 'lineName': 2, 'allele': 3, '5flank': "", '3flank': "CCGAA", 'batchNumber': 1, 'confidenceValue' : "A", 'type' : "DELETION", 'length': 4}, - {'subSNPName': batchName + "_DEL_1_line1", 'position': 1, 'lineName': 1, 'allele': 2, '5flank': "", '3flank': "CCGAA",'batchNumber': 1, 'confidenceValue' : "A", 'type' : "DELETION", 'length': 4}, - {'subSNPName': batchName + "_SNP_8_line3", 'position': 8, 'lineName': 3, 'allele': 1, '5flank': "ATTACCG", '3flank': "A", 'batchNumber': 1, 'confidenceValue' : "A", 'type' : "SNP", 'length': 1}, - {'subSNPName': batchName + "_SNP_8_line1", 'position': 8, 'lineName': 1, 'allele': 6, '5flank': "A--ACCG", '3flank': "A", 'batchNumber': 1, 'confidenceValue' : "A", 'type' : "SNP", 'length': 1}, - {'subSNPName': batchName + "_SNP_8_line2", 'position': 8, 'lineName': 2, 'allele': 6, '5flank': "---ACCG", '3flank': "A", 'batchNumber': 1, 'confidenceValue' : "A", 'type' : "SNP", 'length': 1}, - {'subSNPName': batchName + "_SNP_8_line4", 'position': 8, 'lineName': 4, 'allele': 6, '5flank': "----CCG", '3flank': "A", 'batchNumber': 1, 'confidenceValue' : "A", 'type' : "SNP", 'length': 1}, - {'subSNPName': batchName + "_DEL_1_line4", 'position': 1, 'lineName': 4, 'allele': 4, '5flank': "", '3flank': "CCGAA",'batchNumber': 1, 'confidenceValue' : "A", 'type' : "DELETION", 'length': 4}, - {'subSNPName': batchName + "_DEL_1_line3", 'position': 1, 'lineName': 3, 'allele': 5, '5flank': "", '3flank': "CCGGA",'batchNumber': 1, 'confidenceValue' : "A", 'type' : "DELETION", 'length': 4}] - multifasta2SNPFile = Multifasta2SNPFile(batchName, "gene1", "mouse") - - dSearchedSubSNP = {'subSNPName': batchName + "_DEL_1_line1", 'position': 1, 'lineName': 1, 'allele': 2, '5flank': "", '3flank': "CCGAA",'batchNumber': 1, 'confidenceValue' : "A", 'type' : "DELETION", 'length': 4} - - expResult = multifasta2SNPFile.subSNPExistsInSubSNPList(dSearchedSubSNP, lSubSNP) - obsResult = True - - self.assertEquals(expResult, obsResult) - - def test_subSNPExistsInSubSNPList_subSNP_does_not_exist(self): - batchName = "batch1" - lSubSNP = [{'subSNPName': batchName + "_DEL_1_line2", 'position': 1, 'lineName': 2, 'allele': 3, '5flank': "", '3flank': "CCGAA", 'batchNumber': 1, 'confidenceValue' : "A", 'type' : "DELETION", 'length': 4}, - {'subSNPName': batchName + "_DEL_1_line1", 'position': 1, 'lineName': 1, 'allele': 2, '5flank': "", '3flank': "CCGAA",'batchNumber': 1, 'confidenceValue' : "A", 'type' : "DELETION", 'length': 4}, - {'subSNPName': batchName + "_SNP_8_line3", 'position': 8, 'lineName': 3, 'allele': 1, '5flank': "ATTACCG", '3flank': "A", 'batchNumber': 1, 'confidenceValue' : "A", 'type' : "SNP", 'length': 1}, - {'subSNPName': batchName + "_SNP_8_line1", 'position': 8, 'lineName': 1, 'allele': 6, '5flank': "A--ACCG", '3flank': "A", 'batchNumber': 1, 'confidenceValue' : "A", 'type' : "SNP", 'length': 1}, - {'subSNPName': batchName + "_SNP_8_line2", 'position': 8, 'lineName': 2, 'allele': 6, '5flank': "---ACCG", '3flank': "A", 'batchNumber': 1, 'confidenceValue' : "A", 'type' : "SNP", 'length': 1}, - {'subSNPName': batchName + "_SNP_8_line4", 'position': 8, 'lineName': 4, 'allele': 6, '5flank': "----CCG", '3flank': "A", 'batchNumber': 1, 'confidenceValue' : "A", 'type' : "SNP", 'length': 1}, - {'subSNPName': batchName + "_DEL_1_line4", 'position': 1, 'lineName': 4, 'allele': 4, '5flank': "", '3flank': "CCGAA",'batchNumber': 1, 'confidenceValue' : "A", 'type' : "DELETION", 'length': 4}, - {'subSNPName': batchName + "_DEL_1_line3", 'position': 1, 'lineName': 3, 'allele': 5, '5flank': "", '3flank': "CCGGA",'batchNumber': 1, 'confidenceValue' : "A", 'type' : "DELETION", 'length': 4}] - multifasta2SNPFile = Multifasta2SNPFile(batchName, "gene1", "mouse") - - dSearchedSubSNP = {'subSNPName': batchName + "_DEL_12_line1", 'position': 12, 'lineName': 1, 'allele': 2, '5flank': "", '3flank': "CCGAA",'batchNumber': 1, 'confidenceValue' : "A", 'type' : "DELETION", 'length': 4} - - expResult = multifasta2SNPFile.subSNPExistsInSubSNPList(dSearchedSubSNP, lSubSNP) - obsResult = False - - self.assertEquals(expResult, obsResult) - - def _writeExpSubSNPFile(self): - expFileHandle = open(self._expSubSNPFileName, "w") - expFileHandle.write("SubSNPName;ConfidenceValue;Type;Position;5flank;3flank;Length;BatchNumber;IndividualNumber;PrimerType;PrimerNumber;Forward_or_Reverse;AlleleNumber\n") - expFileHandle.write("Batch1_SNP_4_Line1;A;SNP;4;CCT;AGCCATTGCTTGGTGACTATGAAGGCAGTAGGCAAACCTCCACAATC;1;1;1;Sequence;;;1\n") - expFileHandle.write("Batch1_SNP_4_Line2;A;SNP;4;CCT;AGCCATTGCTTGGTGACTATCAAGGCAGTAGCCAAACCTCCACAATA;1;1;2;Sequence;;;4\n") - expFileHandle.write("Batch1_SNP_21_Line1;A;SNP;21;CCTTAGCCATTGCTTGGTGA;TATGAAGGCAGTAGGCAAACCTCCACAATC;1;1;1;Sequence;;;2\n") - expFileHandle.write("Batch1_SNP_21_Line2;A;SNP;21;CCTAAGCCATTGCTTGGTGA;TATCAAGGCAGTAGCCAAACCTCCACAATA;1;1;2;Sequence;;;2\n") - expFileHandle.write("Batch1_SNP_25_Line1;A;SNP;25;CCTTAGCCATTGCTTGGTGACTAT;AAGGCAGTAGGCAAACCTCCACAATC;1;1;1;Sequence;;;3\n") - expFileHandle.write("Batch1_SNP_25_Line2;A;SNP;25;CCTAAGCCATTGCTTGGTGACTAT;AAGGCAGTAGCCAAACCTCCACAATA;1;1;2;Sequence;;;2\n") - expFileHandle.write("Batch1_SNP_36_Line1;A;SNP;36;CCTTAGCCATTGCTTGGTGACTATGAAGGCAGTAG;CAAACCTCCACAATC;1;1;1;Sequence;;;3\n") - expFileHandle.write("Batch1_SNP_36_Line2;A;SNP;36;CCTAAGCCATTGCTTGGTGACTATCAAGGCAGTAG;CAAACCTCCACAATA;1;1;2;Sequence;;;2\n") - expFileHandle.write("Batch1_SNP_51_Line1;A;SNP;51;CCTTAGCCATTGCTTGGTGACTATGAAGGCAGTAGGCAAACCTCCACAAT;;1;1;1;Sequence;;;2\n") - expFileHandle.write("Batch1_SNP_51_Line2;A;SNP;51;CCTAAGCCATTGCTTGGTGACTATCAAGGCAGTAGCCAAACCTCCACAAT;;1;1;2;Sequence;;;4\n") - expFileHandle.close() - - def _writeExpSubSNPFileWithSnpsAndIndels(self): - expFileHandle = open(self._expSubSNPFileName, "w") - expFileHandle.write("SubSNPName;ConfidenceValue;Type;Position;5flank;3flank;Length;BatchNumber;IndividualNumber;PrimerType;PrimerNumber;Forward_or_Reverse;AlleleNumber\n") - expFileHandle.write("Batch1_INS_1_Line1;A;INSERTION;1;C;TAGCCA---CTTGGTGACTATGAAGGCAGTAGGCAAACCTCCACAATC;2;1;1;Sequence;;;8\n") - expFileHandle.write("Batch1_INS_1_Line2;A;INSERTION;1;C;AAGCCATT-CTTGGTGACTATCAAGGCAGTAGCCAAACCTCCACAATA;2;1;2;Sequence;;;6\n") - expFileHandle.write("Batch1_SNP_2_Line1;A;SNP;2;C--;AGCCA---CTTGGTGACTATGAAGGCAGTAGGCAAACCTCCACAATC;1;1;1;Sequence;;;1\n") - expFileHandle.write("Batch1_SNP_2_Line2;A;SNP;2;CCT;AGCCATT-CTTGGTGACTATCAAGGCAGTAGCCAAACCTCCACAATA;1;1;2;Sequence;;;4\n") - expFileHandle.write("Batch1_DEL_8_Line1;A;DELETION;8;C--TAGCCA;CTTGGTGACTATGAAGGCAGTAGGCAAACCTCCACAATC;3;1;1;Sequence;;;5\n") - expFileHandle.write("Batch1_DEL_8_Line2;A;DELETION;8;CCTAAGCCA;CTTGGTGACTATCAAGGCAGTAGCCAAACCTCCACAATA;3;1;2;Sequence;;;7\n") - expFileHandle.write("Batch1_SNP_19_Line1;A;SNP;19;C--TAGCCA---CTTGGTGA;TATGAAGGCAGTAGGCAAACCTCCACAATC;1;1;1;Sequence;;;2\n") - expFileHandle.write("Batch1_SNP_19_Line2;A;SNP;19;CCTAAGCCATT-CTTGGTGA;TATCAAGGCAGTAGCCAAACCTCCACAATA;1;1;2;Sequence;;;2\n") - expFileHandle.write("Batch1_SNP_23_Line1;A;SNP;23;C--TAGCCA---CTTGGTGACTAT;AAGGCAGTAGGCAAACCTCCACAATC;1;1;1;Sequence;;;3\n") - expFileHandle.write("Batch1_SNP_23_Line2;A;SNP;23;CCTAAGCCATT-CTTGGTGACTAT;AAGGCAGTAGCCAAACCTCCACAATA;1;1;2;Sequence;;;2\n") - expFileHandle.write("Batch1_SNP_34_Line1;A;SNP;34;C--TAGCCA---CTTGGTGACTATGAAGGCAGTAG;CAAACCTCCACAATC;1;1;1;Sequence;;;3\n") - expFileHandle.write("Batch1_SNP_34_Line2;A;SNP;34;CCTAAGCCATT-CTTGGTGACTATCAAGGCAGTAG;CAAACCTCCACAATA;1;1;2;Sequence;;;2\n") - expFileHandle.write("Batch1_SNP_49_Line1;A;SNP;49;C--TAGCCA---CTTGGTGACTATGAAGGCAGTAGGCAAACCTCCACAAT;;1;1;1;Sequence;;;2\n") - expFileHandle.write("Batch1_SNP_49_Line2;A;SNP;49;CCTAAGCCATT-CTTGGTGACTATCAAGGCAGTAGCCAAACCTCCACAAT;;1;1;2;Sequence;;;4\n") - expFileHandle.close() - - def _writeExpSubSNPFileSeveralBatches(self): - expFileHandle = open(self._expSubSNPFileName, "w") - expFileHandle.write("SubSNPName;ConfidenceValue;Type;Position;5flank;3flank;Length;BatchNumber;IndividualNumber;PrimerType;PrimerNumber;Forward_or_Reverse;AlleleNumber\n") - expFileHandle.write("Batch_Gene1_SNP_4_Line1;A;SNP;4;CCT;AGCCATTGCTTGGTGACTATGAAGGCAGTAGGCAAACCTCCACAATC;1;1;1;Sequence;;;1\n") - expFileHandle.write("Batch_Gene1_SNP_4_Line2;A;SNP;4;CCT;AGCCATTGCTTGGTGACTATCAAGGCAGTAGCCAAACCTCCACAATA;1;1;2;Sequence;;;4\n") - expFileHandle.write("Batch_Gene1_SNP_21_Line1;A;SNP;21;CCTTAGCCATTGCTTGGTGA;TATGAAGGCAGTAGGCAAACCTCCACAATC;1;1;1;Sequence;;;2\n") - expFileHandle.write("Batch_Gene1_SNP_21_Line2;A;SNP;21;CCTAAGCCATTGCTTGGTGA;TATCAAGGCAGTAGCCAAACCTCCACAATA;1;1;2;Sequence;;;2\n") - expFileHandle.write("Batch_Gene1_SNP_25_Line1;A;SNP;25;CCTTAGCCATTGCTTGGTGACTAT;AAGGCAGTAGGCAAACCTCCACAATC;1;1;1;Sequence;;;3\n") - expFileHandle.write("Batch_Gene1_SNP_25_Line2;A;SNP;25;CCTAAGCCATTGCTTGGTGACTAT;AAGGCAGTAGCCAAACCTCCACAATA;1;1;2;Sequence;;;2\n") - expFileHandle.write("Batch_Gene1_SNP_36_Line1;A;SNP;36;CCTTAGCCATTGCTTGGTGACTATGAAGGCAGTAG;CAAACCTCCACAATC;1;1;1;Sequence;;;3\n") - expFileHandle.write("Batch_Gene1_SNP_36_Line2;A;SNP;36;CCTAAGCCATTGCTTGGTGACTATCAAGGCAGTAG;CAAACCTCCACAATA;1;1;2;Sequence;;;2\n") - expFileHandle.write("Batch_Gene1_SNP_51_Line1;A;SNP;51;CCTTAGCCATTGCTTGGTGACTATGAAGGCAGTAGGCAAACCTCCACAAT;;1;1;1;Sequence;;;2\n") - expFileHandle.write("Batch_Gene1_SNP_51_Line2;A;SNP;51;CCTAAGCCATTGCTTGGTGACTATCAAGGCAGTAGCCAAACCTCCACAAT;;1;1;2;Sequence;;;4\n") - - expFileHandle.write("Batch_Gene2_INS_1_Line1;A;INSERTION;1;C;TAGCCA---CTTGGTGACTATGAAGGCAGTAGGCAAACCTCCACAATC;2;2;1;Sequence;;;8\n") - expFileHandle.write("Batch_Gene2_INS_1_Line2;A;INSERTION;1;C;AAGCCATT-CTTGGTGACTATCAAGGCAGTAGCCAAACCTCCACAATA;2;2;2;Sequence;;;6\n") - expFileHandle.write("Batch_Gene2_SNP_2_Line1;A;SNP;2;C--;AGCCA---CTTGGTGACTATGAAGGCAGTAGGCAAACCTCCACAATC;1;2;1;Sequence;;;1\n") - expFileHandle.write("Batch_Gene2_SNP_2_Line2;A;SNP;2;CCT;AGCCATT-CTTGGTGACTATCAAGGCAGTAGCCAAACCTCCACAATA;1;2;2;Sequence;;;4\n") - expFileHandle.write("Batch_Gene2_DEL_8_Line1;A;DELETION;8;C--TAGCCA;CTTGGTGACTATGAAGGCAGTAGGCAAACCTCCACAATC;3;2;1;Sequence;;;5\n") - expFileHandle.write("Batch_Gene2_DEL_8_Line2;A;DELETION;8;CCTAAGCCA;CTTGGTGACTATCAAGGCAGTAGCCAAACCTCCACAATA;3;2;2;Sequence;;;7\n") - expFileHandle.write("Batch_Gene2_SNP_19_Line1;A;SNP;19;C--TAGCCA---CTTGGTGA;TATGAAGGCAGTAGGCAAACCTCCACAATC;1;2;1;Sequence;;;2\n") - expFileHandle.write("Batch_Gene2_SNP_19_Line2;A;SNP;19;CCTAAGCCATT-CTTGGTGA;TATCAAGGCAGTAGCCAAACCTCCACAATA;1;2;2;Sequence;;;2\n") - expFileHandle.write("Batch_Gene2_SNP_23_Line1;A;SNP;23;C--TAGCCA---CTTGGTGACTAT;AAGGCAGTAGGCAAACCTCCACAATC;1;2;1;Sequence;;;3\n") - expFileHandle.write("Batch_Gene2_SNP_23_Line2;A;SNP;23;CCTAAGCCATT-CTTGGTGACTAT;AAGGCAGTAGCCAAACCTCCACAATA;1;2;2;Sequence;;;2\n") - expFileHandle.write("Batch_Gene2_SNP_34_Line1;A;SNP;34;C--TAGCCA---CTTGGTGACTATGAAGGCAGTAG;CAAACCTCCACAATC;1;2;1;Sequence;;;3\n") - expFileHandle.write("Batch_Gene2_SNP_34_Line2;A;SNP;34;CCTAAGCCATT-CTTGGTGACTATCAAGGCAGTAG;CAAACCTCCACAATA;1;2;2;Sequence;;;2\n") - expFileHandle.write("Batch_Gene2_SNP_49_Line1;A;SNP;49;C--TAGCCA---CTTGGTGACTATGAAGGCAGTAGGCAAACCTCCACAAT;;1;2;1;Sequence;;;2\n") - expFileHandle.write("Batch_Gene2_SNP_49_Line2;A;SNP;49;CCTAAGCCATT-CTTGGTGACTATCAAGGCAGTAGCCAAACCTCCACAAT;;1;2;2;Sequence;;;4\n") - expFileHandle.close() - - def _writeExpSubSNPFileSeveralBatches_different_lines_between_files(self): - expFileHandle = open(self._expSubSNPFileName, "w") - expFileHandle.write("SubSNPName;ConfidenceValue;Type;Position;5flank;3flank;Length;BatchNumber;IndividualNumber;PrimerType;PrimerNumber;Forward_or_Reverse;AlleleNumber\n") - expFileHandle.write("Batch_Gene1_SNP_4_Line1;A;SNP;4;CCT;AGCCATTGCTTGGTGACTATGAAGGCAGTAGGCAAACCTCCACAATC;1;1;1;Sequence;;;1\n") - expFileHandle.write("Batch_Gene1_SNP_4_Line2;A;SNP;4;CCT;AGCCATTGCTTGGTGACTATCAAGGCAGTAGCCAAACCTCCACAATA;1;1;2;Sequence;;;4\n") - expFileHandle.write("Batch_Gene1_SNP_21_Line1;A;SNP;21;CCTTAGCCATTGCTTGGTGA;TATGAAGGCAGTAGGCAAACCTCCACAATC;1;1;1;Sequence;;;2\n") - expFileHandle.write("Batch_Gene1_SNP_21_Line2;A;SNP;21;CCTAAGCCATTGCTTGGTGA;TATCAAGGCAGTAGCCAAACCTCCACAATA;1;1;2;Sequence;;;2\n") - expFileHandle.write("Batch_Gene1_SNP_25_Line1;A;SNP;25;CCTTAGCCATTGCTTGGTGACTAT;AAGGCAGTAGGCAAACCTCCACAATC;1;1;1;Sequence;;;3\n") - expFileHandle.write("Batch_Gene1_SNP_25_Line2;A;SNP;25;CCTAAGCCATTGCTTGGTGACTAT;AAGGCAGTAGCCAAACCTCCACAATA;1;1;2;Sequence;;;2\n") - expFileHandle.write("Batch_Gene1_SNP_36_Line1;A;SNP;36;CCTTAGCCATTGCTTGGTGACTATGAAGGCAGTAG;CAAACCTCCACAATC;1;1;1;Sequence;;;3\n") - expFileHandle.write("Batch_Gene1_SNP_36_Line2;A;SNP;36;CCTAAGCCATTGCTTGGTGACTATCAAGGCAGTAG;CAAACCTCCACAATA;1;1;2;Sequence;;;2\n") - expFileHandle.write("Batch_Gene1_SNP_51_Line1;A;SNP;51;CCTTAGCCATTGCTTGGTGACTATGAAGGCAGTAGGCAAACCTCCACAAT;;1;1;1;Sequence;;;2\n") - expFileHandle.write("Batch_Gene1_SNP_51_Line2;A;SNP;51;CCTAAGCCATTGCTTGGTGACTATCAAGGCAGTAGCCAAACCTCCACAAT;;1;1;2;Sequence;;;4\n") - - expFileHandle.write("Batch_Gene2_INS_1_Line3;A;INSERTION;1;C;TAGCCA---CTTGGTGACTATGAAGGCAGTAGGCAAACCTCCACAATC;2;2;3;Sequence;;;8\n") - expFileHandle.write("Batch_Gene2_INS_1_Line4;A;INSERTION;1;C;AAGCCATT-CTTGGTGACTATCAAGGCAGTAGCCAAACCTCCACAATA;2;2;4;Sequence;;;6\n") - expFileHandle.write("Batch_Gene2_SNP_2_Line3;A;SNP;2;C--;AGCCA---CTTGGTGACTATGAAGGCAGTAGGCAAACCTCCACAATC;1;2;3;Sequence;;;1\n") - expFileHandle.write("Batch_Gene2_SNP_2_Line4;A;SNP;2;CCT;AGCCATT-CTTGGTGACTATCAAGGCAGTAGCCAAACCTCCACAATA;1;2;4;Sequence;;;4\n") - expFileHandle.write("Batch_Gene2_DEL_8_Line3;A;DELETION;8;C--TAGCCA;CTTGGTGACTATGAAGGCAGTAGGCAAACCTCCACAATC;3;2;3;Sequence;;;5\n") - expFileHandle.write("Batch_Gene2_DEL_8_Line4;A;DELETION;8;CCTAAGCCA;CTTGGTGACTATCAAGGCAGTAGCCAAACCTCCACAATA;3;2;4;Sequence;;;7\n") - expFileHandle.write("Batch_Gene2_SNP_19_Line3;A;SNP;19;C--TAGCCA---CTTGGTGA;TATGAAGGCAGTAGGCAAACCTCCACAATC;1;2;3;Sequence;;;2\n") - expFileHandle.write("Batch_Gene2_SNP_19_Line4;A;SNP;19;CCTAAGCCATT-CTTGGTGA;TATCAAGGCAGTAGCCAAACCTCCACAATA;1;2;4;Sequence;;;2\n") - expFileHandle.write("Batch_Gene2_SNP_23_Line3;A;SNP;23;C--TAGCCA---CTTGGTGACTAT;AAGGCAGTAGGCAAACCTCCACAATC;1;2;3;Sequence;;;3\n") - expFileHandle.write("Batch_Gene2_SNP_23_Line4;A;SNP;23;CCTAAGCCATT-CTTGGTGACTAT;AAGGCAGTAGCCAAACCTCCACAATA;1;2;4;Sequence;;;2\n") - expFileHandle.write("Batch_Gene2_SNP_34_Line3;A;SNP;34;C--TAGCCA---CTTGGTGACTATGAAGGCAGTAG;CAAACCTCCACAATC;1;2;3;Sequence;;;3\n") - expFileHandle.write("Batch_Gene2_SNP_34_Line4;A;SNP;34;CCTAAGCCATT-CTTGGTGACTATCAAGGCAGTAG;CAAACCTCCACAATA;1;2;4;Sequence;;;2\n") - expFileHandle.write("Batch_Gene2_SNP_49_Line3;A;SNP;49;C--TAGCCA---CTTGGTGACTATGAAGGCAGTAGGCAAACCTCCACAAT;;1;2;3;Sequence;;;2\n") - expFileHandle.write("Batch_Gene2_SNP_49_Line4;A;SNP;49;CCTAAGCCATT-CTTGGTGACTATCAAGGCAGTAGCCAAACCTCCACAAT;;1;2;4;Sequence;;;4\n") - expFileHandle.close() - - def _writeExpSubSNPFileSeveralLineSeq(self): - expFileHandle = open(self._expSubSNPFileName, "w") - expFileHandle.write("SubSNPName;ConfidenceValue;Type;Position;5flank;3flank;Length;BatchNumber;IndividualNumber;PrimerType;PrimerNumber;Forward_or_Reverse;AlleleNumber\n") - expFileHandle.write("Batch1_SNP_4_Line1;A;SNP;4;CCT;AGCCATTGCTTGGTGACTATGAAGGCAGTAGGCAAACCTCCACAATCCGCAGTAGCCAAACCTCCACAATA;1;1;1;Sequence;;;1\n") - expFileHandle.write("Batch1_SNP_4_Line2;A;SNP;4;CCT;AGCCATTGCTTGGTGACTATCAAGGCAGTAGCCAAACCTCCACAATACGCAGTAGCCAAACCTCCACAATA;1;1;2;Sequence;;;4\n") - expFileHandle.write("Batch1_SNP_21_Line1;A;SNP;21;CCTTAGCCATTGCTTGGTGA;TATGAAGGCAGTAGGCAAACCTCCACAATCCGCAGTAGCCAAACCTCCACAATA;1;1;1;Sequence;;;2\n") - expFileHandle.write("Batch1_SNP_21_Line2;A;SNP;21;CCTAAGCCATTGCTTGGTGA;TATCAAGGCAGTAGCCAAACCTCCACAATACGCAGTAGCCAAACCTCCACAATA;1;1;2;Sequence;;;2\n") - expFileHandle.write("Batch1_SNP_25_Line1;A;SNP;25;CCTTAGCCATTGCTTGGTGACTAT;AAGGCAGTAGGCAAACCTCCACAATCCGCAGTAGCCAAACCTCCACAATA;1;1;1;Sequence;;;3\n") - expFileHandle.write("Batch1_SNP_25_Line2;A;SNP;25;CCTAAGCCATTGCTTGGTGACTAT;AAGGCAGTAGCCAAACCTCCACAATACGCAGTAGCCAAACCTCCACAATA;1;1;2;Sequence;;;2\n") - expFileHandle.write("Batch1_SNP_36_Line1;A;SNP;36;CCTTAGCCATTGCTTGGTGACTATGAAGGCAGTAG;CAAACCTCCACAATCCGCAGTAGCCAAACCTCCACAATA;1;1;1;Sequence;;;3\n") - expFileHandle.write("Batch1_SNP_36_Line2;A;SNP;36;CCTAAGCCATTGCTTGGTGACTATCAAGGCAGTAG;CAAACCTCCACAATACGCAGTAGCCAAACCTCCACAATA;1;1;2;Sequence;;;2\n") - expFileHandle.write("Batch1_SNP_51_Line1;A;SNP;51;CCTTAGCCATTGCTTGGTGACTATGAAGGCAGTAGGCAAACCTCCACAAT;CGCAGTAGCCAAACCTCCACAATA;1;1;1;Sequence;;;2\n") - expFileHandle.write("Batch1_SNP_51_Line2;A;SNP;51;CCTAAGCCATTGCTTGGTGACTATCAAGGCAGTAGCCAAACCTCCACAAT;CGCAGTAGCCAAACCTCCACAATA;1;1;2;Sequence;;;4\n") - expFileHandle.close() - - - def _writeExpAlleleFile(self): - expFileHandle = open(self._expAlleleFileName, "w") - expFileHandle.write("AlleleNumber;Value;Motif;NbCopy;Comment\n") - expFileHandle.write("1;T;;;\n") - expFileHandle.write("2;C;;;\n") - expFileHandle.write("3;G;;;\n") - expFileHandle.write("4;A;;;\n") - expFileHandle.close() - - def _writeExpAlleleFileWithSnpsAndIndels(self): - expFileHandle = open(self._expAlleleFileName, "w") - expFileHandle.write("AlleleNumber;Value;Motif;NbCopy;Comment\n") - expFileHandle.write("1;T;;;\n") - expFileHandle.write("2;C;;;\n") - expFileHandle.write("3;G;;;\n") - expFileHandle.write("4;A;;;\n") - expFileHandle.write("5;---;;;\n") - expFileHandle.write("6;CT;;;\n") - expFileHandle.write("7;TT-;;;\n") - expFileHandle.write("8;--;;;\n") - expFileHandle.close() - - - def _writeExpAlleleFileSeveralBatches(self): - expFileHandle = open(self._expAlleleFileName, "w") - expFileHandle.write("AlleleNumber;Value;Motif;NbCopy;Comment\n") - expFileHandle.write("1;T;;;\n") - expFileHandle.write("2;C;;;\n") - expFileHandle.write("3;G;;;\n") - expFileHandle.write("4;A;;;\n") - expFileHandle.write("5;---;;;\n") - expFileHandle.write("6;CT;;;\n") - expFileHandle.write("7;TT-;;;\n") - expFileHandle.write("8;--;;;\n") - expFileHandle.close() - - def _writeExpIndividualFile(self): - expFileHandle = open(self._expIndividualFileName, "w") - expFileHandle.write("IndividualNumber;IndividualName;Description;AberrAneuploide;FractionLength;DeletionLineSynthesis;UrlEarImage;TypeLine;ChromNumber;ArmChrom;DeletionBin;ScientificName;local_germplasm_name;submitter_code;local_institute;donor_institute;donor_acc_id\n") - expFileHandle.write("1;Line1;;;;;;;;;;Arabidopsis thaliana;;;;;\n") - expFileHandle.write("2;Line2;;;;;;;;;;Arabidopsis thaliana;;;;;\n") - expFileHandle.close() - - def _writeExpIndividualFile_different_lines_between_files(self): - expFileHandle = open(self._expIndividualFileName, "w") - expFileHandle.write("IndividualNumber;IndividualName;Description;AberrAneuploide;FractionLength;DeletionLineSynthesis;UrlEarImage;TypeLine;ChromNumber;ArmChrom;DeletionBin;ScientificName;local_germplasm_name;submitter_code;local_institute;donor_institute;donor_acc_id\n") - expFileHandle.write("1;Line1;;;;;;;;;;Arabidopsis thaliana;;;;;\n") - expFileHandle.write("2;Line2;;;;;;;;;;Arabidopsis thaliana;;;;;\n") - expFileHandle.write("3;Line3;;;;;;;;;;Arabidopsis thaliana;;;;;\n") - expFileHandle.write("4;Line4;;;;;;;;;;Arabidopsis thaliana;;;;;\n") - expFileHandle.close() - - def _writeExpSequenceFile(self): - SequenceFSAFileHandle = open(self._expSequenceFSAFileName, "w") - SequenceFSAFileHandle.write(">Sequence_de_Reference\n") - SequenceFSAFileHandle.write("CCTAAGCCATTGCTTGGTGATTATGAAGGCAGTAGTCAAACCTCCACAATC\n") - SequenceCSVFileHandle = open(self._expSequenceCSVFileName, "w") - SequenceCSVFileHandle.write("SequenceName;SeqType;BankName;BankVersion;ACNumber;Locus;ScientificName\n") - SequenceCSVFileHandle.write("Sequence_de_Reference;Reference;;;;;Arabidopsis thaliana\n") - - def _writeExpSequenceFileSeveralLineSeq(self): - SequenceFSAFileHandle = open(self._expSequenceFSAFileName, "w") - SequenceFSAFileHandle.write(">Sequence_de_Reference\n") - SequenceFSAFileHandle.write("CCTAAGCCATTGCTTGGTGATTATGAAGGCAGTAGTCAAACCTCCACAATCCGCAGTAGCCAAACCTCCACAATA\n") - SequenceCSVFileHandle = open(self._expSequenceCSVFileName, "w") - SequenceCSVFileHandle.write("SequenceName;SeqType;BankName;BankVersion;ACNumber;Locus;ScientificName\n") - SequenceCSVFileHandle.write("Sequence_de_Reference;Reference;;;;;Arabidopsis thaliana\n") - - def _writeExpSequenceFileWithDeletion(self): - SequenceFSAFileHandle = open(self._expSequenceFSAFileName, "w") - SequenceFSAFileHandle.write(">Sequence_de_Reference\n") - SequenceFSAFileHandle.write("CAAGCCATTGCTTGGTGATTATGAAGGCAGTAGTCAAACCTCCACAATC\n") - SequenceCSVFileHandle = open(self._expSequenceCSVFileName, "w") - SequenceCSVFileHandle.write("SequenceName;SeqType;BankName;BankVersion;ACNumber;Locus;ScientificName\n") - SequenceCSVFileHandle.write("Sequence_de_Reference;Reference;;;;;Arabidopsis thaliana\n") - - def _writeExpSequenceSeveralBatches(self): - SequenceFSAFileHandle = open(self._expSequenceFSAFileName, "w") - SequenceFSAFileHandle.write(">Sequence_de_Reference1\n") - SequenceFSAFileHandle.write("CCTAAGCCATTGCTTGGTGATTATGAAGGCAGTAGTCAAACCTCCACAATC\n") - SequenceFSAFileHandle.write(">Sequence_de_Reference2\n") - SequenceFSAFileHandle.write("CAAGCCATTGCTTGGTGATTATGAAGGCAGTAGTCAAACCTCCACAATC\n") - SequenceCSVFileHandle = open(self._expSequenceCSVFileName, "w") - SequenceCSVFileHandle.write("SequenceName;SeqType;BankName;BankVersion;ACNumber;Locus;ScientificName\n") - SequenceCSVFileHandle.write("Sequence_de_Reference1;Reference;;;;;Arabidopsis thaliana\n") - SequenceCSVFileHandle.write("Sequence_de_Reference2;Reference;;;;;Arabidopsis thaliana\n") - - def _writeExpSequenceSeveralBatchesForSameRefSeq(self): - SequenceFSAFileHandle = open(self._expSequenceFSAFileName, "w") - SequenceFSAFileHandle.write(">Sequence_de_Reference1\n") - SequenceFSAFileHandle.write("CCTAAGCCATTGCTTGGTGATTATGAAGGCAGTAGTCAAACCTCCACAATC\n") - SequenceFSAFileHandle.write(">Sequence_de_Reference1\n") - SequenceFSAFileHandle.write("CAAGCCATTGCTTGGTGATTATGAAGGCAGTAGTCAAACCTCCACAATC\n") - SequenceCSVFileHandle = open(self._expSequenceCSVFileName, "w") - SequenceCSVFileHandle.write("SequenceName;SeqType;BankName;BankVersion;ACNumber;Locus;ScientificName\n") - SequenceCSVFileHandle.write("Sequence_de_Reference1;Reference;;;;;Arabidopsis thaliana\n") - SequenceCSVFileHandle.write("Sequence_de_Reference1;Reference;;;;;Arabidopsis thaliana\n") - - def _writeExpBatchFile(self): - BatchFileHandle = open(self._expBatchFileName, "w") - BatchFileHandle.write("BatchNumber: 1\n") - BatchFileHandle.write("BatchName: Batch1\n") - BatchFileHandle.write("GeneName: methyltransferase\n") - BatchFileHandle.write("Description: \n") - BatchFileHandle.write("ContactNumber: 1\n") - BatchFileHandle.write("ProtocolNumber: 1\n") - BatchFileHandle.write("ThematicNumber: 1\n") - BatchFileHandle.write("RefSeqName: Sequence_de_Reference\n") - BatchFileHandle.write("AlignmentFileName: \n") - BatchFileHandle.write("SeqName: \n") - BatchFileHandle.write("//\n") - BatchFileHandle.close() - - def _writeExpBatchFileSeveralBatches(self): - BatchFileHandle = open(self._expBatchFileName, "w") - BatchFileHandle.write("BatchNumber: 1\n") - BatchFileHandle.write("BatchName: Batch_Gene1\n") - BatchFileHandle.write("GeneName: Gene1\n") - BatchFileHandle.write("Description: \n") - BatchFileHandle.write("ContactNumber: 1\n") - BatchFileHandle.write("ProtocolNumber: 1\n") - BatchFileHandle.write("ThematicNumber: 1\n") - BatchFileHandle.write("RefSeqName: Sequence_de_Reference1\n") - BatchFileHandle.write("AlignmentFileName: \n") - BatchFileHandle.write("SeqName: \n") - BatchFileHandle.write("//\n") - BatchFileHandle.write("BatchNumber: 2\n") - BatchFileHandle.write("BatchName: Batch_Gene2\n") - BatchFileHandle.write("GeneName: Gene2\n") - BatchFileHandle.write("Description: \n") - BatchFileHandle.write("ContactNumber: 1\n") - BatchFileHandle.write("ProtocolNumber: 1\n") - BatchFileHandle.write("ThematicNumber: 1\n") - BatchFileHandle.write("RefSeqName: Sequence_de_Reference2\n") - BatchFileHandle.write("AlignmentFileName: \n") - BatchFileHandle.write("SeqName: \n") - BatchFileHandle.write("//\n") - BatchFileHandle.close() - - def _writeExpBatchFileSeveralBatchesForSameRefSeq(self): - BatchFileHandle = open(self._expBatchFileName, "w") - BatchFileHandle.write("BatchNumber: 1\n") - BatchFileHandle.write("BatchName: Batch_Gene1\n") - BatchFileHandle.write("GeneName: Gene1\n") - BatchFileHandle.write("Description: \n") - BatchFileHandle.write("ContactNumber: 1\n") - BatchFileHandle.write("ProtocolNumber: 1\n") - BatchFileHandle.write("ThematicNumber: 1\n") - BatchFileHandle.write("RefSeqName: Sequence_de_Reference1\n") - BatchFileHandle.write("AlignmentFileName: \n") - BatchFileHandle.write("SeqName: \n") - BatchFileHandle.write("//\n") - BatchFileHandle.write("BatchNumber: 2\n") - BatchFileHandle.write("BatchName: Batch_Gene2\n") - BatchFileHandle.write("GeneName: Gene2\n") - BatchFileHandle.write("Description: \n") - BatchFileHandle.write("ContactNumber: 1\n") - BatchFileHandle.write("ProtocolNumber: 1\n") - BatchFileHandle.write("ThematicNumber: 1\n") - BatchFileHandle.write("RefSeqName: Sequence_de_Reference1\n") - BatchFileHandle.write("AlignmentFileName: \n") - BatchFileHandle.write("SeqName: \n") - BatchFileHandle.write("//\n") - BatchFileHandle.close() - - - BatchFileHandle.close() - - def _writeExpBatchLineFile(self): - BatchLineFileHandle = open(self._expBatchLineFileName, "w") - BatchLineFileHandle.write("IndividualNumber;Pos5;Pos3;BatchNumber;Sequence\n") - BatchLineFileHandle.write("1;;;1;\n") - BatchLineFileHandle.write("2;;;1;\n") - BatchLineFileHandle.close() - - - def _writeExpBatchLineFileSeveralBatches(self): - BatchLineFileHandle = open(self._expBatchLineFileName, "w") - BatchLineFileHandle.write("IndividualNumber;Pos5;Pos3;BatchNumber;Sequence\n") - BatchLineFileHandle.write("1;;;1;\n") - BatchLineFileHandle.write("2;;;1;\n") - BatchLineFileHandle.write("1;;;2;\n") - BatchLineFileHandle.write("2;;;2;\n") - BatchLineFileHandle.close() - - def _writeExpBatchLineFileSeveralBatches_different_lines_between_files(self): - BatchLineFileHandle = open(self._expBatchLineFileName, "w") - BatchLineFileHandle.write("IndividualNumber;Pos5;Pos3;BatchNumber;Sequence\n") - BatchLineFileHandle.write("1;;;1;\n") - BatchLineFileHandle.write("2;;;1;\n") - BatchLineFileHandle.write("3;;;2;\n") - BatchLineFileHandle.write("4;;;2;\n") - BatchLineFileHandle.close() - - def _writeInputFile(self): - inFileHandle = open(self._inFileName, "w") - inFileHandle.write(">Sequence_de_Reference\n") - inFileHandle.write("CCTAAGCCATTGCTTGGTGATTATGAAGGCAGTAGTCAAACCTCCACAATC\n") - inFileHandle.write(">Line1\n") - inFileHandle.write("CCTTAGCCATTGCTTGGTGACTATGAAGGCAGTAGGCAAACCTCCACAATC\n") - inFileHandle.write(">Line2\n") - inFileHandle.write("CCTAAGCCATTGCTTGGTGACTATCAAGGCAGTAGCCAAACCTCCACAATA") - inFileHandle.close() - - def _writeInputFileWithSnpsAndIndels(self): - inFileHandle = open(self._inFileName, "w") - inFileHandle.write(">Sequence_de_Reference\n") - inFileHandle.write("C--AAGCCATTGCTTGGTGATTATGAAGGCAGTAGTCAAACCTCCACAATC\n") - inFileHandle.write(">Line1\n") - inFileHandle.write("C--TAGCCA---CTTGGTGACTATGAAGGCAGTAGGCAAACCTCCACAATC\n") - inFileHandle.write(">Line2\n") - inFileHandle.write("CCTAAGCCATT-CTTGGTGACTATCAAGGCAGTAGCCAAACCTCCACAATA") - inFileHandle.close() - - def _writeInputFileWithSeqErrorsInRefSeq(self): - inFileHandle = open(self._inFileName, "w") - inFileHandle.write(">Sequence_de_Reference\n") - inFileHandle.write("CCTA7GCCATTGCTTGGTGATTATGAAGGCAGTAGTCAAACCTCCACAATC\n") - inFileHandle.write(">Line1\n") - inFileHandle.write("CCTTAGCCATTGCTTGGTGACTATGAAGGCAGTAGGCAAACCTCCACAATC\n") - inFileHandle.write(">Line2\n") - inFileHandle.write("CCTAAGCCATTGCTTGGTGACTATCAAGGCAGTAGCCAAACCTCCACAATA") - inFileHandle.close() - - def _writeInputFileWithSeqErrorsInOneLineSeq(self): - inFileHandle = open(self._inFileName, "w") - inFileHandle.write(">Sequence_de_Reference\n") - inFileHandle.write("CCTAAGCCATTGCTTGGTGATTATGAAGGCAGTAGTCAAACCTCCACAATC\n") - inFileHandle.write(">Line1\n") - inFileHandle.write("CCTTAGCCATTGCTTGGTGACTATXAAGGCAGTAGGCAAACCTCCACAATC\n") - inFileHandle.write(">Line2\n") - inFileHandle.write("CCTAAGCCATTGCTTGGTGACTATCAAGGCAGTAGCCAAACCTCCACAATA") - inFileHandle.close() - - def _writeInputFileWithASeveralLineSeq(self): - inFileHandle = open(self._inFileName, "w") - inFileHandle.write(">Sequence_de_Reference\n") - inFileHandle.write("CCTAAGCCATTGCTTGGTGATTATGAAGGCAGTAGTCAAACCTCCACAATCCGCAGTAGCCAAACCTCCACAATA\n") - inFileHandle.write(">Line1\n") - inFileHandle.write("CCTTAGCCATTGCTTGGTGACTATGAAGGCAGTAGGCAAACCTCCACAATCCGCAGTAGCCAAACCTCCACAATA\n") - inFileHandle.write(">Line2\n") - inFileHandle.write("CCTAAGCCATTGCTTGGTGACTATCAAGGCAGTAGCCAAACCTCCACAATA\nCGCAGTAGCCAAA\nCCTCCACAATA\n") - inFileHandle.close() - - - def _writeInputFileWithUpcaseAndLowcaseNucleotide(self): - inFileHandle = open(self._inFileName, "w") - inFileHandle.write(">Sequence_de_Reference\n") - inFileHandle.write("CCTAAGCCATTGCTTGGtGATTATGAAGgCAGTAGTCAAACCTCCACAATC\nCGCAGTAGCCAAA\nCCTCCACAATA\n") - inFileHandle.write(">Line1\n") - inFileHandle.write("CCTTAGCCATTGCtTGGTGACTATGAAGGcAGTAGGCAAACCTCCACAATC\nCGCAGTAGCCAAA\nCCTCCACAATA\n") - inFileHandle.write(">Line2\n") - inFileHandle.write("CCTAAGCCAtTGCTTGGTGACTATCaAGGCAGTAGCCAAACCTCCACAATA\nCGCAGTAGCCAAA\nCCTCCACAATA\n") - inFileHandle.close() - - def _writeInputFileWith2SeqsWithTheSameName(self): - inFileHandle = open(self._inFileName, "w") - inFileHandle.write(">Sequence_de_Reference\n") - inFileHandle.write("CCTAAGCCATTGCTTGGtGATTATGAAGgCAGTAGTCAAACCTCCACAATC\nCGCAGTAGCCAAA\nCCTCCACAATA\n") - inFileHandle.write(">Line1\n") - inFileHandle.write("CCTTAGCCATTGCtTGGTGACTATGAAGGcAGTAGGCAAACCTCCACAATC\n") - inFileHandle.write(">Line2\n") - inFileHandle.write("CCTAAGCCAtTGCTTGGTGACTATCaAGGCAGTAGCCAAACCTCCACAATA\n") - inFileHandle.write(">Line2\n") - inFileHandle.write("CCTAAGCCAtTGCTTGGTGACTATCaAGGCAGTAGCCAAACCTCCACAATA\n") - inFileHandle.close() - - def _writeInputFileBatchWithPotentialDooblons(self): - inFileHandle = open(self._inFileName, "w") - inFileHandle.write(">AU247387ref\n") - inFileHandle.write("CACTATAGCTCCTAACATTCCTGAAGTGAAGATCACGGAGGACCTGGCTGTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGTTCTGGTTACTCTTCAATTTGGGCATGCTTAATTATCTCCTCAATTTCAATTTGGCCATGCTTAATGTTGGGTGCTTTCTTTATAGCCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCTGGGTTCTTTCTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTGTGCTGCAACAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCATACGAGTTGTGAACTGATGACATCCTCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCGGTTCTGTACGAGAAGTACGAGGACAAGATCGATGCTTTTGGAGAGAAG\n") - inFileHandle.write(">10102\n") - inFileHandle.write("NNNtatagctcctaacattcctgaagtgaagatcacrgaggacnnggctgtcaatgttgcccgctcgctgagatatgagatcaacaggggcttygctagcttgagggcgattggNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN\n") - inFileHandle.write(">10954\n") - inFileHandle.write("NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNtcaatgttgcccgctcgctgagatatgagatcaacaggggctttgctagcctgagggcgattggtcaaggccgtgacctgaagaaattcctgattgtacgt---------------------------ttaat---------------------------------------------------------------------------------------------tggttgcatggcttcgttctctttagccttcgctgtttgtggctttgttatgtgaccaagcacttgctatactgtctatttgttcgcaggtgattgcaggtctgtggatcctct---------ctgcccttgggagctgctgcaatttcctcaccttgttctacataggtaatgtgcttcgctgctacagcctgaacttg--------cagatgtgcagtaactgtacctagcattgtttacccat------------------------tctcgctttcttacNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN\n") - inFileHandle.write(">ABERAVON\n") - inFileHandle.write("NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNggtcaaggccgtgacctgaagaaattcctgattgtacgt---------------------------ttaat---------------------------------------------------------------------------------------------tggttgcatggcttcgttctctttagccttcgctgtttgtggctttgttatgtgaccNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN\n") - inFileHandle.write(">CARILLON\n") - inFileHandle.write("NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNcaacattgcccgctcgctgagatatgagatcaacaggggcttctttactttgaaggagatcggtcagggccgtgatctgaagaaattcctcattgtatgttctggttactcttcaatttgggcatgcttaat---------------------------------gttgggtgctttctttat--cctgctcaccaacatgtgatctgttctttgtatgctcaggtggttgccgg---------------------------------------------------------------------------------------------------cctctgggttctttctgttcttgggagctcttgcaacttcttgacattggcatatataggtaat------------------tttaacttgtgctgcaacacttgagttcataaccaccctag------ttgtccatacgagttgtgaactgatgacatccgttctttttcccragtgcagtcttcgtggtgctctacacggtgccagttctgtatgaNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN\n") - inFileHandle.write(">CONCERTO\n") - inFileHandle.write("NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNctttgttatgtgaccaagcacttgctatactgtctatttgttcgcaggtgattgcaggtctgtggatcctct---------ctgcccttgggagctgctgcaatttcctcaccttgttctacataggtaatgtgcttcgctgctacagcctgaacttg--------cagatgtgcagtaactgtacctagcattgtttacccat------------------------tctcgctttcttacttgcagtcttcatggttctctacactgtgccNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN\n") - inFileHandle.write(">F14-13\n") - inFileHandle.write("NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNtsaatgttgcccgctcgctgagatatgagatcaacaggggctttgctagcctgagggcgattggtcaaggccgtgacctgaagaaaNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN\n") - inFileHandle.write(">GAGNY\n") - inFileHandle.write("NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNcattgcccgctcgctgagatatgagatcaacaggggcttctttactttgaaggagatyggtcagggccgtgayctgaagaaattcctsattgtaygtNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN\n") - inFileHandle.write(">GREECE\n") - inFileHandle.write("NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNtsaacattgcccgctcgctgagatatgagatcaacaggggcttctttactttgaaggagatyggycagggccgtgatctgaagaaattcctcattgtatgtNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN\n") - inFileHandle.write(">IMAGINE\n") - inFileHandle.write("NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNtcaatgttgcccgctcgctgagatatgagatcaacaggggctttgctagcctgagggcgattggtcaaggccgtgacctgaagaaattcctgattgtacgt---------------------------ttaat---------------------------------------------------------------------------------------------tggttgcatggcttcgttctctttagccttcgctgtttgtggctttgttatgtgaccaagcacttgctatactgtctatttgttcgcaggtgattgcaggtctgtggatcctct---------ctgcccttgggagctgctgcaatttcctcaccttgttctacataggtaatgtgcttcgctgctacagcctgaacttg--------cagatgtgcagtaactgtacctagcattgtttacccat------------------------tctcgctttcttacttgcagtcttcatggttctctacactgtgccNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN\n") - inFileHandle.write(">IRELAND\n") - inFileHandle.write("NNNTATAGCTCCTAACATTCCTGAAGTGACGATTCCAGAGGACACGATTGTGAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGATGGAGATTGGCCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGT---------------------------TTGTTTATCTCCTCAATTTCAATTTGGCCATGCTTAATGTTGGGTGCTTTCTGTATAGCCTGCTCACCAAGGTGTGATCTCTTCTTTGTATACACAGGTGGTTGCTGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACNTTGGCATATATAGGTNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN\n") - inFileHandle.write(">NEMOF\n") - inFileHandle.write("NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNtcaatgttgcccgctcgctgagatatgagatcaacaggggctttgctagcctgagggcgattggtcaaggccgtgacctgaagaaattcctgattgtacgt---------------------------ttaat---------------------------------------------------------------------------------------------tggttgcatggcttcgttctctttagccttcgctgtttgtggctttgttatgtgaccaagcacttgctatactgtctatttgttcgcaggtgattgcaggtctgtggatcctct---------ctgcccttgggNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN\n") - inFileHandle.write(">NEMOH\n") - inFileHandle.write("NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNtcaatgttgcccgctcgctgagatatgagatcaacaggggctttgctagcctgagggcgattggtcaaggccgtgacctgaagaaattcctgattgtacgt---------------------------ttaat---------------------------------------------------------------------------------------------tggttgcatggcttcgttctctttagccttcgctgtttgtggctttgttatgtgaccaagcacttgctatactgtctatttgttcgcaggtgattgcaggtctgtggatcctct---------ctgcccttgggagctgctgcaatttcctcaccttgttctacataggtaatgtgcttcgctgctacagcctgaacttg--------cagatgtgcagtaactgtacctagcattgtttacccat------------------------tctcgctttcttacNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN\n") - inFileHandle.write(">POLAND\n") - inFileHandle.write("NNNTATAGCTCCTAACATTCCTGAAGTGAAGATCACGGAGGACCTGGCTGTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTAYGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN\n") - inFileHandle.write("NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN\n") - inFileHandle.write(">SPAIN\n") - inFileHandle.write("NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNtcaacattgcccgctcgctgagatatgagatcaacaggggcttctttactttgaaggagatcggtcagggccgtgatctgaagaaattcctcattgtatgttctggttactcttcaatttgggcatgcttaat---------------------------------gttgggtgctttctttat--cctgctcaccaacatgtgatctgttctttgtatgctcaggtggttgccgg---------------------------------------------------------------------------------------------------cctctgggttctttctgttcttgggagctcttgcaacttcttgacattggcatatataggtaat------------------tttaacttgtgctgcaacacttgagttcataaccaccctag------ttgtccatacgagttgtgaactgatgacatccgttctttttcccgagtgcagtcttcgtggtgctctacacggtgccagttctgtatgagaagtacgacgacaaggttgatgcttttggtgagaag\n") - inFileHandle.write(">TRANSATE\n") - inFileHandle.write("NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNcgctcgctgagatatgagatcaacaggggcttctttactttgaaggagatYggccagggtcgcgacctcaagaaattcctcattgtatgttgcttgt-ctcttcaatttcaacatgcttgat---------------------------------gttgggtgctttctttat--cctgctcaccaacatgtgatctcttctttgtatgctcaggtggttgcggg---------------------------------------------------------------------------------------------------tctctgggttctttctgttcttgggagctcttgcaacttcttgacattggcatatataggtaaK------------------tataRcttgtgctgcaacacttgagttcataaccNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN\n") - inFileHandle.write(">VIGOR\n") - inFileHandle.write("NNNTATAGCTCCTAACATTCCTGAAGTGAAGATCACGGAGGACCTGGCTGTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCGGTTCTGTACGAGAAGTACGAGGACAAGATCGATGCTTTTGGAGAGAAG\n") - inFileHandle.close() - - def _writeRealExpAlleleFile(self): - expFileHandle = open(self._expAlleleFileName, "w") - expFileHandle.write("AlleleNumber;Value;Motif;NbCopy;Comment\n") - expFileHandle.write("1;G;;;\n") - expFileHandle.write("2;T;;;\n") - expFileHandle.write("3;A;;;\n") - expFileHandle.write("4;C;;;\n") - expFileHandle.write("5;-;;;\n") - expFileHandle.close(); - - def _writeRealExpSequenceCSVFile(self): - SequenceFSAFileHandle = open(self._expSequenceCSVFileName, "w") - SequenceFSAFileHandle.write("SequenceName;SeqType;BankName;BankVersion;ACNumber;Locus;ScientificName\n") - SequenceFSAFileHandle.write("PpHDZ31_ref;Reference;;;;;Pinus pinaster\n") - SequenceFSAFileHandle.close() - - def _writeRealExpBatchFile(self): - FileHandle = open(self._expBatchFileName, "w") - FileHandle.write("BatchNumber: 1\n") - FileHandle.write("BatchName: INRA_Pinus_pinaster_HDZ31-1\n") - FileHandle.write("GeneName: PpHDZ31\n") - FileHandle.write("Description: \n") - FileHandle.write("ContactNumber: 1\n") - FileHandle.write("ProtocolNumber: 1\n") - FileHandle.write("ThematicNumber: 1\n") - FileHandle.write("RefSeqName: PpHDZ31_ref\n") - FileHandle.write("AlignmentFileName: \n") - FileHandle.write("SeqName: \n") - FileHandle.write("//\n") - FileHandle.close() - - - def _writeInputFileSeveralBatches(self): - if(not FileUtils.isRessourceExists(self._inputDirSeveralBatches)): - os.mkdir(self._inputDirSeveralBatches) - - inFileHandle = open(self._inputDirSeveralBatches+"/Gene1.fasta","w") - inFileHandle.write(">Sequence_de_Reference1\n") - inFileHandle.write("CCTAAGCCATTGCTTGGTGATTATGAAGGCAGTAGTCAAACCTCCACAATC\n") - inFileHandle.write(">Line1\n") - inFileHandle.write("CCTTAGCCATTGCTTGGTGACTATGAAGGCAGTAGGCAAACCTCCACAATC\n") - inFileHandle.write(">Line2\n") - inFileHandle.write("CCTAAGCCATTGCTTGGTGACTATCAAGGCAGTAGCCAAACCTCCACAATA") - inFileHandle.close() - - inFileHandle2 = open(self._inputDirSeveralBatches+"/Gene2.fasta","w") - inFileHandle2.write(">Sequence_de_Reference2\n") - inFileHandle2.write("C--AAGCCATTGCTTGGTGATTATGAAGGCAGTAGTCAAACCTCCACAATC\n") - inFileHandle2.write(">Line1\n") - inFileHandle2.write("C--TAGCCA---CTTGGTGACTATGAAGGCAGTAGGCAAACCTCCACAATC\n") - inFileHandle2.write(">Line2\n") - inFileHandle2.write("CCTAAGCCATT-CTTGGTGACTATCAAGGCAGTAGCCAAACCTCCACAATA") - inFileHandle2.close() - - def _writeInputFileSeveralBatches_different_lines_between_files(self): - if(not FileUtils.isRessourceExists(self._inputDirSeveralBatches)): - os.mkdir(self._inputDirSeveralBatches) - - inFileHandle = open(self._inputDirSeveralBatches+"/Gene1.fasta","w") - inFileHandle.write(">Sequence_de_Reference1\n") - inFileHandle.write("CCTAAGCCATTGCTTGGTGATTATGAAGGCAGTAGTCAAACCTCCACAATC\n") - inFileHandle.write(">Line1\n") - inFileHandle.write("CCTTAGCCATTGCTTGGTGACTATGAAGGCAGTAGGCAAACCTCCACAATC\n") - inFileHandle.write(">Line2\n") - inFileHandle.write("CCTAAGCCATTGCTTGGTGACTATCAAGGCAGTAGCCAAACCTCCACAATA") - inFileHandle.close() - - inFileHandle2 = open(self._inputDirSeveralBatches+"/Gene2.fasta","w") - inFileHandle2.write(">Sequence_de_Reference2\n") - inFileHandle2.write("C--AAGCCATTGCTTGGTGATTATGAAGGCAGTAGTCAAACCTCCACAATC\n") - inFileHandle2.write(">Line3\n") - inFileHandle2.write("C--TAGCCA---CTTGGTGACTATGAAGGCAGTAGGCAAACCTCCACAATC\n") - inFileHandle2.write(">Line4\n") - inFileHandle2.write("CCTAAGCCATT-CTTGGTGACTATCAAGGCAGTAGCCAAACCTCCACAATA") - inFileHandle2.close() - - def _writeInputFileSeveralBatches_different_lines_and_same_refseq_between_files(self): - if(not FileUtils.isRessourceExists(self._inputDirSeveralBatches)): - os.mkdir(self._inputDirSeveralBatches) - - inFileHandle = open(self._inputDirSeveralBatches+"/Gene1.fasta","w") - inFileHandle.write(">Sequence_de_Reference1\n") - inFileHandle.write("CCTAAGCCATTGCTTGGTGATTATGAAGGCAGTAGTCAAACCTCCACAATC\n") - inFileHandle.write(">Line1\n") - inFileHandle.write("CCTTAGCCATTGCTTGGTGACTATGAAGGCAGTAGGCAAACCTCCACAATC\n") - inFileHandle.write(">Line2\n") - inFileHandle.write("CCTAAGCCATTGCTTGGTGACTATCAAGGCAGTAGCCAAACCTCCACAATA") - inFileHandle.close() - - inFileHandle2 = open(self._inputDirSeveralBatches+"/Gene2.fasta","w") - inFileHandle2.write(">Sequence_de_Reference1\n") - inFileHandle2.write("C--AAGCCATTGCTTGGTGATTATGAAGGCAGTAGTCAAACCTCCACAATC\n") - inFileHandle2.write(">Line3\n") - inFileHandle2.write("C--TAGCCA---CTTGGTGACTATGAAGGCAGTAGGCAAACCTCCACAATC\n") - inFileHandle2.write(">Line4\n") - inFileHandle2.write("CCTAAGCCATT-CTTGGTGACTATCAAGGCAGTAGCCAAACCTCCACAATA") - inFileHandle2.close() - - -if __name__ == "__main__": - unittest.main() \ No newline at end of file
--- a/commons/core/parsing/test/Test_Multifasta2SNPFileWriter.py Mon Apr 29 03:26:07 2013 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,292 +0,0 @@ -from commons.core.utils.FileUtils import FileUtils -from commons.core.seq.BioseqDB import BioseqDB -from commons.core.seq.Bioseq import Bioseq -from commons.core.parsing.Multifasta2SNPFile import Multifasta2SNPFileWriter -from commons.core.parsing.Multifasta2SNPFile import Multifasta2SNPFile -from commons.core.parsing.Multifasta2SNPFile import ReferenceBioseqAndLinesBioseqDBWrapper -from commons.core.LoggerFactory import LoggerFactory -import os -import logging -import unittest - -class Test_Multifasta2SNPFileWriter(unittest.TestCase): - - def setUp(self): - self._obsSubSNPFile = "SubSNP.csv" - self._expSubSNPFile = "ExpSubSNP.csv" - - self._obsAlleleFile = "Allele.csv" - self._expAlleleFile = "ExpAllele.csv" - - self._obsIndividualFile = "Individual.csv" - self._expIndividualFile = "ExpIndividual.csv" - - self._obsSequenceFSAFile = "Sequences.fsa" - self._expSequenceFSAFile = "ExpSequences.fsa" - - self._obsSequenceCSVFile = "Sequences.csv" - self._expSequenceCSVFile = "ExpSequences.csv" - - self._obsBatchFile = "Batch.txt" - self._expBatchFile = "ExpBatch.txt" - - self._obsBatchLineFile = "BatchLine.csv" - self._expBatchLineFile = "ExpBatchLine.csv" - - self._logFileName = "Test_Multifasta2SNPWriter.log" - - self._inputFileName = "multifasta.fsa" - - self._lSNPResult = [] - self._dAlleleResult = {} - self._lIndividualResult = [] - self._refSeq = Bioseq() - self._seqDb= BioseqDB() - - self._logFile = LoggerFactory.createLogger(self._logFileName, logging.INFO, "%(asctime)s %(levelname)s: %(message)s") - self._lSequenceWrapper = ReferenceBioseqAndLinesBioseqDBWrapper(self._refSeq, self._seqDb, self._logFile, self._inputFileName) - self._lBatchLineResults = [] - - self._Multifasta2SNPFileWriter = Multifasta2SNPFileWriter() - - self._inFileName = "multifasta.txt" - self._taxon = "Arabidopsis thaliana" - - def tearDown(self): - if FileUtils.isRessourceExists(self._inFileName): - os.remove(self._inFileName) - if FileUtils.isRessourceExists("multifasta2SNP.log"): - os.remove("multifasta2SNP.log") - if FileUtils.isRessourceExists("Test_Multifasta2SNPWriter.log"): - os.remove("Test_Multifasta2SNPWriter.log") - - if FileUtils.isRessourceExists(self._obsSubSNPFile): - os.remove(self._obsSubSNPFile) - if FileUtils.isRessourceExists(self._expSubSNPFile): - os.remove(self._expSubSNPFile) - - if FileUtils.isRessourceExists(self._obsAlleleFile): - os.remove(self._obsAlleleFile) - if FileUtils.isRessourceExists(self._expAlleleFile): - os.remove(self._expAlleleFile) - - if FileUtils.isRessourceExists(self._obsIndividualFile): - os.remove(self._obsIndividualFile) - if FileUtils.isRessourceExists(self._expIndividualFile): - os.remove(self._expIndividualFile) - - if FileUtils.isRessourceExists(self._obsSequenceFSAFile): - os.remove(self._obsSequenceFSAFile) - if FileUtils.isRessourceExists(self._expSequenceFSAFile): - os.remove(self._expSequenceFSAFile) - - if FileUtils.isRessourceExists(self._obsSequenceCSVFile): - os.remove(self._obsSequenceCSVFile) - if FileUtils.isRessourceExists(self._expSequenceCSVFile): - os.remove(self._expSequenceCSVFile) - - if FileUtils.isRessourceExists(self._obsBatchFile): - FileUtils.removeFilesByPattern(self._obsBatchFile) - if FileUtils.isRessourceExists(self._expBatchFile): - FileUtils.removeFilesByPattern(self._expBatchFile) - - if FileUtils.isRessourceExists(self._obsBatchLineFile): - FileUtils.removeFilesByPattern(self._obsBatchLineFile) - if FileUtils.isRessourceExists(self._expBatchLineFile): - FileUtils.removeFilesByPattern(self._expBatchLineFile) - - def test_writeSubSNPFileWithSubSNPList(self): - self._lSNPResult = [{'subSNPName': "SubSNP1", '5flank': "A", '3flank': "T", 'position': 1, 'lineName': "1", 'allele': 1, 'batchNumber': 1, 'confidenceValue' : "A", 'type' : "SNP", 'length': 1}, - {'subSNPName': "SubSNP2", '5flank': "T", '3flank': "A", 'position': 10, 'lineName': "1", 'allele': 2, 'batchNumber': 1, 'confidenceValue' : "A", 'type' : "SNP", 'length': 1}, - {'subSNPName': "SubSNP3", '5flank': "T", '3flank': "A", 'position': 20, 'lineName': "2", 'allele': 3, 'batchNumber': 1, 'confidenceValue' : "A", 'type' : "SNP", 'length': 1}] - - self._writeExpSubSNPFile() - self._Multifasta2SNPFileWriter._writeSubSNPFile(self._obsSubSNPFile, self._lSNPResult) - - self.assertTrue(FileUtils.isRessourceExists(self._obsSubSNPFile)) - self.assertTrue(FileUtils.are2FilesIdentical(self._expSubSNPFile, self._obsSubSNPFile)) - - def test_writeAlleleFileWithAlleleDict(self): - self._dAlleleResult['A'] = 1 - self._dAlleleResult['C'] = 2 - self._dAlleleResult['T'] = 3 - - self._writeExpAlleleFile() - self._Multifasta2SNPFileWriter._writeAlleleFile(self._obsAlleleFile, self._dAlleleResult) - - self.assertTrue(FileUtils.isRessourceExists(self._obsAlleleFile)) - self.assertTrue(FileUtils.are2FilesIdentical(self._expAlleleFile, self._obsAlleleFile)) - - def test_writeIndividualFileWithIndivList(self): - self._lIndividualResult = [{'individualNumber': 1, 'individualName': "Individual1", 'scientificName': "Arabidopsis thaliana"}, - {'individualNumber': 2, 'individualName': "Individual2", 'scientificName': "Arabidopsis thaliana"}] - - self._writeExpIndividualFile() - - self._Multifasta2SNPFileWriter._writeIndividualFile(self._obsIndividualFile, self._lIndividualResult) - - self.assertTrue(FileUtils.isRessourceExists(self._obsIndividualFile)) - self.assertTrue(FileUtils.are2FilesIdentical(self._expIndividualFile, self._obsIndividualFile)) - - def test_writeSequenceFilesWithSequenceWrapper(self): - self._writeInputFile() - self._writeExpSequenceFiles() - batchName = "batch1" - taxon = "Arabidopsis thaliana" - gene = "methyltransferase" - multifasta2SNPFile = Multifasta2SNPFile(batchName, gene, taxon) - self._lSequenceWrapper = multifasta2SNPFile.createWrapperFromFile(self._inFileName) - lRefseq = [] - lRefseq.append(self._lSequenceWrapper._iReferenceBioseq) - self._Multifasta2SNPFileWriter._writeSequenceFiles(self._obsSequenceFSAFile, self._obsSequenceCSVFile, lRefseq, taxon) - - self.assertTrue(FileUtils.isRessourceExists(self._obsSequenceFSAFile)) - self.assertTrue(FileUtils.are2FilesIdentical(self._expSequenceFSAFile, self._obsSequenceFSAFile)) - self.assertTrue(FileUtils.isRessourceExists(self._obsSequenceCSVFile)) - self.assertTrue(FileUtils.are2FilesIdentical(self._expSequenceCSVFile, self._obsSequenceCSVFile)) - - def test_writeBatchFile(self): - self._dBatchResults = {'BatchNumber': "1", 'BatchName': "batch1", 'GeneName': "gene1", 'RefSeqName': "Sequence de Reference"} - lBatchResults = [] - lBatchResults.append(self._dBatchResults) - self._writeExpBatchFile() - self._Multifasta2SNPFileWriter._writeBatchFile(self._obsBatchFile, lBatchResults) - self.assertTrue(FileUtils.isRessourceExists(self._obsBatchFile)) - self.assertTrue(FileUtils.are2FilesIdentical(self._expBatchFile, self._obsBatchFile)) - - def test_writeBatchLineFile(self): - self._lBatchLineResults = [{'IndividualNumber': "1", 'BatchNumber': "1"}, - {'IndividualNumber': "2", 'BatchNumber': "1"}] - self._writeExpBatchLineFile() - self._Multifasta2SNPFileWriter._writeBatchLineFile(self._obsBatchLineFile, self._lBatchLineResults) - self.assertTrue(FileUtils.isRessourceExists(self._obsBatchLineFile)) - self.assertTrue(FileUtils.are2FilesIdentical(self._expBatchLineFile, self._obsBatchLineFile)) - - def test_sortAlleleResultByAlleleNumber(self): - dAlleleResults = {'A': 3, - 'G': 1, - 'C': 2} - - lExpAlleleSortedList = [('G', 1), - ('C', 2), - ('A', 3)] - - lObsAlleleSortedList = self._Multifasta2SNPFileWriter.sortAlleleResultByAlleleNumber(dAlleleResults) - self.assertEquals(lExpAlleleSortedList, lObsAlleleSortedList) - - def test_write(self): - - self._writeInputFile() - batchName = "batch1" - taxon = "Arabidopsis thaliana" - gene = "methyltransferase" - multifasta2SNPFile = Multifasta2SNPFile(taxon, batchName, gene) - self._lSequenceWrapper = multifasta2SNPFile.createWrapperFromFile(self._inFileName) - - - multifasta2SNPFile._lSubSNPFileResults = [{'subSNPName': "SubSNP1", '5flank': "A", '3flank': "T", 'position': 1, 'lineName': "1", 'allele': 1, 'batchNumber': 1, 'confidenceValue' : "A", 'type' : "SNP", 'length': 1}, - {'subSNPName': "SubSNP2", '5flank': "T", '3flank': "A", 'position': 10, 'lineName': "1", 'allele': 2, 'batchNumber': 1, 'confidenceValue' : "A", 'type' : "SNP", 'length': 1}, - {'subSNPName': "SubSNP3", '5flank': "T", '3flank': "A", 'position': 20, 'lineName': "2", 'allele': 3, 'batchNumber': 1, 'confidenceValue' : "A", 'type' : "SNP", 'length': 1}] - multifasta2SNPFile._dAlleleFileResults['A'] = 1 - multifasta2SNPFile._dAlleleFileResults['C'] = 2 - multifasta2SNPFile._dAlleleFileResults['T'] = 3 - - multifasta2SNPFile._lIndividualFileResults = [{'individualNumber': 1, 'individualName': "Individual1", 'scientificName': "Arabidopsis thaliana"}, - {'individualNumber': 2, 'individualName': "Individual2", 'scientificName': "Arabidopsis thaliana"}] - - multifasta2SNPFile._lBatchFileResults = [{'BatchNumber': "1", 'BatchName': "batch1", 'GeneName': "gene1", 'RefSeqName': "Sequence de Reference"}] - - multifasta2SNPFile._lBatchLineFileResults = [{'IndividualNumber': "1", 'BatchNumber': "1"}, - {'IndividualNumber': "2", 'BatchNumber': "1"}] - - - self._writeExpSubSNPFile() - self._writeExpAlleleFile() - self._writeExpIndividualFile() - self._writeExpSequenceFiles() - self._writeExpBatchFile() - self._writeExpBatchLineFile() - - self._Multifasta2SNPFileWriter.write(multifasta2SNPFile) - self.assertTrue(FileUtils.isRessourceExists(self._obsSubSNPFile)) - self.assertTrue(FileUtils.are2FilesIdentical(self._expSubSNPFile, self._obsSubSNPFile)) - self.assertTrue(FileUtils.isRessourceExists(self._obsAlleleFile)) - self.assertTrue(FileUtils.are2FilesIdentical(self._expAlleleFile, self._obsAlleleFile)) - self.assertTrue(FileUtils.isRessourceExists(self._obsIndividualFile)) - self.assertTrue(FileUtils.are2FilesIdentical(self._expIndividualFile, self._obsIndividualFile)) - self.assertTrue(FileUtils.isRessourceExists(self._obsSequenceFSAFile)) - self.assertTrue(FileUtils.are2FilesIdentical(self._expSequenceFSAFile, self._obsSequenceFSAFile)) - self.assertTrue(FileUtils.isRessourceExists(self._obsSequenceCSVFile)) - self.assertTrue(FileUtils.are2FilesIdentical(self._expSequenceCSVFile, self._obsSequenceCSVFile)) - self.assertTrue(FileUtils.isRessourceExists(self._obsBatchFile)) - self.assertTrue(FileUtils.are2FilesIdentical(self._expBatchFile, self._obsBatchFile)) - self.assertTrue(FileUtils.isRessourceExists(self._obsBatchLineFile)) - self.assertTrue(FileUtils.are2FilesIdentical(self._expBatchLineFile, self._obsBatchLineFile)) - - def _writeExpSubSNPFile(self): - expFile = open(self._expSubSNPFile, "w") - expFile.write("SubSNPName;ConfidenceValue;Type;Position;5flank;3flank;Length;BatchNumber;IndividualNumber;PrimerType;PrimerNumber;Forward_or_Reverse;AlleleNumber\n") - expFile.write("SubSNP1;A;SNP;1;A;T;1;1;1;Sequence;;;1\n") - expFile.write("SubSNP2;A;SNP;10;T;A;1;1;1;Sequence;;;2\n") - expFile.write("SubSNP3;A;SNP;20;T;A;1;1;2;Sequence;;;3\n") - expFile.close() - - def _writeExpAlleleFile(self): - expFile = open(self._expAlleleFile, "w") - expFile.write("AlleleNumber;Value;Motif;NbCopy;Comment\n") - expFile.write("1;A;;;\n") - expFile.write("2;C;;;\n") - expFile.write("3;T;;;\n") - expFile.close() - - - def _writeExpIndividualFile(self): - expFile = open(self._expIndividualFile, "w") - expFile.write("IndividualNumber;IndividualName;Description;AberrAneuploide;FractionLength;DeletionLineSynthesis;UrlEarImage;TypeLine;ChromNumber;ArmChrom;DeletionBin;ScientificName;local_germplasm_name;submitter_code;local_institute;donor_institute;donor_acc_id\n") - expFile.write("1;Individual1;;;;;;;;;;Arabidopsis thaliana;;;;;\n") - expFile.write("2;Individual2;;;;;;;;;;Arabidopsis thaliana;;;;;\n") - expFile.close() - - def _writeInputFile(self): - inFileHandle = open(self._inFileName, "w") - inFileHandle.write(">Sequence_de_Reference\n") - inFileHandle.write("CCTAAGCCATTGCTTGGTGATTATGAAGGCAGTAGTCAAACCTCCACAATC\n") - inFileHandle.write(">Line1\n") - inFileHandle.write("CCTTAGCCATTGCTTGGTGACTATGAAGGCAGTAGGCAAACCTCCACAATC\n") - inFileHandle.write(">Line2\n") - inFileHandle.write("CCTAAGCCATTGCTTGGTGACTATCAAGGCAGTAGCCAAACCTCCACAATA") - inFileHandle.close() - - def _writeExpSequenceFiles(self): - SequenceFSAFileHandle = open(self._expSequenceFSAFile, "w") - SequenceFSAFileHandle.write(">Sequence_de_Reference\n") - SequenceFSAFileHandle.write("CCTAAGCCATTGCTTGGTGATTATGAAGGCAGTAGTCAAACCTCCACAATC\n") - SequenceFSAFileHandle.close() - SequenceCSVFileHandle = open(self._expSequenceCSVFile, "w") - SequenceCSVFileHandle.write("SequenceName;SeqType;BankName;BankVersion;ACNumber;Locus;ScientificName\n") - SequenceCSVFileHandle.write("Sequence_de_Reference;Reference;;;;;Arabidopsis thaliana\n") - SequenceCSVFileHandle.close() - - def _writeExpBatchFile(self): - BatchFileHandle = open(self._expBatchFile, "w") - BatchFileHandle.write("BatchNumber: 1\n") - BatchFileHandle.write("BatchName: batch1\n") - BatchFileHandle.write("GeneName: gene1\n") - BatchFileHandle.write("Description: \n") - BatchFileHandle.write("ContactNumber: \n") - BatchFileHandle.write("ProtocolNumber: \n") - BatchFileHandle.write("ThematicNumber: \n") - BatchFileHandle.write("RefSeqName: Sequence de Reference\n") - BatchFileHandle.write("AlignmentFileName: \n") - BatchFileHandle.write("SeqName: \n") - BatchFileHandle.write("//\n") - BatchFileHandle.close() - - def _writeExpBatchLineFile(self): - BatchLineFileHandle = open(self._expBatchLineFile, "w") - BatchLineFileHandle.write("IndividualNumber;Pos5;Pos3;BatchNumber;Sequence\n") - BatchLineFileHandle.write("1;;;1;\n") - BatchLineFileHandle.write("2;;;1;\n") - BatchLineFileHandle.close() -if __name__ == "__main__": - unittest.main() \ No newline at end of file
--- a/commons/core/parsing/test/Test_PalsToAlign.py Mon Apr 29 03:26:07 2013 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,43 +0,0 @@ -import unittest -from commons.core.utils.FileUtils import FileUtils -import os -from commons.core.parsing.PalsToAlign import PalsToAlign - -class Test_PalsToAlign(unittest.TestCase): - - def setUp(self): - self._palsFileName = "input.gff" - self._expAlignFileName = "file.align" - self._obsAlignFileName = "output.align" - - def tearDown(self): - os.remove(self._palsFileName) - os.remove(self._expAlignFileName) - os.remove(self._obsAlignFileName) - - def testRun(self): - self._writePalsFile(self._palsFileName) - self._writeExpAlignFile(self._expAlignFileName) - - iPalsToAlign = PalsToAlign(self._palsFileName,self._obsAlignFileName) - iPalsToAlign.run() - - self.assertTrue(FileUtils.are2FilesIdentical(self._expAlignFileName, self._obsAlignFileName)) - - - def _writePalsFile(self, fileName): - f = open(fileName, "w") - f.write("chunk01\tpals\thit\t32290\t32583\t252\t+\t.\tTarget chunk02 28975 29268; maxe 0.035\n") - f.write("chunk01\tpals\thit\t28975\t29268\t252\t+\t.\tTarget chunk02 32290 32583; maxe 0.035\n") - f.write("chunk01\tpals\thit\t65932\t66032\t68\t+\t.\tTarget chunk02 59293 59395; maxe 0.085\n") - f.close() - - def _writeExpAlignFile(self, fileName): - f = open(fileName, "w") - f.write("chunk01\t28975\t29268\tchunk02\t32290\t32583\t0.0\t252\t96.5\n") - f.write("chunk01\t32290\t32583\tchunk02\t28975\t29268\t0.0\t252\t96.5\n") - f.write("chunk01\t65932\t66032\tchunk02\t59293\t59395\t0.0\t68\t91.5\n") - f.close() - -if __name__ == "__main__": - unittest.main() \ No newline at end of file
--- a/commons/core/parsing/test/Test_PathNum2Id.py Mon Apr 29 03:26:07 2013 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,69 +0,0 @@ -import unittest -import os -from commons.core.parsing.PathNum2Id import PathNum2Id -from commons.core.utils.FileUtils import FileUtils - - -class Test_PathNum2Id(unittest.TestCase): - - def setUp(self): - self._inputFileName = "dummyInputPathFile.path" - self._outputFileName = "dummyOutputPathFile.path" - self._expectedFileName = "expectedpathFile.path" - self._pathNum2Id = PathNum2Id() - - def tearDown(self): - os.remove( self._inputFileName ) - os.remove( self._outputFileName ) - os.remove( self._expectedFileName ) - - def test_RunWhithoutReturnAtEndOfFile(self): - self._createAndFillInputFileWhithoutReturnAtTheEnd() - self._createExpectedFile() - self._pathNum2Id.setInFileName( self._inputFileName ) - self._pathNum2Id.setOutFileName( self._outputFileName ) - self._pathNum2Id.run() - fileutils = FileUtils() - self.assertTrue(fileutils.are2FilesIdentical(self._outputFileName, self._expectedFileName)) - - def test_RunWhithReturnAtEndOfFile(self): - self._createAndFillInputFileWhithReturnAtTheEnd() - self._createExpectedFile() - self._pathNum2Id.setInFileName( self._inputFileName ) - self._pathNum2Id.setOutFileName( self._outputFileName ) - self._pathNum2Id.run() - fileutils = FileUtils() - self.assertTrue(fileutils.are2FilesIdentical(self._outputFileName, self._expectedFileName)) - - def _createExpectedFile(self): - f = open(self._expectedFileName, "w") - f.write("1\tblumeria_Grouper_590_20:NoCat_1\t91\t108\tDUF234\t5\t22\t1.5\t3.2\t0\n") - f.write("2\tblumeria_Grouper_590_20:NoCat_1\t111\t119\tDUF1414\t1\t9\t6.3\t2.9\t0\n") - f.write("3\tblumeria_Grouper_590_20:NoCat_3\t30\t37\tCPW_WPC\t1\t9\t7.7\t1.5\t0\n") - f.write("4\tblumeria_Grouper_590_20:NoCat_3\t55\t69\tHECT\t341\t355\t9.2e-06\t0.0\t0\n") - f.write("5\tblumeria_Grouper_590_20:NoCat_4\t82\t91\tDUF46\t173\t182\t0.11\t6.4\t0\n") - f.write("6\tblumeria_Grouper_590_20:NoCat_5\t121\t125\tPOC4\t276\t280\t6.3\t-1.7\t0\n") - f.close() - - def _createAndFillInputFileWhithoutReturnAtTheEnd(self): - f = open(self._inputFileName, "w") - f.write("1\tblumeria_Grouper_590_20:NoCat_1\t91\t108\tDUF234\t5\t22\t1.5\t3.2\t0\n") - f.write("2\tblumeria_Grouper_590_20:NoCat_1\t111\t119\tDUF1414\t1\t9\t6.3\t2.9\t0\n") - f.write("3\tblumeria_Grouper_590_20:NoCat_3\t30\t37\tCPW_WPC\t1\t9\t7.7\t1.5\t0\n") - f.write("1\tblumeria_Grouper_590_20:NoCat_3\t55\t69\tHECT\t341\t355\t9.2e-06\t0.0\t0\n") - f.write("2\tblumeria_Grouper_590_20:NoCat_4\t82\t91\tDUF46\t173\t182\t0.11\t6.4\t0\n") - f.write("3\tblumeria_Grouper_590_20:NoCat_5\t121\t125\tPOC4\t276\t280\t6.3\t-1.7\t0") - f.close() - - def _createAndFillInputFileWhithReturnAtTheEnd(self): - f = open(self._inputFileName, "w") - f.write("1\tblumeria_Grouper_590_20:NoCat_1\t91\t108\tDUF234\t5\t22\t1.5\t3.2\t0\n") - f.write("2\tblumeria_Grouper_590_20:NoCat_1\t111\t119\tDUF1414\t1\t9\t6.3\t2.9\t0\n") - f.write("3\tblumeria_Grouper_590_20:NoCat_3\t30\t37\tCPW_WPC\t1\t9\t7.7\t1.5\t0\n") - f.write("1\tblumeria_Grouper_590_20:NoCat_3\t55\t69\tHECT\t341\t355\t9.2e-06\t0.0\t0\n") - f.write("2\tblumeria_Grouper_590_20:NoCat_4\t82\t91\tDUF46\t173\t182\t0.11\t6.4\t0\n") - f.write("3\tblumeria_Grouper_590_20:NoCat_5\t121\t125\tPOC4\t276\t280\t6.3\t-1.7\t0\n") - f.close() - -if __name__ == "__main__": - unittest.main() \ No newline at end of file
--- a/commons/core/parsing/test/Test_PslParser.py Mon Apr 29 03:26:07 2013 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,165 +0,0 @@ -from commons.core.parsing.PslParser import PslParser -import unittest, os - - -class Test_PslParser(unittest.TestCase): - - def test_forward(self): - fileName = "tmpFile.psl" - handle = open(fileName, "w") - handle.write("psLayout version 3\n\nmatch\tmis-\trep.\tN's\tQ gap\tQ gap\tT gap\tT gap\tstrand\tQ\tQ\tQ\tQ\T\tT\tT\tT\tblock\tblockSizes\tqStarts\ttStarts\nmatch\tmatch\tcount\tbases\tcount\tbases\tname\tsize\tstart\tend\tname\tsize\tstart\tend\tcount\n---------------------------------------------------------------------------------------------------------------------------------------------------------------\n158\t0\t0\t0\t0\t0\t1\t158\t+\ttest\t158\t0\t158\tchr1\t1501\t237\t553\t2\t79,79,\t0,79,\t237,474,\n") - handle.close() - - parser = PslParser(fileName, 0) - self.assertEquals(parser.getNbMappings(), 1) - for mapping in parser.getIterator(): - transcript = mapping.getTranscript() - self.assertEquals(transcript.getName(), "test") - self.assertEquals(transcript.getChromosome(), "chr1") - self.assertEquals(transcript.getDirection(), 1) - self.assertEquals(transcript.getStart(), 238) - self.assertEquals(transcript.getEnd(), 553) - self.assertEquals(transcript.getNbExons(), 2) - for i, exon in enumerate(transcript.getExons()): - if i == 0: - self.assertEquals(exon.getStart(), 238) - self.assertEquals(exon.getEnd(), 316) - elif i == 1: - self.assertEquals(exon.getStart(), 475) - self.assertEquals(exon.getEnd(), 553) - os.remove(fileName) - - - def test_backward(self): - fileName = "tmpFile.psl" - handle = open(fileName, "w") - handle.write("psLayout version 3\n\nmatch\tmis-\trep.\tN's\tQ gap\tQ gap\tT gap\tT gap\tstrand\tQ\tQ\tQ\tQ\tT\tT\tT\tT\tblock\tblockSizes\tqStarts\ttStarts\nmatch\tmatch\tcount\tbases\tcount\tbases\tname\tsize\tstart\tend\tname\tsize\tstart\tend\tcount\n---------------------------------------------------------------------------------------------------------------------------------------------------------------\n158\t0\t0\t0\t0\t0\t1\t158\t-\ttest\t158\t0\t158\tchr1\t1501\t237\t553\t2\t79,79,\t0,79,\t237,474,\n") - - handle.close() - - parser = PslParser(fileName, 0) - self.assertEquals(parser.getNbMappings(), 1) - for mapping in parser.getIterator(): - transcript = mapping.getTranscript() - self.assertEquals(transcript.getName(), "test") - self.assertEquals(transcript.getChromosome(), "chr1") - self.assertEquals(transcript.getDirection(), -1) - self.assertEquals(transcript.getStart(), 238) - self.assertEquals(transcript.getEnd(), 553) - self.assertEquals(transcript.getNbExons(), 2) - for i, exon in enumerate(transcript.getExons()): - if i == 1: - self.assertEquals(exon.getStart(), 238) - self.assertEquals(exon.getEnd(), 316) - elif i == 0: - self.assertEquals(exon.getStart(), 475) - self.assertEquals(exon.getEnd(), 553) - os.remove(fileName) - - - def test_query_forward_target_forward(self): - fileName = "tmpFile.psl" - handle = open(fileName, "w") - handle.write("psLayout version 3\n\nmatch\tmis-\trep.\tN's\tQ gap\tQ gap\tT gap\tT gap\tstrand\tQ\tQ\tQ\tQ\tT\tT\tT\tT\tblock\tblockSizes\tqStarts\ttStarts\nmatch\tmatch\tcount\tbases\tcount\tbases\tname\tsize\tstart\tend\tname\tsize\tstart\tend\tcount\n---------------------------------------------------------------------------------------------------------------------------------------------------------------\n241\t0\t0\t0\t0\t0\t1\t60\t++\tseq1\t255\t9\t250\tref\t2262\t59\t360\t2\t121,120,\t9,130,\t59,240,\n") - handle.close() - - parser = PslParser(fileName, 0) - self.assertEquals(parser.getNbMappings(), 1) - for mapping in parser.getIterator(): - transcript = mapping.getTranscript() - self.assertEquals(transcript.getName(), "seq1") - self.assertEquals(transcript.getChromosome(), "ref") - self.assertEquals(transcript.getDirection(), 1) - self.assertEquals(transcript.getStart(), 60) - self.assertEquals(transcript.getEnd(), 360) - self.assertEquals(transcript.getNbExons(), 2) - for i, exon in enumerate(transcript.getExons()): - if i == 0: - self.assertEquals(exon.getStart(), 60) - self.assertEquals(exon.getEnd(), 180) - elif i == 1: - self.assertEquals(exon.getStart(), 241) - self.assertEquals(exon.getEnd(), 360) - os.remove(fileName) - - def test_query_backward_target_forward(self): - fileName = "tmpFile.psl" - handle = open(fileName, "w") - handle.write("psLayout version 3\n\nmatch\tmis-\trep.\tN's\tQ gap\tQ gap\tT gap\tT gap\tstrand\tQ\tQ\tQ\tQ\tT\tT\tT\tT\tblock\tblockSizes\tqStarts\ttStarts\nmatch\tmatch\tcount\tbases\tcount\tbases\tname\tsize\tstart\tend\tname\tsize\tstart\tend\tcount\n---------------------------------------------------------------------------------------------------------------------------------------------------------------\n241\t0\t0\t0\t0\t0\t1\t60\t-+\tseq2\t255\t5\t246\tref\t2262\t59\t360\t2\t121,120,\t9,130,\t59,240,\n") - handle.close() - - parser = PslParser(fileName, 0) - self.assertEquals(parser.getNbMappings(), 1) - for mapping in parser.getIterator(): - transcript = mapping.getTranscript() - self.assertEquals(transcript.getName(), "seq2") - self.assertEquals(transcript.getChromosome(), "ref") - self.assertEquals(transcript.getDirection(), -1) - self.assertEquals(transcript.getStart(), 60) - self.assertEquals(transcript.getEnd(), 360) - self.assertEquals(transcript.getNbExons(), 2) - for i, exon in enumerate(transcript.getExons()): - if i == 1: - self.assertEquals(exon.getStart(), 60) - self.assertEquals(exon.getEnd(), 180) - elif i == 0: - self.assertEquals(exon.getStart(), 241) - self.assertEquals(exon.getEnd(), 360) - os.remove(fileName) - - def test_query_backward_target_backward(self): - fileName = "tmpFile.psl" - handle = open(fileName, "w") - handle.write("psLayout version 3\n\nmatch\tmis-\trep.\tN's\tQ gap\tQ gap\tT gap\tT gap\tstrand\tQ\tQ\tQ\tQ\tT\tT\tT\tT\tblock\tblockSizes\tqStarts\ttStarts\nmatch\tmatch\tcount\tbases\tcount\tbases\tname\tsize\tstart\tend\tname\tsize\tstart\tend\tcount\n---------------------------------------------------------------------------------------------------------------------------------------------------------------\n241\t1\t0\t0\t0\t0\t1\t60\t--\tseq1\t255\t8\t250\tref\t2262\t58\t360\t2\t120,122,\t5,125,\t1902,2082,\n") - handle.close() - - parser = PslParser(fileName, 0) - self.assertEquals(parser.getNbMappings(), 1) - for mapping in parser.getIterator(): - transcript = mapping.getTranscript() - self.assertEquals(transcript.getName(), "seq1") - self.assertEquals(transcript.getChromosome(), "ref") - self.assertEquals(transcript.getDirection(), 1) - self.assertEquals(transcript.getStart(), 59) - self.assertEquals(transcript.getEnd(), 360) - self.assertEquals(transcript.getNbExons(), 2) - for i, exon in enumerate(transcript.getExons()): - if i == 0: - self.assertEquals(exon.getStart(), 59) - self.assertEquals(exon.getEnd(), 180) - elif i == 1: - self.assertEquals(exon.getStart(), 241) - self.assertEquals(exon.getEnd(), 360) - os.remove(fileName) - - - def test_query_forward_target_backward(self): - fileName = "tmpFile.psl" - handle = open(fileName, "w") - handle.write("psLayout version 3\n\nmatch\tmis-\trep.\tN's\tQ gap\tQ gap\tT gap\tT gap\tstrand\tQ\tQ\tQ\tQ\tT\tT\tT\tT\tblock\tblockSizes\tqStarts\ttStarts\nmatch\tmatch\tcount\tbases\tcount\tbases\tname\tsize\tstart\tend\tname\tsize\tstart\tend\tcount\n---------------------------------------------------------------------------------------------------------------------------------------------------------------\n241\t1\t0\t0\t0\t0\t1\t60\t+-\tseq2\t255\t5\t247\tref\t2262\t58\t360\t2\t120,122,\t5,125,\t1902,2082,\n") - handle.close() - - parser = PslParser(fileName, 0) - self.assertEquals(parser.getNbMappings(), 1) - for mapping in parser.getIterator(): - transcript = mapping.getTranscript() - self.assertEquals(transcript.getName(), "seq2") - self.assertEquals(transcript.getChromosome(), "ref") - self.assertEquals(transcript.getDirection(), -1) - self.assertEquals(transcript.getStart(), 59) - self.assertEquals(transcript.getEnd(), 360) - self.assertEquals(transcript.getNbExons(), 2) - for i, exon in enumerate(transcript.getExons()): - if i == 1: - self.assertEquals(exon.getStart(), 59) - self.assertEquals(exon.getEnd(), 180) - elif i == 0: - self.assertEquals(exon.getStart(), 241) - self.assertEquals(exon.getEnd(), 360) - os.remove(fileName) - - -if __name__ == "__main__": - unittest.main() - -
--- a/commons/core/parsing/test/Test_SsrParser.py Mon Apr 29 03:26:07 2013 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,154 +0,0 @@ -from commons.core.parsing.SsrParser import SsrParser -import unittest - - -class Test_SsrParser(unittest.TestCase): - - - def test_setAttributesFromString(self): - ssrLine = "MRRE1H001B07RM1\t1\t2\tta\t19\t153\t190\t734" - - iSsrParser = SsrParser() - iSsrParser.setAttributesFromString(ssrLine) - - obsBES_name = iSsrParser.getBesName() - obsBES_redundancy = iSsrParser.getBesRedundancy() - obsSSR_nbNucleotides = iSsrParser.getSsrNbNucleotides() - obsSSR_Motif = iSsrParser.getSsrMotif() - obsSSR_Motif_number = iSsrParser.getSsrMotifNumber() - obsSSR_start = iSsrParser.getSsrStart() - obsSSR_end = iSsrParser.getSsrEnd() - obsBES_size = iSsrParser.getBesSize() - - expBES_name = 'MRRE1H001B07RM1' - expBES_redundancy = '1' - expSSR_nbNucleotides = '2' - expSSR_Motif = 'ta' - expSSR_Motif_number = '19' - expSSR_start = '153' - expSSR_end = '190' - expBES_size = '734' - - self.assertEquals(expBES_name, obsBES_name) - self.assertEquals(expBES_redundancy, obsBES_redundancy) - self.assertEquals(expSSR_nbNucleotides, obsSSR_nbNucleotides) - self.assertEquals(expSSR_Motif, obsSSR_Motif) - self.assertEquals(expSSR_Motif_number, obsSSR_Motif_number) - self.assertEquals(expSSR_start, obsSSR_start) - self.assertEquals(expSSR_end, obsSSR_end) - self.assertEquals(expBES_size, obsBES_size) - - def test_setAttributesFromString_empty_BESName(self): - ssrLine = "\t1\t2\tta\t19\t153\t190\t734" - - iSsrParser = SsrParser() - iSsrParser.setAttributesFromString(ssrLine) - - obsBES_name = iSsrParser.getBesName() - obsBES_redundancy = iSsrParser.getBesRedundancy() - obsSSR_nbNucleotides = iSsrParser.getSsrNbNucleotides() - obsSSR_Motif = iSsrParser.getSsrMotif() - obsSSR_Motif_number = iSsrParser.getSsrMotifNumber() - obsSSR_start = iSsrParser.getSsrStart() - obsSSR_end = iSsrParser.getSsrEnd() - obsBES_size = iSsrParser.getBesSize() - - expBES_name = '' - expBES_redundancy = '' - expSSR_nbNucleotides = '' - expSSR_Motif = '' - expSSR_Motif_number = '' - expSSR_start = '' - expSSR_end = '' - expBES_size = '' - - self.assertEquals(expBES_name, obsBES_name) - self.assertEquals(expBES_redundancy, obsBES_redundancy) - self.assertEquals(expSSR_nbNucleotides, obsSSR_nbNucleotides) - self.assertEquals(expSSR_Motif, obsSSR_Motif) - self.assertEquals(expSSR_Motif_number, obsSSR_Motif_number) - self.assertEquals(expSSR_start, obsSSR_start) - self.assertEquals(expSSR_end, obsSSR_end) - self.assertEquals(expBES_size, obsBES_size) - - def test_setAttributesFromString_less_than_8_fields(self): - ssrLine = "1\t2\tta\t19\t153\t190\t734" - - iSsrParser = SsrParser() - iSsrParser.setAttributesFromString(ssrLine) - - obsBES_name = iSsrParser.getBesName() - obsBES_redundancy = iSsrParser.getBesRedundancy() - obsSSR_nbNucleotides = iSsrParser.getSsrNbNucleotides() - obsSSR_Motif = iSsrParser.getSsrMotif() - obsSSR_Motif_number = iSsrParser.getSsrMotifNumber() - obsSSR_start = iSsrParser.getSsrStart() - obsSSR_end = iSsrParser.getSsrEnd() - obsBES_size = iSsrParser.getBesSize() - - expBES_name = '' - expBES_redundancy = '' - expSSR_nbNucleotides = '' - expSSR_Motif = '' - expSSR_Motif_number = '' - expSSR_start = '' - expSSR_end = '' - expBES_size = '' - - self.assertEquals(expBES_name, obsBES_name) - self.assertEquals(expBES_redundancy, obsBES_redundancy) - self.assertEquals(expSSR_nbNucleotides, obsSSR_nbNucleotides) - self.assertEquals(expSSR_Motif, obsSSR_Motif) - self.assertEquals(expSSR_Motif_number, obsSSR_Motif_number) - self.assertEquals(expSSR_start, obsSSR_start) - self.assertEquals(expSSR_end, obsSSR_end) - self.assertEquals(expBES_size, obsBES_size) - - def test_setAttributes(self): - lResults = ['MRRE1H001B07RM1','1','2','ta','19','153','190','734'] - lineNumber = 1 - - iSsrParser = SsrParser() - iSsrParser.setAttributes(lResults, lineNumber) - - obsBES_name = iSsrParser.getBesName() - obsBES_redundancy = iSsrParser.getBesRedundancy() - obsSSR_nbNucleotides = iSsrParser.getSsrNbNucleotides() - obsSSR_Motif = iSsrParser.getSsrMotif() - obsSSR_Motif_number = iSsrParser.getSsrMotifNumber() - obsSSR_start = iSsrParser.getSsrStart() - obsSSR_end = iSsrParser.getSsrEnd() - obsBES_size = iSsrParser.getBesSize() - - expBES_name = 'MRRE1H001B07RM1' - expBES_redundancy = '1' - expSSR_nbNucleotides = '2' - expSSR_Motif = 'ta' - expSSR_Motif_number = '19' - expSSR_start = '153' - expSSR_end = '190' - expBES_size = '734' - - self.assertEquals(expBES_name, obsBES_name) - self.assertEquals(expBES_redundancy, obsBES_redundancy) - self.assertEquals(expSSR_nbNucleotides, obsSSR_nbNucleotides) - self.assertEquals(expSSR_Motif, obsSSR_Motif) - self.assertEquals(expSSR_Motif_number, obsSSR_Motif_number) - self.assertEquals(expSSR_start, obsSSR_start) - self.assertEquals(expSSR_end, obsSSR_end) - self.assertEquals(expBES_size, obsBES_size) - - def test_eq_Equals(self): - SsrParser1 = SsrParser('MRRE1H001A12RM1', '1', '4', 'ttta', '6', '272', '295', '724') - SsrParser2 = SsrParser('MRRE1H001A12RM1', '1', '4', 'ttta', '6', '272', '295', '724') - - self.assertTrue(SsrParser1 == SsrParser2) - - def test_eq_NotEquals(self): - SsrParser1 = SsrParser('MRRE1H001A12RM1', '1', '4', 'ttta', '6', '272', '295', '724') - SsrParser2 = SsrParser('MRRE1H001A12RM3', '1', '5', 'ttta', '6', '272', '295', '852') - - self.assertFalse(SsrParser1 == SsrParser2) - -if __name__ == "__main__": - unittest.main() \ No newline at end of file
--- a/commons/core/parsing/test/Test_VarscanFile.py Mon Apr 29 03:26:07 2013 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,287 +0,0 @@ -from commons.core.parsing.VarscanFile import VarscanFile -from commons.core.parsing.VarscanHit import VarscanHit -import unittest -import os -from commons.core.parsing.VarscanHit_WithTag import VarscanHit_WithTag -from commons.core.parsing.VarscanHit_v2_2_8 import VarscanHit_v2_2_8 -from commons.core.parsing.VarscanHit_v2_2_8_WithTag import VarscanHit_v2_2_8_WithTag -from commons.core.checker.CheckerException import CheckerException - -class Test_VarscanFile(unittest.TestCase): - - def test_parse_fileWithHeader(self): - varscanFileName = "file.varscan" - self._writeVarscanFile(varscanFileName) - - varscanHit1 = VarscanHit() - varscanHit1.setChrom('C02HBa0291P19_LR48') - varscanHit1.setPosition('32') - varscanHit1.setRef('C') - varscanHit1.setVar('T') - - varscanHit2 = VarscanHit() - varscanHit2.setChrom('C02HBa0291P19_LR48') - varscanHit2.setPosition('34') - varscanHit2.setRef('A') - varscanHit2.setVar('T') - expVarscanHitsList = [varscanHit1, varscanHit2] - - iVarscanFile = VarscanFile(varscanFileName) - iVarscanFile.parse() - obsVarscanHitsList = iVarscanFile.getVarscanHitsList() - os.remove(varscanFileName) - - self.assertEquals(expVarscanHitsList, obsVarscanHitsList) - - def test_parse_FileWithoutHeader(self): - varscanFileName = "file.varscan" - self._writeVarscanFileWithoutHeader(varscanFileName) - - varscanHit1 = VarscanHit() - varscanHit1.setChrom('C02HBa0291P19_LR48') - varscanHit1.setPosition('32') - varscanHit1.setRef('C') - varscanHit1.setVar('T') - - varscanHit2 = VarscanHit() - varscanHit2.setChrom('C02HBa0291P19_LR48') - varscanHit2.setPosition('34') - varscanHit2.setRef('A') - varscanHit2.setVar('T') - expVarscanHitsList = [varscanHit1, varscanHit2] - - iVarscanFile = VarscanFile(varscanFileName) - iVarscanFile.parse() - obsVarscanHitsList = iVarscanFile.getVarscanHitsList() - obsTypeOfVarscanFile = iVarscanFile.getTypeOfVarscanFile() - expTypeOfVarscanFile = "Varscan_2_2" - - self.assertEquals(expVarscanHitsList, obsVarscanHitsList) - self.assertEquals(expTypeOfVarscanFile, obsTypeOfVarscanFile) - os.remove(varscanFileName) - - def test_parse_VarscanFileWithTag(self): - inputFileName = "%s/commons/core/parsing/test/varscan.tab" % os.environ["REPET_PATH"] - self._writeVarscanFileWithTag(inputFileName) - launcher = VarscanFile(inputFileName) - launcher.parse() - obsListOfVarscanHits = launcher.getListOfVarscanHits() - - varscanHit1 = VarscanHit_WithTag() - varscanHit1.setChrom('C02HBa0291P19_LR48') - varscanHit1.setPosition('32') - varscanHit1.setRef('C') - varscanHit1.setVar('T') - varscanHit1.setTag('EspeceA') - - varscanHit2 = VarscanHit_WithTag() - varscanHit2.setChrom('C02HBa0291P19_LR48') - varscanHit2.setPosition('34') - varscanHit2.setRef('A') - varscanHit2.setVar('T') - varscanHit2.setTag('EspeceA') - expVarscanHitsList = [varscanHit1, varscanHit2] - - obsTypeOfVarscanFile = launcher.getTypeOfVarscanFile() - expTypeOfVarscanFile = "Varscan_2_2_WithTag" - - self.assertEquals(expVarscanHitsList, obsListOfVarscanHits) - self.assertEquals(expTypeOfVarscanFile, obsTypeOfVarscanFile) - os.remove(inputFileName) - - def test_parse_VarscanFile_v2_2_8(self): - inputFileName = "%s/commons/core/parsing/test/varscan.tab" % os.environ["REPET_PATH"] - self._writeVarscanFile_v2_2_8(inputFileName) - launcher = VarscanFile(inputFileName) - launcher.parse() - obsListOfVarscanHits = launcher.getListOfVarscanHits() - - varscanHit1 = VarscanHit_v2_2_8() - varscanHit1.setChrom('C11HBa0064J13_LR285') - varscanHit1.setPosition('3227') - varscanHit1.setRef('G') - varscanHit1.setVar('A') - varscanHit1.setCns('A') - - varscanHit2 = VarscanHit_v2_2_8() - varscanHit2.setChrom('C11HBa0064J13_LR285') - varscanHit2.setPosition('3230') - varscanHit2.setRef('G') - varscanHit2.setVar('T') - varscanHit2.setCns('T') - expVarscanHitsList = [varscanHit1, varscanHit2] - - obsTypeOfVarscanFile = launcher.getTypeOfVarscanFile() - expTypeOfVarscanFile = "Varscan_2_2_8" - - self.assertEquals(expVarscanHitsList, obsListOfVarscanHits) - self.assertEquals(expTypeOfVarscanFile, obsTypeOfVarscanFile) - os.remove(inputFileName) - - def test_parse_other(self): - inputFileName = "%s/commons/core/parsing/test/varscan.tab" % os.environ["REPET_PATH"] - self._writeOther(inputFileName) - launcher = VarscanFile(inputFileName) - try: - launcher.parse() - except CheckerException, e: - checkerExceptionInstance = e - expMessage = "Warning: this line (l.1) is not a valid varscan line !" - obsMessage = checkerExceptionInstance.msg - os.remove(inputFileName) - self.assertEquals(expMessage, obsMessage) - - def test__eq__notEqual(self): - lVarscanHits1 = [VarscanHit("chrom", "12", "T", "G"), VarscanHit("chrom", "14", "T", "G")] - iVarscanFile1 = VarscanFile() - iVarscanFile1.setVarscanHitsList(lVarscanHits1) - lVarscanHits2 = [VarscanHit("chrom", "12", "T", "G"), VarscanHit("chrom", "14", "T", "C")] - iVarscanFile2 = VarscanFile() - iVarscanFile2.setVarscanHitsList(lVarscanHits2) - - self.assertNotEquals(iVarscanFile1, iVarscanFile2) - - def test__eq__equal(self): - lVarscanHits1 = [VarscanHit("chrom", "12", "T", "G"), VarscanHit("chrom", "14", "T", "G")] - iVarscanFile1 = VarscanFile() - iVarscanFile1.setVarscanHitsList(lVarscanHits1) - lVarscanHits2 = [VarscanHit("chrom", "12", "T", "G"), VarscanHit("chrom", "14", "T", "G")] - iVarscanFile2 = VarscanFile() - iVarscanFile2.setVarscanHitsList(lVarscanHits2) - - self.assertEquals(iVarscanFile1, iVarscanFile2) - - def test_selectTypeOfVarscanHitObject_noVarscanHit(self): - launcher = VarscanFile() - launcher.setTypeOfVarscanFile("") - try: - launcher.selectTypeOfVarscanHitObject() - except CheckerException, e: - checkerExceptionInstance = e - expMessage = "Error: no varscan object found !" - obsMessage = checkerExceptionInstance.msg - self.assertEquals(expMessage, obsMessage) - - def test_selectTypeOfVarscanHitObject_VarscanHit(self): - launcher = VarscanFile() - launcher.setTypeOfVarscanFile("Varscan_2_2") - obsVarscanHit = launcher.selectTypeOfVarscanHitObject() - expVarscanHit = VarscanHit() - self.assertEquals(expVarscanHit, obsVarscanHit) - - def test_selectTypeOfVarscanHitObject_VarscanHitWithTag(self): - launcher = VarscanFile() - launcher.setTypeOfVarscanFile("Varscan_2_2_WithTag") - obsVarscanHit = launcher.selectTypeOfVarscanHitObject() - expVarscanHit = VarscanHit_WithTag() - self.assertEquals(expVarscanHit, obsVarscanHit) - - def test_selectTypeOfVarscanHitObject_noVarscanHit_2_2_8(self): - launcher = VarscanFile() - launcher.setTypeOfVarscanFile("Varscan_2_2_8") - obsVarscanHit = launcher.selectTypeOfVarscanHitObject() - expVarscanHit = VarscanHit_v2_2_8() - self.assertEquals(expVarscanHit, obsVarscanHit) - - def test_selectTypeOfVarscanHitObject_noVarscanHit_2_2_8_WithTag(self): - launcher = VarscanFile() - launcher.setTypeOfVarscanFile("Varscan_2_2_8_WithTag") - obsVarscanHit = launcher.selectTypeOfVarscanHitObject() - expVarscanHit = VarscanHit_v2_2_8_WithTag() - self.assertEquals(expVarscanHit, obsVarscanHit) - - def test_createVarscanObjectFromLine_VarscanHit(self): - line = "C02HBa0291P19_LR48\t32\tC\tT\t1\t2\t66,67%\t1\t1\t37\t35\t0.3999999999999999\n" - nbLine = 1 - launcher = VarscanFile() - launcher.setTypeOfVarscanFile("Varscan_2_2") - obsVarscanHit = launcher.createVarscanObjectFromLine(line, nbLine) - expVarscanHit = VarscanHit() - expVarscanHit.setChrom('C02HBa0291P19_LR48') - expVarscanHit.setPosition('32') - expVarscanHit.setRef('C') - expVarscanHit.setVar('T') - self.assertEquals(expVarscanHit, obsVarscanHit) - - def test_createVarscanObjectFromLine_VarscanHitWithTag(self): - line = "C02HBa0291P19_LR48\t32\tC\tT\t1\t2\t66,67%\t1\t1\t37\t35\t0.3999999999999999\tEspeceA\n" - nbLine = 1 - launcher = VarscanFile() - launcher.setTypeOfVarscanFile("Varscan_2_2_WithTag") - obsVarscanHit = launcher.createVarscanObjectFromLine(line, nbLine) - expVarscanHit = VarscanHit_WithTag() - expVarscanHit.setChrom('C02HBa0291P19_LR48') - expVarscanHit.setPosition('32') - expVarscanHit.setRef('C') - expVarscanHit.setVar('T') - expVarscanHit.setTag('EspeceA') - self.assertEquals(expVarscanHit, obsVarscanHit) - - def test_createVarscanObjectFromLine_VarscanHit_v2_2_8(self): - line = "C11HBa0064J13_LR285\t3227\tG\tA\t0\t1\t100%\t0\t1\t0\t54\t0.98\t0\t1\t0\t0\t1\t0\tA\n" - nbLine = 1 - launcher = VarscanFile() - launcher.setTypeOfVarscanFile("Varscan_2_2_8") - obsVarscanHit = launcher.createVarscanObjectFromLine(line, nbLine) - expVarscanHit = VarscanHit_v2_2_8() - expVarscanHit.setChrom('C11HBa0064J13_LR285') - expVarscanHit.setPosition('3227') - expVarscanHit.setRef('G') - expVarscanHit.setVar('A') - expVarscanHit.setCns('A') - self.assertEquals(expVarscanHit, obsVarscanHit) - - def test_createVarscanObjectFromLine_VarscanHit_v2_2_8_WithTag(self): - line = "C11HBa0064J13_LR285\t3227\tG\tA\t0\t1\t100%\t0\t1\t0\t54\t0.98\t0\t1\t0\t0\t1\t0\tA\tEspeceA\n" - nbLine = 1 - launcher = VarscanFile() - launcher.setTypeOfVarscanFile("Varscan_2_2_8_WithTag") - obsVarscanHit = launcher.createVarscanObjectFromLine(line, nbLine) - expVarscanHit = VarscanHit_v2_2_8_WithTag() - expVarscanHit.setChrom('C11HBa0064J13_LR285') - expVarscanHit.setPosition('3227') - expVarscanHit.setRef('G') - expVarscanHit.setVar('A') - expVarscanHit.setCns('A') - expVarscanHit.setTag('EspeceA') - self.assertEquals(expVarscanHit, obsVarscanHit) - - def _writeVarscanFile(self, varscanFileName): - varscanFile = open(varscanFileName, 'w') - varscanFile.write("Chrom\tPosition\tRef\tVar\tReads1\tReads2\tVarFreq\tStrands1\tStrands2\tQual1\tQual2\tPvalue\n") - varscanFile.write("C02HBa0291P19_LR48\t32\tC\tT\t1\t2\t66,67%\t1\t1\t37\t35\t0.3999999999999999\n") - varscanFile.write("C02HBa0291P19_LR48\t34\tA\tT\t1\t2\t66,67%\t1\t1\t40\t34\t0.3999999999999999\n") - varscanFile.close() - - def _writeVarscanFileWithoutHeader(self, varscanFileName): - varscanFile = open(varscanFileName, 'w') - varscanFile.write("C02HBa0291P19_LR48\t32\tC\tT\t1\t2\t66,67%\t1\t1\t37\t35\t0.3999999999999999\n") - varscanFile.write("C02HBa0291P19_LR48\t34\tA\tT\t1\t2\t66,67%\t1\t1\t40\t34\t0.3999999999999999\n") - varscanFile.close() - - def _writeVarscanFileWithTag(self, varscanFileName): - varscanFile = open(varscanFileName, 'w') - varscanFile.write("Chrom\tPosition\tRef\tVar\tReads1\tReads2\tVarFreq\tStrands1\tStrands2\tQual1\tQual2\tPvalue\n") - varscanFile.write("C02HBa0291P19_LR48\t32\tC\tT\t1\t2\t66,67%\t1\t1\t37\t35\t0.3999999999999999\tEspeceA\n") - varscanFile.write("C02HBa0291P19_LR48\t34\tA\tT\t1\t2\t66,67%\t1\t1\t40\t34\t0.3999999999999999\tEspeceA\n") - varscanFile.close() - - def _writeVarscanFile_v2_2_8(self, varscanFileName): - varscanFile = open(varscanFileName, 'w') - varscanFile.write("Chrom\tPosition\tRef\tCons\tReads1\tReads2\tVarFreq\tStrands1\tStrands2\tQual1\tQual2\tPvalue\tMapQual1\tMapQual2\tReads1Plus\tReads1Minus\tReads2Plus\tReads2Minus\tVarAllele\n") - varscanFile.write("C11HBa0064J13_LR285\t3227\tG\tA\t0\t1\t100%\t0\t1\t0\t54\t0.98\t0\t1\t0\t0\t1\t0\tA\n") - varscanFile.write("C11HBa0064J13_LR285\t3230\tG\tT\t0\t1\t100%\t0\t1\t0\t54\t0.98\t0\t1\t0\t0\t1\t0\tT\n") - varscanFile.close() - - def _writeOther(self, fileName): - file = open(fileName, 'w') - file.write('##gff-version 3\n') - file.write('chr16\tBlatToGff\tBES\t21686950\t21687294\t.\t+\t.\tID=MRRE1H001H13FM1;Name=MRRE1H001H13FM1;bes_start=21686950;bes_end=21687294;bes_size=22053297\n') - file.write('chr16\tBlatToGff\tBES\t21736364\t21737069\t.\t+\t.\tID=machin1;Name=machin1;bes_start=21736364;bes_end=21737069;bes_size=22053297\n') - file.write('chr11\tBlatToGff\tBES\t3725876\t3726473\t.\t+\t.\tID=MRRE1H032F08FM1;Name=MRRE1H032F08FM1;bes_start=3725876;bes_end=3726473;bes_size=19818926\n') - file.write('chr11\tBlatToGff\tBES\t3794984\t3795627\t.\t+\t.\tID=machin2;Name=machin2;bes_start=3794984;bes_end=3795627;bes_size=19818926\n') - file.write('chr18\tBlatToGff\tBES\t12067347\t12067719\t.\t+\t.\tID=machin3;Name=machin3;bes_start=12067347;bes_end=12067719;bes_size=29360087\n') - file.close() - -if __name__ == "__main__": - unittest.main() \ No newline at end of file
--- a/commons/core/parsing/test/Test_VarscanFileForGnpSNP.py Mon Apr 29 03:26:07 2013 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,305 +0,0 @@ -import unittest -import os - -from commons.core.parsing.VarscanFileForGnpSNP import VarscanFileForGnpSNP -from commons.core.parsing.VarscanHitForGnpSNP import VarscanHitForGnpSNP - -class Test_VarscanFileForGnpSNP(unittest.TestCase): - - def test__init__(self): - expFastqFileName = "SR.fastq" - expRefFastaFileName = "ref.fasta" - expTaxonName = "Arabidopsis thaliana" - expVarscanFieldSeparator = "\t" - expVarscanHitsList = [] - - iVarscanFileForGnpSNP = VarscanFileForGnpSNP("", expFastqFileName, expRefFastaFileName, expTaxonName) - - obsFastaqFileName = iVarscanFileForGnpSNP.getFastqFileName() - obsRefFastaFileName = iVarscanFileForGnpSNP.getRefFastaFileName() - obsTaxonName = iVarscanFileForGnpSNP.getTaxonName() - obsVarscanFieldSeparator = iVarscanFileForGnpSNP.getVarscanFieldSeparator() - obsVarscanHitsList = iVarscanFileForGnpSNP.getVarscanHitsList() - - self.assertEquals(expFastqFileName, obsFastaqFileName) - self.assertEquals(expRefFastaFileName, obsRefFastaFileName) - self.assertEquals(expTaxonName, obsTaxonName) - self.assertEquals(expVarscanFieldSeparator, obsVarscanFieldSeparator) - self.assertEquals(expVarscanHitsList, obsVarscanHitsList) - - def test_parse(self): - varscanFileName = "varscan.tab" - self._writeVarscanFile(varscanFileName) - - varscanHit1 = VarscanHitForGnpSNP() - varscanHit1.setChrom('C02HBa0291P19_LR48') - varscanHit1.setPosition('32') - varscanHit1.setRef('C') - varscanHit1.setVar('T') - varscanHit1.setReads1('1') - varscanHit1.setReads2('2') - varscanHit1.setVarFreq('66,67%') - varscanHit1.setStrands1('1') - varscanHit1.setStrands2('1') - varscanHit1.setQual1('37') - varscanHit1.setQual2('35') - varscanHit1.setPvalue('0.3999999999999999') - varscanHit1.setGnpSNPRef("C") - varscanHit1.setGnpSNPVar("T") - varscanHit1.setGnpSNPPosition(32) - varscanHit1.setOccurrence(1) - varscanHit1.setPolymType("SNP") - varscanHit1.setPolymLength(1) - - varscanHit2 = VarscanHitForGnpSNP() - varscanHit2.setChrom('C02HBa0291P19_LR48') - varscanHit2.setPosition('34') - varscanHit2.setRef('A') - varscanHit2.setVar('T') - varscanHit2.setReads1('1') - varscanHit2.setReads2('2') - varscanHit2.setVarFreq('66,67%') - varscanHit2.setStrands1('1') - varscanHit2.setStrands2('1') - varscanHit2.setQual1('40') - varscanHit2.setQual2('34') - varscanHit2.setPvalue('0.3999999999999999') - varscanHit2.setGnpSNPRef("A") - varscanHit2.setGnpSNPVar("T") - varscanHit2.setGnpSNPPosition(34) - varscanHit2.setOccurrence(1) - varscanHit2.setPolymType("SNP") - varscanHit2.setPolymLength(1) - expVarscanHitsList = [varscanHit1, varscanHit2] - - iVarscanFileForGnpSNP = VarscanFileForGnpSNP(varscanFileName, '', '', '') - iVarscanFileForGnpSNP.parse() - obsVarscanHitsList = iVarscanFileForGnpSNP.getVarscanHitsList() - os.remove(varscanFileName) - - self.assertEquals(expVarscanHitsList, obsVarscanHitsList) - - def test_parse_with_same_position_and_chr_and_type(self): - varscanFileName = "varscan.tab" - self._writeVarscanFile_2(varscanFileName) - - varscanHit1 = VarscanHitForGnpSNP() - varscanHit1.setChrom('C02HBa0291P19_LR48') - varscanHit1.setPosition('32') - varscanHit1.setRef('C') - varscanHit1.setVar('T') - varscanHit1.setReads1('1') - varscanHit1.setReads2('2') - varscanHit1.setVarFreq('66,67%') - varscanHit1.setStrands1('1') - varscanHit1.setStrands2('1') - varscanHit1.setQual1('37') - varscanHit1.setQual2('35') - varscanHit1.setPvalue('0.3999999999999999') - varscanHit1.setOccurrence(1) - varscanHit1._polymType = "SNP" - varscanHit1._gnpSnp_position = 32 - varscanHit1._gnpSnp_ref = "C" - varscanHit1._gnpSnp_var = "T" - - varscanHit2 = VarscanHitForGnpSNP() - varscanHit2.setChrom('C02HBa0291P19_LR48') - varscanHit2.setPosition('32') - varscanHit2.setRef('C') - varscanHit2.setVar('A') - varscanHit2.setReads1('1') - varscanHit2.setReads2('2') - varscanHit2.setVarFreq('66,67%') - varscanHit2.setStrands1('1') - varscanHit2.setStrands2('1') - varscanHit2.setQual1('37') - varscanHit2.setQual2('35') - varscanHit2.setPvalue('0.3999999999999999') - varscanHit2.setOccurrence(2) - varscanHit2._polymType = "SNP" - varscanHit2._gnpSnp_position = 32 - varscanHit2._gnpSnp_ref = "C" - varscanHit2._gnpSnp_var = "T" - - expVarscanHitsOccurence = varscanHit2._occurrence - - iVarscanFileForGnpSNP = VarscanFileForGnpSNP(varscanFileName, '', '', '') - iVarscanFileForGnpSNP.parse() - obsVarscanHitsList = iVarscanFileForGnpSNP.getVarscanHitsList() - obsVarscanHitsOccurence = obsVarscanHitsList[1]._occurrence - os.remove(varscanFileName) - - self.assertEquals(expVarscanHitsOccurence, obsVarscanHitsOccurence) - - def test_parse_with_same_position_and_chr_and_different_type(self): - varscanFileName = "varscan.tab" - self._writeVarscanFile_3(varscanFileName) - - varscanHit1 = VarscanHitForGnpSNP() - varscanHit1.setChrom('C02HBa0291P19_LR48') - varscanHit1.setPosition('32') - varscanHit1.setRef('C') - varscanHit1.setVar('T') - varscanHit1.setReads1('1') - varscanHit1.setReads2('2') - varscanHit1.setVarFreq('66,67%') - varscanHit1.setStrands1('1') - varscanHit1.setStrands2('1') - varscanHit1.setQual1('37') - varscanHit1.setQual2('35') - varscanHit1.setPvalue('0.3999999999999999') - varscanHit1.setOccurrence(1) - varscanHit1._polymType = "SNP" - varscanHit1._gnpSnp_position = 32 - varscanHit1._gnpSnp_ref = "C" - varscanHit1._gnpSnp_var = "T" - - varscanHit2 = VarscanHitForGnpSNP() - varscanHit2.setChrom('C02HBa0291P19_LR48') - varscanHit2.setPosition('32') - varscanHit2.setRef('C') - varscanHit2.setVar('+A') - varscanHit2.setReads1('1') - varscanHit2.setReads2('2') - varscanHit2.setVarFreq('66,67%') - varscanHit2.setStrands1('1') - varscanHit2.setStrands2('1') - varscanHit2.setQual1('37') - varscanHit2.setQual2('35') - varscanHit2.setPvalue('0.3999999999999999') - varscanHit2.setOccurrence(1) - varscanHit2._polymType = "SNP" - varscanHit2._gnpSnp_position = 32 - varscanHit2._gnpSnp_ref = "C" - varscanHit2._gnpSnp_var = "T" - - expVarscanHitsOccurence = varscanHit2._occurrence - - iVarscanFileForGnpSNP = VarscanFileForGnpSNP(varscanFileName) - iVarscanFileForGnpSNP.parse() - obsVarscanHitsList = iVarscanFileForGnpSNP.getVarscanHitsList() - obsVarscanHitsOccurence = obsVarscanHitsList[1].getOccurrence() - os.remove(varscanFileName) - - self.assertEquals(expVarscanHitsOccurence, obsVarscanHitsOccurence) - - def test_parse_on_occurence(self): - varscanFileName = "varscan.tab" - self._writeVarscanFile_4(varscanFileName) - - expOccurrence1 = 1 - expOccurrence2 = 1 - expOccurrence3 = 2 - expOccurrence4 = 1 - expOccurrence5 = 1 - expOccurrence6 = 2 - - iVarscanFileForGnpSNP = VarscanFileForGnpSNP(varscanFileName) - iVarscanFileForGnpSNP.parse() - obsVarscanHitsList = iVarscanFileForGnpSNP.getVarscanHitsList() - obsOccurrence1 = obsVarscanHitsList[0].getOccurrence() - obsOccurrence2 = obsVarscanHitsList[1].getOccurrence() - obsOccurrence3 = obsVarscanHitsList[2].getOccurrence() - obsOccurrence4 = obsVarscanHitsList[3].getOccurrence() - obsOccurrence5 = obsVarscanHitsList[4].getOccurrence() - obsOccurrence6 = obsVarscanHitsList[5].getOccurrence() - os.remove(varscanFileName) - - self.assertEquals(expOccurrence1, obsOccurrence1) - self.assertEquals(expOccurrence2, obsOccurrence2) - self.assertEquals(expOccurrence3, obsOccurrence3) - self.assertEquals(expOccurrence4, obsOccurrence4) - self.assertEquals(expOccurrence5, obsOccurrence5) - self.assertEquals(expOccurrence6, obsOccurrence6) - - def test__eq__notEqual(self): - fastqFileName = "SR.fastq" - refFastaFileName = "ref.fasta" - taxonName = "Arabidopsis thaliana" - - iVarscanFileForGnpSNP1 = VarscanFileForGnpSNP("", fastqFileName, refFastaFileName, taxonName) - - fastqFileName = "SR.fastq2" - refFastaFileName = "ref.fasta" - taxonName = "Arabidopsis thaliana" - - iVarscanFileForGnpSNP2 = VarscanFileForGnpSNP("", fastqFileName, refFastaFileName, taxonName) - - self.assertFalse(iVarscanFileForGnpSNP1 == iVarscanFileForGnpSNP2) - - def test__eq__equal(self): - fastqFileName = "SR.fastq" - refFastaFileName = "ref.fasta" - taxonName = "Arabidopsis thaliana" - - varscanHit1 = VarscanHitForGnpSNP() - varscanHit1.setChrom('C02HBa0291P19_LR48') - varscanHit1.setPosition('34') - varscanHit1.setRef('A') - varscanHit1.setVar('T') - varscanHit1.setReads1('1') - varscanHit1.setReads2('2') - varscanHit1.setVarFreq('66,67%') - varscanHit1.setStrands1('1') - varscanHit1.setStrands2('1') - varscanHit1.setQual1('40') - varscanHit1.setQual2('34') - varscanHit1.setPvalue('0.3999999999999999') - lVarscanHits1 = [varscanHit1] - - iVarscanFileForGnpSNP1 = VarscanFileForGnpSNP("", fastqFileName, refFastaFileName, taxonName) - iVarscanFileForGnpSNP1.setVarscanHitsList(lVarscanHits1) - - varscanHit2 = VarscanHitForGnpSNP() - varscanHit2.setChrom('C02HBa0291P19_LR48') - varscanHit2.setPosition('34') - varscanHit2.setRef('A') - varscanHit2.setVar('T') - varscanHit2.setReads1('1') - varscanHit2.setReads2('2') - varscanHit2.setVarFreq('66,67%') - varscanHit2.setStrands1('1') - varscanHit2.setStrands2('1') - varscanHit2.setQual1('40') - varscanHit2.setQual2('34') - varscanHit2.setPvalue('0.3999999999999999') - lVarscanHits2 = [varscanHit2] - - iVarscanFileForGnpSNP2 = VarscanFileForGnpSNP("", fastqFileName, refFastaFileName, taxonName) - iVarscanFileForGnpSNP2.setVarscanHitsList(lVarscanHits2) - - self.assertTrue(iVarscanFileForGnpSNP1 == iVarscanFileForGnpSNP2) - - def _writeVarscanFile(self, varscanFileName): - varscanFile = open(varscanFileName, 'w') - varscanFile.write("Chrom\tPosition\tRef\tVar\tReads1\tReads2\tVarFreq\tStrands1\tStrands2\tQual1\tQual2\tPvalue\n") - varscanFile.write("C02HBa0291P19_LR48\t32\tC\tT\t1\t2\t66,67%\t1\t1\t37\t35\t0.3999999999999999\n") - varscanFile.write("C02HBa0291P19_LR48\t34\tA\tT\t1\t2\t66,67%\t1\t1\t40\t34\t0.3999999999999999\n") - varscanFile.close() - - def _writeVarscanFile_2(self, varscanFileName): - varscanFile = open(varscanFileName, 'w') - varscanFile.write("Chrom\tPosition\tRef\tVar\tReads1\tReads2\tVarFreq\tStrands1\tStrands2\tQual1\tQual2\tPvalue\n") - varscanFile.write("C02HBa0291P19_LR48\t32\tC\tT\t1\t2\t66,67%\t1\t1\t37\t35\t0.3999999999999999\n") - varscanFile.write("C02HBa0291P19_LR48\t32\tA\tT\t1\t2\t66,67%\t1\t1\t37\t35\t0.3999999999999999\n") - varscanFile.close() - - def _writeVarscanFile_3(self, varscanFileName): - varscanFile = open(varscanFileName, 'w') - varscanFile.write("Chrom\tPosition\tRef\tVar\tReads1\tReads2\tVarFreq\tStrands1\tStrands2\tQual1\tQual2\tPvalue\n") - varscanFile.write("C02HBa0291P19_LR48\t32\tC\tT\t1\t2\t66,67%\t1\t1\t37\t35\t0.3999999999999999\n") - varscanFile.write("C02HBa0291P19_LR48\t32\tC\t+A\t1\t2\t66,67%\t1\t1\t37\t35\t0.3999999999999999\n") - varscanFile.close() - - def _writeVarscanFile_4(self, varscanFileName): - varscanFile = open(varscanFileName, 'w') - varscanFile.write("Chrom\tPosition\tRef\tVar\tReads1\tReads2\tVarFreq\tStrands1\tStrands2\tQual1\tQual2\tPvalue\n") - varscanFile.write("seqname\t2\tA\tT\t1\t2\t66,67%\t1\t1\t37\t35\t0.3999999999999999\n") - varscanFile.write("seqname\t4\tC\tG\t1\t2\t66,67%\t1\t1\t37\t35\t0.3999999999999999\n") - varscanFile.write("seqname\t4\tC\tA\t1\t2\t66,67%\t1\t1\t37\t35\t0.3999999999999999\n") - varscanFile.write("seqname\t8\tT\tA\t1\t2\t66,67%\t1\t1\t37\t35\t0.3999999999999999\n") - varscanFile.write("chrom\t4\tC\tG\t1\t2\t66,67%\t1\t1\t37\t35\t0.3999999999999999\n") - varscanFile.write("chrom\t4\tC\tA\t1\t2\t66,67%\t1\t1\t37\t35\t0.3999999999999999\n") - varscanFile.close() -if __name__ == "__main__": - unittest.main() \ No newline at end of file
--- a/commons/core/parsing/test/Test_VarscanHit.py Mon Apr 29 03:26:07 2013 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,165 +0,0 @@ -import unittest -from commons.core.parsing.VarscanHit import VarscanHit -from commons.core.checker.CheckerException import CheckerException - -class Test_VarscanHit(unittest.TestCase): - - def test_setAttributesFromString(self): - line = "C02HBa0291P19_LR48\t32\tC\tT\t1\t2\t66,67%\t1\t1\t37\t35\t0.3999999999999999\n" - - expChrom = "C02HBa0291P19_LR48" - expPosition = "32" - expRef = "C" - expVar = "T" - - varscanHit = VarscanHit() - varscanHit.setAttributesFromString(line) - - obsChrom = varscanHit.getChrom() - obsPosition = varscanHit.getPosition() - obsRef = varscanHit.getRef() - obsVar = varscanHit.getVar() - - self.assertEquals(expChrom, obsChrom) - self.assertEquals(expPosition, obsPosition) - self.assertEquals(expRef, obsRef) - self.assertEquals(expVar, obsVar) - - def test_setAttributesFromString_empty_chrom(self): - line = "\t32\tC\tT\t1\t2\t66,67%\t1\t1\t37\t35\t0.3999999999999999\n" - iVarscanHit = VarscanHit() - try : - iVarscanHit.setAttributesFromString(line) - except CheckerException, e: - checkerExceptionInstance = e - - expMessage = "The field Chrom is empty in varscan file in line " - obsMessage = checkerExceptionInstance.msg - - self.assertEquals(expMessage, obsMessage) - - def test_setAttributesFromString_less_than_12_fields(self): - line = "C02HBa0291P19_LR48\t32\tC\tT\t1\t2\t66,67%\t1\t1\t37\n" - iVarscanHit = VarscanHit() - iVarscanHit.setAttributesFromString(line) - self.assertEquals("", iVarscanHit.getQualVar()) - self.assertEquals("", iVarscanHit.getPValue()) - - def test_setAttributes(self): - lResults = ["C02HBa0291P19_LR48", "32", "C", "T", "1", "2", "66,67%", "1", "1", "37", "35", "0.3999999999999999"] - lineNumber = 1 - - expChrom = "C02HBa0291P19_LR48" - expPosition = "32" - expRef = "C" - expVar = "T" - - varscanHit = VarscanHit() - varscanHit.setAttributes(lResults, lineNumber) - - obsChrom = varscanHit.getChrom() - obsPosition = varscanHit.getPosition() - obsRef = varscanHit.getRef() - obsVar = varscanHit.getVar() - - self.assertEquals(expChrom, obsChrom) - self.assertEquals(expPosition, obsPosition) - self.assertEquals(expRef, obsRef) - self.assertEquals(expVar, obsVar) - - def test_setAttributes_empty_chrom(self): - lResults = ["", "", "", "", "", "", "10", "", "", "", "", ""] - lineNumber = 1 - - varscanHit = VarscanHit() - checkerExceptionInstance = None - try: - varscanHit.setAttributes(lResults, lineNumber) - except CheckerException, e: - checkerExceptionInstance = e - - expMessage = "The field Chrom is empty in varscan file in line 1" - obsMessage = checkerExceptionInstance.msg - - self.assertEquals(expMessage, obsMessage) - - def test_setAttributes_empty_position(self): - lResults = ["chrom", "", "", "", "", "", "10", "", "", "", "", ""] - lineNumber = 5 - - varscanHit = VarscanHit() - checkerExceptionInstance = None - try: - varscanHit.setAttributes(lResults, lineNumber) - except CheckerException, e: - checkerExceptionInstance = e - - expMessage = "The field Position is empty in varscan file in line 5" - obsMessage = checkerExceptionInstance.msg - - self.assertEquals(expMessage, obsMessage) - - def test_setAttributes_empty_ref(self): - lResults = ["chrom", "position", "", "", "", "", "10", "", "", "", "", ""] - lineNumber = 5 - - varscanHit = VarscanHit() - checkerExceptionInstance = None - try: - varscanHit.setAttributes(lResults, lineNumber) - except CheckerException, e: - checkerExceptionInstance = e - - expMessage = "The field Ref is empty in varscan file in line 5" - obsMessage = checkerExceptionInstance.msg - - self.assertEquals(expMessage, obsMessage) - - def test_setAttributes_empty_var(self): - lResults = ["chrom", "position", "ref", "", "", "", "10", "", "", "", "", ""] - lineNumber = 5 - - varscanHit = VarscanHit() - checkerExceptionInstance = None - try: - varscanHit.setAttributes(lResults, lineNumber) - except CheckerException, e: - checkerExceptionInstance = e - - expMessage = "The field Var is empty in varscan file in line 5" - obsMessage = checkerExceptionInstance.msg - - self.assertEquals(expMessage, obsMessage) - - def test__eq__notEquals(self): - varscanHit1 = VarscanHit() - varscanHit1.setChrom('C02HBa0291P19_LR48') - varscanHit1.setPosition('32') - varscanHit1.setRef('C') - varscanHit1.setVar('T') - - varscanHit2 = VarscanHit() - varscanHit2.setChrom('C02HBa0291P19_LR48') - varscanHit2.setPosition('34') - varscanHit2.setRef('A') - varscanHit2.setVar('T') - - self.assertFalse(varscanHit1 == varscanHit2) - - def test__eq__Equals(self): - varscanHit1 = VarscanHit() - varscanHit1.setChrom('C02HBa0291P19_LR48') - varscanHit1.setPosition('32') - varscanHit1.setRef('C') - varscanHit1.setVar('T') - - varscanHit2 = VarscanHit() - varscanHit2.setChrom('C02HBa0291P19_LR48') - varscanHit2.setPosition('32') - varscanHit2.setRef('C') - varscanHit2.setVar('T') - - self.assertTrue(varscanHit1 == varscanHit2) - -if __name__ == "__main__": - unittest.main() \ No newline at end of file
--- a/commons/core/parsing/test/Test_VarscanHitForGnpSNP.py Mon Apr 29 03:26:07 2013 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,412 +0,0 @@ -import unittest -from commons.core.parsing.VarscanHitForGnpSNP import VarscanHitForGnpSNP -from commons.core.checker.CheckerException import CheckerException - -class Test_VarscanHitForGnpSNP(unittest.TestCase): - - def test_setAttributes(self): - lResults = ["C02HBa0291P19_LR48", "32", "C", "T", "1", "2", "66,67%", "1", "1", "37", "35", "0.3999999999999999"] - lineNumber = 1 - - expChrom = "C02HBa0291P19_LR48" - expPosition = "32" - expRef = "C" - expVar = "T" - expReads1 = "1" - expReads2 = "2" - expVarFreq = 66.67 - expStrands1 = "1" - expStrands2 = "1" - expQual1 = "37" - expQual2 = "35" - expPvalue = "0.3999999999999999" - - varscanHit = VarscanHitForGnpSNP() - varscanHit.setAttributes(lResults, lineNumber) - - obsChrom = varscanHit.getChrom() - obsPosition = varscanHit.getPosition() - obsRef = varscanHit.getRef() - obsVar = varscanHit.getVar() - obsReads1 = varscanHit.getReads1() - obsReads2 = varscanHit.getReads2() - obsVarFreq = varscanHit.getVarFreq() - obsStrands1 = varscanHit.getStrands1() - obsStrands2 = varscanHit.getStrands2() - obsQual1 = varscanHit.getQual1() - obsQual2 = varscanHit.getQual2() - obsPvalue = varscanHit.getPvalue() - - self.assertEquals(expChrom, obsChrom) - self.assertEquals(expPosition, obsPosition) - self.assertEquals(expRef, obsRef) - self.assertEquals(expVar, obsVar) - self.assertEquals(expReads1, obsReads1) - self.assertEquals(expReads2, obsReads2) - self.assertEquals(expVarFreq, obsVarFreq) - self.assertEquals(expStrands1, obsStrands1) - self.assertEquals(expStrands2, obsStrands2) - self.assertEquals(expQual1, obsQual1) - self.assertEquals(expQual2, obsQual2) - self.assertEquals(expPvalue, obsPvalue) - - def test_setAttributes_empty_chrom(self): - lResults = ["", "", "", "", "", "", "10", "", "", "", "", ""] - lineNumber = 1 - - varscanHit = VarscanHitForGnpSNP() - checkerExceptionInstance = None - try: - varscanHit.setAttributes(lResults, lineNumber) - except CheckerException, e: - checkerExceptionInstance = e - - expMessage = "The field Chrom is empty in varscan file in line 1" - obsMessage = checkerExceptionInstance.msg - - self.assertEquals(expMessage, obsMessage) - - def test_setAttributes_empty_position(self): - lResults = ["chrom", "", "", "", "", "", "10", "", "", "", "", ""] - lineNumber = 5 - - varscanHit = VarscanHitForGnpSNP() - checkerExceptionInstance = None - try: - varscanHit.setAttributes(lResults, lineNumber) - except CheckerException, e: - checkerExceptionInstance = e - - expMessage = "The field Position is empty in varscan file in line 5" - obsMessage = checkerExceptionInstance.msg - - self.assertEquals(expMessage, obsMessage) - - def test_setAttributes_empty_ref(self): - lResults = ["chrom", "position", "", "", "", "", "10", "", "", "", "", ""] - lineNumber = 5 - - varscanHit = VarscanHitForGnpSNP() - checkerExceptionInstance = None - try: - varscanHit.setAttributes(lResults, lineNumber) - except CheckerException, e: - checkerExceptionInstance = e - - expMessage = "The field Ref is empty in varscan file in line 5" - obsMessage = checkerExceptionInstance.msg - - self.assertEquals(expMessage, obsMessage) - - def test_setAttributes_empty_var(self): - lResults = ["chrom", "position", "ref", "", "", "", "10", "", "", "", "", ""] - lineNumber = 5 - - varscanHit = VarscanHitForGnpSNP() - checkerExceptionInstance = None - try: - varscanHit.setAttributes(lResults, lineNumber) - except CheckerException, e: - checkerExceptionInstance = e - - expMessage = "The field Var is empty in varscan file in line 5" - obsMessage = checkerExceptionInstance.msg - - self.assertEquals(expMessage, obsMessage) - - def test_setAttributes_empty_reads1(self): - lResults = ["chrom", "position", "ref", "var", "", "", "10", "", "", "", "", ""] - lineNumber = 5 - - varscanHit = VarscanHitForGnpSNP() - checkerExceptionInstance = None - try: - varscanHit.setAttributes(lResults, lineNumber) - except CheckerException, e: - checkerExceptionInstance = e - - expMessage = "The field Reads1 is empty in varscan file in line 5" - obsMessage = checkerExceptionInstance.msg - - self.assertEquals(expMessage, obsMessage) - - def test_setAttributes_empty_reads2(self): - lResults = ["chrom", "position", "ref", "var", "reads1", "", "10", "", "", "", "", ""] - lineNumber = 5 - - varscanHit = VarscanHitForGnpSNP() - checkerExceptionInstance = None - try: - varscanHit.setAttributes(lResults, lineNumber) - except CheckerException, e: - checkerExceptionInstance = e - - expMessage = "The field Reads2 is empty in varscan file in line 5" - obsMessage = checkerExceptionInstance.msg - - self.assertEquals(expMessage, obsMessage) - - def test_setAttributes_empty_varFreq(self): - lResults = ["chrom", "position", "ref", "var", "reads1", "reads2", "", "", "", "", "", ""] - lineNumber = 5 - - varscanHit = VarscanHitForGnpSNP() - checkerExceptionInstance = None - try: - varscanHit.setAttributes(lResults, lineNumber) - except CheckerException, e: - checkerExceptionInstance = e - - expMessage = "The field VarFreq is empty or in bad format in varscan file in line 5" - obsMessage = checkerExceptionInstance.msg - - self.assertEquals(expMessage, obsMessage) - - def test_setAttributes_empty_strands1(self): - lResults = ["chrom", "position", "ref", "var", "reads1", "reads2", "10", "", "", "", "", ""] - lineNumber = 5 - - varscanHit = VarscanHitForGnpSNP() - checkerExceptionInstance = None - try: - varscanHit.setAttributes(lResults, lineNumber) - except CheckerException, e: - checkerExceptionInstance = e - - expMessage = "The field Strands1 is empty in varscan file in line 5" - obsMessage = checkerExceptionInstance.msg - - self.assertEquals(expMessage, obsMessage) - - def test_setAttributes_empty_strands2(self): - lResults = ["chrom", "position", "ref", "var", "reads1", "reads2", "10", "strands1", "", "", "", ""] - lineNumber = 5 - - varscanHit = VarscanHitForGnpSNP() - checkerExceptionInstance = None - try: - varscanHit.setAttributes(lResults, lineNumber) - except CheckerException, e: - checkerExceptionInstance = e - - expMessage = "The field Strands2 is empty in varscan file in line 5" - obsMessage = checkerExceptionInstance.msg - - self.assertEquals(expMessage, obsMessage) - - def test_setAttributes_empty_qual1(self): - lResults = ["chrom", "position", "ref", "var", "reads1", "reads2", "10", "strands1", "strands2", "", "", ""] - lineNumber = 5 - - varscanHit = VarscanHitForGnpSNP() - checkerExceptionInstance = None - try: - varscanHit.setAttributes(lResults, lineNumber) - except CheckerException, e: - checkerExceptionInstance = e - - expMessage = "The field Qual1 is empty in varscan file in line 5" - obsMessage = checkerExceptionInstance.msg - - self.assertEquals(expMessage, obsMessage) - - def test_setAttributes_empty_qual2(self): - lResults = ["chrom", "position", "ref", "var", "reads1", "reads2", "10", "strands1", "strands2", "qual1", "", ""] - lineNumber = 5 - - varscanHit = VarscanHitForGnpSNP() - checkerExceptionInstance = None - try: - varscanHit.setAttributes(lResults, lineNumber) - except CheckerException, e: - checkerExceptionInstance = e - - expMessage = "The field Qual2 is empty in varscan file in line 5" - obsMessage = checkerExceptionInstance.msg - - self.assertEquals(expMessage, obsMessage) - - def test_setAttributes_empty_pvalue(self): - lResults = ["chrom", "position", "ref", "var", "reads1", "reads2", "10", "strands1", "strands2", "qual1", "qual2", ""] - lineNumber = 5 - - varscanHit = VarscanHitForGnpSNP() - checkerExceptionInstance = None - try: - varscanHit.setAttributes(lResults, lineNumber) - except CheckerException, e: - checkerExceptionInstance = e - - expMessage = "The field Pvalue is empty in varscan file in line 5" - obsMessage = checkerExceptionInstance.msg - - self.assertEquals(expMessage, obsMessage) - - def test__eq__notEquals(self): - varscanHit1 = VarscanHitForGnpSNP() - varscanHit1.setChrom('C02HBa0291P19_LR48') - varscanHit1.setPosition('32') - varscanHit1.setRef('C') - varscanHit1.setVar('T') - varscanHit1.setReads1('1') - varscanHit1.setReads2('2') - varscanHit1.setVarFreq('66,67%') - varscanHit1.setStrands1('1') - varscanHit1.setStrands2('1') - varscanHit1.setQual1('37') - varscanHit1.setQual2('35') - varscanHit1.setPvalue('0.3999999999999999') - - varscanHit2 = VarscanHitForGnpSNP() - varscanHit2.setChrom('C02HBa0291P19_LR48') - varscanHit2.setPosition('34') - varscanHit2.setRef('A') - varscanHit2.setVar('T') - varscanHit2.setReads1('1') - varscanHit2.setReads2('2') - varscanHit2.setVarFreq('66,67%') - varscanHit2.setStrands1('1') - varscanHit2.setStrands2('1') - varscanHit2.setQual1('40') - varscanHit2.setQual2('34') - varscanHit2.setPvalue('0.3999999999999999') - - self.assertFalse(varscanHit1 == varscanHit2) - - def test__eq__Equals(self): - varscanHit1 = VarscanHitForGnpSNP() - varscanHit1.setChrom('C02HBa0291P19_LR48') - varscanHit1.setPosition('32') - varscanHit1.setRef('C') - varscanHit1.setVar('T') - varscanHit1.setReads1('1') - varscanHit1.setReads2('2') - varscanHit1.setVarFreq('66,67%') - varscanHit1.setStrands1('1') - varscanHit1.setStrands2('1') - varscanHit1.setQual1('37') - varscanHit1.setQual2('35') - varscanHit1.setPvalue('0.3999999999999999') - - varscanHit2 = VarscanHitForGnpSNP() - varscanHit2.setChrom('C02HBa0291P19_LR48') - varscanHit2.setPosition('32') - varscanHit2.setRef('C') - varscanHit2.setVar('T') - varscanHit2.setReads1('1') - varscanHit2.setReads2('2') - varscanHit2.setVarFreq('66,67%') - varscanHit2.setStrands1('1') - varscanHit2.setStrands2('1') - varscanHit2.setQual1('37') - varscanHit2.setQual2('35') - varscanHit2.setPvalue('0.3999999999999999') - - self.assertTrue(varscanHit1 == varscanHit2) - - def test_formatAlleles2GnpSnp_for_Deletion(self): - varscanHit1 = VarscanHitForGnpSNP() - varscanHit1.setChrom('C02HBa0291P19_LR48') - varscanHit1.setPosition('32') - varscanHit1.setRef('C') - varscanHit1.setVar('-ATT') - varscanHit1.setReads1('1') - varscanHit1.setReads2('2') - varscanHit1.setVarFreq('66,67%') - varscanHit1.setStrands1('1') - varscanHit1.setStrands2('1') - varscanHit1.setQual1('37') - varscanHit1.setQual2('35') - varscanHit1.setPvalue('0.3999999999999999') - - expPolymType = "DELETION" - expGnpSnpRef = "ATT" - expGnpSnpVar = "---" - expGnpSnpPosition = 33 - - varscanHit1.formatAlleles2GnpSnp() - - obsPolymType = varscanHit1.getPolymType() - obsGnpSnpRef = varscanHit1.getGnpSnpRef() - obsGnpSnpVar = varscanHit1.getGnpSnpVar() - obsGnpSnpPosition = varscanHit1.getGnpSnpPosition() - - self.assertEquals(expPolymType,obsPolymType) - self.assertEquals(expGnpSnpRef, obsGnpSnpRef) - self.assertEquals(expGnpSnpVar, obsGnpSnpVar) - self.assertEquals(expGnpSnpPosition, obsGnpSnpPosition) - - def test_setVarFreq(self): - varscanHit1 = VarscanHitForGnpSNP() - exp = 66.67 - varscanHit1.setVarFreq('66,67%') - obs = varscanHit1.getVarFreq() - self.assertEquals(exp, obs) - - def test_formatAlleles2GnpSnp_for_Insertion(self): - varscanHit1 = VarscanHitForGnpSNP() - varscanHit1.setChrom('C02HBa0291P19_LR48') - varscanHit1.setPosition('32') - varscanHit1.setRef('C') - varscanHit1.setVar('+TG') - varscanHit1.setReads1('1') - varscanHit1.setReads2('2') - varscanHit1.setVarFreq('66,67%') - varscanHit1.setStrands1('1') - varscanHit1.setStrands2('1') - varscanHit1.setQual1('37') - varscanHit1.setQual2('35') - varscanHit1.setPvalue('0.3999999999999999') - - expPolymType = "INSERTION" - expGnpSnpRef = "--" - expGnpSnpVar = "TG" - expGnpSnpPosition = 32 - - varscanHit1.formatAlleles2GnpSnp() - - obsPolymType = varscanHit1.getPolymType() - obsGnpSnpRef = varscanHit1.getGnpSnpRef() - obsGnpSnpVar = varscanHit1.getGnpSnpVar() - obsGnpSnpPosition = varscanHit1.getGnpSnpPosition() - - self.assertEquals(expPolymType,obsPolymType) - self.assertEquals(expGnpSnpRef, obsGnpSnpRef) - self.assertEquals(expGnpSnpVar, obsGnpSnpVar) - self.assertEquals(expGnpSnpPosition, obsGnpSnpPosition) - - def test_formatAlleles2GnpSnp_for_SNP(self): - varscanHit1 = VarscanHitForGnpSNP() - varscanHit1.setChrom('C02HBa0291P19_LR48') - varscanHit1.setPosition('12') - varscanHit1.setRef('G') - varscanHit1.setVar('T') - varscanHit1.setReads1('1') - varscanHit1.setReads2('2') - varscanHit1.setVarFreq('66,67%') - varscanHit1.setStrands1('1') - varscanHit1.setStrands2('1') - varscanHit1.setQual1('37') - varscanHit1.setQual2('35') - varscanHit1.setPvalue('0.3999999999999999') - - expPolymType = "SNP" - expGnpSnpRef = "G" - expGnpSnpVar = "T" - expGnpSnpPosition = 12 - - varscanHit1.formatAlleles2GnpSnp() - - obsPolymType = varscanHit1.getPolymType() - obsGnpSnpRef = varscanHit1.getGnpSnpRef() - obsGnpSnpVar = varscanHit1.getGnpSnpVar() - obsGnpSnpPosition = varscanHit1.getGnpSnpPosition() - - self.assertEquals(expPolymType,obsPolymType) - self.assertEquals(expGnpSnpRef, obsGnpSnpRef) - self.assertEquals(expGnpSnpVar, obsGnpSnpVar) - self.assertEquals(expGnpSnpPosition, obsGnpSnpPosition) - - -if __name__ == "__main__": - unittest.main() \ No newline at end of file
--- a/commons/core/parsing/test/Test_VarscanHit_WithTag.py Mon Apr 29 03:26:07 2013 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,212 +0,0 @@ -import unittest -from commons.core.checker.CheckerException import CheckerException -from commons.core.parsing.VarscanHit_WithTag import VarscanHit_WithTag - -class Test_VarscanHit_WithTag(unittest.TestCase): - - def test_setAttributesFromString(self): - line = "chr1\t1804\tT\tC\t0\t1\t100%\t0\t1\t0\t53\t0.98\tEspeceA\n" - - expChrom = "chr1" - expPosition = "1804" - expRef = "T" - expVar = "C" - expReadsRef = "0" - expReadsVar = "1" - expVarFreq = "100%" - expStrandsRef = "0" - expStrandsVar = "1" - expQualRef = "0" - expQualVar = "53" - expPValue = "0.98" - expTag = "EspeceA" - - varscanHit = VarscanHit_WithTag() - varscanHit.setAttributesFromString(line) - - obsChrom = varscanHit.getChrom() - obsPosition = varscanHit.getPosition() - obsRef = varscanHit.getRef() - obsVar = varscanHit.getVar() - obsReadsRef = varscanHit.getReadsRef() - obsReadsVar = varscanHit.getReadsVar() - obsVarFreq = varscanHit.getVarFreq() - obsStrandsRef = varscanHit.getStrandsRef() - obsStrandsVar = varscanHit.getStrandsVar() - obsQualRef = varscanHit.getQualRef() - obsQualVar = varscanHit.getQualVar() - obsPValue = varscanHit.getPValue() - obsTag = varscanHit.getTag() - - self.assertEquals(expChrom, obsChrom) - self.assertEquals(expPosition, obsPosition) - self.assertEquals(expRef, obsRef) - self.assertEquals(expVar, obsVar) - self.assertEquals(expReadsRef, obsReadsRef) - self.assertEquals(expReadsVar, obsReadsVar) - self.assertEquals(expVarFreq, obsVarFreq) - self.assertEquals(expStrandsRef, obsStrandsRef) - self.assertEquals(expStrandsVar, obsStrandsVar) - self.assertEquals(expQualRef, obsQualRef) - self.assertEquals(expQualVar, obsQualVar) - self.assertEquals(expPValue, obsPValue) - self.assertEquals(expTag, obsTag) - - def test_setAttributesFromString_empty_chrom(self): - line = "\t1804\tT\tC\t0\t1\t100%\t0\t1\t0\t53\t0.98\tEspeceA\n" - varscanHit = VarscanHit_WithTag() - try : - varscanHit.setAttributesFromString(line) - except CheckerException, e: - checkerExceptionInstance = e - expMessage = "The field Chrom is empty in varscan file in line " - obsMessage = checkerExceptionInstance.msg - self.assertEquals(expMessage, obsMessage) - - def test_setAttributes(self): - lResults = ['chr1', '1804', 'T', 'C', '0', '1', '100%', '0', '1', '0', '53', '0.98', 'EspeceA'] - lineNumber = 1 - - expChrom = "chr1" - expPosition = "1804" - expRef = "T" - expVar = "C" - expReadsRef = "0" - expReadsVar = "1" - expVarFreq = "100%" - expStrandsRef = "0" - expStrandsVar = "1" - expQualRef = "0" - expQualVar = "53" - expPValue = "0.98" - expTag = "EspeceA" - - varscanHit = VarscanHit_WithTag() - varscanHit.setAttributes(lResults, lineNumber) - - obsChrom = varscanHit.getChrom() - obsPosition = varscanHit.getPosition() - obsRef = varscanHit.getRef() - obsVar = varscanHit.getVar() - obsReadsRef = varscanHit.getReadsRef() - obsReadsVar = varscanHit.getReadsVar() - obsVarFreq = varscanHit.getVarFreq() - obsStrandsRef = varscanHit.getStrandsRef() - obsStrandsVar = varscanHit.getStrandsVar() - obsQualRef = varscanHit.getQualRef() - obsQualVar = varscanHit.getQualVar() - obsPValue = varscanHit.getPValue() - obsTag = varscanHit.getTag() - - self.assertEquals(expChrom, obsChrom) - self.assertEquals(expPosition, obsPosition) - self.assertEquals(expRef, obsRef) - self.assertEquals(expVar, obsVar) - self.assertEquals(expReadsRef, obsReadsRef) - self.assertEquals(expReadsVar, obsReadsVar) - self.assertEquals(expVarFreq, obsVarFreq) - self.assertEquals(expStrandsRef, obsStrandsRef) - self.assertEquals(expStrandsVar, obsStrandsVar) - self.assertEquals(expQualRef, obsQualRef) - self.assertEquals(expQualVar, obsQualVar) - self.assertEquals(expPValue, obsPValue) - self.assertEquals(expTag, obsTag) - - def test_setAttributes_empty_chrom(self): - lResults = ['', '1804', 'T', 'C', '0', '1', '100%', '0', '1', '0', '53', '0.98', 'EspeceA'] - lineNumber = 1 - - varscanHit = VarscanHit_WithTag() - checkerExceptionInstance = None - try: - varscanHit.setAttributes(lResults, lineNumber) - except CheckerException, e: - checkerExceptionInstance = e - - expMessage = "The field Chrom is empty in varscan file in line 1" - obsMessage = checkerExceptionInstance.msg - - self.assertEquals(expMessage, obsMessage) - - def test_setAttributes_empty_position(self): - lResults = ['chr1', '', 'T', 'C', '0', '1', '100%', '0', '1', '0', '53', '0.98', 'EspeceA'] - lineNumber = 1 - - varscanHit = VarscanHit_WithTag() - checkerExceptionInstance = None - try: - varscanHit.setAttributes(lResults, lineNumber) - except CheckerException, e: - checkerExceptionInstance = e - - expMessage = "The field Position is empty in varscan file in line 1" - obsMessage = checkerExceptionInstance.msg - - self.assertEquals(expMessage, obsMessage) - - def test_setAttributes_empty_ref(self): - lResults = ['chr1', '1000', '', 'C', '0', '1', '100%', '0', '1', '0', '53', '0.98', 'EspeceA'] - lineNumber = 1 - - varscanHit = VarscanHit_WithTag() - checkerExceptionInstance = None - try: - varscanHit.setAttributes(lResults, lineNumber) - except CheckerException, e: - checkerExceptionInstance = e - - expMessage = "The field Ref is empty in varscan file in line 1" - obsMessage = checkerExceptionInstance.msg - - self.assertEquals(expMessage, obsMessage) - - def test_setAttributes_empty_cns(self): - lResults = ['chr1', '1000', 'T', '', '0', '1', '100%', '0', '1', '0', '53', '0.98', 'EspeceA'] - lineNumber = 1 - - varscanHit = VarscanHit_WithTag() - checkerExceptionInstance = None - try: - varscanHit.setAttributes(lResults, lineNumber) - except CheckerException, e: - checkerExceptionInstance = e - - expMessage = "The field Var is empty in varscan file in line 1" - obsMessage = checkerExceptionInstance.msg - - self.assertEquals(expMessage, obsMessage) - - def test__eq__notEquals(self): - varscanHit1 = VarscanHit_WithTag() - varscanHit1.setChrom('C02HBa0291P19_LR48') - varscanHit1.setPosition('34') - varscanHit1.setRef('A') - varscanHit1.setVar('T') - varscanHit1.setVar('EspeceA') - - varscanHit2 = VarscanHit_WithTag() - varscanHit2.setChrom('C02HBa0291P19_LR48') - varscanHit2.setPosition('34') - varscanHit2.setRef('A') - varscanHit2.setVar('T') - varscanHit2.setVar('EspeceB') - - self.assertFalse(varscanHit1 == varscanHit2) - - def test__eq__Equals(self): - varscanHit1 = VarscanHit_WithTag() - varscanHit1.setChrom('C02HBa0291P19_LR48') - varscanHit1.setPosition('34') - varscanHit1.setRef('A') - varscanHit1.setVar('T') - varscanHit1.setVar('EspeceA') - - varscanHit2 = VarscanHit_WithTag() - varscanHit2.setChrom('C02HBa0291P19_LR48') - varscanHit2.setPosition('34') - varscanHit2.setRef('A') - varscanHit2.setVar('T') - varscanHit2.setVar('EspeceA') - -if __name__ == "__main__": - unittest.main() \ No newline at end of file
--- a/commons/core/parsing/test/Test_VarscanHit_v2_2_8.py Mon Apr 29 03:26:07 2013 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,290 +0,0 @@ -import unittest -from commons.core.checker.CheckerException import CheckerException -from commons.core.parsing.VarscanHit_v2_2_8 import VarscanHit_v2_2_8 -from commons.core.parsing.VarscanHit import VarscanHit - -class Test_VarscanHit_v2_2_8(unittest.TestCase): - - def test_setAttributesFromString(self): - line = "chr1\t1804\tT\tC\t0\t1\t100%\t0\t1\t0\t53\t0.98\t0\t1\t0\t0\t1\t0\tC\n" - - expChrom = "chr1" - expPosition = "1804" - expRef = "T" - expCns = "C" - expReadsRef = "0" - expReadsVar = "1" - expVarFreq = "100%" - expStrandsRef = "0" - expStrandsVar = "1" - expQualRef = "0" - expQualVar = "53" - expPValue = "0.98" - expMapQualRef = "0" - expMapQualVar = "1" - expReadsRefPlus = "0" - expReadsRefMinus = "0" - expReadsVarPlus = "1" - expReadsVarMinus = "0" - expVar = "C" - - varscanHit = VarscanHit_v2_2_8() - varscanHit.setAttributesFromString(line) - - obsChrom = varscanHit.getChrom() - obsPosition = varscanHit.getPosition() - obsRef = varscanHit.getRef() - obsCns = varscanHit.getCns() - obsReadsRef = varscanHit.getReadsRef() - obsReadsVar = varscanHit.getReadsVar() - obsVarFreq = varscanHit.getVarFreq() - obsStrandsRef = varscanHit.getStrandsRef() - obsStrandsVar = varscanHit.getStrandsVar() - obsQualRef = varscanHit.getQualRef() - obsQualVar = varscanHit.getQualVar() - obsPValue = varscanHit.getPValue() - obsMapQualRef = varscanHit.getMapQualRef() - obsMapQualVar = varscanHit.getMapQualVar() - obsReadsRefPlus = varscanHit.getReadsRefPlus() - obsReadsRefMinus = varscanHit.getReadsRefMinus() - obsReadsVarPlus = varscanHit.getReadsVarPlus() - obsReadsVarMinus = varscanHit.getReadsVarMinus() - obsVar = varscanHit.getVar() - - self.assertEquals(expChrom, obsChrom) - self.assertEquals(expPosition, obsPosition) - self.assertEquals(expRef, obsRef) - self.assertEquals(expCns, obsCns) - self.assertEquals(expReadsRef, obsReadsRef) - self.assertEquals(expReadsVar, obsReadsVar) - self.assertEquals(expVarFreq, obsVarFreq) - self.assertEquals(expStrandsRef, obsStrandsRef) - self.assertEquals(expStrandsVar, obsStrandsVar) - self.assertEquals(expQualRef, obsQualRef) - self.assertEquals(expQualVar, obsQualVar) - self.assertEquals(expPValue, obsPValue) - self.assertEquals(expMapQualRef, obsMapQualRef) - self.assertEquals(expMapQualVar, obsMapQualVar) - self.assertEquals(expReadsRefPlus, obsReadsRefPlus) - self.assertEquals(expReadsRefMinus, obsReadsRefMinus) - self.assertEquals(expReadsVarPlus, obsReadsVarPlus) - self.assertEquals(expReadsVarMinus, obsReadsVarMinus) - self.assertEquals(expVar, obsVar) - - def test_setAttributesFromString_empty_chrom(self): - line = "\t1804\tT\tC\t0\t1\t100%\t0\t1\t0\t53\t0.98\t0\t1\t0\t0\t1\t0\tC\n" - varscanHit = VarscanHit_v2_2_8() - try : - varscanHit.setAttributesFromString(line) - except CheckerException, e: - checkerExceptionInstance = e - expMessage = "The field Chrom is empty in varscan file in line " - obsMessage = checkerExceptionInstance.msg - self.assertEquals(expMessage, obsMessage) - - def test_setAttributesFromString_less_than_19_fields(self): - line = "chr1\t1804\tT\tC\t0\t1\t100%\t0\t1\t53\t0.98\t0\t1\t0\t0\t1\t0\tC\n" - varscanHit = VarscanHit_v2_2_8() - try : - varscanHit.setAttributesFromString(line) - except CheckerException, e: - checkerExceptionInstance = e - expMessage = "This varscan line (l.) is not complete" - obsMessage = checkerExceptionInstance.msg - self.assertEquals(expMessage, obsMessage) - - def test_setAttributes(self): - lResults = ['chr1', '1804', 'T', 'C', '0', '1', '100%', '0', '1', '0', '53', '0.98', '0', '1', '0', '0', '1', '0', 'C'] - lineNumber = 1 - - expChrom = "chr1" - expPosition = "1804" - expRef = "T" - expCns = "C" - expReadsRef = "0" - expReadsVar = "1" - expVarFreq = "100%" - expStrandsRef = "0" - expStrandsVar = "1" - expQualRef = "0" - expQualVar = "53" - expPValue = "0.98" - expMapQualRef = "0" - expMapQualVar = "1" - expReadsRefPlus = "0" - expReadsRefMinus = "0" - expReadsVarPlus = "1" - expReadsVarMinus = "0" - expVar = "C" - - varscanHit = VarscanHit_v2_2_8() - varscanHit.setAttributes(lResults, lineNumber) - - obsChrom = varscanHit.getChrom() - obsPosition = varscanHit.getPosition() - obsRef = varscanHit.getRef() - obsCns = varscanHit.getCns() - obsReadsRef = varscanHit.getReadsRef() - obsReadsVar = varscanHit.getReadsVar() - obsVarFreq = varscanHit.getVarFreq() - obsStrandsRef = varscanHit.getStrandsRef() - obsStrandsVar = varscanHit.getStrandsVar() - obsQualRef = varscanHit.getQualRef() - obsQualVar = varscanHit.getQualVar() - obsPValue = varscanHit.getPValue() - obsMapQualRef = varscanHit.getMapQualRef() - obsMapQualVar = varscanHit.getMapQualVar() - obsReadsRefPlus = varscanHit.getReadsRefPlus() - obsReadsRefMinus = varscanHit.getReadsRefMinus() - obsReadsVarPlus = varscanHit.getReadsVarPlus() - obsReadsVarMinus = varscanHit.getReadsVarMinus() - obsVar = varscanHit.getVar() - - self.assertEquals(expChrom, obsChrom) - self.assertEquals(expPosition, obsPosition) - self.assertEquals(expRef, obsRef) - self.assertEquals(expCns, obsCns) - self.assertEquals(expReadsRef, obsReadsRef) - self.assertEquals(expReadsVar, obsReadsVar) - self.assertEquals(expVarFreq, obsVarFreq) - self.assertEquals(expStrandsRef, obsStrandsRef) - self.assertEquals(expStrandsVar, obsStrandsVar) - self.assertEquals(expQualRef, obsQualRef) - self.assertEquals(expQualVar, obsQualVar) - self.assertEquals(expPValue, obsPValue) - self.assertEquals(expMapQualRef, obsMapQualRef) - self.assertEquals(expMapQualVar, obsMapQualVar) - self.assertEquals(expReadsRefPlus, obsReadsRefPlus) - self.assertEquals(expReadsRefMinus, obsReadsRefMinus) - self.assertEquals(expReadsVarPlus, obsReadsVarPlus) - self.assertEquals(expReadsVarMinus, obsReadsVarMinus) - self.assertEquals(expVar, obsVar) - - def test_setAttributes_empty_chrom(self): - lResults = ['', '1804', 'T', 'C', '0', '1', '100%', '0', '1', '0', '53', '0.98', '0', '1', '0', '0', '1', '0', 'C'] - lineNumber = 1 - - varscanHit = VarscanHit_v2_2_8() - checkerExceptionInstance = None - try: - varscanHit.setAttributes(lResults, lineNumber) - except CheckerException, e: - checkerExceptionInstance = e - - expMessage = "The field Chrom is empty in varscan file in line 1" - obsMessage = checkerExceptionInstance.msg - - self.assertEquals(expMessage, obsMessage) - - def test_setAttributes_empty_position(self): - lResults = ['chr1', '', 'T', 'C', '0', '1', '100%', '0', '1', '0', '53', '0.98', '0', '1', '0', '0', '1', '0', 'C'] - lineNumber = 1 - - varscanHit = VarscanHit_v2_2_8() - checkerExceptionInstance = None - try: - varscanHit.setAttributes(lResults, lineNumber) - except CheckerException, e: - checkerExceptionInstance = e - - expMessage = "The field Position is empty in varscan file in line 1" - obsMessage = checkerExceptionInstance.msg - - self.assertEquals(expMessage, obsMessage) - - def test_setAttributes_empty_ref(self): - lResults = ['chr1', '1000', '', 'C', '0', '1', '100%', '0', '1', '0', '53', '0.98', '0', '1', '0', '0', '1', '0', 'C'] - lineNumber = 1 - - varscanHit = VarscanHit_v2_2_8() - checkerExceptionInstance = None - try: - varscanHit.setAttributes(lResults, lineNumber) - except CheckerException, e: - checkerExceptionInstance = e - - expMessage = "The field Ref is empty in varscan file in line 1" - obsMessage = checkerExceptionInstance.msg - - self.assertEquals(expMessage, obsMessage) - - def test_setAttributes_empty_cns(self): - lResults = ['chr1', '1000', 'T', '', '0', '1', '100%', '0', '1', '0', '53', '0.98', '0', '1', '0', '0', '1', '0', 'C'] - lineNumber = 1 - - varscanHit = VarscanHit_v2_2_8() - checkerExceptionInstance = None - try: - varscanHit.setAttributes(lResults, lineNumber) - except CheckerException, e: - checkerExceptionInstance = e - - expMessage = "The field Cons is empty in varscan file in line 1" - obsMessage = checkerExceptionInstance.msg - - self.assertEquals(expMessage, obsMessage) - - def test_setAttributes_empty_var(self): - lResults = ['chr1', '1000', 'T', 'C', '0', '1', '100%', '0', '1', '0', '53', '0.98', '0', '1', '0', '0', '1', '0', ''] - lineNumber = 1 - - varscanHit = VarscanHit_v2_2_8() - checkerExceptionInstance = None - try: - varscanHit.setAttributes(lResults, lineNumber) - except CheckerException, e: - checkerExceptionInstance = e - - expMessage = "The field varAllele is empty in varscan file in line 1" - obsMessage = checkerExceptionInstance.msg - - self.assertEquals(expMessage, obsMessage) - - def test__eq__notEquals(self): - varscanHit1 = VarscanHit_v2_2_8() - varscanHit1.setChrom('C02HBa0291P19_LR48') - varscanHit1.setPosition('32') - varscanHit1.setRef('C') - varscanHit1.setCns('T') - varscanHit1.setVar('T') - - varscanHit2 = VarscanHit_v2_2_8() - varscanHit2.setChrom('C02HBa0291P19_LR48') - varscanHit2.setPosition('34') - varscanHit2.setRef('A') - varscanHit2.setCns('T') - varscanHit2.setVar('T') - - self.assertFalse(varscanHit1 == varscanHit2) - - def test__eq__Equals(self): - varscanHit1 = VarscanHit_v2_2_8() - varscanHit1.setChrom('C02HBa0291P19_LR48') - varscanHit1.setPosition('34') - varscanHit1.setRef('A') - varscanHit1.setCns('T') - varscanHit1.setVar('T') - - varscanHit2 = VarscanHit_v2_2_8() - varscanHit2.setChrom('C02HBa0291P19_LR48') - varscanHit2.setPosition('34') - varscanHit2.setRef('A') - varscanHit2.setCns('T') - varscanHit2.setVar('T') - - self.assertTrue(varscanHit1 == varscanHit2) - - def test_convertVarscanHit_v2_2_8_To_VarscanHit(self): - line = "chr1\t1804\tT\tC\t0\t1\t100%\t0\t1\t0\t53\t0.98\t0\t1\t0\t0\t1\t0\tC\n" - iVarscanHit_v2_2_8_WithTag = VarscanHit_v2_2_8() - iVarscanHit_v2_2_8_WithTag.setAttributesFromString(line) - obsVarcanHit_WithTag = iVarscanHit_v2_2_8_WithTag.convertVarscanHit_v2_2_8_To_VarscanHit() - - line = "chr1\t1804\tT\tC\t0\t1\t100%\t0\t1\t0\t53\t0.98\n" - expVarcanHit_WithTag = VarscanHit() - expVarcanHit_WithTag.setAttributesFromString(line) - - self.assertEquals(expVarcanHit_WithTag, obsVarcanHit_WithTag) - -if __name__ == "__main__": - unittest.main() \ No newline at end of file
--- a/commons/core/parsing/test/Test_VarscanHit_v2_2_8_WithTag.py Mon Apr 29 03:26:07 2013 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,300 +0,0 @@ -import unittest -from commons.core.checker.CheckerException import CheckerException -from commons.core.parsing.VarscanHit_v2_2_8_WithTag import VarscanHit_v2_2_8_WithTag -from commons.core.parsing.VarscanHit_WithTag import VarscanHit_WithTag - -class Test_VarscanHit_v2_2_8_WithTag(unittest.TestCase): - - def test_setAttributesFromString(self): - line = "chr1\t1804\tT\tC\t0\t1\t100%\t0\t1\t0\t53\t0.98\t0\t1\t0\t0\t1\t0\tC\tEspeceA\n" - - expChrom = "chr1" - expPosition = "1804" - expRef = "T" - expCns = "C" - expReadsRef = "0" - expReadsVar = "1" - expVarFreq = "100%" - expStrandsRef = "0" - expStrandsVar = "1" - expQualRef = "0" - expQualVar = "53" - expPValue = "0.98" - expMapQualRef = "0" - expMapQualVar = "1" - expReadsRefPlus = "0" - expReadsRefMinus = "0" - expReadsVarPlus = "1" - expReadsVarMinus = "0" - expVar = "C" - expTag = "EspeceA" - - varscanHit = VarscanHit_v2_2_8_WithTag() - varscanHit.setAttributesFromString(line) - - obsChrom = varscanHit.getChrom() - obsPosition = varscanHit.getPosition() - obsRef = varscanHit.getRef() - obsCns = varscanHit.getCns() - obsReadsRef = varscanHit.getReadsRef() - obsReadsVar = varscanHit.getReadsVar() - obsVarFreq = varscanHit.getVarFreq() - obsStrandsRef = varscanHit.getStrandsRef() - obsStrandsVar = varscanHit.getStrandsVar() - obsQualRef = varscanHit.getQualRef() - obsQualVar = varscanHit.getQualVar() - obsPValue = varscanHit.getPValue() - obsMapQualRef = varscanHit.getMapQualRef() - obsMapQualVar = varscanHit.getMapQualVar() - obsReadsRefPlus = varscanHit.getReadsRefPlus() - obsReadsRefMinus = varscanHit.getReadsRefMinus() - obsReadsVarPlus = varscanHit.getReadsVarPlus() - obsReadsVarMinus = varscanHit.getReadsVarMinus() - obsVar = varscanHit.getVar() - obsTag = varscanHit.getTag() - - self.assertEquals(expChrom, obsChrom) - self.assertEquals(expPosition, obsPosition) - self.assertEquals(expRef, obsRef) - self.assertEquals(expCns, obsCns) - self.assertEquals(expReadsRef, obsReadsRef) - self.assertEquals(expReadsVar, obsReadsVar) - self.assertEquals(expVarFreq, obsVarFreq) - self.assertEquals(expStrandsRef, obsStrandsRef) - self.assertEquals(expStrandsVar, obsStrandsVar) - self.assertEquals(expQualRef, obsQualRef) - self.assertEquals(expQualVar, obsQualVar) - self.assertEquals(expPValue, obsPValue) - self.assertEquals(expMapQualRef, obsMapQualRef) - self.assertEquals(expMapQualVar, obsMapQualVar) - self.assertEquals(expReadsRefPlus, obsReadsRefPlus) - self.assertEquals(expReadsRefMinus, obsReadsRefMinus) - self.assertEquals(expReadsVarPlus, obsReadsVarPlus) - self.assertEquals(expReadsVarMinus, obsReadsVarMinus) - self.assertEquals(expVar, obsVar) - self.assertEquals(expTag, obsTag) - - def test_setAttributesFromString_empty_chrom(self): - line = "\t1804\tT\tC\t0\t1\t100%\t0\t1\t0\t53\t0.98\t0\t1\t0\t0\t1\t0\tC\tEspeceA\n" - varscanHit = VarscanHit_v2_2_8_WithTag() - try : - varscanHit.setAttributesFromString(line) - except CheckerException, e: - checkerExceptionInstance = e - expMessage = "The field Chrom is empty in varscan file in line " - obsMessage = checkerExceptionInstance.msg - self.assertEquals(expMessage, obsMessage) - - def test_setAttributesFromString_less_than_20_fields(self): - line = "chr1\t1804\tT\tC\t0\t1\t100%\t0\t1\t53\t0.98\t0\t1\t0\t0\t1\t0\tC\tEspeceA\n" - varscanHit = VarscanHit_v2_2_8_WithTag() - try : - varscanHit.setAttributesFromString(line) - except CheckerException, e: - checkerExceptionInstance = e - expMessage = "This varscan line (l.) is not complete" - obsMessage = checkerExceptionInstance.msg - self.assertEquals(expMessage, obsMessage) - - def test_setAttributes(self): - lResults = ['chr1', '1804', 'T', 'C', '0', '1', '100%', '0', '1', '0', '53', '0.98', '0', '1', '0', '0', '1', '0', 'C', 'EspeceA'] - lineNumber = 1 - - expChrom = "chr1" - expPosition = "1804" - expRef = "T" - expCns = "C" - expReadsRef = "0" - expReadsVar = "1" - expVarFreq = "100%" - expStrandsRef = "0" - expStrandsVar = "1" - expQualRef = "0" - expQualVar = "53" - expPValue = "0.98" - expMapQualRef = "0" - expMapQualVar = "1" - expReadsRefPlus = "0" - expReadsRefMinus = "0" - expReadsVarPlus = "1" - expReadsVarMinus = "0" - expVar = "C" - expTag = "EspeceA" - - varscanHit = VarscanHit_v2_2_8_WithTag() - varscanHit.setAttributes(lResults, lineNumber) - - obsChrom = varscanHit.getChrom() - obsPosition = varscanHit.getPosition() - obsRef = varscanHit.getRef() - obsCns = varscanHit.getCns() - obsReadsRef = varscanHit.getReadsRef() - obsReadsVar = varscanHit.getReadsVar() - obsVarFreq = varscanHit.getVarFreq() - obsStrandsRef = varscanHit.getStrandsRef() - obsStrandsVar = varscanHit.getStrandsVar() - obsQualRef = varscanHit.getQualRef() - obsQualVar = varscanHit.getQualVar() - obsPValue = varscanHit.getPValue() - obsMapQualRef = varscanHit.getMapQualRef() - obsMapQualVar = varscanHit.getMapQualVar() - obsReadsRefPlus = varscanHit.getReadsRefPlus() - obsReadsRefMinus = varscanHit.getReadsRefMinus() - obsReadsVarPlus = varscanHit.getReadsVarPlus() - obsReadsVarMinus = varscanHit.getReadsVarMinus() - obsVar = varscanHit.getVar() - obsTag = varscanHit.getTag() - - self.assertEquals(expChrom, obsChrom) - self.assertEquals(expPosition, obsPosition) - self.assertEquals(expRef, obsRef) - self.assertEquals(expCns, obsCns) - self.assertEquals(expReadsRef, obsReadsRef) - self.assertEquals(expReadsVar, obsReadsVar) - self.assertEquals(expVarFreq, obsVarFreq) - self.assertEquals(expStrandsRef, obsStrandsRef) - self.assertEquals(expStrandsVar, obsStrandsVar) - self.assertEquals(expQualRef, obsQualRef) - self.assertEquals(expQualVar, obsQualVar) - self.assertEquals(expPValue, obsPValue) - self.assertEquals(expMapQualRef, obsMapQualRef) - self.assertEquals(expMapQualVar, obsMapQualVar) - self.assertEquals(expReadsRefPlus, obsReadsRefPlus) - self.assertEquals(expReadsRefMinus, obsReadsRefMinus) - self.assertEquals(expReadsVarPlus, obsReadsVarPlus) - self.assertEquals(expReadsVarMinus, obsReadsVarMinus) - self.assertEquals(expVar, obsVar) - self.assertEquals(expTag, obsTag) - - def test_setAttributes_empty_chrom(self): - lResults = ['', '1804', 'T', 'C', '0', '1', '100%', '0', '1', '0', '53', '0.98', '0', '1', '0', '0', '1', '0', 'C', 'EspeceA'] - lineNumber = 1 - - varscanHit = VarscanHit_v2_2_8_WithTag() - checkerExceptionInstance = None - try: - varscanHit.setAttributes(lResults, lineNumber) - except CheckerException, e: - checkerExceptionInstance = e - - expMessage = "The field Chrom is empty in varscan file in line 1" - obsMessage = checkerExceptionInstance.msg - - self.assertEquals(expMessage, obsMessage) - - def test_setAttributes_empty_position(self): - lResults = ['chr1', '', 'T', 'C', '0', '1', '100%', '0', '1', '0', '53', '0.98', '0', '1', '0', '0', '1', '0', 'C', 'EspeceA'] - lineNumber = 1 - - varscanHit = VarscanHit_v2_2_8_WithTag() - checkerExceptionInstance = None - try: - varscanHit.setAttributes(lResults, lineNumber) - except CheckerException, e: - checkerExceptionInstance = e - - expMessage = "The field Position is empty in varscan file in line 1" - obsMessage = checkerExceptionInstance.msg - - self.assertEquals(expMessage, obsMessage) - - def test_setAttributes_empty_ref(self): - lResults = ['chr1', '1000', '', 'C', '0', '1', '100%', '0', '1', '0', '53', '0.98', '0', '1', '0', '0', '1', '0', 'C', 'EspeceA'] - lineNumber = 1 - - varscanHit = VarscanHit_v2_2_8_WithTag() - checkerExceptionInstance = None - try: - varscanHit.setAttributes(lResults, lineNumber) - except CheckerException, e: - checkerExceptionInstance = e - - expMessage = "The field Ref is empty in varscan file in line 1" - obsMessage = checkerExceptionInstance.msg - - self.assertEquals(expMessage, obsMessage) - - def test_setAttributes_empty_cns(self): - lResults = ['chr1', '1000', 'T', '', '0', '1', '100%', '0', '1', '0', '53', '0.98', '0', '1', '0', '0', '1', '0', 'C', 'EspeceA'] - lineNumber = 1 - - varscanHit = VarscanHit_v2_2_8_WithTag() - checkerExceptionInstance = None - try: - varscanHit.setAttributes(lResults, lineNumber) - except CheckerException, e: - checkerExceptionInstance = e - - expMessage = "The field Cons is empty in varscan file in line 1" - obsMessage = checkerExceptionInstance.msg - - self.assertEquals(expMessage, obsMessage) - - def test_setAttributes_empty_var(self): - lResults = ['chr1', '1000', 'T', 'C', '0', '1', '100%', '0', '1', '0', '53', '0.98', '0', '1', '0', '0', '1', '0', '', 'EspeceA'] - lineNumber = 1 - - varscanHit = VarscanHit_v2_2_8_WithTag() - checkerExceptionInstance = None - try: - varscanHit.setAttributes(lResults, lineNumber) - except CheckerException, e: - checkerExceptionInstance = e - - expMessage = "The field varAllele is empty in varscan file in line 1" - obsMessage = checkerExceptionInstance.msg - - self.assertEquals(expMessage, obsMessage) - - def test__eq__notEquals(self): - varscanHit1 = VarscanHit_v2_2_8_WithTag() - varscanHit1.setChrom('C02HBa0291P19_LR48') - varscanHit1.setPosition('34') - varscanHit1.setRef('A') - varscanHit1.setCns('T') - varscanHit1.setVar('T') - varscanHit1.setVar('EspeceA') - - varscanHit2 = VarscanHit_v2_2_8_WithTag() - varscanHit2.setChrom('C02HBa0291P19_LR48') - varscanHit2.setPosition('34') - varscanHit2.setRef('A') - varscanHit2.setCns('T') - varscanHit2.setVar('T') - varscanHit2.setVar('EspeceB') - - self.assertFalse(varscanHit1 == varscanHit2) - - def test__eq__Equals(self): - varscanHit1 = VarscanHit_v2_2_8_WithTag() - varscanHit1.setChrom('C02HBa0291P19_LR48') - varscanHit1.setPosition('34') - varscanHit1.setRef('A') - varscanHit1.setCns('T') - varscanHit1.setVar('T') - varscanHit1.setVar('EspeceA') - - varscanHit2 = VarscanHit_v2_2_8_WithTag() - varscanHit2.setChrom('C02HBa0291P19_LR48') - varscanHit2.setPosition('34') - varscanHit2.setRef('A') - varscanHit2.setCns('T') - varscanHit2.setVar('T') - varscanHit2.setVar('EspeceA') - - self.assertTrue(varscanHit1 == varscanHit2) - - def test_convertVarscanHit_v2_2_8_WithTag_To_VarscanHit_WithTag(self): - line = "chr1\t1804\tT\tC\t0\t1\t100%\t0\t1\t0\t53\t0.98\t0\t1\t0\t0\t1\t0\tC\tEspeceA\n" - iVarscanHit_v2_2_8_WithTag = VarscanHit_v2_2_8_WithTag() - iVarscanHit_v2_2_8_WithTag.setAttributesFromString(line) - obsVarcanHit_WithTag = iVarscanHit_v2_2_8_WithTag.convertVarscanHit_v2_2_8_WithTag_To_VarscanHit_WithTag() - - line = "chr1\t1804\tT\tC\t0\t1\t100%\t0\t1\t0\t53\t0.98\tEspeceA\n" - expVarcanHit_WithTag = VarscanHit_WithTag() - expVarcanHit_WithTag.setAttributesFromString(line) - - self.assertEquals(expVarcanHit_WithTag, obsVarcanHit_WithTag) - -if __name__ == "__main__": - unittest.main() \ No newline at end of file
--- a/commons/core/parsing/test/Test_VarscanToVCF.py Mon Apr 29 03:26:07 2013 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,61 +0,0 @@ -import unittest -from commons.core.parsing.VarscanToVCF import VarscanToVCF - -class Test_VarscanToVCF(unittest.TestCase): - - def setUp(self): - self._iVarscanToVCF = VarscanToVCF(doClean = True, verbosity = 2) - -# def test_convertVarscanLineToVCFRecord(self): -## Chrom Position Ref Cons Reads1 Reads2 VarFreq Strands1 Strands2 Qual1 Qual2 Pvalue -## chr1 10 C Y 1 1 50% 1 1 68 69 0.49999999999999994 -## MapQual1 MapQual2 Reads1Plus Reads1Minus Reads2Plus Reads2Minus VarAllele -## 1 1 1 0 1 0 T -# varscanLine = "chr1\t10\tC\tY\t1\t1\t50%\t1\t1\t68\t69\t0.49999999999999994\t1\t1\t1\t0\t1\t0\tT" -# obsRecord = self._iVarscanToVCF._convertVarscanLineToVCFRecord(varscanLine, 1) -# -# expInfo = {"AF": "50%", -# "DP": 2, -# "MQ": "1"} -# -# expRecord = vcf.model._Record("chr1", 10, "1", "C", "T", 3.010299957, ".", expInfo, ".", None) -## CHROM, POS, ID, REF, ALT, QUAL, FILTER, INFO, FORMAT, sample_indexes, samples=None -# -# self.assertEqual(expRecord.ID, obsRecord.ID) -# self.assertEqual(expRecord.QUAL, obsRecord.QUAL) -# self.assertEqual(expRecord.FILTER, obsRecord.FILTER) -# self.assertEqual(expRecord.INFO, obsRecord.INFO) -# self.assertEqual(expRecord.FORMAT, obsRecord.FORMAT) -# self.assertEqual(expRecord, obsRecord) - - def test_convertVarscanLineToVCFLine(self): -# Chrom Position Ref Cons Reads1 Reads2 VarFreq Strands1 Strands2 Qual1 Qual2 Pvalue -# chr1 10 C Y 1 1 50% 1 1 68 69 0.49999999999999994 -# MapQual1 MapQual2 Reads1Plus Reads1Minus Reads2Plus Reads2Minus VarAllele -# 1 1 1 0 1 0 T - varscanLine = "chr1\t10\tC\tY\t1\t1\t50%\t1\t1\t68\t69\t0.49999999999999994\t1\t1\t1\t0\t1\t0\tT" - obsVCFLine = self._iVarscanToVCF._convertVarscanLineToVCFRecord(varscanLine, 1) - - expVCFLine = "chr1\t10\t.\tC\tT\t3.010299957\t.\tAF=0.5000;DP=2;RBQ=68;ABQ=69\n" - # CHROM, POS, ID, REF, ALT, QUAL, FILTER, INFO - self.assertEqual(expVCFLine, obsVCFLine) - - def test_convertVarscanLineToVCFLine_false_VarAllele(self): - varscanLine = "chr1\t10\tC\tY\t1\t1\t50%\t1\t1\t68\t69\t0.49999999999999994\t1\t1\t1\t0\t1\t0\tA" - obsVCFLine = self._iVarscanToVCF._convertVarscanLineToVCFRecord(varscanLine, 1) - - expVCFLine = "chr1\t10\t.\tC\tT\t3.010299957\t.\tAF=0.5000;DP=2;RBQ=68;ABQ=69\n" - # CHROM, POS, ID, REF, ALT, QUAL, FILTER, INFO - self.assertEqual(expVCFLine, obsVCFLine) - - def test_convertVarscanLineToVCFRecord_empty_line(self): - obsMsg = "" - try: - self._iVarscanToVCF._convertVarscanLineToVCFRecord("", 10) - except Exception as e: - obsMsg = e.msg - - self.assertEqual("This varscan line (l.10) is not complete", obsMsg) - -if __name__ == "__main__": - unittest.main() \ No newline at end of file
--- a/commons/core/parsing/test/Test_WigParser.py Mon Apr 29 03:26:07 2013 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,28 +0,0 @@ -from commons.core.utils.FileUtils import FileUtils -from commons.core.parsing.WigParser import WigParser -import unittest - -class Test_WigParser(unittest.TestCase): - - def tearDown(self): - FileUtils.removeFilesByPattern("data/.chr*.index") - - def test_GetRange1(self): - self.parser = WigParser("data/test.wig") - outputRange = [0.0, 1.1, 1.2, 0.0, 1.4, 1.5, 0.0, 1.7, 0.0, 1.9, 0.0] - self.assertEqual(self.parser.getRange("chr1", 10, 20), outputRange) - outputRange = [0.0, 9.5, 9.6, 0.0] - self.assertEqual(self.parser.getRange("chrX", 4, 7), outputRange) - - def test_GetRange2(self): - self.parser = WigParser("data/test1.wig") - outputRange = [0.0, 1.1, 1.2, 0.0, 1.4, 1.5, 0.0, 1.7, 0.0, 1.9, 0.0] - self.assertEqual(self.parser.getRange("chr2", 10, 20), outputRange) - - def test_GetRange3(self): - self.parser = WigParser("data/test2.wig") - outputRange = [1.4, 1.5] - self.assertEqual(self.parser.getRange("chr3", 14, 15), outputRange) - -if __name__ == '__main__': - unittest.main()
--- a/commons/core/parsing/test/Test_pilerTAToGrouperMap.py Mon Apr 29 03:26:07 2013 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,108 +0,0 @@ -import unittest -import os -from commons.core.parsing.PilerTAToGrouperMap import PilerTAToGrouperMap -from commons.core.utils.FileUtils import FileUtils - -class Test_pilerTAToGrouperMap(unittest.TestCase): - - def setUp(self): - self._inputGffFileName = "input.gff" - self._inputPYRFileName = "input_pyr.gff" - self._inputMOTIFFileName = "input_motif.gff" - - self._obsOutFileName = "output.info" - self._obsGrouperFileName = "input_motif.gff.grp" - self._obsGrpMapFileName = "input_motif.gff.grp.map" - - self._expOutFileName = "exp_output.info" - self._expGrouperFileName = "exp_motif.gff.grp" - self._expGrpMapFileName = "exp_motif.gff.grp.map" - - def tearDown(self): - os.remove(self._inputGffFileName) - os.remove(self._inputPYRFileName) - os.remove(self._inputMOTIFFileName) - - os.remove(self._obsOutFileName) - os.remove(self._obsGrouperFileName) - os.remove(self._obsGrpMapFileName) - - os.remove(self._expOutFileName) - os.remove(self._expGrouperFileName) - os.remove(self._expGrpMapFileName) - - def testRun(self): - self._writePilerTAFilePYR(self._inputPYRFileName) - self._writePilerTAFileMOTIF(self._inputMOTIFFileName) - self._writePilerTAGff(self._inputGffFileName) - - self._writeExpOutputFile(self._expOutFileName) - self._writeExpGrouperFile(self._expGrouperFileName) - self._writeExpGrouperMapFile(self._expGrpMapFileName) - - iPilerTAToGrouperMap = PilerTAToGrouperMap(self._inputGffFileName, self._inputPYRFileName,self._inputMOTIFFileName, self._obsOutFileName) - iPilerTAToGrouperMap.run() - - self.assertTrue(FileUtils.are2FilesIdentical(self._expOutFileName, self._obsOutFileName)) - self.assertTrue(FileUtils.are2FilesIdentical(self._expGrouperFileName, self._obsGrouperFileName)) - self.assertTrue(FileUtils.are2FilesIdentical(self._expGrpMapFileName, self._obsGrpMapFileName)) - - - def _writePilerTAGff(self, fileName): - f = open(fileName, "w") - f.write("chunk21\tpiler\thit\t155146\t156020\t0\t+\t.\tTarget chunk21 150519 151392 ; Pile 510 ; Pyramid 0\n") - f.write("chunk21\tpiler\thit\t154790\t156023\t0\t+\t.\tTarget chunk21 150519 151751 ; Pile 510 ; Pyramid 0\n") - f.write("chunk21\tpiler\thit\t154078\t156023\t0\t+\t.\tTarget chunk21 150519 152463 ; Pile 510 ; Pyramid 0\n") - f.write("chunk21\tpiler\thit\t154256\t156023\t0\t+\t.\tTarget chunk21 150519 152285 ; Pile 510 ; Pyramid 0\n") - f.write("chunk21\tpiler\thit\t154434\t156023\t0\t+\t.\tTarget chunk21 150519 152107 ; Pile 510 ; Pyramid 0\n") - f.close() - - def _writePilerTAFilePYR(self, fileName): - f = open(fileName, "w") - f.write("chunk21\tpiler\tpyramid\t150519\t156023\t0\t.\t.\tPyramidIndex 0\n") - f.write("chunk21\tpiler\tpyramid\t150519\t156023\t0\t.\t.\tPyramidIndex 1\n") - f.write("chunk21\tpiler\tpyramid\t165574\t174424\t0\t.\t.\tPyramidIndex 2\n") - f.write("chunk21\tpiler\tpyramid\t166301\t174424\t0\t.\t.\tPyramidIndex 3\n") - f.write("chunk21\tpiler\tpyramid\t168967\t174424\t0\t.\t.\tPyramidIndex 4\n") - f.write("chunk21\tpiler\tpyramid\t170215\t174424\t0\t.\t.\tPyramidIndex 5\n") - f.close() - - def _writePilerTAFileMOTIF(self, fileName): - f = open(fileName, "w") - f.write("chunk21\tpiler\ttandemmotif\t155843\t156020\t0\t.\t.\tTarget chunk21 151215 151392 ; Pyramid 0\n") - f.write("chunk21\tpiler\ttandemmotif\t151215\t151392\t0\t.\t.\tTarget chunk21 155843 156020 ; Pyramid 0\n") - f.write("chunk21\tpiler\ttandemmotif\t151574\t151751\t0\t.\t.\tTarget chunk21 155843 156020 ; Pyramid 0\n") - f.write("chunk21\tpiler\ttandemmotif\t152286\t152463\t0\t.\t.\tTarget chunk21 155843 156020 ; Pyramid 0\n") - f.write("chunk21\tpiler\ttandemmotif\t152108\t152285\t0\t.\t.\tTarget chunk21 155843 156020 ; Pyramid 0\n") - f.close() - - def _writeExpOutputFile(self, fileName): - f = open(fileName, "w") - f.write("Pile 510\tPyramid 0\n") - f.write("\tPyramid 1\n") - f.write("\tPyramid 2\n") - f.write("\tPyramid 3\n") - f.write("\tPyramid 4\n") - f.write("\tPyramid 5\n") - f.close() - - def _writeExpGrouperFile(self, fileName): - f = open(fileName, "w") - f.write("MbS1Gr0Cl510\tchunk21\tpiler\ttandemmotif\t155843\t156020\t0\t.\t.\tTarget chunk21 151215 151392 \tPile 510\tPyramid 0\n") - f.write("MbS2Gr0Cl510\tchunk21\tpiler\ttandemmotif\t151215\t151392\t0\t.\t.\tTarget chunk21 155843 156020 \tPile 510\tPyramid 0\n") - f.write("MbS3Gr0Cl510\tchunk21\tpiler\ttandemmotif\t151574\t151751\t0\t.\t.\tTarget chunk21 155843 156020 \tPile 510\tPyramid 0\n") - f.write("MbS4Gr0Cl510\tchunk21\tpiler\ttandemmotif\t152286\t152463\t0\t.\t.\tTarget chunk21 155843 156020 \tPile 510\tPyramid 0\n") - f.write("MbS5Gr0Cl510\tchunk21\tpiler\ttandemmotif\t152108\t152285\t0\t.\t.\tTarget chunk21 155843 156020 \tPile 510\tPyramid 0\n") - f.close() - - def _writeExpGrouperMapFile(self, fileName): - f = open(fileName, "w") - f.write("MbS1Gr0Cl510\tchunk21\t155843\t156020\n") - f.write("MbS2Gr0Cl510\tchunk21\t151215\t151392\n") - f.write("MbS3Gr0Cl510\tchunk21\t151574\t151751\n") - f.write("MbS4Gr0Cl510\tchunk21\t152286\t152463\n") - f.write("MbS5Gr0Cl510\tchunk21\t152108\t152285\n") - f.close() - -if __name__ == "__main__": - unittest.main() \ No newline at end of file
--- a/commons/core/parsing/test/data/ExpPotDooblonsSubSNP.csv Mon Apr 29 03:26:07 2013 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,832 +0,0 @@ -SubSNPName;ConfidenceValue;Type;Position;5flank;3flank;Length;BatchNumber;IndividualNumber;PrimerType;PrimerNumber;Forward_or_Reverse;AlleleNumber -Batch_AU247387_SNP_30_10102;A;SNP;30;NNNTATAGCTCCTAACATTCCTGAAGTGA;GATCACRGAGGACNNGGCTGTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTYGCTAGCTTGAGGGCGATTGGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;1;Sequence;;;9 -Batch_AU247387_SNP_30_IRELAND;A;SNP;30;NNNTATAGCTCCTAACATTCCTGAAGTGA;GATTCCAGAGGACACGATTGTGAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGATGGAGATTGGCCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGT---------------------------TTGTTTATCTCCTCAATTTCAATTTGGCCATGCTTAATGTTGGGTGCTTTCTGTATAGCCTGCTCACCAAGGTGTGATCTCTTCTTTGTATACACAGGTGGT;1;12;15;Sequence;;;7 -Batch_AU247387_SNP_30_POLAND;A;SNP;30;NNNTATAGCTCCTAACATTCCTGAAGTGA;GATCACGGAGGACCTGGCTGTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTAYGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGT;1;12;20;Sequence;;;9 -Batch_AU247387_SNP_30_VIGOR;A;SNP;30;NNNTATAGCTCCTAACATTCCTGAAGTGA;GATCACGGAGGACCTGGCTGTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGT;1;12;23;Sequence;;;9 -Batch_AU247387_SNP_34_10102;A;SNP;34;NNNTATAGCTCCTAACATTCCTGAAGTGAAGAT;ACRGAGGACNNGGCTGTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTYGCTAGCTTGAGGGCGATTGGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;1;Sequence;;;7 -Batch_AU247387_SNP_34_IRELAND;A;SNP;34;NNNTATAGCTCCTAACATTCCTGAAGTGACGAT;CCAGAGGACACGATTGTGAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGATGGAGATTGGCCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGT---------------------------TTGTTTATCTCCTCAATTTCAATTTGGCCATGCTTAATGTTGGGTGCTTTCTGTATAGCCTGCTCACCAAGGTGTGATCTCTTCTTTGTATACACAGGTGGTTGCT;1;12;15;Sequence;;;10 -Batch_AU247387_SNP_34_POLAND;A;SNP;34;NNNTATAGCTCCTAACATTCCTGAAGTGAAGAT;ACGGAGGACCTGGCTGTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTAYGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCA;1;12;20;Sequence;;;7 -Batch_AU247387_SNP_34_VIGOR;A;SNP;34;NNNTATAGCTCCTAACATTCCTGAAGTGAAGAT;ACGGAGGACCTGGCTGTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCA;1;12;23;Sequence;;;7 -Batch_AU247387_SNP_35_10102;A;SNP;35;NNNTATAGCTCCTAACATTCCTGAAGTGAAGATC;CRGAGGACNNGGCTGTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTYGCTAGCTTGAGGGCGATTGGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;1;Sequence;;;9 -Batch_AU247387_SNP_35_IRELAND;A;SNP;35;NNNTATAGCTCCTAACATTCCTGAAGTGACGATT;CAGAGGACACGATTGTGAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGATGGAGATTGGCCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGT---------------------------TTGTTTATCTCCTCAATTTCAATTTGGCCATGCTTAATGTTGGGTGCTTTCTGTATAGCCTGCTCACCAAGGTGTGATCTCTTCTTTGTATACACAGGTGGTTGCTG;1;12;15;Sequence;;;7 -Batch_AU247387_SNP_35_POLAND;A;SNP;35;NNNTATAGCTCCTAACATTCCTGAAGTGAAGATC;CGGAGGACCTGGCTGTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTAYGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCAT;1;12;20;Sequence;;;9 -Batch_AU247387_SNP_35_VIGOR;A;SNP;35;NNNTATAGCTCCTAACATTCCTGAAGTGAAGATC;CGGAGGACCTGGCTGTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCAT;1;12;23;Sequence;;;9 -Batch_AU247387_SNP_37_10102;A;SNP;37;NNNTATAGCTCCTAACATTCCTGAAGTGAAGATCAC;GAGGACNNGGCTGTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTYGCTAGCTTGAGGGCGATTGGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;1;Sequence;;;5 -Batch_AU247387_SNP_37_IRELAND;A;SNP;37;NNNTATAGCTCCTAACATTCCTGAAGTGACGATTCC;GAGGACACGATTGTGAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGATGGAGATTGGCCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGT---------------------------TTGTTTATCTCCTCAATTTCAATTTGGCCATGCTTAATGTTGGGTGCTTTCTGTATAGCCTGCTCACCAAGGTGTGATCTCTTCTTTGTATACACAGGTGGTTGCTGG-;1;12;15;Sequence;;;9 -Batch_AU247387_SNP_37_POLAND;A;SNP;37;NNNTATAGCTCCTAACATTCCTGAAGTGAAGATCAC;GAGGACCTGGCTGTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTAYGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGG;1;12;20;Sequence;;;6 -Batch_AU247387_SNP_37_VIGOR;A;SNP;37;NNNTATAGCTCCTAACATTCCTGAAGTGAAGATCAC;GAGGACCTGGCTGTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGG;1;12;23;Sequence;;;6 -Batch_AU247387_SNP_44_IRELAND;A;SNP;44;NNNTATAGCTCCTAACATTCCTGAAGTGACGATTCCAGAGGAC;CGATTGTGAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGATGGAGATTGGCCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGT---------------------------TTGTTTATCTCCTCAATTTCAATTTGGCCATGCTTAATGTTGGGTGCTTTCTGTATAGCCTGCTCACCAAGGTGTGATCTCTTCTTTGTATACACAGGTGGTTGCTGG--------;1;12;15;Sequence;;;9 -Batch_AU247387_SNP_44_POLAND;A;SNP;44;NNNTATAGCTCCTAACATTCCTGAAGTGAAGATCACGGAGGAC;TGGCTGTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTAYGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTT;1;12;20;Sequence;;;7 -Batch_AU247387_SNP_44_VIGOR;A;SNP;44;NNNTATAGCTCCTAACATTCCTGAAGTGAAGATCACGGAGGAC;TGGCTGTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTT;1;12;23;Sequence;;;7 -Batch_AU247387_SNP_45_IRELAND;A;SNP;45;NNNTATAGCTCCTAACATTCCTGAAGTGACGATTCCAGAGGACA;GATTGTGAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGATGGAGATTGGCCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGT---------------------------TTGTTTATCTCCTCAATTTCAATTTGGCCATGCTTAATGTTGGGTGCTTTCTGTATAGCCTGCTCACCAAGGTGTGATCTCTTCTTTGTATACACAGGTGGTTGCTGG---------;1;12;15;Sequence;;;7 -Batch_AU247387_SNP_45_POLAND;A;SNP;45;NNNTATAGCTCCTAACATTCCTGAAGTGAAGATCACGGAGGACC;GGCTGTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTAYGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTC;1;12;20;Sequence;;;10 -Batch_AU247387_SNP_45_VIGOR;A;SNP;45;NNNTATAGCTCCTAACATTCCTGAAGTGAAGATCACGGAGGACC;GGCTGTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTC;1;12;23;Sequence;;;10 -Batch_AU247387_SNP_47_10102;A;SNP;47;NNNTATAGCTCCTAACATTCCTGAAGTGAAGATCACRGAGGACNNG;CTGTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTYGCTAGCTTGAGGGCGATTGGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;1;Sequence;;;6 -Batch_AU247387_SNP_47_IRELAND;A;SNP;47;NNNTATAGCTCCTAACATTCCTGAAGTGACGATTCCAGAGGACACG;TTGTGAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGATGGAGATTGGCCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGT---------------------------TTGTTTATCTCCTCAATTTCAATTTGGCCATGCTTAATGTTGGGTGCTTTCTGTATAGCCTGCTCACCAAGGTGTGATCTCTTCTTTGTATACACAGGTGGTTGCTGG-----------;1;12;15;Sequence;;;9 -Batch_AU247387_SNP_47_POLAND;A;SNP;47;NNNTATAGCTCCTAACATTCCTGAAGTGAAGATCACGGAGGACCTG;CTGTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTAYGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTC;1;12;20;Sequence;;;6 -Batch_AU247387_SNP_47_VIGOR;A;SNP;47;NNNTATAGCTCCTAACATTCCTGAAGTGAAGATCACGGAGGACCTG;CTGTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTC;1;12;23;Sequence;;;6 -Batch_AU247387_SNP_48_10102;A;SNP;48;NNNTATAGCTCCTAACATTCCTGAAGTGAAGATCACRGAGGACNNGG;TGTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTYGCTAGCTTGAGGGCGATTGGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;1;Sequence;;;7 -Batch_AU247387_SNP_48_IRELAND;A;SNP;48;NNNTATAGCTCCTAACATTCCTGAAGTGACGATTCCAGAGGACACGA;TGTGAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGATGGAGATTGGCCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGT---------------------------TTGTTTATCTCCTCAATTTCAATTTGGCCATGCTTAATGTTGGGTGCTTTCTGTATAGCCTGCTCACCAAGGTGTGATCTCTTCTTTGTATACACAGGTGGTTGCTGG------------;1;12;15;Sequence;;;10 -Batch_AU247387_SNP_48_POLAND;A;SNP;48;NNNTATAGCTCCTAACATTCCTGAAGTGAAGATCACGGAGGACCTGG;TGTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTAYGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCT;1;12;20;Sequence;;;7 -Batch_AU247387_SNP_48_VIGOR;A;SNP;48;NNNTATAGCTCCTAACATTCCTGAAGTGAAGATCACGGAGGACCTGG;TGTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCT;1;12;23;Sequence;;;7 -Batch_AU247387_SNP_52_10102;A;SNP;52;NNNTATAGCTCCTAACATTCCTGAAGTGAAGATCACRGAGGACNNGGCTGT;AATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTYGCTAGCTTGAGGGCGATTGGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;1;Sequence;;;7 -Batch_AU247387_SNP_52_10954;A;SNP;52;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNT;AATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAG;1;12;6;Sequence;;;7 -Batch_AU247387_SNP_52_CARILLON;A;SNP;52;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;AACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATCGGTCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGTTCTGGTTACTCTTCAATTTGGGCATGCTTAAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG----------------;1;12;9;Sequence;;;7 -Batch_AU247387_SNP_52_F14-13;A;SNP;52;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNT;AATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;11;Sequence;;;4 -Batch_AU247387_SNP_52_GREECE;A;SNP;52;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNT;AACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATYGGYCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGTNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;13;Sequence;;;4 -Batch_AU247387_SNP_52_IMAGINE;A;SNP;52;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNT;AATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAG;1;12;14;Sequence;;;7 -Batch_AU247387_SNP_52_IRELAND;A;SNP;52;NNNTATAGCTCCTAACATTCCTGAAGTGACGATTCCAGAGGACACGATTGT;AACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGATGGAGATTGGCCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGT---------------------------TTGTTTATCTCCTCAATTTCAATTTGGCCATGCTTAATGTTGGGTGCTTTCTGTATAGCCTGCTCACCAAGGTGTGATCTCTTCTTTGTATACACAGGTGGTTGCTGG----------------;1;12;15;Sequence;;;6 -Batch_AU247387_SNP_52_NEMOF;A;SNP;52;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNT;AATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAG;1;12;18;Sequence;;;7 -Batch_AU247387_SNP_52_NEMOH;A;SNP;52;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNT;AATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAG;1;12;19;Sequence;;;7 -Batch_AU247387_SNP_52_POLAND;A;SNP;52;NNNTATAGCTCCTAACATTCCTGAAGTGAAGATCACGGAGGACCTGGCTGT;AATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTAYGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAG;1;12;20;Sequence;;;7 -Batch_AU247387_SNP_52_SPAIN;A;SNP;52;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNT;AACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATCGGTCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGTTCTGGTTACTCTTCAATTTGGGCATGCTTAAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG----------------;1;12;21;Sequence;;;7 -Batch_AU247387_SNP_52_VIGOR;A;SNP;52;NNNTATAGCTCCTAACATTCCTGAAGTGAAGATCACGGAGGACCTGGCTGT;AATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAG;1;12;23;Sequence;;;7 -Batch_AU247387_SNP_55_10102;A;SNP;55;NNNTATAGCTCCTAACATTCCTGAAGTGAAGATCACRGAGGACNNGGCTGTCAA;GTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTYGCTAGCTTGAGGGCGATTGGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;1;Sequence;;;10 -Batch_AU247387_SNP_55_10954;A;SNP;55;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAA;GTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCT;1;12;6;Sequence;;;10 -Batch_AU247387_SNP_55_CARILLON;A;SNP;55;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCAA;ATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATCGGTCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGTTCTGGTTACTCTTCAATTTGGGCATGCTTAAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG-------------------;1;12;9;Sequence;;;7 -Batch_AU247387_SNP_55_F14-13;A;SNP;55;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTSAA;GTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;11;Sequence;;;10 -Batch_AU247387_SNP_55_GAGNY;A;SNP;55;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;ATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATYGGTCAGGGCCGTGAYCTGAAGAAATTCCTSATTGTAYGTNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;12;Sequence;;;7 -Batch_AU247387_SNP_55_GREECE;A;SNP;55;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTSAA;ATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATYGGYCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGTNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;13;Sequence;;;7 -Batch_AU247387_SNP_55_IMAGINE;A;SNP;55;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAA;GTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCT;1;12;14;Sequence;;;10 -Batch_AU247387_SNP_55_IRELAND;A;SNP;55;NNNTATAGCTCCTAACATTCCTGAAGTGACGATTCCAGAGGACACGATTGTGAA;ATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGATGGAGATTGGCCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGT---------------------------TTGTTTATCTCCTCAATTTCAATTTGGCCATGCTTAATGTTGGGTGCTTTCTGTATAGCCTGCTCACCAAGGTGTGATCTCTTCTTTGTATACACAGGTGGTTGCTGG-------------------;1;12;15;Sequence;;;7 -Batch_AU247387_SNP_55_NEMOF;A;SNP;55;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAA;GTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCT;1;12;18;Sequence;;;10 -Batch_AU247387_SNP_55_NEMOH;A;SNP;55;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAA;GTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCT;1;12;19;Sequence;;;10 -Batch_AU247387_SNP_55_POLAND;A;SNP;55;NNNTATAGCTCCTAACATTCCTGAAGTGAAGATCACGGAGGACCTGGCTGTCAA;GTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTAYGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCT;1;12;20;Sequence;;;10 -Batch_AU247387_SNP_55_SPAIN;A;SNP;55;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAA;ATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATCGGTCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGTTCTGGTTACTCTTCAATTTGGGCATGCTTAAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG-------------------;1;12;21;Sequence;;;7 -Batch_AU247387_SNP_55_VIGOR;A;SNP;55;NNNTATAGCTCCTAACATTCCTGAAGTGAAGATCACGGAGGACCTGGCTGTCAA;GTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCT;1;12;23;Sequence;;;10 -Batch_AU247387_SNP_56_10102;A;SNP;56;NNNTATAGCTCCTAACATTCCTGAAGTGAAGATCACRGAGGACNNGGCTGTCAAT;TTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTYGCTAGCTTGAGGGCGATTGGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;1;Sequence;;;6 -Batch_AU247387_SNP_56_10954;A;SNP;56;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAAT;TTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTT;1;12;6;Sequence;;;6 -Batch_AU247387_SNP_56_CARILLON;A;SNP;56;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCAAC;TTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATCGGTCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGTTCTGGTTACTCTTCAATTTGGGCATGCTTAAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG--------------------;1;12;9;Sequence;;;9 -Batch_AU247387_SNP_56_F14-13;A;SNP;56;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTSAAT;TTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;11;Sequence;;;6 -Batch_AU247387_SNP_56_GAGNY;A;SNP;56;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNC;TTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATYGGTCAGGGCCGTGAYCTGAAGAAATTCCTSATTGTAYGTNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;12;Sequence;;;9 -Batch_AU247387_SNP_56_GREECE;A;SNP;56;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTSAAC;TTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATYGGYCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGTNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;13;Sequence;;;9 -Batch_AU247387_SNP_56_IMAGINE;A;SNP;56;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAAT;TTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTT;1;12;14;Sequence;;;6 -Batch_AU247387_SNP_56_IRELAND;A;SNP;56;NNNTATAGCTCCTAACATTCCTGAAGTGACGATTCCAGAGGACACGATTGTGAAC;TTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGATGGAGATTGGCCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGT---------------------------TTGTTTATCTCCTCAATTTCAATTTGGCCATGCTTAATGTTGGGTGCTTTCTGTATAGCCTGCTCACCAAGGTGTGATCTCTTCTTTGTATACACAGGTGGTTGCTGG--------------------;1;12;15;Sequence;;;9 -Batch_AU247387_SNP_56_NEMOF;A;SNP;56;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAAT;TTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTT;1;12;18;Sequence;;;6 -Batch_AU247387_SNP_56_NEMOH;A;SNP;56;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAAT;TTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTT;1;12;19;Sequence;;;6 -Batch_AU247387_SNP_56_POLAND;A;SNP;56;NNNTATAGCTCCTAACATTCCTGAAGTGAAGATCACGGAGGACCTGGCTGTCAAT;TTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTAYGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTT;1;12;20;Sequence;;;6 -Batch_AU247387_SNP_56_SPAIN;A;SNP;56;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAAC;TTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATCGGTCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGTTCTGGTTACTCTTCAATTTGGGCATGCTTAAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG--------------------;1;12;21;Sequence;;;9 -Batch_AU247387_SNP_56_VIGOR;A;SNP;56;NNNTATAGCTCCTAACATTCCTGAAGTGAAGATCACGGAGGACCTGGCTGTCAAT;TTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTT;1;12;23;Sequence;;;6 -Batch_AU247387_SNP_94_10102;A;SNP;94;NNNTATAGCTCCTAACATTCCTGAAGTGAAGATCACRGAGGACNNGGCTGTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTT;GCTAGCTTGAGGGCGATTGGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;1;Sequence;;;1 -Batch_AU247387_SNP_94_10954;A;SNP;94;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTT;GCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCT;1;12;6;Sequence;;;10 -Batch_AU247387_SNP_94_CARILLON;A;SNP;94;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTT;TTTACTTTGAAGGAGATCGGTCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGTTCTGGTTACTCTTCAATTTGGGCATGCTTAAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG----------------------------------------------------------;1;12;9;Sequence;;;7 -Batch_AU247387_SNP_94_F14-13;A;SNP;94;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTSAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTT;GCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;11;Sequence;;;10 -Batch_AU247387_SNP_94_GAGNY;A;SNP;94;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTT;TTTACTTTGAAGGAGATYGGTCAGGGCCGTGAYCTGAAGAAATTCCTSATTGTAYGTNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;12;Sequence;;;7 -Batch_AU247387_SNP_94_GREECE;A;SNP;94;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTSAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTT;TTTACTTTGAAGGAGATYGGYCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGTNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;13;Sequence;;;7 -Batch_AU247387_SNP_94_IMAGINE;A;SNP;94;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTT;GCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCT;1;12;14;Sequence;;;10 -Batch_AU247387_SNP_94_IRELAND;A;SNP;94;NNNTATAGCTCCTAACATTCCTGAAGTGACGATTCCAGAGGACACGATTGTGAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTT;TTTACTTTGATGGAGATTGGCCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGT---------------------------TTGTTTATCTCCTCAATTTCAATTTGGCCATGCTTAATGTTGGGTGCTTTCTGTATAGCCTGCTCACCAAGGTGTGATCTCTTCTTTGTATACACAGGTGGTTGCTGG----------------------------------------------------------;1;12;15;Sequence;;;7 -Batch_AU247387_SNP_94_NEMOF;A;SNP;94;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTT;GCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCT;1;12;18;Sequence;;;10 -Batch_AU247387_SNP_94_NEMOH;A;SNP;94;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTT;GCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCT;1;12;19;Sequence;;;10 -Batch_AU247387_SNP_94_POLAND;A;SNP;94;NNNTATAGCTCCTAACATTCCTGAAGTGAAGATCACGGAGGACCTGGCTGTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTT;GCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTAYGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCNNNNNNN;1;12;20;Sequence;;;10 -Batch_AU247387_SNP_94_SPAIN;A;SNP;94;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTT;TTTACTTTGAAGGAGATCGGTCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGTTCTGGTTACTCTTCAATTTGGGCATGCTTAAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG----------------------------------------------------------;1;12;21;Sequence;;;7 -Batch_AU247387_SNP_94_TRANSATE;A;SNP;94;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCGCTCGCTGAGATATGAGATCAACAGGGGCTT;TTTACTTTGAAGGAGATYGGCCAGGGTCGCGACCTCAAGAAATTCCTCATTGTATGTTGCTTGT-CTCTTCAATTTCAACATGCTTGAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTCTTCTTTGTATGCTCAGGTGGTTGCGGG----------------------------------------------------------;1;12;22;Sequence;;;7 -Batch_AU247387_SNP_94_VIGOR;A;SNP;94;NNNTATAGCTCCTAACATTCCTGAAGTGAAGATCACGGAGGACCTGGCTGTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTT;GCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCT;1;12;23;Sequence;;;10 -Batch_AU247387_SNP_95_10102;A;SNP;95;NNNTATAGCTCCTAACATTCCTGAAGTGAAGATCACRGAGGACNNGGCTGTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTY;CTAGCTTGAGGGCGATTGGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;1;Sequence;;;6 -Batch_AU247387_SNP_95_10954;A;SNP;95;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTT;CTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTA;1;12;6;Sequence;;;6 -Batch_AU247387_SNP_95_CARILLON;A;SNP;95;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTC;TTACTTTGAAGGAGATCGGTCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGTTCTGGTTACTCTTCAATTTGGGCATGCTTAAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG-----------------------------------------------------------;1;12;9;Sequence;;;10 -Batch_AU247387_SNP_95_F14-13;A;SNP;95;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTSAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTT;CTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;11;Sequence;;;6 -Batch_AU247387_SNP_95_GAGNY;A;SNP;95;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTC;TTACTTTGAAGGAGATYGGTCAGGGCCGTGAYCTGAAGAAATTCCTSATTGTAYGTNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;12;Sequence;;;10 -Batch_AU247387_SNP_95_GREECE;A;SNP;95;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTSAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTC;TTACTTTGAAGGAGATYGGYCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGTNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;13;Sequence;;;10 -Batch_AU247387_SNP_95_IMAGINE;A;SNP;95;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTT;CTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTA;1;12;14;Sequence;;;6 -Batch_AU247387_SNP_95_IRELAND;A;SNP;95;NNNTATAGCTCCTAACATTCCTGAAGTGACGATTCCAGAGGACACGATTGTGAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTC;TTACTTTGATGGAGATTGGCCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGT---------------------------TTGTTTATCTCCTCAATTTCAATTTGGCCATGCTTAATGTTGGGTGCTTTCTGTATAGCCTGCTCACCAAGGTGTGATCTCTTCTTTGTATACACAGGTGGTTGCTGG-----------------------------------------------------------;1;12;15;Sequence;;;10 -Batch_AU247387_SNP_95_NEMOF;A;SNP;95;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTT;CTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTA;1;12;18;Sequence;;;6 -Batch_AU247387_SNP_95_NEMOH;A;SNP;95;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTT;CTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTA;1;12;19;Sequence;;;6 -Batch_AU247387_SNP_95_POLAND;A;SNP;95;NNNTATAGCTCCTAACATTCCTGAAGTGAAGATCACGGAGGACCTGGCTGTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTT;CTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTAYGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCNNNNNNNN;1;12;20;Sequence;;;6 -Batch_AU247387_SNP_95_SPAIN;A;SNP;95;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTC;TTACTTTGAAGGAGATCGGTCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGTTCTGGTTACTCTTCAATTTGGGCATGCTTAAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG-----------------------------------------------------------;1;12;21;Sequence;;;10 -Batch_AU247387_SNP_95_TRANSATE;A;SNP;95;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCGCTCGCTGAGATATGAGATCAACAGGGGCTTC;TTACTTTGAAGGAGATYGGCCAGGGTCGCGACCTCAAGAAATTCCTCATTGTATGTTGCTTGT-CTCTTCAATTTCAACATGCTTGAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTCTTCTTTGTATGCTCAGGTGGTTGCGGG-----------------------------------------------------------;1;12;22;Sequence;;;10 -Batch_AU247387_SNP_95_VIGOR;A;SNP;95;NNNTATAGCTCCTAACATTCCTGAAGTGAAGATCACGGAGGACCTGGCTGTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTT;CTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTA;1;12;23;Sequence;;;6 -Batch_AU247387_SNP_96_10102;A;SNP;96;NNNTATAGCTCCTAACATTCCTGAAGTGAAGATCACRGAGGACNNGGCTGTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTYG;TAGCTTGAGGGCGATTGGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;1;Sequence;;;7 -Batch_AU247387_SNP_96_10954;A;SNP;96;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTG;TAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTAT;1;12;6;Sequence;;;7 -Batch_AU247387_SNP_96_CARILLON;A;SNP;96;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCT;TACTTTGAAGGAGATCGGTCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGTTCTGGTTACTCTTCAATTTGGGCATGCTTAAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG------------------------------------------------------------;1;12;9;Sequence;;;10 -Batch_AU247387_SNP_96_F14-13;A;SNP;96;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTSAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTG;TAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;11;Sequence;;;7 -Batch_AU247387_SNP_96_GAGNY;A;SNP;96;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCT;TACTTTGAAGGAGATYGGTCAGGGCCGTGAYCTGAAGAAATTCCTSATTGTAYGTNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;12;Sequence;;;10 -Batch_AU247387_SNP_96_GREECE;A;SNP;96;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTSAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCT;TACTTTGAAGGAGATYGGYCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGTNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;13;Sequence;;;10 -Batch_AU247387_SNP_96_IMAGINE;A;SNP;96;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTG;TAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTAT;1;12;14;Sequence;;;7 -Batch_AU247387_SNP_96_IRELAND;A;SNP;96;NNNTATAGCTCCTAACATTCCTGAAGTGACGATTCCAGAGGACACGATTGTGAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCT;TACTTTGATGGAGATTGGCCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGT---------------------------TTGTTTATCTCCTCAATTTCAATTTGGCCATGCTTAATGTTGGGTGCTTTCTGTATAGCCTGCTCACCAAGGTGTGATCTCTTCTTTGTATACACAGGTGGTTGCTGG------------------------------------------------------------;1;12;15;Sequence;;;10 -Batch_AU247387_SNP_96_NEMOF;A;SNP;96;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTG;TAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTAT;1;12;18;Sequence;;;7 -Batch_AU247387_SNP_96_NEMOH;A;SNP;96;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTG;TAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTAT;1;12;19;Sequence;;;7 -Batch_AU247387_SNP_96_POLAND;A;SNP;96;NNNTATAGCTCCTAACATTCCTGAAGTGAAGATCACGGAGGACCTGGCTGTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTG;TAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTAYGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCNNNNNNNNN;1;12;20;Sequence;;;7 -Batch_AU247387_SNP_96_SPAIN;A;SNP;96;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCT;TACTTTGAAGGAGATCGGTCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGTTCTGGTTACTCTTCAATTTGGGCATGCTTAAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG------------------------------------------------------------;1;12;21;Sequence;;;10 -Batch_AU247387_SNP_96_TRANSATE;A;SNP;96;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCGCTCGCTGAGATATGAGATCAACAGGGGCTTCT;TACTTTGAAGGAGATYGGCCAGGGTCGCGACCTCAAGAAATTCCTCATTGTATGTTGCTTGT-CTCTTCAATTTCAACATGCTTGAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTCTTCTTTGTATGCTCAGGTGGTTGCGGG------------------------------------------------------------;1;12;22;Sequence;;;10 -Batch_AU247387_SNP_96_VIGOR;A;SNP;96;NNNTATAGCTCCTAACATTCCTGAAGTGAAGATCACGGAGGACCTGGCTGTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTG;TAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTAT;1;12;23;Sequence;;;7 -Batch_AU247387_SNP_99_10102;A;SNP;99;NNNTATAGCTCCTAACATTCCTGAAGTGAAGATCACRGAGGACNNGGCTGTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTYGCTA;CTTGAGGGCGATTGGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;1;Sequence;;;6 -Batch_AU247387_SNP_99_10954;A;SNP;99;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTA;CCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACT;1;12;6;Sequence;;;6 -Batch_AU247387_SNP_99_CARILLON;A;SNP;99;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTA;TTTGAAGGAGATCGGTCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGTTCTGGTTACTCTTCAATTTGGGCATGCTTAAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------;1;12;9;Sequence;;;7 -Batch_AU247387_SNP_99_F14-13;A;SNP;99;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTSAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTA;CCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;11;Sequence;;;6 -Batch_AU247387_SNP_99_GAGNY;A;SNP;99;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTA;TTTGAAGGAGATYGGTCAGGGCCGTGAYCTGAAGAAATTCCTSATTGTAYGTNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;12;Sequence;;;7 -Batch_AU247387_SNP_99_GREECE;A;SNP;99;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTSAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTA;TTTGAAGGAGATYGGYCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGTNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;13;Sequence;;;7 -Batch_AU247387_SNP_99_IMAGINE;A;SNP;99;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTA;CCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACT;1;12;14;Sequence;;;6 -Batch_AU247387_SNP_99_IRELAND;A;SNP;99;NNNTATAGCTCCTAACATTCCTGAAGTGACGATTCCAGAGGACACGATTGTGAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTA;TTTGATGGAGATTGGCCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGT---------------------------TTGTTTATCTCCTCAATTTCAATTTGGCCATGCTTAATGTTGGGTGCTTTCTGTATAGCCTGCTCACCAAGGTGTGATCTCTTCTTTGTATACACAGGTGGTTGCTGG---------------------------------------------------------------;1;12;15;Sequence;;;7 -Batch_AU247387_SNP_99_NEMOF;A;SNP;99;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTA;CCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACT;1;12;18;Sequence;;;6 -Batch_AU247387_SNP_99_NEMOH;A;SNP;99;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTA;CCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACT;1;12;19;Sequence;;;6 -Batch_AU247387_SNP_99_POLAND;A;SNP;99;NNNTATAGCTCCTAACATTCCTGAAGTGAAGATCACGGAGGACCTGGCTGTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTA;CCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTAYGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCNNNNNNNNNNNN;1;12;20;Sequence;;;6 -Batch_AU247387_SNP_99_SPAIN;A;SNP;99;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTA;TTTGAAGGAGATCGGTCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGTTCTGGTTACTCTTCAATTTGGGCATGCTTAAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------;1;12;21;Sequence;;;7 -Batch_AU247387_SNP_99_TRANSATE;A;SNP;99;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTA;TTTGAAGGAGATYGGCCAGGGTCGCGACCTCAAGAAATTCCTCATTGTATGTTGCTTGT-CTCTTCAATTTCAACATGCTTGAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTCTTCTTTGTATGCTCAGGTGGTTGCGGG---------------------------------------------------------------;1;12;22;Sequence;;;7 -Batch_AU247387_SNP_99_VIGOR;A;SNP;99;NNNTATAGCTCCTAACATTCCTGAAGTGAAGATCACGGAGGACCTGGCTGTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTA;CCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACT;1;12;23;Sequence;;;6 -Batch_AU247387_SNP_100_10102;A;SNP;100;NNNTATAGCTCCTAACATTCCTGAAGTGAAGATCACRGAGGACNNGGCTGTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTYGCTAG;TTGAGGGCGATTGGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;1;Sequence;;;7 -Batch_AU247387_SNP_100_10954;A;SNP;100;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAG;CTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTG;1;12;6;Sequence;;;7 -Batch_AU247387_SNP_100_CARILLON;A;SNP;100;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTAC;TTGAAGGAGATCGGTCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGTTCTGGTTACTCTTCAATTTGGGCATGCTTAAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG----------------------------------------------------------------;1;12;9;Sequence;;;10 -Batch_AU247387_SNP_100_F14-13;A;SNP;100;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTSAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAG;CTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;11;Sequence;;;7 -Batch_AU247387_SNP_100_GAGNY;A;SNP;100;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTAC;TTGAAGGAGATYGGTCAGGGCCGTGAYCTGAAGAAATTCCTSATTGTAYGTNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;12;Sequence;;;10 -Batch_AU247387_SNP_100_GREECE;A;SNP;100;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTSAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTAC;TTGAAGGAGATYGGYCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGTNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;13;Sequence;;;10 -Batch_AU247387_SNP_100_IMAGINE;A;SNP;100;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAG;CTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTG;1;12;14;Sequence;;;7 -Batch_AU247387_SNP_100_IRELAND;A;SNP;100;NNNTATAGCTCCTAACATTCCTGAAGTGACGATTCCAGAGGACACGATTGTGAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTAC;TTGATGGAGATTGGCCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGT---------------------------TTGTTTATCTCCTCAATTTCAATTTGGCCATGCTTAATGTTGGGTGCTTTCTGTATAGCCTGCTCACCAAGGTGTGATCTCTTCTTTGTATACACAGGTGGTTGCTGG----------------------------------------------------------------;1;12;15;Sequence;;;10 -Batch_AU247387_SNP_100_NEMOF;A;SNP;100;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAG;CTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTG;1;12;18;Sequence;;;7 -Batch_AU247387_SNP_100_NEMOH;A;SNP;100;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAG;CTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTG;1;12;19;Sequence;;;7 -Batch_AU247387_SNP_100_POLAND;A;SNP;100;NNNTATAGCTCCTAACATTCCTGAAGTGAAGATCACGGAGGACCTGGCTGTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAG;CTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTAYGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCNNNNNNNNNNNNN;1;12;20;Sequence;;;7 -Batch_AU247387_SNP_100_SPAIN;A;SNP;100;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTAC;TTGAAGGAGATCGGTCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGTTCTGGTTACTCTTCAATTTGGGCATGCTTAAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG----------------------------------------------------------------;1;12;21;Sequence;;;10 -Batch_AU247387_SNP_100_TRANSATE;A;SNP;100;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTAC;TTGAAGGAGATYGGCCAGGGTCGCGACCTCAAGAAATTCCTCATTGTATGTTGCTTGT-CTCTTCAATTTCAACATGCTTGAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTCTTCTTTGTATGCTCAGGTGGTTGCGGG----------------------------------------------------------------;1;12;22;Sequence;;;10 -Batch_AU247387_SNP_100_VIGOR;A;SNP;100;NNNTATAGCTCCTAACATTCCTGAAGTGAAGATCACGGAGGACCTGGCTGTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAG;CTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTG;1;12;23;Sequence;;;7 -Batch_AU247387_SNP_101_10102;A;SNP;101;NNNTATAGCTCCTAACATTCCTGAAGTGAAGATCACRGAGGACNNGGCTGTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTYGCTAGC;TGAGGGCGATTGGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;1;Sequence;;;10 -Batch_AU247387_SNP_101_10954;A;SNP;101;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGC;TGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGT;1;12;6;Sequence;;;7 -Batch_AU247387_SNP_101_CARILLON;A;SNP;101;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACT;TGAAGGAGATCGGTCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGTTCTGGTTACTCTTCAATTTGGGCATGCTTAAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG-----------------------------------------------------------------;1;12;9;Sequence;;;10 -Batch_AU247387_SNP_101_F14-13;A;SNP;101;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTSAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGC;TGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;11;Sequence;;;7 -Batch_AU247387_SNP_101_GAGNY;A;SNP;101;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACT;TGAAGGAGATYGGTCAGGGCCGTGAYCTGAAGAAATTCCTSATTGTAYGTNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;12;Sequence;;;10 -Batch_AU247387_SNP_101_GREECE;A;SNP;101;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTSAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACT;TGAAGGAGATYGGYCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGTNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;13;Sequence;;;10 -Batch_AU247387_SNP_101_IMAGINE;A;SNP;101;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGC;TGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGT;1;12;14;Sequence;;;7 -Batch_AU247387_SNP_101_IRELAND;A;SNP;101;NNNTATAGCTCCTAACATTCCTGAAGTGACGATTCCAGAGGACACGATTGTGAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACT;TGATGGAGATTGGCCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGT---------------------------TTGTTTATCTCCTCAATTTCAATTTGGCCATGCTTAATGTTGGGTGCTTTCTGTATAGCCTGCTCACCAAGGTGTGATCTCTTCTTTGTATACACAGGTGGTTGCTGG-----------------------------------------------------------------;1;12;15;Sequence;;;10 -Batch_AU247387_SNP_101_NEMOF;A;SNP;101;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGC;TGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGT;1;12;18;Sequence;;;7 -Batch_AU247387_SNP_101_NEMOH;A;SNP;101;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGC;TGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGT;1;12;19;Sequence;;;7 -Batch_AU247387_SNP_101_POLAND;A;SNP;101;NNNTATAGCTCCTAACATTCCTGAAGTGAAGATCACGGAGGACCTGGCTGTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGC;TGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTAYGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCNNNNNNNNNNNNNN;1;12;20;Sequence;;;7 -Batch_AU247387_SNP_101_SPAIN;A;SNP;101;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACT;TGAAGGAGATCGGTCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGTTCTGGTTACTCTTCAATTTGGGCATGCTTAAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG-----------------------------------------------------------------;1;12;21;Sequence;;;10 -Batch_AU247387_SNP_101_TRANSATE;A;SNP;101;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACT;TGAAGGAGATYGGCCAGGGTCGCGACCTCAAGAAATTCCTCATTGTATGTTGCTTGT-CTCTTCAATTTCAACATGCTTGAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTCTTCTTTGTATGCTCAGGTGGTTGCGGG-----------------------------------------------------------------;1;12;22;Sequence;;;10 -Batch_AU247387_SNP_101_VIGOR;A;SNP;101;NNNTATAGCTCCTAACATTCCTGAAGTGAAGATCACGGAGGACCTGGCTGTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGC;TGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGT;1;12;23;Sequence;;;7 -Batch_AU247387_SNP_105_10102;A;SNP;105;NNNTATAGCTCCTAACATTCCTGAAGTGAAGATCACRGAGGACNNGGCTGTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTYGCTAGCTTGA;GGCGATTGGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;1;Sequence;;;6 -Batch_AU247387_SNP_105_10954;A;SNP;105;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGA;GGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTAT;1;12;6;Sequence;;;6 -Batch_AU247387_SNP_105_CARILLON;A;SNP;105;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGA;GGAGATCGGTCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGTTCTGGTTACTCTTCAATTTGGGCATGCTTAAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------;1;12;9;Sequence;;;9 -Batch_AU247387_SNP_105_F14-13;A;SNP;105;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTSAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGA;GGCGATTGGTCAAGGCCGTGACCTGAAGAAANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;11;Sequence;;;6 -Batch_AU247387_SNP_105_GAGNY;A;SNP;105;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGA;GGAGATYGGTCAGGGCCGTGAYCTGAAGAAATTCCTSATTGTAYGTNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;12;Sequence;;;9 -Batch_AU247387_SNP_105_GREECE;A;SNP;105;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTSAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGA;GGAGATYGGYCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGTNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;13;Sequence;;;9 -Batch_AU247387_SNP_105_IMAGINE;A;SNP;105;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGA;GGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTAT;1;12;14;Sequence;;;6 -Batch_AU247387_SNP_105_IRELAND;A;SNP;105;NNNTATAGCTCCTAACATTCCTGAAGTGACGATTCCAGAGGACACGATTGTGAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGA;GGAGATTGGCCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGT---------------------------TTGTTTATCTCCTCAATTTCAATTTGGCCATGCTTAATGTTGGGTGCTTTCTGTATAGCCTGCTCACCAAGGTGTGATCTCTTCTTTGTATACACAGGTGGTTGCTGG---------------------------------------------------------------------;1;12;15;Sequence;;;10 -Batch_AU247387_SNP_105_NEMOF;A;SNP;105;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGA;GGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTAT;1;12;18;Sequence;;;6 -Batch_AU247387_SNP_105_NEMOH;A;SNP;105;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGA;GGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTAT;1;12;19;Sequence;;;6 -Batch_AU247387_SNP_105_POLAND;A;SNP;105;NNNTATAGCTCCTAACATTCCTGAAGTGAAGATCACGGAGGACCTGGCTGTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGA;GGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTAYGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCNNNNNNNNNNNNNNNNNN;1;12;20;Sequence;;;6 -Batch_AU247387_SNP_105_SPAIN;A;SNP;105;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGA;GGAGATCGGTCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGTTCTGGTTACTCTTCAATTTGGGCATGCTTAAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------;1;12;21;Sequence;;;9 -Batch_AU247387_SNP_105_TRANSATE;A;SNP;105;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGA;GGAGATYGGCCAGGGTCGCGACCTCAAGAAATTCCTCATTGTATGTTGCTTGT-CTCTTCAATTTCAACATGCTTGAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTCTTCTTTGTATGCTCAGGTGGTTGCGGG---------------------------------------------------------------------;1;12;22;Sequence;;;9 -Batch_AU247387_SNP_105_VIGOR;A;SNP;105;NNNTATAGCTCCTAACATTCCTGAAGTGAAGATCACGGAGGACCTGGCTGTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGA;GGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTAT;1;12;23;Sequence;;;6 -Batch_AU247387_SNP_108_10102;A;SNP;108;NNNTATAGCTCCTAACATTCCTGAAGTGAAGATCACRGAGGACNNGGCTGTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTYGCTAGCTTGAGGG;GATTGGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;1;Sequence;;;7 -Batch_AU247387_SNP_108_10954;A;SNP;108;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGG;GATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTG;1;12;6;Sequence;;;7 -Batch_AU247387_SNP_108_CARILLON;A;SNP;108;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGG;GATCGGTCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGTTCTGGTTACTCTTCAATTTGGGCATGCTTAAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG------------------------------------------------------------------------;1;12;9;Sequence;;;9 -Batch_AU247387_SNP_108_F14-13;A;SNP;108;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTSAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGG;GATTGGTCAAGGCCGTGACCTGAAGAAANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;11;Sequence;;;7 -Batch_AU247387_SNP_108_GAGNY;A;SNP;108;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGG;GATYGGTCAGGGCCGTGAYCTGAAGAAATTCCTSATTGTAYGTNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;12;Sequence;;;9 -Batch_AU247387_SNP_108_GREECE;A;SNP;108;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTSAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGG;GATYGGYCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGTNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;13;Sequence;;;9 -Batch_AU247387_SNP_108_IMAGINE;A;SNP;108;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGG;GATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTG;1;12;14;Sequence;;;7 -Batch_AU247387_SNP_108_IRELAND;A;SNP;108;NNNTATAGCTCCTAACATTCCTGAAGTGACGATTCCAGAGGACACGATTGTGAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGATGG;GATTGGCCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGT---------------------------TTGTTTATCTCCTCAATTTCAATTTGGCCATGCTTAATGTTGGGTGCTTTCTGTATAGCCTGCTCACCAAGGTGTGATCTCTTCTTTGTATACACAGGTGGTTGCTGG------------------------------------------------------------------------;1;12;15;Sequence;;;9 -Batch_AU247387_SNP_108_NEMOF;A;SNP;108;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGG;GATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTG;1;12;18;Sequence;;;7 -Batch_AU247387_SNP_108_NEMOH;A;SNP;108;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGG;GATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTG;1;12;19;Sequence;;;7 -Batch_AU247387_SNP_108_POLAND;A;SNP;108;NNNTATAGCTCCTAACATTCCTGAAGTGAAGATCACGGAGGACCTGGCTGTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGG;GATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTAYGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCNNNNNNNNNNNNNNNNNNNNN;1;12;20;Sequence;;;7 -Batch_AU247387_SNP_108_SPAIN;A;SNP;108;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGG;GATCGGTCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGTTCTGGTTACTCTTCAATTTGGGCATGCTTAAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG------------------------------------------------------------------------;1;12;21;Sequence;;;9 -Batch_AU247387_SNP_108_TRANSATE;A;SNP;108;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGG;GATYGGCCAGGGTCGCGACCTCAAGAAATTCCTCATTGTATGTTGCTTGT-CTCTTCAATTTCAACATGCTTGAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTCTTCTTTGTATGCTCAGGTGGTTGCGGG------------------------------------------------------------------------;1;12;22;Sequence;;;9 -Batch_AU247387_SNP_108_VIGOR;A;SNP;108;NNNTATAGCTCCTAACATTCCTGAAGTGAAGATCACGGAGGACCTGGCTGTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGG;GATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTG;1;12;23;Sequence;;;7 -Batch_AU247387_SNP_112_10102;A;SNP;112;NNNTATAGCTCCTAACATTCCTGAAGTGAAGATCACRGAGGACNNGGCTGTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTYGCTAGCTTGAGGGCGAT;GGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;1;Sequence;;;10 -Batch_AU247387_SNP_112_10954;A;SNP;112;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGAT;GGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCG;1;12;6;Sequence;;;10 -Batch_AU247387_SNP_112_CARILLON;A;SNP;112;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGAT;GGTCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGTTCTGGTTACTCTTCAATTTGGGCATGCTTAAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG----------------------------------------------------------------------------;1;12;9;Sequence;;;7 -Batch_AU247387_SNP_112_F14-13;A;SNP;112;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTSAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGAT;GGTCAAGGCCGTGACCTGAAGAAANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;11;Sequence;;;10 -Batch_AU247387_SNP_112_GAGNY;A;SNP;112;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGAT;GGTCAGGGCCGTGAYCTGAAGAAATTCCTSATTGTAYGTNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;12;Sequence;;;1 -Batch_AU247387_SNP_112_GREECE;A;SNP;112;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTSAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGAT;GGYCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGTNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;13;Sequence;;;1 -Batch_AU247387_SNP_112_IMAGINE;A;SNP;112;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGAT;GGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCG;1;12;14;Sequence;;;10 -Batch_AU247387_SNP_112_IRELAND;A;SNP;112;NNNTATAGCTCCTAACATTCCTGAAGTGACGATTCCAGAGGACACGATTGTGAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGATGGAGAT;GGCCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGT---------------------------TTGTTTATCTCCTCAATTTCAATTTGGCCATGCTTAATGTTGGGTGCTTTCTGTATAGCCTGCTCACCAAGGTGTGATCTCTTCTTTGTATACACAGGTGGTTGCTGG----------------------------------------------------------------------------;1;12;15;Sequence;;;10 -Batch_AU247387_SNP_112_NEMOF;A;SNP;112;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGAT;GGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCG;1;12;18;Sequence;;;10 -Batch_AU247387_SNP_112_NEMOH;A;SNP;112;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGAT;GGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCG;1;12;19;Sequence;;;10 -Batch_AU247387_SNP_112_POLAND;A;SNP;112;NNNTATAGCTCCTAACATTCCTGAAGTGAAGATCACGGAGGACCTGGCTGTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGAT;GGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTAYGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;20;Sequence;;;10 -Batch_AU247387_SNP_112_SPAIN;A;SNP;112;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGAT;GGTCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGTTCTGGTTACTCTTCAATTTGGGCATGCTTAAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG----------------------------------------------------------------------------;1;12;21;Sequence;;;7 -Batch_AU247387_SNP_112_TRANSATE;A;SNP;112;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGAT;GGCCAGGGTCGCGACCTCAAGAAATTCCTCATTGTATGTTGCTTGT-CTCTTCAATTTCAACATGCTTGAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTCTTCTTTGTATGCTCAGGTGGTTGCGGG----------------------------------------------------------------------------;1;12;22;Sequence;;;1 -Batch_AU247387_SNP_112_VIGOR;A;SNP;112;NNNTATAGCTCCTAACATTCCTGAAGTGAAGATCACGGAGGACCTGGCTGTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGAT;GGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCG;1;12;23;Sequence;;;10 -Batch_AU247387_SNP_115_10954;A;SNP;115;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGG;CAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAG;1;12;6;Sequence;;;10 -Batch_AU247387_SNP_115_ABERAVON;A;SNP;115;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNGG;CAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;7;Sequence;;;10 -Batch_AU247387_SNP_115_CARILLON;A;SNP;115;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATCGG;CAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGTTCTGGTTACTCTTCAATTTGGGCATGCTTAAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG-------------------------------------------------------------------------------;1;12;9;Sequence;;;10 -Batch_AU247387_SNP_115_F14-13;A;SNP;115;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTSAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGG;CAAGGCCGTGACCTGAAGAAANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;11;Sequence;;;10 -Batch_AU247387_SNP_115_GAGNY;A;SNP;115;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATYGG;CAGGGCCGTGAYCTGAAGAAATTCCTSATTGTAYGTNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;12;Sequence;;;10 -Batch_AU247387_SNP_115_GREECE;A;SNP;115;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTSAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATYGG;CAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGTNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;13;Sequence;;;1 -Batch_AU247387_SNP_115_IMAGINE;A;SNP;115;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGG;CAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAG;1;12;14;Sequence;;;10 -Batch_AU247387_SNP_115_IRELAND;A;SNP;115;NNNTATAGCTCCTAACATTCCTGAAGTGACGATTCCAGAGGACACGATTGTGAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGATGGAGATTGG;CAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGT---------------------------TTGTTTATCTCCTCAATTTCAATTTGGCCATGCTTAATGTTGGGTGCTTTCTGTATAGCCTGCTCACCAAGGTGTGATCTCTTCTTTGTATACACAGGTGGTTGCTGG-------------------------------------------------------------------------------;1;12;15;Sequence;;;7 -Batch_AU247387_SNP_115_NEMOF;A;SNP;115;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGG;CAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAG;1;12;18;Sequence;;;10 -Batch_AU247387_SNP_115_NEMOH;A;SNP;115;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGG;CAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAG;1;12;19;Sequence;;;10 -Batch_AU247387_SNP_115_POLAND;A;SNP;115;NNNTATAGCTCCTAACATTCCTGAAGTGAAGATCACGGAGGACCTGGCTGTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGG;CAAGGCCGTGACCTGAAGAAATTCCTGATTGTAYGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;20;Sequence;;;10 -Batch_AU247387_SNP_115_SPAIN;A;SNP;115;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATCGG;CAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGTTCTGGTTACTCTTCAATTTGGGCATGCTTAAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG-------------------------------------------------------------------------------;1;12;21;Sequence;;;10 -Batch_AU247387_SNP_115_TRANSATE;A;SNP;115;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATYGG;CAGGGTCGCGACCTCAAGAAATTCCTCATTGTATGTTGCTTGT-CTCTTCAATTTCAACATGCTTGAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTCTTCTTTGTATGCTCAGGTGGTTGCGGG-------------------------------------------------------------------------------;1;12;22;Sequence;;;7 -Batch_AU247387_SNP_115_VIGOR;A;SNP;115;NNNTATAGCTCCTAACATTCCTGAAGTGAAGATCACGGAGGACCTGGCTGTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGG;CAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAG;1;12;23;Sequence;;;10 -Batch_AU247387_SNP_118_10954;A;SNP;118;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCA;GGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTG;1;12;6;Sequence;;;9 -Batch_AU247387_SNP_118_ABERAVON;A;SNP;118;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNGGTCA;GGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;7;Sequence;;;9 -Batch_AU247387_SNP_118_CARILLON;A;SNP;118;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATCGGTCA;GGCCGTGATCTGAAGAAATTCCTCATTGTATGTTCTGGTTACTCTTCAATTTGGGCATGCTTAAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG----------------------------------------------------------------------------------;1;12;9;Sequence;;;6 -Batch_AU247387_SNP_118_F14-13;A;SNP;118;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTSAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCA;GGCCGTGACCTGAAGAAANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;11;Sequence;;;9 -Batch_AU247387_SNP_118_GAGNY;A;SNP;118;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATYGGTCA;GGCCGTGAYCTGAAGAAATTCCTSATTGTAYGTNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;12;Sequence;;;6 -Batch_AU247387_SNP_118_GREECE;A;SNP;118;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTSAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATYGGYCA;GGCCGTGATCTGAAGAAATTCCTCATTGTATGTNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;13;Sequence;;;6 -Batch_AU247387_SNP_118_IMAGINE;A;SNP;118;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCA;GGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTG;1;12;14;Sequence;;;9 -Batch_AU247387_SNP_118_IRELAND;A;SNP;118;NNNTATAGCTCCTAACATTCCTGAAGTGACGATTCCAGAGGACACGATTGTGAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGATGGAGATTGGCCA;GGCCGTGATCTGAAGAAATTCCTCATTGTATGT---------------------------TTGTTTATCTCCTCAATTTCAATTTGGCCATGCTTAATGTTGGGTGCTTTCTGTATAGCCTGCTCACCAAGGTGTGATCTCTTCTTTGTATACACAGGTGGTTGCTGG----------------------------------------------------------------------------------;1;12;15;Sequence;;;6 -Batch_AU247387_SNP_118_NEMOF;A;SNP;118;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCA;GGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTG;1;12;18;Sequence;;;9 -Batch_AU247387_SNP_118_NEMOH;A;SNP;118;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCA;GGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTG;1;12;19;Sequence;;;9 -Batch_AU247387_SNP_118_POLAND;A;SNP;118;NNNTATAGCTCCTAACATTCCTGAAGTGAAGATCACGGAGGACCTGGCTGTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCA;GGCCGTGACCTGAAGAAATTCCTGATTGTAYGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;20;Sequence;;;9 -Batch_AU247387_SNP_118_SPAIN;A;SNP;118;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATCGGTCA;GGCCGTGATCTGAAGAAATTCCTCATTGTATGTTCTGGTTACTCTTCAATTTGGGCATGCTTAAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG----------------------------------------------------------------------------------;1;12;21;Sequence;;;6 -Batch_AU247387_SNP_118_TRANSATE;A;SNP;118;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATYGGCCA;GGTCGCGACCTCAAGAAATTCCTCATTGTATGTTGCTTGT-CTCTTCAATTTCAACATGCTTGAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTCTTCTTTGTATGCTCAGGTGGTTGCGGG----------------------------------------------------------------------------------;1;12;22;Sequence;;;6 -Batch_AU247387_SNP_118_VIGOR;A;SNP;118;NNNTATAGCTCCTAACATTCCTGAAGTGAAGATCACGGAGGACCTGGCTGTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCA;GGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTG;1;12;23;Sequence;;;9 -Batch_AU247387_SNP_121_10954;A;SNP;121;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGG;CGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATT;1;12;6;Sequence;;;7 -Batch_AU247387_SNP_121_ABERAVON;A;SNP;121;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNGGTCAAGG;CGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;7;Sequence;;;7 -Batch_AU247387_SNP_121_CARILLON;A;SNP;121;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATCGGTCAGGG;CGTGATCTGAAGAAATTCCTCATTGTATGTTCTGGTTACTCTTCAATTTGGGCATGCTTAAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG-------------------------------------------------------------------------------------;1;12;9;Sequence;;;7 -Batch_AU247387_SNP_121_F14-13;A;SNP;121;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTSAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGG;CGTGACCTGAAGAAANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;11;Sequence;;;7 -Batch_AU247387_SNP_121_GAGNY;A;SNP;121;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATYGGTCAGGG;CGTGAYCTGAAGAAATTCCTSATTGTAYGTNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;12;Sequence;;;7 -Batch_AU247387_SNP_121_GREECE;A;SNP;121;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTSAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATYGGYCAGGG;CGTGATCTGAAGAAATTCCTCATTGTATGTNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;13;Sequence;;;7 -Batch_AU247387_SNP_121_IMAGINE;A;SNP;121;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGG;CGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATT;1;12;14;Sequence;;;7 -Batch_AU247387_SNP_121_IRELAND;A;SNP;121;NNNTATAGCTCCTAACATTCCTGAAGTGACGATTCCAGAGGACACGATTGTGAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGATGGAGATTGGCCAGGG;CGTGATCTGAAGAAATTCCTCATTGTATGT---------------------------TTGTTTATCTCCTCAATTTCAATTTGGCCATGCTTAATGTTGGGTGCTTTCTGTATAGCCTGCTCACCAAGGTGTGATCTCTTCTTTGTATACACAGGTGGTTGCTGG-------------------------------------------------------------------------------------;1;12;15;Sequence;;;7 -Batch_AU247387_SNP_121_NEMOF;A;SNP;121;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGG;CGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATT;1;12;18;Sequence;;;7 -Batch_AU247387_SNP_121_NEMOH;A;SNP;121;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGG;CGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATT;1;12;19;Sequence;;;7 -Batch_AU247387_SNP_121_POLAND;A;SNP;121;NNNTATAGCTCCTAACATTCCTGAAGTGAAGATCACGGAGGACCTGGCTGTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGG;CGTGACCTGAAGAAATTCCTGATTGTAYGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;20;Sequence;;;7 -Batch_AU247387_SNP_121_SPAIN;A;SNP;121;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATCGGTCAGGG;CGTGATCTGAAGAAATTCCTCATTGTATGTTCTGGTTACTCTTCAATTTGGGCATGCTTAAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG-------------------------------------------------------------------------------------;1;12;21;Sequence;;;7 -Batch_AU247387_SNP_121_TRANSATE;A;SNP;121;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATYGGCCAGGG;CGCGACCTCAAGAAATTCCTCATTGTATGTTGCTTGT-CTCTTCAATTTCAACATGCTTGAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTCTTCTTTGTATGCTCAGGTGGTTGCGGG-------------------------------------------------------------------------------------;1;12;22;Sequence;;;10 -Batch_AU247387_SNP_121_VIGOR;A;SNP;121;NNNTATAGCTCCTAACATTCCTGAAGTGAAGATCACGGAGGACCTGGCTGTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGG;CGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATT;1;12;23;Sequence;;;7 -Batch_AU247387_SNP_124_10954;A;SNP;124;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCG;GACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCA;1;12;6;Sequence;;;10 -Batch_AU247387_SNP_124_ABERAVON;A;SNP;124;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNGGTCAAGGCCG;GACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;7;Sequence;;;10 -Batch_AU247387_SNP_124_CARILLON;A;SNP;124;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATCGGTCAGGGCCG;GATCTGAAGAAATTCCTCATTGTATGTTCTGGTTACTCTTCAATTTGGGCATGCTTAAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG----------------------------------------------------------------------------------------;1;12;9;Sequence;;;10 -Batch_AU247387_SNP_124_F14-13;A;SNP;124;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTSAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCG;GACCTGAAGAAANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;11;Sequence;;;10 -Batch_AU247387_SNP_124_GAGNY;A;SNP;124;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATYGGTCAGGGCCG;GAYCTGAAGAAATTCCTSATTGTAYGTNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;12;Sequence;;;10 -Batch_AU247387_SNP_124_GREECE;A;SNP;124;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTSAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATYGGYCAGGGCCG;GATCTGAAGAAATTCCTCATTGTATGTNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;13;Sequence;;;10 -Batch_AU247387_SNP_124_IMAGINE;A;SNP;124;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCG;GACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCA;1;12;14;Sequence;;;10 -Batch_AU247387_SNP_124_IRELAND;A;SNP;124;NNNTATAGCTCCTAACATTCCTGAAGTGACGATTCCAGAGGACACGATTGTGAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGATGGAGATTGGCCAGGGCCG;GATCTGAAGAAATTCCTCATTGTATGT---------------------------TTGTTTATCTCCTCAATTTCAATTTGGCCATGCTTAATGTTGGGTGCTTTCTGTATAGCCTGCTCACCAAGGTGTGATCTCTTCTTTGTATACACAGGTGGTTGCTGG----------------------------------------------------------------------------------------;1;12;15;Sequence;;;10 -Batch_AU247387_SNP_124_NEMOF;A;SNP;124;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCG;GACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCA;1;12;18;Sequence;;;10 -Batch_AU247387_SNP_124_NEMOH;A;SNP;124;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCG;GACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCA;1;12;19;Sequence;;;10 -Batch_AU247387_SNP_124_POLAND;A;SNP;124;NNNTATAGCTCCTAACATTCCTGAAGTGAAGATCACGGAGGACCTGGCTGTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCG;GACCTGAAGAAATTCCTGATTGTAYGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;20;Sequence;;;10 -Batch_AU247387_SNP_124_SPAIN;A;SNP;124;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATCGGTCAGGGCCG;GATCTGAAGAAATTCCTCATTGTATGTTCTGGTTACTCTTCAATTTGGGCATGCTTAAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG----------------------------------------------------------------------------------------;1;12;21;Sequence;;;10 -Batch_AU247387_SNP_124_TRANSATE;A;SNP;124;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATYGGCCAGGGTCG;GACCTCAAGAAATTCCTCATTGTATGTTGCTTGT-CTCTTCAATTTCAACATGCTTGAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTCTTCTTTGTATGCTCAGGTGGTTGCGGG----------------------------------------------------------------------------------------;1;12;22;Sequence;;;7 -Batch_AU247387_SNP_124_VIGOR;A;SNP;124;NNNTATAGCTCCTAACATTCCTGAAGTGAAGATCACGGAGGACCTGGCTGTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCG;GACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCA;1;12;23;Sequence;;;10 -Batch_AU247387_SNP_127_10954;A;SNP;127;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGA;CTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGT;1;12;6;Sequence;;;7 -Batch_AU247387_SNP_127_ABERAVON;A;SNP;127;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNGGTCAAGGCCGTGA;CTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;7;Sequence;;;7 -Batch_AU247387_SNP_127_CARILLON;A;SNP;127;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATCGGTCAGGGCCGTGA;CTGAAGAAATTCCTCATTGTATGTTCTGGTTACTCTTCAATTTGGGCATGCTTAAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG-------------------------------------------------------------------------------------------;1;12;9;Sequence;;;10 -Batch_AU247387_SNP_127_F14-13;A;SNP;127;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTSAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGA;CTGAAGAAANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;11;Sequence;;;7 -Batch_AU247387_SNP_127_GAGNY;A;SNP;127;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATYGGTCAGGGCCGTGA;CTGAAGAAATTCCTSATTGTAYGTNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;12;Sequence;;;1 -Batch_AU247387_SNP_127_GREECE;A;SNP;127;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTSAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATYGGYCAGGGCCGTGA;CTGAAGAAATTCCTCATTGTATGTNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;13;Sequence;;;10 -Batch_AU247387_SNP_127_IMAGINE;A;SNP;127;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGA;CTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGT;1;12;14;Sequence;;;7 -Batch_AU247387_SNP_127_IRELAND;A;SNP;127;NNNTATAGCTCCTAACATTCCTGAAGTGACGATTCCAGAGGACACGATTGTGAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGATGGAGATTGGCCAGGGCCGTGA;CTGAAGAAATTCCTCATTGTATGT---------------------------TTGTTTATCTCCTCAATTTCAATTTGGCCATGCTTAATGTTGGGTGCTTTCTGTATAGCCTGCTCACCAAGGTGTGATCTCTTCTTTGTATACACAGGTGGTTGCTGG-------------------------------------------------------------------------------------------;1;12;15;Sequence;;;10 -Batch_AU247387_SNP_127_NEMOF;A;SNP;127;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGA;CTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGT;1;12;18;Sequence;;;7 -Batch_AU247387_SNP_127_NEMOH;A;SNP;127;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGA;CTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGT;1;12;19;Sequence;;;7 -Batch_AU247387_SNP_127_POLAND;A;SNP;127;NNNTATAGCTCCTAACATTCCTGAAGTGAAGATCACGGAGGACCTGGCTGTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGA;CTGAAGAAATTCCTGATTGTAYGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;20;Sequence;;;7 -Batch_AU247387_SNP_127_SPAIN;A;SNP;127;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATCGGTCAGGGCCGTGA;CTGAAGAAATTCCTCATTGTATGTTCTGGTTACTCTTCAATTTGGGCATGCTTAAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG-------------------------------------------------------------------------------------------;1;12;21;Sequence;;;10 -Batch_AU247387_SNP_127_TRANSATE;A;SNP;127;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATYGGCCAGGGTCGCGA;CTCAAGAAATTCCTCATTGTATGTTGCTTGT-CTCTTCAATTTCAACATGCTTGAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTCTTCTTTGTATGCTCAGGTGGTTGCGGG-------------------------------------------------------------------------------------------;1;12;22;Sequence;;;7 -Batch_AU247387_SNP_127_VIGOR;A;SNP;127;NNNTATAGCTCCTAACATTCCTGAAGTGAAGATCACGGAGGACCTGGCTGTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGA;CTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGT;1;12;23;Sequence;;;7 -Batch_AU247387_SNP_130_10954;A;SNP;130;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCT;AAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTG;1;12;6;Sequence;;;6 -Batch_AU247387_SNP_130_ABERAVON;A;SNP;130;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNGGTCAAGGCCGTGACCT;AAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;7;Sequence;;;6 -Batch_AU247387_SNP_130_CARILLON;A;SNP;130;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATCGGTCAGGGCCGTGATCT;AAGAAATTCCTCATTGTATGTTCTGGTTACTCTTCAATTTGGGCATGCTTAAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG----------------------------------------------------------------------------------------------;1;12;9;Sequence;;;6 -Batch_AU247387_SNP_130_F14-13;A;SNP;130;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTSAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCT;AAGAAANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;11;Sequence;;;6 -Batch_AU247387_SNP_130_GAGNY;A;SNP;130;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATYGGTCAGGGCCGTGAYCT;AAGAAATTCCTSATTGTAYGTNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;12;Sequence;;;6 -Batch_AU247387_SNP_130_GREECE;A;SNP;130;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTSAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATYGGYCAGGGCCGTGATCT;AAGAAATTCCTCATTGTATGTNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;13;Sequence;;;6 -Batch_AU247387_SNP_130_IMAGINE;A;SNP;130;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCT;AAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTG;1;12;14;Sequence;;;6 -Batch_AU247387_SNP_130_IRELAND;A;SNP;130;NNNTATAGCTCCTAACATTCCTGAAGTGACGATTCCAGAGGACACGATTGTGAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGATGGAGATTGGCCAGGGCCGTGATCT;AAGAAATTCCTCATTGTATGT---------------------------TTGTTTATCTCCTCAATTTCAATTTGGCCATGCTTAATGTTGGGTGCTTTCTGTATAGCCTGCTCACCAAGGTGTGATCTCTTCTTTGTATACACAGGTGGTTGCTGG----------------------------------------------------------------------------------------------;1;12;15;Sequence;;;6 -Batch_AU247387_SNP_130_NEMOF;A;SNP;130;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCT;AAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTG;1;12;18;Sequence;;;6 -Batch_AU247387_SNP_130_NEMOH;A;SNP;130;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCT;AAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTG;1;12;19;Sequence;;;6 -Batch_AU247387_SNP_130_POLAND;A;SNP;130;NNNTATAGCTCCTAACATTCCTGAAGTGAAGATCACGGAGGACCTGGCTGTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCT;AAGAAATTCCTGATTGTAYGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;20;Sequence;;;6 -Batch_AU247387_SNP_130_SPAIN;A;SNP;130;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATCGGTCAGGGCCGTGATCT;AAGAAATTCCTCATTGTATGTTCTGGTTACTCTTCAATTTGGGCATGCTTAAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG----------------------------------------------------------------------------------------------;1;12;21;Sequence;;;6 -Batch_AU247387_SNP_130_TRANSATE;A;SNP;130;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATYGGCCAGGGTCGCGACCT;AAGAAATTCCTCATTGTATGTTGCTTGT-CTCTTCAATTTCAACATGCTTGAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTCTTCTTTGTATGCTCAGGTGGTTGCGGG----------------------------------------------------------------------------------------------;1;12;22;Sequence;;;7 -Batch_AU247387_SNP_130_VIGOR;A;SNP;130;NNNTATAGCTCCTAACATTCCTGAAGTGAAGATCACGGAGGACCTGGCTGTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCT;AAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTG;1;12;23;Sequence;;;6 -Batch_AU247387_SNP_142_10954;A;SNP;142;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCT;ATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT--;1;12;6;Sequence;;;6 -Batch_AU247387_SNP_142_ABERAVON;A;SNP;142;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNGGTCAAGGCCGTGACCTGAAGAAATTCCT;ATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;7;Sequence;;;6 -Batch_AU247387_SNP_142_CARILLON;A;SNP;142;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATCGGTCAGGGCCGTGATCTGAAGAAATTCCT;ATTGTATGTTCTGGTTACTCTTCAATTTGGGCATGCTTAAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGG;1;12;9;Sequence;;;7 -Batch_AU247387_SNP_142_GAGNY;A;SNP;142;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATYGGTCAGGGCCGTGAYCTGAAGAAATTCCT;ATTGTAYGTNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;12;Sequence;;;4 -Batch_AU247387_SNP_142_GREECE;A;SNP;142;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTSAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATYGGYCAGGGCCGTGATCTGAAGAAATTCCT;ATTGTATGTNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;13;Sequence;;;7 -Batch_AU247387_SNP_142_IMAGINE;A;SNP;142;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCT;ATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT--;1;12;14;Sequence;;;6 -Batch_AU247387_SNP_142_IRELAND;A;SNP;142;NNNTATAGCTCCTAACATTCCTGAAGTGACGATTCCAGAGGACACGATTGTGAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGATGGAGATTGGCCAGGGCCGTGATCTGAAGAAATTCCT;ATTGTATGT---------------------------TTGTTTATCTCCTCAATTTCAATTTGGCCATGCTTAATGTTGGGTGCTTTCTGTATAGCCTGCTCACCAAGGTGTGATCTCTTCTTTGTATACACAGGTGGTTGCTGG---------------------------------------------------------------------------------------------------CCTCTGG;1;12;15;Sequence;;;7 -Batch_AU247387_SNP_142_NEMOF;A;SNP;142;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCT;ATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT--;1;12;18;Sequence;;;6 -Batch_AU247387_SNP_142_NEMOH;A;SNP;142;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCT;ATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT--;1;12;19;Sequence;;;6 -Batch_AU247387_SNP_142_POLAND;A;SNP;142;NNNTATAGCTCCTAACATTCCTGAAGTGAAGATCACGGAGGACCTGGCTGTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCT;ATTGTAYGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;20;Sequence;;;6 -Batch_AU247387_SNP_142_SPAIN;A;SNP;142;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATCGGTCAGGGCCGTGATCTGAAGAAATTCCT;ATTGTATGTTCTGGTTACTCTTCAATTTGGGCATGCTTAAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGG;1;12;21;Sequence;;;7 -Batch_AU247387_SNP_142_TRANSATE;A;SNP;142;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATYGGCCAGGGTCGCGACCTCAAGAAATTCCT;ATTGTATGTTGCTTGT-CTCTTCAATTTCAACATGCTTGAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTCTTCTTTGTATGCTCAGGTGGTTGCGGG---------------------------------------------------------------------------------------------------TCTCTGG;1;12;22;Sequence;;;7 -Batch_AU247387_SNP_142_VIGOR;A;SNP;142;NNNTATAGCTCCTAACATTCCTGAAGTGAAGATCACGGAGGACCTGGCTGTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCT;ATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT--;1;12;23;Sequence;;;6 -Batch_AU247387_SNP_149_10954;A;SNP;149;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTA;GT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------;1;12;6;Sequence;;;7 -Batch_AU247387_SNP_149_ABERAVON;A;SNP;149;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTA;GT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;7;Sequence;;;7 -Batch_AU247387_SNP_149_CARILLON;A;SNP;149;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATCGGTCAGGGCCGTGATCTGAAGAAATTCCTCATTGTA;GTTCTGGTTACTCTTCAATTTGGGCATGCTTAAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTT;1;12;9;Sequence;;;10 -Batch_AU247387_SNP_149_GAGNY;A;SNP;149;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATYGGTCAGGGCCGTGAYCTGAAGAAATTCCTSATTGTA;GTNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;12;Sequence;;;1 -Batch_AU247387_SNP_149_GREECE;A;SNP;149;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTSAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATYGGYCAGGGCCGTGATCTGAAGAAATTCCTCATTGTA;GTNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;13;Sequence;;;10 -Batch_AU247387_SNP_149_IMAGINE;A;SNP;149;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTA;GT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------;1;12;14;Sequence;;;7 -Batch_AU247387_SNP_149_IRELAND;A;SNP;149;NNNTATAGCTCCTAACATTCCTGAAGTGACGATTCCAGAGGACACGATTGTGAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGATGGAGATTGGCCAGGGCCGTGATCTGAAGAAATTCCTCATTGTA;GT---------------------------TTGTTTATCTCCTCAATTTCAATTTGGCCATGCTTAATGTTGGGTGCTTTCTGTATAGCCTGCTCACCAAGGTGTGATCTCTTCTTTGTATACACAGGTGGTTGCTGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTT;1;12;15;Sequence;;;10 -Batch_AU247387_SNP_149_NEMOF;A;SNP;149;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTA;GT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------;1;12;18;Sequence;;;7 -Batch_AU247387_SNP_149_NEMOH;A;SNP;149;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTA;GT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------;1;12;19;Sequence;;;7 -Batch_AU247387_SNP_149_POLAND;A;SNP;149;NNNTATAGCTCCTAACATTCCTGAAGTGAAGATCACGGAGGACCTGGCTGTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTA;GT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;20;Sequence;;;1 -Batch_AU247387_SNP_149_SPAIN;A;SNP;149;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATCGGTCAGGGCCGTGATCTGAAGAAATTCCTCATTGTA;GTTCTGGTTACTCTTCAATTTGGGCATGCTTAAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTT;1;12;21;Sequence;;;10 -Batch_AU247387_SNP_149_TRANSATE;A;SNP;149;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATYGGCCAGGGTCGCGACCTCAAGAAATTCCTCATTGTA;GTTGCTTGT-CTCTTCAATTTCAACATGCTTGAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTCTTCTTTGTATGCTCAGGTGGTTGCGGG---------------------------------------------------------------------------------------------------TCTCTGGGTTCTTT;1;12;22;Sequence;;;10 -Batch_AU247387_SNP_149_VIGOR;A;SNP;149;NNNTATAGCTCCTAACATTCCTGAAGTGAAGATCACGGAGGACCTGGCTGTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTA;GT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------;1;12;23;Sequence;;;7 -Batch_AU247387_DEL_152_10954;A;DELETION;152;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT;TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTC;27;12;6;Sequence;;;54 -Batch_AU247387_DEL_152_ABERAVON;A;DELETION;152;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT;TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;27;12;7;Sequence;;;54 -Batch_AU247387_DEL_152_CARILLON;A;DELETION;152;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATCGGTCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGT;TTAAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTG;27;12;9;Sequence;;;64 -Batch_AU247387_DEL_152_IMAGINE;A;DELETION;152;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT;TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTC;27;12;14;Sequence;;;54 -Batch_AU247387_DEL_152_IRELAND;A;DELETION;152;NNNTATAGCTCCTAACATTCCTGAAGTGACGATTCCAGAGGACACGATTGTGAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGATGGAGATTGGCCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGT;TTGTTTATCTCCTCAATTTCAATTTGGCCATGCTTAATGTTGGGTGCTTTCTGTATAGCCTGCTCACCAAGGTGTGATCTCTTCTTTGTATACACAGGTGGTTGCTGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTG;27;12;15;Sequence;;;54 -Batch_AU247387_DEL_152_NEMOF;A;DELETION;152;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT;TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGNNNNNNNNNNNNNNNNNN;27;12;18;Sequence;;;54 -Batch_AU247387_DEL_152_NEMOH;A;DELETION;152;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT;TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTC;27;12;19;Sequence;;;54 -Batch_AU247387_DEL_152_POLAND;A;DELETION;152;NNNTATAGCTCCTAACATTCCTGAAGTGAAGATCACGGAGGACCTGGCTGTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTAYGT;TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;27;12;20;Sequence;;;54 -Batch_AU247387_DEL_152_SPAIN;A;DELETION;152;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATCGGTCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGT;TTAAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTG;27;12;21;Sequence;;;64 -Batch_AU247387_DEL_152_TRANSATE;A;DELETION;152;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATYGGCCAGGGTCGCGACCTCAAGAAATTCCTCATTGTATGT;TTGAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTCTTCTTTGTATGCTCAGGTGGTTGCGGG---------------------------------------------------------------------------------------------------TCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTG;27;12;22;Sequence;;;62 -Batch_AU247387_DEL_152_VIGOR;A;DELETION;152;NNNTATAGCTCCTAACATTCCTGAAGTGAAGATCACGGAGGACCTGGCTGTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT;TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTC;27;12;23;Sequence;;;54 -Batch_AU247387_SNP_153_CARILLON;A;SNP;153;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATCGGTCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGTT;TGGTTACTCTTCAATTTGGGCATGCTTAAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGT;1;12;9;Sequence;;;7 -Batch_AU247387_SNP_153_SPAIN;A;SNP;153;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATCGGTCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGTT;TGGTTACTCTTCAATTTGGGCATGCTTAAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGT;1;12;21;Sequence;;;7 -Batch_AU247387_SNP_153_TRANSATE;A;SNP;153;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATYGGCCAGGGTCGCGACCTCAAGAAATTCCTCATTGTATGTT;CTTGT-CTCTTCAATTTCAACATGCTTGAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTCTTCTTTGTATGCTCAGGTGGTTGCGGG---------------------------------------------------------------------------------------------------TCTCTGGGTTCTTTCTGT;1;12;22;Sequence;;;6 -Batch_AU247387_SNP_154_CARILLON;A;SNP;154;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATCGGTCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGTTC;GGTTACTCTTCAATTTGGGCATGCTTAAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTT;1;12;9;Sequence;;;10 -Batch_AU247387_SNP_154_SPAIN;A;SNP;154;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATCGGTCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGTTC;GGTTACTCTTCAATTTGGGCATGCTTAAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTT;1;12;21;Sequence;;;10 -Batch_AU247387_SNP_154_TRANSATE;A;SNP;154;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATYGGCCAGGGTCGCGACCTCAAGAAATTCCTCATTGTATGTTG;TTGT-CTCTTCAATTTCAACATGCTTGAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTCTTCTTTGTATGCTCAGGTGGTTGCGGG---------------------------------------------------------------------------------------------------TCTCTGGGTTCTTTCTGTT;1;12;22;Sequence;;;7 -Batch_AU247387_SNP_155_CARILLON;A;SNP;155;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATCGGTCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGTTCT;GTTACTCTTCAATTTGGGCATGCTTAAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTC;1;12;9;Sequence;;;6 -Batch_AU247387_SNP_155_SPAIN;A;SNP;155;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATCGGTCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGTTCT;GTTACTCTTCAATTTGGGCATGCTTAAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTC;1;12;21;Sequence;;;6 -Batch_AU247387_SNP_155_TRANSATE;A;SNP;155;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATYGGCCAGGGTCGCGACCTCAAGAAATTCCTCATTGTATGTTGC;TGT-CTCTTCAATTTCAACATGCTTGAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTCTTCTTTGTATGCTCAGGTGGTTGCGGG---------------------------------------------------------------------------------------------------TCTCTGGGTTCTTTCTGTTC;1;12;22;Sequence;;;10 -Batch_AU247387_SNP_156_CARILLON;A;SNP;156;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATCGGTCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGTTCTG;TTACTCTTCAATTTGGGCATGCTTAAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCT;1;12;9;Sequence;;;6 -Batch_AU247387_SNP_156_SPAIN;A;SNP;156;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATCGGTCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGTTCTG;TTACTCTTCAATTTGGGCATGCTTAAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCT;1;12;21;Sequence;;;6 -Batch_AU247387_SNP_156_TRANSATE;A;SNP;156;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATYGGCCAGGGTCGCGACCTCAAGAAATTCCTCATTGTATGTTGCT;GT-CTCTTCAATTTCAACATGCTTGAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTCTTCTTTGTATGCTCAGGTGGTTGCGGG---------------------------------------------------------------------------------------------------TCTCTGGGTTCTTTCTGTTCT;1;12;22;Sequence;;;10 -Batch_AU247387_SNP_157_CARILLON;A;SNP;157;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATCGGTCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGTTCTGG;TACTCTTCAATTTGGGCATGCTTAAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTT;1;12;9;Sequence;;;10 -Batch_AU247387_SNP_157_SPAIN;A;SNP;157;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATCGGTCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGTTCTGG;TACTCTTCAATTTGGGCATGCTTAAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTT;1;12;21;Sequence;;;10 -Batch_AU247387_SNP_157_TRANSATE;A;SNP;157;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATYGGCCAGGGTCGCGACCTCAAGAAATTCCTCATTGTATGTTGCTT;T-CTCTTCAATTTCAACATGCTTGAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTCTTCTTTGTATGCTCAGGTGGTTGCGGG---------------------------------------------------------------------------------------------------TCTCTGGGTTCTTTCTGTTCTT;1;12;22;Sequence;;;6 -Batch_AU247387_SNP_171_CARILLON;A;SNP;171;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATCGGTCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGTTCTGGTTACTCTTCAATTT;GGCATGCTTAAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAA;1;12;9;Sequence;;;6 -Batch_AU247387_SNP_171_SPAIN;A;SNP;171;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATCGGTCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGTTCTGGTTACTCTTCAATTT;GGCATGCTTAAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAA;1;12;21;Sequence;;;6 -Batch_AU247387_SNP_171_TRANSATE;A;SNP;171;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATYGGCCAGGGTCGCGACCTCAAGAAATTCCTCATTGTATGTTGCTTGT-CTCTTCAATTT;AACATGCTTGAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTCTTCTTTGTATGCTCAGGTGGTTGCGGG---------------------------------------------------------------------------------------------------TCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAA;1;12;22;Sequence;;;7 -Batch_AU247387_SNP_172_CARILLON;A;SNP;172;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATCGGTCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGTTCTGGTTACTCTTCAATTTG;GCATGCTTAAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAAC;1;12;9;Sequence;;;6 -Batch_AU247387_SNP_172_SPAIN;A;SNP;172;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATCGGTCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGTTCTGGTTACTCTTCAATTTG;GCATGCTTAAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAAC;1;12;21;Sequence;;;6 -Batch_AU247387_SNP_172_TRANSATE;A;SNP;172;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATYGGCCAGGGTCGCGACCTCAAGAAATTCCTCATTGTATGTTGCTTGT-CTCTTCAATTTC;ACATGCTTGAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTCTTCTTTGTATGCTCAGGTGGTTGCGGG---------------------------------------------------------------------------------------------------TCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAAC;1;12;22;Sequence;;;9 -Batch_AU247387_SNP_173_CARILLON;A;SNP;173;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATCGGTCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGTTCTGGTTACTCTTCAATTTGG;CATGCTTAAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACT;1;12;9;Sequence;;;6 -Batch_AU247387_SNP_173_SPAIN;A;SNP;173;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATCGGTCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGTTCTGGTTACTCTTCAATTTGG;CATGCTTAAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACT;1;12;21;Sequence;;;6 -Batch_AU247387_SNP_173_TRANSATE;A;SNP;173;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATYGGCCAGGGTCGCGACCTCAAGAAATTCCTCATTGTATGTTGCTTGT-CTCTTCAATTTCA;CATGCTTGAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTCTTCTTTGTATGCTCAGGTGGTTGCGGG---------------------------------------------------------------------------------------------------TCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACT;1;12;22;Sequence;;;9 -Batch_AU247387_SNP_181_10954;A;SNP;181;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TT;AT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACC;1;12;6;Sequence;;;9 -Batch_AU247387_SNP_181_ABERAVON;A;SNP;181;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TT;AT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;7;Sequence;;;9 -Batch_AU247387_SNP_181_CARILLON;A;SNP;181;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATCGGTCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGTTCTGGTTACTCTTCAATTTGGGCATGCTT;AT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACA;1;12;9;Sequence;;;9 -Batch_AU247387_SNP_181_IMAGINE;A;SNP;181;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TT;AT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACC;1;12;14;Sequence;;;9 -Batch_AU247387_SNP_181_IRELAND;A;SNP;181;NNNTATAGCTCCTAACATTCCTGAAGTGACGATTCCAGAGGACACGATTGTGAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGATGGAGATTGGCCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGT---------------------------TT;TTTATCTCCTCAATTTCAATTTGGCCATGCTTAATGTTGGGTGCTTTCTGTATAGCCTGCTCACCAAGGTGTGATCTCTTCTTTGTATACACAGGTGGTTGCTGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACN;1;12;15;Sequence;;;6 -Batch_AU247387_SNP_181_NEMOF;A;SNP;181;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TT;AT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGNNNNNNNNNNNNNNNNNNNNN;1;12;18;Sequence;;;9 -Batch_AU247387_SNP_181_NEMOH;A;SNP;181;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TT;AT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACC;1;12;19;Sequence;;;9 -Batch_AU247387_SNP_181_POLAND;A;SNP;181;NNNTATAGCTCCTAACATTCCTGAAGTGAAGATCACGGAGGACCTGGCTGTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTAYGT---------------------------TT;AT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;20;Sequence;;;9 -Batch_AU247387_SNP_181_SPAIN;A;SNP;181;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATCGGTCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGTTCTGGTTACTCTTCAATTTGGGCATGCTT;AT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACA;1;12;21;Sequence;;;9 -Batch_AU247387_SNP_181_TRANSATE;A;SNP;181;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATYGGCCAGGGTCGCGACCTCAAGAAATTCCTCATTGTATGTTGCTTGT-CTCTTCAATTTCAACATGCTT;AT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTCTTCTTTGTATGCTCAGGTGGTTGCGGG---------------------------------------------------------------------------------------------------TCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACA;1;12;22;Sequence;;;6 -Batch_AU247387_SNP_181_VIGOR;A;SNP;181;NNNTATAGCTCCTAACATTCCTGAAGTGAAGATCACGGAGGACCTGGCTGTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TT;AT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACC;1;12;23;Sequence;;;9 -Batch_AU247387_SNP_182_10954;A;SNP;182;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTA;T---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCT;1;12;6;Sequence;;;9 -Batch_AU247387_SNP_182_ABERAVON;A;SNP;182;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTA;T---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;7;Sequence;;;9 -Batch_AU247387_SNP_182_CARILLON;A;SNP;182;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATCGGTCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGTTCTGGTTACTCTTCAATTTGGGCATGCTTA;T---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACAT;1;12;9;Sequence;;;9 -Batch_AU247387_SNP_182_IMAGINE;A;SNP;182;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTA;T---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCT;1;12;14;Sequence;;;9 -Batch_AU247387_SNP_182_IRELAND;A;SNP;182;NNNTATAGCTCCTAACATTCCTGAAGTGACGATTCCAGAGGACACGATTGTGAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGATGGAGATTGGCCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGT---------------------------TTG;TTATCTCCTCAATTTCAATTTGGCCATGCTTAATGTTGGGTGCTTTCTGTATAGCCTGCTCACCAAGGTGTGATCTCTTCTTTGTATACACAGGTGGTTGCTGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACNT;1;12;15;Sequence;;;10 -Batch_AU247387_SNP_182_NEMOF;A;SNP;182;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTA;T---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGNNNNNNNNNNNNNNNNNNNNNN;1;12;18;Sequence;;;9 -Batch_AU247387_SNP_182_NEMOH;A;SNP;182;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTA;T---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCT;1;12;19;Sequence;;;9 -Batch_AU247387_SNP_182_POLAND;A;SNP;182;NNNTATAGCTCCTAACATTCCTGAAGTGAAGATCACGGAGGACCTGGCTGTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTAYGT---------------------------TTA;T---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;20;Sequence;;;9 -Batch_AU247387_SNP_182_SPAIN;A;SNP;182;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATCGGTCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGTTCTGGTTACTCTTCAATTTGGGCATGCTTA;T---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACAT;1;12;21;Sequence;;;9 -Batch_AU247387_SNP_182_TRANSATE;A;SNP;182;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATYGGCCAGGGTCGCGACCTCAAGAAATTCCTCATTGTATGTTGCTTGT-CTCTTCAATTTCAACATGCTTG;T---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTCTTCTTTGTATGCTCAGGTGGTTGCGGG---------------------------------------------------------------------------------------------------TCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACAT;1;12;22;Sequence;;;9 -Batch_AU247387_SNP_182_VIGOR;A;SNP;182;NNNTATAGCTCCTAACATTCCTGAAGTGAAGATCACGGAGGACCTGGCTGTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTA;T---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCT;1;12;23;Sequence;;;9 -Batch_AU247387_DEL_184_10954;A;DELETION;184;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT;TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT----;93;12;6;Sequence;;;55 -Batch_AU247387_DEL_184_ABERAVON;A;DELETION;184;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT;TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;93;12;7;Sequence;;;55 -Batch_AU247387_DEL_184_CARILLON;A;DELETION;184;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATCGGTCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGTTCTGGTTACTCTTCAATTTGGGCATGCTTAAT;TGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG------TTGTCCATACGA;93;12;9;Sequence;;;58 -Batch_AU247387_DEL_184_IMAGINE;A;DELETION;184;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT;TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT----;93;12;14;Sequence;;;55 -Batch_AU247387_DEL_184_NEMOF;A;DELETION;184;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT;TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;93;12;18;Sequence;;;55 -Batch_AU247387_DEL_184_NEMOH;A;DELETION;184;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT;TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT----;93;;;Sequence;;; -Batch_AU247387_DEL_184_POLAND;A;DELETION;184;NNNTATAGCTCCTAACATTCCTGAAGTGAAGATCACGGAGGACCTGGCTGTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTAYGT---------------------------TTAAT;TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;93;12;20;Sequence;;;55 -Batch_AU247387_DEL_184_SPAIN;A;DELETION;184;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATCGGTCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGTTCTGGTTACTCTTCAATTTGGGCATGCTTAAT;TGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG------TTGTCCATACGA;93;12;21;Sequence;;;58 -Batch_AU247387_DEL_184_TRANSATE;A;DELETION;184;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATYGGCCAGGGTCGCGACCTCAAGAAATTCCTCATTGTATGTTGCTTGT-CTCTTCAATTTCAACATGCTTGAT;TGGTTGCGGG---------------------------------------------------------------------------------------------------TCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAK------------------TATARCTTGTGCTGCAACACTTGAGTTCATAACCNNNNNNNNNNNNNNNNNNNNNNNNN;93;12;22;Sequence;;;63 -Batch_AU247387_DEL_184_VIGOR;A;DELETION;184;NNNTATAGCTCCTAACATTCCTGAAGTGAAGATCACGGAGGACCTGGCTGTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT;TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT----;93;12;23;Sequence;;;55 -Batch_AU247387_SNP_231_CARILLON;A;SNP;231;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATCGGTCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGTTCTGGTTACTCTTCAATTTGGGCATGCTTAAT---------------------------------GTTGGGTGCTTTCT;TAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTG;1;12;9;Sequence;;;10 -Batch_AU247387_SNP_231_IRELAND;A;SNP;231;NNNTATAGCTCCTAACATTCCTGAAGTGACGATTCCAGAGGACACGATTGTGAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGATGGAGATTGGCCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGT---------------------------TTGTTTATCTCCTCAATTTCAATTTGGCCATGCTTAATGTTGGGTGCTTTCT;TATAGCCTGCTCACCAAGGTGTGATCTCTTCTTTGTATACACAGGTGGTTGCTGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACNTTGGCATATATAGGTNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;15;Sequence;;;6 -Batch_AU247387_SNP_231_SPAIN;A;SNP;231;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATCGGTCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGTTCTGGTTACTCTTCAATTTGGGCATGCTTAAT---------------------------------GTTGGGTGCTTTCT;TAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTG;1;12;21;Sequence;;;10 -Batch_AU247387_SNP_231_TRANSATE;A;SNP;231;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATYGGCCAGGGTCGCGACCTCAAGAAATTCCTCATTGTATGTTGCTTGT-CTCTTCAATTTCAACATGCTTGAT---------------------------------GTTGGGTGCTTTCT;TAT--CCTGCTCACCAACATGTGATCTCTTCTTTGTATGCTCAGGTGGTTGCGGG---------------------------------------------------------------------------------------------------TCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAK------------------TATARCTTGTGCTG;1;12;22;Sequence;;;10 -Batch_AU247387_SNP_249_CARILLON;A;SNP;249;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATCGGTCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGTTCTGGTTACTCTTCAATTTGGGCATGCTTAAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAA;ATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAA;1;12;9;Sequence;;;7 -Batch_AU247387_SNP_249_IRELAND;A;SNP;249;NNNTATAGCTCCTAACATTCCTGAAGTGACGATTCCAGAGGACACGATTGTGAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGATGGAGATTGGCCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGT---------------------------TTGTTTATCTCCTCAATTTCAATTTGGCCATGCTTAATGTTGGGTGCTTTCTGTATAGCCTGCTCACCAA;GTGTGATCTCTTCTTTGTATACACAGGTGGTTGCTGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACNTTGGCATATATAGGTNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;15;Sequence;;;6 -Batch_AU247387_SNP_249_SPAIN;A;SNP;249;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATCGGTCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGTTCTGGTTACTCTTCAATTTGGGCATGCTTAAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAA;ATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAA;1;12;21;Sequence;;;7 -Batch_AU247387_SNP_249_TRANSATE;A;SNP;249;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATYGGCCAGGGTCGCGACCTCAAGAAATTCCTCATTGTATGTTGCTTGT-CTCTTCAATTTCAACATGCTTGAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAA;ATGTGATCTCTTCTTTGTATGCTCAGGTGGTTGCGGG---------------------------------------------------------------------------------------------------TCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAK------------------TATARCTTGTGCTGCAACACTTGAGTTCATAA;1;12;22;Sequence;;;7 -Batch_AU247387_SNP_250_CARILLON;A;SNP;250;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATCGGTCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGTTCTGGTTACTCTTCAATTTGGGCATGCTTAAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAAC;TGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAAC;1;12;9;Sequence;;;9 -Batch_AU247387_SNP_250_IRELAND;A;SNP;250;NNNTATAGCTCCTAACATTCCTGAAGTGACGATTCCAGAGGACACGATTGTGAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGATGGAGATTGGCCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGT---------------------------TTGTTTATCTCCTCAATTTCAATTTGGCCATGCTTAATGTTGGGTGCTTTCTGTATAGCCTGCTCACCAAG;TGTGATCTCTTCTTTGTATACACAGGTGGTTGCTGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACNTTGGCATATATAGGTNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;15;Sequence;;;6 -Batch_AU247387_SNP_250_SPAIN;A;SNP;250;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATCGGTCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGTTCTGGTTACTCTTCAATTTGGGCATGCTTAAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAAC;TGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAAC;1;12;21;Sequence;;;9 -Batch_AU247387_SNP_250_TRANSATE;A;SNP;250;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATYGGCCAGGGTCGCGACCTCAAGAAATTCCTCATTGTATGTTGCTTGT-CTCTTCAATTTCAACATGCTTGAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAAC;TGTGATCTCTTCTTTGTATGCTCAGGTGGTTGCGGG---------------------------------------------------------------------------------------------------TCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAK------------------TATARCTTGTGCTGCAACACTTGAGTTCATAAC;1;12;22;Sequence;;;9 -Batch_AU247387_SNP_259_CARILLON;A;SNP;259;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATCGGTCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGTTCTGGTTACTCTTCAATTTGGGCATGCTTAAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCT;TTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG-;1;12;9;Sequence;;;6 -Batch_AU247387_SNP_259_IRELAND;A;SNP;259;CTCCTAACATTCCTGAAGTGACGATTCCAGAGGACACGATTGTGAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGATGGAGATTGGCCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGT---------------------------TTGTTTATCTCCTCAATTTCAATTTGGCCATGCTTAATGTTGGGTGCTTTCTGTATAGCCTGCTCACCAAGGTGTGATCT;TTCTTTGTATACACAGGTGGTTGCTGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACNTTGGCATATATAGGTNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;15;Sequence;;;7 -Batch_AU247387_SNP_259_SPAIN;A;SNP;259;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATCGGTCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGTTCTGGTTACTCTTCAATTTGGGCATGCTTAAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCT;TTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG-;1;12;21;Sequence;;;6 -Batch_AU247387_SNP_259_TRANSATE;A;SNP;259;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATYGGCCAGGGTCGCGACCTCAAGAAATTCCTCATTGTATGTTGCTTGT-CTCTTCAATTTCAACATGCTTGAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCT;TTCTTTGTATGCTCAGGTGGTTGCGGG---------------------------------------------------------------------------------------------------TCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAK------------------TATARCTTGTGCTGCAACACTTGAGTTCATAACCNNNNNNNN;1;12;22;Sequence;;;7 -Batch_AU247387_SNP_270_CARILLON;A;SNP;270;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATCGGTCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGTTCTGGTTACTCTTCAATTTGGGCATGCTTAAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTAT;CTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG------TTGTCC;1;12;9;Sequence;;;6 -Batch_AU247387_SNP_270_IRELAND;A;SNP;270;CCTGAAGTGACGATTCCAGAGGACACGATTGTGAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGATGGAGATTGGCCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGT---------------------------TTGTTTATCTCCTCAATTTCAATTTGGCCATGCTTAATGTTGGGTGCTTTCTGTATAGCCTGCTCACCAAGGTGTGATCTCTTCTTTGTAT;CACAGGTGGTTGCTGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACNTTGGCATATATAGGTNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;15;Sequence;;;9 -Batch_AU247387_SNP_270_SPAIN;A;SNP;270;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATCGGTCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGTTCTGGTTACTCTTCAATTTGGGCATGCTTAAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTAT;CTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG------TTGTCC;1;12;21;Sequence;;;6 -Batch_AU247387_SNP_270_TRANSATE;A;SNP;270;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATYGGCCAGGGTCGCGACCTCAAGAAATTCCTCATTGTATGTTGCTTGT-CTCTTCAATTTCAACATGCTTGAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTCTTCTTTGTAT;CTCAGGTGGTTGCGGG---------------------------------------------------------------------------------------------------TCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAK------------------TATARCTTGTGCTGCAACACTTGAGTTCATAACCNNNNNNNNNNNNNNNNNNN;1;12;22;Sequence;;;6 -Batch_AU247387_SNP_272_CARILLON;A;SNP;272;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATCGGTCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGTTCTGGTTACTCTTCAATTTGGGCATGCTTAAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGC;CAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG------TTGTCCAT;1;12;9;Sequence;;;10 -Batch_AU247387_SNP_272_IRELAND;A;SNP;272;TGAAGTGACGATTCCAGAGGACACGATTGTGAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGATGGAGATTGGCCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGT---------------------------TTGTTTATCTCCTCAATTTCAATTTGGCCATGCTTAATGTTGGGTGCTTTCTGTATAGCCTGCTCACCAAGGTGTGATCTCTTCTTTGTATAC;CAGGTGGTTGCTGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACNTTGGCATATATAGGTNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;15;Sequence;;;9 -Batch_AU247387_SNP_272_SPAIN;A;SNP;272;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATCGGTCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGTTCTGGTTACTCTTCAATTTGGGCATGCTTAAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGC;CAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG------TTGTCCAT;1;12;21;Sequence;;;10 -Batch_AU247387_SNP_272_TRANSATE;A;SNP;272;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATYGGCCAGGGTCGCGACCTCAAGAAATTCCTCATTGTATGTTGCTTGT-CTCTTCAATTTCAACATGCTTGAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTCTTCTTTGTATGC;CAGGTGGTTGCGGG---------------------------------------------------------------------------------------------------TCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAK------------------TATARCTTGTGCTGCAACACTTGAGTTCATAACCNNNNNNNNNNNNNNNNNNNNN;1;12;22;Sequence;;;10 -Batch_AU247387_SNP_284_10954;A;SNP;284;NNNNNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGC;TGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------;1;12;6;Sequence;;;9 -Batch_AU247387_SNP_284_ABERAVON;A;SNP;284;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGC;TGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;7;Sequence;;;9 -Batch_AU247387_SNP_284_CARILLON;A;SNP;284;NNNNNNNNNNNNNNNNNNCAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATCGGTCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGTTCTGGTTACTCTTCAATTTGGGCATGCTTAAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGC;GG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG------TTGTCCATACGAGTTGTGAA;1;12;9;Sequence;;;7 -Batch_AU247387_SNP_284_IMAGINE;A;SNP;284;NNNNNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGC;TGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------;1;12;14;Sequence;;;9 -Batch_AU247387_SNP_284_IRELAND;A;SNP;284;TCCAGAGGACACGATTGTGAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGATGGAGATTGGCCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGT---------------------------TTGTTTATCTCCTCAATTTCAATTTGGCCATGCTTAATGTTGGGTGCTTTCTGTATAGCCTGCTCACCAAGGTGTGATCTCTTCTTTGTATACACAGGTGGTTGC;GG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACNTTGGCATATATAGGTNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;15;Sequence;;;10 -Batch_AU247387_SNP_284_NEMOF;A;SNP;284;NNNNNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGC;TGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;18;Sequence;;;9 -Batch_AU247387_SNP_284_NEMOH;A;SNP;284;NNNNNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGC;TGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------;1;12;19;Sequence;;;9 -Batch_AU247387_SNP_284_POLAND;A;SNP;284;CACGGAGGACCTGGCTGTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTAYGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGC;TGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;20;Sequence;;;9 -Batch_AU247387_SNP_284_SPAIN;A;SNP;284;NNNNNNNNNNNNNNNNNTCAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATCGGTCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGTTCTGGTTACTCTTCAATTTGGGCATGCTTAAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGC;GG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG------TTGTCCATACGAGTTGTGAA;1;12;21;Sequence;;;7 -Batch_AU247387_SNP_284_TRANSATE;A;SNP;284;NNNNNNNNNNNNNNNNNNNNNNNNNNNNCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATYGGCCAGGGTCGCGACCTCAAGAAATTCCTCATTGTATGTTGCTTGT-CTCTTCAATTTCAACATGCTTGAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTCTTCTTTGTATGCTCAGGTGGTTGC;GG---------------------------------------------------------------------------------------------------TCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAK------------------TATARCTTGTGCTGCAACACTTGAGTTCATAACCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;22;Sequence;;;6 -Batch_AU247387_SNP_284_VIGOR;A;SNP;284;CACGGAGGACCTGGCTGTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGC;TGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------;1;12;23;Sequence;;;9 -Batch_AU247387_SNP_285_10954;A;SNP;285;NNNNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCA;GGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT-------------;1;12;6;Sequence;;;10 -Batch_AU247387_SNP_285_ABERAVON;A;SNP;285;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCA;GGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;7;Sequence;;;10 -Batch_AU247387_SNP_285_CARILLON;A;SNP;285;NNNNNNNNNNNNNNNNNCAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATCGGTCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGTTCTGGTTACTCTTCAATTTGGGCATGCTTAAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCC;G---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG------TTGTCCATACGAGTTGTGAAC;1;12;9;Sequence;;;6 -Batch_AU247387_SNP_285_IMAGINE;A;SNP;285;NNNNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCA;GGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT-------------;1;12;14;Sequence;;;10 -Batch_AU247387_SNP_285_IRELAND;A;SNP;285;CCAGAGGACACGATTGTGAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGATGGAGATTGGCCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGT---------------------------TTGTTTATCTCCTCAATTTCAATTTGGCCATGCTTAATGTTGGGTGCTTTCTGTATAGCCTGCTCACCAAGGTGTGATCTCTTCTTTGTATACACAGGTGGTTGCT;G---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACNTTGGCATATATAGGTNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;15;Sequence;;;6 -Batch_AU247387_SNP_285_NEMOF;A;SNP;285;NNNNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCA;GGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;18;Sequence;;;10 -Batch_AU247387_SNP_285_NEMOH;A;SNP;285;NNNNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCA;GGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT-------------;1;12;19;Sequence;;;10 -Batch_AU247387_SNP_285_POLAND;A;SNP;285;ACGGAGGACCTGGCTGTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTAYGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCA;GGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;20;Sequence;;;10 -Batch_AU247387_SNP_285_SPAIN;A;SNP;285;NNNNNNNNNNNNNNNNTCAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATCGGTCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGTTCTGGTTACTCTTCAATTTGGGCATGCTTAAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCC;G---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG------TTGTCCATACGAGTTGTGAAC;1;12;21;Sequence;;;6 -Batch_AU247387_SNP_285_TRANSATE;A;SNP;285;NNNNNNNNNNNNNNNNNNNNNNNNNNNCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATYGGCCAGGGTCGCGACCTCAAGAAATTCCTCATTGTATGTTGCTTGT-CTCTTCAATTTCAACATGCTTGAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTCTTCTTTGTATGCTCAGGTGGTTGCG;G---------------------------------------------------------------------------------------------------TCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAK------------------TATARCTTGTGCTGCAACACTTGAGTTCATAACCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;22;Sequence;;;6 -Batch_AU247387_SNP_285_VIGOR;A;SNP;285;ACGGAGGACCTGGCTGTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCA;GGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT-------------;1;12;23;Sequence;;;10 -Batch_AU247387_DEL_287_10954;A;DELETION;287;NNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATG;CCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;99;12;6;Sequence;;;68 -Batch_AU247387_DEL_287_CARILLON;A;DELETION;287;NNNNNNNNNNNNNNNCAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATCGGTCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGTTCTGGTTACTCTTCAATTTGGGCATGCTTAAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG;CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCRAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;99;12;9;Sequence;;;59 -Batch_AU247387_DEL_287_IMAGINE;A;DELETION;287;NNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATG;CCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;99;12;14;Sequence;;;68 -Batch_AU247387_DEL_287_IRELAND;A;DELETION;287;AGAGGACACGATTGTGAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGATGGAGATTGGCCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGT---------------------------TTGTTTATCTCCTCAATTTCAATTTGGCCATGCTTAATGTTGGGTGCTTTCTGTATAGCCTGCTCACCAAGGTGTGATCTCTTCTTTGTATACACAGGTGGTTGCTGG;CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACNTTGGCATATATAGGTNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;99;12;15;Sequence;;;59 -Batch_AU247387_DEL_287_NEMOF;A;DELETION;287;NNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATG;CCTCT---------CTGCCCTTGGGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;99;12;18;Sequence;;;68 -Batch_AU247387_DEL_287_NEMOH;A;DELETION;287;NNNNNNNNNNNNNNTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATG;CCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;99;12;19;Sequence;;;68 -Batch_AU247387_DEL_287_SPAIN;A;DELETION;287;NNNNNNNNNNNNNNTCAACATTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATCGGTCAGGGCCGTGATCTGAAGAAATTCCTCATTGTATGTTCTGGTTACTCTTCAATTTGGGCATGCTTAAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG;CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCGAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGAGAAGTACGACGACAAGGTTGATGCTTTTGGTG;99;12;21;Sequence;;;59 -Batch_AU247387_DEL_287_TRANSATE;A;DELETION;287;NNNNNNNNNNNNNNNNNNNNNNNNNCGCTCGCTGAGATATGAGATCAACAGGGGCTTCTTTACTTTGAAGGAGATYGGCCAGGGTCGCGACCTCAAGAAATTCCTCATTGTATGTTGCTTGT-CTCTTCAATTTCAACATGCTTGAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTCTTCTTTGTATGCTCAGGTGGTTGCGGG;TCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAK------------------TATARCTTGTGCTGCAACACTTGAGTTCATAACCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;99;12;22;Sequence;;;59 -Batch_AU247387_DEL_287_VIGOR;A;DELETION;287;GGAGGACCTGGCTGTCAATGTTGCCCGCTCGCTGAGATATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCGTGACCTGAAGAAATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATG;CCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCGGTTCTGTACGAGAAGTACGAGGACAAGATCGATGCTTTTGGAG;99;12;23;Sequence;;;68 -Batch_AU247387_SNP_386_10954;A;SNP;386;ATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGAT;CTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;6;Sequence;;;7 -Batch_AU247387_SNP_386_CARILLON;A;SNP;386;ATTCCTCATTGTATGTTCTGGTTACTCTTCAATTTGGGCATGCTTAAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------;CTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCRAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;9;Sequence;;;7 -Batch_AU247387_SNP_386_CONCERTO;A;SNP;386;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGAT;CTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;10;Sequence;;;7 -Batch_AU247387_SNP_386_IMAGINE;A;SNP;386;ATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGAT;CTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;14;Sequence;;;7 -Batch_AU247387_SNP_386_IRELAND;A;SNP;386;ATTCCTCATTGTATGT---------------------------TTGTTTATCTCCTCAATTTCAATTTGGCCATGCTTAATGTTGGGTGCTTTCTGTATAGCCTGCTCACCAAGGTGTGATCTCTTCTTTGTATACACAGGTGGTTGCTGG---------------------------------------------------------------------------------------------------;CTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACNTTGGCATATATAGGTNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;15;Sequence;;;7 -Batch_AU247387_SNP_386_NEMOF;A;SNP;386;ATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGAT;CTCT---------CTGCCCTTGGGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;18;Sequence;;;7 -Batch_AU247387_SNP_386_NEMOH;A;SNP;386;ATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGAT;CTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;19;Sequence;;;7 -Batch_AU247387_SNP_386_SPAIN;A;SNP;386;ATTCCTCATTGTATGTTCTGGTTACTCTTCAATTTGGGCATGCTTAAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------;CTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCGAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGAGAAGTACGACGACAAGGTTGATGCTTTTGGTGA;1;12;21;Sequence;;;7 -Batch_AU247387_SNP_386_TRANSATE;A;SNP;386;ATTCCTCATTGTATGTTGCTTGT-CTCTTCAATTTCAACATGCTTGAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTCTTCTTTGTATGCTCAGGTGGTTGCGGG---------------------------------------------------------------------------------------------------;CTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAK------------------TATARCTTGTGCTGCAACACTTGAGTTCATAACCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;22;Sequence;;;10 -Batch_AU247387_SNP_386_VIGOR;A;SNP;386;ATTCCTGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGAT;CTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCGGTTCTGTACGAGAAGTACGAGGACAAGATCGATGCTTTTGGAGA;1;12;23;Sequence;;;7 -Batch_AU247387_DEL_391_10954;A;DELETION;391;TGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT;CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;9;12;6;Sequence;;;56 -Batch_AU247387_DEL_391_CARILLON;A;DELETION;391;TCATTGTATGTTCTGGTTACTCTTCAATTTGGGCATGCTTAAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCT;CTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCRAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;9;12;9;Sequence;;;65 -Batch_AU247387_DEL_391_CONCERTO;A;DELETION;391;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT;CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;9;12;10;Sequence;;;56 -Batch_AU247387_DEL_391_IMAGINE;A;DELETION;391;TGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT;CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;9;12;14;Sequence;;;56 -Batch_AU247387_DEL_391_IRELAND;A;DELETION;391;TCATTGTATGT---------------------------TTGTTTATCTCCTCAATTTCAATTTGGCCATGCTTAATGTTGGGTGCTTTCTGTATAGCCTGCTCACCAAGGTGTGATCTCTTCTTTGTATACACAGGTGGTTGCTGG---------------------------------------------------------------------------------------------------CCTCT;CTGTTCTTGGGAGCTCTTGCAACTTCTTGACNTTGGCATATATAGGTNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;9;12;15;Sequence;;;65 -Batch_AU247387_DEL_391_NEMOF;A;DELETION;391;TGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT;CTGCCCTTGGGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;9;12;18;Sequence;;;56 -Batch_AU247387_DEL_391_NEMOH;A;DELETION;391;TGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT;CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;9;12;19;Sequence;;;56 -Batch_AU247387_DEL_391_SPAIN;A;DELETION;391;TCATTGTATGTTCTGGTTACTCTTCAATTTGGGCATGCTTAAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCT;CTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCGAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGAGAAGTACGACGACAAGGTTGATGCTTTTGGTGAGAAG;9;12;21;Sequence;;;65 -Batch_AU247387_DEL_391_TRANSATE;A;DELETION;391;TCATTGTATGTTGCTTGT-CTCTTCAATTTCAACATGCTTGAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTCTTCTTTGTATGCTCAGGTGGTTGCGGG---------------------------------------------------------------------------------------------------TCTCT;CTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAK------------------TATARCTTGTGCTGCAACACTTGAGTTCATAACCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;9;12;22;Sequence;;;65 -Batch_AU247387_DEL_391_VIGOR;A;DELETION;391;TGATTGTACGT---------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT;CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCGGTTCTGTACGAGAAGTACGAGGACAAGATCGATGCTTTTGGAGAGAAG;9;12;23;Sequence;;;56 -Batch_AU247387_SNP_403_10954;A;SNP;403;--------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTG;CCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;6;Sequence;;;7 -Batch_AU247387_SNP_403_CARILLON;A;SNP;403;CTGGTTACTCTTCAATTTGGGCATGCTTAAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTG;TCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCRAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;9;Sequence;;;10 -Batch_AU247387_SNP_403_CONCERTO;A;SNP;403;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTG;CCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;10;Sequence;;;7 -Batch_AU247387_SNP_403_IMAGINE;A;SNP;403;--------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTG;CCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;14;Sequence;;;7 -Batch_AU247387_SNP_403_IRELAND;A;SNP;403;--------------------------TTGTTTATCTCCTCAATTTCAATTTGGCCATGCTTAATGTTGGGTGCTTTCTGTATAGCCTGCTCACCAAGGTGTGATCTCTTCTTTGTATACACAGGTGGTTGCTGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTG;TCTTGGGAGCTCTTGCAACTTCTTGACNTTGGCATATATAGGTNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;15;Sequence;;;10 -Batch_AU247387_SNP_403_NEMOF;A;SNP;403;--------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTG;CCTTGGGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;18;Sequence;;;7 -Batch_AU247387_SNP_403_NEMOH;A;SNP;403;--------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTG;CCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;19;Sequence;;;7 -Batch_AU247387_SNP_403_SPAIN;A;SNP;403;CTGGTTACTCTTCAATTTGGGCATGCTTAAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTG;TCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCGAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGAGAAGTACGACGACAAGGTTGATGCTTTTGGTGAGAAG;1;12;21;Sequence;;;10 -Batch_AU247387_SNP_403_TRANSATE;A;SNP;403;GCTTGT-CTCTTCAATTTCAACATGCTTGAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTCTTCTTTGTATGCTCAGGTGGTTGCGGG---------------------------------------------------------------------------------------------------TCTCTGGGTTCTTTCTG;TCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAK------------------TATARCTTGTGCTGCAACACTTGAGTTCATAACCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;22;Sequence;;;10 -Batch_AU247387_SNP_403_VIGOR;A;SNP;403;--------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTG;CCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCGGTTCTGTACGAGAAGTACGAGGACAAGATCGATGCTTTTGGAGAGAAG;1;12;23;Sequence;;;7 -Batch_AU247387_SNP_404_10954;A;SNP;404;-------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGC;CTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;6;Sequence;;;7 -Batch_AU247387_SNP_404_CARILLON;A;SNP;404;TGGTTACTCTTCAATTTGGGCATGCTTAAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGT;CTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCRAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;9;Sequence;;;10 -Batch_AU247387_SNP_404_CONCERTO;A;SNP;404;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGC;CTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;10;Sequence;;;7 -Batch_AU247387_SNP_404_IMAGINE;A;SNP;404;-------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGC;CTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;14;Sequence;;;7 -Batch_AU247387_SNP_404_IRELAND;A;SNP;404;-------------------------TTGTTTATCTCCTCAATTTCAATTTGGCCATGCTTAATGTTGGGTGCTTTCTGTATAGCCTGCTCACCAAGGTGTGATCTCTTCTTTGTATACACAGGTGGTTGCTGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGT;CTTGGGAGCTCTTGCAACTTCTTGACNTTGGCATATATAGGTNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;15;Sequence;;;10 -Batch_AU247387_SNP_404_NEMOF;A;SNP;404;-------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGC;CTTGGGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;18;Sequence;;;7 -Batch_AU247387_SNP_404_NEMOH;A;SNP;404;-------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGC;CTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;19;Sequence;;;7 -Batch_AU247387_SNP_404_SPAIN;A;SNP;404;TGGTTACTCTTCAATTTGGGCATGCTTAAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGT;CTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCGAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGAGAAGTACGACGACAAGGTTGATGCTTTTGGTGAGAAG;1;12;21;Sequence;;;10 -Batch_AU247387_SNP_404_TRANSATE;A;SNP;404;CTTGT-CTCTTCAATTTCAACATGCTTGAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTCTTCTTTGTATGCTCAGGTGGTTGCGGG---------------------------------------------------------------------------------------------------TCTCTGGGTTCTTTCTGT;CTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAK------------------TATARCTTGTGCTGCAACACTTGAGTTCATAACCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;22;Sequence;;;10 -Batch_AU247387_SNP_404_VIGOR;A;SNP;404;-------------------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGC;CTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCGGTTCTGTACGAGAAGTACGAGGACAAGATCGATGCTTTTGGAGAGAAG;1;12;23;Sequence;;;7 -Batch_AU247387_SNP_415_10954;A;SNP;415;--------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCT;CTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;6;Sequence;;;6 -Batch_AU247387_SNP_415_CARILLON;A;SNP;415;CAATTTGGGCATGCTTAAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCT;TTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCRAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;9;Sequence;;;7 -Batch_AU247387_SNP_415_CONCERTO;A;SNP;415;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCT;CTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;10;Sequence;;;6 -Batch_AU247387_SNP_415_IMAGINE;A;SNP;415;--------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCT;CTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;14;Sequence;;;6 -Batch_AU247387_SNP_415_IRELAND;A;SNP;415;--------------TTGTTTATCTCCTCAATTTCAATTTGGCCATGCTTAATGTTGGGTGCTTTCTGTATAGCCTGCTCACCAAGGTGTGATCTCTTCTTTGTATACACAGGTGGTTGCTGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCT;TTGCAACTTCTTGACNTTGGCATATATAGGTNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;15;Sequence;;;7 -Batch_AU247387_SNP_415_NEMOH;A;SNP;415;--------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCT;CTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;19;Sequence;;;6 -Batch_AU247387_SNP_415_SPAIN;A;SNP;415;CAATTTGGGCATGCTTAAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCT;TTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCGAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGAGAAGTACGACGACAAGGTTGATGCTTTTGGTGAGAAG;1;12;21;Sequence;;;7 -Batch_AU247387_SNP_415_TRANSATE;A;SNP;415;CAATTTCAACATGCTTGAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTCTTCTTTGTATGCTCAGGTGGTTGCGGG---------------------------------------------------------------------------------------------------TCTCTGGGTTCTTTCTGTTCTTGGGAGCT;TTGCAACTTCTTGACATTGGCATATATAGGTAAK------------------TATARCTTGTGCTGCAACACTTGAGTTCATAACCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;22;Sequence;;;7 -Batch_AU247387_SNP_415_VIGOR;A;SNP;415;--------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCT;CTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCGGTTCTGTACGAGAAGTACGAGGACAAGATCGATGCTTTTGGAGAGAAG;1;12;23;Sequence;;;6 -Batch_AU247387_SNP_416_10954;A;SNP;416;-------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTG;TGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;6;Sequence;;;7 -Batch_AU247387_SNP_416_CARILLON;A;SNP;416;AATTTGGGCATGCTTAAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTC;TGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCRAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;9;Sequence;;;10 -Batch_AU247387_SNP_416_CONCERTO;A;SNP;416;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTG;TGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;10;Sequence;;;7 -Batch_AU247387_SNP_416_IMAGINE;A;SNP;416;-------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTG;TGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;14;Sequence;;;7 -Batch_AU247387_SNP_416_IRELAND;A;SNP;416;-------------TTGTTTATCTCCTCAATTTCAATTTGGCCATGCTTAATGTTGGGTGCTTTCTGTATAGCCTGCTCACCAAGGTGTGATCTCTTCTTTGTATACACAGGTGGTTGCTGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTC;TGCAACTTCTTGACNTTGGCATATATAGGTNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;15;Sequence;;;10 -Batch_AU247387_SNP_416_NEMOH;A;SNP;416;-------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTG;TGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;19;Sequence;;;7 -Batch_AU247387_SNP_416_SPAIN;A;SNP;416;AATTTGGGCATGCTTAAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTC;TGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCGAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGAGAAGTACGACGACAAGGTTGATGCTTTTGGTGAGAAG;1;12;21;Sequence;;;10 -Batch_AU247387_SNP_416_TRANSATE;A;SNP;416;AATTTCAACATGCTTGAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTCTTCTTTGTATGCTCAGGTGGTTGCGGG---------------------------------------------------------------------------------------------------TCTCTGGGTTCTTTCTGTTCTTGGGAGCTC;TGCAACTTCTTGACATTGGCATATATAGGTAAK------------------TATARCTTGTGCTGCAACACTTGAGTTCATAACCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;22;Sequence;;;10 -Batch_AU247387_SNP_416_VIGOR;A;SNP;416;-------------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTG;TGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCGGTTCTGTACGAGAAGTACGAGGACAAGATCGATGCTTTTGGAGAGAAG;1;12;23;Sequence;;;7 -Batch_AU247387_SNP_422_10954;A;SNP;422;-------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAA;TTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;6;Sequence;;;10 -Batch_AU247387_SNP_422_CARILLON;A;SNP;422;GGCATGCTTAAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAA;TTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCRAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;9;Sequence;;;7 -Batch_AU247387_SNP_422_CONCERTO;A;SNP;422;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAA;TTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;10;Sequence;;;10 -Batch_AU247387_SNP_422_IMAGINE;A;SNP;422;-------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAA;TTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;14;Sequence;;;10 -Batch_AU247387_SNP_422_IRELAND;A;SNP;422;-------TTGTTTATCTCCTCAATTTCAATTTGGCCATGCTTAATGTTGGGTGCTTTCTGTATAGCCTGCTCACCAAGGTGTGATCTCTTCTTTGTATACACAGGTGGTTGCTGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAA;TTCTTGACNTTGGCATATATAGGTNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;15;Sequence;;;7 -Batch_AU247387_SNP_422_NEMOH;A;SNP;422;-------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAA;TTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;19;Sequence;;;10 -Batch_AU247387_SNP_422_SPAIN;A;SNP;422;GGCATGCTTAAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAA;TTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCGAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGAGAAGTACGACGACAAGGTTGATGCTTTTGGTGAGAAG;1;12;21;Sequence;;;7 -Batch_AU247387_SNP_422_TRANSATE;A;SNP;422;AACATGCTTGAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTCTTCTTTGTATGCTCAGGTGGTTGCGGG---------------------------------------------------------------------------------------------------TCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAA;TTCTTGACATTGGCATATATAGGTAAK------------------TATARCTTGTGCTGCAACACTTGAGTTCATAACCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;22;Sequence;;;7 -Batch_AU247387_SNP_422_VIGOR;A;SNP;422;-------TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAA;TTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCGGTTCTGTACGAGAAGTACGAGGACAAGATCGATGCTTTTGGAGAGAAG;1;12;23;Sequence;;;10 -Batch_AU247387_SNP_426_10954;A;SNP;426;---TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTC;TCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;6;Sequence;;;7 -Batch_AU247387_SNP_426_CARILLON;A;SNP;426;TGCTTAAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTC;TGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCRAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;9;Sequence;;;10 -Batch_AU247387_SNP_426_CONCERTO;A;SNP;426;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTC;TCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;10;Sequence;;;7 -Batch_AU247387_SNP_426_IMAGINE;A;SNP;426;---TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTC;TCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;14;Sequence;;;7 -Batch_AU247387_SNP_426_IRELAND;A;SNP;426;---TTGTTTATCTCCTCAATTTCAATTTGGCCATGCTTAATGTTGGGTGCTTTCTGTATAGCCTGCTCACCAAGGTGTGATCTCTTCTTTGTATACACAGGTGGTTGCTGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTC;TGACNTTGGCATATATAGGTNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;15;Sequence;;;10 -Batch_AU247387_SNP_426_NEMOH;A;SNP;426;---TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTC;TCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;19;Sequence;;;7 -Batch_AU247387_SNP_426_SPAIN;A;SNP;426;TGCTTAAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTC;TGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCGAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGAGAAGTACGACGACAAGGTTGATGCTTTTGGTGAGAAG;1;12;21;Sequence;;;10 -Batch_AU247387_SNP_426_TRANSATE;A;SNP;426;TGCTTGAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTCTTCTTTGTATGCTCAGGTGGTTGCGGG---------------------------------------------------------------------------------------------------TCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTC;TGACATTGGCATATATAGGTAAK------------------TATARCTTGTGCTGCAACACTTGAGTTCATAACCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;22;Sequence;;;10 -Batch_AU247387_SNP_426_VIGOR;A;SNP;426;---TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTC;TCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCGGTTCTGTACGAGAAGTACGAGGACAAGATCGATGCTTTTGGAGAGAAG;1;12;23;Sequence;;;7 -Batch_AU247387_SNP_428_10954;A;SNP;428;-TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCT;ACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;6;Sequence;;;7 -Batch_AU247387_SNP_428_CARILLON;A;SNP;428;CTTAAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTT;ACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCRAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;9;Sequence;;;6 -Batch_AU247387_SNP_428_CONCERTO;A;SNP;428;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCT;ACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;10;Sequence;;;7 -Batch_AU247387_SNP_428_IMAGINE;A;SNP;428;-TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCT;ACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;14;Sequence;;;7 -Batch_AU247387_SNP_428_IRELAND;A;SNP;428;-TTGTTTATCTCCTCAATTTCAATTTGGCCATGCTTAATGTTGGGTGCTTTCTGTATAGCCTGCTCACCAAGGTGTGATCTCTTCTTTGTATACACAGGTGGTTGCTGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTT;ACNTTGGCATATATAGGTNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;15;Sequence;;;6 -Batch_AU247387_SNP_428_NEMOH;A;SNP;428;-TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCT;ACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;19;Sequence;;;7 -Batch_AU247387_SNP_428_SPAIN;A;SNP;428;CTTAAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTT;ACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCGAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGAGAAGTACGACGACAAGGTTGATGCTTTTGGTGAGAAG;1;12;21;Sequence;;;6 -Batch_AU247387_SNP_428_TRANSATE;A;SNP;428;CTTGAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTCTTCTTTGTATGCTCAGGTGGTTGCGGG---------------------------------------------------------------------------------------------------TCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTT;ACATTGGCATATATAGGTAAK------------------TATARCTTGTGCTGCAACACTTGAGTTCATAACCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;22;Sequence;;;6 -Batch_AU247387_SNP_428_VIGOR;A;SNP;428;-TTAAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCT;ACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCGGTTCTGTACGAGAAGTACGAGGACAAGATCGATGCTTTTGGAGAGAAG;1;12;23;Sequence;;;7 -Batch_AU247387_SNP_431_10954;A;SNP;431;AAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCAC;TTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;6;Sequence;;;7 -Batch_AU247387_SNP_431_CARILLON;A;SNP;431;AAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGAC;TTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCRAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;9;Sequence;;;9 -Batch_AU247387_SNP_431_CONCERTO;A;SNP;431;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCAC;TTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;10;Sequence;;;7 -Batch_AU247387_SNP_431_IMAGINE;A;SNP;431;AAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCAC;TTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;14;Sequence;;;7 -Batch_AU247387_SNP_431_NEMOH;A;SNP;431;AAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCAC;TTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;19;Sequence;;;7 -Batch_AU247387_SNP_431_SPAIN;A;SNP;431;AAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGAC;TTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCGAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGAGAAGTACGACGACAAGGTTGATGCTTTTGGTGAGAAG;1;12;21;Sequence;;;9 -Batch_AU247387_SNP_431_TRANSATE;A;SNP;431;GAT---------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTCTTCTTTGTATGCTCAGGTGGTTGCGGG---------------------------------------------------------------------------------------------------TCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGAC;TTGGCATATATAGGTAAK------------------TATARCTTGTGCTGCAACACTTGAGTTCATAACCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;22;Sequence;;;9 -Batch_AU247387_SNP_431_VIGOR;A;SNP;431;AAT---------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCAC;TTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCGGTTCTGTACGAGAAGTACGAGGACAAGATCGATGCTTTTGGAGAGAAG;1;12;23;Sequence;;;7 -Batch_AU247387_SNP_435_10954;A;SNP;435;--------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTG;TCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;6;Sequence;;;10 -Batch_AU247387_SNP_435_CARILLON;A;SNP;435;--------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTG;CATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCRAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;9;Sequence;;;6 -Batch_AU247387_SNP_435_CONCERTO;A;SNP;435;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTG;TCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;10;Sequence;;;10 -Batch_AU247387_SNP_435_IMAGINE;A;SNP;435;--------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTG;TCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;14;Sequence;;;10 -Batch_AU247387_SNP_435_IRELAND;A;SNP;435;ATCTCCTCAATTTCAATTTGGCCATGCTTAATGTTGGGTGCTTTCTGTATAGCCTGCTCACCAAGGTGTGATCTCTTCTTTGTATACACAGGTGGTTGCTGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACNTTG;CATATATAGGTNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;15;Sequence;;;6 -Batch_AU247387_SNP_435_NEMOH;A;SNP;435;--------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTG;TCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;19;Sequence;;;10 -Batch_AU247387_SNP_435_SPAIN;A;SNP;435;--------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTG;CATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCGAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGAGAAGTACGACGACAAGGTTGATGCTTTTGGTGAGAAG;1;12;21;Sequence;;;6 -Batch_AU247387_SNP_435_TRANSATE;A;SNP;435;--------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTCTTCTTTGTATGCTCAGGTGGTTGCGGG---------------------------------------------------------------------------------------------------TCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTG;CATATATAGGTAAK------------------TATARCTTGTGCTGCAACACTTGAGTTCATAACCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;22;Sequence;;;6 -Batch_AU247387_SNP_435_VIGOR;A;SNP;435;--------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTG;TCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCGGTTCTGTACGAGAAGTACGAGGACAAGATCGATGCTTTTGGAGAGAAG;1;12;23;Sequence;;;10 -Batch_AU247387_SNP_436_10954;A;SNP;436;-------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGT;CTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;6;Sequence;;;10 -Batch_AU247387_SNP_436_CARILLON;A;SNP;436;-------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGG;ATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCRAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;9;Sequence;;;7 -Batch_AU247387_SNP_436_CONCERTO;A;SNP;436;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGT;CTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;10;Sequence;;;10 -Batch_AU247387_SNP_436_IMAGINE;A;SNP;436;-------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGT;CTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;14;Sequence;;;10 -Batch_AU247387_SNP_436_IRELAND;A;SNP;436;TCTCCTCAATTTCAATTTGGCCATGCTTAATGTTGGGTGCTTTCTGTATAGCCTGCTCACCAAGGTGTGATCTCTTCTTTGTATACACAGGTGGTTGCTGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACNTTGG;ATATATAGGTNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;15;Sequence;;;7 -Batch_AU247387_SNP_436_NEMOH;A;SNP;436;-------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGT;CTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;19;Sequence;;;10 -Batch_AU247387_SNP_436_SPAIN;A;SNP;436;-------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGG;ATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCGAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGAGAAGTACGACGACAAGGTTGATGCTTTTGGTGAGAAG;1;12;21;Sequence;;;7 -Batch_AU247387_SNP_436_TRANSATE;A;SNP;436;-------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTCTTCTTTGTATGCTCAGGTGGTTGCGGG---------------------------------------------------------------------------------------------------TCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGG;ATATATAGGTAAK------------------TATARCTTGTGCTGCAACACTTGAGTTCATAACCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;22;Sequence;;;7 -Batch_AU247387_SNP_436_VIGOR;A;SNP;436;-------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGT;CTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCGGTTCTGTACGAGAAGTACGAGGACAAGATCGATGCTTTTGGAGAGAAG;1;12;23;Sequence;;;10 -Batch_AU247387_SNP_437_10954;A;SNP;437;------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTT;TACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;6;Sequence;;;7 -Batch_AU247387_SNP_437_CARILLON;A;SNP;437;------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGC;TATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCRAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;9;Sequence;;;9 -Batch_AU247387_SNP_437_CONCERTO;A;SNP;437;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTT;TACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;10;Sequence;;;7 -Batch_AU247387_SNP_437_IMAGINE;A;SNP;437;------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTT;TACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;14;Sequence;;;7 -Batch_AU247387_SNP_437_IRELAND;A;SNP;437;CTCCTCAATTTCAATTTGGCCATGCTTAATGTTGGGTGCTTTCTGTATAGCCTGCTCACCAAGGTGTGATCTCTTCTTTGTATACACAGGTGGTTGCTGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACNTTGGC;TATATAGGTNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;15;Sequence;;;9 -Batch_AU247387_SNP_437_NEMOH;A;SNP;437;------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTT;TACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;19;Sequence;;;7 -Batch_AU247387_SNP_437_SPAIN;A;SNP;437;------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGC;TATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCGAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGAGAAGTACGACGACAAGGTTGATGCTTTTGGTGAGAAG;1;12;21;Sequence;;;9 -Batch_AU247387_SNP_437_TRANSATE;A;SNP;437;------------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTCTTCTTTGTATGCTCAGGTGGTTGCGGG---------------------------------------------------------------------------------------------------TCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGC;TATATAGGTAAK------------------TATARCTTGTGCTGCAACACTTGAGTTCATAACCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;22;Sequence;;;9 -Batch_AU247387_SNP_437_VIGOR;A;SNP;437;------------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTT;TACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCGGTTCTGTACGAGAAGTACGAGGACAAGATCGATGCTTTTGGAGAGAAG;1;12;23;Sequence;;;7 -Batch_AU247387_SNP_440_10954;A;SNP;440;---------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTA;ATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;6;Sequence;;;7 -Batch_AU247387_SNP_440_CARILLON;A;SNP;440;---------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATA;ATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCRAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;9;Sequence;;;10 -Batch_AU247387_SNP_440_CONCERTO;A;SNP;440;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTA;ATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;10;Sequence;;;7 -Batch_AU247387_SNP_440_IMAGINE;A;SNP;440;---------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTA;ATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;14;Sequence;;;7 -Batch_AU247387_SNP_440_IRELAND;A;SNP;440;CTCAATTTCAATTTGGCCATGCTTAATGTTGGGTGCTTTCTGTATAGCCTGCTCACCAAGGTGTGATCTCTTCTTTGTATACACAGGTGGTTGCTGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACNTTGGCATA;ATAGGTNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;15;Sequence;;;10 -Batch_AU247387_SNP_440_NEMOH;A;SNP;440;---------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTA;ATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;19;Sequence;;;7 -Batch_AU247387_SNP_440_SPAIN;A;SNP;440;---------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATA;ATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCGAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGAGAAGTACGACGACAAGGTTGATGCTTTTGGTGAGAAG;1;12;21;Sequence;;;10 -Batch_AU247387_SNP_440_TRANSATE;A;SNP;440;---------------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTCTTCTTTGTATGCTCAGGTGGTTGCGGG---------------------------------------------------------------------------------------------------TCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATA;ATAGGTAAK------------------TATARCTTGTGCTGCAACACTTGAGTTCATAACCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;22;Sequence;;;10 -Batch_AU247387_SNP_440_VIGOR;A;SNP;440;---------------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTA;ATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCGGTTCTGTACGAGAAGTACGAGGACAAGATCGATGCTTTTGGAGAGAAG;1;12;23;Sequence;;;7 -Batch_AU247387_SNP_449_10954;A;SNP;449;------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAA;GTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;6;Sequence;;;10 -Batch_AU247387_SNP_449_CARILLON;A;SNP;449;------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAA;------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCRAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;9;Sequence;;;10 -Batch_AU247387_SNP_449_CONCERTO;A;SNP;449;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAA;GTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;10;Sequence;;;10 -Batch_AU247387_SNP_449_IMAGINE;A;SNP;449;------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAA;GTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;14;Sequence;;;10 -Batch_AU247387_SNP_449_NEMOH;A;SNP;449;------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAA;GTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;19;Sequence;;;10 -Batch_AU247387_SNP_449_SPAIN;A;SNP;449;------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAA;------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCGAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGAGAAGTACGACGACAAGGTTGATGCTTTTGGTGAGAAG;1;12;21;Sequence;;;10 -Batch_AU247387_SNP_449_TRANSATE;A;SNP;449;------------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTCTTCTTTGTATGCTCAGGTGGTTGCGGG---------------------------------------------------------------------------------------------------TCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAA;------------------TATARCTTGTGCTGCAACACTTGAGTTCATAACCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;22;Sequence;;;3 -Batch_AU247387_SNP_449_VIGOR;A;SNP;449;------------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAA;GTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCGGTTCTGTACGAGAAGTACGAGGACAAGATCGATGCTTTTGGAGAGAAG;1;12;23;Sequence;;;10 -Batch_AU247387_DEL_450_10954;A;DELETION;450;-----------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAAT;CTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;18;12;6;Sequence;;;69 -Batch_AU247387_DEL_450_CARILLON;A;DELETION;450;-----------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT;TTTAACTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCRAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;18;12;9;Sequence;;;60 -Batch_AU247387_DEL_450_CONCERTO;A;DELETION;450;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAAT;CTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;18;12;10;Sequence;;;69 -Batch_AU247387_DEL_450_IMAGINE;A;DELETION;450;-----------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAAT;CTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;18;12;14;Sequence;;;69 -Batch_AU247387_DEL_450_NEMOH;A;DELETION;450;-----------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAAT;CTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;18;12;19;Sequence;;;69 -Batch_AU247387_DEL_450_SPAIN;A;DELETION;450;-----------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT;TTTAACTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCGAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGAGAAGTACGACGACAAGGTTGATGCTTTTGGTGAGAAG;18;12;21;Sequence;;;60 -Batch_AU247387_DEL_450_TRANSATE;A;DELETION;450;-----------------GTTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTCTTCTTTGTATGCTCAGGTGGTTGCGGG---------------------------------------------------------------------------------------------------TCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAK;TATARCTTGTGCTGCAACACTTGAGTTCATAACCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;18;12;22;Sequence;;;60 -Batch_AU247387_DEL_450_VIGOR;A;DELETION;450;-----------------------------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAAT;CTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCGGTTCTGTACGAGAAGTACGAGGACAAGATCGATGCTTTTGGAGAGAAG;18;12;23;Sequence;;;69 -Batch_AU247387_SNP_468_10954;A;SNP;468;-----------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGC;TGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;6;Sequence;;;7 -Batch_AU247387_SNP_468_CARILLON;A;SNP;468;TTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------;TTAACTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCRAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;9;Sequence;;;10 -Batch_AU247387_SNP_468_CONCERTO;A;SNP;468;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGC;TGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;10;Sequence;;;7 -Batch_AU247387_SNP_468_IMAGINE;A;SNP;468;-----------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGC;TGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;14;Sequence;;;7 -Batch_AU247387_SNP_468_NEMOH;A;SNP;468;-----------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGC;TGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;19;Sequence;;;7 -Batch_AU247387_SNP_468_SPAIN;A;SNP;468;TTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------;TTAACTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCGAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGAGAAGTACGACGACAAGGTTGATGCTTTTGGTGAGAAG;1;12;21;Sequence;;;10 -Batch_AU247387_SNP_468_TRANSATE;A;SNP;468;TTGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTCTTCTTTGTATGCTCAGGTGGTTGCGGG---------------------------------------------------------------------------------------------------TCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAK------------------;ATARCTTGTGCTGCAACACTTGAGTTCATAACCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;22;Sequence;;;10 -Batch_AU247387_SNP_468_VIGOR;A;SNP;468;-----------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGC;TGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCGGTTCTGTACGAGAAGTACGAGGACAAGATCGATGCTTTTGGAGAGAAG;1;12;23;Sequence;;;7 -Batch_AU247387_SNP_469_10954;A;SNP;469;----------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCC;GAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;6;Sequence;;;10 -Batch_AU247387_SNP_469_CARILLON;A;SNP;469;TGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------T;TAACTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCRAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;9;Sequence;;;10 -Batch_AU247387_SNP_469_CONCERTO;A;SNP;469;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCC;GAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;10;Sequence;;;10 -Batch_AU247387_SNP_469_IMAGINE;A;SNP;469;----------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCC;GAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;14;Sequence;;;10 -Batch_AU247387_SNP_469_NEMOH;A;SNP;469;----------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCC;GAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;19;Sequence;;;10 -Batch_AU247387_SNP_469_SPAIN;A;SNP;469;TGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------T;TAACTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCGAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGAGAAGTACGACGACAAGGTTGATGCTTTTGGTGAGAAG;1;12;21;Sequence;;;10 -Batch_AU247387_SNP_469_TRANSATE;A;SNP;469;TGGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTCTTCTTTGTATGCTCAGGTGGTTGCGGG---------------------------------------------------------------------------------------------------TCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAK------------------T;TARCTTGTGCTGCAACACTTGAGTTCATAACCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;22;Sequence;;;9 -Batch_AU247387_SNP_469_VIGOR;A;SNP;469;----------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCC;GAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCGGTTCTGTACGAGAAGTACGAGGACAAGATCGATGCTTTTGGAGAGAAG;1;12;23;Sequence;;;10 -Batch_AU247387_SNP_470_10954;A;SNP;470;---------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCT;AACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;6;Sequence;;;6 -Batch_AU247387_SNP_470_CARILLON;A;SNP;470;GGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TT;AACTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCRAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;9;Sequence;;;10 -Batch_AU247387_SNP_470_CONCERTO;A;SNP;470;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCT;AACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;10;Sequence;;;6 -Batch_AU247387_SNP_470_IMAGINE;A;SNP;470;---------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCT;AACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;14;Sequence;;;6 -Batch_AU247387_SNP_470_NEMOH;A;SNP;470;---------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCT;AACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;19;Sequence;;;6 -Batch_AU247387_SNP_470_SPAIN;A;SNP;470;GGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TT;AACTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCGAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGAGAAGTACGACGACAAGGTTGATGCTTTTGGTGAGAAG;1;12;21;Sequence;;;10 -Batch_AU247387_SNP_470_TRANSATE;A;SNP;470;GGGTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTCTTCTTTGTATGCTCAGGTGGTTGCGGG---------------------------------------------------------------------------------------------------TCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAK------------------TA;ARCTTGTGCTGCAACACTTGAGTTCATAACCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;22;Sequence;;;10 -Batch_AU247387_SNP_470_VIGOR;A;SNP;470;---------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCT;AACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCGGTTCTGTACGAGAAGTACGAGGACAAGATCGATGCTTTTGGAGAGAAG;1;12;23;Sequence;;;6 -Batch_AU247387_SNP_472_10954;A;SNP;472;-------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGA;CTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;6;Sequence;;;9 -Batch_AU247387_SNP_472_CARILLON;A;SNP;472;GTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTA;CTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCRAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;9;Sequence;;;9 -Batch_AU247387_SNP_472_CONCERTO;A;SNP;472;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGA;CTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;10;Sequence;;;9 -Batch_AU247387_SNP_472_IMAGINE;A;SNP;472;-------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGA;CTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;14;Sequence;;;9 -Batch_AU247387_SNP_472_NEMOH;A;SNP;472;-------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGA;CTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;19;Sequence;;;9 -Batch_AU247387_SNP_472_SPAIN;A;SNP;472;GTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTA;CTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCGAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGAGAAGTACGACGACAAGGTTGATGCTTTTGGTGAGAAG;1;12;21;Sequence;;;9 -Batch_AU247387_SNP_472_TRANSATE;A;SNP;472;GTGCTTTCTTTAT--CCTGCTCACCAACATGTGATCTCTTCTTTGTATGCTCAGGTGGTTGCGGG---------------------------------------------------------------------------------------------------TCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAK------------------TATA;CTTGTGCTGCAACACTTGAGTTCATAACCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;22;Sequence;;;5 -Batch_AU247387_SNP_472_VIGOR;A;SNP;472;-------------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGA;CTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCGGTTCTGTACGAGAAGTACGAGGACAAGATCGATGCTTTTGGAGAGAAG;1;12;23;Sequence;;;9 -Batch_AU247387_DEL_477_10954;A;DELETION;477;--------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG;CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;8;12;6;Sequence;;;43 -Batch_AU247387_DEL_477_CARILLON;A;DELETION;477;TTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTG;CACTTGAGTTCATAACCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCRAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;8;12;9;Sequence;;;66 -Batch_AU247387_DEL_477_CONCERTO;A;DELETION;477;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG;CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;8;12;10;Sequence;;;43 -Batch_AU247387_DEL_477_IMAGINE;A;DELETION;477;--------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG;CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;8;12;14;Sequence;;;43 -Batch_AU247387_DEL_477_NEMOH;A;DELETION;477;--------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG;CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;8;12;19;Sequence;;;43 -Batch_AU247387_DEL_477_SPAIN;A;DELETION;477;TTCTTTAT--CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTG;CACTTGAGTTCATAACCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCGAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGAGAAGTACGACGACAAGGTTGATGCTTTTGGTGAGAAG;8;12;21;Sequence;;;66 -Batch_AU247387_DEL_477_TRANSATE;A;DELETION;477;TTCTTTAT--CCTGCTCACCAACATGTGATCTCTTCTTTGTATGCTCAGGTGGTTGCGGG---------------------------------------------------------------------------------------------------TCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAK------------------TATARCTTG;CACTTGAGTTCATAACCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;8;12;22;Sequence;;;66 -Batch_AU247387_DEL_477_VIGOR;A;DELETION;477;--------------------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG;CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCGGTTCTGTACGAGAAGTACGAGGACAAGATCGATGCTTTTGGAGAGAAG;8;12;23;Sequence;;;43 -Batch_AU247387_SNP_487_10954;A;SNP;487;----------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CA;ATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;6;Sequence;;;6 -Batch_AU247387_SNP_487_CARILLON;A;SNP;487;CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACA;TTGAGTTCATAACCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCRAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;9;Sequence;;;7 -Batch_AU247387_SNP_487_CONCERTO;A;SNP;487;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CA;ATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;10;Sequence;;;6 -Batch_AU247387_SNP_487_IMAGINE;A;SNP;487;----------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CA;ATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;14;Sequence;;;6 -Batch_AU247387_SNP_487_NEMOH;A;SNP;487;----------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CA;ATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;19;Sequence;;;6 -Batch_AU247387_SNP_487_SPAIN;A;SNP;487;CCTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACA;TTGAGTTCATAACCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCGAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGAGAAGTACGACGACAAGGTTGATGCTTTTGGTGAGAAG;1;12;21;Sequence;;;7 -Batch_AU247387_SNP_487_TRANSATE;A;SNP;487;CCTGCTCACCAACATGTGATCTCTTCTTTGTATGCTCAGGTGGTTGCGGG---------------------------------------------------------------------------------------------------TCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAK------------------TATARCTTGTGCTGCAACA;TTGAGTTCATAACCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;22;Sequence;;;7 -Batch_AU247387_SNP_487_VIGOR;A;SNP;487;----------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CA;ATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCGGTTCTGTACGAGAAGTACGAGGACAAGATCGATGCTTTTGGAGAGAAG;1;12;23;Sequence;;;6 -Batch_AU247387_SNP_488_10954;A;SNP;488;---------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAG;TGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;6;Sequence;;;9 -Batch_AU247387_SNP_488_CARILLON;A;SNP;488;CTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACAC;TGAGTTCATAACCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCRAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;9;Sequence;;;10 -Batch_AU247387_SNP_488_CONCERTO;A;SNP;488;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAG;TGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;10;Sequence;;;9 -Batch_AU247387_SNP_488_IMAGINE;A;SNP;488;---------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAG;TGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;14;Sequence;;;9 -Batch_AU247387_SNP_488_NEMOH;A;SNP;488;---------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAG;TGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;19;Sequence;;;9 -Batch_AU247387_SNP_488_SPAIN;A;SNP;488;CTGCTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACAC;TGAGTTCATAACCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCGAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGAGAAGTACGACGACAAGGTTGATGCTTTTGGTGAGAAG;1;12;21;Sequence;;;10 -Batch_AU247387_SNP_488_TRANSATE;A;SNP;488;CTGCTCACCAACATGTGATCTCTTCTTTGTATGCTCAGGTGGTTGCGGG---------------------------------------------------------------------------------------------------TCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAK------------------TATARCTTGTGCTGCAACAC;TGAGTTCATAACCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;22;Sequence;;;10 -Batch_AU247387_SNP_488_VIGOR;A;SNP;488;---------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAG;TGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCGGTTCTGTACGAGAAGTACGAGGACAAGATCGATGCTTTTGGAGAGAAG;1;12;23;Sequence;;;9 -Batch_AU247387_SNP_491_10954;A;SNP;491;------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATG;GCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;6;Sequence;;;10 -Batch_AU247387_SNP_491_CARILLON;A;SNP;491;CTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTG;GTTCATAACCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCRAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;9;Sequence;;;9 -Batch_AU247387_SNP_491_CONCERTO;A;SNP;491;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATG;GCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;10;Sequence;;;10 -Batch_AU247387_SNP_491_IMAGINE;A;SNP;491;------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATG;GCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;14;Sequence;;;10 -Batch_AU247387_SNP_491_NEMOH;A;SNP;491;------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATG;GCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;19;Sequence;;;10 -Batch_AU247387_SNP_491_SPAIN;A;SNP;491;CTCACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTG;GTTCATAACCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCGAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGAGAAGTACGACGACAAGGTTGATGCTTTTGGTGAGAAG;1;12;21;Sequence;;;9 -Batch_AU247387_SNP_491_TRANSATE;A;SNP;491;CTCACCAACATGTGATCTCTTCTTTGTATGCTCAGGTGGTTGCGGG---------------------------------------------------------------------------------------------------TCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAK------------------TATARCTTGTGCTGCAACACTTG;GTTCATAACCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;22;Sequence;;;9 -Batch_AU247387_SNP_491_VIGOR;A;SNP;491;------------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATG;GCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCGGTTCTGTACGAGAAGTACGAGGACAAGATCGATGCTTTTGGAGAGAAG;1;12;23;Sequence;;;10 -Batch_AU247387_SNP_493_10954;A;SNP;493;----------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTG;AGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;6;Sequence;;;7 -Batch_AU247387_SNP_493_CARILLON;A;SNP;493;CACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAG;TCATAACCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCRAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;9;Sequence;;;10 -Batch_AU247387_SNP_493_CONCERTO;A;SNP;493;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTG;AGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;10;Sequence;;;7 -Batch_AU247387_SNP_493_IMAGINE;A;SNP;493;----------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTG;AGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;14;Sequence;;;7 -Batch_AU247387_SNP_493_NEMOH;A;SNP;493;----------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTG;AGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;19;Sequence;;;7 -Batch_AU247387_SNP_493_SPAIN;A;SNP;493;CACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAG;TCATAACCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCGAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGAGAAGTACGACGACAAGGTTGATGCTTTTGGTGAGAAG;1;12;21;Sequence;;;10 -Batch_AU247387_SNP_493_TRANSATE;A;SNP;493;CACCAACATGTGATCTCTTCTTTGTATGCTCAGGTGGTTGCGGG---------------------------------------------------------------------------------------------------TCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAK------------------TATARCTTGTGCTGCAACACTTGAG;TCATAACCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;22;Sequence;;;10 -Batch_AU247387_SNP_493_VIGOR;A;SNP;493;----------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTG;AGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCGGTTCTGTACGAGAAGTACGAGGACAAGATCGATGCTTTTGGAGAGAAG;1;12;23;Sequence;;;7 -Batch_AU247387_SNP_494_10954;A;SNP;494;---------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGC;GTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;6;Sequence;;;9 -Batch_AU247387_SNP_494_CARILLON;A;SNP;494;ACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGT;CATAACCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCRAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;9;Sequence;;;10 -Batch_AU247387_SNP_494_CONCERTO;A;SNP;494;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGC;GTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;10;Sequence;;;9 -Batch_AU247387_SNP_494_IMAGINE;A;SNP;494;---------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGC;GTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;14;Sequence;;;9 -Batch_AU247387_SNP_494_NEMOH;A;SNP;494;---------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGC;GTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;19;Sequence;;;9 -Batch_AU247387_SNP_494_SPAIN;A;SNP;494;ACCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGT;CATAACCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCGAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGAGAAGTACGACGACAAGGTTGATGCTTTTGGTGAGAAG;1;12;21;Sequence;;;10 -Batch_AU247387_SNP_494_TRANSATE;A;SNP;494;ACCAACATGTGATCTCTTCTTTGTATGCTCAGGTGGTTGCGGG---------------------------------------------------------------------------------------------------TCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAK------------------TATARCTTGTGCTGCAACACTTGAGT;CATAACCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;22;Sequence;;;10 -Batch_AU247387_SNP_494_VIGOR;A;SNP;494;---------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGC;GTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCGGTTCTGTACGAGAAGTACGAGGACAAGATCGATGCTTTTGGAGAGAAG;1;12;23;Sequence;;;9 -Batch_AU247387_SNP_495_10954;A;SNP;495;--------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCA;TAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;6;Sequence;;;6 -Batch_AU247387_SNP_495_CARILLON;A;SNP;495;CCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTT;ATAACCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCRAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;9;Sequence;;;7 -Batch_AU247387_SNP_495_CONCERTO;A;SNP;495;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCA;TAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;10;Sequence;;;6 -Batch_AU247387_SNP_495_IMAGINE;A;SNP;495;--------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCA;TAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;14;Sequence;;;6 -Batch_AU247387_SNP_495_NEMOH;A;SNP;495;--------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCA;TAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;19;Sequence;;;6 -Batch_AU247387_SNP_495_SPAIN;A;SNP;495;CCAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTT;ATAACCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCGAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGAGAAGTACGACGACAAGGTTGATGCTTTTGGTGAGAAG;1;12;21;Sequence;;;7 -Batch_AU247387_SNP_495_TRANSATE;A;SNP;495;CCAACATGTGATCTCTTCTTTGTATGCTCAGGTGGTTGCGGG---------------------------------------------------------------------------------------------------TCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAK------------------TATARCTTGTGCTGCAACACTTGAGTT;ATAACCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;22;Sequence;;;7 -Batch_AU247387_SNP_495_VIGOR;A;SNP;495;--------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCA;TAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCGGTTCTGTACGAGAAGTACGAGGACAAGATCGATGCTTTTGGAGAGAAG;1;12;23;Sequence;;;6 -Batch_AU247387_SNP_496_10954;A;SNP;496;-------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAG;AACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;6;Sequence;;;10 -Batch_AU247387_SNP_496_CARILLON;A;SNP;496;CAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTC;TAACCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCRAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;9;Sequence;;;9 -Batch_AU247387_SNP_496_CONCERTO;A;SNP;496;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAG;AACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;10;Sequence;;;10 -Batch_AU247387_SNP_496_IMAGINE;A;SNP;496;-------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAG;AACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;14;Sequence;;;10 -Batch_AU247387_SNP_496_NEMOH;A;SNP;496;-------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAG;AACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;19;Sequence;;;10 -Batch_AU247387_SNP_496_SPAIN;A;SNP;496;CAACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTC;TAACCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCGAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGAGAAGTACGACGACAAGGTTGATGCTTTTGGTGAGAAG;1;12;21;Sequence;;;9 -Batch_AU247387_SNP_496_TRANSATE;A;SNP;496;CAACATGTGATCTCTTCTTTGTATGCTCAGGTGGTTGCGGG---------------------------------------------------------------------------------------------------TCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAK------------------TATARCTTGTGCTGCAACACTTGAGTTC;TAACCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;22;Sequence;;;9 -Batch_AU247387_SNP_496_VIGOR;A;SNP;496;-------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAG;AACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCGGTTCTGTACGAGAAGTACGAGGACAAGATCGATGCTTTTGGAGAGAAG;1;12;23;Sequence;;;10 -Batch_AU247387_SNP_497_10954;A;SNP;497;------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGT;ACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;6;Sequence;;;9 -Batch_AU247387_SNP_497_CARILLON;A;SNP;497;AACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCA;AACCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCRAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;9;Sequence;;;10 -Batch_AU247387_SNP_497_CONCERTO;A;SNP;497;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGT;ACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;10;Sequence;;;9 -Batch_AU247387_SNP_497_IMAGINE;A;SNP;497;------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGT;ACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;14;Sequence;;;9 -Batch_AU247387_SNP_497_NEMOH;A;SNP;497;------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGT;ACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;19;Sequence;;;9 -Batch_AU247387_SNP_497_SPAIN;A;SNP;497;AACATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCA;AACCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCGAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGAGAAGTACGACGACAAGGTTGATGCTTTTGGTGAGAAG;1;12;21;Sequence;;;10 -Batch_AU247387_SNP_497_TRANSATE;A;SNP;497;AACATGTGATCTCTTCTTTGTATGCTCAGGTGGTTGCGGG---------------------------------------------------------------------------------------------------TCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAK------------------TATARCTTGTGCTGCAACACTTGAGTTCA;AACCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;22;Sequence;;;10 -Batch_AU247387_SNP_497_VIGOR;A;SNP;497;------------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGT;ACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCGGTTCTGTACGAGAAGTACGAGGACAAGATCGATGCTTTTGGAGAGAAG;1;12;23;Sequence;;;9 -Batch_AU247387_SNP_499_10954;A;SNP;499;----------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAA;TGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;6;Sequence;;;7 -Batch_AU247387_SNP_499_CARILLON;A;SNP;499;CATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATA;CCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCRAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;9;Sequence;;;9 -Batch_AU247387_SNP_499_CONCERTO;A;SNP;499;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAA;TGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;10;Sequence;;;7 -Batch_AU247387_SNP_499_IMAGINE;A;SNP;499;----------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAA;TGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;14;Sequence;;;7 -Batch_AU247387_SNP_499_NEMOH;A;SNP;499;----------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAA;TGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;19;Sequence;;;7 -Batch_AU247387_SNP_499_SPAIN;A;SNP;499;CATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATA;CCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCGAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGAGAAGTACGACGACAAGGTTGATGCTTTTGGTGAGAAG;1;12;21;Sequence;;;9 -Batch_AU247387_SNP_499_TRANSATE;A;SNP;499;CATGTGATCTCTTCTTTGTATGCTCAGGTGGTTGCGGG---------------------------------------------------------------------------------------------------TCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAK------------------TATARCTTGTGCTGCAACACTTGAGTTCATA;CCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;22;Sequence;;;9 -Batch_AU247387_SNP_499_VIGOR;A;SNP;499;----------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAA;TGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCGGTTCTGTACGAGAAGTACGAGGACAAGATCGATGCTTTTGGAGAGAAG;1;12;23;Sequence;;;7 -Batch_AU247387_SNP_500_10954;A;SNP;500;---------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAAC;GTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;6;Sequence;;;10 -Batch_AU247387_SNP_500_CARILLON;A;SNP;500;ATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAA;CACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCRAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;9;Sequence;;;7 -Batch_AU247387_SNP_500_CONCERTO;A;SNP;500;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAAC;GTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;10;Sequence;;;10 -Batch_AU247387_SNP_500_IMAGINE;A;SNP;500;---------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAAC;GTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;14;Sequence;;;10 -Batch_AU247387_SNP_500_NEMOH;A;SNP;500;---------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAAC;GTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;19;Sequence;;;10 -Batch_AU247387_SNP_500_SPAIN;A;SNP;500;ATGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAA;CACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCGAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGAGAAGTACGACGACAAGGTTGATGCTTTTGGTGAGAAG;1;12;21;Sequence;;;7 -Batch_AU247387_SNP_500_TRANSATE;A;SNP;500;ATGTGATCTCTTCTTTGTATGCTCAGGTGGTTGCGGG---------------------------------------------------------------------------------------------------TCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAK------------------TATARCTTGTGCTGCAACACTTGAGTTCATAA;CNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;22;Sequence;;;7 -Batch_AU247387_SNP_500_VIGOR;A;SNP;500;---------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAAC;GTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCGGTTCTGTACGAGAAGTACGAGGACAAGATCGATGCTTTTGGAGAGAAG;1;12;23;Sequence;;;10 -Batch_AU247387_SNP_501_10954;A;SNP;501;--------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACT;TACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;6;Sequence;;;6 -Batch_AU247387_SNP_501_CARILLON;A;SNP;501;TGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAAC;ACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCRAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;9;Sequence;;;7 -Batch_AU247387_SNP_501_CONCERTO;A;SNP;501;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACT;TACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;10;Sequence;;;6 -Batch_AU247387_SNP_501_IMAGINE;A;SNP;501;--------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACT;TACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;14;Sequence;;;6 -Batch_AU247387_SNP_501_NEMOH;A;SNP;501;--------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACT;TACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;19;Sequence;;;6 -Batch_AU247387_SNP_501_SPAIN;A;SNP;501;TGTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAAC;ACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCGAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGAGAAGTACGACGACAAGGTTGATGCTTTTGGTGAGAAG;1;12;21;Sequence;;;7 -Batch_AU247387_SNP_501_TRANSATE;A;SNP;501;TGTGATCTCTTCTTTGTATGCTCAGGTGGTTGCGGG---------------------------------------------------------------------------------------------------TCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAK------------------TATARCTTGTGCTGCAACACTTGAGTTCATAAC;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;22;Sequence;;;7 -Batch_AU247387_SNP_501_VIGOR;A;SNP;501;--------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACT;TACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCGGTTCTGTACGAGAAGTACGAGGACAAGATCGATGCTTTTGGAGAGAAG;1;12;23;Sequence;;;6 -Batch_AU247387_SNP_502_10954;A;SNP;502;-------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTG;ACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;6;Sequence;;;10 -Batch_AU247387_SNP_502_CARILLON;A;SNP;502;GTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAACC;CCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCRAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;9;Sequence;;;9 -Batch_AU247387_SNP_502_CONCERTO;A;SNP;502;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTG;ACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;10;Sequence;;;10 -Batch_AU247387_SNP_502_IMAGINE;A;SNP;502;-------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTG;ACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;14;Sequence;;;10 -Batch_AU247387_SNP_502_NEMOH;A;SNP;502;-------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTG;ACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;19;Sequence;;;10 -Batch_AU247387_SNP_502_SPAIN;A;SNP;502;GTGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAACC;CCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCGAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGAGAAGTACGACGACAAGGTTGATGCTTTTGGTGAGAAG;1;12;21;Sequence;;;9 -Batch_AU247387_SNP_502_VIGOR;A;SNP;502;-------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTG;ACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCGGTTCTGTACGAGAAGTACGAGGACAAGATCGATGCTTTTGGAGAGAAG;1;12;23;Sequence;;;10 -Batch_AU247387_SNP_503_10954;A;SNP;503;------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGT;CCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;6;Sequence;;;9 -Batch_AU247387_SNP_503_CARILLON;A;SNP;503;TGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAACCA;CCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCRAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;9;Sequence;;;7 -Batch_AU247387_SNP_503_CONCERTO;A;SNP;503;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGT;CCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;10;Sequence;;;9 -Batch_AU247387_SNP_503_IMAGINE;A;SNP;503;------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGT;CCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;14;Sequence;;;9 -Batch_AU247387_SNP_503_NEMOH;A;SNP;503;------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGT;CCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;19;Sequence;;;9 -Batch_AU247387_SNP_503_SPAIN;A;SNP;503;TGATCTGTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAACCA;CCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCGAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGAGAAGTACGACGACAAGGTTGATGCTTTTGGTGAGAAG;1;12;21;Sequence;;;7 -Batch_AU247387_SNP_503_VIGOR;A;SNP;503;------------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGT;CCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCGGTTCTGTACGAGAAGTACGAGGACAAGATCGATGCTTTTGGAGAGAAG;1;12;23;Sequence;;;9 -Batch_AU247387_DEL_509_10954;A;DELETION;509;------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAG;TTACCCAT------------------------TCTCGCTTTCTTACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;6;12;6;Sequence;;;70 -Batch_AU247387_DEL_509_CARILLON;A;DELETION;509;GTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG;TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCRAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;6;12;9;Sequence;;;61 -Batch_AU247387_DEL_509_CONCERTO;A;DELETION;509;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAG;TTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;6;12;10;Sequence;;;70 -Batch_AU247387_DEL_509_IMAGINE;A;DELETION;509;------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAG;TTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;6;12;14;Sequence;;;70 -Batch_AU247387_DEL_509_NEMOH;A;DELETION;509;------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAG;TTACCCAT------------------------TCTCGCTTTCTTACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;6;12;19;Sequence;;;70 -Batch_AU247387_DEL_509_SPAIN;A;DELETION;509;GTTCTTTGTATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG;TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCGAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGAGAAGTACGACGACAAGGTTGATGCTTTTGGTGAGAAG;6;12;21;Sequence;;;61 -Batch_AU247387_DEL_509_VIGOR;A;DELETION;509;------------------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAG;TTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCGGTTCTGTACGAGAAGTACGAGGACAAGATCGATGCTTTTGGAGAGAAG;6;12;23;Sequence;;;70 -Batch_AU247387_SNP_517_10954;A;SNP;517;----------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTT;CCCAT------------------------TCTCGCTTTCTTACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;6;Sequence;;;9 -Batch_AU247387_SNP_517_CARILLON;A;SNP;517;TATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG------TT;TCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCRAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;9;Sequence;;;6 -Batch_AU247387_SNP_517_CONCERTO;A;SNP;517;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTT;CCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;10;Sequence;;;9 -Batch_AU247387_SNP_517_IMAGINE;A;SNP;517;----------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTT;CCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;14;Sequence;;;9 -Batch_AU247387_SNP_517_NEMOH;A;SNP;517;----------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTT;CCCAT------------------------TCTCGCTTTCTTACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;19;Sequence;;;9 -Batch_AU247387_SNP_517_SPAIN;A;SNP;517;TATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG------TT;TCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCGAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGAGAAGTACGACGACAAGGTTGATGCTTTTGGTGAGAAG;1;12;21;Sequence;;;6 -Batch_AU247387_SNP_517_VIGOR;A;SNP;517;----------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTT;CCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCGGTTCTGTACGAGAAGTACGAGGACAAGATCGATGCTTTTGGAGAGAAG;1;12;23;Sequence;;;9 -Batch_AU247387_SNP_518_10954;A;SNP;518;---------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTA;CCAT------------------------TCTCGCTTTCTTACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;6;Sequence;;;7 -Batch_AU247387_SNP_518_CARILLON;A;SNP;518;ATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG------TTG;CCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCRAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;9;Sequence;;;10 -Batch_AU247387_SNP_518_CONCERTO;A;SNP;518;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTA;CCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;10;Sequence;;;7 -Batch_AU247387_SNP_518_IMAGINE;A;SNP;518;---------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTA;CCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;14;Sequence;;;7 -Batch_AU247387_SNP_518_NEMOH;A;SNP;518;---------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTA;CCAT------------------------TCTCGCTTTCTTACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;19;Sequence;;;7 -Batch_AU247387_SNP_518_SPAIN;A;SNP;518;ATGCTCAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG------TTG;CCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCGAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGAGAAGTACGACGACAAGGTTGATGCTTTTGGTGAGAAG;1;12;21;Sequence;;;10 -Batch_AU247387_SNP_518_VIGOR;A;SNP;518;---------TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTA;CCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCGGTTCTGTACGAGAAGTACGAGGACAAGATCGATGCTTTTGGAGAGAAG;1;12;23;Sequence;;;7 -Batch_AU247387_DEL_523_10954;A;DELETION;523;----TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT;TCTCGCTTTCTTACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;24;12;6;Sequence;;;57 -Batch_AU247387_DEL_523_CARILLON;A;DELETION;523;CAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG------TTGTCCAT;GTTCTTTTTCCCRAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;24;12;9;Sequence;;;67 -Batch_AU247387_DEL_523_CONCERTO;A;DELETION;523;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT;TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;24;12;10;Sequence;;;57 -Batch_AU247387_DEL_523_IMAGINE;A;DELETION;523;----TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT;TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;24;12;14;Sequence;;;57 -Batch_AU247387_DEL_523_NEMOH;A;DELETION;523;----TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT;TCTCGCTTTCTTACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;24;12;19;Sequence;;;57 -Batch_AU247387_DEL_523_SPAIN;A;DELETION;523;CAGGTGGTTGCCGG---------------------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG------TTGTCCAT;GTTCTTTTTCCCGAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGAGAAGTACGACGACAAGGTTGATGCTTTTGGTGAGAAG;24;12;21;Sequence;;;67 -Batch_AU247387_DEL_523_VIGOR;A;DELETION;523;----TGGTTGCATGGCTTCGTTCTCTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT;TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCGGTTCTGTACGAGAAGTACGAGGACAAGATCGATGCTTTTGGAGAGAAG;24;12;23;Sequence;;;57 -Batch_AU247387_SNP_547_10954;A;SNP;547;CTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------;CTCGCTTTCTTACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;6;Sequence;;;10 -Batch_AU247387_SNP_547_CARILLON;A;SNP;547;-----------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCC;TTCTTTTTCCCRAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;9;Sequence;;;6 -Batch_AU247387_SNP_547_CONCERTO;A;SNP;547;NNNNNNNNNNNNNNNNNNNNNNCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------;CTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;10;Sequence;;;10 -Batch_AU247387_SNP_547_IMAGINE;A;SNP;547;CTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------;CTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;14;Sequence;;;10 -Batch_AU247387_SNP_547_NEMOH;A;SNP;547;CTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------;CTCGCTTTCTTACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;19;Sequence;;;10 -Batch_AU247387_SNP_547_SPAIN;A;SNP;547;-----------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCC;TTCTTTTTCCCGAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGAGAAGTACGACGACAAGGTTGATGCTTTTGGTGAGAAG;1;12;21;Sequence;;;6 -Batch_AU247387_SNP_547_VIGOR;A;SNP;547;CTTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------;CTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCGGTTCTGTACGAGAAGTACGAGGACAAGATCGATGCTTTTGGAGAGAAG;1;12;23;Sequence;;;10 -Batch_AU247387_SNP_548_10954;A;SNP;548;TTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------T;TCGCTTTCTTACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;6;Sequence;;;7 -Batch_AU247387_SNP_548_CARILLON;A;SNP;548;----------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCG;TCTTTTTCCCRAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;9;Sequence;;;10 -Batch_AU247387_SNP_548_CONCERTO;A;SNP;548;NNNNNNNNNNNNNNNNNNNNNCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------T;TCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;10;Sequence;;;7 -Batch_AU247387_SNP_548_IMAGINE;A;SNP;548;TTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------T;TCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;14;Sequence;;;7 -Batch_AU247387_SNP_548_NEMOH;A;SNP;548;TTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------T;TCGCTTTCTTACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;19;Sequence;;;7 -Batch_AU247387_SNP_548_SPAIN;A;SNP;548;----------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCG;TCTTTTTCCCGAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGAGAAGTACGACGACAAGGTTGATGCTTTTGGTGAGAAG;1;12;21;Sequence;;;10 -Batch_AU247387_SNP_548_VIGOR;A;SNP;548;TTTAGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------T;TCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCGGTTCTGTACGAGAAGTACGAGGACAAGATCGATGCTTTTGGAGAGAAG;1;12;23;Sequence;;;7 -Batch_AU247387_SNP_551_10954;A;SNP;551;AGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTC;CTTTCTTACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;6;Sequence;;;6 -Batch_AU247387_SNP_551_CARILLON;A;SNP;551;-------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTC;TTTTCCCRAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;9;Sequence;;;10 -Batch_AU247387_SNP_551_CONCERTO;A;SNP;551;NNNNNNNNNNNNNNNNNNCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTC;CTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;10;Sequence;;;6 -Batch_AU247387_SNP_551_IMAGINE;A;SNP;551;AGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTC;CTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;14;Sequence;;;6 -Batch_AU247387_SNP_551_NEMOH;A;SNP;551;AGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTC;CTTTCTTACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;19;Sequence;;;6 -Batch_AU247387_SNP_551_SPAIN;A;SNP;551;-------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTC;TTTTCCCGAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGAGAAGTACGACGACAAGGTTGATGCTTTTGGTGAGAAG;1;12;21;Sequence;;;10 -Batch_AU247387_SNP_551_VIGOR;A;SNP;551;AGCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTC;CTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCGGTTCTGTACGAGAAGTACGAGGACAAGATCGATGCTTTTGGAGAGAAG;1;12;23;Sequence;;;6 -Batch_AU247387_SNP_552_10954;A;SNP;552;GCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCG;TTTCTTACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;6;Sequence;;;7 -Batch_AU247387_SNP_552_CARILLON;A;SNP;552;------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCT;TTTCCCRAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;9;Sequence;;;10 -Batch_AU247387_SNP_552_CONCERTO;A;SNP;552;NNNNNNNNNNNNNNNNNCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCG;TTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;10;Sequence;;;7 -Batch_AU247387_SNP_552_IMAGINE;A;SNP;552;GCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCG;TTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;14;Sequence;;;7 -Batch_AU247387_SNP_552_NEMOH;A;SNP;552;GCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCG;TTTCTTACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;19;Sequence;;;7 -Batch_AU247387_SNP_552_SPAIN;A;SNP;552;------------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCT;TTTCCCGAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGAGAAGTACGACGACAAGGTTGATGCTTTTGGTGAGAAG;1;12;21;Sequence;;;10 -Batch_AU247387_SNP_552_VIGOR;A;SNP;552;GCCTTCGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCG;TTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCGGTTCTGTACGAGAAGTACGAGGACAAGATCGATGCTTTTGGAGAGAAG;1;12;23;Sequence;;;7 -Batch_AU247387_SNP_557_10954;A;SNP;557;CGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTC;TACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;6;Sequence;;;10 -Batch_AU247387_SNP_557_CARILLON;A;SNP;557;-------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTC;CRAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;9;Sequence;;;7 -Batch_AU247387_SNP_557_CONCERTO;A;SNP;557;NNNNNNNNNNNNCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTC;TACTTGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;10;Sequence;;;10 -Batch_AU247387_SNP_557_IMAGINE;A;SNP;557;CGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTC;TACTTGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;14;Sequence;;;10 -Batch_AU247387_SNP_557_NEMOH;A;SNP;557;CGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTC;TACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;19;Sequence;;;10 -Batch_AU247387_SNP_557_SPAIN;A;SNP;557;-------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTC;CGAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGAGAAGTACGACGACAAGGTTGATGCTTTTGGTGAGAAG;1;12;21;Sequence;;;7 -Batch_AU247387_SNP_557_VIGOR;A;SNP;557;CGCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTC;TACTTGCAGTCTTCATGGTTCTCTACACTGTGCCGGTTCTGTACGAGAAGTACGAGGACAAGATCGATGCTTTTGGAGAGAAG;1;12;23;Sequence;;;10 -Batch_AU247387_SNP_558_10954;A;SNP;558;GCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCT;ACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;6;Sequence;;;10 -Batch_AU247387_SNP_558_CARILLON;A;SNP;558;------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCC;RAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;9;Sequence;;;7 -Batch_AU247387_SNP_558_CONCERTO;A;SNP;558;NNNNNNNNNNNCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCT;ACTTGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;10;Sequence;;;10 -Batch_AU247387_SNP_558_IMAGINE;A;SNP;558;GCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCT;ACTTGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;14;Sequence;;;10 -Batch_AU247387_SNP_558_NEMOH;A;SNP;558;GCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCT;ACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;19;Sequence;;;10 -Batch_AU247387_SNP_558_SPAIN;A;SNP;558;------------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCC;GAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGAGAAGTACGACGACAAGGTTGATGCTTTTGGTGAGAAG;1;12;21;Sequence;;;7 -Batch_AU247387_SNP_558_VIGOR;A;SNP;558;GCTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCT;ACTTGCAGTCTTCATGGTTCTCTACACTGTGCCGGTTCTGTACGAGAAGTACGAGGACAAGATCGATGCTTTTGGAGAGAAG;1;12;23;Sequence;;;10 -Batch_AU247387_SNP_559_10954;A;SNP;559;CTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTT;CNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;6;Sequence;;;9 -Batch_AU247387_SNP_559_CARILLON;A;SNP;559;-----------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCC;AGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;9;Sequence;;;5 -Batch_AU247387_SNP_559_CONCERTO;A;SNP;559;NNNNNNNNNNCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTT;CTTGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;10;Sequence;;;9 -Batch_AU247387_SNP_559_IMAGINE;A;SNP;559;CTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTT;CTTGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;14;Sequence;;;9 -Batch_AU247387_SNP_559_NEMOH;A;SNP;559;CTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTT;CNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;19;Sequence;;;9 -Batch_AU247387_SNP_559_SPAIN;A;SNP;559;-----------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCC;AGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGAGAAGTACGACGACAAGGTTGATGCTTTTGGTGAGAAG;1;12;21;Sequence;;;6 -Batch_AU247387_SNP_559_VIGOR;A;SNP;559;CTGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTT;CTTGCAGTCTTCATGGTTCTCTACACTGTGCCGGTTCTGTACGAGAAGTACGAGGACAAGATCGATGCTTTTGGAGAGAAG;1;12;23;Sequence;;;9 -Batch_AU247387_SNP_560_10954;A;SNP;560;TGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTA;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;6;Sequence;;;7 -Batch_AU247387_SNP_560_CARILLON;A;SNP;560;----------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCR;GTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;9;Sequence;;;9 -Batch_AU247387_SNP_560_CONCERTO;A;SNP;560;NNNNNNNNNCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTA;TTGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;10;Sequence;;;7 -Batch_AU247387_SNP_560_IMAGINE;A;SNP;560;TGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTA;TTGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;14;Sequence;;;7 -Batch_AU247387_SNP_560_NEMOH;A;SNP;560;TGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTA;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;19;Sequence;;;7 -Batch_AU247387_SNP_560_SPAIN;A;SNP;560;----------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCG;GTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGAGAAGTACGACGACAAGGTTGATGCTTTTGGTGAGAAG;1;12;21;Sequence;;;9 -Batch_AU247387_SNP_560_VIGOR;A;SNP;560;TGTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTA;TTGCAGTCTTCATGGTTCTCTACACTGTGCCGGTTCTGTACGAGAAGTACGAGGACAAGATCGATGCTTTTGGAGAGAAG;1;12;23;Sequence;;;7 -Batch_AU247387_SNP_561_CARILLON;A;SNP;561;---------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCRA;TGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;9;Sequence;;;6 -Batch_AU247387_SNP_561_CONCERTO;A;SNP;561;NNNNNNNNCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTAC;TGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;10;Sequence;;;10 -Batch_AU247387_SNP_561_IMAGINE;A;SNP;561;GTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTAC;TGCAGTCTTCATGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;14;Sequence;;;10 -Batch_AU247387_SNP_561_SPAIN;A;SNP;561;---------------------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCGA;TGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGAGAAGTACGACGACAAGGTTGATGCTTTTGGTGAGAAG;1;12;21;Sequence;;;6 -Batch_AU247387_SNP_561_VIGOR;A;SNP;561;GTTTGTGGCTTTGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTAC;TGCAGTCTTCATGGTTCTCTACACTGTGCCGGTTCTGTACGAGAAGTACGAGGACAAGATCGATGCTTTTGGAGAGAAG;1;12;23;Sequence;;;10 -Batch_AU247387_SNP_572_CARILLON;A;SNP;572;----------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCRAGTGCAGTCTTC;TGGTGCTCTACACGGTGCCAGTTCTGTATGANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;9;Sequence;;;6 -Batch_AU247387_SNP_572_CONCERTO;A;SNP;572;TGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTC;TGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;10;Sequence;;;9 -Batch_AU247387_SNP_572_IMAGINE;A;SNP;572;TGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTC;TGGTTCTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;14;Sequence;;;9 -Batch_AU247387_SNP_572_SPAIN;A;SNP;572;----------------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCGAGTGCAGTCTTC;TGGTGCTCTACACGGTGCCAGTTCTGTATGAGAAGTACGACGACAAGGTTGATGCTTTTGGTGAGAAG;1;12;21;Sequence;;;6 -Batch_AU247387_SNP_572_VIGOR;A;SNP;572;TGTTATGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTC;TGGTTCTCTACACTGTGCCGGTTCTGTACGAGAAGTACGAGGACAAGATCGATGCTTTTGGAGAGAAG;1;12;23;Sequence;;;9 -Batch_AU247387_SNP_577_CARILLON;A;SNP;577;-----------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCRAGTGCAGTCTTCGTGGT;CTCTACACGGTGCCAGTTCTGTATGANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;9;Sequence;;;6 -Batch_AU247387_SNP_577_CONCERTO;A;SNP;577;TGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGT;CTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;10;Sequence;;;10 -Batch_AU247387_SNP_577_IMAGINE;A;SNP;577;TGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGT;CTCTACACTGTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;14;Sequence;;;10 -Batch_AU247387_SNP_577_SPAIN;A;SNP;577;-----------------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCGAGTGCAGTCTTCGTGGT;CTCTACACGGTGCCAGTTCTGTATGAGAAGTACGACGACAAGGTTGATGCTTTTGGTGAGAAG;1;12;21;Sequence;;;6 -Batch_AU247387_SNP_577_VIGOR;A;SNP;577;TGTGACCAAGCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGT;CTCTACACTGTGCCGGTTCTGTACGAGAAGTACGAGGACAAGATCGATGCTTTTGGAGAGAAG;1;12;23;Sequence;;;10 -Batch_AU247387_SNP_586_CARILLON;A;SNP;586;--------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCRAGTGCAGTCTTCGTGGTGCTCTACAC;GTGCCAGTTCTGTATGANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;9;Sequence;;;6 -Batch_AU247387_SNP_586_CONCERTO;A;SNP;586;GCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACAC;GTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;10;Sequence;;;10 -Batch_AU247387_SNP_586_IMAGINE;A;SNP;586;GCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACAC;GTGCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;14;Sequence;;;10 -Batch_AU247387_SNP_586_SPAIN;A;SNP;586;--------------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCGAGTGCAGTCTTCGTGGTGCTCTACAC;GTGCCAGTTCTGTATGAGAAGTACGACGACAAGGTTGATGCTTTTGGTGAGAAG;1;12;21;Sequence;;;6 -Batch_AU247387_SNP_586_VIGOR;A;SNP;586;GCACTTGCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACAC;GTGCCGGTTCTGTACGAGAAGTACGAGGACAAGATCGATGCTTTTGGAGAGAAG;1;12;23;Sequence;;;10 -Batch_AU247387_SNP_592_CARILLON;A;SNP;592;--------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCRAGTGCAGTCTTCGTGGTGCTCTACACGGTGCC;GTTCTGTATGANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;9;Sequence;;;9 -Batch_AU247387_SNP_592_SPAIN;A;SNP;592;--------------------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCGAGTGCAGTCTTCGTGGTGCTCTACACGGTGCC;GTTCTGTATGAGAAGTACGACGACAAGGTTGATGCTTTTGGTGAGAAG;1;12;21;Sequence;;;9 -Batch_AU247387_SNP_592_VIGOR;A;SNP;592;GCTATACTGTCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCC;GTTCTGTACGAGAAGTACGAGGACAAGATCGATGCTTTTGGAGAGAAG;1;12;23;Sequence;;;6 -Batch_AU247387_SNP_601_CARILLON;A;SNP;601;-----------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCRAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTA;GANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;12;9;Sequence;;;10 -Batch_AU247387_SNP_601_SPAIN;A;SNP;601;-----------------------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCGAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTA;GAGAAGTACGACGACAAGGTTGATGCTTTTGGTGAGAAG;1;12;21;Sequence;;;10 -Batch_AU247387_SNP_601_VIGOR;A;SNP;601;TCTATTTGTTCGCAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCGGTTCTGTA;GAGAAGTACGAGGACAAGATCGATGCTTTTGGAGAGAAG;1;12;23;Sequence;;;7 -Batch_AU247387_SNP_613_SPAIN;A;SNP;613;-----------------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCGAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGAGAAGTACGA;GACAAGGTTGATGCTTTTGGTGAGAAG;1;12;21;Sequence;;;7 -Batch_AU247387_SNP_613_VIGOR;A;SNP;613;CAGGTGATTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCGGTTCTGTACGAGAAGTACGA;GACAAGATCGATGCTTTTGGAGAGAAG;1;12;23;Sequence;;;6 -Batch_AU247387_SNP_620_SPAIN;A;SNP;620;----------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCGAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGAGAAGTACGACGACAAG;TTGATGCTTTTGGTGAGAAG;1;12;21;Sequence;;;6 -Batch_AU247387_SNP_620_VIGOR;A;SNP;620;TTGCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCGGTTCTGTACGAGAAGTACGAGGACAAG;TCGATGCTTTTGGAGAGAAG;1;12;23;Sequence;;;9 -Batch_AU247387_SNP_622_SPAIN;A;SNP;622;--------------CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCGAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGAGAAGTACGACGACAAGGT;GATGCTTTTGGTGAGAAG;1;12;21;Sequence;;;10 -Batch_AU247387_SNP_622_VIGOR;A;SNP;622;GCAGGTCTGTGGATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCGGTTCTGTACGAGAAGTACGAGGACAAGAT;GATGCTTTTGGAGAGAAG;1;12;23;Sequence;;;7 -Batch_AU247387_SNP_634_SPAIN;A;SNP;634;--CCTCTGGGTTCTTTCTGTTCTTGGGAGCTCTTGCAACTTCTTGACATTGGCATATATAGGTAAT------------------TTTAACTTGTGCTGCAACACTTGAGTTCATAACCACCCTAG------TTGTCCATACGAGTTGTGAACTGATGACATCCGTTCTTTTTCCCGAGTGCAGTCTTCGTGGTGCTCTACACGGTGCCAGTTCTGTATGAGAAGTACGACGACAAGGTTGATGCTTTTGG;GAGAAG;1;12;21;Sequence;;;10 -Batch_AU247387_SNP_634_VIGOR;A;SNP;634;ATCCTCT---------CTGCCCTTGGGAGCTGCTGCAATTTCCTCACCTTGTTCTACATAGGTAATGTGCTTCGCTGCTACAGCCTGAACTTG--------CAGATGTGCAGTAACTGTACCTAGCATTGTTTACCCAT------------------------TCTCGCTTTCTTACTTGCAGTCTTCATGGTTCTCTACACTGTGCCGGTTCTGTACGAGAAGTACGAGGACAAGATCGATGCTTTTGG;GAGAAG;1;12;23;Sequence;;;9 \ No newline at end of file
--- a/commons/core/parsing/test/data/Wig/chr1.wig Mon Apr 29 03:26:07 2013 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,9 +0,0 @@ -fixedStep chrom=chr1 start=11 step=1 -1.1 -1.2 -fixedStep chrom=chr1 start=14 step=1 -1.4 -1.5 -variableStep chrom=chr1 -17 1.7 -19 1.9
--- a/commons/core/parsing/test/data/realExpBatchLine.csv Mon Apr 29 03:26:07 2013 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,41 +0,0 @@ -IndividualNumber;Pos5;Pos3;BatchNumber;Sequence -1;;;1; -2;;;1; -3;;;1; -4;;;1; -5;;;1; -6;;;1; -7;;;1; -8;;;1; -9;;;1; -10;;;1; -11;;;1; -12;;;1; -13;;;1; -14;;;1; -15;;;1; -16;;;1; -17;;;1; -18;;;1; -19;;;1; -20;;;1; -21;;;1; -22;;;1; -23;;;1; -24;;;1; -25;;;1; -26;;;1; -27;;;1; -28;;;1; -29;;;1; -30;;;1; -31;;;1; -32;;;1; -33;;;1; -34;;;1; -35;;;1; -36;;;1; -37;;;1; -38;;;1; -39;;;1; -40;;;1;
--- a/commons/core/parsing/test/data/realExpIndividual.csv Mon Apr 29 03:26:07 2013 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,41 +0,0 @@ -IndividualNumber;IndividualName;Description;AberrAneuploide;FractionLength;DeletionLineSynthesis;UrlEarImage;TypeLine;ChromNumber;ArmChrom;DeletionBin;ScientificName;local_germplasm_name;submitter_code;local_institute;donor_institute;donor_acc_id -1;Treesnips_40-4-3;;;;;;;;;;Pinus pinaster;;;;; -2;Treesnips_40-8-3;;;;;;;;;;Pinus pinaster;;;;; -3;Treesnips_40-1-2;;;;;;;;;;Pinus pinaster;;;;; -4;Treesnips_40-14-1;;;;;;;;;;Pinus pinaster;;;;; -5;Treesnips_40-15-2;;;;;;;;;;Pinus pinaster;;;;; -6;Treesnips_40-20-2;;;;;;;;;;Pinus pinaster;;;;; -7;Treesnips_40-25-1;;;;;;;;;;Pinus pinaster;;;;; -8;Treesnips_41-3-3;;;;;;;;;;Pinus pinaster;;;;; -9;Treesnips_41-8-1;;;;;;;;;;Pinus pinaster;;;;; -10;Treesnips_41-1-3;;;;;;;;;;Pinus pinaster;;;;; -11;Treesnips_41-2-1;;;;;;;;;;Pinus pinaster;;;;; -12;Treesnips_41-3-2;;;;;;;;;;Pinus pinaster;;;;; -13;Treesnips_41-6-2;;;;;;;;;;Pinus pinaster;;;;; -14;Treesnips_41-9-1;;;;;;;;;;Pinus pinaster;;;;; -15;Treesnips_42-1-3;;;;;;;;;;Pinus pinaster;;;;; -16;Treesnips_42-8-2;;;;;;;;;;Pinus pinaster;;;;; -17;Treesnips_42-1-2;;;;;;;;;;Pinus pinaster;;;;; -18;Treesnips_42-2-1;;;;;;;;;;Pinus pinaster;;;;; -19;Treesnips_42-2-2;;;;;;;;;;Pinus pinaster;;;;; -20;Treesnips_42-8-1;;;;;;;;;;Pinus pinaster;;;;; -21;Treesnips_42-9-2;;;;;;;;;;Pinus pinaster;;;;; -22;Treesnips_43-4-3;;;;;;;;;;Pinus pinaster;;;;; -23;Treesnips_43-5-3;;;;;;;;;;Pinus pinaster;;;;; -24;Treesnips_43-1-1;;;;;;;;;;Pinus pinaster;;;;; -25;Treesnips_43-2-1;;;;;;;;;;Pinus pinaster;;;;; -26;Treesnips_43-7-2;;;;;;;;;;Pinus pinaster;;;;; -27;Treesnips_43-9-3;;;;;;;;;;Pinus pinaster;;;;; -28;Treesnips_43-10-2;;;;;;;;;;Pinus pinaster;;;;; -29;Treesnips_44-3-3;;;;;;;;;;Pinus pinaster;;;;; -30;Treesnips_44-6-2;;;;;;;;;;Pinus pinaster;;;;; -31;Treesnips_44-3-1;;;;;;;;;;Pinus pinaster;;;;; -32;Treesnips_44-5-2;;;;;;;;;;Pinus pinaster;;;;; -33;Treesnips_44-7-1;;;;;;;;;;Pinus pinaster;;;;; -34;Treesnips_44-10-2;;;;;;;;;;Pinus pinaster;;;;; -35;Treesnips_45-5-3;;;;;;;;;;Pinus pinaster;;;;; -36;Treesnips_45-8-3;;;;;;;;;;Pinus pinaster;;;;; -37;Treesnips_45-1-1;;;;;;;;;;Pinus pinaster;;;;; -38;Treesnips_45-4-1;;;;;;;;;;Pinus pinaster;;;;; -39;Treesnips_45-7-1;;;;;;;;;;Pinus pinaster;;;;; -40;Treesnips_45-9-1;;;;;;;;;;Pinus pinaster;;;;;
--- a/commons/core/parsing/test/data/realExpSequences.fsa Mon Apr 29 03:26:07 2013 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ ->PpHDZ31_ref -GCTAGCCCCGCTGGGTACGTGGCATTGTTTTAGCTTTCCAAATTATGGGAAACATTATATTGTTTTTGTAGCTAGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGCAGAGGAGACCTTGACAGAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTTTGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGTGTTTTGCTATTCAGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTGCAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTTTGACTGCGTTTCCTACTGGAAATGGTGGAACAATCGAGCTTTTATACATGCAGGTTTGCTATTCTCTCTGAAATTGATTCTGATAAGTTGCCATAAGAGGTCAAAAATTAGCAAAATCAGATTTATCTTTTTTTTTTTTTTTTTTGTATGATGTGGACTGCAGACATATGCCGCCACTACTTTAGCTTCTGCTAGAGACTTCTGGACTCTGAGATACACAACAGTGTTGGAAGATGGCAGTCTTGTGGTATGTGATAACTGAACAATGACACATGCTTTCATTAATCCCTTTATTTTGTGAGCACAACTGGATTTTCTTCCTTGTTTTTGCAGTAGTGGGGTTTTGCTAATTATAGCTTATCTATGATGTTCTGTAAGGTTTGTGAAAGGTCCTTGAGTGGTACTCAGGGTGGTCCAAGCATACCGCCAGTGCAGCATTTTGTGAGAGCAGAAATGCTTCCCAGTGGATATTTGATACAACCTTGTGAAGGTGGTGGTTCCATAATCCGTATTGTTGATCACATGGATCTAGAGGTACATGCTAGTTGTTGATGGCTAGAAGCTGCAATGTAGTTTATACAATTAAATTCCCAGAGTAGCTATTCTAAGATGGGCTGATCTTTTCATTGATTTGATTATTGCTATTCAGCCATGGAGTGTGCCTGAGGTTTTACGACCACTATATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGCAGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCACTGACTGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCACAGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGATTATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAGTTATTTAAAAAAAATGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGGGAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCCTGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACTCAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTATACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGTTAACATTATCAACAACTTTGATGGGCAGCTTTGCAGTGGAATTGATGAACATGCAGCTGGAGCATGTGCTGAACTTGTTTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTGGACAAAATTCTGGATGAAAATGGTCGCAAAAGTA
--- a/commons/core/parsing/test/data/realExpSubSNP.csv Mon Apr 29 03:26:07 2013 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,799 +0,0 @@ -SubSNPName;ConfidenceValue;Type;Position;5flank;3flank;Length;BatchNumber;IndividualNumber;PrimerType;PrimerNumber;Forward_or_Reverse;AlleleNumber -INRA_Pinus_pinaster_HDZ31-1_SNP_136_Treesnips_40-4-3;A;SNP;136;NNNNNNNNNNNNNNNNNNGTGGCATTGTTTTAGCTTTCCAAATTATGGGAAACATTATATTGTTTTTGTAGCTAGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGCAGAGGAGACCTTGAC;GAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTTTGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAA;1;1;1;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_136_Treesnips_40-8-3;A;SNP;136;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCTCCTGTCTATAGCAGAGGAGACCTTGAC;GAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTTTGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAA;1;1;2;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_136_Treesnips_40-1-2;A;SNP;136;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTTTCCAAATTATGGGAAACATTATATTGTTTTTGTAGCTAGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGCAGAGGAGACCTTGAC;GAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTGTGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAA;1;1;3;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_136_Treesnips_40-14-1;A;SNP;136;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGCAGAGGAGACCTTGAC;GAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTGTGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAA;1;1;4;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_136_Treesnips_40-15-2;A;SNP;136;GCTAGCCCCGCTGGGTACGTGGCATTGTTTTAGCTTTCCAAATTATGGGAAACATTATATTGTTTTTGTAGCTAGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGCAGAGGAGACCTTGAC;GAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTTTGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAA;1;1;5;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_136_Treesnips_40-20-2;A;SNP;136;GCTAGCCCCGCTGGGTACGTGGCATTGTTTTAGCTTTCCAAATTATGGGAAACATTATATTGTTTTTGTAGCTAGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGCAGAGGAGACCTTGAC;GAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTGTGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAA;1;1;6;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_136_Treesnips_40-25-1;A;SNP;136;GCTAGCCCCGCTGGGTACGTGGCATTGTTTTAGCTTTCCAAATTATGGGAAACATTATATTGTTTTTGTAGCTAGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGCAGAGGAGACCTTGAC;GAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTTTGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAA;1;1;7;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_136_Treesnips_41-3-3;A;SNP;136;NNNNNNNNNNNNNNNNNNNNNNNNNNNNTTTAGCTTTCCAAATTATGGGAAACATTATATTGTTTTTGTAGCTAGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGCAGAGGAGACCTTGAC;GAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTTTGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAA;1;1;8;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_136_Treesnips_41-8-1;A;SNP;136;GCTAGCCCCGCTGGGTACGTGGCATTGTTTTAGCTTTCCAAATTATGGGAAACATTATATTGTTTTTGTAGCTAGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGCAGAGGAGACCTTGAC;GAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTTTGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAA;1;1;9;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_136_Treesnips_41-1-3;A;SNP;136;NNNNNNCCCGCTGGGTACGTGGCATTGTTTTAGCTTTCCAAATTATGGGAAACATTATATTGTTTTTGTAGCTAGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGCAGAGGAGACCTTGAC;GAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTGTGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAA;1;1;10;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_136_Treesnips_41-2-1;A;SNP;136;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGCAGAGGAGACCTTGAC;GAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTGTGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAA;1;1;11;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_136_Treesnips_41-3-2;A;SNP;136;NNNNNNCCCGCTGGGTACGTGGCATTGTTTTAGCTTTCCAAATTATGGGAAACATTATATTGTTTTTGTAGCTAGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGCAGAGGAGACCTTGAC;GAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTTTGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAA;1;1;12;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_136_Treesnips_41-6-2;A;SNP;136;GCTAGCCCCGCTGGGTACGTGGCATTGTTTTAGCTTTCCAAATTATGGGAAACATTATATTGTTTTTGTAGCTAGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGCAGAGGAGACCTTGAC;GAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTTTGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAA;1;1;13;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_136_Treesnips_41-9-1;A;SNP;136;GCTAGCCCCGCTGGGTACGTGGCATTGTTTTAGCTTTCCAAATTATGGGAAACATTATATTGTTTTTGTAGCTAGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGCAGAGGAGACCTTGAC;GAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTGTGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAA;1;1;14;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_136_Treesnips_42-1-3;A;SNP;136;NNNAGCCCCGCTGGGTACGTGGCATTGTTTTAGCTTTCCAAATTATGGGAAACATTATATTGTTTTTGTAGCTAGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGCAGAGGAGACCTTGAC;GAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTTTGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAA;1;1;15;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_136_Treesnips_42-8-2;A;SNP;136;GCTAGCCCCGCTGGGTACGTGGCATTGTTTTAGCTTTCCAAATTATGGGAAACATTATATTGTTTTTGTAGCTAGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGCAGAGGAGACCTTGAC;GAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTTTGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAA;1;1;16;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_136_Treesnips_42-1-2;A;SNP;136;NNNNNCCCCGCTGGGTACGTGGCATTGTTTTAGCTTTCCAAATTATGGGAAACATTATATTGTTTTTGTAGCTAGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGCAGAGGAGACCTTGAC;GAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTTTGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAA;1;1;17;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_136_Treesnips_42-2-1;A;SNP;136;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGCAGAGGAGACCTTGAC;GAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTTTGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAA;1;1;18;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_136_Treesnips_42-2-2;A;SNP;136;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGCAGAGGAGACCTTGAC;GAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTGTGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAA;1;1;19;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_136_Treesnips_42-8-1;A;SNP;136;NNNNGCCCCGCTGGGTACGTGGCATTGTTTTAGCTTTCCAAATTATGGGAAACATTATATTGTTTTTGTAGCTAGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGCAGAGGAGACCTTGAC;GAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTTTGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAA;1;1;20;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_136_Treesnips_42-9-2;A;SNP;136;NNNNNCCCCGCTGGGTACGTGGCATTGTTTTAGCTTTCCAAATTATGGGAAACATTATATTGTTTTTGTAGCTAGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGCAGAGGAGACCTTGAC;GAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTTTGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAA;1;1;21;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_136_Treesnips_43-4-3;A;SNP;136;NNTAGCCCCGCTGGGTACGTGGCATTGTTTTAGCTTTCCAAATTATGGGAAACATTATATTGTTTTTGTAGCTAGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGCAGAGGAGACCTTGAC;GAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTGTGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAA;1;1;22;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_136_Treesnips_43-5-3;A;SNP;136;GCTAGCCCCGCTGGGTACGTGGCATTGTTTTAGCTTTCCAAATTATGGGAAACATTATATTGTTTTTGTAGCTAGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGCAGAGGAGACCTTGAC;GAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTTTGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAA;1;1;23;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_136_Treesnips_43-1-1;A;SNP;136;NNNNGCCCCGCTGGGTACGTGGCATTGTTTTAGCTTTCCAAATTATGGGAAACATTATATTGTTTTTGTAGCTAGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGCAGAGGAGACCTTGAC;GAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTGTGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAA;1;1;24;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_136_Treesnips_43-2-1;A;SNP;136;NNNNGCCCCGCTGGGTACGTGGCATTGTTTTAGCTTTCCAAATTATGGGAAACATTATATTGTTTTTGTAGCTAGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGCAGAGGAGACCTTGAC;GAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTTTGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAA;1;1;25;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_136_Treesnips_43-7-2;A;SNP;136;GCTAGCCCCGCTGGGTACGTGGCATTGTTTTAGCTTTCCAAATTATGGGAAACATTATATTGTTTTTGTAGCTAGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGCAGAGGAGACCTTGAC;GAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTTTGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAA;1;1;26;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_136_Treesnips_43-9-3;A;SNP;136;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTATTGTTTTTGTAGCTAGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGCAGAGGAGACCTTGAC;GAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTTTGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAA;1;1;27;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_136_Treesnips_43-10-2;A;SNP;136;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGCAGAGGAGACCTTGAC;GAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTGTGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAA;1;1;28;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_136_Treesnips_44-3-3;A;SNP;136;NNNNNNNNNNNNNNNNNNNTGGCATTGTTTTAGCTTTCCAAATTATGGGAAACATTATATTGTTTTTGTAGCTAGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGCAGAGGAGACCTTGAC;GAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTGTGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAA;1;1;29;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_136_Treesnips_44-6-2;A;SNP;136;NNNNNNCCCGCTGGGTACGTGGCATTGTTTTAGCTTTCCAAATTATGGGAAACATTATATTGTTTTTGTAGCTAGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGCAGAGGAGACCTTGAC;GAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTTTGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAA;1;1;30;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_136_Treesnips_44-3-1;A;SNP;136;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGCAGAGGAGACCTTGAC;GAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTGTGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAA;1;1;31;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_136_Treesnips_44-5-2;A;SNP;136;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGCAGAGGAGACCTTGAC;GAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTTTGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAA;1;1;32;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_136_Treesnips_44-7-1;A;SNP;136;GCTAGCCCCGCTGGGTACGTGGCATTGTTTTAGCTTTCCAAATTATGGGAAACATTATATTGTTTTTGTAGCTAGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGCAGAGGAGACCTTGAC;GAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTGTGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAA;1;1;33;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_136_Treesnips_44-10-2;A;SNP;136;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTTTTTCTATTCCAGACTCCTGTCTATAGCAGAGGAGACCTTGAC;GAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTGTGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAA;1;1;34;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_136_Treesnips_45-5-3;A;SNP;136;NNNNNNCCCGCTGGGTACGTGGCATTGTTTTAGCTTTCCAAATTATGGGAAACATTATATTGTTTTTGTAGCTAGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGCAGAGGAGACCTTGAC;GAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTGTGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAA;1;1;35;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_136_Treesnips_45-8-3;A;SNP;136;GCTAGCCCCGCTGGGTACGTGGCATTGTTTTAGCTTTCCAAATTATGGGAAACATTATATTGTTTTTGTAGCTAGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGCAGAGGAGACCTTGAC;GAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTTTGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAA;1;1;36;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_136_Treesnips_45-1-1;A;SNP;136;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTATTGTTTTTGTAGCTAGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGCAGAGGAGACCTTGAC;GAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTTTGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAA;1;1;37;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_136_Treesnips_45-4-1;A;SNP;136;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGCAGAGGAGACCTTGAC;GAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTGTGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAA;1;1;38;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_136_Treesnips_45-7-1;A;SNP;136;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGCAGAGGAGACCTTGAC;GAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTTTGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAA;1;1;39;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_136_Treesnips_45-9-1;A;SNP;136;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGCAGAGGAGACCTTGAC;GAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTTTGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAA;1;1;40;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_287_Treesnips_40-4-3;A;SNP;287;TCCAAATTATGGGAAACATTATATTGTTTTTGTAGCTAGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGCAGAGGAGACCTTGACAGAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTT;TGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGTGTTTTGCTATTCAGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTGCAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTT;1;1;1;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_287_Treesnips_40-8-3;A;SNP;287;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCTCCTGTCTATAGCAGAGGAGACCTTGACAGAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTT;TGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGTGTTTTGCTATTCAGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTGCAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTT;1;1;2;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_287_Treesnips_40-1-2;A;SNP;287;TCCAAATTATGGGAAACATTATATTGTTTTTGTAGCTAGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGCAGAGGAGACCTTGACGGAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTT;TGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGTTTTTTGCTATTCAGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTGCAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTT;1;1;3;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_287_Treesnips_40-14-1;A;SNP;287;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGCAGAGGAGACCTTGACGGAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTT;TGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGTTTTTTGCTATTCAGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTGCAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTT;1;1;4;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_287_Treesnips_40-15-2;A;SNP;287;TCCAAATTATGGGAAACATTATATTGTTTTTGTAGCTAGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGCAGAGGAGACCTTGACAGAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTT;TGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGTGTTTTGCTATTCAGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTGCAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTT;1;1;5;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_287_Treesnips_40-20-2;A;SNP;287;TCCAAATTATGGGAAACATTATATTGTTTTTGTAGCTAGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGCAGAGGAGACCTTGACGGAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTT;TGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGTTTTTTGCTATTCAGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTGCAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTT;1;1;6;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_287_Treesnips_40-25-1;A;SNP;287;TCCAAATTATGGGAAACATTATATTGTTTTTGTAGCTAGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGCAGAGGAGACCTTGACAGAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTT;TGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGTGTTTTGCTATTCAGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTGCAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTT;1;1;7;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_287_Treesnips_41-3-3;A;SNP;287;TCCAAATTATGGGAAACATTATATTGTTTTTGTAGCTAGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGCAGAGGAGACCTTGACAGAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTT;TGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGTGTTTTGCTATTCAGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTGCAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTT;1;1;8;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_287_Treesnips_41-8-1;A;SNP;287;TCCAAATTATGGGAAACATTATATTGTTTTTGTAGCTAGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGCAGAGGAGACCTTGACAGAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTT;TGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGTGTTTTGCTATTCAGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTGCAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTT;1;1;9;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_287_Treesnips_41-1-3;A;SNP;287;TCCAAATTATGGGAAACATTATATTGTTTTTGTAGCTAGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGCAGAGGAGACCTTGACGGAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTT;TGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGTTTTTTGCTATTCAGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTGCAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTT;1;1;10;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_287_Treesnips_41-2-1;A;SNP;287;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGCAGAGGAGACCTTGACGGAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTT;TGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGTTTTTTGCTATTCAGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTGCAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTT;1;1;11;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_287_Treesnips_41-3-2;A;SNP;287;TCCAAATTATGGGAAACATTATATTGTTTTTGTAGCTAGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGCAGAGGAGACCTTGACAGAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTT;TGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGTGTTTTGCTATTCAGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTGCAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTT;1;1;12;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_287_Treesnips_41-6-2;A;SNP;287;TCCAAATTATGGGAAACATTATATTGTTTTTGTAGCTAGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGCAGAGGAGACCTTGACAGAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTT;TGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGTGTTTTGCTATTCAGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTGCAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTT;1;1;13;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_287_Treesnips_41-9-1;A;SNP;287;TCCAAATTATGGGAAACATTATATTGTTTTTGTAGCTAGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGCAGAGGAGACCTTGACGGAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTT;TGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGTTTTTTGCTATTCAGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTGCAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTT;1;1;14;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_287_Treesnips_42-1-3;A;SNP;287;TCCAAATTATGGGAAACATTATATTGTTTTTGTAGCTAGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGCAGAGGAGACCTTGACAGAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTT;TGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGTGTTTTGCTATTCAGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTGCAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTT;1;1;15;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_287_Treesnips_42-8-2;A;SNP;287;TCCAAATTATGGGAAACATTATATTGTTTTTGTAGCTAGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGCAGAGGAGACCTTGACAGAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTT;TGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGTGTTTTGCTATTCAGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTGCAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTT;1;1;16;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_287_Treesnips_42-1-2;A;SNP;287;TCCAAATTATGGGAAACATTATATTGTTTTTGTAGCTAGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGCAGAGGAGACCTTGACAGAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTT;TGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGTGTTTTGCTATTCAGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTGCAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTT;1;1;17;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_287_Treesnips_42-2-1;A;SNP;287;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGCAGAGGAGACCTTGACAGAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTT;TGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGTGTTTTGCTATTCAGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTGCAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTT;1;1;18;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_287_Treesnips_42-2-2;A;SNP;287;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGCAGAGGAGACCTTGACGGAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTT;TGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGTTTTTTGCTATTCAGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTGCAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTT;1;1;19;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_287_Treesnips_42-8-1;A;SNP;287;TCCAAATTATGGGAAACATTATATTGTTTTTGTAGCTAGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGCAGAGGAGACCTTGACAGAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTT;TGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGTGTTTTGCTATTCAGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTGCAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTT;1;1;20;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_287_Treesnips_42-9-2;A;SNP;287;TCCAAATTATGGGAAACATTATATTGTTTTTGTAGCTAGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGCAGAGGAGACCTTGACAGAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTT;TGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGTGTTTTGCTATTCAGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTGCAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTT;1;1;21;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_287_Treesnips_43-4-3;A;SNP;287;TCCAAATTATGGGAAACATTATATTGTTTTTGTAGCTAGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGCAGAGGAGACCTTGACGGAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTT;TGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGTTTTTTGCTATTCAGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTGCAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTT;1;1;22;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_287_Treesnips_43-5-3;A;SNP;287;TCCAAATTATGGGAAACATTATATTGTTTTTGTAGCTAGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGCAGAGGAGACCTTGACAGAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTT;TGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGTGTTTTGCTATTCAGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTGCAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTT;1;1;23;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_287_Treesnips_43-1-1;A;SNP;287;TCCAAATTATGGGAAACATTATATTGTTTTTGTAGCTAGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGCAGAGGAGACCTTGACGGAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTT;TGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGTTTTTTGCTATTCAGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTGCAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTT;1;1;24;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_287_Treesnips_43-2-1;A;SNP;287;TCCAAATTATGGGAAACATTATATTGTTTTTGTAGCTAGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGCAGAGGAGACCTTGACAGAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTT;TGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGTGTTTTGCTATTCAGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTGCAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTT;1;1;25;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_287_Treesnips_43-7-2;A;SNP;287;TCCAAATTATGGGAAACATTATATTGTTTTTGTAGCTAGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGCAGAGGAGACCTTGACAGAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTT;TGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGTGTTTTGCTATTCAGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTGCAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTT;1;1;26;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_287_Treesnips_43-9-3;A;SNP;287;NNNNNNNNNNNNNNNNNNNNNTATTGTTTTTGTAGCTAGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGCAGAGGAGACCTTGACAGAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTT;TGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGTGTTTTGCTATTCAGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTGCAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTT;1;1;27;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_287_Treesnips_43-10-2;A;SNP;287;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGCAGAGGAGACCTTGACGGAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTT;TGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGTTTTTTGCTATTCAGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTGCAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTT;1;1;28;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_287_Treesnips_44-3-3;A;SNP;287;TCCAAATTATGGGAAACATTATATTGTTTTTGTAGCTAGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGCAGAGGAGACCTTGACGGAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTT;TGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGTTTTTTGCTATTCAGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTGCAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTT;1;1;29;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_287_Treesnips_44-6-2;A;SNP;287;TCCAAATTATGGGAAACATTATATTGTTTTTGTAGCTAGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGCAGAGGAGACCTTGACAGAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTT;TGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGTGTTTTGCTATTCAGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTGCAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTT;1;1;30;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_287_Treesnips_44-3-1;A;SNP;287;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGCAGAGGAGACCTTGACGGAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTT;TGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGTTTTTTGCTATTCAGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTGCAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTT;1;1;31;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_287_Treesnips_44-5-2;A;SNP;287;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGCAGAGGAGACCTTGACAGAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTT;TGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGTGTTTTGCTATTCAGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTGCAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTT;1;1;32;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_287_Treesnips_44-7-1;A;SNP;287;TCCAAATTATGGGAAACATTATATTGTTTTTGTAGCTAGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGCAGAGGAGACCTTGACGGAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTT;TGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGTTTTTTGCTATTCAGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTGCAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTT;1;1;33;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_287_Treesnips_44-10-2;A;SNP;287;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTTTTTCTATTCCAGACTCCTGTCTATAGCAGAGGAGACCTTGACGGAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTT;TGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGTTTTTTGCTATTCAGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTGCAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTT;1;1;34;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_287_Treesnips_45-5-3;A;SNP;287;TCCAAATTATGGGAAACATTATATTGTTTTTGTAGCTAGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGCAGAGGAGACCTTGACGGAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTT;TGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGTTTTTTGCTATTCAGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTGCAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTT;1;1;35;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_287_Treesnips_45-8-3;A;SNP;287;TCCAAATTATGGGAAACATTATATTGTTTTTGTAGCTAGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGCAGAGGAGACCTTGACAGAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTT;TGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGTGTTTTGCTATTCAGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTGCAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTT;1;1;36;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_287_Treesnips_45-1-1;A;SNP;287;NNNNNNNNNNNNNNNNNNNNNTATTGTTTTTGTAGCTAGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGCAGAGGAGACCTTGACAGAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTT;TGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGTGTTTTGCTATTCAGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTGCAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTT;1;1;37;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_287_Treesnips_45-4-1;A;SNP;287;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGCAGAGGAGACCTTGACGGAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTT;TGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGTTTTTTGCTATTCAGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTGCAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTT;1;1;38;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_287_Treesnips_45-7-1;A;SNP;287;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGCAGAGGAGACCTTGACAGAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTT;TGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGTGTTTTGCTATTCAGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTGCAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTT;1;1;39;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_287_Treesnips_45-9-1;A;SNP;287;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGCAGAGGAGACCTTGACAGAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTT;TGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGTGTTTTGCTATTCAGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTGCAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTT;1;1;40;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_409_Treesnips_40-4-3;A;SNP;409;GAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTTTGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGT;TTTTGCTATTCAGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTGCAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTTTGACTGCGTTTCCTACTGGAAATGGTGGAACAATCGAGCTTTTATACATGCAGGTTTGCTATTCTCTCTGAAATTGATTCTGATAAGTTGCCATAAGAGGTCAAAAATTAGCAAAATCAGAT;1;1;1;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_409_Treesnips_40-8-3;A;SNP;409;GAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTTTGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGT;TTTTGCTATTCAGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTGCAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTTTGACTGCGTTTCCTACTGGAAATGGTGGAACAATCGAGCTTTTATACATGCAGGTTTGCTATTCTCTCTGAAATTGATTCTGATAAGTTGCCATAAGAGGTCAAAAATTAGCAAAATCAGAT;1;1;2;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_409_Treesnips_40-1-2;A;SNP;409;GAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTGTGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGT;TTTTGCTATTCAGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTGCAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTTTGACTGCGTTTCCTACTGGAAATGGTGGAACAATCGAGCTTTTATACATGCAGGTTTGCTATTCTCTCTGAAATTGATTCTGATAAGTTGCCATAAGAGGTCAAAAATTAGCAAAATCAGAT;1;1;3;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_409_Treesnips_40-14-1;A;SNP;409;GAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTGTGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGT;TTTTGCTATTCAGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTGCAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTTTGACTGCGTTTCCTACTGGAAATGGTGGAACAATCGAGCTTTTATACATGCAGGTTTGCTATTCTCTCTGAAATTGATTCTGATAAGTTGCCATAAGAGGTCAAAAATTAGCAAAATCAGAT;1;1;4;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_409_Treesnips_40-15-2;A;SNP;409;GAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTTTGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGT;TTTTGCTATTCAGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTGCAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTTTGACTGCGTTTCCTACTGGAAATGGTGGAACAATCGAGCTTTTATACATGCAGGTTTGCTATTCTCTCTGAAATTGATTCTGATAAGTTGCCATAAGAGGTCAAAAATTAGCAAAATCAGAT;1;1;5;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_409_Treesnips_40-20-2;A;SNP;409;GAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTGTGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGT;TTTTGCTATTCAGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTGCAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTTTGACTGCGTTTCCTACTGGAAATGGTGGAACAATCGAGCTTTTATACATGCAGGTTTGCTATTCTCTCTGAAATTGATTCTGATAAGTTGCCATAAGAGGTCAAAAATTAGCAAAATCAGAT;1;1;6;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_409_Treesnips_40-25-1;A;SNP;409;GAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTTTGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGT;TTTTGCTATTCAGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTGCAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTTTGACTGCGTTTCCTACTGGAAATGGTGGAACAATCGAGCTTTTATACATGCAGGTTTGCTATTCTCTCTGAAATTGATTCTGATAAGTTGCCATAAGAGGTCAAAAATTAGCAAAATCAGAT;1;1;7;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_409_Treesnips_41-3-3;A;SNP;409;GAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTTTGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGT;TTTTGCTATTCAGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTGCAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTTTGACTGCGTTTCCTACTGGAAATGGTGGAACAATCGAGCTTTTATACATGCAGGTTTGCTATTCTCTCTGAAATTGATTCTGATAAGTTGCCATAAGAGGTCAAAAATTAGCAAAATCAGAT;1;1;8;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_409_Treesnips_41-8-1;A;SNP;409;GAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTTTGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGT;TTTTGCTATTCAGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTGCAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTTTGACTGCGTTTCCTACTGGAAATGGTGGAACAATCGAGCTTTTATACATGCAGGTTTGCTATTCTCTCTGAAATTGATTCTGATAAGTTGCCATAAGAGGTCAAAAATTAGCAAAATCAGAT;1;1;9;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_409_Treesnips_41-1-3;A;SNP;409;GAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTGTGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGT;TTTTGCTATTCAGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTGCAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTTTGACTGCGTTTCCTACTGGAAATGGTGGAACAATCGAGCTTTTATACATGCAGGTTTGCTATTCTCTCTGAAATTGATTCTGATAAGTTGCCATAAGAGGTCAAAAATTAGCAAAATCAGAT;1;1;10;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_409_Treesnips_41-2-1;A;SNP;409;GAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTGTGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGT;TTTTGCTATTCAGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTGCAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTTTGACTGCGTTTCCTACTGGAAATGGTGGAACAATCGAGCTTTTATACATGCAGGTTTGCTATTCTCTCTGAAATTGATTCTGATAAGTTGCCATAAGAGGTCAAAAATTAGCAAAATCAGAT;1;1;11;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_409_Treesnips_41-3-2;A;SNP;409;GAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTTTGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGT;TTTTGCTATTCAGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTGCAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTTTGACTGCGTTTCCTACTGGAAATGGTGGAACAATCGAGCTTTTATACATGCAGGTTTGCTATTCTCTCTGAAATTGATTCTGATAAGTTGCCATAAGAGGTCAAAAATTAGCAAAATCAGAT;1;1;12;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_409_Treesnips_41-6-2;A;SNP;409;GAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTTTGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGT;TTTTGCTATTCAGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTGCAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTTTGACTGCGTTTCCTACTGGAAATGGTGGAACAATCGAGCTTTTATACATGCAGGTTTGCTATTCTCTCTGAAATTGATTCTGATAAGTTGCCATAAGAGGTCAAAAATTAGCAAAATCAGAT;1;1;13;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_409_Treesnips_41-9-1;A;SNP;409;GAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTGTGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGT;TTTTGCTATTCAGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTGCAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTTTGACTGCGTTTCCTACTGGAAATGGTGGAACAATCGAGCTTTTATACATGCAGGTTTGCTATTCTCTCTGAAATTGATTCTGATAAGTTGCCATAAGAGGTCAAAAATTAGCAAAATCAGAT;1;1;14;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_409_Treesnips_42-1-3;A;SNP;409;GAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTTTGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGT;TTTTGCTATTCAGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTGCAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTTTGACTGCGTTTCCTACTGGAAATGGTGGAACAATCGAGCTTTTATACATGCAGGTTTGCTATTCTCTCTGAAATTGATTCTGATAAGTTGCCATAAGAGGTCAAAAATTAGCAAAATCAGAT;1;1;15;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_409_Treesnips_42-8-2;A;SNP;409;GAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTTTGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGT;TTTTGCTATTCAGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTGCAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTTTGACTGCGTTTCCTACTGGAAATGGTGGAACAATCGAGCTTTTATACATGCAGGTTTGCTATTCTCTCTGAAATTGATTCTGATAAGTTGCCATAAGAGGTCAAAAATTAGCAAAATCAGAT;1;1;16;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_409_Treesnips_42-1-2;A;SNP;409;GAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTTTGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGT;TTTTGCTATTCAGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTGCAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTTTGACTGCGTTTCCTACTGGAAATGGTGGAACAATCGAGCTTTTATACATGCAGGTTTGCTATTCTCTCTGAAATTGATTCTGATAAGTTGCCATAAGAGGTCAAAAATTAGCAAAATCAGAT;1;1;17;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_409_Treesnips_42-2-1;A;SNP;409;GAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTTTGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGT;TTTTGCTATTCAGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTGCAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTTTGACTGCGTTTCCTACTGGAAATGGTGGAACAATCGAGCTTTTATACATGCAGGTTTGCTATTCTCTCTGAAATTGATTCTGATAAGTTGCCATAAGAGGTCAAAAATTAGCAAAATCAGAT;1;1;18;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_409_Treesnips_42-2-2;A;SNP;409;GAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTGTGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGT;TTTTGCTATTCAGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTGCAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTTTGACTGCGTTTCCTACTGGAAATGGTGGAACAATCGAGCTTTTATACATGCAGGTTTGCTATTCTCTCTGAAATTGATTCTGATAAGTTGCCATAAGAGGTCAAAAATTAGCAAAATCAGAT;1;1;19;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_409_Treesnips_42-8-1;A;SNP;409;GAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTTTGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGT;TTTTGCTATTCAGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTGCAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTTTGACTGCGTTTCCTACTGGAAATGGTGGAACAATCGAGCTTTTATACATGCAGGTTTGCTATTCTCTCTGAAATTGATTCTGATAAGTTGCCATAAGAGGTCAAAAATTAGCAAAATCAGAT;1;1;20;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_409_Treesnips_42-9-2;A;SNP;409;GAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTTTGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGT;TTTTGCTATTCAGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTGCAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTTTGACTGCGTTTCCTACTGGAAATGGTGGAACAATCGAGCTTTTATACATGCAGGTTTGCTATTCTCTCTGAAATTGATTCTGATAAGTTGCCATAAGAGGTCAAAAATTAGCAAAATCAGAT;1;1;21;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_409_Treesnips_43-4-3;A;SNP;409;GAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTGTGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGT;TTTTGCTATTCAGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTGCAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTTTGACTGCGTTTCCTACTGGAAATGGTGGAACAATCGAGCTTTTATACATGCAGGTTTGCTATTCTCTCTGAAATTGATTCTGATAAGTTGCCATAAGAGGTCAAAAATTAGCAAAATCAGAT;1;1;22;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_409_Treesnips_43-5-3;A;SNP;409;GAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTTTGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGT;TTTTGCTATTCAGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTGCAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTTTGACTGCGTTTCCTACTGGAAATGGTGGAACAATCGAGCTTTTATACATGCAGGTTTGCTATTCTCTCTGAAATTGATTCTGATAAGTTGCCATAAGAGGTCAAAAATTAGCAAAATCAGAT;1;1;23;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_409_Treesnips_43-1-1;A;SNP;409;GAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTGTGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGT;TTTTGCTATTCAGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTGCAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTTTGACTGCGTTTCCTACTGGAAATGGTGGAACAATCGAGCTTTTATACATGCAGGTTTGCTATTCTCTCTGAAATTGATTCTGATAAGTTGCCATAAGAGGTCAAAAATTAGCAAAATCAGAT;1;1;24;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_409_Treesnips_43-2-1;A;SNP;409;GAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTTTGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGT;TTTTGCTATTCAGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTGCAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTTTGACTGCGTTTCCTACTGGAAATGGTGGAACAATCGAGCTTTTATACATGCAGGTTTGCTATTCTCTCTGAAATTGATTCTGATAAGTTGCCATAAGAGGTCAAAAATTAGCAAAATCAGAT;1;1;25;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_409_Treesnips_43-7-2;A;SNP;409;GAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTTTGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGT;TTTTGCTATTCAGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTGCAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTTTGACTGCGTTTCCTACTGGAAATGGTGGAACAATCGAGCTTTTATACATGCAGGTTTGCTATTCTCTCTGAAATTGATTCTGATAAGTTGCCATAAGAGGTCAAAAATTAGCAAAATCAGAT;1;1;26;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_409_Treesnips_43-9-3;A;SNP;409;GAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTTTGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGT;TTTTGCTATTCAGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTGCAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTTTGACTGCGTTTCCTACTGGAAATGGTGGAACAATCGAGCTTTTATACATGCAGGTTTGCTATTCTCTCTGAAATTGATTCTGATAAGTTGCCATAAGAGGTCAAAAATTAGCAAAATCAGAT;1;1;27;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_409_Treesnips_43-10-2;A;SNP;409;GAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTGTGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGT;TTTTGCTATTCAGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTGCAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTTTGACTGCGTTTCCTACTGGAAATGGTGGAACAATCGAGCTTTTATACATGCAGGTTTGCTATTCTCTCTGAAATTGATTCTGATAAGTTGCCATAAGAGGTCAAAAATTAGCAAAATCAGAT;1;1;28;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_409_Treesnips_44-3-3;A;SNP;409;GAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTGTGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGT;TTTTGCTATTCAGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTGCAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTTTGACTGCGTTTCCTACTGGAAATGGTGGAACAATCGAGCTTTTATACATGCAGGTTTGCTATTCTCTCTGAAATTGATTCTGATAAGTTGCCATAAGAGGTCAAAAATTAGCAAAATCAGAT;1;1;29;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_409_Treesnips_44-6-2;A;SNP;409;GAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTTTGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGT;TTTTGCTATTCAGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTGCAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTTTGACTGCGTTTCCTACTGGAAATGGTGGAACAATCGAGCTTTTATACATGCAGGTTTGCTATTCTCTCTGAAATTGATTCTGATAAGTTGCCATAAGAGGTCAAAAATTAGCAAAATCAGAT;1;1;30;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_409_Treesnips_44-3-1;A;SNP;409;GAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTGTGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGT;TTTTGCTATTCAGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTGCAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTTTGACTGCGTTTCCTACTGGAAATGGTGGAACAATCGAGCTTTTATACATGCAGGTTTGCTATTCTCTCTGAAATTGATTCTGATAAGTTGCCATAAGAGGTCAAAAATTAGCAAAATCAGAT;1;1;31;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_409_Treesnips_44-5-2;A;SNP;409;GAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTTTGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGT;TTTTGCTATTCAGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTGCAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTTTGACTGCGTTTCCTACTGGAAATGGTGGAACAATCGAGCTTTTATACATGCAGGTTTGCTATTCTCTCTGAAATTGATTCTGATAAGTTGCCATAAGAGGTCAAAAATTAGCAAAATCAGAT;1;1;32;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_409_Treesnips_44-7-1;A;SNP;409;GAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTGTGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGT;TTTTGCTATTCAGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTGCAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTTTGACTGCGTTTCCTACTGGAAATGGTGGAACAATCGAGCTTTTATACATGCAGGTTTGCTATTCTCTCTGAAATTGATTCTGATAAGTTGCCATAAGAGGTCAAAAATTAGCAAAATCAGAT;1;1;33;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_409_Treesnips_44-10-2;A;SNP;409;GAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTGTGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGT;TTTTGCTATTCAGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTGCAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTTTGACTGCGTTTCCTACTGGAAATGGTGGAACAATCGAGCTTTTATACATGCAGGTTTGCTATTCTCTCTGAAATTGATTCTGATAAGTTGCCATAAGAGGTCAAAAATTAGCAAAATCAGAT;1;1;34;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_409_Treesnips_45-5-3;A;SNP;409;GAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTGTGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGT;TTTTGCTATTCAGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTGCAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTTTGACTGCGTTTCCTACTGGAAATGGTGGAACAATCGAGCTTTTATACATGCAGGTTTGCTATTCTCTCTGAAATTGATTCTGATAAGTTGCCATAAGAGGTCAAAAATTAGCAAAATCAGAT;1;1;35;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_409_Treesnips_45-8-3;A;SNP;409;GAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTTTGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGT;TTTTGCTATTCAGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTGCAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTTTGACTGCGTTTCCTACTGGAAATGGTGGAACAATCGAGCTTTTATACATGCAGGTTTGCTATTCTCTCTGAAATTGATTCTGATAAGTTGCCATAAGAGGTCAAAAATTAGCAAAATCAGAT;1;1;36;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_409_Treesnips_45-1-1;A;SNP;409;GAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTTTGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGT;TTTTGCTATTCAGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTGCAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTTTGACTGCGTTTCCTACTGGAAATGGTGGAACAATCGAGCTTTTATACATGCAGGTTTGCTATTCTCTCTGAAATTGATTCTGATAAGTTGCCATAAGAGGTCAAAAATTAGCAAAATCAGAT;1;1;37;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_409_Treesnips_45-4-1;A;SNP;409;GAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTGTGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGT;TTTTGCTATTCAGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTGCAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTTTGACTGCGTTTCCTACTGGAAATGGTGGAACAATCGAGCTTTTATACATGCAGGTTTGCTATTCTCTCTGAAATTGATTCTGATAAGTTGCCATAAGAGGTCAAAAATTAGCAAAATCAGAT;1;1;38;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_409_Treesnips_45-7-1;A;SNP;409;GAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTTTGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGT;TTTTGCTATTCAGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTGCAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTTTGACTGCGTTTCCTACTGGAAATGGTGGAACAATCGAGCTTTTATACATGCAGGTTTGCTATTCTCTCTGAAATTGATTCTGATAAGTTGCCATAAGAGGTCAAAAATTAGCAAAATCAGAT;1;1;39;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_409_Treesnips_45-9-1;A;SNP;409;GAGCTGCTGTCGATTGGGTCCAGATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTTGCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTTTGCAGCCTGGTCCGGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTGCGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGT;TTTTGCTATTCAGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTGCAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTTTGACTGCGTTTCCTACTGGAAATGGTGGAACAATCGAGCTTTTATACATGCAGGTTTGCTATTCTCTCTGAAATTGATTCTGATAAGTTGCCATAAGAGGTCAAAAATTAGCAAAATCAGAT;1;1;40;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_1324_Treesnips_40-4-3;A;SNP;1324;ACATGCTAGTTGTTGATGGCTAGAAGCTGCAATGTAGTTTATACAATTAAATTCCCAGAGTAGCTATTCTAAGATGGGCTGATCTTTTCATTGATTTGATTATTGCTATTCAGCCATGGAGTGTGCCTGAGGTTTTACGACCACTATATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGCAGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCACTGA;TGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCACAGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGATTATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGG;1;1;1;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_1324_Treesnips_40-8-3;A;SNP;1324;ACATGCTAGTTGTTGATGGCTAGAAGCTGCAATGTAGTTTATACAATTAAATTCCCAGAGTAGCTATTCTAAGATGGGCTGATCTTTTCATTGATTTGATTATTGCTATTCAGCCATGGAGTGTGCCTGAGGTTTTACGACCACTATATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGCAGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCACTGA;TGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCACAGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGATTATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGG;1;1;2;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_1324_Treesnips_40-1-2;A;SNP;1324;ACATGCTAGTTGTTGATGGCTAGAAGCTGCAATGTAGTTTATACAATTAAATTCCCAGAGTAGCTATTCTAAGATGGGCTGATCTTTTCATTGATTTGATTATTGCTATTCAGCCATGGAGTGTGCCTGAGGTTTTACGACCACTATATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGCAGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCACTGA;TGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCACAGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGATGATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGG;1;1;3;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_1324_Treesnips_40-14-1;A;SNP;1324;ACATGCTAGTTGTTGATGGCTAGAAGCTGCAATGTAGTTTATACAATTAAATTCCCAGAGTAGCTATTCTAAGATGGGCTGATCTTTTCATTGATTTGATTATTGCTATTCAGCCATGGAGTGTGCCTGAGGTTTTACGACCACTATATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGCAGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCACTGA;TGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCACAGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGATGATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGG;1;1;4;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_1324_Treesnips_40-15-2;A;SNP;1324;ACATGCTAGTTGTTGATGGCTAGAAGCTGCAATGTAGTTTATACAATTAAATTCCCAGAGTAGCTATTCTAAGATGGGCTGATCTTTTCATTGATTTGATTATTGCTATTCAGCCATGGAGTGTGCCTGAGGTTTTACGACCACTATATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGCAGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCACTGA;TGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCACAGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGATTATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGG;1;1;5;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_1324_Treesnips_40-20-2;A;SNP;1324;ACATGCTAGTTGTTGATGGCTAGAAGCTGCAATGTAGTTTATACAATTAAATTCCCAGAGTAGCTATTCTAAGATGGGCTGATCTTTTCATTGATTTGATTATTGCTATTCAGCCATGGAGTGTGCCTGAGGTTTTACGACCACTATATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGCAGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCACTGA;TGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCACAGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGATGATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGG;1;1;6;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_1324_Treesnips_40-25-1;A;SNP;1324;ACATGCTAGTTGTTGATGGCTAGAAGCTGCAATGTAGTTTATACAATTAAATTCCCAGAGTAGCTATTCTAAGATGGGCTGATCTTTTCATTGATTTGATTATTGCTATTCAGCCATGGAGTGTGCCTGAGGTTTTACGACCACTATATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGCAGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCACTGA;TGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCACAGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGATTATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGG;1;1;7;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_1324_Treesnips_41-3-3;A;SNP;1324;ACATGCTAGTTGTTGATGGCTAGAAGCTGCAATGTAGTTTATACAATTAAATTCCCAGAGTAGCTATTCTAAGATGGGCTGATCTTTTCATTGATTTGATTATTGCTATTCAGCCATGGAGTGTGCCTGAGGTTTTACGACCACTATATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGCAGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCACTGA;TGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCACAGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGATTATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGG;1;1;8;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_1324_Treesnips_41-8-1;A;SNP;1324;ACATGCTAGTTGTTGATGGCTAGAAGCTGCAATGTAGTTTATACAATTAAATTCCCAGAGTAGCTATTCTAAGATGGGCTGATCTTTTCATTGATTTGATTATTGCTATTCAGCCATGGAGTGTGCCTGAGGTTTTACGACCACTATATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGCAGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCACTGA;TGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCACAGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGATTATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGG;1;1;9;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_1324_Treesnips_41-1-3;A;SNP;1324;ACATGCTAGTTGTTGATGGCTAGAAGCTGCAATGTAGTTTATACAATTAAATTCCCAGAGTAGCTATTCTAAGATGGGCTGATCTTTTCATTGATTTGATTATTGCTATTCAGCCATGGAGTGTGCCTGAGGTTTTACGACCACTATATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGCAGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCACTGA;TGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCACAGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGATGATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGG;1;1;10;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_1324_Treesnips_41-2-1;A;SNP;1324;ACATGCTAGTTGTTGATGGCTAGAAGCTGCAATGTAGTTTATACAATTAAATTCCCAGAGTAGCTATTCTAAGATGGGCTGATCTTTTCATTGATTTGATTATTGCTATTCAGCCATGGAGTGTGCCTGAGGTTTTACGACCACTATATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGCAGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCACTGA;TGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCACAGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGATGATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGG;1;1;11;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_1324_Treesnips_41-3-2;A;SNP;1324;ACATGCTAGTTGTTGATGGCTAGAAGCTGCAATGTAGTTTATACAATTAAATTCCCAGAGTAGCTATTCTAAGATGGGCTGATCTTTTCATTGATTTGATTATTGCTATTCAGCCATGGAGTGTGCCTGAGGTTTTACGACCACTATATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGCAGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCACTGA;TGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCACAGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGATTATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGG;1;1;12;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_1324_Treesnips_41-6-2;A;SNP;1324;ACATGCTAGTTGTTGATGGCTAGAAGCTGCAATGTAGTTTATACAATTAAATTCCCAGAGTAGCTATTCTAAGATGGGCTGATCTTTTCATTGATTTGATTATTGCTATTCAGCCATGGAGTGTGCCTGAGGTTTTACGACCACTATATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGCAGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCACTGA;TGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCACAGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGATTATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGG;1;1;13;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_1324_Treesnips_41-9-1;A;SNP;1324;ACATGCTAGTTGTTGATGGCTAGAAGCTGCAATGTAGTTTATACAATTAAATTCCCAGAGTAGCTATTCTAAGATGGGCTGATCTTTTCATTGATTTGATTATTGCTATTCAGCCATGGAGTGTGCCTGAGGTTTTACGACCACTATATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGCAGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCACTGA;TGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCACAGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGATGATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGG;1;1;14;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_1324_Treesnips_42-1-3;A;SNP;1324;ACATGCTAGTTGTTGATGGCTAGAAGCTGCAATGTAGTTTATACAATTAAATTCCCAGAGTAGCTATTCTAAGATGGGCTGATCTTTTCATTGATTTGATTATTGCTATTCAGCCATGGAGTGTGCCTGAGGTTTTACGACCACTATATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGCAGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCACTGA;TGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCACAGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGATTATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGG;1;1;15;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_1324_Treesnips_42-8-2;A;SNP;1324;ACATGCTAGTTGTTGATGGCTAGAAGCTGCAATGTAGTTTATACAATTAAATTCCCAGAGTAGCTATTCTAAGATGGGCTGATCTTTTCATTGATTTGATTATTGCTATTCAGCCATGGAGTGTGCCTGAGGTTTTACGACCACTATATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGCAGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCACTGA;TGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCACAGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGATTATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGG;1;1;16;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_1324_Treesnips_42-1-2;A;SNP;1324;ACATGCTAGTTGTTGATGGCTAGAAGCTGCAATGTAGTTTATACAATTAAATTCCCAGAGTAGCTATTCTAAGATGGGCTGATCTTTTCATTGATTTGATTATTGCTATTCAGCCATGGAGTGTGCCTGAGGTTTTACGACCACTATATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGCAGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCACTGA;TGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCACAGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGATTATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGG;1;1;17;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_1324_Treesnips_42-2-1;A;SNP;1324;ACATGCTAGTTGTTGATGGCTAGAAGCTGCAATGTAGTTTATACAATTAAATTCCCAGAGTAGCTATTCTAAGATGGGCTGATCTTTTCATTGATTTGATTATTGCTATTCAGCCATGGAGTGTGCCTGAGGTTTTACGACCACTATATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGCAGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCACTGA;TGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCACAGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGATTATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGG;1;1;18;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_1324_Treesnips_42-2-2;A;SNP;1324;ACATGCTAGTTGTTGATGGCTAGAAGCTGCAATGTAGTTTATACAATTAAATTCCCAGAGTAGCTATTCTAAGATGGGCTGATCTTTTCATTGATTTGATTATTGCTATTCAGCCATGGAGTGTGCCTGAGGTTTTACGACCACTATATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGCAGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCACTGA;TGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCACAGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGATGATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGG;1;1;19;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_1324_Treesnips_42-8-1;A;SNP;1324;ACATGCTAGTTGTTGATGGCTAGAAGCTGCAATGTAGTTTATACAATTAAATTCCCAGAGTAGCTATTCTAAGATGGGCTGATCTTTTCATTGATTTGATTATTGCTATTCAGCCATGGAGTGTGCCTGAGGTTTTACGACCACTATATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGCAGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCACTGA;TGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCACAGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGATTATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGG;1;1;20;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_1324_Treesnips_42-9-2;A;SNP;1324;ACATGCTAGTTGTTGATGGCTAGAAGCTGCAATGTAGTTTATACAATTAAATTCCCAGAGTAGCTATTCTAAGATGGGCTGATCTTTTCATTGATTTGATTATTGCTATTCAGCCATGGAGTGTGCCTGAGGTTTTACGACCACTATATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGCAGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCACTGA;TGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCACAGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGATTATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGG;1;1;21;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_1324_Treesnips_43-4-3;A;SNP;1324;ACATGCTAGTTGTTGATGGCTAGAAGCTGCAATGTAGTTTATACAATTAAATTCCCAGAGTAGCTATTCTAAGATGGGCTGATCTTTTCATTGATTTGATTATTGCTATTCAGCCATGGAGTGTGCCTGAGGTTTTACGACCACTATATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGCAGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCACTGA;TGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCACAGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGATGATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGG;1;1;22;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_1324_Treesnips_43-5-3;A;SNP;1324;ACATGCTAGTTGTTGATGGCTAGAAGCTGCAATGTAGTTTATACAATTAAATTCCCAGAGTAGCTATTCTAAGATGGGCTGATCTTTTCATTGATTTGATTATTGCTATTCAGCCATGGAGTGTGCCTGAGGTTTTACGACCACTATATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGCAGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCACTGA;TGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCACAGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGATTATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGG;1;1;23;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_1324_Treesnips_43-1-1;A;SNP;1324;ACATGCTAGTTGTTGATGGCTAGAAGCTGCAATGTAGTTTATACAATTAAATTCCCAGAGTAGCTATTCTAAGATGGGCTGATCTTTTCATTGATTTGATTATTGCTATTCAGCCATGGAGTGTGCCTGAGGTTTTACGACCACTATATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGCAGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCACTGA;TGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCACAGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGATGATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGG;1;1;24;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_1324_Treesnips_43-2-1;A;SNP;1324;ACATGCTAGTTGTTGATGGCTAGAAGCTGCAATGTAGTTTATACAATTAAATTCCCAGAGTAGCTATTCTAAGATGGGCTGATCTTTTCATTGATTTGATTATTGCTATTCAGCCATGGAGTGTGCCTGAGGTTTTACGACCACTATATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGCAGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCACTGA;TGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCACAGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGATTATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGG;1;1;25;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_1324_Treesnips_43-7-2;A;SNP;1324;ACATGCTAGTTGTTGATGGCTAGAAGCTGCAATGTAGTTTATACAATTAAATTCCCAGAGTAGCTATTCTAAGATGGGCTGATCTTTTCATTGATTTGATTATTGCTATTCAGCCATGGAGTGTGCCTGAGGTTTTACGACCACTATATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGCAGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCACTGA;TGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCACAGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGATTATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGG;1;1;26;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_1324_Treesnips_43-9-3;A;SNP;1324;ACATGCTAGTTGTTGATGGCTAGAAGCTGCAATGTAGTTTATACAATTAAATTCCCAGAGTAGCTATTCTAAGATGGGCTGATCTTTTCATTGATTTGATTATTGCTATTCAGCCATGGAGTGTGCCTGAGGTTTTACGACCACTATATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGCAGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCACTGA;TGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCACAGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGATTATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGG;1;1;27;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_1324_Treesnips_43-10-2;A;SNP;1324;ACATGCTAGTTGTTGATGGCTAGAAGCTGCAATGTAGTTTATACAATTAAATTCCCAGAGTAGCTATTCTAAGATGGGCTGATCTTTTCATTGATTTGATTATTGCTATTCAGCCATGGAGTGTGCCTGAGGTTTTACGACCACTATATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGCAGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCACTGA;TGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCACAGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGATGATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGG;1;1;28;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_1324_Treesnips_44-3-3;A;SNP;1324;ACATGCTAGTTGTTGATGGCTAGAAGCTGCAATGTAGTTTATACAATTAAATTCCCAGAGTAGCTATTCTAAGATGGGCTGATCTTTTCATTGATTTGATTATTGCTATTCAGCCATGGAGTGTGCCTGAGGTTTTACGACCACTATATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGCAGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCACTGA;TGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCACAGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGATGATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGG;1;1;29;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_1324_Treesnips_44-6-2;A;SNP;1324;ACATGCTAGTTGTTGATGGCTAGAAGCTGCAATGTAGTTTATACAATTAAATTCCCAGAGTAGCTATTCTAAGATGGGCTGATCTTTTCATTGATTTGATTATTGCTATTCAGCCATGGAGTGTGCCTGAGGTTTTACGACCACTATATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGCAGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCACTGA;TGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCACAGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGATTATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGG;1;1;30;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_1324_Treesnips_44-3-1;A;SNP;1324;ACATGCTAGTTGTTGATGGCTAGAAGCTGCAATGTAGTTTATACAATTAAATTCCCAGAGTAGCTATTCTAAGATGGGCTGATCTTTTCATTGATTTGATTATTGCTATTCAGCCATGGAGTGTGCCTGAGGTTTTACGACCACTATATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGCAGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCACTGA;TGAAATCTTCATGATCAGGCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGATGATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGG;1;1;31;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_1324_Treesnips_44-5-2;A;SNP;1324;ACATGCTAGTTGTTGATGGCTAGAAGCTGCAATGTAGTTTATACAATTAAATTCCCAGAGTAGCTATTCTAAGATGGGCTGATCTTTTCATTGATTTGATTATTGCTATTCAGCCATGGAGTGTGCCTGAGGTTTTACGACCACTATATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGCAGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCACTGA;TGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCACAGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGATTATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGG;1;1;32;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_1324_Treesnips_44-7-1;A;SNP;1324;ACATGCTAGTTGTTGATGGCTAGAAGCTGCAATGTAGTTTATACAATTAAATTCCCAGAGTAGCTATTCTAAGATGGGCTGATCTTTTCATTGATTTGATTATTGCTATTCAGCCATGGAGTGTGCCTGAGGTTTTACGACCACTATATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGCAGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCACTGA;TGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCACAGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGATGATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGG;1;1;33;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_1324_Treesnips_44-10-2;A;SNP;1324;ACATGCTAGTTGTTGATGGCTAGAAGCTGCAATGTAGTTTATACAATTAAATTCCCAGAGTAGCTATTCTAAGATGGGCTGATCTTTTCATTGATTTGATTATTGCTATTCAGCCATGGAGTGTGCCTGAGGTTTTACGACCACTATATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGCAGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCACTGA;TGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCACAGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGATGATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGG;1;1;34;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_1324_Treesnips_45-5-3;A;SNP;1324;ACATGCTAGTTGTTGATGGCTAGAAGCTGCAATGTAGTTTATACAATTAAATTCCCAGAGTAGCTATTCTAAGATGGGCTGATCTTTTCATTGATTTGATTATTGCTATTCAGCCATGGAGTGTGCCTGAGGTTTTACGACCACTATATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGCAGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCACTGA;TGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCACAGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGATGATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGG;1;1;35;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_1324_Treesnips_45-8-3;A;SNP;1324;ACATGCTAGTTGTTGATGGCTAGAAGCTGCAATGTAGTTTATACAATTAAATTCCCAGAGTAGCTATTCTAAGATGGGCTGATCTTTTCATTGATTTGATTATTGCTATTCAGCCATGGAGTGTGCCTGAGGTTTTACGACCACTATATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGCAGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCACTGA;TGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCACAGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGATTATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGG;1;1;36;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_1324_Treesnips_45-1-1;A;SNP;1324;ACATGCTAGTTGTTGATGGCTAGAAGCTGCAATGTAGTTTATACAATTAAATTCCCAGAGTAGCTATTCTAAGATGGGCTGATCTTTTCATTGATTTGATTATTGCTATTCAGCCATGGAGTGTGCCTGAGGTTTTACGACCACTATATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGCAGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCACTGA;TGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCACAGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGATTATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGG;1;1;37;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_1324_Treesnips_45-4-1;A;SNP;1324;ACATGCTAGTTGTTGATGGCTAGAAGCTGCAATGTAGTTTATACAATTAAATTCCCAGAGTAGCTATTCTAAGATGGGCTGATCTTTTCATTGATTTGATTATTGCTATTCAGCCATGGAGTGTGCCTGAGGTTTTACGACCACTATATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGCAGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCACTGA;TGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCACAGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGATGATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGG;1;1;38;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_1324_Treesnips_45-7-1;A;SNP;1324;ACATGCTAGTTGTTGATGGCTAGAAGCTGCAATGTAGTTTATACAATTAAATTCCCAGAGTAGCTATTCTAAGATGGGCTGATCTTTTCATTGATTTGATTATTGCTATTCAGCCATGGAGTGTGCCTGAGGTTTTACGACCACTATATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGCAGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCACTGA;TGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCACAGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGATTATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGG;1;1;39;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_1324_Treesnips_45-9-1;A;SNP;1324;ACATGCTAGTTGTTGATGGCTAGAAGCTGCAATGTAGTTTATACAATTAAATTCCCAGAGTAGCTATTCTAAGATGGGCTGATCTTTTCATTGATTTGATTATTGCTATTCAGCCATGGAGTGTGCCTGAGGTTTTACGACCACTATATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGCAGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCACTGA;TGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCACAGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGATTATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGG;1;1;40;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_1471_Treesnips_40-4-3;A;SNP;1471;ATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGCAGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCACTGACTGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCACAGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGAT;ATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTC;1;1;1;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_1471_Treesnips_40-8-3;A;SNP;1471;ATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGCAGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCACTGACTGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCACAGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGAT;ATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTC;1;1;2;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_1471_Treesnips_40-1-2;A;SNP;1471;ATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGCAGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCACTGACTGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCACAGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGAT;ATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTC;1;1;3;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_1471_Treesnips_40-14-1;A;SNP;1471;ATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGCAGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCACTGACTGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCACAGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGAT;ATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTC;1;1;4;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_1471_Treesnips_40-15-2;A;SNP;1471;ATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGCAGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCACTGACTGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCACAGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGAT;ATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTC;1;1;5;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_1471_Treesnips_40-20-2;A;SNP;1471;ATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGCAGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCACTGACTGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCACAGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGAT;ATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTC;1;1;6;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_1471_Treesnips_40-25-1;A;SNP;1471;ATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGCAGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCACTGACTGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCACAGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGAT;ATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTC;1;1;7;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_1471_Treesnips_41-3-3;A;SNP;1471;ATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGCAGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCACTGACTGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCACAGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGAT;ATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTC;1;1;8;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_1471_Treesnips_41-8-1;A;SNP;1471;ATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGCAGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCACTGACTGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCACAGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGAT;ATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTC;1;1;9;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_1471_Treesnips_41-1-3;A;SNP;1471;ATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGCAGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCACTGACTGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCACAGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGAT;ATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTC;1;1;10;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_1471_Treesnips_41-2-1;A;SNP;1471;ATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGCAGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCACTGACTGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCACAGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGAT;ATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTC;1;1;11;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_1471_Treesnips_41-3-2;A;SNP;1471;ATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGCAGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCACTGACTGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCACAGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGAT;ATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTC;1;1;12;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_1471_Treesnips_41-6-2;A;SNP;1471;ATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGCAGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCACTGACTGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCACAGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGAT;ATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTC;1;1;13;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_1471_Treesnips_41-9-1;A;SNP;1471;ATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGCAGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCACTGACTGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCACAGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGAT;ATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTC;1;1;14;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_1471_Treesnips_42-1-3;A;SNP;1471;ATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGCAGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCACTGACTGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCACAGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGAT;ATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTC;1;1;15;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_1471_Treesnips_42-8-2;A;SNP;1471;ATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGCAGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCACTGACTGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCACAGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGAT;ATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTC;1;1;16;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_1471_Treesnips_42-1-2;A;SNP;1471;ATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGCAGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCACTGACTGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCACAGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGAT;ATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTC;1;1;17;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_1471_Treesnips_42-2-1;A;SNP;1471;ATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGCAGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCACTGACTGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCACAGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGAT;ATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTC;1;1;18;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_1471_Treesnips_42-2-2;A;SNP;1471;ATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGCAGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCACTGACTGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCACAGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGAT;ATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTC;1;1;19;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_1471_Treesnips_42-8-1;A;SNP;1471;ATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGCAGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCACTGACTGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCACAGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGAT;ATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTC;1;1;20;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_1471_Treesnips_42-9-2;A;SNP;1471;ATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGCAGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCACTGACTGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCACAGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGAT;ATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTC;1;1;21;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_1471_Treesnips_43-4-3;A;SNP;1471;ATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGCAGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCACTGATTGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCACAGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGAT;ATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTC;1;1;22;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_1471_Treesnips_43-5-3;A;SNP;1471;ATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGCAGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCACTGACTGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCACAGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGAT;ATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTC;1;1;23;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_1471_Treesnips_43-1-1;A;SNP;1471;ATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGCAGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCACTGACTGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCACAGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGAT;ATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTC;1;1;24;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_1471_Treesnips_43-2-1;A;SNP;1471;ATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGCAGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCACTGACTGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCACAGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGAT;ATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTC;1;1;25;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_1471_Treesnips_43-7-2;A;SNP;1471;ATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGCAGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCACTGACTGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCACAGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGAT;ATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTC;1;1;26;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_1471_Treesnips_43-9-3;A;SNP;1471;ATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGCAGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCACTGACTGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCACAGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGAT;ATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTC;1;1;27;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_1471_Treesnips_43-10-2;A;SNP;1471;ATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGCAGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCACTGACTGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCACAGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGAT;ATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTC;1;1;28;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_1471_Treesnips_44-3-3;A;SNP;1471;ATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGCAGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCACTGACTGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCACAGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGAT;ATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTC;1;1;29;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_1471_Treesnips_44-6-2;A;SNP;1471;ATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGCAGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCACTGACTGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCACAGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGAT;ATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTC;1;1;30;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_1471_Treesnips_44-3-1;A;SNP;1471;ATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGCAGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCACTGACTGAAATCTTCATGATCAGGCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGAT;ATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTC;1;1;31;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_1471_Treesnips_44-5-2;A;SNP;1471;ATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGCAGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCACTGACTGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCACAGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGAT;ATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTC;1;1;32;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_1471_Treesnips_44-7-1;A;SNP;1471;ATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGCAGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCACTGACTGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCACAGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGAT;ATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTC;1;1;33;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_1471_Treesnips_44-10-2;A;SNP;1471;ATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGCAGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCACTGACTGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCACAGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGAT;ATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTC;1;1;34;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_1471_Treesnips_45-5-3;A;SNP;1471;ATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGCAGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCACTGACTGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCACAGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGAT;ATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCTTCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTC;1;1;35;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_1471_Treesnips_45-8-3;A;SNP;1471;ATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGCAGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCACTGACTGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCACAGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGAT;ATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTC;1;1;36;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_1471_Treesnips_45-1-1;A;SNP;1471;ATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGCAGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCACTGACTGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCACAGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGAT;ATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTC;1;1;37;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_1471_Treesnips_45-4-1;A;SNP;1471;ATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGCAGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCACTGACTGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCACAGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGAT;ATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTC;1;1;38;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_1471_Treesnips_45-7-1;A;SNP;1471;ATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGCAGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCACTGACTGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCACAGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGAT;ATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTC;1;1;39;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_1471_Treesnips_45-9-1;A;SNP;1471;ATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGCAGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCACTGACTGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCACAGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGAT;ATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTC;1;1;40;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_1632_Treesnips_40-4-3;A;SNP;1632;GGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGATTATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCT;CAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAGTTATTTAAAAAAAA-TGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGGGAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCC;1;1;1;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_1632_Treesnips_40-8-3;A;SNP;1632;GGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGATTATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCT;CAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAGTTATTTAAAAAAAA-TGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGGGAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCC;1;1;2;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_1632_Treesnips_40-1-2;A;SNP;1632;GGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGATGATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCT;CAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAGTTATTTAAAAAAAAATGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGGGAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCC;1;1;3;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_1632_Treesnips_40-14-1;A;SNP;1632;GGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGATGATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCT;CAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAGTTATTTAAAAAAAAATGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGGGAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCC;1;1;4;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_1632_Treesnips_40-15-2;A;SNP;1632;GGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGATTATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCT;CAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAGTTATTTAAAAAAAA-TGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGGGAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCC;1;1;5;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_1632_Treesnips_40-20-2;A;SNP;1632;GGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGATGATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCT;CAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAGTTATTTAAAAAAAAATGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGGGAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCC;1;1;6;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_1632_Treesnips_40-25-1;A;SNP;1632;GGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGATTATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCT;CAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAGTTATTTAAAAAAAA-TGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGGGAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCC;1;1;7;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_1632_Treesnips_41-3-3;A;SNP;1632;GGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGATTATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCT;CAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAGTTATTTAAAAAAAA-TGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGGGAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCC;1;1;8;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_1632_Treesnips_41-8-1;A;SNP;1632;GGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGATTATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCT;CAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAGTTATTTAAAAAAAA-TGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGGGAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCC;1;1;9;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_1632_Treesnips_41-1-3;A;SNP;1632;GGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGATGATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCT;CAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAGTTATTTAAAAAAAAATGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGGGAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCC;1;1;10;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_1632_Treesnips_41-2-1;A;SNP;1632;GGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGATGATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCT;CAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAGTTATTTAAAAAAAAATGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGGGAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCC;1;1;11;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_1632_Treesnips_41-3-2;A;SNP;1632;GGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGATTATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCT;CAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAGTTATTTAAAAAAAA-TGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGGGAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCC;1;1;12;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_1632_Treesnips_41-6-2;A;SNP;1632;GGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGATTATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCT;CAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAGTTATTTAAAAAAAA-TGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGGGAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCC;1;1;13;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_1632_Treesnips_41-9-1;A;SNP;1632;GGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGATGATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCT;CAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAGTTATTTAAAAAAAAATGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGGGAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCC;1;1;14;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_1632_Treesnips_42-1-3;A;SNP;1632;GGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGATTATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCT;CAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAGTTATTTAAAAAAAA-TGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGGGAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCC;1;1;15;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_1632_Treesnips_42-8-2;A;SNP;1632;GGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGATTATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCT;CAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAGTTATTTAAAAAAAA-TGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGGGAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCC;1;1;16;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_1632_Treesnips_42-1-2;A;SNP;1632;GGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGATTATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCT;CAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAGTTATTTAAAAAAAA-TGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGGGAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCC;1;1;17;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_1632_Treesnips_42-2-1;A;SNP;1632;GGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGATTATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCT;CAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAGTTATTTAAAAAAAA-TGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGGGAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCC;1;1;18;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_1632_Treesnips_42-2-2;A;SNP;1632;GGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGATGATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCT;CAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAGTTATTTAAAAAAAAATGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGGGAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCC;1;1;19;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_1632_Treesnips_42-8-1;A;SNP;1632;GGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGATTATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCT;CAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAGTTATTTAAAAAAAA-TGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGGGAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCC;1;1;20;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_1632_Treesnips_42-9-2;A;SNP;1632;GGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGATTATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCT;CAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAGTTATTTAAAAAAAA-TGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGGGAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCC;1;1;21;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_1632_Treesnips_43-4-3;A;SNP;1632;GGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGATGATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCT;CAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAGTTATTTAAAAAAAAATGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGGGAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCC;1;1;22;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_1632_Treesnips_43-5-3;A;SNP;1632;GGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGATTATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCT;CAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAGTTATTTAAAAAAAA-TGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGGGAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCC;1;1;23;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_1632_Treesnips_43-1-1;A;SNP;1632;GGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGATGATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCT;CAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAGTTATTTAAAAAAAAATGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGGGAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCC;1;1;24;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_1632_Treesnips_43-2-1;A;SNP;1632;GGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGATTATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCT;CAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAGTTATTTAAAAAAAA-TGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGGGAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCC;1;1;25;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_1632_Treesnips_43-7-2;A;SNP;1632;GGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGATTATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCT;CAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAGTTATTTAAAAAAAA-TGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGGGAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCC;1;1;26;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_1632_Treesnips_43-9-3;A;SNP;1632;GGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGATTATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCT;CAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAGTTATTTAAAAAAAA-TGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGGGAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCC;1;1;27;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_1632_Treesnips_43-10-2;A;SNP;1632;GGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGATGATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCT;CAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAGTTATTTAAAAAAAAATGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGGGAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCC;1;1;28;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_1632_Treesnips_44-3-3;A;SNP;1632;GGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGATGATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCT;CAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAGTTATTTAAAAAAAAATGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGGGAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCC;1;1;29;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_1632_Treesnips_44-6-2;A;SNP;1632;GGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGATTATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCT;CAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAGTTATTTAAAAAAAA-TGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGGGAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCC;1;1;30;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_1632_Treesnips_44-3-1;A;SNP;1632;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGATGATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCT;CAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAGTTATTTAAAAAAAAATGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGGGAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCC;1;1;31;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_1632_Treesnips_44-5-2;A;SNP;1632;GGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGATTATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCT;CAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAGTTATTTAAAAAAAA-TGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGGGAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCC;1;1;32;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_1632_Treesnips_44-7-1;A;SNP;1632;GGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGATGATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCT;CAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAGTTATTTAAAAAAAAATGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGGGAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCC;1;1;33;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_1632_Treesnips_44-10-2;A;SNP;1632;GGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGATGATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCT;CAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAGTTATTTAAAAAAAAATGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGGGAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCC;1;1;34;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_1632_Treesnips_45-5-3;A;SNP;1632;GGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGATGATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCT;CAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAGTTATTTAAAAAAAAATGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGGGAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCC;1;1;35;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_1632_Treesnips_45-8-3;A;SNP;1632;GGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGATTATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCT;CAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAGTTATTTAAAAAAAA-TGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGGGAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCC;1;1;36;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_1632_Treesnips_45-1-1;A;SNP;1632;GGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGATTATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCT;CAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAGTTATTTAAAAAAAA-TGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGGGAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCC;1;1;37;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_1632_Treesnips_45-4-1;A;SNP;1632;GGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGATGATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCT;CAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAGTTATTTAAAAAAAAATGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGGGAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCC;1;1;38;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_1632_Treesnips_45-7-1;A;SNP;1632;GGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGATTATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCT;CAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAGTTATTTAAAAAAAA-TGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGGGAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCC;1;1;39;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_1632_Treesnips_45-9-1;A;SNP;1632;GGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAGGTTAAGCAGGTAATGTGACTACTGCAGGATTATATCTTCTCCCATATTTGAACCATGATGATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCT;CAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAGTTATTTAAAAAAAA-TGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGGGAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCC;1;1;40;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_INS_1754_Treesnips_40-4-3;A;INSERTION;1754;TGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAGTTATTTAAAAAAAA;TGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGGGAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGG;1;1;1;Sequence;;;5 -INRA_Pinus_pinaster_HDZ31-1_INS_1754_Treesnips_40-8-3;A;INSERTION;1754;TGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAGTTATTTAAAAAAAA;TGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGGGAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGG;1;1;2;Sequence;;;5 -INRA_Pinus_pinaster_HDZ31-1_INS_1754_Treesnips_40-1-2;A;INSERTION;1754;TGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAGTTATTTAAAAAAAA;TGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGGGAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGG;1;1;3;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_INS_1754_Treesnips_40-14-1;A;INSERTION;1754;TGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAGTTATTTAAAAAAAA;TGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGGGAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGG;1;1;4;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_INS_1754_Treesnips_40-15-2;A;INSERTION;1754;TGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAGTTATTTAAAAAAAA;TGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGGGAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGG;1;1;5;Sequence;;;5 -INRA_Pinus_pinaster_HDZ31-1_INS_1754_Treesnips_40-20-2;A;INSERTION;1754;TGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAGTTATTTAAAAAAAA;TGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGGGAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGG;1;1;6;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_INS_1754_Treesnips_40-25-1;A;INSERTION;1754;TGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAGTTATTTAAAAAAAA;TGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGGGAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGG;1;1;7;Sequence;;;5 -INRA_Pinus_pinaster_HDZ31-1_INS_1754_Treesnips_41-3-3;A;INSERTION;1754;TGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAGTTATTTAAAAAAAA;TGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGGGAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGG;1;1;8;Sequence;;;5 -INRA_Pinus_pinaster_HDZ31-1_INS_1754_Treesnips_41-8-1;A;INSERTION;1754;TGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAGTTATTTAAAAAAAA;TGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGGGAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGG;1;1;9;Sequence;;;5 -INRA_Pinus_pinaster_HDZ31-1_INS_1754_Treesnips_41-1-3;A;INSERTION;1754;TGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAGTTATTTAAAAAAAA;TGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGGGAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGG;1;1;10;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_INS_1754_Treesnips_41-2-1;A;INSERTION;1754;TGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAGTTATTTAAAAAAAA;TGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGGGAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGG;1;1;11;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_INS_1754_Treesnips_41-3-2;A;INSERTION;1754;TGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAGTTATTTAAAAAAAA;TGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGGGAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGG;1;1;12;Sequence;;;5 -INRA_Pinus_pinaster_HDZ31-1_INS_1754_Treesnips_41-6-2;A;INSERTION;1754;TGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAGTTATTTAAAAAAAA;TGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGGGAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGG;1;1;13;Sequence;;;5 -INRA_Pinus_pinaster_HDZ31-1_INS_1754_Treesnips_41-9-1;A;INSERTION;1754;TGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAGTTATTTAAAAAAAA;TGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGGGAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGG;1;1;14;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_INS_1754_Treesnips_42-1-3;A;INSERTION;1754;TGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAGTTATTTAAAAAAAA;TGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGGGAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGG;1;1;15;Sequence;;;5 -INRA_Pinus_pinaster_HDZ31-1_INS_1754_Treesnips_42-8-2;A;INSERTION;1754;TGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAGTTATTTAAAAAAAA;TGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGGGAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGG;1;1;16;Sequence;;;5 -INRA_Pinus_pinaster_HDZ31-1_INS_1754_Treesnips_42-1-2;A;INSERTION;1754;TGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAGTTATTTAAAAAAAA;TGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGGGAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGG;1;1;17;Sequence;;;5 -INRA_Pinus_pinaster_HDZ31-1_INS_1754_Treesnips_42-2-1;A;INSERTION;1754;TGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAGTTATTTAAAAAAAA;TGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGGGAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGG;1;1;18;Sequence;;;5 -INRA_Pinus_pinaster_HDZ31-1_INS_1754_Treesnips_42-2-2;A;INSERTION;1754;TGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAGTTATTTAAAAAAAA;TGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGGGAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGG;1;1;19;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_INS_1754_Treesnips_42-8-1;A;INSERTION;1754;TGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAGTTATTTAAAAAAAA;TGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGGGAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGG;1;1;20;Sequence;;;5 -INRA_Pinus_pinaster_HDZ31-1_INS_1754_Treesnips_42-9-2;A;INSERTION;1754;TGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAGTTATTTAAAAAAAA;TGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGGGAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGG;1;1;21;Sequence;;;5 -INRA_Pinus_pinaster_HDZ31-1_INS_1754_Treesnips_43-4-3;A;INSERTION;1754;TGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAGTTATTTAAAAAAAA;TGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGGGAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGG;1;1;22;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_INS_1754_Treesnips_43-5-3;A;INSERTION;1754;TGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAGTTATTTAAAAAAAA;TGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGGGAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGG;1;1;23;Sequence;;;5 -INRA_Pinus_pinaster_HDZ31-1_INS_1754_Treesnips_43-1-1;A;INSERTION;1754;TGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAGTTATTTAAAAAAAA;TGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGGGAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGG;1;1;24;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_INS_1754_Treesnips_43-2-1;A;INSERTION;1754;TGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAGTTATTTAAAAAAAA;TGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGGGAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGG;1;1;25;Sequence;;;5 -INRA_Pinus_pinaster_HDZ31-1_INS_1754_Treesnips_43-7-2;A;INSERTION;1754;TGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAGTTATTTAAAAAAAA;TGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGGGAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGG;1;1;26;Sequence;;;5 -INRA_Pinus_pinaster_HDZ31-1_INS_1754_Treesnips_43-9-3;A;INSERTION;1754;TGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAGTTATTTAAAAAAAA;TGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGGGAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGG;1;1;27;Sequence;;;5 -INRA_Pinus_pinaster_HDZ31-1_INS_1754_Treesnips_43-10-2;A;INSERTION;1754;TGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAGTTATTTAAAAAAAA;TGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGGGAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGG;1;1;28;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_INS_1754_Treesnips_44-3-3;A;INSERTION;1754;TGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAGTTATTTAAAAAAAA;TGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGGGAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGG;1;1;29;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_INS_1754_Treesnips_44-6-2;A;INSERTION;1754;TGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAGTTATTTAAAAAAAA;TGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGGGAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGG;1;1;30;Sequence;;;5 -INRA_Pinus_pinaster_HDZ31-1_INS_1754_Treesnips_44-3-1;A;INSERTION;1754;TGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAGTTATTTAAAAAAAA;TGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGGGAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGG;1;1;31;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_INS_1754_Treesnips_44-5-2;A;INSERTION;1754;TGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAGTTATTTAAAAAAAA;TGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGGGAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGG;1;1;32;Sequence;;;5 -INRA_Pinus_pinaster_HDZ31-1_INS_1754_Treesnips_44-7-1;A;INSERTION;1754;TGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAGTTATTTAAAAAAAA;TGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGGGAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGG;1;1;33;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_INS_1754_Treesnips_44-10-2;A;INSERTION;1754;TGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAGTTATTTAAAAAAAA;TGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGGGAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGG;1;1;34;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_INS_1754_Treesnips_45-5-3;A;INSERTION;1754;TGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCTTCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAGTTATTTAAAAAAAA;TGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGGGAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGG;1;1;35;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_INS_1754_Treesnips_45-8-3;A;INSERTION;1754;TGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAGTTATTTAAAAAAAA;TGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGGGAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGG;1;1;36;Sequence;;;5 -INRA_Pinus_pinaster_HDZ31-1_INS_1754_Treesnips_45-1-1;A;INSERTION;1754;TGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAGTTATTTAAAAAAAA;TGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGGGAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGG;1;1;37;Sequence;;;5 -INRA_Pinus_pinaster_HDZ31-1_INS_1754_Treesnips_45-4-1;A;INSERTION;1754;TGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAGTTATTTAAAAAAAA;TGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGGGAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGG;1;1;38;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_INS_1754_Treesnips_45-7-1;A;INSERTION;1754;TGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAGTTATTTAAAAAAAA;TGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGGGAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGG;1;1;39;Sequence;;;5 -INRA_Pinus_pinaster_HDZ31-1_INS_1754_Treesnips_45-9-1;A;INSERTION;1754;TGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGATTTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTATCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAACTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAGTTATTTAAAAAAAA;TGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGGGAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGG;1;1;40;Sequence;;;5 -INRA_Pinus_pinaster_HDZ31-1_SNP_2086_Treesnips_40-4-3;A;SNP;2086;TTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGC;TGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACTCAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTC;1;1;1;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_2086_Treesnips_40-8-3;A;SNP;2086;TTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGC;TGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACTCAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTC;1;1;2;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_2086_Treesnips_40-1-2;A;SNP;2086;TTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGC;TGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACACAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTC;1;1;3;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2086_Treesnips_40-14-1;A;SNP;2086;TTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGC;TGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACACAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTC;1;1;4;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2086_Treesnips_40-15-2;A;SNP;2086;TTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGC;TGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACTCAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTC;1;1;5;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_2086_Treesnips_40-20-2;A;SNP;2086;TTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGC;TGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACACAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTC;1;1;6;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2086_Treesnips_40-25-1;A;SNP;2086;TTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGC;TGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACTCAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTC;1;1;7;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_2086_Treesnips_41-3-3;A;SNP;2086;TTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGC;TGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACTCAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTC;1;1;8;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_2086_Treesnips_41-8-1;A;SNP;2086;TTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGC;TGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACTCAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTC;1;1;9;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_2086_Treesnips_41-1-3;A;SNP;2086;TTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGC;TGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACACAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTC;1;1;10;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2086_Treesnips_41-2-1;A;SNP;2086;TTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGC;TGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACACAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTC;1;1;11;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2086_Treesnips_41-3-2;A;SNP;2086;TTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGC;TGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACTCAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTC;1;1;12;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_2086_Treesnips_41-6-2;A;SNP;2086;TTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGC;TGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACTCAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTC;1;1;13;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_2086_Treesnips_41-9-1;A;SNP;2086;TTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGC;TGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACACAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTC;1;1;14;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2086_Treesnips_42-1-3;A;SNP;2086;TTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGC;TGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACTCAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTC;1;1;15;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_2086_Treesnips_42-8-2;A;SNP;2086;TTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGC;TGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACTCAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTC;1;1;16;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_2086_Treesnips_42-1-2;A;SNP;2086;TTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGC;TGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACTCAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTC;1;1;17;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_2086_Treesnips_42-2-1;A;SNP;2086;TTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGC;TGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACTCAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTC;1;1;18;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_2086_Treesnips_42-2-2;A;SNP;2086;TTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGC;TGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACACAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTC;1;1;19;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2086_Treesnips_42-8-1;A;SNP;2086;TTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGC;TGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACTCAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTC;1;1;20;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_2086_Treesnips_42-9-2;A;SNP;2086;TTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGC;TGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACTCAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTC;1;1;21;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_2086_Treesnips_43-4-3;A;SNP;2086;TTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGC;TGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATCTTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACACAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTC;1;1;22;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2086_Treesnips_43-5-3;A;SNP;2086;TTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGC;TGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACTCAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTC;1;1;23;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_2086_Treesnips_43-1-1;A;SNP;2086;TTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGC;TGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACACAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTC;1;1;24;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2086_Treesnips_43-2-1;A;SNP;2086;TTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGC;TGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACTCAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTC;1;1;25;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_2086_Treesnips_43-7-2;A;SNP;2086;TTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGC;TGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACTCAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTC;1;1;26;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_2086_Treesnips_43-9-3;A;SNP;2086;TTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGC;TGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACTCAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTC;1;1;27;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_2086_Treesnips_43-10-2;A;SNP;2086;TTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGC;TGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACACAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTC;1;1;28;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2086_Treesnips_44-3-3;A;SNP;2086;TTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGC;TGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACACAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTC;1;1;29;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2086_Treesnips_44-6-2;A;SNP;2086;TTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGC;TGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACTCAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTC;1;1;30;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_2086_Treesnips_44-3-1;A;SNP;2086;TTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGC;TGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACACAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTC;1;1;31;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2086_Treesnips_44-5-2;A;SNP;2086;TTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGC;TGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACTCAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTC;1;1;32;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_2086_Treesnips_44-7-1;A;SNP;2086;TTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGC;TGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACACAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTC;1;1;33;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2086_Treesnips_44-10-2;A;SNP;2086;TTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGC;TGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACACAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTC;1;1;34;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2086_Treesnips_45-5-3;A;SNP;2086;TTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGC;TGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACACAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTC;1;1;35;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2086_Treesnips_45-8-3;A;SNP;2086;TTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGC;TGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACTCAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTC;1;1;36;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_2086_Treesnips_45-1-1;A;SNP;2086;TTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGC;TGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACTCAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTC;1;1;37;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_2086_Treesnips_45-4-1;A;SNP;2086;TTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGC;TGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACACAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTC;1;1;38;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2086_Treesnips_45-7-1;A;SNP;2086;TTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGC;TGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACTCAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTC;1;1;39;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_2086_Treesnips_45-9-1;A;SNP;2086;TTTGATAGAGGAACTGATGACGTGTAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGC;TGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACTCAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTC;1;1;40;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_2137_Treesnips_40-4-3;A;SNP;2137;CATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCCTGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATAT;TTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACTCAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTATACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGT;1;1;1;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2137_Treesnips_40-8-3;A;SNP;2137;CATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCCTGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATAT;TTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACTCAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTATACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGT;1;1;2;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2137_Treesnips_40-1-2;A;SNP;2137;CATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCTTGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATAT;TTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACACAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTATACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGT;1;1;3;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2137_Treesnips_40-14-1;A;SNP;2137;CATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCTTGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATAT;TTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACACAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTATACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGT;1;1;4;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2137_Treesnips_40-15-2;A;SNP;2137;CATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCCTGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATAT;TTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACTCAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTATACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGT;1;1;5;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2137_Treesnips_40-20-2;A;SNP;2137;CATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCTTGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATAT;TTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACACAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTATACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGT;1;1;6;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2137_Treesnips_40-25-1;A;SNP;2137;CATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCCTGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATAT;TTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACTCAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTATACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGT;1;1;7;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2137_Treesnips_41-3-3;A;SNP;2137;CATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCCTGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATAT;TTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACTCAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTATACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGT;1;1;8;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2137_Treesnips_41-8-1;A;SNP;2137;CATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCCTGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATAT;TTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACTCAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTATACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGT;1;1;9;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2137_Treesnips_41-1-3;A;SNP;2137;CATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCTTGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATAT;TTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACACAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTATACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGT;1;1;10;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2137_Treesnips_41-2-1;A;SNP;2137;CATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCTTGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATAT;TTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACACAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTATACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGT;1;1;11;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2137_Treesnips_41-3-2;A;SNP;2137;CATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCCTGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATAT;TTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACTCAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTATACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGT;1;1;12;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2137_Treesnips_41-6-2;A;SNP;2137;CATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCCTGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATAT;TTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACTCAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTATACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGT;1;1;13;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2137_Treesnips_41-9-1;A;SNP;2137;CATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCTTGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATAT;TTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACACAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTATACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGT;1;1;14;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2137_Treesnips_42-1-3;A;SNP;2137;CATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCCTGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATAT;TTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACTCAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTATACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGT;1;1;15;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2137_Treesnips_42-8-2;A;SNP;2137;CATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCCTGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATAT;TTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACTCAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTATACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGT;1;1;16;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2137_Treesnips_42-1-2;A;SNP;2137;CATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCCTGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATAT;TTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACTCAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTATACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGT;1;1;17;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2137_Treesnips_42-2-1;A;SNP;2137;CATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCCTGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATAT;TTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACTCAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTATACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGT;1;1;18;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2137_Treesnips_42-2-2;A;SNP;2137;CATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCTTGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATAT;TTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACACAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTATACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGT;1;1;19;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2137_Treesnips_42-8-1;A;SNP;2137;CATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCCTGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATAT;TTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACTCAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTATACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGT;1;1;20;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2137_Treesnips_42-9-2;A;SNP;2137;CATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCCTGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATAT;TTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACTCAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTATACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGT;1;1;21;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2137_Treesnips_43-4-3;A;SNP;2137;CATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCTTGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATAT;TTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACACAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTATACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGT;1;1;22;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_2137_Treesnips_43-5-3;A;SNP;2137;CATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCCTGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATAT;TTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACTCAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTATACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGT;1;1;23;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2137_Treesnips_43-1-1;A;SNP;2137;CATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCTTGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATAT;TTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACACAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTATACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGT;1;1;24;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2137_Treesnips_43-2-1;A;SNP;2137;CATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCCTGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATAT;TTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACTCAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTATACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGT;1;1;25;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2137_Treesnips_43-7-2;A;SNP;2137;CATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCCTGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATAT;TTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACTCAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTATACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGT;1;1;26;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2137_Treesnips_43-9-3;A;SNP;2137;CATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCCTGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATAT;TTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACTCAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTATACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGT;1;1;27;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2137_Treesnips_43-10-2;A;SNP;2137;CATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCTTGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATAT;TTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACACAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTATACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGT;1;1;28;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2137_Treesnips_44-3-3;A;SNP;2137;CATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCTTGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATAT;TTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACACAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTATACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGT;1;1;29;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2137_Treesnips_44-6-2;A;SNP;2137;CATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCCTGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATAT;TTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACTCAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTATACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGT;1;1;30;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2137_Treesnips_44-3-1;A;SNP;2137;CATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCTTGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATAT;TTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACACAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTATACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGT;1;1;31;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2137_Treesnips_44-5-2;A;SNP;2137;CATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCCTGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATAT;TTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACTCAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTATACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGT;1;1;32;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2137_Treesnips_44-7-1;A;SNP;2137;CATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCTTGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATAT;TTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACACAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTATACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGT;1;1;33;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2137_Treesnips_44-10-2;A;SNP;2137;CATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCTTGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATAT;TTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACACAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTATACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGT;1;1;34;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2137_Treesnips_45-5-3;A;SNP;2137;CATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCTTGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATAT;TTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACACAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTATACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGT;1;1;35;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2137_Treesnips_45-8-3;A;SNP;2137;CATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCCTGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATAT;TTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACTCAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTATACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGT;1;1;36;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2137_Treesnips_45-1-1;A;SNP;2137;CATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCCTGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATAT;TTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACTCAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTATACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGT;1;1;37;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2137_Treesnips_45-4-1;A;SNP;2137;CATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCTTGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATAT;TTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACACAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTATACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGT;1;1;38;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2137_Treesnips_45-7-1;A;SNP;2137;CATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCCTGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATAT;TTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACTCAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTATACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGT;1;1;39;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2137_Treesnips_45-9-1;A;SNP;2137;CATTACTTGTACGTTTCTTGCGCGAGCACCGATCAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTTATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCCTGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATAT;TTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACTCAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTATACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGT;1;1;40;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2267_Treesnips_40-4-3;A;SNP;2267;GAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCCTGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTAC;CAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTATACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGTTAACATTATCAACAACTTTGATGGGCAGCTTTGCAGTGGAATTGATGAACATGCAGCTGGAGCATGTGCTGAACTTGTTTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCT;1;1;1;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2267_Treesnips_40-8-3;A;SNP;2267;GAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCCTGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTAC;CAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTATACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGTTAACATTATCAACAACTTTGATGGGCAGCTTTGCAGTGGAATTGATGAACATGCAGCTGGAGCATGTGCTGAACTTGTTTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCT;1;1;2;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2267_Treesnips_40-1-2;A;SNP;2267;GAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCTTGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTAC;CAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTATACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGTTAACATTATCAACAACTTTGATGGGCAGCTTTGCAGTGGAATTGATGAACATGCAGCTGGAGCATGTGCTGAACTTGTTTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCT;1;1;3;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_2267_Treesnips_40-14-1;A;SNP;2267;GAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCTTGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTAC;CAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTATACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGTTAACATTATCAACAACTTTGATGGGCAGCTTTGCAGTGGAATTGATGAACATGCAGCTGGAGCATGTGCTGAACTTGTTTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCT;1;1;4;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_2267_Treesnips_40-15-2;A;SNP;2267;GAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCCTGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTAC;CAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTATACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGTTAACATTATCAACAACTTTGATGGGCAGCTTTGCAGTGGAATTGATGAACATGCAGCTGGAGCATGTGCTGAACTTGTTTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCT;1;1;5;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2267_Treesnips_40-20-2;A;SNP;2267;GAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCTTGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTAC;CAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTATACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGTTAACATTATCAACAACTTTGATGGGCAGCTTTGCAGTGGAATTGATGAACATGCAGCTGGAGCATGTGCTGAACTTGTTTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCT;1;1;6;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_2267_Treesnips_40-25-1;A;SNP;2267;GAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCCTGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTAC;CAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTATACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGTTAACATTATCAACAACTTTGATGGGCAGCTTTGCAGTGGAATTGATGAACATGCAGCTGGAGCATGTGCTGAACTTGTTTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCT;1;1;7;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2267_Treesnips_41-3-3;A;SNP;2267;GAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCCTGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTAC;CAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTATACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGTTAACATTATCAACAACTTTGATGGGCAGCTTTGCAGTGGAATTGATGAACATGCAGCTGGAGCATGTGCTGAACTTGTTTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCT;1;1;8;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2267_Treesnips_41-8-1;A;SNP;2267;GAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCCTGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTAC;CAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTATACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGTTAACATTATCAACAACTTTGATGGGCAGCTTTGCAGTGGAATTGATGAACATGCAGCTGGAGCATGTGCTGAACTTGTTTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCT;1;1;9;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2267_Treesnips_41-1-3;A;SNP;2267;GAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCTTGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTAC;CAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTATACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGTTAACATTATCAACAACTTTGATGGGCAGCTTTGCAGTGGAATTGATGAACATGCAGCTGGAGCATGTGCTGAACTTGTTTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCT;1;1;10;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_2267_Treesnips_41-2-1;A;SNP;2267;GAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCTTGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTAC;CAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTATACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGTTAACATTATCAACAACTTTGATGGGCAGCTTTGCAGTGGAATTGATGAACATGCAGCTGGAGCATGTGCTGAACTTGTTTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCT;1;1;11;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_2267_Treesnips_41-3-2;A;SNP;2267;GAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCCTGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTAC;CAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTATACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGTTAACATTATCAACAACTTTGATGGGCAGCTTTGCAGTGGAATTGATGAACATGCAGCTGGAGCATGTGCTGAACTTGTTTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCT;1;1;12;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2267_Treesnips_41-6-2;A;SNP;2267;GAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCCTGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTAC;CAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTATACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGTTAACATTATCAACAACTTTGATGGGCAGCTTTGCAGTGGAATTGATGAACATGCAGCTGGAGCATGTGCTGAACTTGTTTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCT;1;1;13;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2267_Treesnips_41-9-1;A;SNP;2267;GAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCTTGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTAC;CAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTATACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGTTAACATTATCAACAACTTTGATGGGCAGCTTTGCAGTGGAATTGATGAACATGCAGCTGGAGCATGTGCTGAACTTGTTTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCT;1;1;14;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_2267_Treesnips_42-1-3;A;SNP;2267;GAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCCTGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTAC;CAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTATACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGTTAACATTATCAACAACTTTGATGGGCAGCTTTGCAGTGGAATTGATGAACATGCAGCTGGAGCATGTGCTGAACTTGTTTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCT;1;1;15;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2267_Treesnips_42-8-2;A;SNP;2267;GAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCCTGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTAC;CAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTATACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGTTAACATTATCAACAACTTTGATGGGCAGCTTTGCAGTGGAATTGATGAACATGCAGCTGGAGCATGTGCTGAACTTGTTTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCT;1;1;16;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2267_Treesnips_42-1-2;A;SNP;2267;GAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCCTGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTAC;CAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTATACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGTTAACATTATCAACAACTTTGATGGGCAGCTTTGCAGTGGAATTGATGAACATGCAGCTGGAGCATGTGCTGAACTTGTTTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCT;1;1;17;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2267_Treesnips_42-2-1;A;SNP;2267;GAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCCTGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTAC;CAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTATACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGTTAACATTATCAACAACTTTGATGGGCAGCTTTGCAGTGGAATTGATGAACATGCAGCTGGAGCATGTGCTGAACTTGTTTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCT;1;1;18;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2267_Treesnips_42-2-2;A;SNP;2267;GAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCTTGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTAC;CAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTATACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGTTAACATTATCAACAACTTTGATGGGCAGCTTTGCAGTGGAATTGATGAACATGCAGCTGGAGCATGTGCTGAACTTGTTTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCT;1;1;19;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_2267_Treesnips_42-8-1;A;SNP;2267;GAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCCTGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTAC;CAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTATACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGTTAACATTATCAACAACTTTGATGGGCAGCTTTGCAGTGGAATTGATGAACATGCAGCTGGAGCATGTGCTGAACTTGTTTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCT;1;1;20;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2267_Treesnips_42-9-2;A;SNP;2267;GAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCCTGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTAC;CAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTATACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGTTAACATTATCAACAACTTTGATGGGCAGCTTTGCAGTGGAATTGATGAACATGCAGCTGGAGCATGTGCTGAACTTGTTTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCT;1;1;21;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2267_Treesnips_43-4-3;A;SNP;2267;GAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCTTGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATCTTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTAC;CAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTATACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGTTAACATTATCAACAACTTTGATGGGCAGCTTTGCAGTGGAATTGATGAACATGCAGCTGGAGCATGTGCTGAACTTGTTTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCT;1;1;22;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_2267_Treesnips_43-5-3;A;SNP;2267;GAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCCTGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTAC;CAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTATACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGTTAACATTATCAACAACTTTGATGGGCAGCTTTGCAGTGGAATTGATGAACATGCAGCTGGAGCATGTGCTGAACTTGTTTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCT;1;1;23;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2267_Treesnips_43-1-1;A;SNP;2267;GAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCTTGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTAC;CAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTATACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGTTAACATTATCAACAACTTTGATGGGCAGCTTTGCAGTGGAATTGATGAACATGCAGCTGGAGCATGTGCTGAACTTGTTTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCT;1;1;24;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_2267_Treesnips_43-2-1;A;SNP;2267;GAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCCTGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTAC;CAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTATACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGTTAACATTATCAACAACTTTGATGGGCAGCTTTGCAGTGGAATTGATGAACATGCAGCTGGAGCATGTGCTGAACTTGTTTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCT;1;1;25;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2267_Treesnips_43-7-2;A;SNP;2267;GAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCCTGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTAC;CAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTATACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGTTAACATTATCAACAACTTTGATGGGCAGCTTTGCAGTGGAATTGATGAACATGCAGCTGGAGCATGTGCTGAACTTGTTTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCT;1;1;26;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2267_Treesnips_43-9-3;A;SNP;2267;GAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCCTGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTAC;CAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTATACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGTTAACATTATCAACAACTTTGATGGGCAGCTTTGCAGTGGAATTGATGAACATGCAGCTGGAGCATGTGCTGAACTTGTTTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCT;1;1;27;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2267_Treesnips_43-10-2;A;SNP;2267;GAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCTTGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTAC;CAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTATACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGTTAACATTATCAACAACTTTGATGGGCAGCTTTGCAGTGGAATTGATGAACATGCAGCTGGAGCATGTGCTGAACTTGTTTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCT;1;1;28;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_2267_Treesnips_44-3-3;A;SNP;2267;GAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCTTGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTAC;CAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTATACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGTTAACATTATCAACAACTTTGATGGGCAGCTTTGCAGTGGAATTGATGAACATGCAGCTGGAGCATGTGCTGAACTTGTTTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCT;1;1;29;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_2267_Treesnips_44-6-2;A;SNP;2267;GAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCCTGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTAC;CAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTATACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGTTAACATTATCAACAACTTTGATGGGCAGCTTTGCAGTGGAATTGATGAACATGCAGCTGGAGCATGTGCTGAACTTGTTTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCT;1;1;30;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2267_Treesnips_44-3-1;A;SNP;2267;GAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCTTGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTAC;CAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTATACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGTTAACATTATCAACAACTTTGATGGGCAGCTTTGCAGTGGAATTGATGAACATGCAGCTGGAGCATGTGCTGAACTTGTTTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCT;1;1;31;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_2267_Treesnips_44-5-2;A;SNP;2267;GAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCCTGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTAC;CAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTATACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGTTAACATTATCAACAACTTTGATGGGCAGCTTTGCAGTGGAATTGATGAACATGCAGCTGGAGCATGTGCTGAACTTGTTTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCT;1;1;32;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2267_Treesnips_44-7-1;A;SNP;2267;GAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCTTGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTAC;CAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTATACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGTTAACATTATCAACAACTTTGATGGGCAGCTTTGCAGTGGAATTGATGAACATGCAGCTGGAGCATGTGCTGAACTTGTTTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCT;1;1;33;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_2267_Treesnips_44-10-2;A;SNP;2267;GAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCTTGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTAC;CAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTATACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGTTAACATTATCAACAACTTTGATGGGCAGCTTTGCAGTGGAATTGATGAACATGCAGCTGGAGCATGTGCTGAACTTGTTTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCT;1;1;34;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_2267_Treesnips_45-5-3;A;SNP;2267;GAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCTTGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTAC;CAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTATACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGTTAACATTATCAACAACTTTGATGGGCAGCTTTGCAGTGGAATTGATGAACATGCAGCTGGAGCATGTGCTGAACTTGTTTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCT;1;1;35;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_2267_Treesnips_45-8-3;A;SNP;2267;GAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCCTGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTAC;CAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTATACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGTTAACATTATCAACAACTTTGATGGGCAGCTTTGCAGTGGAATTGATGAACATGCAGCTGGAGCATGTGCTGAACTTGTTTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCT;1;1;36;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2267_Treesnips_45-1-1;A;SNP;2267;GAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCCTGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTAC;CAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTATACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGTTAACATTATCAACAACTTTGATGGGCAGCTTTGCAGTGGAATTGATGAACATGCAGCTGGAGCATGTGCTGAACTTGTTTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCT;1;1;37;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2267_Treesnips_45-4-1;A;SNP;2267;GAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCTTGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTAC;CAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTATACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGTTAACATTATCAACAACTTTGATGGGCAGCTTTGCAGTGGAATTGATGAACATGCAGCTGGAGCATGTGCTGAACTTGTTTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCT;1;1;38;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_2267_Treesnips_45-7-1;A;SNP;2267;GAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCCTGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTAC;CAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTATACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGTTAACATTATCAACAACTTTGATGGGCAGCTTTGCAGTGGAATTGATGAACATGCAGCTGGAGCATGTGCTGAACTTGTTTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCT;1;1;39;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2267_Treesnips_45-9-1;A;SNP;2267;GAGTCAAGTAATCCTTCCCTTGGCACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCCTGGTTTTGTATTTTGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTATATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATGTAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTAC;CAGGAGGAAGCTGTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTATACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGTTAACATTATCAACAACTTTGATGGGCAGCTTTGCAGTGGAATTGATGAACATGCAGCTGGAGCATGTGCTGAACTTGTTTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCT;1;1;40;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2716_Treesnips_40-4-3;A;SNP;2716;TTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCG;ACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTC;1;1;1;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_2716_Treesnips_40-8-3;A;SNP;2716;TTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCG;ACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTC;1;1;2;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_2716_Treesnips_40-1-2;A;SNP;2716;TTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCG;ACATTGGACTTGGCTTCTGCTCTTGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACCATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTC;1;1;3;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_2716_Treesnips_40-14-1;A;SNP;2716;TTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCG;ACATTGGACTTGGCTTCTGCTCTTGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACCATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTC;1;1;4;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_2716_Treesnips_40-15-2;A;SNP;2716;TTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCG;ACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTC;1;1;5;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_2716_Treesnips_40-20-2;A;SNP;2716;TTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCG;ACATTGGACTTGGCTTCTGCTCTTGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTC;1;1;6;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_2716_Treesnips_40-25-1;A;SNP;2716;TTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCG;ACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTC;1;1;7;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_2716_Treesnips_41-3-3;A;SNP;2716;TTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCG;ACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTC;1;1;8;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_2716_Treesnips_41-8-1;A;SNP;2716;TTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCG;ACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTC;1;1;9;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_2716_Treesnips_41-1-3;A;SNP;2716;TTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCG;ACATTGGACTTGGCTTCTGCTCTTGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTC;1;1;10;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_2716_Treesnips_41-2-1;A;SNP;2716;TTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCG;ACATTGGACTTGGCTTCTGCTCTTGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTC;1;1;11;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_2716_Treesnips_41-3-2;A;SNP;2716;TTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCG;ACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTC;1;1;12;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_2716_Treesnips_41-6-2;A;SNP;2716;TTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCG;ACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTC;1;1;13;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_2716_Treesnips_41-9-1;A;SNP;2716;TTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCG;ACATTGGACTTGGCTTCTGCTCTTGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACCATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTC;1;1;14;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_2716_Treesnips_42-1-3;A;SNP;2716;TTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCG;ACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTC;1;1;15;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_2716_Treesnips_42-8-2;A;SNP;2716;TTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCG;ACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTC;1;1;16;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_2716_Treesnips_42-1-2;A;SNP;2716;TTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCG;ACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTC;1;1;17;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_2716_Treesnips_42-2-1;A;SNP;2716;TTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCG;ACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTC;1;1;18;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_2716_Treesnips_42-2-2;A;SNP;2716;TTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCG;ACATTGGACTTGGCTTCTGCTCTTGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTC;1;1;19;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_2716_Treesnips_42-8-1;A;SNP;2716;TTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCG;ACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTC;1;1;20;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_2716_Treesnips_42-9-2;A;SNP;2716;TTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCG;ACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTC;1;1;21;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_2716_Treesnips_43-4-3;A;SNP;2716;TTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCG;ACATTGGACTTGGCTTCTGCTCTTGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTC;1;1;22;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_2716_Treesnips_43-5-3;A;SNP;2716;TTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCG;ACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTC;1;1;23;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_2716_Treesnips_43-1-1;A;SNP;2716;TTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCG;ACATTGGACTTGGCTTCTGCTCTTGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACCATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTC;1;1;24;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_2716_Treesnips_43-2-1;A;SNP;2716;TTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCG;ACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTC;1;1;25;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_2716_Treesnips_43-7-2;A;SNP;2716;TTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCG;ACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTC;1;1;26;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_2716_Treesnips_43-9-3;A;SNP;2716;TTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCG;ACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTC;1;1;27;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_2716_Treesnips_43-10-2;A;SNP;2716;TTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCG;ACATTGGACTTGGCTTCTGCTCTTGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACCATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTC;1;1;28;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_2716_Treesnips_44-3-3;A;SNP;2716;TTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCG;ACATTGGACTTGGCTTCTGCTCTTGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGTTTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTC;1;1;29;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_2716_Treesnips_44-6-2;A;SNP;2716;TTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCG;ACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTC;1;1;30;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_2716_Treesnips_44-3-1;A;SNP;2716;TTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCG;ACATTGGACTTGGCTTCTGCTCTTGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGTTTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTC;1;1;31;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_2716_Treesnips_44-5-2;A;SNP;2716;TTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCG;ACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTC;1;1;32;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_2716_Treesnips_44-7-1;A;SNP;2716;TTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCG;ACATTGGACTTGGCTTCTGCTCTTGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACCATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTC;1;1;33;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_2716_Treesnips_44-10-2;A;SNP;2716;TTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCG;ACATTGGACTTGGCTTCTGCTCTTGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTC;1;1;34;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_2716_Treesnips_45-5-3;A;SNP;2716;TTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCG;ACATTGGACTTGGCTTCTGCTCTTGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTC;1;1;35;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_2716_Treesnips_45-8-3;A;SNP;2716;TTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCG;ACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTC;1;1;36;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_2716_Treesnips_45-1-1;A;SNP;2716;TTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCG;ACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTC;1;1;37;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_2716_Treesnips_45-4-1;A;SNP;2716;TTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCG;ACATTGGACTTGGCTTCTGCTCTTGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTC;1;1;38;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_2716_Treesnips_45-7-1;A;SNP;2716;TTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCG;ACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTC;1;1;39;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_2716_Treesnips_45-9-1;A;SNP;2716;TTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCG;ACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTC;1;1;40;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_2720_Treesnips_40-4-3;A;SNP;2720;GCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACA;TGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGG;1;1;1;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_2720_Treesnips_40-8-3;A;SNP;2720;GCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACA;TGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGG;1;1;2;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_2720_Treesnips_40-1-2;A;SNP;2720;GCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGGACA;TGGACTTGGCTTCTGCTCTTGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACCATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGG;1;1;3;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2720_Treesnips_40-14-1;A;SNP;2720;GCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGGACA;TGGACTTGGCTTCTGCTCTTGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACCATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGG;1;1;4;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2720_Treesnips_40-15-2;A;SNP;2720;GCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACA;TGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGG;1;1;5;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_2720_Treesnips_40-20-2;A;SNP;2720;GCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGGACA;TGGACTTGGCTTCTGCTCTTGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGG;1;1;6;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2720_Treesnips_40-25-1;A;SNP;2720;GCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACA;TGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGG;1;1;7;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_2720_Treesnips_41-3-3;A;SNP;2720;GCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACA;TGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGG;1;1;8;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_2720_Treesnips_41-8-1;A;SNP;2720;GCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACA;TGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGG;1;1;9;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_2720_Treesnips_41-1-3;A;SNP;2720;GCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGGACA;TGGACTTGGCTTCTGCTCTTGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGG;1;1;10;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2720_Treesnips_41-2-1;A;SNP;2720;GCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGGACA;TGGACTTGGCTTCTGCTCTTGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGG;1;1;11;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2720_Treesnips_41-3-2;A;SNP;2720;GCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACA;TGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGG;1;1;12;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_2720_Treesnips_41-6-2;A;SNP;2720;GCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACA;TGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGG;1;1;13;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_2720_Treesnips_41-9-1;A;SNP;2720;GCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGGACA;TGGACTTGGCTTCTGCTCTTGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACCATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGG;1;1;14;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2720_Treesnips_42-1-3;A;SNP;2720;GCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACA;TGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGG;1;1;15;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_2720_Treesnips_42-8-2;A;SNP;2720;GCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACA;TGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGG;1;1;16;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_2720_Treesnips_42-1-2;A;SNP;2720;GCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACA;TGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGG;1;1;17;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_2720_Treesnips_42-2-1;A;SNP;2720;GCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACA;TGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGG;1;1;18;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_2720_Treesnips_42-2-2;A;SNP;2720;GCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGGACA;TGGACTTGGCTTCTGCTCTTGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGG;1;1;19;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2720_Treesnips_42-8-1;A;SNP;2720;GCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACA;TGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGG;1;1;20;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_2720_Treesnips_42-9-2;A;SNP;2720;GCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACA;TGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGG;1;1;21;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_2720_Treesnips_43-4-3;A;SNP;2720;GCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGGACA;TGGACTTGGCTTCTGCTCTTGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGG;1;1;22;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2720_Treesnips_43-5-3;A;SNP;2720;GCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACA;TGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGG;1;1;23;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_2720_Treesnips_43-1-1;A;SNP;2720;GCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGGACA;TGGACTTGGCTTCTGCTCTTGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACCATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGG;1;1;24;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2720_Treesnips_43-2-1;A;SNP;2720;GCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACA;TGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGG;1;1;25;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_2720_Treesnips_43-7-2;A;SNP;2720;GCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACA;TGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGG;1;1;26;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_2720_Treesnips_43-9-3;A;SNP;2720;GCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACA;TGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGG;1;1;27;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_2720_Treesnips_43-10-2;A;SNP;2720;GCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGGACA;TGGACTTGGCTTCTGCTCTTGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACCATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGG;1;1;28;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2720_Treesnips_44-3-3;A;SNP;2720;GCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGGACA;TGGACTTGGCTTCTGCTCTTGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGTTTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGG;1;1;29;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2720_Treesnips_44-6-2;A;SNP;2720;GCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACA;TGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGG;1;1;30;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_2720_Treesnips_44-3-1;A;SNP;2720;GCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGGACA;TGGACTTGGCTTCTGCTCTTGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGTTTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGG;1;1;31;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2720_Treesnips_44-5-2;A;SNP;2720;GCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACA;TGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGG;1;1;32;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_2720_Treesnips_44-7-1;A;SNP;2720;GCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGGACA;TGGACTTGGCTTCTGCTCTTGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACCATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGG;1;1;33;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2720_Treesnips_44-10-2;A;SNP;2720;GCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGGACA;TGGACTTGGCTTCTGCTCTTGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGG;1;1;34;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2720_Treesnips_45-5-3;A;SNP;2720;GCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGGACA;TGGACTTGGCTTCTGCTCTTGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGG;1;1;35;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2720_Treesnips_45-8-3;A;SNP;2720;GCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACA;TGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGG;1;1;36;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_2720_Treesnips_45-1-1;A;SNP;2720;GCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACA;TGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGG;1;1;37;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_2720_Treesnips_45-4-1;A;SNP;2720;GCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGGACA;TGGACTTGGCTTCTGCTCTTGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGG;1;1;38;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2720_Treesnips_45-7-1;A;SNP;2720;GCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACA;TGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGG;1;1;39;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_2720_Treesnips_45-9-1;A;SNP;2720;GCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACA;TGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGG;1;1;40;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_2740_Treesnips_40-4-3;A;SNP;2740;TGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCT;GAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTC;1;1;1;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_2740_Treesnips_40-8-3;A;SNP;2740;TGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCT;GAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTC;1;1;2;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_2740_Treesnips_40-1-2;A;SNP;2740;TGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGGACATTGGACTTGGCTTCTGCTCT;GAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACCATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTC;1;1;3;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2740_Treesnips_40-14-1;A;SNP;2740;TGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGGACATTGGACTTGGCTTCTGCTCT;GAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACCATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTC;1;1;4;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2740_Treesnips_40-15-2;A;SNP;2740;TGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCT;GAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTC;1;1;5;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_2740_Treesnips_40-20-2;A;SNP;2740;TGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGGACATTGGACTTGGCTTCTGCTCT;GAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTC;1;1;6;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2740_Treesnips_40-25-1;A;SNP;2740;TGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCT;GAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTC;1;1;7;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_2740_Treesnips_41-3-3;A;SNP;2740;TGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCT;GAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTC;1;1;8;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_2740_Treesnips_41-8-1;A;SNP;2740;TGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCT;GAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTC;1;1;9;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_2740_Treesnips_41-1-3;A;SNP;2740;TGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGGACATTGGACTTGGCTTCTGCTCT;GAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTC;1;1;10;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2740_Treesnips_41-2-1;A;SNP;2740;TGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGGACATTGGACTTGGCTTCTGCTCT;GAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTC;1;1;11;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2740_Treesnips_41-3-2;A;SNP;2740;TGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCT;GAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTC;1;1;12;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_2740_Treesnips_41-6-2;A;SNP;2740;TGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCT;GAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTC;1;1;13;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_2740_Treesnips_41-9-1;A;SNP;2740;TGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGGACATTGGACTTGGCTTCTGCTCT;GAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACCATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTC;1;1;14;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2740_Treesnips_42-1-3;A;SNP;2740;TGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCT;GAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTC;1;1;15;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_2740_Treesnips_42-8-2;A;SNP;2740;TGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCT;GAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTC;1;1;16;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_2740_Treesnips_42-1-2;A;SNP;2740;TGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCT;GAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTC;1;1;17;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_2740_Treesnips_42-2-1;A;SNP;2740;TGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCT;GAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTC;1;1;18;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_2740_Treesnips_42-2-2;A;SNP;2740;TGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGGACATTGGACTTGGCTTCTGCTCT;GAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTC;1;1;19;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2740_Treesnips_42-8-1;A;SNP;2740;TGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCT;GAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTC;1;1;20;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_2740_Treesnips_42-9-2;A;SNP;2740;TGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCT;GAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTC;1;1;21;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_2740_Treesnips_43-4-3;A;SNP;2740;TGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGGACATTGGACTTGGCTTCTGCTCT;GAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTC;1;1;22;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2740_Treesnips_43-5-3;A;SNP;2740;TGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCT;GAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTC;1;1;23;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_2740_Treesnips_43-1-1;A;SNP;2740;TGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGGACATTGGACTTGGCTTCTGCTCT;GAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACCATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTC;1;1;24;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2740_Treesnips_43-2-1;A;SNP;2740;TGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCT;GAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTC;1;1;25;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_2740_Treesnips_43-7-2;A;SNP;2740;TGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCT;GAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTC;1;1;26;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_2740_Treesnips_43-9-3;A;SNP;2740;TGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCT;GAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTC;1;1;27;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_2740_Treesnips_43-10-2;A;SNP;2740;TGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGGACATTGGACTTGGCTTCTGCTCT;GAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACCATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTC;1;1;28;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2740_Treesnips_44-3-3;A;SNP;2740;TGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGGACATTGGACTTGGCTTCTGCTCT;GAGGTTGGATCAACTGGAACTAGAACGTCTGGTGTTTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTC;1;1;29;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2740_Treesnips_44-6-2;A;SNP;2740;TGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCT;GAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTC;1;1;30;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_2740_Treesnips_44-3-1;A;SNP;2740;TGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGGACATTGGACTTGGCTTCTGCTCT;GAGGTTGGATCAACTGGAACTAGAACGTCTGGTGTTTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTC;1;1;31;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2740_Treesnips_44-5-2;A;SNP;2740;TGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCT;GAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTC;1;1;32;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_2740_Treesnips_44-7-1;A;SNP;2740;TGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGGACATTGGACTTGGCTTCTGCTCT;GAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACCATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTC;1;1;33;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2740_Treesnips_44-10-2;A;SNP;2740;TGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGGACATTGGACTTGGCTTCTGCTCT;GAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTC;1;1;34;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2740_Treesnips_45-5-3;A;SNP;2740;TGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGGACATTGGACTTGGCTTCTGCTCT;GAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTC;1;1;35;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2740_Treesnips_45-8-3;A;SNP;2740;TGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCT;GAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTC;1;1;36;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_2740_Treesnips_45-1-1;A;SNP;2740;TGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCT;GAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTC;1;1;37;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_2740_Treesnips_45-4-1;A;SNP;2740;TGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGGACATTGGACTTGGCTTCTGCTCT;GAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTC;1;1;38;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2740_Treesnips_45-7-1;A;SNP;2740;TGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCT;GAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTC;1;1;39;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_2740_Treesnips_45-9-1;A;SNP;2740;TGCTGATGATGCTCCTTTGCTTCCTTCTGGGTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCT;GAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTC;1;1;40;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_2775_Treesnips_40-4-3;A;SNP;2775;GGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTG;TTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATA;1;1;1;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_2775_Treesnips_40-8-3;A;SNP;2775;GGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTG;TTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATA;1;1;2;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_2775_Treesnips_40-1-2;A;SNP;2775;GGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGGACATTGGACTTGGCTTCTGCTCTTGAGGTTGGATCAACTGGAACTAGAACGTCTGGTG;TTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACCATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATA;1;1;3;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_2775_Treesnips_40-14-1;A;SNP;2775;GGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGGACATTGGACTTGGCTTCTGCTCTTGAGGTTGGATCAACTGGAACTAGAACGTCTGGTG;TTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACCATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATA;1;1;4;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_2775_Treesnips_40-15-2;A;SNP;2775;GGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTG;TTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATA;1;1;5;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_2775_Treesnips_40-20-2;A;SNP;2775;GGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGGACATTGGACTTGGCTTCTGCTCTTGAGGTTGGATCAACTGGAACTAGAACGTCTGGTG;TTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATA;1;1;6;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_2775_Treesnips_40-25-1;A;SNP;2775;GGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTG;TTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATA;1;1;7;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_2775_Treesnips_41-3-3;A;SNP;2775;GGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTG;TTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATA;1;1;8;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_2775_Treesnips_41-8-1;A;SNP;2775;GGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTG;TTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATA;1;1;9;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_2775_Treesnips_41-1-3;A;SNP;2775;GGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGGACATTGGACTTGGCTTCTGCTCTTGAGGTTGGATCAACTGGAACTAGAACGTCTGGTG;TTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATA;1;1;10;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_2775_Treesnips_41-2-1;A;SNP;2775;GGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGGACATTGGACTTGGCTTCTGCTCTTGAGGTTGGATCAACTGGAACTAGAACGTCTGGTG;TTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATA;1;1;11;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_2775_Treesnips_41-3-2;A;SNP;2775;GGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTG;TTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATA;1;1;12;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_2775_Treesnips_41-6-2;A;SNP;2775;GGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTG;TTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATA;1;1;13;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_2775_Treesnips_41-9-1;A;SNP;2775;GGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGGACATTGGACTTGGCTTCTGCTCTTGAGGTTGGATCAACTGGAACTAGAACGTCTGGTG;TTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACCATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATA;1;1;14;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_2775_Treesnips_42-1-3;A;SNP;2775;GGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTG;TTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATA;1;1;15;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_2775_Treesnips_42-8-2;A;SNP;2775;GGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTG;TTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATA;1;1;16;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_2775_Treesnips_42-1-2;A;SNP;2775;GGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTG;TTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATA;1;1;17;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_2775_Treesnips_42-2-1;A;SNP;2775;GGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTG;TTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATA;1;1;18;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_2775_Treesnips_42-2-2;A;SNP;2775;GGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGGACATTGGACTTGGCTTCTGCTCTTGAGGTTGGATCAACTGGAACTAGAACGTCTGGTG;TTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATA;1;1;19;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_2775_Treesnips_42-8-1;A;SNP;2775;GGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTG;TTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATA;1;1;20;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_2775_Treesnips_42-9-2;A;SNP;2775;GGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTG;TTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATA;1;1;21;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_2775_Treesnips_43-4-3;A;SNP;2775;GGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGGACATTGGACTTGGCTTCTGCTCTTGAGGTTGGATCAACTGGAACTAGAACGTCTGGTG;TTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATA;1;1;22;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_2775_Treesnips_43-5-3;A;SNP;2775;GGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTG;TTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATA;1;1;23;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_2775_Treesnips_43-1-1;A;SNP;2775;GGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGGACATTGGACTTGGCTTCTGCTCTTGAGGTTGGATCAACTGGAACTAGAACGTCTGGTG;TTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACCATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATA;1;1;24;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_2775_Treesnips_43-2-1;A;SNP;2775;GGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTG;TTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATA;1;1;25;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_2775_Treesnips_43-7-2;A;SNP;2775;GGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTG;TTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATA;1;1;26;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_2775_Treesnips_43-9-3;A;SNP;2775;GGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTG;TTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATA;1;1;27;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_2775_Treesnips_43-10-2;A;SNP;2775;GGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGGACATTGGACTTGGCTTCTGCTCTTGAGGTTGGATCAACTGGAACTAGAACGTCTGGTG;TTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACCATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATA;1;1;28;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_2775_Treesnips_44-3-3;A;SNP;2775;GGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGGACATTGGACTTGGCTTCTGCTCTTGAGGTTGGATCAACTGGAACTAGAACGTCTGGTG;TTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATA;1;1;29;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2775_Treesnips_44-6-2;A;SNP;2775;GGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTG;TTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATA;1;1;30;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_2775_Treesnips_44-3-1;A;SNP;2775;GGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGGACATTGGACTTGGCTTCTGCTCTTGAGGTTGGATCAACTGGAACTAGAACGTCTGGTG;TTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATA;1;1;31;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2775_Treesnips_44-5-2;A;SNP;2775;GGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTG;TTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATA;1;1;32;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_2775_Treesnips_44-7-1;A;SNP;2775;GGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGGACATTGGACTTGGCTTCTGCTCTTGAGGTTGGATCAACTGGAACTAGAACGTCTGGTG;TTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACCATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATA;1;1;33;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_2775_Treesnips_44-10-2;A;SNP;2775;GGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGGACATTGGACTTGGCTTCTGCTCTTGAGGTTGGATCAACTGGAACTAGAACGTCTGGTG;TTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATA;1;1;34;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_2775_Treesnips_45-5-3;A;SNP;2775;GGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGGACATTGGACTTGGCTTCTGCTCTTGAGGTTGGATCAACTGGAACTAGAACGTCTGGTG;TTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATA;1;1;35;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_2775_Treesnips_45-8-3;A;SNP;2775;GGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTG;TTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATA;1;1;36;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_2775_Treesnips_45-1-1;A;SNP;2775;GGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTG;TTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATA;1;1;37;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_2775_Treesnips_45-4-1;A;SNP;2775;GGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGGACATTGGACTTGGCTTCTGCTCTTGAGGTTGGATCAACTGGAACTAGAACGTCTGGTG;TTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATA;1;1;38;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_2775_Treesnips_45-7-1;A;SNP;2775;GGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTG;TTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATA;1;1;39;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_2775_Treesnips_45-9-1;A;SNP;2775;GGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTG;TTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATA;1;1;40;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_2812_Treesnips_40-4-3;A;SNP;2812;TCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGAC;ATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTC;1;1;1;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2812_Treesnips_40-8-3;A;SNP;2812;TCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGAC;ATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTC;1;1;2;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2812_Treesnips_40-1-2;A;SNP;2812;TCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGGACATTGGACTTGGCTTCTGCTCTTGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGAC;ATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTC;1;1;3;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_2812_Treesnips_40-14-1;A;SNP;2812;TCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGGACATTGGACTTGGCTTCTGCTCTTGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGAC;ATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTC;1;1;4;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_2812_Treesnips_40-15-2;A;SNP;2812;TCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGAC;ATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTC;1;1;5;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2812_Treesnips_40-20-2;A;SNP;2812;TCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGGACATTGGACTTGGCTTCTGCTCTTGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGAC;ATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTC;1;1;6;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2812_Treesnips_40-25-1;A;SNP;2812;TCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGAC;ATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTC;1;1;7;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2812_Treesnips_41-3-3;A;SNP;2812;TCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGAC;ATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTC;1;1;8;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2812_Treesnips_41-8-1;A;SNP;2812;TCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGAC;ATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTC;1;1;9;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2812_Treesnips_41-1-3;A;SNP;2812;TCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGGACATTGGACTTGGCTTCTGCTCTTGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGAC;ATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTC;1;1;10;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2812_Treesnips_41-2-1;A;SNP;2812;TCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGGACATTGGACTTGGCTTCTGCTCTTGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGAC;ATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTC;1;1;11;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2812_Treesnips_41-3-2;A;SNP;2812;TCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGAC;ATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTC;1;1;12;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2812_Treesnips_41-6-2;A;SNP;2812;TCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGAC;ATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTC;1;1;13;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2812_Treesnips_41-9-1;A;SNP;2812;TCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGGACATTGGACTTGGCTTCTGCTCTTGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGAC;ATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTC;1;1;14;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_2812_Treesnips_42-1-3;A;SNP;2812;TCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGAC;ATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTC;1;1;15;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2812_Treesnips_42-8-2;A;SNP;2812;TCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGAC;ATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTC;1;1;16;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2812_Treesnips_42-1-2;A;SNP;2812;TCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGAC;ATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTC;1;1;17;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2812_Treesnips_42-2-1;A;SNP;2812;TCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGAC;ATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTC;1;1;18;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2812_Treesnips_42-2-2;A;SNP;2812;TCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGGACATTGGACTTGGCTTCTGCTCTTGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGAC;ATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTC;1;1;19;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2812_Treesnips_42-8-1;A;SNP;2812;TCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGAC;ATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTC;1;1;20;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2812_Treesnips_42-9-2;A;SNP;2812;TCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGAC;ATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTC;1;1;21;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2812_Treesnips_43-4-3;A;SNP;2812;TCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGGACATTGGACTTGGCTTCTGCTCTTGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGAC;ATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTC;1;1;22;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2812_Treesnips_43-5-3;A;SNP;2812;TCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGAC;ATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTC;1;1;23;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2812_Treesnips_43-1-1;A;SNP;2812;TCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGGACATTGGACTTGGCTTCTGCTCTTGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGAC;ATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTC;1;1;24;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_2812_Treesnips_43-2-1;A;SNP;2812;TCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGAC;ATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTC;1;1;25;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2812_Treesnips_43-7-2;A;SNP;2812;TCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGAC;ATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTC;1;1;26;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2812_Treesnips_43-9-3;A;SNP;2812;TCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGAC;ATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTC;1;1;27;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2812_Treesnips_43-10-2;A;SNP;2812;TCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGGACATTGGACTTGGCTTCTGCTCTTGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGAC;ATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTC;1;1;28;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_2812_Treesnips_44-3-3;A;SNP;2812;TCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGGACATTGGACTTGGCTTCTGCTCTTGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGTTTCTGGCACCAACTCGAATCTGAGATCTGTGTTGAC;ATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTC;1;1;29;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2812_Treesnips_44-6-2;A;SNP;2812;TCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGAC;ATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTC;1;1;30;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2812_Treesnips_44-3-1;A;SNP;2812;TCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGGACATTGGACTTGGCTTCTGCTCTTGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGTTTCTGGCACCAACTCGAATCTGAGATCTGTGTTGAC;ATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTC;1;1;31;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2812_Treesnips_44-5-2;A;SNP;2812;TCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGAC;ATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTC;1;1;32;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2812_Treesnips_44-7-1;A;SNP;2812;TCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGGACATTGGACTTGGCTTCTGCTCTTGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGAC;ATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTC;1;1;33;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_2812_Treesnips_44-10-2;A;SNP;2812;TCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGGACATTGGACTTGGCTTCTGCTCTTGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGAC;ATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTC;1;1;34;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2812_Treesnips_45-5-3;A;SNP;2812;TCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGGACATTGGACTTGGCTTCTGCTCTTGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGAC;ATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTC;1;1;35;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2812_Treesnips_45-8-3;A;SNP;2812;TCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGAC;ATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTC;1;1;36;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2812_Treesnips_45-1-1;A;SNP;2812;TCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGAC;ATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTC;1;1;37;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2812_Treesnips_45-4-1;A;SNP;2812;TCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGGACATTGGACTTGGCTTCTGCTCTTGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGAC;ATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTC;1;1;38;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2812_Treesnips_45-7-1;A;SNP;2812;TCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGAC;ATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTC;1;1;39;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_2812_Treesnips_45-9-1;A;SNP;2812;TCTGCAAACGTTTATGGCATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGCTGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGATCTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAACTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGAC;ATTGCATTCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTC;1;1;40;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_3124_Treesnips_40-4-3;A;SNP;3124;AATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACT;CACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTG;1;1;1;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_3124_Treesnips_40-8-3;A;SNP;3124;AATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACT;CACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTG;1;1;2;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_3124_Treesnips_40-1-2;A;SNP;3124;AATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACT;CACATAGGGGTGGATCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA-TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTAGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTG;1;1;3;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_3124_Treesnips_40-14-1;A;SNP;3124;AATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACT;CACATAGGGGTGGATCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA-TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTAGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTG;1;1;4;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_3124_Treesnips_40-15-2;A;SNP;3124;AATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACT;CACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTG;1;1;5;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_3124_Treesnips_40-20-2;A;SNP;3124;AATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACT;CACATAGGGGTGGATCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA-TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTAGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTG;1;1;6;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_3124_Treesnips_40-25-1;A;SNP;3124;AATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACT;CACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCNNNNNNNNNNNNNNNN;1;1;7;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_3124_Treesnips_41-3-3;A;SNP;3124;AATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACT;CACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTG;1;1;8;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_3124_Treesnips_41-8-1;A;SNP;3124;AATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACT;CACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTG;1;1;9;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_3124_Treesnips_41-1-3;A;SNP;3124;AATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACT;CACATAGGGGTGGATCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA-TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTAGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTG;1;1;10;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_3124_Treesnips_41-2-1;A;SNP;3124;AATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACT;CACATAGGGGTGGATCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA-TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTAGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTG;1;1;11;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_3124_Treesnips_41-3-2;A;SNP;3124;AATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACT;CACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTG;1;1;12;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_3124_Treesnips_41-6-2;A;SNP;3124;AATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACT;CACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTG;1;1;13;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_3124_Treesnips_41-9-1;A;SNP;3124;AATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACT;CACATAGGGGTGGATCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA-TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTAGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTG;1;1;14;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_3124_Treesnips_42-1-3;A;SNP;3124;AATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACT;CACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTG;1;1;15;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_3124_Treesnips_42-8-2;A;SNP;3124;AATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACT;CACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTG;1;1;16;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_3124_Treesnips_42-1-2;A;SNP;3124;AATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACT;CACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTG;1;1;17;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_3124_Treesnips_42-2-1;A;SNP;3124;AATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACT;CACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTG;1;1;18;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_3124_Treesnips_42-2-2;A;SNP;3124;AATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACT;CACATAGGGGTGGATCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA-TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTAGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTG;1;1;19;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_3124_Treesnips_42-8-1;A;SNP;3124;AATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACT;CACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTG;1;1;20;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_3124_Treesnips_42-9-2;A;SNP;3124;AATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACT;CACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTG;1;1;21;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_3124_Treesnips_43-4-3;A;SNP;3124;AATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACT;CACATAGGGGTGGATCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA-TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTG;1;1;22;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_3124_Treesnips_43-5-3;A;SNP;3124;AATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACT;CACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTG;1;1;23;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_3124_Treesnips_43-1-1;A;SNP;3124;AATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACT;CACATAGGGGTGGATCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA-TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTAGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTG;1;1;24;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_3124_Treesnips_43-2-1;A;SNP;3124;AATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACT;CACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTG;1;1;25;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_3124_Treesnips_43-7-2;A;SNP;3124;AATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACT;CACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTG;1;1;26;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_3124_Treesnips_43-9-3;A;SNP;3124;AATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACT;CACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTG;1;1;27;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_3124_Treesnips_43-10-2;A;SNP;3124;AATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACT;CACATAGGGGTGGATCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA-TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTAGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTG;1;1;28;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_3124_Treesnips_44-3-3;A;SNP;3124;AATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACT;CACATAGGGGTGGATCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA-TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTAGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTG;1;1;29;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_3124_Treesnips_44-6-2;A;SNP;3124;AATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACT;CACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTG;1;1;30;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_3124_Treesnips_44-3-1;A;SNP;3124;AATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACT;CACATAGGGGTGGATCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA-TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTAGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTG;1;1;31;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_3124_Treesnips_44-5-2;A;SNP;3124;AATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACT;CACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTG;1;1;32;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_3124_Treesnips_44-7-1;A;SNP;3124;AATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACT;CACATAGGGGTGGATCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA-TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTAGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTG;1;1;33;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_3124_Treesnips_44-10-2;A;SNP;3124;AATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACT;CACATAGGGGTGGATCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA-TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTAGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTG;1;1;34;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_3124_Treesnips_45-5-3;A;SNP;3124;AATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACT;CACATAGGGGTGGATCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA-TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTAGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTG;1;1;35;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_3124_Treesnips_45-8-3;A;SNP;3124;AATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACT;CACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTG;1;1;36;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_3124_Treesnips_45-1-1;A;SNP;3124;AATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACT;CACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;1;37;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_3124_Treesnips_45-4-1;A;SNP;3124;AATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACT;CACATAGGGGTGGATCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA-TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTAGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTG;1;1;38;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_3124_Treesnips_45-7-1;A;SNP;3124;AATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACT;CACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTG;1;1;39;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_3124_Treesnips_45-9-1;A;SNP;3124;AATATGTGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACT;CACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTG;1;1;40;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_3133_Treesnips_40-4-3;A;SNP;3133;GTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGG;GTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTG;1;1;1;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_3133_Treesnips_40-8-3;A;SNP;3133;GTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGG;GTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTG;1;1;2;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_3133_Treesnips_40-1-2;A;SNP;3133;GTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTACACATAGG;GTGGATCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA-TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTAGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTG;1;1;3;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_3133_Treesnips_40-14-1;A;SNP;3133;GTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTACACATAGG;GTGGATCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA-TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTAGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTG;1;1;4;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_3133_Treesnips_40-15-2;A;SNP;3133;GTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGG;GTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTG;1;1;5;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_3133_Treesnips_40-20-2;A;SNP;3133;GTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTACACATAGG;GTGGATCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA-TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTAGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTG;1;1;6;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_3133_Treesnips_40-25-1;A;SNP;3133;GTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGG;GTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCNNNNNNNNNNNNNNNNNNNNNNNNN;1;1;7;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_3133_Treesnips_41-3-3;A;SNP;3133;GTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGG;GTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTG;1;1;8;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_3133_Treesnips_41-8-1;A;SNP;3133;GTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGG;GTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTG;1;1;9;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_3133_Treesnips_41-1-3;A;SNP;3133;GTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTACACATAGG;GTGGATCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA-TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTAGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTG;1;1;10;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_3133_Treesnips_41-2-1;A;SNP;3133;GTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTACACATAGG;GTGGATCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA-TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTAGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTG;1;1;11;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_3133_Treesnips_41-3-2;A;SNP;3133;GTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGG;GTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTG;1;1;12;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_3133_Treesnips_41-6-2;A;SNP;3133;GTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGG;GTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTG;1;1;13;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_3133_Treesnips_41-9-1;A;SNP;3133;GTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTACACATAGG;GTGGATCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA-TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTAGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTG;1;1;14;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_3133_Treesnips_42-1-3;A;SNP;3133;GTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGG;GTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTG;1;1;15;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_3133_Treesnips_42-8-2;A;SNP;3133;GTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGG;GTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTG;1;1;16;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_3133_Treesnips_42-1-2;A;SNP;3133;GTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGG;GTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTG;1;1;17;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_3133_Treesnips_42-2-1;A;SNP;3133;GTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGG;GTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTG;1;1;18;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_3133_Treesnips_42-2-2;A;SNP;3133;GTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTACACATAGG;GTGGATCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA-TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTAGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTG;1;1;19;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_3133_Treesnips_42-8-1;A;SNP;3133;GTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGG;GTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTG;1;1;20;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_3133_Treesnips_42-9-2;A;SNP;3133;GTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGG;GTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTG;1;1;21;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_3133_Treesnips_43-4-3;A;SNP;3133;GTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTACACATAGG;GTGGATCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA-TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTG;1;1;22;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_3133_Treesnips_43-5-3;A;SNP;3133;GTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGG;GTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTG;1;1;23;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_3133_Treesnips_43-1-1;A;SNP;3133;GTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTACACATAGG;GTGGATCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA-TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTAGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTG;1;1;24;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_3133_Treesnips_43-2-1;A;SNP;3133;GTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGG;GTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTG;1;1;25;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_3133_Treesnips_43-7-2;A;SNP;3133;GTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGG;GTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTG;1;1;26;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_3133_Treesnips_43-9-3;A;SNP;3133;GTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGG;GTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTG;1;1;27;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_3133_Treesnips_43-10-2;A;SNP;3133;GTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTACACATAGG;GTGGATCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA-TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTAGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTG;1;1;28;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_3133_Treesnips_44-3-3;A;SNP;3133;GTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTACACATAGG;GTGGATCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA-TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTAGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTG;1;1;29;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_3133_Treesnips_44-6-2;A;SNP;3133;GTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGG;GTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTG;1;1;30;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_3133_Treesnips_44-3-1;A;SNP;3133;GTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTACACATAGG;GTGGATCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA-TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTAGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTG;1;1;31;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_3133_Treesnips_44-5-2;A;SNP;3133;GTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGG;GTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTG;1;1;32;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_3133_Treesnips_44-7-1;A;SNP;3133;GTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTACACATAGG;GTGGATCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA-TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTAGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCNN;1;1;33;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_3133_Treesnips_44-10-2;A;SNP;3133;GTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTACACATAGG;GTGGATCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA-TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTAGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTG;1;1;34;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_3133_Treesnips_45-5-3;A;SNP;3133;GTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTACACATAGG;GTGGATCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA-TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTAGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTG;1;1;35;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_3133_Treesnips_45-8-3;A;SNP;3133;GTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGG;GTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTG;1;1;36;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_3133_Treesnips_45-1-1;A;SNP;3133;GTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGG;GTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;1;37;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_3133_Treesnips_45-4-1;A;SNP;3133;GTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTACACATAGG;GTGGATCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA-TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTAGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTG;1;1;38;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_3133_Treesnips_45-7-1;A;SNP;3133;GTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGG;GTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTG;1;1;39;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_3133_Treesnips_45-9-1;A;SNP;3133;GTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGG;GTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTG;1;1;40;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_3139_Treesnips_40-4-3;A;SNP;3139;TTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGGTGTGGA;CTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACG;1;1;1;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_3139_Treesnips_40-8-3;A;SNP;3139;TTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGGTGTGGA;CTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACG;1;1;2;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_3139_Treesnips_40-1-2;A;SNP;3139;TTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTACACATAGGGGTGGA;CTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA-TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTAGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACG;1;1;3;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_3139_Treesnips_40-14-1;A;SNP;3139;TTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTACACATAGGGGTGGA;CTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA-TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTAGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACG;1;1;4;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_3139_Treesnips_40-15-2;A;SNP;3139;TTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGGTGTGGA;CTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACG;1;1;5;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_3139_Treesnips_40-20-2;A;SNP;3139;TTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTACACATAGGGGTGGA;CTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA-TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTAGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACG;1;1;6;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_3139_Treesnips_40-25-1;A;SNP;3139;TTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGGTGTGGA;CTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;1;7;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_3139_Treesnips_41-3-3;A;SNP;3139;TTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGGTGTGGA;CTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACG;1;1;8;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_3139_Treesnips_41-8-1;A;SNP;3139;TTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGGTGTGGA;CTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACG;1;1;9;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_3139_Treesnips_41-1-3;A;SNP;3139;TTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTACACATAGGGGTGGA;CTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA-TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTAGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACG;1;1;10;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_3139_Treesnips_41-2-1;A;SNP;3139;TTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTACACATAGGGGTGGA;CTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA-TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTAGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACG;1;1;11;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_3139_Treesnips_41-3-2;A;SNP;3139;TTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGGTGTGGA;CTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACG;1;1;12;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_3139_Treesnips_41-6-2;A;SNP;3139;TTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGGTGTGGA;CTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACG;1;1;13;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_3139_Treesnips_41-9-1;A;SNP;3139;TTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTACACATAGGGGTGGA;CTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA-TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTAGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACG;1;1;14;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_3139_Treesnips_42-1-3;A;SNP;3139;TTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGGTGTGGA;CTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACG;1;1;15;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_3139_Treesnips_42-8-2;A;SNP;3139;TTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGGTGTGGA;CTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACG;1;1;16;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_3139_Treesnips_42-1-2;A;SNP;3139;TTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGGTGTGGA;CTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACG;1;1;17;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_3139_Treesnips_42-2-1;A;SNP;3139;TTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGGTGTGGA;CTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACG;1;1;18;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_3139_Treesnips_42-2-2;A;SNP;3139;TTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTACACATAGGGGTGGA;CTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA-TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTAGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACG;1;1;19;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_3139_Treesnips_42-8-1;A;SNP;3139;TTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGGTGTGGA;CTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACG;1;1;20;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_3139_Treesnips_42-9-2;A;SNP;3139;TTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGGTGTGGA;CTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACG;1;1;21;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_3139_Treesnips_43-4-3;A;SNP;3139;TTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTACACATAGGGGTGGA;CTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA-TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACG;1;1;22;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_3139_Treesnips_43-5-3;A;SNP;3139;TTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGGTGTGGA;CTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACG;1;1;23;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_3139_Treesnips_43-1-1;A;SNP;3139;TTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTACACATAGGGGTGGA;CTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA-TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTAGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACG;1;1;24;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_3139_Treesnips_43-2-1;A;SNP;3139;TTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGGTGTGGA;CTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACG;1;1;25;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_3139_Treesnips_43-7-2;A;SNP;3139;TTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGGTGTGGA;CTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACG;1;1;26;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_3139_Treesnips_43-9-3;A;SNP;3139;TTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGGTGTGGA;CTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACG;1;1;27;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_3139_Treesnips_43-10-2;A;SNP;3139;TTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTACACATAGGGGTGGA;CTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA-TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTAGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACG;1;1;28;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_3139_Treesnips_44-3-3;A;SNP;3139;TTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTACACATAGGGGTGGA;CTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA-TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTAGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACG;1;1;29;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_3139_Treesnips_44-6-2;A;SNP;3139;TTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGGTGTGGA;CTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACG;1;1;30;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_3139_Treesnips_44-3-1;A;SNP;3139;TTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTACACATAGGGGTGGA;CTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA-TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTAGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACG;1;1;31;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_3139_Treesnips_44-5-2;A;SNP;3139;TTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGGTGTGGA;CTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACG;1;1;32;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_3139_Treesnips_44-7-1;A;SNP;3139;TTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTACACATAGGGGTGGA;CTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA-TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTAGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCNNNNNNNN;1;1;33;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_3139_Treesnips_44-10-2;A;SNP;3139;TTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTACACATAGGGGTGGA;CTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA-TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTAGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACG;1;1;34;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_3139_Treesnips_45-5-3;A;SNP;3139;TTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTACACATAGGGGTGGA;CTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA-TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTAGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACG;1;1;35;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_3139_Treesnips_45-8-3;A;SNP;3139;TTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGGTGTGGA;CTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACG;1;1;36;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_3139_Treesnips_45-1-1;A;SNP;3139;TTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGGTGTGGA;CTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;1;37;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_3139_Treesnips_45-4-1;A;SNP;3139;TTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTACACATAGGGGTGGA;CTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA-TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTAGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACG;1;1;38;Sequence;;;2 -INRA_Pinus_pinaster_HDZ31-1_SNP_3139_Treesnips_45-7-1;A;SNP;3139;TTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGGTGTGGA;CTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACG;1;1;39;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_SNP_3139_Treesnips_45-9-1;A;SNP;3139;TTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGAATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGGTGTGGA;CTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACG;1;1;40;Sequence;;;4 -INRA_Pinus_pinaster_HDZ31-1_DEL_3245_Treesnips_40-4-3;A;DELETION;3245;CCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA;TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTGGACAAAATTCTGGATGAAAATGGNNNNNNNNNNN;1;1;1;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_DEL_3245_Treesnips_40-8-3;A;DELETION;3245;CCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA;TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTGGACAAAATTCTGGATGAAAANNNNNNNNNNNNNN;1;1;2;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_DEL_3245_Treesnips_40-1-2;A;DELETION;3245;CCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTACACATAGGGGTGGATCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA;TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTAGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTGGACAAAATTCTGGATGAAAATGGNNNNNNNNNNN;1;1;3;Sequence;;;5 -INRA_Pinus_pinaster_HDZ31-1_DEL_3245_Treesnips_40-14-1;A;DELETION;3245;CCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTACACATAGGGGTGGATCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA;TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTAGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTGGACAAAATTCTGGATGAAAANNNNNNNNNNNNNN;1;1;4;Sequence;;;5 -INRA_Pinus_pinaster_HDZ31-1_DEL_3245_Treesnips_40-15-2;A;DELETION;3245;CCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA;TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTGGACAAAATTCTGGATGAAAATGGTCGCAAANNNN;1;1;5;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_DEL_3245_Treesnips_40-20-2;A;DELETION;3245;CCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTACACATAGGGGTGGATCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA;TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTAGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTGGACAAAATTCTGGATGAAAATGGNNNNNNNNNNN;1;1;6;Sequence;;;5 -INRA_Pinus_pinaster_HDZ31-1_DEL_3245_Treesnips_40-25-1;A;DELETION;3245;CCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA;TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;1;7;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_DEL_3245_Treesnips_41-3-3;A;DELETION;3245;CCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA;TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTGGACAAAATTCTGGATGAAAATGNNNNNNNNNNNN;1;1;8;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_DEL_3245_Treesnips_41-8-1;A;DELETION;3245;CCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA;TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTGGACAAAATTCTGGATGAAAANNNNNNNNNNNNNN;1;1;9;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_DEL_3245_Treesnips_41-1-3;A;DELETION;3245;CCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTACACATAGGGGTGGATCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA;TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTAGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTGGACAAAATTCTGGATGAAAANNNNNNNNNNNNNN;1;1;10;Sequence;;;5 -INRA_Pinus_pinaster_HDZ31-1_DEL_3245_Treesnips_41-2-1;A;DELETION;3245;CCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTACACATAGGGGTGGATCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA;TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTAGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTGGACAAAATTCTGGATGAAAATGNNNNNNNNNNNN;1;1;11;Sequence;;;5 -INRA_Pinus_pinaster_HDZ31-1_DEL_3245_Treesnips_41-3-2;A;DELETION;3245;CCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA;TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTGGACAAAATTCTGGATGAAAATGGNNNNNNNNNNN;1;1;12;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_DEL_3245_Treesnips_41-6-2;A;DELETION;3245;CCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA;TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTGGACAAAATTCTGGATGAAAATGGTCGCAAAAGTA;1;1;13;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_DEL_3245_Treesnips_41-9-1;A;DELETION;3245;CCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTACACATAGGGGTGGATCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA;TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTAGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTGGACAAAATTCTGGATGAAAATGGNNNNNNNNNNN;1;1;14;Sequence;;;5 -INRA_Pinus_pinaster_HDZ31-1_DEL_3245_Treesnips_42-1-3;A;DELETION;3245;CCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA;TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTGGACAAAATTCTGGATGAAAATGNNNNNNNNNNNN;1;1;15;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_DEL_3245_Treesnips_42-8-2;A;DELETION;3245;CCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA;TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTGGACAAAATTCTGGATGAAAATGGNNNNNNNNNNN;1;1;16;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_DEL_3245_Treesnips_42-1-2;A;DELETION;3245;CCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA;TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTGGACAAAATTCTGGATGAAAATGNNNNNNNNNNNN;1;1;17;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_DEL_3245_Treesnips_42-2-1;A;DELETION;3245;CCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA;TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTGGACAAAATTCTGGATGAAAATGNNNNNNNNNNNN;1;1;18;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_DEL_3245_Treesnips_42-2-2;A;DELETION;3245;CCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTACACATAGGGGTGGATCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA;TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTAGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTGGACAAAATTCTGGATGAAAATGGTCGCAAAAGTA;1;1;19;Sequence;;;5 -INRA_Pinus_pinaster_HDZ31-1_DEL_3245_Treesnips_42-8-1;A;DELETION;3245;CCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA;TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTGGACAAAATTCTGGATGAAAATGGNNNNNNNNNNN;1;1;20;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_DEL_3245_Treesnips_42-9-2;A;DELETION;3245;CCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA;TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTGGACAAAATTCTGGATGAAAATGGNNNNNNNNNNN;1;1;21;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_DEL_3245_Treesnips_43-4-3;A;DELETION;3245;CCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTACACATAGGGGTGGATCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA;TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTGGACAAAATTCTGGATGAAAATGNNNNNNNNNNNN;1;1;22;Sequence;;;5 -INRA_Pinus_pinaster_HDZ31-1_DEL_3245_Treesnips_43-5-3;A;DELETION;3245;CCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA;TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTGGACAAAATTCTGGATGAAAATGGNNNNNNNNNNN;1;1;23;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_DEL_3245_Treesnips_43-1-1;A;DELETION;3245;CCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTACACATAGGGGTGGATCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA;TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTAGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTGGACAAAATTCTGGATGAAAATGGNNNNNNNNNNN;1;1;24;Sequence;;;5 -INRA_Pinus_pinaster_HDZ31-1_DEL_3245_Treesnips_43-2-1;A;DELETION;3245;CCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA;TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTGGACAAAATTCTGGATGAAAATGNNNNNNNNNNNN;1;1;25;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_DEL_3245_Treesnips_43-7-2;A;DELETION;3245;CCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA;TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTGGACAAAATTCTGGATGAAAATGNNNNNNNNNNNN;1;1;26;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_DEL_3245_Treesnips_43-9-3;A;DELETION;3245;CCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA;TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTGGACAAAATTCTGGATGAAAATGGNNNNNNNNNNN;1;1;27;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_DEL_3245_Treesnips_43-10-2;A;DELETION;3245;CCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTACACATAGGGGTGGATCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA;TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTAGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTGGACAAAATTCTGGATGAAAATGGNNNNNNNNNNN;1;1;28;Sequence;;;5 -INRA_Pinus_pinaster_HDZ31-1_DEL_3245_Treesnips_44-3-3;A;DELETION;3245;CCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTACACATAGGGGTGGATCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA;TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTAGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTGGACAAAATTCTGGATGAAAATGNNNNNNNNNNNN;1;1;29;Sequence;;;5 -INRA_Pinus_pinaster_HDZ31-1_DEL_3245_Treesnips_44-6-2;A;DELETION;3245;CCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA;TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTGGACAAAATTCTGGATGAAAATGGNNNNNNNNNNN;1;1;30;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_DEL_3245_Treesnips_44-3-1;A;DELETION;3245;CCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTACACATAGGGGTGGATCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA;TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTAGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTGGACAAAATTCTGGATGAAAATGGTCGCAAAAGTN;1;1;31;Sequence;;;5 -INRA_Pinus_pinaster_HDZ31-1_DEL_3245_Treesnips_44-5-2;A;DELETION;3245;CCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA;TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTGGACAAAATTCTGGATGAAAATGGNNNNNNNNNNN;1;1;32;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_DEL_3245_Treesnips_44-7-1;A;DELETION;3245;CCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTACACATAGGGGTGGATCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA;TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTAGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;1;33;Sequence;;;5 -INRA_Pinus_pinaster_HDZ31-1_DEL_3245_Treesnips_44-10-2;A;DELETION;3245;CCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTACACATAGGGGTGGATCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA;TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTAGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTGGACAAAATTCTGGATGAAAATGGTNNNNNNNNNN;1;1;34;Sequence;;;5 -INRA_Pinus_pinaster_HDZ31-1_DEL_3245_Treesnips_45-5-3;A;DELETION;3245;CCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTACACATAGGGGTGGATCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA;TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTAGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTGGACAAAATTCTGGATGAAAANNNNNNNNNNNNNN;1;1;35;Sequence;;;5 -INRA_Pinus_pinaster_HDZ31-1_DEL_3245_Treesnips_45-8-3;A;DELETION;3245;CCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA;TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTGGACAAAATTCTGGATGAAAATGNNNNNNNNNNNN;1;1;36;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_DEL_3245_Treesnips_45-4-1;A;DELETION;3245;CCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTACACATAGGGGTGGATCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA;TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTAGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACGACATNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;1;38;Sequence;;;5 -INRA_Pinus_pinaster_HDZ31-1_DEL_3245_Treesnips_45-7-1;A;DELETION;3245;CCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA;TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTGGACAAAATTCTGGATGAAAATGGTCGCAAAAGTA;1;1;39;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_DEL_3245_Treesnips_45-9-1;A;DELETION;3245;CCGTTGGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA;TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACGACANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;1;40;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_3291_Treesnips_40-4-3;A;SNP;3291;AGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCT;GTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTGGACAAAATTCTGGATGAAAATGGNNNNNNNNNNN;1;1;1;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_3291_Treesnips_40-8-3;A;SNP;3291;AGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCT;GTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTGGACAAAATTCTGGATGAAAANNNNNNNNNNNNNN;1;1;2;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_3291_Treesnips_40-1-2;A;SNP;3291;AGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTACACATAGGGGTGGATCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA-TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCT;GTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTGGACAAAATTCTGGATGAAAATGGNNNNNNNNNNN;1;1;3;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_3291_Treesnips_40-14-1;A;SNP;3291;AGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTACACATAGGGGTGGATCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA-TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCT;GTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTGGACAAAATTCTGGATGAAAANNNNNNNNNNNNNN;1;1;4;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_3291_Treesnips_40-15-2;A;SNP;3291;AGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCT;GTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTGGACAAAATTCTGGATGAAAATGGTCGCAAANNNN;1;1;5;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_3291_Treesnips_40-20-2;A;SNP;3291;AGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTACACATAGGGGTGGATCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA-TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCT;GTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTGGACAAAATTCTGGATGAAAATGGNNNNNNNNNNN;1;1;6;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_3291_Treesnips_40-25-1;A;SNP;3291;AGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCT;GTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;1;7;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_3291_Treesnips_41-3-3;A;SNP;3291;AGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCT;GTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTGGACAAAATTCTGGATGAAAATGNNNNNNNNNNNN;1;1;8;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_3291_Treesnips_41-8-1;A;SNP;3291;AGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCT;GTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTGGACAAAATTCTGGATGAAAANNNNNNNNNNNNNN;1;1;9;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_3291_Treesnips_41-1-3;A;SNP;3291;AGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTACACATAGGGGTGGATCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA-TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCT;GTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTGGACAAAATTCTGGATGAAAANNNNNNNNNNNNNN;1;1;10;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_3291_Treesnips_41-2-1;A;SNP;3291;AGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTACACATAGGGGTGGATCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA-TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCT;GTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTGGACAAAATTCTGGATGAAAATGNNNNNNNNNNNN;1;1;11;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_3291_Treesnips_41-3-2;A;SNP;3291;AGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCT;GTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTGGACAAAATTCTGGATGAAAATGGNNNNNNNNNNN;1;1;12;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_3291_Treesnips_41-6-2;A;SNP;3291;AGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCT;GTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTGGACAAAATTCTGGATGAAAATGGTCGCAAAAGTA;1;1;13;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_3291_Treesnips_41-9-1;A;SNP;3291;AGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTACACATAGGGGTGGATCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA-TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCT;GTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTGGACAAAATTCTGGATGAAAATGGNNNNNNNNNNN;1;1;14;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_3291_Treesnips_42-1-3;A;SNP;3291;AGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCT;GTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTGGACAAAATTCTGGATGAAAATGNNNNNNNNNNNN;1;1;15;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_3291_Treesnips_42-8-2;A;SNP;3291;AGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCT;GTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTGGACAAAATTCTGGATGAAAATGGNNNNNNNNNNN;1;1;16;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_3291_Treesnips_42-1-2;A;SNP;3291;AGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCT;GTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTGGACAAAATTCTGGATGAAAATGNNNNNNNNNNNN;1;1;17;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_3291_Treesnips_42-2-1;A;SNP;3291;AGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCT;GTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTGGACAAAATTCTGGATGAAAATGNNNNNNNNNNNN;1;1;18;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_3291_Treesnips_42-2-2;A;SNP;3291;AGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTACACATAGGGGTGGATCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA-TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCT;GTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTGGACAAAATTCTGGATGAAAATGGTCGCAAAAGTA;1;1;19;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_3291_Treesnips_42-8-1;A;SNP;3291;AGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCT;GTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTGGACAAAATTCTGGATGAAAATGGNNNNNNNNNNN;1;1;20;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_3291_Treesnips_42-9-2;A;SNP;3291;AGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCT;GTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTGGACAAAATTCTGGATGAAAATGGNNNNNNNNNNN;1;1;21;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_3291_Treesnips_43-4-3;A;SNP;3291;AGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTACACATAGGGGTGGATCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA-TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCT;GTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTGGACAAAATTCTGGATGAAAATGNNNNNNNNNNNN;1;1;22;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_3291_Treesnips_43-5-3;A;SNP;3291;AGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCT;GTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTGGACAAAATTCTGGATGAAAATGGNNNNNNNNNNN;1;1;23;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_3291_Treesnips_43-1-1;A;SNP;3291;AGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTACACATAGGGGTGGATCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA-TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCT;GTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTGGACAAAATTCTGGATGAAAATGGNNNNNNNNNNN;1;1;24;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_3291_Treesnips_43-2-1;A;SNP;3291;AGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCT;GTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTGGACAAAATTCTGGATGAAAATGNNNNNNNNNNNN;1;1;25;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_3291_Treesnips_43-7-2;A;SNP;3291;AGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCT;GTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTGGACAAAATTCTGGATGAAAATGNNNNNNNNNNNN;1;1;26;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_3291_Treesnips_43-9-3;A;SNP;3291;AGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCT;GTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTGGACAAAATTCTGGATGAAAATGGNNNNNNNNNNN;1;1;27;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_3291_Treesnips_43-10-2;A;SNP;3291;AGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTACACATAGGGGTGGATCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA-TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCT;GTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTGGACAAAATTCTGGATGAAAATGGNNNNNNNNNNN;1;1;28;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_3291_Treesnips_44-3-3;A;SNP;3291;AGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTACACATAGGGGTGGATCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA-TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCT;GTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTGGACAAAATTCTGGATGAAAATGNNNNNNNNNNNN;1;1;29;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_3291_Treesnips_44-6-2;A;SNP;3291;AGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCT;GTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTGGACAAAATTCTGGATGAAAATGGNNNNNNNNNNN;1;1;30;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_3291_Treesnips_44-3-1;A;SNP;3291;AGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTACACATAGGGGTGGATCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA-TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCT;GTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTGGACAAAATTCTGGATGAAAATGGTCGCAAAAGTN;1;1;31;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_3291_Treesnips_44-5-2;A;SNP;3291;AGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCT;GTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTGGACAAAATTCTGGATGAAAATGGNNNNNNNNNNN;1;1;32;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_3291_Treesnips_44-7-1;A;SNP;3291;AGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTACACATAGGGGTGGATCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA-TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCT;GTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;1;33;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_3291_Treesnips_44-10-2;A;SNP;3291;AGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTACACATAGGGGTGGATCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA-TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCT;GTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTGGACAAAATTCTGGATGAAAATGGTNNNNNNNNNN;1;1;34;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_3291_Treesnips_45-5-3;A;SNP;3291;AGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTACACATAGGGGTGGATCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA-TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCT;GTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTGGACAAAATTCTGGATGAAAANNNNNNNNNNNNNN;1;1;35;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_3291_Treesnips_45-8-3;A;SNP;3291;AGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCT;GTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTGGACAAAATTCTGGATGAAAATGNNNNNNNNNNNN;1;1;36;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_3291_Treesnips_45-4-1;A;SNP;3291;AGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTACACATAGGGGTGGATCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAA-TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCT;GTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACGACATNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;1;38;Sequence;;;3 -INRA_Pinus_pinaster_HDZ31-1_SNP_3291_Treesnips_45-7-1;A;SNP;3291;AGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCT;GTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTGGACAAAATTCTGGATGAAAATGGTCGCAAAAGTA;1;1;39;Sequence;;;1 -INRA_Pinus_pinaster_HDZ31-1_SNP_3291_Treesnips_45-9-1;A;SNP;3291;AGGCTCTTATGTTTTGCCATTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACAGACTCCACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGAAACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACATACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCT;GTTGTGAAGTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCAAATCAAGCAGGGTTGGACATGCTGGAAACGACANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;1;1;40;Sequence;;;1
--- a/commons/core/parsing/test/data/real_multifasta_input.fasta Mon Apr 29 03:26:07 2013 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2419 +0,0 @@ ->PpHDZ31_ref -GCTAGCCCCGCTGGGTACGTGGCATTGTTTTAGCTTTCCAAATTATGGGAAACATTATAT -TGTTTTTGTAGCTAGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGC -AGAGGAGACCTTGACAGAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCA -GATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTT -GCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTTTGCAGCCTGGTCC -GGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTG -CGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGTGTTTTGCTATTC -AGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTG -CAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTTTGA -CTGCGTTTCCTACTGGAAATGGTGGAACAATCGAGCTTTTATACATGCAGGTTTGCTATT -CTCTCTGAAATTGATTCTGATAAGTTGCCATAAGAGGTCAAAAATTAGCAAAATCAGATT -TATCTTTTTTTTTTTTTTTTTTGTATGATGTGGACTGCAGACATATGCCGCCACTACTTT -AGCTTCTGCTAGAGACTTCTGGACTCTGAGATACACAACAGTGTTGGAAGATGGCAGTCT -TGTGGTATGTGATAACTGAACAATGACACATGCTTTCATTAATCCCTTTATTTTGTGAGC -ACAACTGGATTTTCTTCCTTGTTTTTGCAGTAGTGGGGTTTTGCTAATTATAGCTTATCT -ATGATGTTCTGTAAGGTTTGTGAAAGGTCCTTGAGTGGTACTCAGGGTGGTCCAAGCATA -CCGCCAGTGCAGCATTTTGTGAGAGCAGAAATGCTTCCCAGTGGATATTTGATACAACCT -TGTGAAGGTGGTGGTTCCATAATCCGTATTGTTGATCACATGGATCTAGAGGTACATGCT -AGTTGTTGATGGCTAGAAGCTGCAATGTAGTTTATACAATTAAATTCCCAGAGTAGCTAT -TCTAAGATGGGCTGATCTTTTCATTGATTTGATTATTGCTATTCAGCCATGGAGTGTGCC -TGAGGTTTTACGACCACTATATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGC -AGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCAC -TGACTGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCAC -AGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAG -GTTAAGCAGGTAATGTGACTACTGCAGGATTATATCTTCTCCCATATTTGAACCATGATG -ATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGAT -TTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTA -TCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAA -CTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAG -TTATTTAAAAAAAA-TGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGG -GAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTG -TAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGAT -CAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTT -ATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGG -CACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCCTGGTTTTGTATTT -TGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTA -TATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATG -TAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACTCAGGAGGAAGCT -GTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTAT -ACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGTTAACATTATCAA -CAACTTTGATGGGCAGCTTTGCAGTGGAATTGATGAACATGCAGCTGGAGCATGTGCTGA -ACTTGTTTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGG -GTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGC -ATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGC -TGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGAT -CTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAA -CTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCAT -TCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATG -TGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGA -ATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTT -GGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCA -TTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACA -GACTCCACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGA -AACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACAT -ACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAA -GTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCA -AATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTG -GACAAAATTCTGGATGAAAATGGTCGCAAAAGTA ->Treesnips_40-4-3 -NNNNNNNNNNNNNNNNNNGTGGCATTGTTTTAGCTTTCCAAATTATGGGAAACATTATAT -TGTTTTTGTAGCTAGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGC -AGAGGAGACCTTGACAGAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCA -GATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTT -GCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTTTGCAGCCTGGTCC -GGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTG -CGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGTGTTTTGCTATTC -AGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTG -CAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTTTGA -CTGCGTTTCCTACTGGAAATGGTGGAACAATCGAGCTTTTATACATGCAGGTTTGCTATT -CTCTCTGAAATTGATTCTGATAAGTTGCCATAAGAGGTCAAAAATTAGCAAAATCAGATT -TATCTTTTTTTTTTTTTTTTTTGTATGATGTGGACTGCAGACATATGCCGCCACTACTTT -AGCTTCTGCTAGAGACTTCTGGACTCTGAGATACACAACAGTGTTGGAAGATGGCAGTCT -TGTGGTATGTGATAACTGAACAATGACACATGCTTTCATTAATCCCTTTATTTTGTGAGC -ACAACTGGATTTTCTTCCTTGTTTTTGCAGTAGTGGGGTTTTGCTAATTATAGCTTATCT -ATGATGTTCTGTAAGGTTTGTGAAAGGTCCTTGAGTGGTACTCAGGGTGGTCCAAGCATA -CCGCCAGTGCAGCATTTTGTGAGAGCAGAAATGCTTCCCAGTGGATATTTGATACAACCT -TGTGAAGGTGGTGGTTCCATAATCCGTATTGTTGATCACATGGATCTAGAGGTACATGCT -AGTTGTTGATGGCTAGAAGCTGCAATGTAGTTTATACAATTAAATTCCCAGAGTAGCTAT -TCTAAGATGGGCTGATCTTTTCATTGATTTGATTATTGCTATTCAGCCATGGAGTGTGCC -TGAGGTTTTACGACCACTATATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGC -AGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCAC -TGACTGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCAC -AGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAG -GTTAAGCAGGTAATGTGACTACTGCAGGATTATATCTTCTCCCATATTTGAACCATGATG -ATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGAT -TTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTA -TCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAA -CTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAG -TTATTTAAAAAAAA-TGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGG -GAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTG -TAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGAT -CAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTT -ATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGG -CACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCCTGGTTTTGTATTT -TGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTA -TATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATG -TAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACTCAGGAGGAAGCT -GTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTAT -ACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGTTAACATTATCAA -CAACTTTGATGGGCAGCTTTGCAGTGGAATTGATGAACATGCAGCTGGAGCATGTGCTGA -ACTTGTTTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGG -GTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGC -ATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGC -TGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGAT -CTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAA -CTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCAT -TCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATG -TGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGA -ATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTT -GGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCA -TTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACA -GACTCCACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGA -AACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACAT -ACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAA -GTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCA -AATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTG -GACAAAATTCTGGATGAAAATGGNNNNNNNNNNN ->Treesnips_40-8-3 -NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN -NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCTCCTGTCTATAGC -AGAGGAGACCTTGACAGAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCA -GATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTT -GCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTTTGCAGCCTGGTCC -GGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTG -CGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGTGTTTTGCTATTC -AGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTG -CAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTTTGA -CTGCGTTTCCTACTGGAAATGGTGGAACAATCGAGCTTTTATACATGCAGGTTTGCTATT -CTCTCTGAAATTGATTCTGATAAGTTGCCATAAGAGGTCAAAAATTAGCAAAATCAGATT -TATCTTTTTTTTTTTTTTTTTTGTATGATGTGGACTGCAGACATATGCCGCCACTACTTT -AGCTTCTGCTAGAGACTTCTGGACTCTGAGATACACAACAGTGTTGGAAGATGGCAGTCT -TGTGGTATGTGATAACTGAACAATGACACATGCTTTCATTAATCCCTTTATTTTGTGAGC -ACAACTGGATTTTCTTCCTTGTTTTTGCAGTAGTGGGGTTTTGCTAATTATAGCTTATCT -ATGATGTTCTGTAAGGTTTGTGAAAGGTCCTTGAGTGGTACTCAGGGTGGTCCAAGCATA -CCGCCAGTGCAGCATTTTGTGAGAGCAGAAATGCTTCCCAGTGGATATTTGATACAACCT -TGTGAAGGTGGTGGTTCCATAATCCGTATTGTTGATCACATGGATCTAGAGGTACATGCT -AGTTGTTGATGGCTAGAAGCTGCAATGTAGTTTATACAATTAAATTCCCAGAGTAGCTAT -TCTAAGATGGGCTGATCTTTTCATTGATTTGATTATTGCTATTCAGCCATGGAGTGTGCC -TGAGGTTTTACGACCACTATATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGC -AGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCAC -TGACTGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCAC -AGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAG -GTTAAGCAGGTAATGTGACTACTGCAGGATTATATCTTCTCCCATATTTGAACCATGATG -ATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGAT -TTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTA -TCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAA -CTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAG -TTATTTAAAAAAAA-TGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGG -GAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTG -TAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGAT -CAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTT -ATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGG -CACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCCTGGTTTTGTATTT -TGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTA -TATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATG -TAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACTCAGGAGGAAGCT -GTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTAT -ACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGTTAACATTATCAA -CAACTTTGATGGGCAGCTTTGCAGTGGAATTGATGAACATGCAGCTGGAGCATGTGCTGA -ACTTGTTTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGG -GTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGC -ATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGC -TGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGAT -CTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAA -CTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCAT -TCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATG -TGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGA -ATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTT -GGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCA -TTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACA -GACTCCACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGA -AACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACAT -ACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAA -GTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCA -AATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTG -GACAAAATTCTGGATGAAAANNNNNNNNNNNNNN ->Treesnips_40-1-2 -NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTTTCCAAATTATGGGAAACATTATAT -TGTTTTTGTAGCTAGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGC -AGAGGAGACCTTGACGGAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCA -GATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTT -GCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTGTGCAGCCTGGTCC -GGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTG -CGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGTTTTTTGCTATTC -AGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTG -CAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTTTGA -CTGCGTTTCCTACTGGAAATGGTGGAACAATCGAGCTTTTATACATGCAGGTTTGCTATT -CTCTCTGAAATTGATTCTGATAAGTTGCCATAAGAGGTCAAAAATTAGCAAAATCAGATT -TATCTTTTTTTTTTTTTTTTTTGTATGATGTGGACTGCAGACATATGCCGCCACTACTTT -AGCTTCTGCTAGAGACTTCTGGACTCTGAGATACACAACAGTGTTGGAAGATGGCAGTCT -TGTGGTATGTGATAACTGAACAATGACACATGCTTTCATTAATCCCTTTATTTTGTGAGC -ACAACTGGATTTTCTTCCTTGTTTTTGCAGTAGTGGGGTTTTGCTAATTATAGCTTATCT -ATGATGTTCTGTAAGGTTTGTGAAAGGTCCTTGAGTGGTACTCAGGGTGGTCCAAGCATA -CCGCCAGTGCAGCATTTTGTGAGAGCAGAAATGCTTCCCAGTGGATATTTGATACAACCT -TGTGAAGGTGGTGGTTCCATAATCCGTATTGTTGATCACATGGATCTAGAGGTACATGCT -AGTTGTTGATGGCTAGAAGCTGCAATGTAGTTTATACAATTAAATTCCCAGAGTAGCTAT -TCTAAGATGGGCTGATCTTTTCATTGATTTGATTATTGCTATTCAGCCATGGAGTGTGCC -TGAGGTTTTACGACCACTATATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGC -AGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCAC -TGACTGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCAC -AGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAG -GTTAAGCAGGTAATGTGACTACTGCAGGATGATATCTTCTCCCATATTTGAACCATGATG -ATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGAT -TTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTA -TCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAA -CTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAG -TTATTTAAAAAAAAATGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGG -GAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTG -TAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGAT -CAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTT -ATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGG -CACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCTTGGTTTTGTATTT -TGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTA -TATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATG -TAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACACAGGAGGAAGCT -GTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTAT -ACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGTTAACATTATCAA -CAACTTTGATGGGCAGCTTTGCAGTGGAATTGATGAACATGCAGCTGGAGCATGTGCTGA -ACTTGTTTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGG -GTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGC -ATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGC -TGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGAT -CTGGGGGTCCCAACCGGACATTGGACTTGGCTTCTGCTCTTGAGGTTGGATCAACTGGAA -CTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACCATTGCAT -TCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATG -TGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGA -ATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTT -GGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCA -TTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACA -GACTACACATAGGGGTGGATCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGA -AACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACAT -ACAAA-TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTAGTTGTGAA -GTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCA -AATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTG -GACAAAATTCTGGATGAAAATGGNNNNNNNNNNN ->Treesnips_40-14-1 -NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN -NNNNNNNNNNNNNNNGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGC -AGAGGAGACCTTGACGGAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCA -GATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTT -GCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTGTGCAGCCTGGTCC -GGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTG -CGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGTTTTTTGCTATTC -AGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTG -CAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTTTGA -CTGCGTTTCCTACTGGAAATGGTGGAACAATCGAGCTTTTATACATGCAGGTTTGCTATT -CTCTCTGAAATTGATTCTGATAAGTTGCCATAAGAGGTCAAAAATTAGCAAAATCAGATT -TATCTTTTTTTTTTTTTTTTTTGTATGATGTGGACTGCAGACATATGCCGCCACTACTTT -AGCTTCTGCTAGAGACTTCTGGACTCTGAGATACACAACAGTGTTGGAAGATGGCAGTCT -TGTGGTATGTGATAACTGAACAATGACACATGCTTTCATTAATCCCTTTATTTTGTGAGC -ACAACTGGATTTTCTTCCTTGTTTTTGCAGTAGTGGGGTTTTGCTAATTATAGCTTATCT -ATGATGTTCTGTAAGGTTTGTGAAAGGTCCTTGAGTGGTACTCAGGGTGGTCCAAGCATA -CCGCCAGTGCAGCATTTTGTGAGAGCAGAAATGCTTCCCAGTGGATATTTGATACAACCT -TGTGAAGGTGGTGGTTCCATAATCCGTATTGTTGATCACATGGATCTAGAGGTACATGCT -AGTTGTTGATGGCTAGAAGCTGCAATGTAGTTTATACAATTAAATTCCCAGAGTAGCTAT -TCTAAGATGGGCTGATCTTTTCATTGATTTGATTATTGCTATTCAGCCATGGAGTGTGCC -TGAGGTTTTACGACCACTATATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGC -AGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCAC -TGACTGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCAC -AGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAG -GTTAAGCAGGTAATGTGACTACTGCAGGATGATATCTTCTCCCATATTTGAACCATGATG -ATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGAT -TTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTA -TCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAA -CTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAG -TTATTTAAAAAAAAATGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGG -GAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTG -TAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGAT -CAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTT -ATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGG -CACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCTTGGTTTTGTATTT -TGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTA -TATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATG -TAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACACAGGAGGAAGCT -GTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTAT -ACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGTTAACATTATCAA -CAACTTTGATGGGCAGCTTTGCAGTGGAATTGATGAACATGCAGCTGGAGCATGTGCTGA -ACTTGTTTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGG -GTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGC -ATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGC -TGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGAT -CTGGGGGTCCCAACCGGACATTGGACTTGGCTTCTGCTCTTGAGGTTGGATCAACTGGAA -CTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACCATTGCAT -TCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATG -TGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGA -ATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTT -GGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCA -TTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACA -GACTACACATAGGGGTGGATCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGA -AACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACAT -ACAAA-TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTAGTTGTGAA -GTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCA -AATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTG -GACAAAATTCTGGATGAAAANNNNNNNNNNNNNN ->Treesnips_40-15-2 -GCTAGCCCCGCTGGGTACGTGGCATTGTTTTAGCTTTCCAAATTATGGGAAACATTATAT -TGTTTTTGTAGCTAGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGC -AGAGGAGACCTTGACAGAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCA -GATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTT -GCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTTTGCAGCCTGGTCC -GGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTG -CGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGTGTTTTGCTATTC -AGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTG -CAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTTTGA -CTGCGTTTCCTACTGGAAATGGTGGAACAATCGAGCTTTTATACATGCAGGTTTGCTATT -CTCTCTGAAATTGATTCTGATAAGTTGCCATAAGAGGTCAAAAATTAGCAAAATCAGATT -TATCTTTTTTTTTTTTTTTTTTGTATGATGTGGACTGCAGACATATGCCGCCACTACTTT -AGCTTCTGCTAGAGACTTCTGGACTCTGAGATACACAACAGTGTTGGAAGATGGCAGTCT -TGTGGTATGTGATAACTGAACAATGACACATGCTTTCATTAATCCCTTTATTTTGTGAGC -ACAACTGGATTTTCTTCCTTGTTTTTGCAGTAGTGGGGTTTTGCTAATTATAGCTTATCT -ATGATGTTCTGTAAGGTTTGTGAAAGGTCCTTGAGTGGTACTCAGGGTGGTCCAAGCATA -CCGCCAGTGCAGCATTTTGTGAGAGCAGAAATGCTTCCCAGTGGATATTTGATACAACCT -TGTGAAGGTGGTGGTTCCATAATCCGTATTGTTGATCACATGGATCTAGAGGTACATGCT -AGTTGTTGATGGCTAGAAGCTGCAATGTAGTTTATACAATTAAATTCCCAGAGTAGCTAT -TCTAAGATGGGCTGATCTTTTCATTGATTTGATTATTGCTATTCAGCCATGGAGTGTGCC -TGAGGTTTTACGACCACTATATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGC -AGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCAC -TGACTGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCAC -AGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAG -GTTAAGCAGGTAATGTGACTACTGCAGGATTATATCTTCTCCCATATTTGAACCATGATG -ATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGAT -TTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTA -TCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAA -CTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAG -TTATTTAAAAAAAA-TGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGG -GAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTG -TAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGAT -CAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTT -ATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGG -CACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCCTGGTTTTGTATTT -TGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTA -TATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATG -TAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACTCAGGAGGAAGCT -GTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTAT -ACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGTTAACATTATCAA -CAACTTTGATGGGCAGCTTTGCAGTGGAATTGATGAACATGCAGCTGGAGCATGTGCTGA -ACTTGTTTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGG -GTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGC -ATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGC -TGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGAT -CTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAA -CTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCAT -TCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATG -TGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGA -ATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTT -GGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCA -TTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACA -GACTCCACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGA -AACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACAT -ACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAA -GTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCA -AATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTG -GACAAAATTCTGGATGAAAATGGTCGCAAANNNN ->Treesnips_40-20-2 -GCTAGCCCCGCTGGGTACGTGGCATTGTTTTAGCTTTCCAAATTATGGGAAACATTATAT -TGTTTTTGTAGCTAGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGC -AGAGGAGACCTTGACGGAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCA -GATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTT -GCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTGTGCAGCCTGGTCC -GGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTG -CGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGTTTTTTGCTATTC -AGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTG -CAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTTTGA -CTGCGTTTCCTACTGGAAATGGTGGAACAATCGAGCTTTTATACATGCAGGTTTGCTATT -CTCTCTGAAATTGATTCTGATAAGTTGCCATAAGAGGTCAAAAATTAGCAAAATCAGATT -TATCTTTTTTTTTTTTTTTTTTGTATGATGTGGACTGCAGACATATGCCGCCACTACTTT -AGCTTCTGCTAGAGACTTCTGGACTCTGAGATACACAACAGTGTTGGAAGATGGCAGTCT -TGTGGTATGTGATAACTGAACAATGACACATGCTTTCATTAATCCCTTTATTTTGTGAGC -ACAACTGGATTTTCTTCCTTGTTTTTGCAGTAGTGGGGTTTTGCTAATTATAGCTTATCT -ATGATGTTCTGTAAGGTTTGTGAAAGGTCCTTGAGTGGTACTCAGGGTGGTCCAAGCATA -CCGCCAGTGCAGCATTTTGTGAGAGCAGAAATGCTTCCCAGTGGATATTTGATACAACCT -TGTGAAGGTGGTGGTTCCATAATCCGTATTGTTGATCACATGGATCTAGAGGTACATGCT -AGTTGTTGATGGCTAGAAGCTGCAATGTAGTTTATACAATTAAATTCCCAGAGTAGCTAT -TCTAAGATGGGCTGATCTTTTCATTGATTTGATTATTGCTATTCAGCCATGGAGTGTGCC -TGAGGTTTTACGACCACTATATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGC -AGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCAC -TGACTGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCAC -AGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAG -GTTAAGCAGGTAATGTGACTACTGCAGGATGATATCTTCTCCCATATTTGAACCATGATG -ATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGAT -TTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTA -TCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAA -CTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAG -TTATTTAAAAAAAAATGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGG -GAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTG -TAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGAT -CAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTT -ATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGG -CACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCTTGGTTTTGTATTT -TGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTA -TATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATG -TAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACACAGGAGGAAGCT -GTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTAT -ACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGTTAACATTATCAA -CAACTTTGATGGGCAGCTTTGCAGTGGAATTGATGAACATGCAGCTGGAGCATGTGCTGA -ACTTGTTTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGG -GTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGC -ATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGC -TGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGAT -CTGGGGGTCCCAACCGGACATTGGACTTGGCTTCTGCTCTTGAGGTTGGATCAACTGGAA -CTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCAT -TCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATG -TGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGA -ATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTT -GGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCA -TTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACA -GACTACACATAGGGGTGGATCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGA -AACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACAT -ACAAA-TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTAGTTGTGAA -GTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCA -AATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTG -GACAAAATTCTGGATGAAAATGGNNNNNNNNNNN ->Treesnips_40-25-1 -GCTAGCCCCGCTGGGTACGTGGCATTGTTTTAGCTTTCCAAATTATGGGAAACATTATAT -TGTTTTTGTAGCTAGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGC -AGAGGAGACCTTGACAGAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCA -GATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTT -GCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTTTGCAGCCTGGTCC -GGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTG -CGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGTGTTTTGCTATTC -AGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTG -CAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTTTGA -CTGCGTTTCCTACTGGAAATGGTGGAACAATCGAGCTTTTATACATGCAGGTTTGCTATT -CTCTCTGAAATTGATTCTGATAAGTTGCCATAAGAGGTCAAAAATTAGCAAAATCAGATT -TATCTTTTTTTTTTTTTTTTTTGTATGATGTGGACTGCAGACATATGCCGCCACTACTTT -AGCTTCTGCTAGAGACTTCTGGACTCTGAGATACACAACAGTGTTGGAAGATGGCAGTCT -TGTGGTATGTGATAACTGAACAATGACACATGCTTTCATTAATCCCTTTATTTTGTGAGC -ACAACTGGATTTTCTTCCTTGTTTTTGCAGTAGTGGGGTTTTGCTAATTATAGCTTATCT -ATGATGTTCTGTAAGGTTTGTGAAAGGTCCTTGAGTGGTACTCAGGGTGGTCCAAGCATA -CCGCCAGTGCAGCATTTTGTGAGAGCAGAAATGCTTCCCAGTGGATATTTGATACAACCT -TGTGAAGGTGGTGGTTCCATAATCCGTATTGTTGATCACATGGATCTAGAGGTACATGCT -AGTTGTTGATGGCTAGAAGCTGCAATGTAGTTTATACAATTAAATTCCCAGAGTAGCTAT -TCTAAGATGGGCTGATCTTTTCATTGATTTGATTATTGCTATTCAGCCATGGAGTGTGCC -TGAGGTTTTACGACCACTATATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGC -AGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCAC -TGACTGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCAC -AGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAG -GTTAAGCAGGTAATGTGACTACTGCAGGATTATATCTTCTCCCATATTTGAACCATGATG -ATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGAT -TTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTA -TCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAA -CTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAG -TTATTTAAAAAAAA-TGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGG -GAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTG -TAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGAT -CAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTT -ATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGG -CACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCCTGGTTTTGTATTT -TGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTA -TATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATG -TAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACTCAGGAGGAAGCT -GTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTAT -ACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGTTAACATTATCAA -CAACTTTGATGGGCAGCTTTGCAGTGGAATTGATGAACATGCAGCTGGAGCATGTGCTGA -ACTTGTTTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGG -GTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGC -ATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGC -TGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGAT -CTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAA -CTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCAT -TCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATG -TGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGA -ATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTT -GGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCA -TTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACA -GACTCCACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGA -AACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACAT -ACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAA -GTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCN -NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN -NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN ->Treesnips_41-3-3 -NNNNNNNNNNNNNNNNNNNNNNNNNNNNTTTAGCTTTCCAAATTATGGGAAACATTATAT -TGTTTTTGTAGCTAGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGC -AGAGGAGACCTTGACAGAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCA -GATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTT -GCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTTTGCAGCCTGGTCC -GGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTG -CGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGTGTTTTGCTATTC -AGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTG -CAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTTTGA -CTGCGTTTCCTACTGGAAATGGTGGAACAATCGAGCTTTTATACATGCAGGTTTGCTATT -CTCTCTGAAATTGATTCTGATAAGTTGCCATAAGAGGTCAAAAATTAGCAAAATCAGATT -TATCTTTTTTTTTTTTTTTTTTGTATGATGTGGACTGCAGACATATGCCGCCACTACTTT -AGCTTCTGCTAGAGACTTCTGGACTCTGAGATACACAACAGTGTTGGAAGATGGCAGTCT -TGTGGTATGTGATAACTGAACAATGACACATGCTTTCATTAATCCCTTTATTTTGTGAGC -ACAACTGGATTTTCTTCCTTGTTTTTGCAGTAGTGGGGTTTTGCTAATTATAGCTTATCT -ATGATGTTCTGTAAGGTTTGTGAAAGGTCCTTGAGTGGTACTCAGGGTGGTCCAAGCATA -CCGCCAGTGCAGCATTTTGTGAGAGCAGAAATGCTTCCCAGTGGATATTTGATACAACCT -TGTGAAGGTGGTGGTTCCATAATCCGTATTGTTGATCACATGGATCTAGAGGTACATGCT -AGTTGTTGATGGCTAGAAGCTGCAATGTAGTTTATACAATTAAATTCCCAGAGTAGCTAT -TCTAAGATGGGCTGATCTTTTCATTGATTTGATTATTGCTATTCAGCCATGGAGTGTGCC -TGAGGTTTTACGACCACTATATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGC -AGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCAC -TGACTGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCAC -AGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAG -GTTAAGCAGGTAATGTGACTACTGCAGGATTATATCTTCTCCCATATTTGAACCATGATG -ATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGAT -TTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTA -TCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAA -CTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAG -TTATTTAAAAAAAA-TGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGG -GAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTG -TAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGAT -CAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTT -ATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGG -CACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCCTGGTTTTGTATTT -TGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTA -TATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATG -TAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACTCAGGAGGAAGCT -GTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTAT -ACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGTTAACATTATCAA -CAACTTTGATGGGCAGCTTTGCAGTGGAATTGATGAACATGCAGCTGGAGCATGTGCTGA -ACTTGTTTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGG -GTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGC -ATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGC -TGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGAT -CTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAA -CTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCAT -TCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATG -TGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGA -ATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTT -GGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCA -TTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACA -GACTCCACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGA -AACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACAT -ACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAA -GTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCA -AATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTG -GACAAAATTCTGGATGAAAATGNNNNNNNNNNNN ->Treesnips_41-8-1 -GCTAGCCCCGCTGGGTACGTGGCATTGTTTTAGCTTTCCAAATTATGGGAAACATTATAT -TGTTTTTGTAGCTAGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGC -AGAGGAGACCTTGACAGAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCA -GATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTT -GCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTTTGCAGCCTGGTCC -GGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTG -CGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGTGTTTTGCTATTC -AGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTG -CAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTTTGA -CTGCGTTTCCTACTGGAAATGGTGGAACAATCGAGCTTTTATACATGCAGGTTTGCTATT -CTCTCTGAAATTGATTCTGATAAGTTGCCATAAGAGGTCAAAAATTAGCAAAATCAGATT -TATCTTTTTTTTTTTTTTTTTTGTATGATGTGGACTGCAGACATATGCCGCCACTACTTT -AGCTTCTGCTAGAGACTTCTGGACTCTGAGATACACAACAGTGTTGGAAGATGGCAGTCT -TGTGGTATGTGATAACTGAACAATGACACATGCTTTCATTAATCCCTTTATTTTGTGAGC -ACAACTGGATTTTCTTCCTTGTTTTTGCAGTAGTGGGGTTTTGCTAATTATAGCTTATCT -ATGATGTTCTGTAAGGTTTGTGAAAGGTCCTTGAGTGGTACTCAGGGTGGTCCAAGCATA -CCGCCAGTGCAGCATTTTGTGAGAGCAGAAATGCTTCCCAGTGGATATTTGATACAACCT -TGTGAAGGTGGTGGTTCCATAATCCGTATTGTTGATCACATGGATCTAGAGGTACATGCT -AGTTGTTGATGGCTAGAAGCTGCAATGTAGTTTATACAATTAAATTCCCAGAGTAGCTAT -TCTAAGATGGGCTGATCTTTTCATTGATTTGATTATTGCTATTCAGCCATGGAGTGTGCC -TGAGGTTTTACGACCACTATATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGC -AGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCAC -TGACTGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCAC -AGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAG -GTTAAGCAGGTAATGTGACTACTGCAGGATTATATCTTCTCCCATATTTGAACCATGATG -ATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGAT -TTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTA -TCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAA -CTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAG -TTATTTAAAAAAAA-TGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGG -GAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTG -TAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGAT -CAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTT -ATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGG -CACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCCTGGTTTTGTATTT -TGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTA -TATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATG -TAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACTCAGGAGGAAGCT -GTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTAT -ACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGTTAACATTATCAA -CAACTTTGATGGGCAGCTTTGCAGTGGAATTGATGAACATGCAGCTGGAGCATGTGCTGA -ACTTGTTTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGG -GTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGC -ATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGC -TGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGAT -CTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAA -CTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCAT -TCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATG -TGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGA -ATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTT -GGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCA -TTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACA -GACTCCACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGA -AACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACAT -ACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAA -GTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCA -AATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTG -GACAAAATTCTGGATGAAAANNNNNNNNNNNNNN ->Treesnips_41-1-3 -NNNNNNCCCGCTGGGTACGTGGCATTGTTTTAGCTTTCCAAATTATGGGAAACATTATAT -TGTTTTTGTAGCTAGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGC -AGAGGAGACCTTGACGGAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCA -GATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTT -GCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTGTGCAGCCTGGTCC -GGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTG -CGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGTTTTTTGCTATTC -AGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTG -CAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTTTGA -CTGCGTTTCCTACTGGAAATGGTGGAACAATCGAGCTTTTATACATGCAGGTTTGCTATT -CTCTCTGAAATTGATTCTGATAAGTTGCCATAAGAGGTCAAAAATTAGCAAAATCAGATT -TATCTTTTTTTTTTTTTTTTTTGTATGATGTGGACTGCAGACATATGCCGCCACTACTTT -AGCTTCTGCTAGAGACTTCTGGACTCTGAGATACACAACAGTGTTGGAAGATGGCAGTCT -TGTGGTATGTGATAACTGAACAATGACACATGCTTTCATTAATCCCTTTATTTTGTGAGC -ACAACTGGATTTTCTTCCTTGTTTTTGCAGTAGTGGGGTTTTGCTAATTATAGCTTATCT -ATGATGTTCTGTAAGGTTTGTGAAAGGTCCTTGAGTGGTACTCAGGGTGGTCCAAGCATA -CCGCCAGTGCAGCATTTTGTGAGAGCAGAAATGCTTCCCAGTGGATATTTGATACAACCT -TGTGAAGGTGGTGGTTCCATAATCCGTATTGTTGATCACATGGATCTAGAGGTACATGCT -AGTTGTTGATGGCTAGAAGCTGCAATGTAGTTTATACAATTAAATTCCCAGAGTAGCTAT -TCTAAGATGGGCTGATCTTTTCATTGATTTGATTATTGCTATTCAGCCATGGAGTGTGCC -TGAGGTTTTACGACCACTATATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGC -AGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCAC -TGACTGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCAC -AGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAG -GTTAAGCAGGTAATGTGACTACTGCAGGATGATATCTTCTCCCATATTTGAACCATGATG -ATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGAT -TTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTA -TCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAA -CTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAG -TTATTTAAAAAAAAATGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGG -GAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTG -TAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGAT -CAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTT -ATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGG -CACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCTTGGTTTTGTATTT -TGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTA -TATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATG -TAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACACAGGAGGAAGCT -GTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTAT -ACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGTTAACATTATCAA -CAACTTTGATGGGCAGCTTTGCAGTGGAATTGATGAACATGCAGCTGGAGCATGTGCTGA -ACTTGTTTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGG -GTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGC -ATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGC -TGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGAT -CTGGGGGTCCCAACCGGACATTGGACTTGGCTTCTGCTCTTGAGGTTGGATCAACTGGAA -CTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCAT -TCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATG -TGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGA -ATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTT -GGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCA -TTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACA -GACTACACATAGGGGTGGATCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGA -AACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACAT -ACAAA-TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTAGTTGTGAA -GTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCA -AATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTG -GACAAAATTCTGGATGAAAANNNNNNNNNNNNNN ->Treesnips_41-2-1 -NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN -NNNNNNNNNNNNNNGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGC -AGAGGAGACCTTGACGGAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCA -GATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTT -GCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTGTGCAGCCTGGTCC -GGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTG -CGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGTTTTTTGCTATTC -AGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTG -CAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTTTGA -CTGCGTTTCCTACTGGAAATGGTGGAACAATCGAGCTTTTATACATGCAGGTTTGCTATT -CTCTCTGAAATTGATTCTGATAAGTTGCCATAAGAGGTCAAAAATTAGCAAAATCAGATT -TATCTTTTTTTTTTTTTTTTTTGTATGATGTGGACTGCAGACATATGCCGCCACTACTTT -AGCTTCTGCTAGAGACTTCTGGACTCTGAGATACACAACAGTGTTGGAAGATGGCAGTCT -TGTGGTATGTGATAACTGAACAATGACACATGCTTTCATTAATCCCTTTATTTTGTGAGC -ACAACTGGATTTTCTTCCTTGTTTTTGCAGTAGTGGGGTTTTGCTAATTATAGCTTATCT -ATGATGTTCTGTAAGGTTTGTGAAAGGTCCTTGAGTGGTACTCAGGGTGGTCCAAGCATA -CCGCCAGTGCAGCATTTTGTGAGAGCAGAAATGCTTCCCAGTGGATATTTGATACAACCT -TGTGAAGGTGGTGGTTCCATAATCCGTATTGTTGATCACATGGATCTAGAGGTACATGCT -AGTTGTTGATGGCTAGAAGCTGCAATGTAGTTTATACAATTAAATTCCCAGAGTAGCTAT -TCTAAGATGGGCTGATCTTTTCATTGATTTGATTATTGCTATTCAGCCATGGAGTGTGCC -TGAGGTTTTACGACCACTATATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGC -AGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCAC -TGACTGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCAC -AGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAG -GTTAAGCAGGTAATGTGACTACTGCAGGATGATATCTTCTCCCATATTTGAACCATGATG -ATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGAT -TTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTA -TCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAA -CTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAG -TTATTTAAAAAAAAATGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGG -GAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTG -TAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGAT -CAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTT -ATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGG -CACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCTTGGTTTTGTATTT -TGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTA -TATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATG -TAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACACAGGAGGAAGCT -GTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTAT -ACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGTTAACATTATCAA -CAACTTTGATGGGCAGCTTTGCAGTGGAATTGATGAACATGCAGCTGGAGCATGTGCTGA -ACTTGTTTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGG -GTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGC -ATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGC -TGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGAT -CTGGGGGTCCCAACCGGACATTGGACTTGGCTTCTGCTCTTGAGGTTGGATCAACTGGAA -CTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCAT -TCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATG -TGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGA -ATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTT -GGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCA -TTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACA -GACTACACATAGGGGTGGATCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGA -AACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACAT -ACAAA-TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTAGTTGTGAA -GTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCA -AATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTG -GACAAAATTCTGGATGAAAATGNNNNNNNNNNNN ->Treesnips_41-3-2 -NNNNNNCCCGCTGGGTACGTGGCATTGTTTTAGCTTTCCAAATTATGGGAAACATTATAT -TGTTTTTGTAGCTAGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGC -AGAGGAGACCTTGACAGAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCA -GATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTT -GCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTTTGCAGCCTGGTCC -GGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTG -CGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGTGTTTTGCTATTC -AGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTG -CAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTTTGA -CTGCGTTTCCTACTGGAAATGGTGGAACAATCGAGCTTTTATACATGCAGGTTTGCTATT -CTCTCTGAAATTGATTCTGATAAGTTGCCATAAGAGGTCAAAAATTAGCAAAATCAGATT -TATCTTTTTTTTTTTTTTTTTTGTATGATGTGGACTGCAGACATATGCCGCCACTACTTT -AGCTTCTGCTAGAGACTTCTGGACTCTGAGATACACAACAGTGTTGGAAGATGGCAGTCT -TGTGGTATGTGATAACTGAACAATGACACATGCTTTCATTAATCCCTTTATTTTGTGAGC -ACAACTGGATTTTCTTCCTTGTTTTTGCAGTAGTGGGGTTTTGCTAATTATAGCTTATCT -ATGATGTTCTGTAAGGTTTGTGAAAGGTCCTTGAGTGGTACTCAGGGTGGTCCAAGCATA -CCGCCAGTGCAGCATTTTGTGAGAGCAGAAATGCTTCCCAGTGGATATTTGATACAACCT -TGTGAAGGTGGTGGTTCCATAATCCGTATTGTTGATCACATGGATCTAGAGGTACATGCT -AGTTGTTGATGGCTAGAAGCTGCAATGTAGTTTATACAATTAAATTCCCAGAGTAGCTAT -TCTAAGATGGGCTGATCTTTTCATTGATTTGATTATTGCTATTCAGCCATGGAGTGTGCC -TGAGGTTTTACGACCACTATATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGC -AGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCAC -TGACTGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCAC -AGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAG -GTTAAGCAGGTAATGTGACTACTGCAGGATTATATCTTCTCCCATATTTGAACCATGATG -ATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGAT -TTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTA -TCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAA -CTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAG -TTATTTAAAAAAAA-TGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGG -GAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTG -TAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGAT -CAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTT -ATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGG -CACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCCTGGTTTTGTATTT -TGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTA -TATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATG -TAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACTCAGGAGGAAGCT -GTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTAT -ACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGTTAACATTATCAA -CAACTTTGATGGGCAGCTTTGCAGTGGAATTGATGAACATGCAGCTGGAGCATGTGCTGA -ACTTGTTTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGG -GTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGC -ATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGC -TGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGAT -CTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAA -CTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCAT -TCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATG -TGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGA -ATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTT -GGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCA -TTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACA -GACTCCACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGA -AACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACAT -ACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAA -GTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCA -AATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTG -GACAAAATTCTGGATGAAAATGGNNNNNNNNNNN ->Treesnips_41-6-2 -GCTAGCCCCGCTGGGTACGTGGCATTGTTTTAGCTTTCCAAATTATGGGAAACATTATAT -TGTTTTTGTAGCTAGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGC -AGAGGAGACCTTGACAGAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCA -GATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTT -GCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTTTGCAGCCTGGTCC -GGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTG -CGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGTGTTTTGCTATTC -AGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTG -CAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTTTGA -CTGCGTTTCCTACTGGAAATGGTGGAACAATCGAGCTTTTATACATGCAGGTTTGCTATT -CTCTCTGAAATTGATTCTGATAAGTTGCCATAAGAGGTCAAAAATTAGCAAAATCAGATT -TATCTTTTTTTTTTTTTTTTTTGTATGATGTGGACTGCAGACATATGCCGCCACTACTTT -AGCTTCTGCTAGAGACTTCTGGACTCTGAGATACACAACAGTGTTGGAAGATGGCAGTCT -TGTGGTATGTGATAACTGAACAATGACACATGCTTTCATTAATCCCTTTATTTTGTGAGC -ACAACTGGATTTTCTTCCTTGTTTTTGCAGTAGTGGGGTTTTGCTAATTATAGCTTATCT -ATGATGTTCTGTAAGGTTTGTGAAAGGTCCTTGAGTGGTACTCAGGGTGGTCCAAGCATA -CCGCCAGTGCAGCATTTTGTGAGAGCAGAAATGCTTCCCAGTGGATATTTGATACAACCT -TGTGAAGGTGGTGGTTCCATAATCCGTATTGTTGATCACATGGATCTAGAGGTACATGCT -AGTTGTTGATGGCTAGAAGCTGCAATGTAGTTTATACAATTAAATTCCCAGAGTAGCTAT -TCTAAGATGGGCTGATCTTTTCATTGATTTGATTATTGCTATTCAGCCATGGAGTGTGCC -TGAGGTTTTACGACCACTATATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGC -AGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCAC -TGACTGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCAC -AGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAG -GTTAAGCAGGTAATGTGACTACTGCAGGATTATATCTTCTCCCATATTTGAACCATGATG -ATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGAT -TTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTA -TCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAA -CTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAG -TTATTTAAAAAAAA-TGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGG -GAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTG -TAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGAT -CAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTT -ATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGG -CACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCCTGGTTTTGTATTT -TGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTA -TATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATG -TAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACTCAGGAGGAAGCT -GTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTAT -ACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGTTAACATTATCAA -CAACTTTGATGGGCAGCTTTGCAGTGGAATTGATGAACATGCAGCTGGAGCATGTGCTGA -ACTTGTTTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGG -GTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGC -ATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGC -TGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGAT -CTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAA -CTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCAT -TCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATG -TGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGA -ATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTT -GGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCA -TTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACA -GACTCCACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGA -AACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACAT -ACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAA -GTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCA -AATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTG -GACAAAATTCTGGATGAAAATGGTCGCAAAAGTA ->Treesnips_41-9-1 -GCTAGCCCCGCTGGGTACGTGGCATTGTTTTAGCTTTCCAAATTATGGGAAACATTATAT -TGTTTTTGTAGCTAGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGC -AGAGGAGACCTTGACGGAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCA -GATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTT -GCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTGTGCAGCCTGGTCC -GGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTG -CGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGTTTTTTGCTATTC -AGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTG -CAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTTTGA -CTGCGTTTCCTACTGGAAATGGTGGAACAATCGAGCTTTTATACATGCAGGTTTGCTATT -CTCTCTGAAATTGATTCTGATAAGTTGCCATAAGAGGTCAAAAATTAGCAAAATCAGATT -TATCTTTTTTTTTTTTTTTTTTGTATGATGTGGACTGCAGACATATGCCGCCACTACTTT -AGCTTCTGCTAGAGACTTCTGGACTCTGAGATACACAACAGTGTTGGAAGATGGCAGTCT -TGTGGTATGTGATAACTGAACAATGACACATGCTTTCATTAATCCCTTTATTTTGTGAGC -ACAACTGGATTTTCTTCCTTGTTTTTGCAGTAGTGGGGTTTTGCTAATTATAGCTTATCT -ATGATGTTCTGTAAGGTTTGTGAAAGGTCCTTGAGTGGTACTCAGGGTGGTCCAAGCATA -CCGCCAGTGCAGCATTTTGTGAGAGCAGAAATGCTTCCCAGTGGATATTTGATACAACCT -TGTGAAGGTGGTGGTTCCATAATCCGTATTGTTGATCACATGGATCTAGAGGTACATGCT -AGTTGTTGATGGCTAGAAGCTGCAATGTAGTTTATACAATTAAATTCCCAGAGTAGCTAT -TCTAAGATGGGCTGATCTTTTCATTGATTTGATTATTGCTATTCAGCCATGGAGTGTGCC -TGAGGTTTTACGACCACTATATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGC -AGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCAC -TGACTGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCAC -AGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAG -GTTAAGCAGGTAATGTGACTACTGCAGGATGATATCTTCTCCCATATTTGAACCATGATG -ATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGAT -TTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTA -TCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAA -CTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAG -TTATTTAAAAAAAAATGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGG -GAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTG -TAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGAT -CAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTT -ATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGG -CACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCTTGGTTTTGTATTT -TGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTA -TATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATG -TAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACACAGGAGGAAGCT -GTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTAT -ACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGTTAACATTATCAA -CAACTTTGATGGGCAGCTTTGCAGTGGAATTGATGAACATGCAGCTGGAGCATGTGCTGA -ACTTGTTTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGG -GTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGC -ATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGC -TGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGAT -CTGGGGGTCCCAACCGGACATTGGACTTGGCTTCTGCTCTTGAGGTTGGATCAACTGGAA -CTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACCATTGCAT -TCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATG -TGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGA -ATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTT -GGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCA -TTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACA -GACTACACATAGGGGTGGATCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGA -AACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACAT -ACAAA-TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTAGTTGTGAA -GTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCA -AATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTG -GACAAAATTCTGGATGAAAATGGNNNNNNNNNNN ->Treesnips_42-1-3 -NNNAGCCCCGCTGGGTACGTGGCATTGTTTTAGCTTTCCAAATTATGGGAAACATTATAT -TGTTTTTGTAGCTAGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGC -AGAGGAGACCTTGACAGAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCA -GATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTT -GCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTTTGCAGCCTGGTCC -GGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTG -CGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGTGTTTTGCTATTC -AGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTG -CAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTTTGA -CTGCGTTTCCTACTGGAAATGGTGGAACAATCGAGCTTTTATACATGCAGGTTTGCTATT -CTCTCTGAAATTGATTCTGATAAGTTGCCATAAGAGGTCAAAAATTAGCAAAATCAGATT -TATCTTTTTTTTTTTTTTTTTTGTATGATGTGGACTGCAGACATATGCCGCCACTACTTT -AGCTTCTGCTAGAGACTTCTGGACTCTGAGATACACAACAGTGTTGGAAGATGGCAGTCT -TGTGGTATGTGATAACTGAACAATGACACATGCTTTCATTAATCCCTTTATTTTGTGAGC -ACAACTGGATTTTCTTCCTTGTTTTTGCAGTAGTGGGGTTTTGCTAATTATAGCTTATCT -ATGATGTTCTGTAAGGTTTGTGAAAGGTCCTTGAGTGGTACTCAGGGTGGTCCAAGCATA -CCGCCAGTGCAGCATTTTGTGAGAGCAGAAATGCTTCCCAGTGGATATTTGATACAACCT -TGTGAAGGTGGTGGTTCCATAATCCGTATTGTTGATCACATGGATCTAGAGGTACATGCT -AGTTGTTGATGGCTAGAAGCTGCAATGTAGTTTATACAATTAAATTCCCAGAGTAGCTAT -TCTAAGATGGGCTGATCTTTTCATTGATTTGATTATTGCTATTCAGCCATGGAGTGTGCC -TGAGGTTTTACGACCACTATATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGC -AGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCAC -TGACTGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCAC -AGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAG -GTTAAGCAGGTAATGTGACTACTGCAGGATTATATCTTCTCCCATATTTGAACCATGATG -ATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGAT -TTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTA -TCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAA -CTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAG -TTATTTAAAAAAAA-TGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGG -GAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTG -TAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGAT -CAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTT -ATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGG -CACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCCTGGTTTTGTATTT -TGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTA -TATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATG -TAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACTCAGGAGGAAGCT -GTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTAT -ACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGTTAACATTATCAA -CAACTTTGATGGGCAGCTTTGCAGTGGAATTGATGAACATGCAGCTGGAGCATGTGCTGA -ACTTGTTTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGG -GTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGC -ATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGC -TGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGAT -CTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAA -CTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCAT -TCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATG -TGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGA -ATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTT -GGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCA -TTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACA -GACTCCACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGA -AACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACAT -ACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAA -GTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCA -AATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTG -GACAAAATTCTGGATGAAAATGNNNNNNNNNNNN ->Treesnips_42-8-2 -GCTAGCCCCGCTGGGTACGTGGCATTGTTTTAGCTTTCCAAATTATGGGAAACATTATAT -TGTTTTTGTAGCTAGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGC -AGAGGAGACCTTGACAGAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCA -GATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTT -GCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTTTGCAGCCTGGTCC -GGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTG -CGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGTGTTTTGCTATTC -AGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTG -CAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTTTGA -CTGCGTTTCCTACTGGAAATGGTGGAACAATCGAGCTTTTATACATGCAGGTTTGCTATT -CTCTCTGAAATTGATTCTGATAAGTTGCCATAAGAGGTCAAAAATTAGCAAAATCAGATT -TATCTTTTTTTTTTTTTTTTTTGTATGATGTGGACTGCAGACATATGCCGCCACTACTTT -AGCTTCTGCTAGAGACTTCTGGACTCTGAGATACACAACAGTGTTGGAAGATGGCAGTCT -TGTGGTATGTGATAACTGAACAATGACACATGCTTTCATTAATCCCTTTATTTTGTGAGC -ACAACTGGATTTTCTTCCTTGTTTTTGCAGTAGTGGGGTTTTGCTAATTATAGCTTATCT -ATGATGTTCTGTAAGGTTTGTGAAAGGTCCTTGAGTGGTACTCAGGGTGGTCCAAGCATA -CCGCCAGTGCAGCATTTTGTGAGAGCAGAAATGCTTCCCAGTGGATATTTGATACAACCT -TGTGAAGGTGGTGGTTCCATAATCCGTATTGTTGATCACATGGATCTAGAGGTACATGCT -AGTTGTTGATGGCTAGAAGCTGCAATGTAGTTTATACAATTAAATTCCCAGAGTAGCTAT -TCTAAGATGGGCTGATCTTTTCATTGATTTGATTATTGCTATTCAGCCATGGAGTGTGCC -TGAGGTTTTACGACCACTATATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGC -AGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCAC -TGACTGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCAC -AGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAG -GTTAAGCAGGTAATGTGACTACTGCAGGATTATATCTTCTCCCATATTTGAACCATGATG -ATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGAT -TTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTA -TCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAA -CTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAG -TTATTTAAAAAAAA-TGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGG -GAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTG -TAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGAT -CAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTT -ATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGG -CACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCCTGGTTTTGTATTT -TGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTA -TATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATG -TAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACTCAGGAGGAAGCT -GTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTAT -ACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGTTAACATTATCAA -CAACTTTGATGGGCAGCTTTGCAGTGGAATTGATGAACATGCAGCTGGAGCATGTGCTGA -ACTTGTTTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGG -GTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGC -ATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGC -TGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGAT -CTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAA -CTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCAT -TCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATG -TGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGA -ATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTT -GGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCA -TTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACA -GACTCCACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGA -AACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACAT -ACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAA -GTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCA -AATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTG -GACAAAATTCTGGATGAAAATGGNNNNNNNNNNN ->Treesnips_42-1-2 -NNNNNCCCCGCTGGGTACGTGGCATTGTTTTAGCTTTCCAAATTATGGGAAACATTATAT -TGTTTTTGTAGCTAGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGC -AGAGGAGACCTTGACAGAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCA -GATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTT -GCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTTTGCAGCCTGGTCC -GGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTG -CGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGTGTTTTGCTATTC -AGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTG -CAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTTTGA -CTGCGTTTCCTACTGGAAATGGTGGAACAATCGAGCTTTTATACATGCAGGTTTGCTATT -CTCTCTGAAATTGATTCTGATAAGTTGCCATAAGAGGTCAAAAATTAGCAAAATCAGATT -TATCTTTTTTTTTTTTTTTTTTGTATGATGTGGACTGCAGACATATGCCGCCACTACTTT -AGCTTCTGCTAGAGACTTCTGGACTCTGAGATACACAACAGTGTTGGAAGATGGCAGTCT -TGTGGTATGTGATAACTGAACAATGACACATGCTTTCATTAATCCCTTTATTTTGTGAGC -ACAACTGGATTTTCTTCCTTGTTTTTGCAGTAGTGGGGTTTTGCTAATTATAGCTTATCT -ATGATGTTCTGTAAGGTTTGTGAAAGGTCCTTGAGTGGTACTCAGGGTGGTCCAAGCATA -CCGCCAGTGCAGCATTTTGTGAGAGCAGAAATGCTTCCCAGTGGATATTTGATACAACCT -TGTGAAGGTGGTGGTTCCATAATCCGTATTGTTGATCACATGGATCTAGAGGTACATGCT -AGTTGTTGATGGCTAGAAGCTGCAATGTAGTTTATACAATTAAATTCCCAGAGTAGCTAT -TCTAAGATGGGCTGATCTTTTCATTGATTTGATTATTGCTATTCAGCCATGGAGTGTGCC -TGAGGTTTTACGACCACTATATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGC -AGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCAC -TGACTGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCAC -AGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAG -GTTAAGCAGGTAATGTGACTACTGCAGGATTATATCTTCTCCCATATTTGAACCATGATG -ATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGAT -TTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTA -TCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAA -CTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAG -TTATTTAAAAAAAA-TGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGG -GAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTG -TAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGAT -CAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTT -ATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGG -CACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCCTGGTTTTGTATTT -TGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTA -TATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATG -TAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACTCAGGAGGAAGCT -GTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTAT -ACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGTTAACATTATCAA -CAACTTTGATGGGCAGCTTTGCAGTGGAATTGATGAACATGCAGCTGGAGCATGTGCTGA -ACTTGTTTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGG -GTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGC -ATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGC -TGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGAT -CTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAA -CTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCAT -TCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATG -TGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGA -ATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTT -GGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCA -TTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACA -GACTCCACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGA -AACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACAT -ACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAA -GTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCA -AATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTG -GACAAAATTCTGGATGAAAATGNNNNNNNNNNNN ->Treesnips_42-2-1 -NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN -NNNNNNNNNNNNNNGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGC -AGAGGAGACCTTGACAGAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCA -GATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTT -GCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTTTGCAGCCTGGTCC -GGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTG -CGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGTGTTTTGCTATTC -AGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTG -CAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTTTGA -CTGCGTTTCCTACTGGAAATGGTGGAACAATCGAGCTTTTATACATGCAGGTTTGCTATT -CTCTCTGAAATTGATTCTGATAAGTTGCCATAAGAGGTCAAAAATTAGCAAAATCAGATT -TATCTTTTTTTTTTTTTTTTTTGTATGATGTGGACTGCAGACATATGCCGCCACTACTTT -AGCTTCTGCTAGAGACTTCTGGACTCTGAGATACACAACAGTGTTGGAAGATGGCAGTCT -TGTGGTATGTGATAACTGAACAATGACACATGCTTTCATTAATCCCTTTATTTTGTGAGC -ACAACTGGATTTTCTTCCTTGTTTTTGCAGTAGTGGGGTTTTGCTAATTATAGCTTATCT -ATGATGTTCTGTAAGGTTTGTGAAAGGTCCTTGAGTGGTACTCAGGGTGGTCCAAGCATA -CCGCCAGTGCAGCATTTTGTGAGAGCAGAAATGCTTCCCAGTGGATATTTGATACAACCT -TGTGAAGGTGGTGGTTCCATAATCCGTATTGTTGATCACATGGATCTAGAGGTACATGCT -AGTTGTTGATGGCTAGAAGCTGCAATGTAGTTTATACAATTAAATTCCCAGAGTAGCTAT -TCTAAGATGGGCTGATCTTTTCATTGATTTGATTATTGCTATTCAGCCATGGAGTGTGCC -TGAGGTTTTACGACCACTATATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGC -AGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCAC -TGACTGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCAC -AGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAG -GTTAAGCAGGTAATGTGACTACTGCAGGATTATATCTTCTCCCATATTTGAACCATGATG -ATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGAT -TTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTA -TCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAA -CTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAG -TTATTTAAAAAAAA-TGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGG -GAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTG -TAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGAT -CAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTT -ATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGG -CACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCCTGGTTTTGTATTT -TGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTA -TATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATG -TAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACTCAGGAGGAAGCT -GTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTAT -ACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGTTAACATTATCAA -CAACTTTGATGGGCAGCTTTGCAGTGGAATTGATGAACATGCAGCTGGAGCATGTGCTGA -ACTTGTTTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGG -GTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGC -ATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGC -TGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGAT -CTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAA -CTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCAT -TCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATG -TGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGA -ATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTT -GGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCA -TTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACA -GACTCCACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGA -AACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACAT -ACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAA -GTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCA -AATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTG -GACAAAATTCTGGATGAAAATGNNNNNNNNNNNN ->Treesnips_42-2-2 -NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN -NNNNNNNNNNNNNNGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGC -AGAGGAGACCTTGACGGAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCA -GATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTT -GCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTGTGCAGCCTGGTCC -GGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTG -CGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGTTTTTTGCTATTC -AGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTG -CAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTTTGA -CTGCGTTTCCTACTGGAAATGGTGGAACAATCGAGCTTTTATACATGCAGGTTTGCTATT -CTCTCTGAAATTGATTCTGATAAGTTGCCATAAGAGGTCAAAAATTAGCAAAATCAGATT -TATCTTTTTTTTTTTTTTTTTTGTATGATGTGGACTGCAGACATATGCCGCCACTACTTT -AGCTTCTGCTAGAGACTTCTGGACTCTGAGATACACAACAGTGTTGGAAGATGGCAGTCT -TGTGGTATGTGATAACTGAACAATGACACATGCTTTCATTAATCCCTTTATTTTGTGAGC -ACAACTGGATTTTCTTCCTTGTTTTTGCAGTAGTGGGGTTTTGCTAATTATAGCTTATCT -ATGATGTTCTGTAAGGTTTGTGAAAGGTCCTTGAGTGGTACTCAGGGTGGTCCAAGCATA -CCGCCAGTGCAGCATTTTGTGAGAGCAGAAATGCTTCCCAGTGGATATTTGATACAACCT -TGTGAAGGTGGTGGTTCCATAATCCGTATTGTTGATCACATGGATCTAGAGGTACATGCT -AGTTGTTGATGGCTAGAAGCTGCAATGTAGTTTATACAATTAAATTCCCAGAGTAGCTAT -TCTAAGATGGGCTGATCTTTTCATTGATTTGATTATTGCTATTCAGCCATGGAGTGTGCC -TGAGGTTTTACGACCACTATATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGC -AGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCAC -TGACTGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCAC -AGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAG -GTTAAGCAGGTAATGTGACTACTGCAGGATGATATCTTCTCCCATATTTGAACCATGATG -ATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGAT -TTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTA -TCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAA -CTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAG -TTATTTAAAAAAAAATGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGG -GAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTG -TAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGAT -CAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTT -ATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGG -CACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCTTGGTTTTGTATTT -TGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTA -TATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATG -TAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACACAGGAGGAAGCT -GTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTAT -ACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGTTAACATTATCAA -CAACTTTGATGGGCAGCTTTGCAGTGGAATTGATGAACATGCAGCTGGAGCATGTGCTGA -ACTTGTTTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGG -GTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGC -ATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGC -TGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGAT -CTGGGGGTCCCAACCGGACATTGGACTTGGCTTCTGCTCTTGAGGTTGGATCAACTGGAA -CTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCAT -TCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATG -TGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGA -ATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTT -GGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCA -TTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACA -GACTACACATAGGGGTGGATCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGA -AACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACAT -ACAAA-TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTAGTTGTGAA -GTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCA -AATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTG -GACAAAATTCTGGATGAAAATGGTCGCAAAAGTA ->Treesnips_42-8-1 -NNNNGCCCCGCTGGGTACGTGGCATTGTTTTAGCTTTCCAAATTATGGGAAACATTATAT -TGTTTTTGTAGCTAGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGC -AGAGGAGACCTTGACAGAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCA -GATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTT -GCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTTTGCAGCCTGGTCC -GGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTG -CGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGTGTTTTGCTATTC -AGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTG -CAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTTTGA -CTGCGTTTCCTACTGGAAATGGTGGAACAATCGAGCTTTTATACATGCAGGTTTGCTATT -CTCTCTGAAATTGATTCTGATAAGTTGCCATAAGAGGTCAAAAATTAGCAAAATCAGATT -TATCTTTTTTTTTTTTTTTTTTGTATGATGTGGACTGCAGACATATGCCGCCACTACTTT -AGCTTCTGCTAGAGACTTCTGGACTCTGAGATACACAACAGTGTTGGAAGATGGCAGTCT -TGTGGTATGTGATAACTGAACAATGACACATGCTTTCATTAATCCCTTTATTTTGTGAGC -ACAACTGGATTTTCTTCCTTGTTTTTGCAGTAGTGGGGTTTTGCTAATTATAGCTTATCT -ATGATGTTCTGTAAGGTTTGTGAAAGGTCCTTGAGTGGTACTCAGGGTGGTCCAAGCATA -CCGCCAGTGCAGCATTTTGTGAGAGCAGAAATGCTTCCCAGTGGATATTTGATACAACCT -TGTGAAGGTGGTGGTTCCATAATCCGTATTGTTGATCACATGGATCTAGAGGTACATGCT -AGTTGTTGATGGCTAGAAGCTGCAATGTAGTTTATACAATTAAATTCCCAGAGTAGCTAT -TCTAAGATGGGCTGATCTTTTCATTGATTTGATTATTGCTATTCAGCCATGGAGTGTGCC -TGAGGTTTTACGACCACTATATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGC -AGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCAC -TGACTGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCAC -AGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAG -GTTAAGCAGGTAATGTGACTACTGCAGGATTATATCTTCTCCCATATTTGAACCATGATG -ATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGAT -TTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTA -TCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAA -CTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAG -TTATTTAAAAAAAA-TGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGG -GAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTG -TAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGAT -CAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTT -ATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGG -CACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCCTGGTTTTGTATTT -TGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTA -TATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATG -TAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACTCAGGAGGAAGCT -GTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTAT -ACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGTTAACATTATCAA -CAACTTTGATGGGCAGCTTTGCAGTGGAATTGATGAACATGCAGCTGGAGCATGTGCTGA -ACTTGTTTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGG -GTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGC -ATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGC -TGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGAT -CTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAA -CTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCAT -TCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATG -TGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGA -ATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTT -GGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCA -TTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACA -GACTCCACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGA -AACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACAT -ACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAA -GTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCA -AATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTG -GACAAAATTCTGGATGAAAATGGNNNNNNNNNNN ->Treesnips_42-9-2 -NNNNNCCCCGCTGGGTACGTGGCATTGTTTTAGCTTTCCAAATTATGGGAAACATTATAT -TGTTTTTGTAGCTAGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGC -AGAGGAGACCTTGACAGAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCA -GATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTT -GCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTTTGCAGCCTGGTCC -GGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTG -CGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGTGTTTTGCTATTC -AGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTG -CAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTTTGA -CTGCGTTTCCTACTGGAAATGGTGGAACAATCGAGCTTTTATACATGCAGGTTTGCTATT -CTCTCTGAAATTGATTCTGATAAGTTGCCATAAGAGGTCAAAAATTAGCAAAATCAGATT -TATCTTTTTTTTTTTTTTTTTTGTATGATGTGGACTGCAGACATATGCCGCCACTACTTT -AGCTTCTGCTAGAGACTTCTGGACTCTGAGATACACAACAGTGTTGGAAGATGGCAGTCT -TGTGGTATGTGATAACTGAACAATGACACATGCTTTCATTAATCCCTTTATTTTGTGAGC -ACAACTGGATTTTCTTCCTTGTTTTTGCAGTAGTGGGGTTTTGCTAATTATAGCTTATCT -ATGATGTTCTGTAAGGTTTGTGAAAGGTCCTTGAGTGGTACTCAGGGTGGTCCAAGCATA -CCGCCAGTGCAGCATTTTGTGAGAGCAGAAATGCTTCCCAGTGGATATTTGATACAACCT -TGTGAAGGTGGTGGTTCCATAATCCGTATTGTTGATCACATGGATCTAGAGGTACATGCT -AGTTGTTGATGGCTAGAAGCTGCAATGTAGTTTATACAATTAAATTCCCAGAGTAGCTAT -TCTAAGATGGGCTGATCTTTTCATTGATTTGATTATTGCTATTCAGCCATGGAGTGTGCC -TGAGGTTTTACGACCACTATATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGC -AGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCAC -TGACTGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCAC -AGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAG -GTTAAGCAGGTAATGTGACTACTGCAGGATTATATCTTCTCCCATATTTGAACCATGATG -ATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGAT -TTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTA -TCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAA -CTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAG -TTATTTAAAAAAAA-TGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGG -GAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTG -TAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGAT -CAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTT -ATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGG -CACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCCTGGTTTTGTATTT -TGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTA -TATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATG -TAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACTCAGGAGGAAGCT -GTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTAT -ACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGTTAACATTATCAA -CAACTTTGATGGGCAGCTTTGCAGTGGAATTGATGAACATGCAGCTGGAGCATGTGCTGA -ACTTGTTTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGG -GTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGC -ATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGC -TGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGAT -CTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAA -CTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCAT -TCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATG -TGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGA -ATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTT -GGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCA -TTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACA -GACTCCACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGA -AACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACAT -ACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAA -GTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCA -AATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTG -GACAAAATTCTGGATGAAAATGGNNNNNNNNNNN ->Treesnips_43-4-3 -NNTAGCCCCGCTGGGTACGTGGCATTGTTTTAGCTTTCCAAATTATGGGAAACATTATAT -TGTTTTTGTAGCTAGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGC -AGAGGAGACCTTGACGGAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCA -GATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTT -GCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTGTGCAGCCTGGTCC -GGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTG -CGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGTTTTTTGCTATTC -AGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTG -CAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTTTGA -CTGCGTTTCCTACTGGAAATGGTGGAACAATCGAGCTTTTATACATGCAGGTTTGCTATT -CTCTCTGAAATTGATTCTGATAAGTTGCCATAAGAGGTCAAAAATTAGCAAAATCAGATT -TATCTTTTTTTTTTTTTTTTTTGTATGATGTGGACTGCAGACATATGCCGCCACTACTTT -AGCTTCTGCTAGAGACTTCTGGACTCTGAGATACACAACAGTGTTGGAAGATGGCAGTCT -TGTGGTATGTGATAACTGAACAATGACACATGCTTTCATTAATCCCTTTATTTTGTGAGC -ACAACTGGATTTTCTTCCTTGTTTTTGCAGTAGTGGGGTTTTGCTAATTATAGCTTATCT -ATGATGTTCTGTAAGGTTTGTGAAAGGTCCTTGAGTGGTACTCAGGGTGGTCCAAGCATA -CCGCCAGTGCAGCATTTTGTGAGAGCAGAAATGCTTCCCAGTGGATATTTGATACAACCT -TGTGAAGGTGGTGGTTCCATAATCCGTATTGTTGATCACATGGATCTAGAGGTACATGCT -AGTTGTTGATGGCTAGAAGCTGCAATGTAGTTTATACAATTAAATTCCCAGAGTAGCTAT -TCTAAGATGGGCTGATCTTTTCATTGATTTGATTATTGCTATTCAGCCATGGAGTGTGCC -TGAGGTTTTACGACCACTATATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGC -AGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCAC -TGATTGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCAC -AGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAG -GTTAAGCAGGTAATGTGACTACTGCAGGATGATATCTTCTCCCATATTTGAACCATGATG -ATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGAT -TTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTA -TCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAA -CTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAG -TTATTTAAAAAAAAATGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGG -GAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTG -TAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGAT -CAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTT -ATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGG -CACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCTTGGTTTTGTATTT -TGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATCTTTCCTGGTGTTTTTGGTTCTA -TATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATG -TAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACACAGGAGGAAGCT -GTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTAT -ACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGTTAACATTATCAA -CAACTTTGATGGGCAGCTTTGCAGTGGAATTGATGAACATGCAGCTGGAGCATGTGCTGA -ACTTGTTTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGG -GTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGC -ATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGC -TGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGAT -CTGGGGGTCCCAACCGGACATTGGACTTGGCTTCTGCTCTTGAGGTTGGATCAACTGGAA -CTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCAT -TCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATG -TGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGA -ATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTT -GGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCA -TTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACA -GACTACACATAGGGGTGGATCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGA -AACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACAT -ACAAA-TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAA -GTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCA -AATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTG -GACAAAATTCTGGATGAAAATGNNNNNNNNNNNN ->Treesnips_43-5-3 -GCTAGCCCCGCTGGGTACGTGGCATTGTTTTAGCTTTCCAAATTATGGGAAACATTATAT -TGTTTTTGTAGCTAGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGC -AGAGGAGACCTTGACAGAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCA -GATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTT -GCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTTTGCAGCCTGGTCC -GGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTG -CGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGTGTTTTGCTATTC -AGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTG -CAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTTTGA -CTGCGTTTCCTACTGGAAATGGTGGAACAATCGAGCTTTTATACATGCAGGTTTGCTATT -CTCTCTGAAATTGATTCTGATAAGTTGCCATAAGAGGTCAAAAATTAGCAAAATCAGATT -TATCTTTTTTTTTTTTTTTTTTGTATGATGTGGACTGCAGACATATGCCGCCACTACTTT -AGCTTCTGCTAGAGACTTCTGGACTCTGAGATACACAACAGTGTTGGAAGATGGCAGTCT -TGTGGTATGTGATAACTGAACAATGACACATGCTTTCATTAATCCCTTTATTTTGTGAGC -ACAACTGGATTTTCTTCCTTGTTTTTGCAGTAGTGGGGTTTTGCTAATTATAGCTTATCT -ATGATGTTCTGTAAGGTTTGTGAAAGGTCCTTGAGTGGTACTCAGGGTGGTCCAAGCATA -CCGCCAGTGCAGCATTTTGTGAGAGCAGAAATGCTTCCCAGTGGATATTTGATACAACCT -TGTGAAGGTGGTGGTTCCATAATCCGTATTGTTGATCACATGGATCTAGAGGTACATGCT -AGTTGTTGATGGCTAGAAGCTGCAATGTAGTTTATACAATTAAATTCCCAGAGTAGCTAT -TCTAAGATGGGCTGATCTTTTCATTGATTTGATTATTGCTATTCAGCCATGGAGTGTGCC -TGAGGTTTTACGACCACTATATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGC -AGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCAC -TGACTGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCAC -AGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAG -GTTAAGCAGGTAATGTGACTACTGCAGGATTATATCTTCTCCCATATTTGAACCATGATG -ATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGAT -TTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTA -TCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAA -CTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAG -TTATTTAAAAAAAA-TGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGG -GAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTG -TAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGAT -CAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTT -ATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGG -CACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCCTGGTTTTGTATTT -TGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTA -TATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATG -TAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACTCAGGAGGAAGCT -GTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTAT -ACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGTTAACATTATCAA -CAACTTTGATGGGCAGCTTTGCAGTGGAATTGATGAACATGCAGCTGGAGCATGTGCTGA -ACTTGTTTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGG -GTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGC -ATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGC -TGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGAT -CTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAA -CTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCAT -TCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATG -TGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGA -ATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTT -GGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCA -TTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACA -GACTCCACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGA -AACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACAT -ACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAA -GTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCA -AATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTG -GACAAAATTCTGGATGAAAATGGNNNNNNNNNNN ->Treesnips_43-1-1 -NNNNGCCCCGCTGGGTACGTGGCATTGTTTTAGCTTTCCAAATTATGGGAAACATTATAT -TGTTTTTGTAGCTAGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGC -AGAGGAGACCTTGACGGAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCA -GATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTT -GCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTGTGCAGCCTGGTCC -GGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTG -CGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGTTTTTTGCTATTC -AGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTG -CAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTTTGA -CTGCGTTTCCTACTGGAAATGGTGGAACAATCGAGCTTTTATACATGCAGGTTTGCTATT -CTCTCTGAAATTGATTCTGATAAGTTGCCATAAGAGGTCAAAAATTAGCAAAATCAGATT -TATCTTTTTTTTTTTTTTTTTTGTATGATGTGGACTGCAGACATATGCCGCCACTACTTT -AGCTTCTGCTAGAGACTTCTGGACTCTGAGATACACAACAGTGTTGGAAGATGGCAGTCT -TGTGGTATGTGATAACTGAACAATGACACATGCTTTCATTAATCCCTTTATTTTGTGAGC -ACAACTGGATTTTCTTCCTTGTTTTTGCAGTAGTGGGGTTTTGCTAATTATAGCTTATCT -ATGATGTTCTGTAAGGTTTGTGAAAGGTCCTTGAGTGGTACTCAGGGTGGTCCAAGCATA -CCGCCAGTGCAGCATTTTGTGAGAGCAGAAATGCTTCCCAGTGGATATTTGATACAACCT -TGTGAAGGTGGTGGTTCCATAATCCGTATTGTTGATCACATGGATCTAGAGGTACATGCT -AGTTGTTGATGGCTAGAAGCTGCAATGTAGTTTATACAATTAAATTCCCAGAGTAGCTAT -TCTAAGATGGGCTGATCTTTTCATTGATTTGATTATTGCTATTCAGCCATGGAGTGTGCC -TGAGGTTTTACGACCACTATATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGC -AGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCAC -TGACTGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCAC -AGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAG -GTTAAGCAGGTAATGTGACTACTGCAGGATGATATCTTCTCCCATATTTGAACCATGATG -ATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGAT -TTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTA -TCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAA -CTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAG -TTATTTAAAAAAAAATGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGG -GAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTG -TAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGAT -CAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTT -ATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGG -CACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCTTGGTTTTGTATTT -TGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTA -TATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATG -TAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACACAGGAGGAAGCT -GTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTAT -ACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGTTAACATTATCAA -CAACTTTGATGGGCAGCTTTGCAGTGGAATTGATGAACATGCAGCTGGAGCATGTGCTGA -ACTTGTTTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGG -GTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGC -ATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGC -TGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGAT -CTGGGGGTCCCAACCGGACATTGGACTTGGCTTCTGCTCTTGAGGTTGGATCAACTGGAA -CTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACCATTGCAT -TCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATG -TGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGA -ATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTT -GGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCA -TTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACA -GACTACACATAGGGGTGGATCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGA -AACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACAT -ACAAA-TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTAGTTGTGAA -GTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCA -AATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTG -GACAAAATTCTGGATGAAAATGGNNNNNNNNNNN ->Treesnips_43-2-1 -NNNNGCCCCGCTGGGTACGTGGCATTGTTTTAGCTTTCCAAATTATGGGAAACATTATAT -TGTTTTTGTAGCTAGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGC -AGAGGAGACCTTGACAGAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCA -GATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTT -GCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTTTGCAGCCTGGTCC -GGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTG -CGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGTGTTTTGCTATTC -AGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTG -CAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTTTGA -CTGCGTTTCCTACTGGAAATGGTGGAACAATCGAGCTTTTATACATGCAGGTTTGCTATT -CTCTCTGAAATTGATTCTGATAAGTTGCCATAAGAGGTCAAAAATTAGCAAAATCAGATT -TATCTTTTTTTTTTTTTTTTTTGTATGATGTGGACTGCAGACATATGCCGCCACTACTTT -AGCTTCTGCTAGAGACTTCTGGACTCTGAGATACACAACAGTGTTGGAAGATGGCAGTCT -TGTGGTATGTGATAACTGAACAATGACACATGCTTTCATTAATCCCTTTATTTTGTGAGC -ACAACTGGATTTTCTTCCTTGTTTTTGCAGTAGTGGGGTTTTGCTAATTATAGCTTATCT -ATGATGTTCTGTAAGGTTTGTGAAAGGTCCTTGAGTGGTACTCAGGGTGGTCCAAGCATA -CCGCCAGTGCAGCATTTTGTGAGAGCAGAAATGCTTCCCAGTGGATATTTGATACAACCT -TGTGAAGGTGGTGGTTCCATAATCCGTATTGTTGATCACATGGATCTAGAGGTACATGCT -AGTTGTTGATGGCTAGAAGCTGCAATGTAGTTTATACAATTAAATTCCCAGAGTAGCTAT -TCTAAGATGGGCTGATCTTTTCATTGATTTGATTATTGCTATTCAGCCATGGAGTGTGCC -TGAGGTTTTACGACCACTATATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGC -AGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCAC -TGACTGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCAC -AGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAG -GTTAAGCAGGTAATGTGACTACTGCAGGATTATATCTTCTCCCATATTTGAACCATGATG -ATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGAT -TTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTA -TCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAA -CTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAG -TTATTTAAAAAAAA-TGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGG -GAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTG -TAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGAT -CAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTT -ATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGG -CACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCCTGGTTTTGTATTT -TGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTA -TATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATG -TAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACTCAGGAGGAAGCT -GTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTAT -ACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGTTAACATTATCAA -CAACTTTGATGGGCAGCTTTGCAGTGGAATTGATGAACATGCAGCTGGAGCATGTGCTGA -ACTTGTTTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGG -GTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGC -ATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGC -TGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGAT -CTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAA -CTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCAT -TCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATG -TGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGA -ATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTT -GGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCA -TTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACA -GACTCCACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGA -AACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACAT -ACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAA -GTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCA -AATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTG -GACAAAATTCTGGATGAAAATGNNNNNNNNNNNN ->Treesnips_43-7-2 -GCTAGCCCCGCTGGGTACGTGGCATTGTTTTAGCTTTCCAAATTATGGGAAACATTATAT -TGTTTTTGTAGCTAGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGC -AGAGGAGACCTTGACAGAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCA -GATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTT -GCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTTTGCAGCCTGGTCC -GGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTG -CGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGTGTTTTGCTATTC -AGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTG -CAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTTTGA -CTGCGTTTCCTACTGGAAATGGTGGAACAATCGAGCTTTTATACATGCAGGTTTGCTATT -CTCTCTGAAATTGATTCTGATAAGTTGCCATAAGAGGTCAAAAATTAGCAAAATCAGATT -TATCTTTTTTTTTTTTTTTTTTGTATGATGTGGACTGCAGACATATGCCGCCACTACTTT -AGCTTCTGCTAGAGACTTCTGGACTCTGAGATACACAACAGTGTTGGAAGATGGCAGTCT -TGTGGTATGTGATAACTGAACAATGACACATGCTTTCATTAATCCCTTTATTTTGTGAGC -ACAACTGGATTTTCTTCCTTGTTTTTGCAGTAGTGGGGTTTTGCTAATTATAGCTTATCT -ATGATGTTCTGTAAGGTTTGTGAAAGGTCCTTGAGTGGTACTCAGGGTGGTCCAAGCATA -CCGCCAGTGCAGCATTTTGTGAGAGCAGAAATGCTTCCCAGTGGATATTTGATACAACCT -TGTGAAGGTGGTGGTTCCATAATCCGTATTGTTGATCACATGGATCTAGAGGTACATGCT -AGTTGTTGATGGCTAGAAGCTGCAATGTAGTTTATACAATTAAATTCCCAGAGTAGCTAT -TCTAAGATGGGCTGATCTTTTCATTGATTTGATTATTGCTATTCAGCCATGGAGTGTGCC -TGAGGTTTTACGACCACTATATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGC -AGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCAC -TGACTGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCAC -AGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAG -GTTAAGCAGGTAATGTGACTACTGCAGGATTATATCTTCTCCCATATTTGAACCATGATG -ATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGAT -TTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTA -TCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAA -CTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAG -TTATTTAAAAAAAA-TGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGG -GAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTG -TAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGAT -CAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTT -ATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGG -CACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCCTGGTTTTGTATTT -TGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTA -TATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATG -TAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACTCAGGAGGAAGCT -GTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTAT -ACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGTTAACATTATCAA -CAACTTTGATGGGCAGCTTTGCAGTGGAATTGATGAACATGCAGCTGGAGCATGTGCTGA -ACTTGTTTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGG -GTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGC -ATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGC -TGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGAT -CTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAA -CTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCAT -TCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATG -TGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGA -ATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTT -GGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCA -TTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACA -GACTCCACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGA -AACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACAT -ACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAA -GTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCA -AATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTG -GACAAAATTCTGGATGAAAATGNNNNNNNNNNNN ->Treesnips_43-9-3 -NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTAT -TGTTTTTGTAGCTAGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGC -AGAGGAGACCTTGACAGAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCA -GATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTT -GCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTTTGCAGCCTGGTCC -GGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTG -CGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGTGTTTTGCTATTC -AGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTG -CAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTTTGA -CTGCGTTTCCTACTGGAAATGGTGGAACAATCGAGCTTTTATACATGCAGGTTTGCTATT -CTCTCTGAAATTGATTCTGATAAGTTGCCATAAGAGGTCAAAAATTAGCAAAATCAGATT -TATCTTTTTTTTTTTTTTTTTTGTATGATGTGGACTGCAGACATATGCCGCCACTACTTT -AGCTTCTGCTAGAGACTTCTGGACTCTGAGATACACAACAGTGTTGGAAGATGGCAGTCT -TGTGGTATGTGATAACTGAACAATGACACATGCTTTCATTAATCCCTTTATTTTGTGAGC -ACAACTGGATTTTCTTCCTTGTTTTTGCAGTAGTGGGGTTTTGCTAATTATAGCTTATCT -ATGATGTTCTGTAAGGTTTGTGAAAGGTCCTTGAGTGGTACTCAGGGTGGTCCAAGCATA -CCGCCAGTGCAGCATTTTGTGAGAGCAGAAATGCTTCCCAGTGGATATTTGATACAACCT -TGTGAAGGTGGTGGTTCCATAATCCGTATTGTTGATCACATGGATCTAGAGGTACATGCT -AGTTGTTGATGGCTAGAAGCTGCAATGTAGTTTATACAATTAAATTCCCAGAGTAGCTAT -TCTAAGATGGGCTGATCTTTTCATTGATTTGATTATTGCTATTCAGCCATGGAGTGTGCC -TGAGGTTTTACGACCACTATATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGC -AGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCAC -TGACTGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCAC -AGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAG -GTTAAGCAGGTAATGTGACTACTGCAGGATTATATCTTCTCCCATATTTGAACCATGATG -ATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGAT -TTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTA -TCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAA -CTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAG -TTATTTAAAAAAAA-TGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGG -GAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTG -TAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGAT -CAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTT -ATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGG -CACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCCTGGTTTTGTATTT -TGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTA -TATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATG -TAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACTCAGGAGGAAGCT -GTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTAT -ACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGTTAACATTATCAA -CAACTTTGATGGGCAGCTTTGCAGTGGAATTGATGAACATGCAGCTGGAGCATGTGCTGA -ACTTGTTTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGG -GTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGC -ATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGC -TGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGAT -CTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAA -CTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCAT -TCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATG -TGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGA -ATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTT -GGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCA -TTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACA -GACTCCACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGA -AACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACAT -ACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAA -GTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCA -AATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTG -GACAAAATTCTGGATGAAAATGGNNNNNNNNNNN ->Treesnips_43-10-2 -NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN -NNNNNNNNNNNNNNNGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGC -AGAGGAGACCTTGACGGAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCA -GATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTT -GCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTGTGCAGCCTGGTCC -GGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTG -CGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGTTTTTTGCTATTC -AGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTG -CAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTTTGA -CTGCGTTTCCTACTGGAAATGGTGGAACAATCGAGCTTTTATACATGCAGGTTTGCTATT -CTCTCTGAAATTGATTCTGATAAGTTGCCATAAGAGGTCAAAAATTAGCAAAATCAGATT -TATCTTTTTTTTTTTTTTTTTTGTATGATGTGGACTGCAGACATATGCCGCCACTACTTT -AGCTTCTGCTAGAGACTTCTGGACTCTGAGATACACAACAGTGTTGGAAGATGGCAGTCT -TGTGGTATGTGATAACTGAACAATGACACATGCTTTCATTAATCCCTTTATTTTGTGAGC -ACAACTGGATTTTCTTCCTTGTTTTTGCAGTAGTGGGGTTTTGCTAATTATAGCTTATCT -ATGATGTTCTGTAAGGTTTGTGAAAGGTCCTTGAGTGGTACTCAGGGTGGTCCAAGCATA -CCGCCAGTGCAGCATTTTGTGAGAGCAGAAATGCTTCCCAGTGGATATTTGATACAACCT -TGTGAAGGTGGTGGTTCCATAATCCGTATTGTTGATCACATGGATCTAGAGGTACATGCT -AGTTGTTGATGGCTAGAAGCTGCAATGTAGTTTATACAATTAAATTCCCAGAGTAGCTAT -TCTAAGATGGGCTGATCTTTTCATTGATTTGATTATTGCTATTCAGCCATGGAGTGTGCC -TGAGGTTTTACGACCACTATATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGC -AGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCAC -TGACTGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCAC -AGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAG -GTTAAGCAGGTAATGTGACTACTGCAGGATGATATCTTCTCCCATATTTGAACCATGATG -ATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGAT -TTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTA -TCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAA -CTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAG -TTATTTAAAAAAAAATGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGG -GAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTG -TAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGAT -CAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTT -ATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGG -CACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCTTGGTTTTGTATTT -TGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTA -TATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATG -TAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACACAGGAGGAAGCT -GTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTAT -ACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGTTAACATTATCAA -CAACTTTGATGGGCAGCTTTGCAGTGGAATTGATGAACATGCAGCTGGAGCATGTGCTGA -ACTTGTTTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGG -GTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGC -ATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGC -TGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGAT -CTGGGGGTCCCAACCGGACATTGGACTTGGCTTCTGCTCTTGAGGTTGGATCAACTGGAA -CTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACCATTGCAT -TCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATG -TGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGA -ATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTT -GGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCA -TTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACA -GACTACACATAGGGGTGGATCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGA -AACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACAT -ACAAA-TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTAGTTGTGAA -GTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCA -AATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTG -GACAAAATTCTGGATGAAAATGGNNNNNNNNNNN ->Treesnips_44-3-3 -NNNNNNNNNNNNNNNNNNNTGGCATTGTTTTAGCTTTCCAAATTATGGGAAACATTATAT -TGTTTTTGTAGCTAGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGC -AGAGGAGACCTTGACGGAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCA -GATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTT -GCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTGTGCAGCCTGGTCC -GGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTG -CGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGTTTTTTGCTATTC -AGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTG -CAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTTTGA -CTGCGTTTCCTACTGGAAATGGTGGAACAATCGAGCTTTTATACATGCAGGTTTGCTATT -CTCTCTGAAATTGATTCTGATAAGTTGCCATAAGAGGTCAAAAATTAGCAAAATCAGATT -TATCTTTTTTTTTTTTTTTTTTGTATGATGTGGACTGCAGACATATGCCGCCACTACTTT -AGCTTCTGCTAGAGACTTCTGGACTCTGAGATACACAACAGTGTTGGAAGATGGCAGTCT -TGTGGTATGTGATAACTGAACAATGACACATGCTTTCATTAATCCCTTTATTTTGTGAGC -ACAACTGGATTTTCTTCCTTGTTTTTGCAGTAGTGGGGTTTTGCTAATTATAGCTTATCT -ATGATGTTCTGTAAGGTTTGTGAAAGGTCCTTGAGTGGTACTCAGGGTGGTCCAAGCATA -CCGCCAGTGCAGCATTTTGTGAGAGCAGAAATGCTTCCCAGTGGATATTTGATACAACCT -TGTGAAGGTGGTGGTTCCATAATCCGTATTGTTGATCACATGGATCTAGAGGTACATGCT -AGTTGTTGATGGCTAGAAGCTGCAATGTAGTTTATACAATTAAATTCCCAGAGTAGCTAT -TCTAAGATGGGCTGATCTTTTCATTGATTTGATTATTGCTATTCAGCCATGGAGTGTGCC -TGAGGTTTTACGACCACTATATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGC -AGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCAC -TGACTGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCAC -AGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAG -GTTAAGCAGGTAATGTGACTACTGCAGGATGATATCTTCTCCCATATTTGAACCATGATG -ATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGAT -TTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTA -TCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAA -CTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAG -TTATTTAAAAAAAAATGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGG -GAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTG -TAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGAT -CAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTT -ATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGG -CACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCTTGGTTTTGTATTT -TGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTA -TATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATG -TAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACACAGGAGGAAGCT -GTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTAT -ACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGTTAACATTATCAA -CAACTTTGATGGGCAGCTTTGCAGTGGAATTGATGAACATGCAGCTGGAGCATGTGCTGA -ACTTGTTTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGG -GTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGC -ATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGC -TGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGAT -CTGGGGGTCCCAACCGGACATTGGACTTGGCTTCTGCTCTTGAGGTTGGATCAACTGGAA -CTAGAACGTCTGGTGTTTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCAT -TCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATG -TGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGA -ATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTT -GGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCA -TTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACA -GACTACACATAGGGGTGGATCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGA -AACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACAT -ACAAA-TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTAGTTGTGAA -GTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCA -AATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTG -GACAAAATTCTGGATGAAAATGNNNNNNNNNNNN ->Treesnips_44-6-2 -NNNNNNCCCGCTGGGTACGTGGCATTGTTTTAGCTTTCCAAATTATGGGAAACATTATAT -TGTTTTTGTAGCTAGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGC -AGAGGAGACCTTGACAGAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCA -GATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTT -GCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTTTGCAGCCTGGTCC -GGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTG -CGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGTGTTTTGCTATTC -AGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTG -CAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTTTGA -CTGCGTTTCCTACTGGAAATGGTGGAACAATCGAGCTTTTATACATGCAGGTTTGCTATT -CTCTCTGAAATTGATTCTGATAAGTTGCCATAAGAGGTCAAAAATTAGCAAAATCAGATT -TATCTTTTTTTTTTTTTTTTTTGTATGATGTGGACTGCAGACATATGCCGCCACTACTTT -AGCTTCTGCTAGAGACTTCTGGACTCTGAGATACACAACAGTGTTGGAAGATGGCAGTCT -TGTGGTATGTGATAACTGAACAATGACACATGCTTTCATTAATCCCTTTATTTTGTGAGC -ACAACTGGATTTTCTTCCTTGTTTTTGCAGTAGTGGGGTTTTGCTAATTATAGCTTATCT -ATGATGTTCTGTAAGGTTTGTGAAAGGTCCTTGAGTGGTACTCAGGGTGGTCCAAGCATA -CCGCCAGTGCAGCATTTTGTGAGAGCAGAAATGCTTCCCAGTGGATATTTGATACAACCT -TGTGAAGGTGGTGGTTCCATAATCCGTATTGTTGATCACATGGATCTAGAGGTACATGCT -AGTTGTTGATGGCTAGAAGCTGCAATGTAGTTTATACAATTAAATTCCCAGAGTAGCTAT -TCTAAGATGGGCTGATCTTTTCATTGATTTGATTATTGCTATTCAGCCATGGAGTGTGCC -TGAGGTTTTACGACCACTATATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGC -AGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCAC -TGACTGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCAC -AGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAG -GTTAAGCAGGTAATGTGACTACTGCAGGATTATATCTTCTCCCATATTTGAACCATGATG -ATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGAT -TTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTA -TCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAA -CTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAG -TTATTTAAAAAAAA-TGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGG -GAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTG -TAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGAT -CAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTT -ATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGG -CACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCCTGGTTTTGTATTT -TGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTA -TATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATG -TAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACTCAGGAGGAAGCT -GTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTAT -ACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGTTAACATTATCAA -CAACTTTGATGGGCAGCTTTGCAGTGGAATTGATGAACATGCAGCTGGAGCATGTGCTGA -ACTTGTTTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGG -GTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGC -ATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGC -TGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGAT -CTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAA -CTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCAT -TCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATG -TGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGA -ATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTT -GGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCA -TTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACA -GACTCCACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGA -AACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACAT -ACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAA -GTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCA -AATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTG -GACAAAATTCTGGATGAAAATGGNNNNNNNNNNN ->Treesnips_44-3-1 -NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN -NNNNNNNNNNNNNNNGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGC -AGAGGAGACCTTGACGGAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCA -GATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTT -GCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTGTGCAGCCTGGTCC -GGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTG -CGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGTTTTTTGCTATTC -AGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTG -CAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTTTGA -CTGCGTTTCCTACTGGAAATGGTGGAACAATCGAGCTTTTATACATGCAGGTTTGCTATT -CTCTCTGAAATTGATTCTGATAAGTTGCCATAAGAGGTCAAAAATTAGCAAAATCAGATT -TATCTTTTTTTTTTTTTTTTTTGTATGATGTGGACTGCAGACATATGCCGCCACTACTTT -AGCTTCTGCTAGAGACTTCTGGACTCTGAGATACACAACAGTGTTGGAAGATGGCAGTCT -TGTGGTATGTGATAACTGAACAATGACACATGCTTTCATTAATCCCTTTATTTTGTGAGC -ACAACTGGATTTTCTTCCTTGTTTTTGCAGTAGTGGGGTTTTGCTAATTATAGCTTATCT -ATGATGTTCTGTAAGGTTTGTGAAAGGTCCTTGAGTGGTACTCAGGGTGGTCCAAGCATA -CCGCCAGTGCAGCATTTTGTGAGAGCAGAAATGCTTCCCAGTGGATATTTGATACAACCT -TGTGAAGGTGGTGGTTCCATAATCCGTATTGTTGATCACATGGATCTAGAGGTACATGCT -AGTTGTTGATGGCTAGAAGCTGCAATGTAGTTTATACAATTAAATTCCCAGAGTAGCTAT -TCTAAGATGGGCTGATCTTTTCATTGATTTGATTATTGCTATTCAGCCATGGAGTGTGCC -TGAGGTTTTACGACCACTATATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGC -AGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCAC -TGACTGAAATCTTCATGATCAGGCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN -NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNGCTGTTCTGCGAACATTTAGCCAGAG -GTTAAGCAGGTAATGTGACTACTGCAGGATGATATCTTCTCCCATATTTGAACCATGATG -ATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGAT -TTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTA -TCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAA -CTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAG -TTATTTAAAAAAAAATGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGG -GAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTG -TAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGAT -CAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTT -ATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGG -CACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCTTGGTTTTGTATTT -TGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTA -TATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATG -TAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACACAGGAGGAAGCT -GTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTAT -ACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGTTAACATTATCAA -CAACTTTGATGGGCAGCTTTGCAGTGGAATTGATGAACATGCAGCTGGAGCATGTGCTGA -ACTTGTTTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGG -GTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGC -ATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGC -TGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGAT -CTGGGGGTCCCAACCGGACATTGGACTTGGCTTCTGCTCTTGAGGTTGGATCAACTGGAA -CTAGAACGTCTGGTGTTTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCAT -TCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATG -TGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGA -ATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTT -GGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCA -TTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACA -GACTACACATAGGGGTGGATCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGA -AACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACAT -ACAAA-TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTAGTTGTGAA -GTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCA -AATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTG -GACAAAATTCTGGATGAAAATGGTCGCAAAAGTN ->Treesnips_44-5-2 -NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN -NNNNNNNNNNNNNNNGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGC -AGAGGAGACCTTGACAGAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCA -GATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTT -GCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTTTGCAGCCTGGTCC -GGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTG -CGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGTGTTTTGCTATTC -AGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTG -CAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTTTGA -CTGCGTTTCCTACTGGAAATGGTGGAACAATCGAGCTTTTATACATGCAGGTTTGCTATT -CTCTCTGAAATTGATTCTGATAAGTTGCCATAAGAGGTCAAAAATTAGCAAAATCAGATT -TATCTTTTTTTTTTTTTTTTTTGTATGATGTGGACTGCAGACATATGCCGCCACTACTTT -AGCTTCTGCTAGAGACTTCTGGACTCTGAGATACACAACAGTGTTGGAAGATGGCAGTCT -TGTGGTATGTGATAACTGAACAATGACACATGCTTTCATTAATCCCTTTATTTTGTGAGC -ACAACTGGATTTTCTTCCTTGTTTTTGCAGTAGTGGGGTTTTGCTAATTATAGCTTATCT -ATGATGTTCTGTAAGGTTTGTGAAAGGTCCTTGAGTGGTACTCAGGGTGGTCCAAGCATA -CCGCCAGTGCAGCATTTTGTGAGAGCAGAAATGCTTCCCAGTGGATATTTGATACAACCT -TGTGAAGGTGGTGGTTCCATAATCCGTATTGTTGATCACATGGATCTAGAGGTACATGCT -AGTTGTTGATGGCTAGAAGCTGCAATGTAGTTTATACAATTAAATTCCCAGAGTAGCTAT -TCTAAGATGGGCTGATCTTTTCATTGATTTGATTATTGCTATTCAGCCATGGAGTGTGCC -TGAGGTTTTACGACCACTATATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGC -AGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCAC -TGACTGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCAC -AGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAG -GTTAAGCAGGTAATGTGACTACTGCAGGATTATATCTTCTCCCATATTTGAACCATGATG -ATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGAT -TTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTA -TCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAA -CTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAG -TTATTTAAAAAAAA-TGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGG -GAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTG -TAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGAT -CAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTT -ATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGG -CACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCCTGGTTTTGTATTT -TGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTA -TATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATG -TAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACTCAGGAGGAAGCT -GTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTAT -ACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGTTAACATTATCAA -CAACTTTGATGGGCAGCTTTGCAGTGGAATTGATGAACATGCAGCTGGAGCATGTGCTGA -ACTTGTTTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGG -GTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGC -ATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGC -TGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGAT -CTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAA -CTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCAT -TCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATG -TGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGA -ATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTT -GGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCA -TTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACA -GACTCCACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGA -AACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACAT -ACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAA -GTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCA -AATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTG -GACAAAATTCTGGATGAAAATGGNNNNNNNNNNN ->Treesnips_44-7-1 -GCTAGCCCCGCTGGGTACGTGGCATTGTTTTAGCTTTCCAAATTATGGGAAACATTATAT -TGTTTTTGTAGCTAGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGC -AGAGGAGACCTTGACGGAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCA -GATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTT -GCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTGTGCAGCCTGGTCC -GGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTG -CGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGTTTTTTGCTATTC -AGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTG -CAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTTTGA -CTGCGTTTCCTACTGGAAATGGTGGAACAATCGAGCTTTTATACATGCAGGTTTGCTATT -CTCTCTGAAATTGATTCTGATAAGTTGCCATAAGAGGTCAAAAATTAGCAAAATCAGATT -TATCTTTTTTTTTTTTTTTTTTGTATGATGTGGACTGCAGACATATGCCGCCACTACTTT -AGCTTCTGCTAGAGACTTCTGGACTCTGAGATACACAACAGTGTTGGAAGATGGCAGTCT -TGTGGTATGTGATAACTGAACAATGACACATGCTTTCATTAATCCCTTTATTTTGTGAGC -ACAACTGGATTTTCTTCCTTGTTTTTGCAGTAGTGGGGTTTTGCTAATTATAGCTTATCT -ATGATGTTCTGTAAGGTTTGTGAAAGGTCCTTGAGTGGTACTCAGGGTGGTCCAAGCATA -CCGCCAGTGCAGCATTTTGTGAGAGCAGAAATGCTTCCCAGTGGATATTTGATACAACCT -TGTGAAGGTGGTGGTTCCATAATCCGTATTGTTGATCACATGGATCTAGAGGTACATGCT -AGTTGTTGATGGCTAGAAGCTGCAATGTAGTTTATACAATTAAATTCCCAGAGTAGCTAT -TCTAAGATGGGCTGATCTTTTCATTGATTTGATTATTGCTATTCAGCCATGGAGTGTGCC -TGAGGTTTTACGACCACTATATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGC -AGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCAC -TGACTGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCAC -AGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAG -GTTAAGCAGGTAATGTGACTACTGCAGGATGATATCTTCTCCCATATTTGAACCATGATG -ATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGAT -TTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTA -TCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAA -CTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAG -TTATTTAAAAAAAAATGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGG -GAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTG -TAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGAT -CAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTT -ATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGG -CACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCTTGGTTTTGTATTT -TGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTA -TATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATG -TAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACACAGGAGGAAGCT -GTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTAT -ACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGTTAACATTATCAA -CAACTTTGATGGGCAGCTTTGCAGTGGAATTGATGAACATGCAGCTGGAGCATGTGCTGA -ACTTGTTTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGG -GTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGC -ATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGC -TGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGAT -CTGGGGGTCCCAACCGGACATTGGACTTGGCTTCTGCTCTTGAGGTTGGATCAACTGGAA -CTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACCATTGCAT -TCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATG -TGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGA -ATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTT -GGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCA -TTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACA -GACTACACATAGGGGTGGATCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGA -AACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACAT -ACAAA-TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTAGTTGTGAA -GTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCA -AATCAAGCAGGGTTGGACATGCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN -NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN ->Treesnips_44-10-2 -NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN -NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTTTTTCTATTCCAGACTCCTGTCTATAGC -AGAGGAGACCTTGACGGAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCA -GATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTT -GCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTGTGCAGCCTGGTCC -GGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTG -CGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGTTTTTTGCTATTC -AGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTG -CAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTTTGA -CTGCGTTTCCTACTGGAAATGGTGGAACAATCGAGCTTTTATACATGCAGGTTTGCTATT -CTCTCTGAAATTGATTCTGATAAGTTGCCATAAGAGGTCAAAAATTAGCAAAATCAGATT -TATCTTTTTTTTTTTTTTTTTTGTATGATGTGGACTGCAGACATATGCCGCCACTACTTT -AGCTTCTGCTAGAGACTTCTGGACTCTGAGATACACAACAGTGTTGGAAGATGGCAGTCT -TGTGGTATGTGATAACTGAACAATGACACATGCTTTCATTAATCCCTTTATTTTGTGAGC -ACAACTGGATTTTCTTCCTTGTTTTTGCAGTAGTGGGGTTTTGCTAATTATAGCTTATCT -ATGATGTTCTGTAAGGTTTGTGAAAGGTCCTTGAGTGGTACTCAGGGTGGTCCAAGCATA -CCGCCAGTGCAGCATTTTGTGAGAGCAGAAATGCTTCCCAGTGGATATTTGATACAACCT -TGTGAAGGTGGTGGTTCCATAATCCGTATTGTTGATCACATGGATCTAGAGGTACATGCT -AGTTGTTGATGGCTAGAAGCTGCAATGTAGTTTATACAATTAAATTCCCAGAGTAGCTAT -TCTAAGATGGGCTGATCTTTTCATTGATTTGATTATTGCTATTCAGCCATGGAGTGTGCC -TGAGGTTTTACGACCACTATATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGC -AGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCAC -TGACTGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCAC -AGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAG -GTTAAGCAGGTAATGTGACTACTGCAGGATGATATCTTCTCCCATATTTGAACCATGATG -ATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGAT -TTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTA -TCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAA -CTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAG -TTATTTAAAAAAAAATGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGG -GAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTG -TAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGAT -CAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTT -ATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGG -CACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCTTGGTTTTGTATTT -TGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTA -TATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATG -TAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACACAGGAGGAAGCT -GTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTAT -ACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGTTAACATTATCAA -CAACTTTGATGGGCAGCTTTGCAGTGGAATTGATGAACATGCAGCTGGAGCATGTGCTGA -ACTTGTTTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGG -GTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGC -ATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGC -TGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGAT -CTGGGGGTCCCAACCGGACATTGGACTTGGCTTCTGCTCTTGAGGTTGGATCAACTGGAA -CTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCAT -TCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATG -TGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGA -ATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTT -GGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCA -TTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACA -GACTACACATAGGGGTGGATCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGA -AACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACAT -ACAAA-TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTAGTTGTGAA -GTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCA -AATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTG -GACAAAATTCTGGATGAAAATGGTNNNNNNNNNN ->Treesnips_45-5-3 -NNNNNNCCCGCTGGGTACGTGGCATTGTTTTAGCTTTCCAAATTATGGGAAACATTATAT -TGTTTTTGTAGCTAGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGC -AGAGGAGACCTTGACGGAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCA -GATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTT -GCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTGTGCAGCCTGGTCC -GGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTG -CGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGTTTTTTGCTATTC -AGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTG -CAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTTTGA -CTGCGTTTCCTACTGGAAATGGTGGAACAATCGAGCTTTTATACATGCAGGTTTGCTATT -CTCTCTGAAATTGATTCTGATAAGTTGCCATAAGAGGTCAAAAATTAGCAAAATCAGATT -TATCTTTTTTTTTTTTTTTTTTGTATGATGTGGACTGCAGACATATGCCGCCACTACTTT -AGCTTCTGCTAGAGACTTCTGGACTCTGAGATACACAACAGTGTTGGAAGATGGCAGTCT -TGTGGTATGTGATAACTGAACAATGACACATGCTTTCATTAATCCCTTTATTTTGTGAGC -ACAACTGGATTTTCTTCCTTGTTTTTGCAGTAGTGGGGTTTTGCTAATTATAGCTTATCT -ATGATGTTCTGTAAGGTTTGTGAAAGGTCCTTGAGTGGTACTCAGGGTGGTCCAAGCATA -CCGCCAGTGCAGCATTTTGTGAGAGCAGAAATGCTTCCCAGTGGATATTTGATACAACCT -TGTGAAGGTGGTGGTTCCATAATCCGTATTGTTGATCACATGGATCTAGAGGTACATGCT -AGTTGTTGATGGCTAGAAGCTGCAATGTAGTTTATACAATTAAATTCCCAGAGTAGCTAT -TCTAAGATGGGCTGATCTTTTCATTGATTTGATTATTGCTATTCAGCCATGGAGTGTGCC -TGAGGTTTTACGACCACTATATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGC -AGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCAC -TGACTGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCAC -AGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAG -GTTAAGCAGGTAATGTGACTACTGCAGGATGATATCTTCTCCCATATTTGAACCATGATG -ATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGAT -TTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTA -TCAATTCATCTTCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAA -CTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAG -TTATTTAAAAAAAAATGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGG -GAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTG -TAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGAT -CAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTT -ATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGG -CACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCTTGGTTTTGTATTT -TGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTA -TATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATG -TAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACACAGGAGGAAGCT -GTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTAT -ACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGTTAACATTATCAA -CAACTTTGATGGGCAGCTTTGCAGTGGAATTGATGAACATGCAGCTGGAGCATGTGCTGA -ACTTGTTTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGG -GTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGC -ATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGC -TGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGAT -CTGGGGGTCCCAACCGGACATTGGACTTGGCTTCTGCTCTTGAGGTTGGATCAACTGGAA -CTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCAT -TCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATG -TGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGA -ATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTT -GGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCA -TTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACA -GACTACACATAGGGGTGGATCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGA -AACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACAT -ACAAA-TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTAGTTGTGAA -GTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCA -AATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTG -GACAAAATTCTGGATGAAAANNNNNNNNNNNNNN ->Treesnips_45-8-3 -GCTAGCCCCGCTGGGTACGTGGCATTGTTTTAGCTTTCCAAATTATGGGAAACATTATAT -TGTTTTTGTAGCTAGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGC -AGAGGAGACCTTGACAGAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCA -GATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTT -GCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTTTGCAGCCTGGTCC -GGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTG -CGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGTGTTTTGCTATTC -AGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTG -CAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTTTGA -CTGCGTTTCCTACTGGAAATGGTGGAACAATCGAGCTTTTATACATGCAGGTTTGCTATT -CTCTCTGAAATTGATTCTGATAAGTTGCCATAAGAGGTCAAAAATTAGCAAAATCAGATT -TATCTTTTTTTTTTTTTTTTTTGTATGATGTGGACTGCAGACATATGCCGCCACTACTTT -AGCTTCTGCTAGAGACTTCTGGACTCTGAGATACACAACAGTGTTGGAAGATGGCAGTCT -TGTGGTATGTGATAACTGAACAATGACACATGCTTTCATTAATCCCTTTATTTTGTGAGC -ACAACTGGATTTTCTTCCTTGTTTTTGCAGTAGTGGGGTTTTGCTAATTATAGCTTATCT -ATGATGTTCTGTAAGGTTTGTGAAAGGTCCTTGAGTGGTACTCAGGGTGGTCCAAGCATA -CCGCCAGTGCAGCATTTTGTGAGAGCAGAAATGCTTCCCAGTGGATATTTGATACAACCT -TGTGAAGGTGGTGGTTCCATAATCCGTATTGTTGATCACATGGATCTAGAGGTACATGCT -AGTTGTTGATGGCTAGAAGCTGCAATGTAGTTTATACAATTAAATTCCCAGAGTAGCTAT -TCTAAGATGGGCTGATCTTTTCATTGATTTGATTATTGCTATTCAGCCATGGAGTGTGCC -TGAGGTTTTACGACCACTATATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGC -AGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCAC -TGACTGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCAC -AGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAG -GTTAAGCAGGTAATGTGACTACTGCAGGATTATATCTTCTCCCATATTTGAACCATGATG -ATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGAT -TTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTA -TCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAA -CTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAG -TTATTTAAAAAAAA-TGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGG -GAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTG -TAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGAT -CAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTT -ATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGG -CACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCCTGGTTTTGTATTT -TGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTA -TATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATG -TAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACTCAGGAGGAAGCT -GTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTAT -ACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGTTAACATTATCAA -CAACTTTGATGGGCAGCTTTGCAGTGGAATTGATGAACATGCAGCTGGAGCATGTGCTGA -ACTTGTTTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGG -GTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGC -ATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGC -TGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGAT -CTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAA -CTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCAT -TCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATG -TGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGA -ATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTT -GGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCA -TTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACA -GACTCCACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGA -AACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACAT -ACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAA -GTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCA -AATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTG -GACAAAATTCTGGATGAAAATGNNNNNNNNNNNN ->Treesnips_45-1-1 -NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTAT -TGTTTTTGTAGCTAGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGC -AGAGGAGACCTTGACAGAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCA -GATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTT -GCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTTTGCAGCCTGGTCC -GGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTG -CGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGTGTTTTGCTATTC -AGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTG -CAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTTTGA -CTGCGTTTCCTACTGGAAATGGTGGAACAATCGAGCTTTTATACATGCAGGTTTGCTATT -CTCTCTGAAATTGATTCTGATAAGTTGCCATAAGAGGTCAAAAATTAGCAAAATCAGATT -TATCTTTTTTTTTTTTTTTTTTGTATGATGTGGACTGCAGACATATGCCGCCACTACTTT -AGCTTCTGCTAGAGACTTCTGGACTCTGAGATACACAACAGTGTTGGAAGATGGCAGTCT -TGTGGTATGTGATAACTGAACAATGACACATGCTTTCATTAATCCCTTTATTTTGTGAGC -ACAACTGGATTTTCTTCCTTGTTTTTGCAGTAGTGGGGTTTTGCTAATTATAGCTTATCT -ATGATGTTCTGTAAGGTTTGTGAAAGGTCCTTGAGTGGTACTCAGGGTGGTCCAAGCATA -CCGCCAGTGCAGCATTTTGTGAGAGCAGAAATGCTTCCCAGTGGATATTTGATACAACCT -TGTGAAGGTGGTGGTTCCATAATCCGTATTGTTGATCACATGGATCTAGAGGTACATGCT -AGTTGTTGATGGCTAGAAGCTGCAATGTAGTTTATACAATTAAATTCCCAGAGTAGCTAT -TCTAAGATGGGCTGATCTTTTCATTGATTTGATTATTGCTATTCAGCCATGGAGTGTGCC -TGAGGTTTTACGACCACTATATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGC -AGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCAC -TGACTGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCAC -AGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAG -GTTAAGCAGGTAATGTGACTACTGCAGGATTATATCTTCTCCCATATTTGAACCATGATG -ATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGAT -TTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTA -TCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAA -CTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAG -TTATTTAAAAAAAA-TGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGG -GAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTG -TAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGAT -CAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTT -ATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGG -CACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCCTGGTTTTGTATTT -TGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTA -TATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATG -TAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACTCAGGAGGAAGCT -GTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTAT -ACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGTTAACATTATCAA -CAACTTTGATGGGCAGCTTTGCAGTGGAATTGATGAACATGCAGCTGGAGCATGTGCTGA -ACTTGTTTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGG -GTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGC -ATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGC -TGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGAT -CTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAA -CTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCAT -TCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATG -TGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGA -ATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTT -GGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCA -TTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACA -GACTCCACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGA -AACTACTTTGGCACCATTCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN -NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN -NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN -NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN -NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN ->Treesnips_45-4-1 -NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN -NNNNNNNNNNNNNNNGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGC -AGAGGAGACCTTGACGGAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCA -GATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTT -GCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTGTGCAGCCTGGTCC -GGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTG -CGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGTTTTTTGCTATTC -AGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTG -CAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTTTGA -CTGCGTTTCCTACTGGAAATGGTGGAACAATCGAGCTTTTATACATGCAGGTTTGCTATT -CTCTCTGAAATTGATTCTGATAAGTTGCCATAAGAGGTCAAAAATTAGCAAAATCAGATT -TATCTTTTTTTTTTTTTTTTTTGTATGATGTGGACTGCAGACATATGCCGCCACTACTTT -AGCTTCTGCTAGAGACTTCTGGACTCTGAGATACACAACAGTGTTGGAAGATGGCAGTCT -TGTGGTATGTGATAACTGAACAATGACACATGCTTTCATTAATCCCTTTATTTTGTGAGC -ACAACTGGATTTTCTTCCTTGTTTTTGCAGTAGTGGGGTTTTGCTAATTATAGCTTATCT -ATGATGTTCTGTAAGGTTTGTGAAAGGTCCTTGAGTGGTACTCAGGGTGGTCCAAGCATA -CCGCCAGTGCAGCATTTTGTGAGAGCAGAAATGCTTCCCAGTGGATATTTGATACAACCT -TGTGAAGGTGGTGGTTCCATAATCCGTATTGTTGATCACATGGATCTAGAGGTACATGCT -AGTTGTTGATGGCTAGAAGCTGCAATGTAGTTTATACAATTAAATTCCCAGAGTAGCTAT -TCTAAGATGGGCTGATCTTTTCATTGATTTGATTATTGCTATTCAGCCATGGAGTGTGCC -TGAGGTTTTACGACCACTATATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGC -AGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCAC -TGACTGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCAC -AGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAG -GTTAAGCAGGTAATGTGACTACTGCAGGATGATATCTTCTCCCATATTTGAACCATGATG -ATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGAT -TTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTA -TCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAA -CTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAG -TTATTTAAAAAAAAATGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGG -GAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTG -TAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGAT -CAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTT -ATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGG -CACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCTTGGTTTTGTATTT -TGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTA -TATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATG -TAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACACAGGAGGAAGCT -GTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTAT -ACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGTTAACATTATCAA -CAACTTTGATGGGCAGCTTTGCAGTGGAATTGATGAACATGCAGCTGGAGCATGTGCTGA -ACTTGTTTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGG -GTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGC -ATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGC -TGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGAT -CTGGGGGTCCCAACCGGACATTGGACTTGGCTTCTGCTCTTGAGGTTGGATCAACTGGAA -CTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCAT -TCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATG -TGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGA -ATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTT -GGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCA -TTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACA -GACTACACATAGGGGTGGATCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGA -AACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACAT -ACAAA-TTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTAGTTGTGAA -GTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCA -AATCAAGCAGGGTTGGACATGCTGGAAACGACATNNNNNNNNNNNNNNNNNNNNNNNNNN -NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN ->Treesnips_45-7-1 -NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN -NNNNNNNNNNNNNNGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGC -AGAGGAGACCTTGACAGAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCA -GATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTT -GCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTTTGCAGCCTGGTCC -GGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTG -CGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGTGTTTTGCTATTC -AGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTG -CAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTTTGA -CTGCGTTTCCTACTGGAAATGGTGGAACAATCGAGCTTTTATACATGCAGGTTTGCTATT -CTCTCTGAAATTGATTCTGATAAGTTGCCATAAGAGGTCAAAAATTAGCAAAATCAGATT -TATCTTTTTTTTTTTTTTTTTTGTATGATGTGGACTGCAGACATATGCCGCCACTACTTT -AGCTTCTGCTAGAGACTTCTGGACTCTGAGATACACAACAGTGTTGGAAGATGGCAGTCT -TGTGGTATGTGATAACTGAACAATGACACATGCTTTCATTAATCCCTTTATTTTGTGAGC -ACAACTGGATTTTCTTCCTTGTTTTTGCAGTAGTGGGGTTTTGCTAATTATAGCTTATCT -ATGATGTTCTGTAAGGTTTGTGAAAGGTCCTTGAGTGGTACTCAGGGTGGTCCAAGCATA -CCGCCAGTGCAGCATTTTGTGAGAGCAGAAATGCTTCCCAGTGGATATTTGATACAACCT -TGTGAAGGTGGTGGTTCCATAATCCGTATTGTTGATCACATGGATCTAGAGGTACATGCT -AGTTGTTGATGGCTAGAAGCTGCAATGTAGTTTATACAATTAAATTCCCAGAGTAGCTAT -TCTAAGATGGGCTGATCTTTTCATTGATTTGATTATTGCTATTCAGCCATGGAGTGTGCC -TGAGGTTTTACGACCACTATATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGC -AGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCAC -TGACTGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCAC -AGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAG -GTTAAGCAGGTAATGTGACTACTGCAGGATTATATCTTCTCCCATATTTGAACCATGATG -ATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGAT -TTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTA -TCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAA -CTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAG -TTATTTAAAAAAAA-TGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGG -GAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTG -TAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGAT -CAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTT -ATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGG -CACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCCTGGTTTTGTATTT -TGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTA -TATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATG -TAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACTCAGGAGGAAGCT -GTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTAT -ACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGTTAACATTATCAA -CAACTTTGATGGGCAGCTTTGCAGTGGAATTGATGAACATGCAGCTGGAGCATGTGCTGA -ACTTGTTTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGG -GTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGC -ATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGC -TGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGAT -CTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAA -CTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCAT -TCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATG -TGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGA -ATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTT -GGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCA -TTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACA -GACTCCACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGA -AACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACAT -ACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAA -GTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCA -AATCAAGCAGGGTTGGACATGCTGGAAACGACATTGGTTGCATTGCAAGATATATCTTTG -GACAAAATTCTGGATGAAAATGGTCGCAAAAGTA ->Treesnips_45-9-1 -NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN -NNNNNNNNNNNNNNGGTATAAAAGGACTGTATTTTTCTATTCCAGACTCCTGTCTATAGC -AGAGGAGACCTTGACAGAGTTCCTTTCAAAGGCTAAAGGAGCTGCTGTCGATTGGGTCCA -GATGCCTGGGATGAAGGTTTGTGTTCCCAAGATCCTCTTCTAAAAATAGATCATGTGCTT -GCTTGAATTATTAATCTATGGTGTATTAAGATGCCTGAGCGTGTTTTTGCAGCCTGGTCC -GGATTCGATTGGTATTGTAGCTATTTCGAATACTTGTAATGGAGTAGCTGCACGTGCTTG -CGGTCTTGTAGGATTAGATCCTACAAAGGTAATGAGTGCAATTATTGTGTTTTGCTATTC -AGTAATGATTATTTTGTTTCCGAAGGAAGGGATGCTCATGCAAGTTTTCTATTCAGGTTG -CAGAGATTCTTAAAGATCGCCCATCTTGGCTTCGTGATTGTCGTTGCCTTGATGTTTTGA -CTGCGTTTCCTACTGGAAATGGTGGAACAATCGAGCTTTTATACATGCAGGTTTGCTATT -CTCTCTGAAATTGATTCTGATAAGTTGCCATAAGAGGTCAAAAATTAGCAAAATCAGATT -TATCTTTTTTTTTTTTTTTTTTGTATGATGTGGACTGCAGACATATGCCGCCACTACTTT -AGCTTCTGCTAGAGACTTCTGGACTCTGAGATACACAACAGTGTTGGAAGATGGCAGTCT -TGTGGTATGTGATAACTGAACAATGACACATGCTTTCATTAATCCCTTTATTTTGTGAGC -ACAACTGGATTTTCTTCCTTGTTTTTGCAGTAGTGGGGTTTTGCTAATTATAGCTTATCT -ATGATGTTCTGTAAGGTTTGTGAAAGGTCCTTGAGTGGTACTCAGGGTGGTCCAAGCATA -CCGCCAGTGCAGCATTTTGTGAGAGCAGAAATGCTTCCCAGTGGATATTTGATACAACCT -TGTGAAGGTGGTGGTTCCATAATCCGTATTGTTGATCACATGGATCTAGAGGTACATGCT -AGTTGTTGATGGCTAGAAGCTGCAATGTAGTTTATACAATTAAATTCCCAGAGTAGCTAT -TCTAAGATGGGCTGATCTTTTCATTGATTTGATTATTGCTATTCAGCCATGGAGTGTGCC -TGAGGTTTTACGACCACTATATGAATCGTCCACTGTACTTGCCCAGAAAATGACAATTGC -AGTAAGGACACCTTTAATGCCATTGTGCAGATTGTATTACAATTCTTCTAAGATTTCCAC -TGACTGAAATCTTCATGATCAGGCATTGCGTCGATTACGCCAAATTGCACAGGAAGCCAC -AGGTGAAGTAGTTTTTGGTTGGGGAAGACAGCCAGCTGTTCTGCGAACATTTAGCCAGAG -GTTAAGCAGGTAATGTGACTACTGCAGGATTATATCTTCTCCCATATTTGAACCATGATG -ATTGTGTCTAATAGACCTGTTTTTAAAAATGCAGGGGTTTCAACGAGGCCGTGAATGGAT -TTACAGATGATGGGTGGTCATTGATGGGTAGTGATGGAGTGGAGGATGTCACTATTGCTA -TCAATTCATCTCCAAACAAACATTTTGCCTACCAAGTTAATGCTTCTAATGGGCTAACAA -CTCTTGGTGGTGGCATCCTTTGTGCAAAGGCATCCATGCTCTTACAGGTTCTCAAGCTAG -TTATTTAAAAAAAA-TGTAAACAACATAATTTTATGCAATAATTTTAGAATGCATCTTGG -GAGTCTGGAATACTTGTTTCTGAGTTCCGAGTCTTGTTTGATAGAGGAACTGATGACGTG -TAATGTAAATACAGAATGTGCCTCCAGCATTACTTGTACGTTTCTTGCGCGAGCACCGAT -CAGAGTGGGCAGATTCCAACATTGATGCCTATTCTGCAGCTGCTTTAAAATCAAGTCCTT -ATAGTGTTCCAGGATCAAGAGCAGGGGGCTTTTCAGGGAGTCAAGTAATCCTTCCCTTGG -CACATACTGTGGAACATGAGGAGGTGGGGAGTGGTTACTGAGATGCCTGGTTTTGTATTT -TGTTGCCTTCAAACTGCATTGGGATGCTTTTCAATATTTTTCCTGGTGTTTTTGGTTCTA -TATTTTGTTCAAATGTTTTCCTCTCTGTTGGTTTATACAATTTTGAAGCTGAAATAAATG -TAACTGCAGTTCTTAGAGGTCATTAAGCTGGAAGGTCATGGCCTTACTCAGGAGGAAGCT -GTCCTGTCCAGAGATATGTTTCTCTTACAGGTATCTTGTATTGCCAAAGTTACTTTCTAT -ACCAATGATTGTGCTAGTGTATACTTTTTAAGGTTTATTGTTTAATGTTAACATTATCAA -CAACTTTGATGGGCAGCTTTGCAGTGGAATTGATGAACATGCAGCTGGAGCATGTGCTGA -ACTTGTTTTTGCACCAATTGATGAATCCTTTGCTGATGATGCTCCTTTGCTTCCTTCTGG -GTTCAGGGTTATTCCTTTGGAATCAAGAACAGTTGAGTATATTCTGCAAACGTTTATGGC -ATCTAGAATTGATTTTTCATCTATGCTAAAATATCATTCAAAACAACTGGCATCTGGTGC -TGCATTACGTATTTATTTCTTGGAGCTTGAAGAAATGAATATATATGATGCAGGATGGAT -CTGGGGGTCCCAACCGCACACTGGACTTGGCTTCTGCTCTGGAGGTTGGATCAACTGGAA -CTAGAACGTCTGGTGATTCTGGCACCAACTCGAATCTGAGATCTGTGTTGACTATTGCAT -TCCAGTTTACTTATGAGAGCCACTCGCGAGAAAATGTGGCAGCTATGGCTCGTCAATATG -TGCGTAGTGTTGTAGCATCTGTCCAGAGGGTTGCCATGGCATTAGCTCCTTCTCGACTGA -ATTCACATGTTGGCCCAAGGCCACCTCCTGGGACTCCAGAAGCACTTACTCTTGCCCGTT -GGATTTGTCAGAGCTACAGGTAAATAGGAGGCTTGCATTCAAGGCTCTTATGTTTTGCCA -TTCTTTATTTCTTAATTTTGAAATATTTTGTACTGAGAGCTGAATGCAAGTTTTTGGACA -GACTCCACATAGGTGTGGACCTGTTTCGAGCTGATTGTGAAGCCAGTGAGTCTGTACTGA -AACTACTTTGGCACCATTCAGATGCAATCATGTGCTGTTCTGTGAAGGTATCTATTACAT -ACAAAATTCTGAAGAAGTATAGCACTTTGGATACCTGCCTTATATTTTTCTGGTTGTGAA -GTTACTAAATCTGGCCTATTGCTTGTGAATATGCAGGCGTTGCCTGTTTTTACATTTGCA -AATCAAGCAGGGTTGGACATGCTGGAAACGACANNNNNNNNNNNNNNNNNNNNNNNNNNN -NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
--- a/commons/core/parsing/test/data/sampleForTestVarscanToVCF.varscan Mon Apr 29 03:26:07 2013 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,108 +0,0 @@ -Chrom Position Ref Cons Reads1 Reads2 VarFreq Strands1 Strands2 Qual1 Qual2 Pvalue MapQual1 MapQual2 Reads1Plus Reads1Minus Reads2Plus Reads2Minus VarAllele -chr1 10759 C Y 2 1 33.33% 1 1 65 47 0.98 1 1 0 2 0 1 T -chr1 12438 C S 1 1 50% 1 1 62 42 0.98 1 1 0 1 0 1 G -chr1 17432 A M 2 1 33.33% 1 1 55 37 0.98 1 1 0 2 1 0 C -chr1 20391 A W 2 1 33.33% 1 1 56 37 0.98 1 1 2 0 1 0 T -chr1 21207 T Y 2 1 33.33% 1 1 55 41 0.98 1 1 2 0 1 0 C -chr1 26057 T K 11 2 15.38% 2 1 60 37 0.98 1 1 7 4 2 0 G -chr1 36838 T Y 2 1 33.33% 1 1 61 36 0.98 1 1 2 0 0 1 C -chr1 37751 A M 3 1 25% 1 1 65 42 0.98 1 1 0 3 0 1 C -chr1 43500 C S 3 1 25% 2 1 65 40 0.98 1 1 2 1 0 1 G -chr1 50481 A W 2 1 33.33% 1 1 60 40 0.98 1 1 0 2 1 0 T -chr1 106849 C S 3 1 25% 2 1 65 40 0.98 1 1 2 1 1 0 G -chr1 108726 T W 2 1 33.33% 1 1 50 41 0.98 1 1 0 2 0 1 A -chr1 114204 G S 4 2 33.33% 2 2 60 39 0.98 1 1 2 2 1 1 C -chr1 115030 A M 3 1 25% 2 1 57 41 0.98 1 1 2 1 1 0 C -chr1 116173 A R 7 2 22.22% 2 1 58 39 0.98 1 1 5 2 2 0 G -chr1 118433 G S 6 1 14.29% 2 1 64 50 0.98 1 1 4 2 1 0 C -chr1 119042 A R 5 1 16.67% 2 1 55 51 0.98 1 1 2 3 1 0 G -chr1 139219 A R 1 1 50% 1 1 65 46 0.98 1 1 1 0 0 1 G -chr1 140710 A R 9 2 18.18% 2 1 63 41 0.98 1 1 3 6 0 2 G -chr1 144419 T Y 3 1 25% 2 1 63 39 0.98 1 1 1 2 1 0 C -chr1 146099 G S 2 1 33.33% 2 1 64 38 0.98 1 1 1 1 0 1 C -chr1 146435 T Y 11 7 38.89% 2 1 60 24 0.98 1 1 4 7 7 0 C -chr1 147232 A W 2 1 33.33% 2 1 64 39 0.98 1 1 1 1 0 1 T -chr1 158703 A M 2 1 33.33% 2 1 60 55 0.98 1 1 1 1 1 0 C -chr1 166732 A W 4 2 33.33% 2 2 62 24 0.98 1 1 2 2 1 1 T -chr1 179887 C M 3 1 25% 2 1 64 39 0.98 1 1 1 2 1 0 A -chr1 185971 A R 3 1 25% 2 1 55 40 0.98 1 1 2 1 0 1 G -chr1 211074 A M 3 1 25% 1 1 65 40 0.98 1 1 3 0 0 1 C -chr1 219573 G S 1 1 50% 1 1 61 41 0.98 1 1 1 0 0 1 C -chr1 229396 C S 2 1 33.33% 2 1 57 39 0.98 1 1 1 1 0 1 G -chr1 236388 T K 8 2 20% 2 1 52 32 0.98 1 1 2 6 0 2 G -chr1 245990 G S 5 1 16.67% 2 1 61 46 0.98 1 1 3 2 1 0 C -chr1 249155 C S 2 1 33.33% 2 1 62 37 0.98 1 1 1 1 1 0 G -chr1 261257 T K 3 1 25% 1 1 60 39 0.98 1 1 0 3 0 1 G -chr1 274692 A R 2 1 33.33% 2 1 63 39 0.98 1 1 1 1 0 1 G -chr1 283468 G S 3 1 25% 2 1 63 45 0.98 1 1 2 1 1 0 C -chr1 284288 T W 3 1 25% 2 1 64 39 0.98 1 1 2 1 1 0 A -chr1 286983 T Y 2 1 33.33% 1 1 64 37 0.98 1 1 0 2 1 0 C -chr1 287378 C M 2 1 33.33% 2 1 65 37 0.98 1 1 1 1 0 1 A -chr1 302928 A R 1 1 50% 1 1 64 38 0.98 1 1 0 1 1 0 G -chr1 305952 C M 2 1 33.33% 1 1 65 38 0.98 1 1 0 2 0 1 A -chr1 307932 T Y 4 1 20% 2 1 65 42 0.98 1 1 1 3 0 1 C -chr1 317422 G S 3 1 25% 1 1 57 40 0.98 1 1 0 3 0 1 C -chr1 321480 A W 2 1 33.33% 1 1 64 38 0.98 1 1 2 0 0 1 T -chr1 322307 A M 1 1 50% 1 1 65 37 0.98 1 1 1 0 0 1 C -chr1 328326 G S 5 1 16.67% 2 1 62 52 0.98 1 1 4 1 1 0 C -chr1 333138 T K 3 2 40% 1 2 63 24 0.98 1 1 0 3 1 1 G -chr1 333388 T Y 4 1 20% 2 1 64 43 0.98 1 1 2 2 1 0 C -chr1 335592 T K 2 1 33.33% 1 1 58 39 0.98 1 1 2 0 1 0 G -chr1 336572 C S 1 1 50% 1 1 58 38 0.98 1 1 0 1 0 1 G -chr1 347396 T K 5 1 16.67% 2 1 62 52 0.98 1 1 2 3 1 0 G -chr1 359080 T K 4 1 20% 2 1 61 42 0.98 1 1 1 3 0 1 G -chr1 360223 A W 5 1 16.67% 2 1 54 52 0.98 1 1 2 3 0 1 T -chr1 361047 T K 5 1 16.67% 2 1 62 50 0.98 1 1 2 3 0 1 G -chr1 366048 A M 2 1 33.33% 2 1 65 39 0.98 1 1 1 1 0 1 C -chr1 368105 A R 3 1 25% 2 1 55 40 0.98 1 1 2 1 0 1 G -chr1 373782 T W 3 1 25% 2 1 64 41 0.98 1 1 2 1 1 0 A -chr1 378159 G K 2 1 33.33% 2 1 63 41 0.98 1 1 1 1 0 1 T -chr1 383945 C S 8 1 11.11% 2 1 58 57 0.98 1 1 2 6 1 0 G -chr1 389461 A R 1 1 50% 1 1 65 36 0.98 1 1 1 0 1 0 G -chr1 396860 G K 4 1 20% 1 1 65 43 0.98 1 1 0 4 0 1 T -chr1 397170 A R 1 1 50% 1 1 65 36 0.98 1 1 1 0 1 0 G -chr1 399939 A M 5 1 16.67% 2 1 63 46 0.98 1 1 1 4 0 1 C -chr1 400733 G S 3 1 25% 1 1 65 41 0.98 1 1 3 0 0 1 C -chr1 401165 A R 3 1 25% 2 1 64 41 0.98 1 1 1 2 0 1 G -chr1 406774 T K 3 1 25% 2 1 58 39 0.98 1 1 2 1 0 1 G -chr1 417293 C Y 2 1 33.33% 1 1 65 55 0.98 1 1 2 0 1 0 T -chr1 417723 G S 2 1 33.33% 1 1 65 49 0.98 1 1 2 0 0 1 C -chr1 420308 C M 1 1 50% 1 1 65 36 0.98 1 1 1 0 0 1 A -chr1 435579 C Y 3 1 25% 1 1 64 40 0.98 1 1 0 3 0 1 T -chr1 437183 G R 2 1 33.33% 1 1 65 39 0.98 1 1 0 2 0 1 A -chr1 437194 A W 3 1 25% 1 1 64 41 0.98 1 1 0 3 0 1 T -chr1 438866 G S 6 1 14.29% 2 1 62 52 0.98 1 1 5 1 0 1 C -chr1 446237 T Y 3 1 25% 2 1 65 39 0.98 1 1 2 1 1 0 C -chr1 446308 A R 2 1 33.33% 1 1 50 38 0.98 1 1 2 0 1 0 G -chr1 452322 A M 1 1 50% 1 1 65 36 0.98 1 1 0 1 1 0 C -chr1 462721 T K 1 1 50% 1 1 58 41 0.98 1 1 0 1 1 0 G -chr1 477145 C S 2 1 33.33% 2 1 64 39 0.98 1 1 1 1 1 0 G -chr1 493772 G S 3 1 25% 2 1 65 40 0.98 1 1 1 2 1 0 C -chr1 498962 C M 2 1 33.33% 2 1 65 41 0.98 1 1 1 1 1 0 A -chr1 510532 T Y 4 1 20% 2 1 64 53 0.98 1 1 2 2 1 0 C -chr1 516369 T Y 1 1 50% 1 1 34 40 0.98 1 1 1 0 1 0 C -chr1 523631 G K 3 1 25% 2 1 64 40 0.98 1 1 1 2 0 1 T -chr1 524680 C Y 2 1 33.33% 1 1 65 41 0.98 1 1 0 2 0 1 T -chr1 525898 T K 3 1 25% 2 1 62 49 0.98 1 1 2 1 1 0 G -chr1 526118 A M 5 1 16.67% 2 1 61 50 0.98 1 1 2 3 0 1 C -chr1 535762 C Y 3 1 25% 1 1 65 42 0.98 1 1 3 0 1 0 T -chr1 543235 G K 1 1 50% 1 1 45 41 0.98 1 1 1 0 1 0 T -chr1 550086 T Y 3 1 25% 1 1 50 41 0.98 1 1 3 0 1 0 C -chr1 550508 A R 3 1 25% 2 1 55 40 0.98 1 1 1 2 0 1 G -chr1 551143 G S 2 1 33.33% 1 1 65 39 0.98 1 1 0 2 1 0 C -chr1 552924 A R 6 2 25% 2 2 62 38 0.98 1 1 4 2 1 1 G -chr1 553541 A R 7 1 12.5% 2 1 65 52 0.98 1 1 4 3 0 1 G -chr1 560806 T Y 5 1 16.67% 2 1 65 49 0.98 1 1 2 3 0 1 C -chr1 562736 C S 5 1 16.67% 1 1 64 52 0.98 1 1 0 5 1 0 G -chr1 563224 T Y 2 1 33.33% 1 1 51 39 0.98 1 1 2 0 1 0 C -chr1 564217 T W 3 1 25% 2 1 62 40 0.98 1 1 1 2 0 1 A -chr1 567288 C Y 2 1 33.33% 2 1 65 40 0.98 1 1 1 1 1 0 T -chr1 569652 T Y 1 1 50% 1 1 48 42 0.98 1 1 1 0 0 1 C -chr1 570280 G K 7 1 12.5% 2 1 60 53 0.98 1 1 1 6 0 1 T -chr1 582185 T Y 1 1 50% 1 1 63 40 0.98 1 1 1 0 1 0 C -chr1 582453 G S 1 1 50% 1 1 65 38 0.98 1 1 0 1 0 1 C -chr1 583477 T K 2 1 33.33% 2 1 62 39 0.98 1 1 1 1 1 0 G -chr1 584179 G K 3 1 25% 2 1 65 41 0.98 1 1 2 1 0 1 T -chr1 589074 G S 2 1 33.33% 2 1 65 36 0.98 1 1 1 1 0 1 C -chr1 596641 C S 2 1 33.33% 1 1 65 40 0.98 1 1 2 0 0 1 G -chr1 599263 G K 2 1 33.33% 1 1 60 38 0.98 1 1 2 0 0 1 T
--- a/commons/core/parsing/test/data/test.wig Mon Apr 29 03:26:07 2013 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -fixedStep chrom=chr1 start=11 step=1 -1.1 -1.2 -fixedStep chrom=chr1 start=14 step=1 -1.4 -1.5 -variableStep chrom=chr1 -17 1.7 -19 1.9 -variableStep chrom=chrX -5 9.5 -6 9.6
--- a/commons/core/parsing/test/data/test1.wig Mon Apr 29 03:26:07 2013 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,11 +0,0 @@ -fixedStep chrom=chr2 start=9 step=1 -0 -0 -1.1 -1.2 -fixedStep chrom=chr2 start=14 step=1 -1.4 -1.5 -variableStep chrom=chr2 -17 1.7 -19 1.9
--- a/commons/core/parsing/test/data/test2.wig Mon Apr 29 03:26:07 2013 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,3 +0,0 @@ -fixedStep chrom=chr3 start=14 step=1 -1.4 -1.5
--- a/commons/core/parsing/test/data/testBedParser1.bed Mon Apr 29 03:26:07 2013 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ -track name=reads description="Reads" useScore=0 visibility=full offset=0 -arm_X 1000 3000 test1.1 1000 + 1000 3000 0 2 100,1000, 0,1000,
--- a/commons/core/parsing/test/data/testCoordsParser.coords Mon Apr 29 03:26:07 2013 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,19 +0,0 @@ -/home/urgi/genome_alignment/data/banks/arabidopsis/lyrata/ara_lyra_sca1.fa /home/urgi/genome_alignment/data/banks/arabidopsis/thaliana/ara_thal_chr1.fa -NUCMER - - [S1] [E1] | [S2] [E2] | [LEN 1] [LEN 2] | [% IDY] | [TAGS] -===================================================================================== - 1 6251 | 421251 415029 | 6251 6223 | 89.03 | scaffold_1 gi|240254421:1-30427671 - 9127 11947 | 414945 412123 | 2821 2823 | 90.45 | scaffold_1 gi|240254421:1-30427671 - 12201 12953 | 411933 411173 | 753 761 | 82.56 | scaffold_1 gi|240254421:1-30427671 - 13086 20401 | 411034 403760 | 7316 7275 | 88.56 | scaffold_1 gi|240254421:1-30427671 - 20482 20686 | 403573 403369 | 205 205 | 94.66 | scaffold_1 gi|240254421:1-30427671 - 32288 32623 | 402639 402280 | 336 360 | 76.52 | scaffold_1 gi|240254421:1-30427671 - 32936 33572 | 401974 401308 | 637 667 | 79.80 | scaffold_1 gi|240254421:1-30427671 - 33748 35013 | 401256 400080 | 1266 1177 | 82.77 | scaffold_1 gi|240254421:1-30427671 - 35456 44084 | 399895 391566 | 8629 8330 | 86.23 | scaffold_1 gi|240254421:1-30427671 - 44401 45265 | 391569 390737 | 865 833 | 90.40 | scaffold_1 gi|240254421:1-30427671 - 45374 46243 | 390633 389755 | 870 879 | 71.70 | scaffold_1 gi|240254421:1-30427671 - 46366 48958 | 389607 387128 | 2593 2480 | 82.32 | scaffold_1 gi|240254421:1-30427671 - 55079 55160 | 369603 369683 | 82 81 | 93.90 | scaffold_1 gi|240254421:1-30427671 - 55407 56537 | 369910 371016 | 1131 1107 | 81.69 | scaffold_1 gi|240254421:1-30427671 \ No newline at end of file
--- a/commons/core/parsing/test/data/testCoordsParser_showcoord.coords Mon Apr 29 03:26:07 2013 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,5 +0,0 @@ -/home/fungisex/Work2011_2012/Gnc/Compare_Genome/SLA1_SLA2/Mivi_sl_A1_scaffolds.fa /home/fungisex/Work2011_2012/Gnc/Compare_Genome/SLA1_SLA2/Mivi_sl_A2_scaffolds.fa -NUCMER - -[S1] [E1] [S2] [E2] [LEN 1] [LEN 2] [% IDY] [LEN R] [LEN Q] [COV R] [COV Q] [FRM] [TAGS] -296 2292 1 2001 1997 2001 98.30 175930 60273 1.14 3.32 1 1 mivi_sl_A1_scaffold00001 mivi_sl_A2_scaffold00003
--- a/commons/core/parsing/test/data/testCoordsParser_showcoord_promer.coords Mon Apr 29 03:26:07 2013 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,5 +0,0 @@ -/home/fungisex/Work2011_2012/Gnc/Compare_Genome/SLA1_SLA2/Mivi_sl_A1_scaffolds.fa /home/fungisex/Work2011_2012/Gnc/Compare_Genome/SLA1_SLA2/Mivi_sl_A2_scaffolds.fa -PROMER - -[S1] [E1] [S2] [E2] [LEN 1] [LEN 2] [% IDY] [% SIM] [% STP] [LEN R] [LEN Q] [COV R] [COV Q] [FRM] [TAGS] -1229 291 939 1 939 939 94.25 97.12 3.04 175930 60273 0.53 1.56 -3 -1 mivi_sl_A1_scaffold00001 mivi_sl_A2_scaffold00003
--- a/commons/core/parsing/test/data/testGffParser1.gff3 Mon Apr 29 03:26:07 2013 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,7 +0,0 @@ -arm_X test test_transcript 1000 2000 1 + . ID=id1-1;Name=test1;field=value1 -arm_X test test_exon 1000 2000 1 + . ID=id1-1-exon1;Name=test1-exon1;Parent=id1-1 -arm_X test test_transcript 10000 20000 1 - . ID=id2-1;Name=test2;field=value2 -arm_X test test_exon 10000 10100 1 - . ID=id2-1-exon1;Name=test2-exon1;Parent=id2-1 -arm_X test test_exon 10500 20000 1 - . ID=id2-1-exon2;Name=test2-exon2;Parent=id2-1 -arm_X test test_transcript 1000 2000 1 + . ID=test1.1-1;Name=test1.1 -arm_X test test_exon 1000 2000 1 + . ID=test1.1-1-exon1;Name=test1.1-exon1;Parent=test1.1-1
--- a/commons/core/seq/test/TestClusterConsensusCollection.py Mon Apr 29 03:26:07 2013 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,67 +0,0 @@ -import unittest -import os -from commons.core.seq.ClusterConsensusCollection import ClusterConsensusCollection -from commons.core.seq.Bioseq import Bioseq -from commons.core.seq.BioseqDB import BioseqDB - -class TestClusterConsensusCollection(unittest.TestCase): - - def setUp(self): - self._clusterSequencesFileName = "clusterSequences.fa" - self._ClusterConsensusCollection = ClusterConsensusCollection(self._clusterSequencesFileName) - self._createClusterConsensusFile() - - def tearDown(self): - os.remove(self._clusterSequencesFileName) - - def test_fillCollection(self): - expClusterConsensusCollection = ClusterConsensusCollection(self._clusterSequencesFileName) - expClusterConsensusCollection._clusterFileName = self._clusterSequencesFileName - bioseq1 = Bioseq("seq1", "ACCAAAGACACTAGAATAACAAGATGCGTAACGCCATACGATTTTTTGGCACACTATTTT") - bioseq2 = Bioseq("seq2", "ACCAAAGACACTAGAATAACAAGATGCGTAACGCCATACGATTTTTTGGCACACTATTTT") - bioseq3 = Bioseq("seq3", "ACCAAAGACACTAGAATAACAAGATGCGTAACGCCATACGATTTTTTGGCACACTATTTT") - iBioseqDB1 = BioseqDB() - iBioseqDB2 = BioseqDB() - iBioseqDB1.setData([bioseq1, bioseq2]) - iBioseqDB2.setData([bioseq3]) - expClusterConsensusCollection._lClusterConsensus = [iBioseqDB1, iBioseqDB2] - self._ClusterConsensusCollection.fillCollection() - self.assertEqual(expClusterConsensusCollection, self._ClusterConsensusCollection) - - def test_getNumClusterForAConsensus_for_seq2(self): - self._ClusterConsensusCollection.fillCollection() - expClusterNumber = 1 - obsClusterNumber = self._ClusterConsensusCollection.getNumClusterForAConsensus ("seq2") - self.assertEqual(expClusterNumber, obsClusterNumber) - - def test_getNumClusterForAConsensus_for_seq3(self): - self._ClusterConsensusCollection.fillCollection() - expClusterNumber = 2 - obsClusterNumber = self._ClusterConsensusCollection.getNumClusterForAConsensus ("seq3") - self.assertEqual(expClusterNumber, obsClusterNumber) - - def test_getNumConsensusInCluster_1(self): - self._ClusterConsensusCollection.fillCollection() - expConsensusNumber = 2 - obsConsensusNumber = self._ClusterConsensusCollection.getNumConsensusInCluster (1) - self.assertEqual(expConsensusNumber, obsConsensusNumber) - - def test_getNumConsensusInCluster_2(self): - self._ClusterConsensusCollection.fillCollection() - expConsensusNumber = 1 - obsConsensusNumber = self._ClusterConsensusCollection.getNumConsensusInCluster (2) - self.assertEqual(expConsensusNumber, obsConsensusNumber) - - def _createClusterConsensusFile(self): - fCluster = open(self._clusterSequencesFileName, "w") - fCluster.write(">BlastclustCluster1Mb1 seq1\n") - fCluster.write("ACCAAAGACACTAGAATAACAAGATGCGTAACGCCATACGATTTTTTGGCACACTATTTT\n") - fCluster.write(">BlastclustCluster1Mb2 seq2\n") - fCluster.write("ACCAAAGACACTAGAATAACAAGATGCGTAACGCCATACGATTTTTTGGCACACTATTTT\n") - fCluster.write(">BlasterGrouperCluster3Mb1 seq3\n") - fCluster.write("ACCAAAGACACTAGAATAACAAGATGCGTAACGCCATACGATTTTTTGGCACACTATTTT\n") - fCluster.close() - - -if __name__ == "__main__": - unittest.main() \ No newline at end of file
--- a/commons/core/seq/test/TestSuite_seq.py Mon Apr 29 03:26:07 2013 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,58 +0,0 @@ -#!/usr/bin/env python - -# Copyright INRA (Institut National de la Recherche Agronomique) -# http://www.inra.fr -# http://urgi.versailles.inra.fr -# -# This software is governed by the CeCILL license under French law and -# abiding by the rules of distribution of free software. You can use, -# modify and/ or redistribute the software under the terms of the CeCILL -# license as circulated by CEA, CNRS and INRIA at the following URL -# "http://www.cecill.info". -# -# As a counterpart to the access to the source code and rights to copy, -# modify and redistribute granted by the license, users are provided only -# with a limited warranty and the software's author, the holder of the -# economic rights, and the successive licensors have only limited -# liability. -# -# In this respect, the user's attention is drawn to the risks associated -# with loading, using, modifying and/or developing or reproducing the -# software by the user in light of its specific status of free software, -# that may mean that it is complicated to manipulate, and that also -# therefore means that it is reserved for developers and experienced -# professionals having in-depth computer knowledge. Users are therefore -# encouraged to load and test the software's suitability as regards their -# requirements in conditions enabling the security of their systems and/or -# data to be ensured and, more generally, to use and operate it in the -# same conditions as regards security. -# -# The fact that you are presently reading this means that you have had -# knowledge of the CeCILL license and that you accept its terms. - - -import unittest -import sys -import Test_AlignedBioseqDB -import Test_Bioseq -import Test_BioseqDB -import Test_BioseqUtils -import Test_FastaUtils - - -def main(): - - TestSuite_seq = unittest.TestSuite() - - TestSuite_seq.addTest( unittest.makeSuite( Test_AlignedBioseqDB.Test_AlignedBioseqDB, "test" ) ) - TestSuite_seq.addTest( unittest.makeSuite( Test_Bioseq.Test_Bioseq, "test" ) ) - TestSuite_seq.addTest( unittest.makeSuite( Test_BioseqDB.Test_BioseqDB, "test" ) ) - TestSuite_seq.addTest( unittest.makeSuite( Test_BioseqUtils.Test_BioseqUtils, "test" ) ) - TestSuite_seq.addTest( unittest.makeSuite( Test_FastaUtils.Test_FastaUtils, "test" ) ) - - runner = unittest.TextTestRunner( sys.stderr, 2, 2 ) - runner.run( TestSuite_seq ) - - -if __name__ == "__main__": - main()
--- a/commons/core/seq/test/Test_AlignedBioseqDB.py Mon Apr 29 03:26:07 2013 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,773 +0,0 @@ -# Copyright INRA (Institut National de la Recherche Agronomique) -# http://www.inra.fr -# http://urgi.versailles.inra.fr -# -# This software is governed by the CeCILL license under French law and -# abiding by the rules of distribution of free software. You can use, -# modify and/ or redistribute the software under the terms of the CeCILL -# license as circulated by CEA, CNRS and INRIA at the following URL -# "http://www.cecill.info". -# -# As a counterpart to the access to the source code and rights to copy, -# modify and redistribute granted by the license, users are provided only -# with a limited warranty and the software's author, the holder of the -# economic rights, and the successive licensors have only limited -# liability. -# -# In this respect, the user's attention is drawn to the risks associated -# with loading, using, modifying and/or developing or reproducing the -# software by the user in light of its specific status of free software, -# that may mean that it is complicated to manipulate, and that also -# therefore means that it is reserved for developers and experienced -# professionals having in-depth computer knowledge. Users are therefore -# encouraged to load and test the software's suitability as regards their -# requirements in conditions enabling the security of their systems and/or -# data to be ensured and, more generally, to use and operate it in the -# same conditions as regards security. -# -# The fact that you are presently reading this means that you have had -# knowledge of the CeCILL license and that you accept its terms. - - -import unittest -import sys -import os -import time -from commons.core.seq.AlignedBioseqDB import AlignedBioseqDB -from commons.core.seq.Bioseq import Bioseq -from commons.core.utils.FileUtils import FileUtils -from commons.core.coord.Align import Align -from commons.core.coord.Range import Range -from commons.core.stat.Stat import Stat - - -class Test_AlignedBioseqDB( unittest.TestCase ): - - def setUp( self ): - self._i = AlignedBioseqDB() - self._uniqId = "%s_%s" % ( time.strftime("%Y%m%d%H%M%S") , os.getpid() ) - - - def tearDown( self ): - self._i = None - self._uniqId = "" - - - def test_getLength(self): - iAlignedBioseqDB = AlignedBioseqDB() - - iBioseq1 = Bioseq( "seq1", "AGCGGACGATGCAGCATGCGAATGACGAT" ) - iAlignedBioseqDB.setData([iBioseq1]) - - expLenght = 29 - obsLength = iAlignedBioseqDB.getLength() - - self.assertEquals(expLenght, obsLength) - - - def test_getSeqLengthWithoutGaps( self ): - iAlignedBioseqDB = AlignedBioseqDB() - iAlignedBioseqDB.add( Bioseq( "seq3", - "AGCG-GACGATGCAGCAT--GCGAATGA--CGAT" ) ) - expLenght = 29 - obsLength = iAlignedBioseqDB.getSeqLengthWithoutGaps( "seq3" ) - - self.assertEquals(expLenght, obsLength) - - - def test_getListOccPerSite(self): - iBioseq1 = Bioseq( "seq1", "AGAAA") - iBioseq2 = Bioseq( "seq2", "TCAAG") - iBioseq3 = Bioseq( "seq3", "GGTAC") - iBioseq4 = Bioseq( "seq4", "CCTTA") - - iAlignedBioseqDB = AlignedBioseqDB() - iAlignedBioseqDB.setData([iBioseq1, iBioseq2, iBioseq3, iBioseq4]) - - expList = [ - - {"A":1, "T":1, "G":1, "C":1}, - - {"G":2, "C":2}, - - {"A":2, "T":2 }, - - {"A":3, "T":1 }, - - {"A":2, "G":1, "C":1} - ] - - obsList = iAlignedBioseqDB.getListOccPerSite() - - self.assertEquals(expList, obsList) - - - def test_getListOccPerSite_with_none_sequence(self): - iBioseq1 = Bioseq( "seq1", "AGAAA") - iBioseq2 = Bioseq( "seq2", "TCAAG") - iBioseq3 = Bioseq( "seq3", "GGTAC") - iBioseq4 = Bioseq( "seq4", None) - iBioseq5 = Bioseq( "seq5", "CCTTA") - - iAlignedBioseqDB = AlignedBioseqDB() - iAlignedBioseqDB.setData([iBioseq1, iBioseq2, iBioseq3, iBioseq4, iBioseq5]) - - expList = [ - {"A":1, "T":1, "G":1}, - {"G":2, "C":1}, - {"A":2, "T":1 }, - {"A":3}, - {"A":1, "G":1, "C":1}, - ] - - obsList = iAlignedBioseqDB.getListOccPerSite() - - self.assertEquals(expList, obsList) - - - def test_getListOccPerSite_on_three_sequence(self): - iBioseq1 = Bioseq( "seq1", "AGAAA") - iBioseq2 = Bioseq( "seq2", "TCAAG") - iBioseq3 = Bioseq( "seq3", "GGTAC") - - iAlignedBioseqDB = AlignedBioseqDB() - iAlignedBioseqDB.setData([iBioseq1, iBioseq2, iBioseq3]) - - expList = [ - {"A":1, "T":1, "G":1}, - {"G":2, "C":1}, - {"A":2, "T":1 }, - {"A":3}, - {"A":1, "G":1, "C":1}, - ] - - obsList = iAlignedBioseqDB.getListOccPerSite() - - self.assertEquals(expList, obsList) - - - def test_getConsensus_with_minNbNt_greater_than_nbInSeq(self): - iBioseq1 = Bioseq("seq1", "AGAT") - iBioseq2 = Bioseq("seq2", "TGCA") - iBioseq3 = Bioseq("seq3", "TACT") - - iAlignedBioseqDB = AlignedBioseqDB() - iAlignedBioseqDB.setData([iBioseq1, iBioseq2, iBioseq3]) - - expConsensus = Bioseq("consensus= length=4 nbAlign=3","TGCT") - obsConsensus = iAlignedBioseqDB.getConsensus(5) - - self.assertEquals(expConsensus, obsConsensus) - - - def test_getConsensus_with_minPropNt_greater_than_1(self): - isSysExitRaised = False - - iBioseq1 = Bioseq("seq1", "AGAT") - iBioseq2 = Bioseq("seq2", "TGCA") - iBioseq3 = Bioseq("seq3", "TACT") - - iAlignedBioseqDB = AlignedBioseqDB() - iAlignedBioseqDB.setData([iBioseq1, iBioseq2, iBioseq3]) - - expFileName = "expFileName" - expFileHandler = open(expFileName,"w") - expMessage = "ERROR: minPropNt=2.00 should be a proportion (below 1.0)\n" - expFileHandler.write(expMessage) - expFileHandler.close() - - obsFileName = "obsFileName" - obsFileHandler = open(obsFileName,"w") - - stdoutRef = sys.stdout - sys.stdout = obsFileHandler - - try: - iAlignedBioseqDB.getConsensus(2,2) - except SystemExit: - isSysExitRaised = True - - obsFileHandler.close() - expFileHandler.close() - - self.assertTrue( FileUtils.are2FilesIdentical( expFileName, obsFileName ) ) - self.assertTrue( isSysExitRaised ) - - sys.stdout = stdoutRef - os.remove ( obsFileName ) - os.remove ( expFileName ) - stdoutRef = sys.stdout - - - def test_getConsensus_with_AlignBioseqInstance_size_1(self): - isSysExitRaised = False - - iBioseq1 = Bioseq("seq1", "AGAT") - - iAlignedBioseqDB = AlignedBioseqDB() - iAlignedBioseqDB.setData([iBioseq1]) - - expFileName = "expFileName" - expFileHandler = open(expFileName,"w") - expMessage = "ERROR: can't make a consensus with less than 2 sequences\n" - expFileHandler.write(expMessage) - expFileHandler.close() - - obsFileName = "obsFileName" - obsFileHandler = open(obsFileName,"w") - - stdoutRef = sys.stdout - sys.stdout = obsFileHandler - - try: - iAlignedBioseqDB.getConsensus(4) - except SystemExit: - isSysExitRaised = True - - obsFileHandler.close() - expFileHandler.close() - - self.assertTrue( FileUtils.are2FilesIdentical( expFileName, obsFileName ) ) - self.assertTrue( isSysExitRaised ) - - sys.stdout = stdoutRef - os.remove ( obsFileName ) - os.remove ( expFileName ) - stdoutRef = sys.stdout - - - def test_getConsensus_with_gap_assertion_on_warning_msg(self): - iBioseq1 = Bioseq("seq1", "A-GA-T") - iBioseq2 = Bioseq("seq2", "T-GC-A") - iBioseq3 = Bioseq("seq3", "T-AC-T") - - iAlignedBioseqDB = AlignedBioseqDB() - iAlignedBioseqDB.setData([iBioseq1, iBioseq2, iBioseq3]) - - expFileName = "expFileName" - expFileHandler = open(expFileName,"w") - expMessage = "WARNING: 2 sites were removed (33.33%)\n" - expFileHandler.write(expMessage) - expFileHandler.close() - - obsFileName = "obsFileName" - obsFileHandler = open(obsFileName,"w") - - stdoutRef = sys.stdout - sys.stdout = obsFileHandler - - iAlignedBioseqDB.getConsensus(2) - - obsFileHandler.close() - expFileHandler.close() - - self.assertTrue( FileUtils.are2FilesIdentical( expFileName, obsFileName ) ) - - sys.stdout = stdoutRef - os.remove ( obsFileName ) - os.remove ( expFileName ) - stdoutRef = sys.stdout - - - def test_getConsensus_with_gap_assertion_on_result(self): - iBioseq1 = Bioseq("seq1", "A-GA-T") - iBioseq2 = Bioseq("seq2", "T-GC-A") - iBioseq3 = Bioseq("seq3", "T-AC-T") - - iAlignedBioseqDB = AlignedBioseqDB() - iAlignedBioseqDB.setData([iBioseq1, iBioseq2, iBioseq3]) - - expConsensus = Bioseq("consensus= length=4 nbAlign=3","TGCT") - obsConsensus = iAlignedBioseqDB.getConsensus(2) - - self.assertEquals(expConsensus, obsConsensus) - - - def test_getConsensus_with_gaps_and_no_consensus_built_assertion_on_result(self): - iBioseq1 = Bioseq("seq1", "A--A-T") - iBioseq2 = Bioseq("seq2", "----A-") - iBioseq3 = Bioseq("seq3", "--A---") - - iAlignedBioseqDB = AlignedBioseqDB() - iAlignedBioseqDB.setData([iBioseq1, iBioseq2, iBioseq3]) - - expConsensus = None - obsConsensus = iAlignedBioseqDB.getConsensus(2) - self.assertEquals(expConsensus, obsConsensus) - - - def test_getConsensus_with_gaps_and_no_consensus_built_assertion_on_warning_messages(self): - iBioseq1 = Bioseq("seq1", "A--A-T") - iBioseq2 = Bioseq("seq2", "----A-") - iBioseq3 = Bioseq("seq3", "--A---") - - iAlignedBioseqDB = AlignedBioseqDB() - iAlignedBioseqDB.setData([iBioseq1, iBioseq2, iBioseq3]) - - expFileName = "expFileName" - expFileHandler = open(expFileName,"w") - expMessage1 = "WARNING: 1 site was removed (16.67%)\n" - expMessage2 = "WARNING: no consensus can be built (no sequence left)\n" - expFileHandler.write(expMessage1) - expFileHandler.write(expMessage2) - expFileHandler.close() - - obsFileName = "obsFileName" - obsFileHandler = open(obsFileName,"w") - - stdoutRef = sys.stdout - sys.stdout = obsFileHandler - - iAlignedBioseqDB.getConsensus(2) - - obsFileHandler.close() - expFileHandler.close() - - self.assertTrue( FileUtils.are2FilesIdentical( expFileName, obsFileName ) ) - - sys.stdout = stdoutRef - os.remove ( obsFileName ) - os.remove ( expFileName ) - stdoutRef = sys.stdout - - - def test_getConsensus_with_unacceptable_N_proportion_assertion_on_result(self): - iBioseq1 = Bioseq("seq1", "AGAT") - iBioseq2 = Bioseq("seq2", "CCCA") - iBioseq3 = Bioseq("seq3", "TTCT") - iBioseq4 = Bioseq("seq4", "TTAT") - - iAlignedBioseqDB = AlignedBioseqDB() - iAlignedBioseqDB.setData([iBioseq1, iBioseq2, iBioseq3, iBioseq4]) - - expConsensus = None - obsConsensus = iAlignedBioseqDB.getConsensus(2,0.75) - - self.assertEquals(expConsensus, obsConsensus) - - - def test_getConsensus_with_unacceptable_N_proportion_assertion_on_warning_msg(self): - iBioseq1 = Bioseq("seq1", "AGAT") - iBioseq2 = Bioseq("seq2", "CCCA") - iBioseq3 = Bioseq("seq3", "TTCT") - iBioseq4 = Bioseq("seq4", "TTAT") - - iAlignedBioseqDB = AlignedBioseqDB() - iAlignedBioseqDB.setData([iBioseq1, iBioseq2, iBioseq3, iBioseq4]) - - expFileName = "expFileName" - expFileHandler = open(expFileName,"w") - expMessage = "WARNING: no consensus can be built (75% of N's >= 40%)\n" - expFileHandler.write(expMessage) - expFileHandler.close() - - obsFileName = "obsFileName" - obsFileHandler = open(obsFileName,"w") - - stdoutRef = sys.stdout - sys.stdout = obsFileHandler - - iAlignedBioseqDB.getConsensus(2,0.75) - - obsFileHandler.close() - expFileHandler.close() - - self.assertTrue( FileUtils.are2FilesIdentical( expFileName, obsFileName ) ) - - sys.stdout = stdoutRef - os.remove ( obsFileName ) - os.remove ( expFileName ) - stdoutRef = sys.stdout - - - def test_getConsensus_with_acceptable_N_proportion_assertion_on_warning_msg(self): - iBioseq1 = Bioseq("seq1", "AGATAA") - iBioseq2 = Bioseq("seq2", "CTCAAA") - iBioseq3 = Bioseq("seq3", "TTCTAA") - iBioseq4 = Bioseq("seq4", "GTATCC") - - iAlignedBioseqDB = AlignedBioseqDB() - iAlignedBioseqDB.setData([iBioseq1, iBioseq2, iBioseq3, iBioseq4]) - - expFileName = "expFileName" - expFileHandler = open(expFileName,"w") - expMessage = "WARNING: 33% of N's\n" - expFileHandler.write(expMessage) - expFileHandler.close() - - obsFileName = "obsFileName" - obsFileHandler = open(obsFileName,"w") - - stdoutRef = sys.stdout - sys.stdout = obsFileHandler - - iAlignedBioseqDB.getConsensus(2,0.6) - - obsFileHandler.close() - expFileHandler.close() - - self.assertTrue( FileUtils.are2FilesIdentical( expFileName, obsFileName ) ) - - sys.stdout = stdoutRef - os.remove ( obsFileName ) - os.remove ( expFileName ) - stdoutRef = sys.stdout - - - def test_getConsensus_with_acceptable_N_proportion_assertion_on_result(self): - iBioseq1 = Bioseq("seq1", "AGATAA") - iBioseq2 = Bioseq("seq2", "CTCAAA") - iBioseq3 = Bioseq("seq3", "TTCTAA") - iBioseq4 = Bioseq("seq4", "GTATCC") - - iAlignedBioseqDB = AlignedBioseqDB() - iAlignedBioseqDB.setData([iBioseq1, iBioseq2, iBioseq3, iBioseq4]) - - expConsensus = Bioseq("consensus= length=6 nbAlign=4","NTNTAA") - obsConsensus = iAlignedBioseqDB.getConsensus(2,0.6) - - self.assertEquals(expConsensus, obsConsensus) - - - def test_getConsensus_with_chimeric_seq_in_alignment(self): - iBioseq1 = Bioseq("seq1", "AGAGTTGTAA") - iBioseq2 = Bioseq("seq2", "ATC----AAA") - iBioseq3 = Bioseq("seq3", "ATC----TAA") - iBioseq4 = Bioseq("seq4", "GTC----TAA") - - iAlignedBioseqDB = AlignedBioseqDB() - iAlignedBioseqDB.setData([iBioseq1, iBioseq2, iBioseq3, iBioseq4]) - - expConsensus = Bioseq("consensus= length=6 nbAlign=4","ATCTAA") - obsConsensus = iAlignedBioseqDB.getConsensus(2) - - self.assertEquals(expConsensus, obsConsensus) - - - def test_getConsensus_with_SATannot_data(self): - iBioseq1 = Bioseq("MbS69Gr8Cl511 chunk21 {Fragment} 165740..165916", "--TTTAGCCGAAGTCCATATGAGTCTTTGTGTTTGTATCTTCTAACAAGGAAACACTACTTAGGCTTTTAGGATAAGATTGCGGTTTAAGTTCTTATACTCAATCATACACATGACATCAAGTCATATTCGAATCCAAAACTCTAAGCAAGCTTCTTCTTGCTTCTCAAA-GCTTTGATG") - iBioseq2 = Bioseq("MbS68Gr8Cl511 chunk21 {Fragment} 165916..166092", "GGTCTAGCCGAAGTCCATATGAGTCTTTGTCTTTGTATCTTCTAACAAGAAAACACTACTTAGGCTTTTAGGATAAGGTTGCAGTTTAAGTTTTTATACTAAATCATACACATCACATCAAGTCATATTCGACTCCCAAACACTAACCAAGCTTCTT--TGCTTCTCAAC-GCTTTGATG") - iBioseq3 = Bioseq("MbS67Gr8Cl511 chunk21 {Fragment} 166093..166269", "-GTTTAGCCGAAGTCCATATGAGTCGTTGTGTTTGTATCTTCTAACAAGGAAACACTACTTACGCTTTTAGGATAAGATTGTTGTTTAAGTTCTTATACTTAATCATACACATGACATAAAGTCATATTCGACTCCAAAACACTAATCAAGCTTCTTCTTGCTTCTCAAA-GCTTTGTT-") - iBioseq4 = Bioseq("MbS66Gr8Cl511 chunk21 {Fragment} 173353..173529", "--TTTAGCAAAATTCTATATGAGTCTTTATCTTTGTATCTTCTAACAAGGAAACACTACTTAGGCTTTTAGGATAAGGTTGCGGGTTAAGTTCTTATACTCAATCATACACATGATATCAAGTCATATTCGACTCCAAAACACTAACCAAGCTTCTTCTTGCTTCTTAAAAGCTTTGAA-") - - iAlignedBioseqDB = AlignedBioseqDB() - iAlignedBioseqDB.setData([iBioseq1, iBioseq2, iBioseq3, iBioseq4]) - - expConsensus = Bioseq("consensus= length=178 nbAlign=4 pile=511 pyramid=8", "GTTTAGCCGAAGTCCATATGAGTCTTTGTNTTTGTATCTTCTAACAAGGAAACACTACTTAGGCTTTTAGGATAAGNTTGCNGTTTAAGTTCTTATACTNAATCATACACATGACATCAAGTCATATTCGACTCCAAAACACTAANCAAGCTTCTTCTTGCTTCTCAAAGCTTTGATG") - obsConsensus = iAlignedBioseqDB.getConsensus(2, 0.6, isHeaderSAtannot=True) - - self.assertEquals(expConsensus, obsConsensus) - - - def test_getEntropy_equal_zero(self): - iBioseq1 = Bioseq("seq1", "AGAT") - iBioseq2 = Bioseq("seq2", "AGAT") - iBioseq3 = Bioseq("seq3", "AGAT") - iBioseq4 = Bioseq("seq4", "AGAT") - - iAlignedBioseqDB = AlignedBioseqDB() - iAlignedBioseqDB.setData([iBioseq1, iBioseq2, iBioseq3, iBioseq4]) - - expStats = Stat() - expStats._min = 0 - expStats._max = 0 - expStats._sum = 0 - expStats._sumOfSquares = 0 - expStats._n = 4 - expStats._lValues = [0, 0, 0, 0] - - obsStats = iAlignedBioseqDB.getEntropy() - - self.assertEquals(expStats, obsStats) - - - def test_getEntropy_different_nucl(self): - iBioseq1 = Bioseq("seq1", "AGAT") - iBioseq2 = Bioseq("seq2", "CTCA") - iBioseq3 = Bioseq("seq3", "TTCT") - iBioseq4 = Bioseq("seq4", "GTAT") - - iAlignedBioseqDB = AlignedBioseqDB() - iAlignedBioseqDB.setData([iBioseq1, iBioseq2, iBioseq3, iBioseq4]) - - expStats = Stat() - expStats._min = 0.81127812445913283 - expStats._max = 2.0 - expStats._sum = 4.62255624892 - expStats._sumOfSquares = 6.31634439045 - expStats._n = 4 - expStats._lValues = [2.0, 0.81127812445913283, 1.0, 0.81127812445913283] - - obsStats = iAlignedBioseqDB.getEntropy() - - self.assertEquals(expStats, obsStats) - - - def test_getEntropy_different_nucl_with_N(self): - iBioseq1 = Bioseq("seq1", "AGAT") - iBioseq2 = Bioseq("seq2", "CNCA") - iBioseq3 = Bioseq("seq3", "TTNT") - iBioseq4 = Bioseq("seq4", "GTNT") - - iAlignedBioseqDB = AlignedBioseqDB() - iAlignedBioseqDB.setData([iBioseq1, iBioseq2, iBioseq3, iBioseq4]) - - expStats = Stat() - expStats._min = 0.811278124459 - expStats._max = 2 - expStats._sum = 6.11387090595 - expStats._sumOfSquares = 10.1629200457 - expStats._n = 4 - expStats._lValues = [2, 1.4913146570363986, 1.8112781244591329, 0.81127812445913283] - - obsStats = iAlignedBioseqDB.getEntropy() - - self.assertEquals(expStats, obsStats) - - - def test_getEntropy_different_nucl_with_gap(self): - iBioseq1 = Bioseq("seq1", "AGAT") - iBioseq2 = Bioseq("seq2", "C-CA") - iBioseq3 = Bioseq("seq3", "T--T") - iBioseq4 = Bioseq("seq4", "-TNT") - - iAlignedBioseqDB = AlignedBioseqDB() - iAlignedBioseqDB.setData([iBioseq1, iBioseq2, iBioseq3, iBioseq4]) - - expStats = Stat() - expStats._min = 0.811278124459 - expStats._max = 1.65002242165 - expStats._sum = 5.04626304683 - expStats._sumOfSquares = 6.89285231586 - expStats._n = 4 - expStats._lValues = [1.5849625007211561, 1.0, 1.6500224216483541, 0.81127812445913283] - - obsStats = iAlignedBioseqDB.getEntropy() - - self.assertEquals(expStats, obsStats) - - - def test_saveAsBinaryMatrix( self ): - iBioseq1 = Bioseq("seq1", "AGAT") - iBioseq2 = Bioseq("seq2", "C-CA") - iBioseq3 = Bioseq("seq3", "T--T") - iBioseq4 = Bioseq("seq4", "-TNT") - - self._i.setData( [ iBioseq1, iBioseq2, iBioseq3, iBioseq4 ] ) - - expFile = "dummyExpFile_%s" % ( self._uniqId ) - expFileHandler = open( expFile, "w" ) - expFileHandler.write( "seq1\t1\t1\t1\t1\n" ) - expFileHandler.write( "seq2\t1\t0\t1\t1\n" ) - expFileHandler.write( "seq3\t1\t0\t0\t1\n" ) - expFileHandler.write( "seq4\t0\t1\t1\t1\n" ) - expFileHandler.close() - - obsFile = "dummyObsFile_%s" % ( self._uniqId ) - self._i.saveAsBinaryMatrix( obsFile ) - - self.assertTrue( FileUtils.are2FilesIdentical( expFile, obsFile ) ) - for f in [ expFile, obsFile ]: - os.remove( f ) - - - def test_getAlignList( self ): - iBioseq1 = Bioseq( "seq1", "AGAAT" ) - iBioseq2 = Bioseq( "seq2", "-G-AC" ) - self._i.setData( [ iBioseq1, iBioseq2 ] ) - - iAlign1 = Align( Range( "seq1", 2, 2 ), - Range( "seq2", 1, 1 ), - 0, 1, 100 ) - iAlign2 = Align( Range( "seq1", 4, 5 ), - Range( "seq2", 2, 3 ), - 0, 1, 50 ) - lExp = [ iAlign1, iAlign2 ] - - lObs = self._i.getAlignList( "seq1", "seq2" ) - self.assertEquals( lExp, lObs ) - - - def test_removeGaps(self): - iBioseq1 = Bioseq( "seq1", "AGAAT-" ) - iBioseq2 = Bioseq( "seq2", "AG-ACG" ) - self._i.setData( [ iBioseq1, iBioseq2 ] ) - - exp = AlignedBioseqDB() - exp.setData( [ Bioseq( "seq1", "AGAAT" ), - Bioseq( "seq2", "AGACG" ) ] ) - - self._i.removeGaps() - - self.assertEquals(exp, self._i) - - def test_computeMeanPcentIdentity_between_two_sequences_50pcent(self): - iBioseq1 = Bioseq( "seq1", "AGAAT-" ) - iBioseq2 = Bioseq( "seq2", "AG-ACG" ) - self._i.setData( [ iBioseq1, iBioseq2 ] ) - expIdentity = 50.0 - obsIdentity = self._i.computeMeanPcentIdentity() - self.assertEquals(expIdentity, obsIdentity) - - def test_computeMeanPcentIdentity_between_two_sequences_57pcent(self): - iBioseq1 = Bioseq( "seq1", "AGAAT-T" ) - iBioseq2 = Bioseq( "seq2", "AG-ACGT" ) - self._i.setData( [ iBioseq1, iBioseq2 ] ) - expIdentity = 57.0 - obsIdentity = self._i.computeMeanPcentIdentity() - self.assertEquals(expIdentity, obsIdentity) - - def test_compueNeamPcentIdentity_between_two_sequences_gaps_on_same_position(self): - iBioseq1 = Bioseq( "seq1", "AGAAT-T" ) - iBioseq2 = Bioseq( "seq2", "AG-AC-T" ) - self._i.setData( [ iBioseq1, iBioseq2 ] ) - expIdentity = 57.0 - obsIdentity = self._i.computeMeanPcentIdentity() - self.assertEquals(expIdentity, obsIdentity) - - def test_computeMeanPcentIdentity_between_three_sequences_50_pcent(self): - iBioseqRef = Bioseq( "seqRef", "AGAAT-" ) - iBioseq1 = Bioseq( "seq1", "AG-ACG" ) - iBioseq2 = Bioseq( "seq2", "AG-ACG" ) - - self._i.setData( [ iBioseqRef, iBioseq1, iBioseq2 ] ) - - expIdentity = 50.0 - obsIdentity = self._i.computeMeanPcentIdentity() - self.assertEquals(expIdentity, obsIdentity) - - def test_computeMeanPcentIdentity_between_three_sequences_42_pcent(self): - iBioseqRef = Bioseq( "seqRef", "AGAAT-" ) - iBioseq1 = Bioseq( "seq1", "AG-ACG" ) - iBioseq2 = Bioseq( "seq2", "AG-CC-" ) - - self._i.setData( [ iBioseqRef, iBioseq1, iBioseq2 ] ) - - expIdentity = 42.0 - obsIdentity = self._i.computeMeanPcentIdentity() - self.assertEquals(expIdentity, obsIdentity) - -#TODO: test with tthis data: -#>BlastclustCluster2Mb1_chunk7 (dbseq-nr 1) [101523,104351] -#------------------------------------------------------------ -#------------------------------------------------------------ -#------------------------------------------------------------ -#------------------------------------------------------------ -#------------------------------------------------------------ -#------------------------------------------------------------ -#-------------------------------TAAATCCAACACTGAGAAGAATTATTTAA -#AGAAGGTTTTTATTTAACTTCTTTATTCGGATATCAGTTTAAGACTAAAA-TTCA-AATG -#TAAATTGGATTGAGGAGAAGCCTCAGTATTTTAACAATATTTGTATTTCGGGAGGGCCTC -#GCTTTTGGATTCTTAAGATTAGGAAAAGATTCAAAGAGAGCAGTCAAATCTGCTTATGTC -#AGGCTTTAGGATTTTTACAAGAACGGCTAAGTGCCGCTGCCAAAGAATTCTTTATTAGAA -#ACGGACGCTGCGCAGCTGGGATACATTATGGAAATAACTTAAGTGCATTACTGTTTTCTT -#TGAAATAATTGAAGTGGCCGATTTGGACCACCCAAATACGTACCTCCCCTTCCCTTAAAG -#TGAAACCTATACTTGGGCTGGGATTGATAGATATTGTATGGAAAATGGAGTTTGTTCTAT -#TTCTATTTGTTGTGGTATGTTTTGATTTTTTCTTATTTTAAGTTTTGCATACAGCAACAT -#AA--ATGGCATAA--ATTATACATA-TCTTAAATATAAGTACAATAAAATTAGTCA--AT -#TATTACAATGGTCATTAGTATG-TAAAGTGTAAT-ATTGTTCTC-TGA-AATCATCTTAA -#CATTGGCGTTGTGTTTTACAATTTTTATTTTTGTTATATTAAGTGGTGTGTCAAGTGGTG -#TCAAATCTATTTCTGGTTTTAACATATTTTCACTTAAAATTATACTATTGATTTCTATTT -#TGCATTGCATTACTCCTTTCATTTTGTTTTCTTCTATTTTTATATTATTAATTGAATTTG -#GGTAATTTTGGTTATGAATGGTTTGGGTTAAGTTCCAGTAATTTGTAATAATTTAAGTTT -#AGTAATTTTGGGTTAAACAAGTCAAGTCTGGAAAGCTGGCATAGCCATTCTAAATCTTCT -#ACGTATTCCGTAAACTGCATTAGCTAGAACAAAAGTGGTTATTTTCATAGTTCTGTTTTT -#TTGGTTTCTTAAGTAAT--TAAT--TTGTATGTTTGATCAAAAAGGGTAACTATTATTTT -#TGTAAT--TAATAACTGATTGGACATTTTTCAACAATTTTCTGTCAATTAGCAT----AT -#CGTAATTATTAGAA-AATACTATT--TCTGGGTAA-CATAATCAAGTCGTTCAAGGTAAT -#AGGGCCATT-TAATGTTAA-AACTTCACTTCTACTATTTTGTATGGGAAGA--CAAAATA -#TATTTTCAT--TGATCATATTAATTGTGGAAGCCATTTGTATGTGTACCCTTTGTATACT -#ATTTTTAAGCATTCGTGTTGTCCGGGGCTGTTGACCGAAAATTTTCGTTTAGTTCAGAAT -#TATTTTGATTTTGTTCATTATTAATGTGTACGGGTTGGACCTGTTGTTGCCCTTCATTAA -#TGAACCCATGATTTTGATATGGATTGTATTGATTTTGGTCATAATACTGTTGTTCGTAGG -#TTGGGTCTGAAATAATTAGGTACGTGCCACATTGGTGGGTTGTAAGTCGTCTGCTCTGAT -#AGCTAGGTCTAAATGGTTGAATGTATTGATTAAAATTAGGCTGGAAGGGTTGGGAATATT -#GTGGGTAACTTGGGCGAGTTTGAACGTTTGTATTGAATTTATGTGCTTTCGAATTCTGAT -#TAAAATTTGAATTTTTATTACGGTATTCTGGGTTTATAAAATTCAAAATTAATGAGTTTT -#TCATAAATTCCCTCATTTTGTGCAATGGTTATTAAGGATCTTAAGTCTGTAATA-TCGTG -#ATGAG-ATAA-AATAGTAAATATAGTAG-AGTCTTTA--ATAGCCTGAATAAAAATAAGA -#AAATCCGATTGGTTACCTTCCAGGTGTAGTTTCGAAATTAATAATTGACGTCGTCTTTCC -#CCTTCTTCGGAGAATGTTTTTAGGTTTCCTCTGTATGGTGTCTCCCTGAAGCTCTCCAGA -#AGTTTGTAGTTTGGTGTTTGAGTTTTAAATTCCGCGATGAGTCTTGCTTTGAGGGTAGGC -#CAATGCTCGGAAGTCCCAAAGATCGTATTATCCGTCCAAGTTACTTTTGATGGCTCCCAG -#TAGAATCCTCTGTTTACGAAAATTACGTAAATCCACTCTGCTGACGACGGTGTGAAGTGT -#TTCTGGATCACCCTTAAATGTCATAATGTCTTTAAGCTGCCGACGGGCTTCGGCAAGGTT -#GTTGTCTCTTAGCGCAACGATTTAAGGTGCGGCAATAATTATAATAATTGGTTGAGACAT -#TTTTATTGTAAAATTTTAAATTTTGTGTTTTATTGTTTTATTGTTTCGAATTCAATGCTA -#TTATTTATTTTTTTTTTTGTTTTCTAGTTTCACTTTTTTTTTTATTGTATTGCTTTATTG -#TTCTTATTTTATTTTTATATGTTGGTTTTAAAACTTAGTTGCCTTTGGACTTAATGTTTT -#TGTTTCGTATTTCACTTCCACTTTAAATTGGATAACAGAATTGGAATTAAAATCCAAGTT -#GAAGAGTTTCCACGAATTTATTTGGGAAATGTTTCGAGCACTGGAATCCAGTGACTGGAT -#TATAAAATTTAACTTATTTCC-ACTCGAAGGTTCTTTTTT--CGG--------ATACTTT -#TTGTATCAGT--TGACTAAGAGCAACACTGAGAAGAATTATTTAAAGAAGGTTTTTATTT -#AACTTCTTTATTCGGATATCAGTTTAAGACTAAAA-TTCA-AATGTAAATTGGATTGAGG -#AGAAGCCTCAGTATT--TCAACAATATTTGTATT--TCGGGAGGGCCTCGCTCTTGGAT- -#-TCTTAAGATTAGGAAAAAATTCA-AAGAGAGCAGTCA-AATC-TGCTTATGTCAGGCTT -#TAGGATTTTTACAAGAAGGGC-TAAGTGCCGCTGAAACGGATGC---------------- -#------------------------------------------------------------ -#------------------------------------------------------------ -#------------ -#>BlastclustCluster2Mb2_chunk7 (dbseq-nr 1) [99136,100579] -#GTAATAATCATAATAATCATAATAATCATAATAATCATAATAATCATAATAATCATAATA -#ATCATAATAATCATAATAATCATAATAATCATAATAATCATAATAATCATAATAATCATA -#ATAATCATAATAATCATAATAATCATAATAATCATAATAATCATAATAATCATAATAATC -#ATAATAATCATAATAATCATAATAATCATAATAATCATAATAATCATAATAATCATAATA -#ATCATAATAATCATAATAATCATAATAATCATAATAATAATAATAATCATAATCATAATC -#ATAATAAGCGATAAAAAAATTAAAAAATAAAAATTAAAACCCACTGCAATCACGTTGGAC -#GGCGAGTCACAGACGTCAGAATAGTGGTGCGTAAATCCAACGCCGAGAAGAATTACTTCA -#AGAAGGTTTTTATTGAACTTCTTTATTCGGATATCAGTTTAAGACTAAAAATTAATAATC -#ATAAT---AATCATAATAATCATAATAATCATAATAATCATAATAAT------------- -#------------------------------------------------------------ -#------------------------------------------------------------ -#------------------------------------------------------------ -#------------------------------------------------------------ -#------------------------------------------------------------ -#-----------------------------------------------CATA-ATAATCAT -#AATAAT--CATAATAATCATA-ATAATCATAATAATCATAATAATCATAATAATCATAAT -#AATCATAATAATCATAATAATCATAA----TAATCATAATAATCATAATAATCATAATAA -#------------------------------------------------------------ -#------------------------------------------------------------ -#------------------------------------------------------------ -#------------------------------------------------------------ -#------------------------------------------------------------ -#------------------------------------------------------------ -#------TCATAA-TAATCATAATAATCGTAA---TAATCATAA----TAATCATAATAAT -#CATAATAATCATAA-TAAT----CAT-----AATAATCAT-----AATAATCATAATAAT -#CATAATAATCATAATAATCATAATAATCATAATAATCATAAT-AA-TCAT--AA--TAAT -#-----CATAATAATCATAATAA--TCA----TAATAATC---AT---AATAATCATAATA -#-AT---CATAATAATCATAATAATC----------------------------------- -#------------------------------------------------------------ -#------------------------------------------------------------ -#------------------------------------------------------------ -#------------------------------------------------------------ -#------------------------------------------------------------ -#------------------------------------------------------------ -#-----------------------------------ATAATAATCATAAT-AATCA----- -#TAATAA------TCATAAT----AATCATAAT-AATCATAATAA-TCA-TAATAATCATA -#ATAATCATAATAATCATAATAATAATAATAATCATAATCATAATCATAATAAGCATAAAA -#AAAT-------------------------------------------------------- -#------------------------------------------------------------ -#------------------------------------------------------------ -#------------------------------------------------------------ -#------------------------------------------------------------ -#------------------------------------------------------------ -#------------------------------------------------------------ -#------------------------------------------------------------ -#------------------------------------------------------------ -#------------------------------------------------------------ -#------------------------------------------------------------ -#------------------------------------------------------------ -#TAAAAAATAAAAATTAAAACCCACTGCAA---TCACGTTGGACGGCGAGTCACAGACGTC -#A-GAAT-AGTGGTGCGTAAATCCAACGCCGAGAAGAATTACTTCAAGAAGGTTTTTATTG -#AACTTCTTTATTCGGATATCAGTTTAAGACTAAAAATTAATAATCATAAT---AATCATA -#ATAA---TCA-TAATAATCAT-AATAATCATAATAATCATAA-----TAA-TCATA-ATA -#ATCATAATAATCATAATAA--TCATAATA-ATCA-TAATAATCATAATAATCATAATCAT -#CATAATAATCATAATAAT--CATAA-T-------AATC--ATAATAATCATAATAATCAT -#AATAATCATAATAATCATAATAATCATAATAATCATAATAATCATAATAATCATAATAAT -#CATAATAATCATAATAATCATAATAATCATAATAATCATAATAATCATAATAATCATAAT -#AATCATAATAAT - -test_suite = unittest.TestSuite() -test_suite.addTest( unittest.makeSuite( Test_AlignedBioseqDB ) ) -if __name__ == "__main__": - unittest.TextTestRunner(verbosity=2).run( test_suite )
--- a/commons/core/seq/test/Test_Bioseq.py Mon Apr 29 03:26:07 2013 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1051 +0,0 @@ -# Copyright INRA (Institut National de la Recherche Agronomique) -# http://www.inra.fr -# http://urgi.versailles.inra.fr -# -# This software is governed by the CeCILL license under French law and -# abiding by the rules of distribution of free software. You can use, -# modify and/ or redistribute the software under the terms of the CeCILL -# license as circulated by CEA, CNRS and INRIA at the following URL -# "http://www.cecill.info". -# -# As a counterpart to the access to the source code and rights to copy, -# modify and redistribute granted by the license, users are provided only -# with a limited warranty and the software's author, the holder of the -# economic rights, and the successive licensors have only limited -# liability. -# -# In this respect, the user's attention is drawn to the risks associated -# with loading, using, modifying and/or developing or reproducing the -# software by the user in light of its specific status of free software, -# that may mean that it is complicated to manipulate, and that also -# therefore means that it is reserved for developers and experienced -# professionals having in-depth computer knowledge. Users are therefore -# encouraged to load and test the software's suitability as regards their -# requirements in conditions enabling the security of their systems and/or -# data to be ensured and, more generally, to use and operate it in the -# same conditions as regards security. -# -# The fact that you are presently reading this means that you have had -# knowledge of the CeCILL license and that you accept its terms. - - -import unittest -import os -import sys -from commons.core.seq.Bioseq import Bioseq -from commons.core.utils.FileUtils import FileUtils -from commons.core.coord.Map import Map -from commons.core.checker.RepetException import RepetException - - -class Test_Bioseq( unittest.TestCase ): - - def setUp(self): - self._bs = Bioseq() - - - def test_isEmpty_True(self): - self._bs.setHeader( "" ) - self._bs.setSequence( "" ) - exp = True - obs = self._bs.isEmpty() - self.assertEquals( exp, obs ) - - - def test_isEmpty_False(self): - self._bs.setHeader( "seq1" ) - self._bs.setSequence( "AGCGGACGATGCAGCATGCGAATGACGAT" ) - exp = False - obs = self._bs.isEmpty() - self.assertEquals( exp, obs ) - - - def test___eq__(self): - self._bs.setHeader( "seq1" ) - self._bs.setSequence( "AGCGGACGATGCAGCATGCGAATGACGAT" ) - obs = Bioseq( "seq1", "AGCGGACGATGCAGCATGCGAATGACGAT" ) - self.assertEquals( self._bs, obs ) - - - def test___ne__Header(self): - self._bs.setHeader( "seq2" ) - self._bs.setSequence( "AGCGGACGATGCAGCATGCGAATGACGAT" ) - obs = Bioseq( "seq1", "AGCGGACGATGCAGCATGCGAATGACGAT" ) - self.assertNotEquals( self._bs, obs ) - - - def test___ne__Sequence(self): - self._bs.setHeader( "seq1" ) - self._bs.setSequence( "GGACGATGCAGCATGCGAATGACGAT" ) - obs = Bioseq( "seq1", "AGCGGACGATGCAGCATGCGAATGACGAT" ) - self.assertNotEquals( self._bs, obs ) - - - def test_reverse(self): - self._bs.setHeader( "seq1" ) - self._bs.setSequence( "TGCGGA" ) - exp = "AGGCGT" - self._bs.reverse() - obs = self._bs.sequence - self.assertEqual( obs, exp ) - - - def test_complement(self): - self._bs.setHeader( "seq1" ) - self._bs.setSequence( "TGCGGA" ) - exp = "ACGCCT" - self._bs.complement() - obs = self._bs.sequence - self.assertEqual( obs, exp ) - - - def test_complement_with_unknown_symbol(self): - self._bs.setHeader( "seq1" ) - self._bs.setSequence( "TGCGGAFMRWTYSKVHDBN" ) - exp = "ACGCCTNKYWARSMBDHVN" - self._bs.complement() - obs = self._bs.sequence - self.assertEqual( obs, exp ) - - - def test_reverseComplement(self): - self._bs.setHeader( "seq1" ) - self._bs.setSequence( "TGCGGA" ) - exp = "TCCGCA" - self._bs.reverseComplement() - obs = self._bs.sequence - self.assertEqual( obs, exp ) - - - def test_cleanGap(self): - self._bs.setSequence("-ATTTTGC-AGTC--TTATTCGAG-----GCCATTGCT-") - exp = "ATTTTGCAGTCTTATTCGAGGCCATTGCT" - self._bs.cleanGap() - obs = self._bs.sequence - self.assertEquals( obs, exp ) - - - def test_copyBioseqInstance(self): - self._bs.setHeader( "seq" ) - self._bs.setSequence( "TGCGGA" ) - obsBioseq = self._bs.copyBioseqInstance() - self.assertEquals(self._bs, obsBioseq) - - - def test_setFrameInfoOnHeader_without_description(self): - self._bs.setHeader( "seq" ) - self._bs.setSequence( "TGCGGA" ) - phase = -1 - expHeader = "seq_-1" - self._bs.setFrameInfoOnHeader(phase) - self.assertEquals(expHeader, self._bs.header) - - - def test_setFrameInfoOnHeader_with_description(self): - self._bs.setHeader( "seq description" ) - self._bs.setSequence( "TGCGGA" ) - phase = -1 - expHeader = "seq_-1 description" - self._bs.setFrameInfoOnHeader(phase) - self.assertEquals(expHeader, self._bs.header) - - - def test_read(self): - faFile = open("dummyFaFile.fa", "w") - faFile.write(">seq1 description1\n") - faFile.write("ATGCGTCGCTGCTTTATTAAGCGCTAGCGATTATATAGCAGACGCATATTATATTGCGCG\n") - faFile.write("ATGCGNCGCTGCTTTATTAAGCGCTAGCGATTATATAGCAGACGCATATTATATTGCGCG\n") - faFile.close() - expBioseq = Bioseq() - expBioseq.header = "seq1 description1" - expBioseq.sequence = "ATGCGTCGCTGCTTTATTAAGCGCTAGCGATTATATAGCAGACGCATATTATATTGCGCGATGCGNCGCTGCTTTATTAAGCGCTAGCGATTATATAGCAGACGCATATTATATTGCGCG" - obsBioseq = Bioseq() - faFile = open("dummyFaFile.fa", "r") - obsBioseq.read( faFile ) - faFile.close() - os.remove("dummyFaFile.fa") - self.assertEquals(expBioseq, obsBioseq) - - - def test_read_WithEmptyFile(self): - faFile = open("dummyFaFile.fa", "w") - faFile.close() - expBioseq = Bioseq() - expBioseq.header = None - expBioseq.sequence = None - obsBioseq = Bioseq() - faFile = open("dummyFaFile.fa", "r") - obsBioseq.read( faFile ) - faFile.close() - os.remove("dummyFaFile.fa") - self.assertEquals(expBioseq, obsBioseq) - - - def test_read_without_header(self): - faFile = open("dummyFaFile.fa", "w") - faFile.write("seq1 description1\n") - faFile.write("ATGCGNCGCTGCTTTATTAAGCGCTAGCGATTATATAGCAGACGCATATTATATTGCGCG\n") - faFile.close() - expBioseq = Bioseq() - expBioseq.header = "" - expBioseq.sequence = "" - obsBioseq = Bioseq() - faFile = open("dummyFaFile.fa", "r") - obsBioseq.read( faFile ) - faFile.close() - os.remove("dummyFaFile.fa") - self.assertEquals(expBioseq, obsBioseq) - - - def test_read_with_two_consecutive_headers(self): - faFile = open("dummyFaFile.fa", "w") - faFile.write(">seq1 description1\n") - faFile.write(">ATGCGNCGCTGCTTTATTAAGCGCTAGCGATTATATAGCAGACGCATATTATATTGCGCG\n") - faFile.close() - expBioseq = Bioseq() - expBioseq.header = "seq1 description1" - expBioseq.sequence = "" - obsBioseq = Bioseq() - faFile = open("dummyFaFile.fa", "r") - obsBioseq.read( faFile ) - faFile.close() - os.remove("dummyFaFile.fa") - self.assertEquals(expBioseq, obsBioseq) - - - def test_read_withEmptyLines(self): - faFile = open("dummyFaFile.fa", "w") - faFile.write("\n") - faFile.write(">seq1 description1\n") - faFile.write("ATGCGTCGCTGCTTTATTAAGCGCTAGCGATTATATAGCAGACGCATATTATATTGCGCG\n") - faFile.write("ATGCGNCGCTGCTTTATTAAGCGCTAGCGATTATATAGCAGACGCATATTATATTGCGCG\n") - faFile.write("\n") - faFile.close() - - exp = Bioseq( "seq1 description1", "ATGCGTCGCTGCTTTATTAAGCGCTAGCGATTATATAGCAGACGCATATTATATTGCGCGATGCGNCGCTGCTTTATTAAGCGCTAGCGATTATATAGCAGACGCATATTATATTGCGCG" ) - - obs = Bioseq() - faFile = open("dummyFaFile.fa", "r") - obs.read( faFile ) - faFile.close() - - os.remove("dummyFaFile.fa") - - self.assertEquals( exp, obs ) - - def test_read_with_70nt_by_line(self): - faFile = open("dummyFaFile.fa", "w") - faFile.write("\n") - faFile.write(">seq1 description1\n") - faFile.write("TGTCACATCCTGATTTTCGTTTCAGGATTTATAAATTATTTAATAAATTAATAATAGAATTTATATTAAA\n") - faFile.write("TGTTTTTTAATTTACAAGTGAAGTTAAATGTGGGAAATAAAATTTCTTAAATCTAAAGCATGGATGGATT\n") - faFile.write("\n") - faFile.close() - - exp = Bioseq( "seq1 description1", "TGTCACATCCTGATTTTCGTTTCAGGATTTATAAATTATTTAATAAATTAATAATAGAATTTATATTAAATGTTTTTTAATTTACAAGTGAAGTTAAATGTGGGAAATAAAATTTCTTAAATCTAAAGCATGGATGGATT" ) - - obs = Bioseq() - faFile = open("dummyFaFile.fa", "r") - obs.read( faFile ) - faFile.close() - - os.remove("dummyFaFile.fa") - - self.assertEquals( exp, obs ) - - def test_appendBioseqInFile(self): - obsFaFileName = "dummyFaFile.fa" - obsFaFile = open(obsFaFileName, "w") - obsFaFile.write(">seq1 description1\n") - obsFaFile.write("ATGCGNCGCTGCTTTATTAAGCGCTAGCGATTATATAGCAGACGCATATTATATTGCGCG\n") - obsFaFile.close() - - bioseq = Bioseq() - bioseq.header = "seq2 description2" - bioseq.sequence = "GCGNCGCTGCTTTATTAAGCGCTAGCATGCGNCGCTGCTTTATTAAGCGCTAGCGATTATATAGCAGACGCATATTATATTGCGCGATGCGNCGCTGCTTTATTAAGCGCTAGCGATTATATAGCAGACGCATATTATATTGCGCG" - - expFaFileName = "dummyFaFile2.fa" - expFaFile = open(expFaFileName, "w") - expFaFile.write(">seq1 description1\n") - expFaFile.write("ATGCGNCGCTGCTTTATTAAGCGCTAGCGATTATATAGCAGACGCATATTATATTGCGCG\n") - expFaFile.write(">seq2 description2\n") - expFaFile.write("GCGNCGCTGCTTTATTAAGCGCTAGCATGCGNCGCTGCTTTATTAAGCGCTAGCGATTAT\n") - expFaFile.write("ATAGCAGACGCATATTATATTGCGCGATGCGNCGCTGCTTTATTAAGCGCTAGCGATTAT\n") - expFaFile.write("ATAGCAGACGCATATTATATTGCGCG\n") - expFaFile.close() - - bioseq.appendBioseqInFile(obsFaFileName) - self.assertTrue(FileUtils.are2FilesIdentical(expFaFileName, obsFaFileName)) - os.remove(obsFaFileName) - os.remove(expFaFileName) - - - def test_writeABioseqInAFastaFile(self): - obsFaFileName = "dummyFaFile.fa" - obsFaFile = open(obsFaFileName, "w") - obsFaFile.write(">seq1 description1\n") - obsFaFile.write("ATGCGNCGCTGCTTTATTAAGCGCTAGCGATTATATAGCAGACGCATATTATATTGCGCG\n") - - bioseq = Bioseq() - bioseq.header = "seq2 description2" - bioseq.sequence = "GCGNCGCTGCTTTATTAAGCGCTAGCATGCGNCGCTGCTTTATTAAGCGCTAGCGATTATATAGCAGACGCATATTATATTGCGCGATGCGNCGCTGCTTTATTAAGCGCTAGCGATTATATAGCAGACGCATATTATATTGCGCG" - - expFaFileName = "dummyFaFile2.fa" - expFaFile = open(expFaFileName, "w") - expFaFile.write(">seq1 description1\n") - expFaFile.write("ATGCGNCGCTGCTTTATTAAGCGCTAGCGATTATATAGCAGACGCATATTATATTGCGCG\n") - expFaFile.write(">seq2 description2\n") - expFaFile.write("GCGNCGCTGCTTTATTAAGCGCTAGCATGCGNCGCTGCTTTATTAAGCGCTAGCGATTAT\n") - expFaFile.write("ATAGCAGACGCATATTATATTGCGCGATGCGNCGCTGCTTTATTAAGCGCTAGCGATTAT\n") - expFaFile.write("ATAGCAGACGCATATTATATTGCGCG\n") - expFaFile.close() - - bioseq.writeABioseqInAFastaFile(obsFaFile) - obsFaFile.close() - self.assertTrue(FileUtils.are2FilesIdentical(expFaFileName, obsFaFileName)) - os.remove(obsFaFileName) - - - def test_writeABioseqInAFastaFileWithOtherHeader(self): - obsFaFileName = "dummyFaFile.fa" - obsFaFile = open(obsFaFileName, "w") - obsFaFile.write(">seq1 description1\n") - obsFaFile.write("ATGCGNCGCTGCTTTATTAAGCGCTAGCGATTATATAGCAGACGCATATTATATTGCGCG\n") - - bioseq = Bioseq() - bioseq.header = "seq2 description2" - bioseq.sequence = "GCGNCGCTGCTTTATTAAGCGCTAGCATGCGNCGCTGCTTTATTAAGCGCTAGCGATTATATAGCAGACGCATATTATATTGCGCGATGCGNCGCTGCTTTATTAAGCGCTAGCGATTATATAGCAGACGCATATTATATTGCGCG" - - expFaFileName = "dummyFaFile2.fa" - newHeader = "seq2 New header2" - expFaFile = open(expFaFileName, "w") - expFaFile.write(">seq1 description1\n") - expFaFile.write("ATGCGNCGCTGCTTTATTAAGCGCTAGCGATTATATAGCAGACGCATATTATATTGCGCG\n") - expFaFile.write(">" + newHeader + "\n") - expFaFile.write("GCGNCGCTGCTTTATTAAGCGCTAGCATGCGNCGCTGCTTTATTAAGCGCTAGCGATTAT\n") - expFaFile.write("ATAGCAGACGCATATTATATTGCGCGATGCGNCGCTGCTTTATTAAGCGCTAGCGATTAT\n") - expFaFile.write("ATAGCAGACGCATATTATATTGCGCG\n") - expFaFile.close() - - bioseq.writeABioseqInAFastaFileWithOtherHeader(obsFaFile, newHeader) - obsFaFile.close() - self.assertTrue(FileUtils.are2FilesIdentical(expFaFileName, obsFaFileName)) - os.remove(obsFaFileName) - os.remove(expFaFileName) - - - def test_writeSeqInFasta(self): - iBs = Bioseq() - iBs.header = "dummySeq" - iBs.sequence = "GCGNCGCTGCTTTATTAAGCGCTAGCATGCGNCGCTGCTTTATTAAGCGCTAGCGATTATATAGCAGACGCATATTATATTGCGCGATGCGNCGCTGCTTTATTAAGCGCTAGCGATTATATAGCAGACGCATATTATATTGCGCG" - - expFaFile = "dummyExpFile.fa" - expFaFileHandler = open(expFaFile, "w") - expFaFileHandler.write("GCGNCGCTGCTTTATTAAGCGCTAGCATGCGNCGCTGCTTTATTAAGCGCTAGCGATTAT\n") - expFaFileHandler.write("ATAGCAGACGCATATTATATTGCGCGATGCGNCGCTGCTTTATTAAGCGCTAGCGATTAT\n") - expFaFileHandler.write("ATAGCAGACGCATATTATATTGCGCG\n") - expFaFileHandler.close() - - obsFaFile = "dummyObsFile.fa" - obsFaFileHandler = open( obsFaFile, "w" ) - - iBs.writeSeqInFasta( obsFaFileHandler ) - - obsFaFileHandler.close() - - self.assertTrue( FileUtils.are2FilesIdentical( expFaFile, obsFaFile ) ) - os.remove(obsFaFile) - os.remove(expFaFile) - - - def test_subseq(self): - bioseq = Bioseq() - bioseq.header = "seq1 description1" - bioseq.sequence = "GCGNCGCTGCTTTATTAAGCGCTAGCATGCGNCGCTGCTTTATTAAGCGCTAGCGATTATATAGCAGACGCATATTATATTGCGCGATGCGNCGCTGCTTTATTAAGCGCTAGCGATTATATAGCAGACGCATATTATATTGCGCG" - start = 10 - end = 30 - expSubBioseq = Bioseq() - expSubBioseq.header = "seq1 description1 fragment " + str(start) + ".." + str(end) - expSubBioseq.sequence = bioseq.sequence[(start - 1) : end] - obsBioseq = bioseq.subseq(start, end) - self.assertEquals(expSubBioseq, obsBioseq) - - - def test_subseq_no_end(self): - bioseq = Bioseq() - bioseq.header = "seq1 description1" - bioseq.sequence = "GCGNCGCTGCTTTATTAAGCGCTAGCATGCGNCGCTGCTTTATTAAGCGCTAGCGATTATATAGCAGACGCATATTATATTGCGCGATGCGNCGCTGCTTTATTAAGCGCTAGCGATTATATAGCAGACGCATATTATATTGCGCG" - start = 10 - expSubBioseq = Bioseq() - expEnd = len(bioseq.sequence) - expSubBioseq.header = "seq1 description1 fragment " + str(start) + ".." + str(expEnd) - expSubBioseq.sequence = bioseq.sequence[(start - 1) : expEnd] - obsBioseq = bioseq.subseq(start) - self.assertEquals(expSubBioseq, obsBioseq) - - - def test_subseq_start_gt_end(self): - bioseq = Bioseq() - bioseq.header = "seq1 description1" - bioseq.sequence = "GCGNCGCTGCTTTATTAAGCGCTAGCATGCGNCGCTGCTTTATTAAGCGCTAGCGATTATATAGCAGACGCATATTATATTGCGCGATGCGNCGCTGCTTTATTAAGCGCTAGCGATTATATAGCAGACGCATATTATATTGCGCG" - start = 30 - end = 10 - expSubBioseq = None - obsBioseq = bioseq.subseq(start, end) - self.assertEquals(expSubBioseq, obsBioseq) - - - def test_subseq_start_eq_end(self): - bioseq = Bioseq() - bioseq.header = "seq1 description1" - bioseq.sequence = "GCGNCGCTGCTTTATTAAGCGCTAGCATGCGNCGCTGCTTTATTAAGCGCTAGCGATTATATAGCAGACGCATATTATATTGCGCGATGCGNCGCTGCTTTATTAAGCGCTAGCGATTATATAGCAGACGCATATTATATTGCGCG" - start = 10 - end = 10 - expSubBioseq = Bioseq() - expSubBioseq.header = "seq1 description1 fragment " + str(start) + ".." + str(end) - expSubBioseq.sequence = bioseq.sequence[(start - 1) : end] - obsBioseq = bioseq.subseq(start, end) - self.assertEquals(expSubBioseq, obsBioseq) - - - def test_subseq_negative_start(self): - bioseq = Bioseq() - bioseq.header = "seq1 description1" - bioseq.sequence = "GCGNCGCTGCTTTATTAAGCGCTAGCATGCGNCGCTGCTTTATTAAGCGCTAGCGATTATATAGCAGACGCATATTATATTGCGCGATGCGNCGCTGCTTTATTAAGCGCTAGCGATTATATAGCAGACGCATATTATATTGCGCG" - start = -10 - end = 10 - expSubBioseq = None - obsBioseq = bioseq.subseq(start, end) - self.assertEquals(expSubBioseq, obsBioseq) - - - def test_getNtFromPosition_1(self): - bioseq = Bioseq() - bioseq.header = "seq1 description1" - bioseq.sequence = "GCGNCGCTGCTTTATTAAGCGCTAGCATGCGNCGCTGCTTTATTAAGCGCTAGCGATTATATAGCAGACGCATATTATATTGCGCGATGCGNCGCTGCTTTATTAAGCGCTAGCGATTATATAGCAGACGCATATTATATTGCGCG" - expNt = "G" - obsNt = bioseq.getNtFromPosition(1) - self.assertEquals(expNt, obsNt) - - - def test_getNtFromPosition_10(self): - bioseq = Bioseq() - bioseq.header = "seq1 description1" - bioseq.sequence = "GCGNCGCTGCTTTATTAAGCGCTAGCATGCGNCGCTGCTTTATTAAGCGCTAGCGATTATATAGCAGACGCATATTATATTGCGCGATGCGNCGCTGCTTTATTAAGCGCTAGCGATTATATAGCAGACGCATATTATATTGCGCG" - expNt = "C" - obsNt = bioseq.getNtFromPosition(10) - self.assertEquals(expNt, obsNt) - - - def test_getNtFromPosition_last(self): - bioseq = Bioseq() - bioseq.header = "seq1 description1" - bioseq.sequence = "GCGNCGCTGCTTTATTAAGCGCTAGCATGCGNCGCTGCTTTATTAAGCGCTAGCGATTATATAGCAGACGCATATTATATTGCGCGATGCGNCGCTGCTTTATTAAGCGCTAGCGATTATATAGCAGACGCATATTATATTGCGCG" - expNt = "G" - obsNt = bioseq.getNtFromPosition(146) - self.assertEquals(expNt, obsNt) - - - def test_getNtFromPosition_position_outside_range_0(self): - bioseq = Bioseq() - bioseq.header = "seq1 description1" - bioseq.sequence = "GCGNCGCTGCTTTATTAAGCGCTAGCATGCGNCGCTGCTTTATTAAGCGCTAGCGATTATATAGCAGACGCATATTATATTGCGCGATGCGNCGCTGCTTTATTAAGCGCTAGCGATTATATAGCAGACGCATATTATATTGCGCG" - expNt = None - obsNt = bioseq.getNtFromPosition(0) - self.assertEquals(expNt, obsNt) - - - def test_getNtFromPosition_position_outside_range_negative(self): - bioseq = Bioseq() - bioseq.header = "seq1 description1" - bioseq.sequence = "GCGNCGCTGCTTTATTAAGCGCTAGCATGCGNCGCTGCTTTATTAAGCGCTAGCGATTATATAGCAGACGCATATTATATTGCGCGATGCGNCGCTGCTTTATTAAGCGCTAGCGATTATATAGCAGACGCATATTATATTGCGCG" - expNt = None - obsNt = bioseq.getNtFromPosition(-10) - self.assertEquals(expNt, obsNt) - - - def test_getNtFromPosition_position_outside_range_positive(self): - bioseq = Bioseq() - bioseq.header = "seq1 description1" - bioseq.sequence = "GCGNCGCTGCTTTATTAAGCGCTAGCATGCGNCGCTGCTTTATTAAGCGCTAGCGATTATATAGCAGACGCATATTATATTGCGCGATGCGNCGCTGCTTTATTAAGCGCTAGCGATTATATAGCAGACGCATATTATATTGCGCG" - expNt = None - obsNt = bioseq.getNtFromPosition(147) - self.assertEquals(expNt, obsNt) - - - def test_view(self): - obsFileName = "obsdummy_Bioseq_view" - expFileName = "expDummy_Bioseq_View" - - bioseq = Bioseq() - bioseq.header = "seq1 description1" - bioseq.sequence = "GCGNCGCTGCTTTATTAAGCGCTAGCATGCGNCGCTGCTTTATTAAGCGCTAGCGATTATATAGCAGACGCATATTATATTGCGCGATGCGNCGCTGCTTTATTAAGCGCTAGCGATTATATAGCAGACGCATATTATATTGCGCG" - - obsFile = open(obsFileName,"w") - expFile = open(expFileName, "w") - - expFile.write ( ">seq1 description1\n") - expFile.write ( "GCGNCGCTGCTTTATTAAGCGCTAGCATGCGNCGCTGCTTTATTAAGCGCTAGCGATTAT\n") - expFile.write ( "ATAGCAGACGCATATTATATTGCGCGATGCGNCGCTGCTTTATTAAGCGCTAGCGATTAT\n") - expFile.write ( "ATAGCAGACGCATATTATATTGCGCG\n") - - stdoutRef = sys.stdout - sys.stdout = obsFile - bioseq.view() - obsFile.close() - expFile.close() - self.assertTrue( FileUtils.are2FilesIdentical( expFileName, obsFileName ) ) - sys.stdout = stdoutRef - os.remove ( obsFileName ) - os.remove ( expFileName ) - - - def test_view_with_l(self): - obsFileName = "obsdummy_Bioseq_view" - expFileName = "expDummy_Bioseq_View" - bioseq = Bioseq() - bioseq.header = "seq1 description1" - bioseq.sequence = "GCGNCGCTGCTTTATTAAGCGCTAGCATGCGNCGCTGCTTTATTAAGCGCTAGCGATTATATAGCAGACGCATATTATATTGCGCGATGCGNCGCTGCTTTATTAAGCGCTAGCGATTATATAGCAGACGCATATTATATTGCGCG" - obsFile = open(obsFileName,"w") - expFile = open(expFileName, "w") - expFile.write ( ">seq1 description1\n") - expFile.write ( "GCGNCGCTGCTTTATTAAGCGCTAGCATGCGNCGCTGCTTTATTAAGCGCTAGCGATTAT\n") - expFile.write ( "ATAGCAGACGCATATTATATTGCGCGATGCGNCGCTGCTTTATTAAGCGCTAGCGATTAT\n") - stdoutRef = sys.stdout - sys.stdout = obsFile - bioseq.view(120) - obsFile.close() - expFile.close() - self.assertTrue( FileUtils.are2FilesIdentical( expFileName, obsFileName ) ) - sys.stdout = stdoutRef - os.remove ( obsFileName ) - os.remove ( expFileName ) - - - def test_getLength(self): - bioseq = Bioseq() - bioseq.header = "seq1 description1" - bioseq.sequence = "GCGNCGCTGCTTTATTAAGCGCTAGCATGCGNCGCTGCTTTATTAAGCGCTAGCGATTATATAGCAGACGCATATTATATTGCGCGATGCGNCGCTGCTTTATTAAGCGCTAGCGATTATATAGCAGACGCATATTATATTGCGCG" - expLength = 146 - obsLength = bioseq.getLength() - self.assertEquals(expLength, obsLength) - - - def test_getLength_empty_seq(self): - bioseq = Bioseq() - expLength = 0 - obsLength = bioseq.getLength() - self.assertEquals(expLength, obsLength) - - - def test_getLength_WithoutN(self): - bioseq = Bioseq() - bioseq.header = "seq1 description1" - bioseq.sequence = "GCGANCGCTGCTTTATTAAGCGCTAGATGNNNNNNNNNNNNNNNCGACGCTGCATTTATTAAGCGCTAGCGATTATANNNNNNNNNTAGCAGACGCATATTATATTGCGCGATGCGACGCTGCTTTATTANAGCGCTAGCGNNATTATATAGCANGACGCATATTATATTGCGCG" - expLength = 146 - obsLength = bioseq.getLength(False) - self.assertEquals(expLength, obsLength) - - - def test_getLength_WithoutN_empty_seq(self): - bioseq = Bioseq() - expLength = 0 - obsLength = bioseq.getLength(False) - self.assertEquals(expLength, obsLength) - - - def test_countNt(self): - bioseq = Bioseq() - bioseq.header = "seq1 description1" - bioseq.sequence = "GCGNCGCTGCTTTATTAAGCGCTAGCATGCGNCGCTGCTTTATTAAGCGCTAGCGATTATATAGCAGACGCATATTATATTGCGCGATGCGNCGCTGCTTTATTAAGCGCTAGCGATTATATAGCAGACGCATATTATATTGCGCG" - expCount = 3 - obsCount = bioseq.countNt('N') - self.assertEquals(expCount, obsCount) - - - def test_countNt_withCharacterNotExisting(self): - bioseq = Bioseq() - bioseq.header = "seq1 description1" - bioseq.sequence = "GCGNCGCTGCTTTATTAAGCGCTAGCATGCGNCGCTGCTTTATTAAGCGCTAGCGATTATATAGCAGACGCATATTATATTGCGCGATGCGNCGCTGCTTTATTAAGCGCTAGCGATTATATAGCAGACGCATATTATATTGCGCG" - expCount = 0 - obsCount = bioseq.countNt('W') - self.assertEquals(expCount, obsCount) - - - def test_countAllNt(self): - bioseq = Bioseq() - bioseq.header = "seq1 description1" - bioseq.sequence = "GCGNCGCTGCTTTATTAAGCGCTAGCATGCGNCGCTGCTTTATTAAGCGCTAGCGATTATATAGCAGACGCATATTATATTGCGCGATGCGNCGCTGCTTTATTAAGCGCTAGCGATTATATAGCAGACGCATATTATATTGCGCG" - dExpCount = {'A': 34, 'C': 31, 'T': 43, 'G': 35, 'N': 3} - dObsCount = bioseq.countAllNt() - self.assertEquals(dExpCount, dObsCount) - - - def test_occ_word_size_1(self): - bioseq = Bioseq() - bioseq.header = "seq1 description1" - bioseq.sequence = "GCGNCGCTGCTTTATTAAGCGCTAGCATGCGNCGCTGCTTTATTAAGCGCTAGCGATTATATAGCAGACGCATATTATATTGCGCGATGCGNCGCTGCTTTATTAAGCGCTAGCGATTATATAGCAGACGCATATTATATTGCGCG" - dExpOccWord = {'A': 34, 'C': 31, 'T': 43, 'G': 35} - ExpNbWord = 143 - dObsOccWord, ObsNbWord = bioseq.occ_word(1) - self.assertEquals(dExpOccWord, dObsOccWord) - self.assertEquals(ExpNbWord, ObsNbWord) - - - def test_occ_word_size_0(self): - bioseq = Bioseq() - bioseq.header = "seq1 description1" - bioseq.sequence = "GCGNCGCTGCTTTATTAAGCGCTAGCATGCGNCGCTGCTTTATTAAGCGCTAGCGATTATATAGCAGACGCATATTATATTGCGCGATGCGNCGCTGCTTTATTAAGCGCTAGCGATTATATAGCAGACGCATATTATATTGCGCG" - dExpOccWord = {} - ExpNbWord = 0 - dObsOccWord, ObsNbWord = bioseq.occ_word(0) - self.assertEquals(dExpOccWord, dObsOccWord) - self.assertEquals(ExpNbWord, ObsNbWord) - - - def test_occ_word_size_n(self): - bioseq = Bioseq() - bioseq.header = "seq1 description1" - bioseq.sequence = "GCGNCGCTGCTTTATTAAGCGCTAGCATGCGNCGCTGCTTTATTAAGCGCTAGCGATTATATAGCAGACGCATATTATATTGCGCGATGCGNCGCTGCTTTATTAAGCGCTAGCGATTATATAGCAGACGCATATTATATTGCGCG" - dExpOccWord = {'ACC': 0, 'ATG': 2, 'AAG': 3, 'AAA': 0, 'ATC': 0, 'AAC': 0, 'ATA': 8, 'AGG': 0, 'CCT': 0, 'CTC': 0, 'AGC': 8, 'ACA': 0, 'AGA': 2, 'CAT': 3, 'AAT': 0, 'ATT': 9, 'CTG': 3, 'CTA': 3, 'ACT': 0, 'CAC': 0, 'ACG': 2, 'CAA': 0, 'AGT': 0, 'CAG': 2, 'CCG': 0, 'CCC': 0, 'CTT': 3, 'TAT': 13, 'GGT': 0, 'TGT': 0, 'CGA': 3, 'CCA': 0, 'TCT': 0, 'GAT': 3, 'CGG': 0, 'TTT': 3, 'TGC': 7, 'GGG': 0, 'TAG': 5, 'GGA': 0, 'TAA': 3, 'GGC': 0, 'TAC': 0, 'TTC': 0, 'TCG': 0, 'TTA': 10, 'TTG': 2, 'TCC': 0, 'GAA': 0, 'TGG': 0, 'GCA': 5, 'GTA': 0, 'GCC': 0, 'GTC': 0, 'GCG': 12, 'GTG': 0, 'GAG': 0, 'GTT': 0, 'GCT': 9, 'TGA': 0, 'GAC': 2, 'CGT': 0, 'TCA': 0, 'CGC': 10} - ExpNbWord = 135 - dObsOccWord, ObsNbWord = bioseq.occ_word(3) - self.assertEquals(dExpOccWord, dObsOccWord) - self.assertEquals(ExpNbWord, ObsNbWord) - - - def test_freq_word_size_1(self): - bioseq = Bioseq() - bioseq.header = "seq1 description1" - bioseq.sequence = "GCGNCGCTGCTTTATTAAGCGCTAGCATGCGNCGCTGCTTTATTAAGCGCTAGCGATTATATAGCAGACGCATATTATATTGCGCGATGCGNCGCTGCTTTATTAAGCGCTAGCGATTATATAGCAGACGCATATTATATTGCGCG" - dExpFreqWord = {'A': 0.23776223776223776, 'C': 0.21678321678321677, 'T': 0.30069930069930068, 'G': 0.24475524475524477} - dObsFreqWord = bioseq.freq_word(1) - self.assertEquals(dExpFreqWord, dObsFreqWord) - - - def test_freq_word_size_0(self): - bioseq = Bioseq() - bioseq.header = "seq1 description1" - bioseq.sequence = "GCGNCGCTGCTTTATTAAGCGCTAGCATGCGNCGCTGCTTTATTAAGCGCTAGCGATTATATAGCAGACGCATATTATATTGCGCGATGCGNCGCTGCTTTATTAAGCGCTAGCGATTATATAGCAGACGCATATTATATTGCGCG" - dExpFreqWord = {} - dObsFreqWord = bioseq.freq_word(0) - self.assertEquals(dExpFreqWord, dObsFreqWord) - - - def test_freq_word_size_n(self): - bioseq = Bioseq() - bioseq.header = "seq1 description1" - bioseq.sequence = "GCGNCGCTGCTTTATTAAGCGCTAGCATGCGNCGCTGCTTTATTAAGCGCTAGCGATTATATAGCAGACGCATATTATATTGCGCGATGCGNCGCTGCTTTATTAAGCGCTAGCGATTATATAGCAGACGCATATTATATTGCGCG" - dExpFreqWord = {'ACC': 0.0, 'ATG': 0.014814814814814815, 'AAG': 0.022222222222222223, 'AAA': 0.0, 'ATC': 0.0, 'AAC': 0.0, 'ATA': 0.059259259259259262, 'AGG': 0.0, 'CCT': 0.0, 'CTC': 0.0, 'AGC': 0.059259259259259262, 'ACA': 0.0, 'AGA': 0.014814814814814815, 'CAT': 0.022222222222222223, 'AAT': 0.0, 'ATT': 0.066666666666666666, 'CTG': 0.022222222222222223, 'CTA': 0.022222222222222223, 'ACT': 0.0, 'CAC': 0.0, 'ACG': 0.014814814814814815, 'CAA': 0.0, 'AGT': 0.0, 'CAG': 0.014814814814814815, 'CCG': 0.0, 'CCC': 0.0, 'TAT': 0.096296296296296297, 'GGT': 0.0, 'TGT': 0.0, 'CGA': 0.022222222222222223, 'CCA': 0.0, 'TCT': 0.0, 'GAT': 0.022222222222222223, 'CGG': 0.0, 'CTT': 0.022222222222222223, 'TGC': 0.05185185185185185, 'GGG': 0.0, 'TAG': 0.037037037037037035, 'GGA': 0.0, 'TAA': 0.022222222222222223, 'GGC': 0.0, 'TAC': 0.0, 'TTC': 0.0, 'TCG': 0.0, 'TTT': 0.022222222222222223, 'TTG': 0.014814814814814815, 'TCC': 0.0, 'GAA': 0.0, 'TGG': 0.0, 'GCA': 0.037037037037037035, 'GTA': 0.0, 'GCC': 0.0, 'GTC': 0.0, 'TGA': 0.0, 'GCG': 0.088888888888888892, 'GTG': 0.0, 'GAG': 0.0, 'GTT': 0.0, 'GCT': 0.066666666666666666, 'TTA': 0.07407407407407407, 'GAC': 0.014814814814814815, 'CGT': 0.0, 'TCA': 0.0, 'CGC': 0.07407407407407407} - dObsFreqWord = bioseq.freq_word(3) - self.assertEquals(dExpFreqWord, dObsFreqWord) - - - def test_findORF_no_ORF_in_sequence (self): - bioseq = Bioseq() - bioseq.header = "seq1 description1" - bioseq.sequence = "GCGNCGCTGCTTTATT" - expORF = {0:[],1:[],2:[]} - obsORF = bioseq.findORF() - self.assertEquals (expORF,obsORF) - - - def test_findORF_one_ORF_in_first_phase(self): - bioseq = Bioseq() - bioseq.header = "seq1 description1" - bioseq.sequence = "TAAGCGNCGCTGCTTTATT" - expORF = {0:[0],1:[],2:[]} - obsORF = bioseq.findORF() - self.assertEquals (expORF,obsORF) - - - def test_findORF_three_ORF_in_first_phase(self): - bioseq = Bioseq() - bioseq.header = "seq1 description1" - bioseq.sequence = "TAAGCGTAGNCGTGACTGCTTTATT" - expORF = {0:[0,6,12],1:[],2:[]} - obsORF = bioseq.findORF() - self.assertEquals (expORF,obsORF) - - - def test_findORF_two_ORF_in_first_phase_one_ORF_in_second_phase(self): - bioseq = Bioseq() - bioseq.header = "seq1 description1" - bioseq.sequence = "TAAGTAGAGNCGTGACTGCTTTATT" - expORF = {0:[0,12],1:[4],2:[]} - obsORF = bioseq.findORF() - self.assertEquals (expORF,obsORF) - - - def test_findORF_two_ORF_in_first_phase_three_ORF_in_second_phase(self): - bioseq = Bioseq() - bioseq.header = "seq1 description1" - bioseq.sequence = "TAAGTAGAGNCGTGACTGATAGTATT" - expORF = {0:[0,12],1:[4,16,19],2:[]} - obsORF = bioseq.findORF() - self.assertEquals (expORF,obsORF) - - - def test_findORF_one_ORF_in_second_phase_three_ORF_in_third_phase(self): - bioseq = Bioseq() - bioseq.header = "seq1 description1" - bioseq.sequence = "AATATTAGTGGAGTAGTTGATGATTTT" - expORF = {0:[], 1:[13], 2:[5,17,20]} - obsORF = bioseq.findORF() - self.assertEquals (expORF,obsORF) - - - def test_findORF_three_ORF_in_second_phase_one_ORF_in_third_phase(self): - bioseq = Bioseq() - bioseq.header = "seq1 description1" - bioseq.sequence = "TTTGAAGTGGAGGAGTTGATGATTTTAAT" - expORF = {0:[], 1:[16, 19, 25], 2:[2]} - obsORF = bioseq.findORF() - self.assertEquals (expORF,obsORF) - - - def test_upCase(self): - bioseq = Bioseq() - bioseq.header = "seq description" - bioseq.sequence = "taattcggcct" - expSeq = "TAATTCGGCCT" - bioseq.upCase() - obsSeq = bioseq.sequence - self.assertEquals( expSeq, obsSeq ) - - - def test_lowCase(self): - bioseq = Bioseq() - bioseq.header = "seq description" - bioseq.sequence = "TAATTCGGCCT" - expSeq = "taattcggcct" - bioseq.lowCase() - obsSeq = bioseq.sequence - self.assertEquals( expSeq, obsSeq ) - - - def test_getClusterID(self): - bioseq = Bioseq() - bioseq.header = "MbQ58Gr2Cl0 chunk1 {Fragment} 74091..74624" - bioseq.sequence = "TAATTCGGCCT" - expID = "0" - obsID = bioseq.getClusterID() - self.assertEquals( expID, obsID ) - - - def test_getGroupID(self): - bioseq = Bioseq() - bioseq.header = "MbQ58Gr2Cl0 chunk1 {Fragment} 74091..74624" - bioseq.sequence = "TAATTCGGCCT" - expID = "2" - obsID = bioseq.getGroupID() - self.assertEquals( expID, obsID ) - - - def test_getHeaderFullSeq(self): - bioseq = Bioseq() - bioseq.header = "MbQ58Gr2Cl0 chunk1 {Fragment} 74091..74624" - bioseq.sequence = "TAATTCGGCCT" - expHeader = "chunk1" - obsHeader = bioseq.getHeaderFullSeq() - self.assertEquals( expHeader, obsHeader ) - - - def test_getFragStrand_plus_strand(self): - bioseq = Bioseq() - bioseq.header = "MbQ58Gr2Cl0 chunk1 {Fragment} 74091..74624" - bioseq.sequence = "TAATTCGGCCT" - expStrand = '+' - obsStrand = bioseq.getFragStrand() - self.assertEquals(expStrand, obsStrand) - - - def test_getFragStrand_minus_strand(self): - bioseq = Bioseq() - bioseq.header = "MbQ58Gr2Cl0 chunk1 {Fragment} 74624..74091" - bioseq.sequence = "TAATTCGGCCT" - expStrand = '-' - obsStrand = bioseq.getFragStrand() - self.assertEquals(expStrand, obsStrand) - - - def test_getATGCNFromIUPAC_A(self): - bioseq = Bioseq() - expNucl = 'A' - obsNucl = bioseq.getATGCNFromIUPAC('A') - self.assertEquals(expNucl, obsNucl) - - - def test_getATGCNFromIUPAC_T(self): - bioseq = Bioseq() - expNucl = 'T' - obsNucl = bioseq.getATGCNFromIUPAC('T') - self.assertEquals(expNucl, obsNucl) - - - def test_getATGCNFromIUPAC_C(self): - bioseq = Bioseq() - expNucl = 'C' - obsNucl = bioseq.getATGCNFromIUPAC('C') - self.assertEquals(expNucl, obsNucl) - - - def test_getATGCNFromIUPAC_G(self): - bioseq = Bioseq() - expNucl = 'G' - obsNucl = bioseq.getATGCNFromIUPAC('G') - self.assertEquals(expNucl, obsNucl) - - - def test_getATGCNFromIUPAC_N(self): - bioseq = Bioseq() - expNucl = 'N' - obsNucl = bioseq.getATGCNFromIUPAC('N') - self.assertEquals(expNucl, obsNucl) - - - def test_getATGCNFromIUPAC_U(self): - bioseq = Bioseq() - expNucl = 'T' - obsNucl = bioseq.getATGCNFromIUPAC('U') - self.assertEquals(expNucl, obsNucl) - - - def test_getATGCNFromIUPAC_R(self): - bioseq = Bioseq() - expNucl1 = 'A' - expNucl2 = 'G' - obsNucl = bioseq.getATGCNFromIUPAC('R') - self.assertTrue(expNucl1 == obsNucl or expNucl2 == obsNucl) - - - def test_getATGCNFromIUPAC_Y(self): - bioseq = Bioseq() - expNucl1 = 'C' - expNucl2 = 'T' - obsNucl = bioseq.getATGCNFromIUPAC('Y') - self.assertTrue(expNucl1 == obsNucl or expNucl2 == obsNucl) - - - def test_getATGCNFromIUPAC_M(self): - bioseq = Bioseq() - expNucl1 = 'C' - expNucl2 = 'A' - obsNucl = bioseq.getATGCNFromIUPAC('M') - self.assertTrue(expNucl1 == obsNucl or expNucl2 == obsNucl) - - - def test_getATGCNFromIUPAC_K(self): - bioseq = Bioseq() - expNucl1 = 'T' - expNucl2 = 'G' - obsNucl = bioseq.getATGCNFromIUPAC('K') - self.assertTrue(expNucl1 == obsNucl or expNucl2 == obsNucl) - - - def test_getATGCNFromIUPAC_W(self): - bioseq = Bioseq() - expNucl1 = 'T' - expNucl2 = 'A' - obsNucl = bioseq.getATGCNFromIUPAC('W') - self.assertTrue(expNucl1 == obsNucl or expNucl2 == obsNucl) - - - def test_getATGCNFromIUPAC_S(self): - bioseq = Bioseq() - expNucl1 = 'C' - expNucl2 = 'G' - obsNucl = bioseq.getATGCNFromIUPAC('S') - self.assertTrue(expNucl1 == obsNucl or expNucl2 == obsNucl) - - - def test_getATGCNFromIUPAC_B(self): - bioseq = Bioseq() - expNucl1 = 'C' - expNucl2 = 'T' - expNucl3 = 'G' - obsNucl = bioseq.getATGCNFromIUPAC('B') - self.assertTrue(expNucl1 == obsNucl or expNucl2 == obsNucl or expNucl3 == obsNucl) - - - def test_getATGCNFromIUPAC_D(self): - bioseq = Bioseq() - expNucl1 = 'A' - expNucl2 = 'T' - expNucl3 = 'G' - obsNucl = bioseq.getATGCNFromIUPAC('D') - self.assertTrue(expNucl1 == obsNucl or expNucl2 == obsNucl or expNucl3 == obsNucl) - - - def test_getATGCNFromIUPAC_H(self): - bioseq = Bioseq() - expNucl1 = 'C' - expNucl2 = 'T' - expNucl3 = 'A' - obsNucl = bioseq.getATGCNFromIUPAC('H') - self.assertTrue(expNucl1 == obsNucl or expNucl2 == obsNucl or expNucl3 == obsNucl) - - - def test_getATGCNFromIUPAC_V(self): - bioseq = Bioseq() - expNucl1 = 'C' - expNucl2 = 'A' - expNucl3 = 'G' - obsNucl = bioseq.getATGCNFromIUPAC('V') - self.assertTrue(expNucl1 == obsNucl or expNucl2 == obsNucl or expNucl3 == obsNucl) - - - def test_getATGCNFromIUPAC_Z(self): - bioseq = Bioseq() - expNucl = 'N' - obsNucl = bioseq.getATGCNFromIUPAC('Z') - self.assertEquals(expNucl, obsNucl) - - - def test_getATGCNFromIUPACandATGCN(self): - self.assertEquals("G", Bioseq().getATGCNFromIUPACandATGCN('R', 'A')) - self.assertEquals("A", Bioseq().getATGCNFromIUPACandATGCN('R', 'G')) - self.assertEquals("C", Bioseq().getATGCNFromIUPACandATGCN('Y', 'T')) - self.assertEquals("T", Bioseq().getATGCNFromIUPACandATGCN('Y', 'C')) - self.assertEquals("C", Bioseq().getATGCNFromIUPACandATGCN('M', 'A')) - self.assertEquals("A", Bioseq().getATGCNFromIUPACandATGCN('M', 'C')) - self.assertEquals("T", Bioseq().getATGCNFromIUPACandATGCN('K', 'G')) - self.assertEquals("G", Bioseq().getATGCNFromIUPACandATGCN('K', 'T')) - self.assertEquals("A", Bioseq().getATGCNFromIUPACandATGCN('W', 'T')) - self.assertEquals("T", Bioseq().getATGCNFromIUPACandATGCN('W', 'A')) - self.assertEquals("G", Bioseq().getATGCNFromIUPACandATGCN('S', 'C')) - self.assertEquals("C", Bioseq().getATGCNFromIUPACandATGCN('S', 'G')) - - def test_getATGCNFromIUPACandATGCN_invalid_combination(self): - obsMsg = "" - try: - Bioseq().getATGCNFromIUPACandATGCN('R', 'T') - except RepetException as e: - obsMsg = e.getMessage() - - self.assertEqual("IUPAC code 'R' and nucleotide 'T' are not compatible", obsMsg) - - def test_getATGCNFromIUPACandATGCN_invalid_IUPAC(self): - bioseq = Bioseq() - obsMsg = "" - try: - bioseq.getATGCNFromIUPACandATGCN('B', 'T') - except RepetException as e: - obsMsg = e.getMessage() - - self.assertEqual("Can't retrieve the third nucleotide from IUPAC code 'B' and nucleotide 'T'", obsMsg) - - def test_partialIUPAC(self): - bioseq = Bioseq() - bioseq.sequence = "ATGCNRATGCN" - expSequence1 = "ATGCNAATGCN" - expSequence2 = "ATGCNGATGCN" - bioseq.partialIUPAC() - obsSequence = bioseq.sequence - self.assertTrue(expSequence1 == obsSequence or expSequence2 == obsSequence) - - - def test_checkEOF(self): - bioseq = Bioseq() - bioseq.sequence = "ATGCNRATGCN\rATGCAAT\rTATA\r" - bioseq.checkEOF() - obsSequence = bioseq.sequence - expSequence = "ATGCNRATGCNATGCAATTATA" - - self.assertEquals(expSequence, obsSequence) - - - def test_getLMapWhithoutGap(self): - iBioseq = Bioseq() - iBioseq.header = "header" - iBioseq.sequence = "ATGC-RA-GCT" - obsLMap = iBioseq.getLMapWhithoutGap() - expLMap = [Map( "header_subSeq1", "header", 1, 4 ), Map( "header_subSeq2", "header", 6, 7 ), Map( "header_subSeq3", "header", 9, 11 )] - - self.assertEquals(expLMap, obsLMap) - - - def test_getLMapWhithoutGap_seqStartsWithGap(self): - iBioseq = Bioseq() - iBioseq.header = "header" - iBioseq.sequence = "-TGC-RA-GCT" - obsLMap = iBioseq.getLMapWhithoutGap() - expLMap = [Map( "header_subSeq1", "header", 2, 4 ), Map( "header_subSeq2", "header", 6, 7 ), Map( "header_subSeq3", "header", 9, 11 )] - - self.assertEquals(expLMap, obsLMap) - - - def test_getLMapWhithoutGap_seqEndsWithGap(self): - iBioseq = Bioseq() - iBioseq.header = "header" - iBioseq.sequence = "ATGC-RA-GC-" - obsLMap = iBioseq.getLMapWhithoutGap() - expLMap = [Map( "header_subSeq1", "header", 1, 4 ), Map( "header_subSeq2", "header", 6, 7 ), Map( "header_subSeq3", "header", 9, 10 )] - - self.assertEquals(expLMap, obsLMap) - - def test_getGCpercentage_onlyATGC( self ): - iBs = Bioseq( "seq", "TGCAGCT" ) - exp = 100 * 4 / 7.0 - obs = iBs.getGCpercentage() - self.assertEqual( exp, obs ) - - def test_getGCpercentageInSequenceWithoutCountNInLength( self ): - iBs = Bioseq( "seq", "TGCAGCTNNNNN" ) - exp = 100 * 4 / 7.0 - obs = iBs.getGCpercentageInSequenceWithoutCountNInLength() - self.assertEqual( exp, obs ) - - def test_get5PrimeFlank(self): - bs = Bioseq( "line1", "AACTTTCCAGAA" ) - position = 7 - obsFlank = bs.get5PrimeFlank(position, 3) - expFlank = "TTT" - self.assertEquals(expFlank, obsFlank) - - def test_get5PrimeFlank_flank_length_truncated(self): - bs = Bioseq( "line1", "AACTTTCCAGAA" ) - position = 7 - obsFlank = bs.get5PrimeFlank(position, 15) - expFlank = "AACTTT" - self.assertEquals(expFlank, obsFlank) - - def test_get5PrimeFlank_flank_of_first_base(self): - bs = Bioseq( "line1", "AACTTTCCAGAA" ) - position = 1 - obsFlank = bs.get5PrimeFlank(position, 15) - expFlank = "" - self.assertEquals(expFlank, obsFlank) - - def test_get3PrimeFlank(self): - bs = Bioseq( "line1", "AACTTTCCAGAA" ) - position = 7 - obsFlank = bs.get3PrimeFlank(position, 3) - expFlank = "CAG" - self.assertEquals(expFlank, obsFlank) - - def test_get3PrimeFlank_flank_length_truncated(self): - bs = Bioseq( "line1", "AACTTTCCAGAA" ) - position = 7 - obsFlank = bs.get3PrimeFlank(position, 15) - expFlank = "CAGAA" - self.assertEquals(expFlank, obsFlank) - - def test_get3PrimeFlank_flank_of_last_base(self): - bs = Bioseq( "line1", "AACTTTCCAGAA" ) - position = 12 - obsFlank = bs.get3PrimeFlank(position, 15) - expFlank = "" - self.assertEquals(expFlank, obsFlank) - - def test_get3PrimeFlank_polymLength_different_of_1(self): - bs = Bioseq( "line1", "AACTTTCCAGAA" ) - position = 7 - obsFlank = bs.get3PrimeFlank(position, 3, 2) - expFlank = "AGA" - self.assertEquals(expFlank, obsFlank) - -test_suite = unittest.TestSuite() -test_suite.addTest( unittest.makeSuite( Test_Bioseq ) ) -if __name__ == "__main__": - unittest.TextTestRunner(verbosity=2).run( test_suite )
--- a/commons/core/seq/test/Test_BioseqDB.py Mon Apr 29 03:26:07 2013 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,974 +0,0 @@ -# Copyright INRA (Institut National de la Recherche Agronomique) -# http://www.inra.fr -# http://urgi.versailles.inra.fr -# -# This software is governed by the CeCILL license under French law and -# abiding by the rules of distribution of free software. You can use, -# modify and/ or redistribute the software under the terms of the CeCILL -# license as circulated by CEA, CNRS and INRIA at the following URL -# "http://www.cecill.info". -# -# As a counterpart to the access to the source code and rights to copy, -# modify and redistribute granted by the license, users are provided only -# with a limited warranty and the software's author, the holder of the -# economic rights, and the successive licensors have only limited -# liability. -# -# In this respect, the user's attention is drawn to the risks associated -# with loading, using, modifying and/or developing or reproducing the -# software by the user in light of its specific status of free software, -# that may mean that it is complicated to manipulate, and that also -# therefore means that it is reserved for developers and experienced -# professionals having in-depth computer knowledge. Users are therefore -# encouraged to load and test the software's suitability as regards their -# requirements in conditions enabling the security of their systems and/or -# data to be ensured and, more generally, to use and operate it in the -# same conditions as regards security. -# -# The fact that you are presently reading this means that you have had -# knowledge of the CeCILL license and that you accept its terms. - - -import unittest -import os -import time -from commons.core.seq.BioseqDB import BioseqDB -from commons.core.seq.Bioseq import Bioseq -from commons.core.utils.FileUtils import FileUtils -from commons.core.coord.Map import Map - - -class Test_BioseqDB( unittest.TestCase ): - - def setUp( self ): - self._uniqId = "%s_%s" % ( time.strftime("%Y%m%d%H%M%S") , os.getpid() ) - - - def tearDown( self ): - if os._exists("dummyBioseqDB.fa"): - os.remove("dummyBioseqDB.fa") - - - def test__eq__(self): - iBioseq1 = Bioseq( "seq1", "AGCGGACGATGCAGCATGCGAATGACGAT" ) - iBioseq2 = Bioseq( "seq2", "GCGATGCGATCGATGCGATAGCA" ) - expBioseqDB = BioseqDB() - expBioseqDB.setData( [ iBioseq1, iBioseq2 ] ) - - iBioseq3 = Bioseq( "seq1", "AGCGGACGATGCAGCATGCGAATGACGAT" ) - iBioseq4 = Bioseq( "seq2", "GCGATGCGATCGATGCGATAGCA" ) - obsBioseqDB = BioseqDB() - obsBioseqDB.setData( [ iBioseq3, iBioseq4 ] ) - - self.assertEquals( expBioseqDB, obsBioseqDB ) - - - def test__eq__instances_with_different_header(self): - iBioseq1 = Bioseq( "seq1", "AGCGGACGATGCAGCATGCGAATGACGAT" ) - iBioseq2 = Bioseq( "seq2", "GCGATGCGATCGATGCGATAGCA" ) - expBioseqDB = BioseqDB() - expBioseqDB.setData( [ iBioseq1, iBioseq2 ] ) - - iBioseq3 = Bioseq( "seq3", "AGCGGACGATGCAGCATGCGAATGACGAT" ) - iBioseq4 = Bioseq( "seq4", "GCGATGCGATCGATGCGATAGCA" ) - obsBioseqDB = BioseqDB() - obsBioseqDB.setData( [ iBioseq3, iBioseq4 ] ) - - self.assertNotEquals( expBioseqDB, obsBioseqDB ) - - - def test__eq__instances_with_different_sequences(self): - iBioseq1 = Bioseq( "seq1", "AGCGGACGATGCAGCATGCGAATGACGAT" ) - iBioseq2 = Bioseq( "seq2", "GCGATGCGATCGATGCGATAGCA" ) - expBioseqDB = BioseqDB() - expBioseqDB.setData( [ iBioseq1, iBioseq2 ] ) - - iBioseq3 = Bioseq( "seq1", "AGCGGACGATGCAGCATGCGAATGACGAT" ) - iBioseq4 = Bioseq( "seq2", "GCGATGCGATCGATGCGATAGCATATATATATATATATATATATAT" ) - obsBioseqDB = BioseqDB() - obsBioseqDB.setData( [ iBioseq3, iBioseq4 ] ) - - self.assertNotEquals( expBioseqDB, obsBioseqDB ) - - - def test__eq__instances_with_different_sequences_and_headers(self): - iBioseq1 = Bioseq( "seq1", "AGCGGACGATGCAGCATGCGAATGACGAT" ) - iBioseq2 = Bioseq( "seq2", "GCGATGCGATCGATGCGATAGCA" ) - expBioseqDB = BioseqDB() - expBioseqDB.setData( [ iBioseq1, iBioseq2 ] ) - - iBioseq3 = Bioseq( "seq3", "AGCGGACGATGCAGCATGCGAATGACGAT" ) - iBioseq4 = Bioseq( "seq4", "GCGATGCGATCGATGCGATAGCATATATATATATATATATATATAT" ) - obsBioseqDB = BioseqDB() - obsBioseqDB.setData( [ iBioseq3, iBioseq4 ] ) - - self.assertNotEquals( expBioseqDB, obsBioseqDB ) - - - def test__eq__instances_with_different_sizeOfBioseq(self): - iBioseq1 = Bioseq( "seq1", "AGCGGACGATGCAGCATGCGAATGACGAT" ) - iBioseq2 = Bioseq( "seq2", "GCGATGCGATCGATGCGATAGCA" ) - expBioseqDB = BioseqDB() - expBioseqDB.setData( [ iBioseq1, iBioseq2 ] ) - - iBioseq3 = Bioseq( "seq3", "AGCGGACGATGCAGCATGCGAATGACGAT" ) - obsBioseqDB = BioseqDB() - obsBioseqDB.setData( [ iBioseq3 ] ) - - self.assertNotEquals( expBioseqDB, obsBioseqDB ) - - - def test_setName (self): - expName = "myDataBank" - iBioseqDB = BioseqDB() - self.assertEquals (iBioseqDB.name, "") - - iBioseqDB.setName (expName) - obsName = iBioseqDB.name - self.assertEquals (expName, obsName) - - - def test_read(self): - iBioseq1 = Bioseq("consensus1","GAGATGGCTCATGGAGTACCTGCCT") - iBioseq2 = Bioseq("consensus2","GAGATGGCTCATGGAGTACCGC") - expBioseqDB = BioseqDB() - expBioseqDB.setData( [ iBioseq1, iBioseq2 ] ) - - faFN = "dummyFaFile.fa" - faF = open( faFN, "w" ) - faF.write(">consensus1\n") - faF.write("GAGATGGCTCATGGAGTACCTGCCT\n") - faF.write(">consensus2\n") - faF.write("GAGATGGCTCATGGAGTACCGC\n") - faF.close() - - faF = open( faFN, "r" ) - obsBioseqDB = BioseqDB() - obsBioseqDB.read( faF ) - faF.close() - os.remove( faFN ) - self.assertEquals( expBioseqDB, obsBioseqDB ) - - - def test_write(self): - iBioseq1 = Bioseq("consensus1","GAGATGGCTCATGGAGTACCTGCCTGAGATGGCTCATGGAGTACCTGCCTGAGATGGCTCATGGAGTACCTGCCT") - iBioseq2 = Bioseq("consensus2","GAGATGGCTCATGGAGTACCGCGAGATGGCTCATGGAGTACCGCGAGATGGCTCATGGAGTACCGCGAGATGGCTCATGGAGTACCGC") - iBioseqDB = BioseqDB() - iBioseqDB.setData( [ iBioseq1, iBioseq2 ] ) - - expFaFileName = "dummyFaFile.fa" - expFaFile = open( expFaFileName, "w" ) - expFaFile.write(">consensus1\n") - expFaFile.write("GAGATGGCTCATGGAGTACCTGCCTGAGATGGCTCATGGAGTACCTGCCTGAGATGGCTC\n") - expFaFile.write("ATGGAGTACCTGCCT\n") - expFaFile.write(">consensus2\n") - expFaFile.write("GAGATGGCTCATGGAGTACCGCGAGATGGCTCATGGAGTACCGCGAGATGGCTCATGGAG\n") - expFaFile.write("TACCGCGAGATGGCTCATGGAGTACCGC\n") - expFaFile.close() - - obsFaFileName = "obsDummyFastaFile.fa" - obsFaFile = open( obsFaFileName, "w" ) - iBioseqDB.write( obsFaFile ) - obsFaFile.close() - - self.assertTrue( FileUtils.are2FilesIdentical(expFaFileName, obsFaFileName) ) - os.remove( expFaFileName ) - os.remove( obsFaFileName ) - - - def test_save(self): - iBioseq1 = Bioseq("consensus1","GAGATGGCTCATGGAGTACCTGCCTGAGATGGCTCATGGAGTACCTGCCTGAGATGGCTCATGGAGTACCTGCCT") - iBioseq2 = Bioseq("consensus2","GAGATGGCTCATGGAGTACCGCGAGATGGCTCATGGAGTACCGCGAGATGGCTCATGGAGTACCGCGAGATGGCTCATGGAGTACCGC") - iBioseqDB = BioseqDB() - iBioseqDB.setData( [ iBioseq1, iBioseq2 ] ) - - expFaFileName = "dummyFaFile.fa" - expFaFile = open( expFaFileName, "w" ) - expFaFile.write(">consensus1\n") - expFaFile.write("GAGATGGCTCATGGAGTACCTGCCTGAGATGGCTCATGGAGTACCTGCCTGAGATGGCTC\n") - expFaFile.write("ATGGAGTACCTGCCT\n") - expFaFile.write(">consensus2\n") - expFaFile.write("GAGATGGCTCATGGAGTACCGCGAGATGGCTCATGGAGTACCGCGAGATGGCTCATGGAG\n") - expFaFile.write("TACCGCGAGATGGCTCATGGAGTACCGC\n") - expFaFile.close() - - obsFaFileName = "obsDummyFastaFile.fa" - iBioseqDB.save( obsFaFileName ) - - self.assertTrue( FileUtils.are2FilesIdentical(expFaFileName, obsFaFileName) ) - os.remove( expFaFileName ) - os.remove( obsFaFileName ) - - - def test_load(self): - iBioseq1 = Bioseq("consensus1","GAGATGGCTCATGGAGTACCTGCCTGAGATGGCTCATGGAGTACCTGCCTGAGATGGCTCATGGAGTACCTGCCT") - iBioseq2 = Bioseq("consensus2","GAGATGGCTCATGGAGTACCGCGAGATGGCTCATGGAGTACCGCGAGATGGCTCATGGAGTACCGCGAGATGGCTCATGGAGTACCGC") - expBioseqDB = BioseqDB() - expBioseqDB.setData( [ iBioseq1, iBioseq2 ] ) - - FaFileName = "dummyFaFile.fa" - FaFile = open( FaFileName, "w" ) - FaFile.write(">consensus1\n") - FaFile.write("GAGATGGCTCATGGAGTACCTGCCTGAGATGGCTCATGGAGTACCTGCCTGAGATGGCTC\n") - FaFile.write("ATGGAGTACCTGCCT\n") - FaFile.write(">consensus2\n") - FaFile.write("GAGATGGCTCATGGAGTACCGCGAGATGGCTCATGGAGTACCGCGAGATGGCTCATGGAG\n") - FaFile.write("TACCGCGAGATGGCTCATGGAGTACCGC\n") - FaFile.close() - - obsBioseqDB = BioseqDB() - obsBioseqDB.load( FaFileName ) - - self.assertEquals( expBioseqDB, obsBioseqDB ) - os.remove( FaFileName ) - - - def test_reverse( self ): - iBioseq1 = Bioseq( "seq1", "ATTG" ) - iBioseq2 = Bioseq( "seq2", "CGAAT" ) - expBioseqDB = BioseqDB() - expBioseqDB.setData( [ iBioseq1, iBioseq2 ] ) - - iBioseq3 = Bioseq( "seq1", "GTTA" ) - iBioseq4 = Bioseq( "seq2", "TAAGC" ) - obsBioseqDB = BioseqDB() - obsBioseqDB.setData( [ iBioseq3, iBioseq4 ] ) - obsBioseqDB.reverse() - self.assertEquals( expBioseqDB, obsBioseqDB ) - - - def test_complement( self ): - iBioseq1 = Bioseq( "seq1", "ATTG" ) - iBioseq2 = Bioseq( "seq2", "CGAAT" ) - expBioseqDB = BioseqDB() - expBioseqDB.setData( [ iBioseq1, iBioseq2 ] ) - - iBioseq3 = Bioseq( "seq1", "TAAC" ) - iBioseq4 = Bioseq( "seq2", "GCTTA" ) - obsBioseqDB = BioseqDB() - obsBioseqDB.setData( [ iBioseq3, iBioseq4 ] ) - - obsBioseqDB.complement() - self.assertEquals( expBioseqDB, obsBioseqDB ) - - - def test_reverseComplement( self ): - iBioseq1 = Bioseq( "seq1", "ATTG" ) - iBioseq2 = Bioseq( "seq2", "CGAAT" ) - expBioseqDB = BioseqDB() - expBioseqDB.setData( [ iBioseq1, iBioseq2 ] ) - - iBioseq3 = Bioseq( "seq1", "CAAT" ) - iBioseq4 = Bioseq( "seq2", "ATTCG" ) - obsBioseqDB = BioseqDB() - obsBioseqDB.setData( [ iBioseq3, iBioseq4 ] ) - - obsBioseqDB.reverseComplement() - self.assertEquals( expBioseqDB, obsBioseqDB ) - - - def test_setData(self): - iBioseq1 = Bioseq( "seq1", "ATTG" ) - iBioseq2 = Bioseq( "seq2", "CGAAT" ) - iBioseq3 = Bioseq( "seq3", "CAAT" ) - iBioseq4 = Bioseq( "seq4", "ATTCG" ) - - lBioseq = [iBioseq1, iBioseq2, iBioseq3, iBioseq4] - expBioseqDB = BioseqDB() - expBioseqDB.db = lBioseq - - iBioseq5 = Bioseq( "seq1", "ATTG" ) - iBioseq6 = Bioseq( "seq2", "CGAAT" ) - iBioseq7 = Bioseq( "seq3", "CAAT" ) - iBioseq8 = Bioseq( "seq4", "ATTCG" ) - - lBioseq2 = [iBioseq5, iBioseq6, iBioseq7, iBioseq8] - obsBioseqDB = BioseqDB() - obsBioseqDB.setData(lBioseq2) - - self.assertEquals(expBioseqDB, obsBioseqDB) - - - def test_reset( self ): - iBioseq1 = Bioseq( "seq1", "ATTG" ) - iBioseq2 = Bioseq( "seq2", "CGAAT" ) - iBioseq3 = Bioseq( "seq3", "CAAT" ) - iBioseq4 = Bioseq( "seq4", "ATTCG" ) - - lBioseq = [iBioseq1, iBioseq2, iBioseq3, iBioseq4] - obsBioseqDB = BioseqDB() - obsBioseqDB.setData(lBioseq) - obsBioseqDB.reset() - - expBioseqDB = BioseqDB() - - self.assertEquals(expBioseqDB, obsBioseqDB) - - - def testCleanGap(self): - iBioseq1 = Bioseq( "seq1", "ATTG" ) - iBioseq2 = Bioseq( "seq2", "CGAAT" ) - expBioseqDB = BioseqDB() - expBioseqDB.setData([iBioseq1, iBioseq2]) - - iBioseq3 = Bioseq( "seq1", "AT-----TG" ) - iBioseq4 = Bioseq( "seq2", "CGAA----T" ) - - obsBioseqDB = BioseqDB() - obsBioseqDB.setData( [ iBioseq3, iBioseq4 ] ) - obsBioseqDB.cleanGap() - - self.assertEquals(expBioseqDB, obsBioseqDB) - - - def testCleanGap_on_empty_db(self): - expBioseqDB = BioseqDB() - - obsBioseqDB = BioseqDB() - obsBioseqDB.cleanGap() - - self.assertEquals(expBioseqDB, obsBioseqDB) - - - def testCleanGap_on_size_one_db(self): - iBioseq1 = Bioseq( "seq1", "ATTG" ) - expBioseqDB = BioseqDB() - expBioseqDB.setData([iBioseq1]) - - iBioseq2 = Bioseq( "seq1", "AT-----TG" ) - obsBioseqDB = BioseqDB() - obsBioseqDB.setData([iBioseq2]) - - obsBioseqDB.cleanGap() - - self.assertEquals(expBioseqDB, obsBioseqDB) - - - def test_add_to_a_empty_bioseqDB_instance (self): - sHeader = "embl::AF332402:AF332402 Arabidopsis thaliana clone C00024 (f)" - sHeader += "(At4g29080) mRNA, complete cds." - - expDictIdx = { sHeader : 0} - - sHeaderRenamed = "embl-AF332402-AF332402_Arabidopsis_thaliana_clone_C00024_(f)" - sHeaderRenamed += "(At4g29080)_mRNA-_complete_cds." - expDictIdxRenamed = {sHeaderRenamed : 0} - - iBioseq1 = Bioseq( sHeader, "ATTG" ) - obsBioseqDB = BioseqDB() - obsBioseqDB.add(iBioseq1) - - obsDictIdx = obsBioseqDB.idx - obsDictIdxRenamed = obsBioseqDB.idx_renamed - - self.assertEquals(expDictIdx,obsDictIdx) - self.assertEquals(expDictIdxRenamed,obsDictIdxRenamed) - - - def test_add_to_a_size_one_bioseqDB_instance (self): - sHeader1 = "embl::AF332402:AF332402 Arabidopsis thaliana clone C00024 (f)" - sHeader1 += "(At4g29080) mRNA, complete cds." - - sHeader2 = "embl::AF332503:AF332402 Arabidopsis thaliana clone C00024 (f)" - sHeader2 += "(At4g29080) mRNA, complete cds." - - expDictIdx = { sHeader1 : 0, sHeader2 : 1} - - sHeaderRenamed1 = "embl-AF332402-AF332402_Arabidopsis_thaliana_clone_C00024_(f)" - sHeaderRenamed1 += "(At4g29080)_mRNA-_complete_cds." - - sHeaderRenamed2 = "embl-AF332503-AF332402_Arabidopsis_thaliana_clone_C00024_(f)" - sHeaderRenamed2 += "(At4g29080)_mRNA-_complete_cds." - - expDictIdxRenamed = {sHeaderRenamed1 : 0, sHeaderRenamed2 : 1} - - iBioseq1 = Bioseq( sHeader1, "ATTG" ) - iBioseq2 = Bioseq( sHeader2, "ATTG" ) - - obsBioseqDB = BioseqDB() - obsBioseqDB.setData([ iBioseq1]) - obsBioseqDB.add(iBioseq2) - - obsDictIdx = obsBioseqDB.idx - obsDictIdxRenamed = obsBioseqDB.idx_renamed - - self.assertEquals(expDictIdx,obsDictIdx) - self.assertEquals(expDictIdxRenamed,obsDictIdxRenamed) - - - def test_add_to_a_size_two_bioseqDB_instance (self): - sHeader1 = "embl::AF332402:AF332402 Arabidopsis thaliana clone C00024 (f)" - sHeader1 += "(At4g29080) mRNA, complete cds." - - sHeader2 = "embl::AF332503:AF332402 Arabidopsis thaliana clone C00024 (f)" - sHeader2 += "(At4g29080) mRNA, complete cds." - - sHeader3 = "embl::AF332604:AF332402 Arabidopsis thaliana clone C00024 (f)" - sHeader3 += "(At4g29080) mRNA, complete cds." - expDictIdx = { sHeader1 : 0, sHeader2 : 1, sHeader3 : 2} - - sHeaderRenamed1 = "embl-AF332402-AF332402_Arabidopsis_thaliana_clone_C00024_(f)" - sHeaderRenamed1 += "(At4g29080)_mRNA-_complete_cds." - - sHeaderRenamed2 = "embl-AF332503-AF332402_Arabidopsis_thaliana_clone_C00024_(f)" - sHeaderRenamed2 += "(At4g29080)_mRNA-_complete_cds." - - sHeaderRenamed3 = "embl-AF332604-AF332402_Arabidopsis_thaliana_clone_C00024_(f)" - sHeaderRenamed3 += "(At4g29080)_mRNA-_complete_cds." - expDictIdxRenamed = {sHeaderRenamed1 : 0, sHeaderRenamed2 : 1, sHeaderRenamed3 :2} - - iBioseq1 = Bioseq( sHeader1, "ATTG" ) - iBioseq2 = Bioseq( sHeader2, "ATTG" ) - iBioseq3 = Bioseq( sHeader3, "ATTG" ) - - obsBioseqDB = BioseqDB() - obsBioseqDB.setData([ iBioseq1, iBioseq2 ]) - obsBioseqDB.add(iBioseq3) - - obsDictIdx = obsBioseqDB.idx - obsDictIdxRenamed = obsBioseqDB.idx_renamed - - self.assertEquals(expDictIdx,obsDictIdx) - self.assertEquals(expDictIdxRenamed,obsDictIdxRenamed) - - - def test__getitem__(self): - iBioseq1 = Bioseq("seq1","ATTG") - iBioseq2 = Bioseq("seq2","CGAAT") - iBioseqDB = BioseqDB() - iBioseqDB.setData( [ iBioseq1, iBioseq2 ] ) - expBioseq = Bioseq("seq2","CGAAT") - obsBioseq = iBioseqDB[1] - - self.assertEquals(expBioseq, obsBioseq) - - - def test_getSize(self): - expSize = 4 - - iBioseq1 = Bioseq( "seq1", "ATTG" ) - iBioseq2 = Bioseq( "seq2", "CGAAT" ) - iBioseq3 = Bioseq( "seq3", "AT-----TG" ) - iBioseq4 = Bioseq( "seq4", "CGAA----T" ) - - obsBioseqDB = BioseqDB() - obsBioseqDB.setData( [iBioseq1, iBioseq2 , iBioseq3, iBioseq4 ] ) - obsSize = obsBioseqDB.getSize() - - self.assertEquals(expSize,obsSize) - - - def test_getSize_emptyDB(self): - expSize = 0 - - obsBioseqDB = BioseqDB() - obsSize = obsBioseqDB.getSize() - - self.assertEquals(expSize,obsSize) - - - def test_getLength(self): - iBioseq1 = Bioseq("consensus1","GAGATGGCTCATGGAGTACCTGCCTGAGATGGCTCATGGAGTACCTGCCTGAGATGGCTCATGGAGTACCTGCCT") - iBioseq2 = Bioseq("consensus2","GAGATGGCTCATGGAGTACCGCGAGATGGCTCATGGAGTACCGCGAGATGGCTCATGGAGTACCGCGAGATGGCTCATGGAGTACCGC") - iBioseqDB = BioseqDB() - iBioseqDB.setData( [ iBioseq1, iBioseq2 ] ) - - expLength = 163 - obsLength = iBioseqDB.getLength() - - self.assertEquals( expLength, obsLength) - - def test_getListOfSequencesLength(self): - iBioseq1 = Bioseq("consensus1","GAGATGGCTCATGGAGTACCTGCCTGAGATGGCTCATGGAGTACCTGCCTGAGATGGCTCATGGAGTACCTGCCT") - iBioseq2 = Bioseq("consensus2","GAGATGGCTCATGGAGTACCGCGAGATGGCTCATGGAGTACCGCGAGATGGCTCATGGAGTACCGCGAGATGGCTCATGGAGTACCGC") - iBioseqDB = BioseqDB() - iBioseqDB.setData( [ iBioseq1, iBioseq2 ] ) - lLength = iBioseqDB.getListOfSequencesLength() - - expLLengh = [75, 88] - self.assertEquals( expLLengh, lLength ) - - - def test_getHeaderList( self ): - lExpHeader = ["seq1", "seq2"] - - iBioseq1 = Bioseq( "seq1", "ATTG" ) - iBioseq2 = Bioseq( "seq2", "CGAAT" ) - - obsBioseqDB = BioseqDB() - obsBioseqDB.setData( [ iBioseq1, iBioseq2 ] ) - - lObsHeader = obsBioseqDB.getHeaderList() - - self.assertEquals( lExpHeader, lObsHeader ) - - - def test_getSequencesList( self ): - lExpSeqs = ["ATGC", "AATTCCGG"] - - iBioseq1 = Bioseq("seq1", "ATGC") - iBioseq2 = Bioseq("seq2", "AATTCCGG") - - obsBioseqDB = BioseqDB() - obsBioseqDB.setData([iBioseq1, iBioseq2]) - - lObsSeqs = obsBioseqDB.getSequencesList() - - self.assertEquals(lExpSeqs, lObsSeqs) - - - def test_fetch( self ): - ibioseq1 = Bioseq( "seq1", "ATTG" ) - ibioseq2 = Bioseq( "seq2", "CGAAT" ) - iBioseqDB = BioseqDB() - iBioseqDB.setData( [ ibioseq1, ibioseq2 ] ) - expBioseq = ibioseq1 - obsBioseq = iBioseqDB.fetch( "seq1" ) - self.assertEquals( expBioseq, obsBioseq ) - - - def test_getBioseqByRenamedHeader( self ): - Header1 = "embl::AF332402:AF332402 Arabidopsis thaliana clone C00024 (f)" - Header1 += "(At4g29080) mRNA, complete cds." - - Header2 = "embl::AF332503:AF332402 Arabidopsis thaliana clone C00024 (f)" - Header2 += "(At4g29080) mRNA, complete cds." - - Header3 = "embl::AF332604:AF332402 Arabidopsis thaliana clone C00024 (f)" - Header3 += "(At4g29080) mRNA, complete cds." - - HeaderRenamed2 = "embl-AF332503-AF332402_Arabidopsis_thaliana_clone_C00024_(f)" - HeaderRenamed2 += "(At4g29080)_mRNA-_complete_cds." - - ibioseq1 = Bioseq( Header1, "ATTG" ) - ibioseq2 = Bioseq( Header2, "CGAAT" ) - ibioseq3 = Bioseq( Header3, "TGCGAAT" ) - iBioseqDB = BioseqDB() - iBioseqDB.setData( [ ibioseq1, ibioseq2, ibioseq3 ] ) - expBioseq = ibioseq2 - - obsBioseq = iBioseqDB.getBioseqByRenamedHeader( HeaderRenamed2 ) - - self.assertEquals( expBioseq, obsBioseq ) - - - def test_init_with_the_parm_name( self ): - iBioseq1 = Bioseq("seq1","ATTG") - iBioseq2 = Bioseq("seq2","CGAAT") - expBioseqDB = BioseqDB() - expBioseqDB.setData( [ iBioseq1, iBioseq2 ] ) - fastaFilename = "dummyBioseqDB.fa" - f = open(fastaFilename, "w") - f.write(">seq1\n") - f.write("ATTG\n") - f.write(">seq2\n") - f.write("CGAAT\n") - f.close() - - obsBioseqDB = BioseqDB(fastaFilename) - os.remove(fastaFilename) - self.assertEquals( expBioseqDB, obsBioseqDB ) - - - def test_countNt(self): - iBioseq1 = Bioseq() - iBioseq1.header = "seq1 description1" - iBioseq1.sequence = "GCGNCGCTGCTTTATTAAGCGCTAGCATGCGNCGCTGCTTTATTAAGCGCTAGCGATTATATAGCAGACGCATATTATATTGCGCGATGCGNCGCTGCTTTATTAAGCGCTAGCGATTATATAGCAGACGCATATTATATTGCGCG" - iBioseq2 = Bioseq() - iBioseq2.header = "seq2 description2" - iBioseq2.sequence = "GCGNCGCTGCTTTATTAAGCGCTAGCATGCGNCGCTGCTTTATTAAGCGCTAGCGATTATATAGCAGACGCATATTATATTGCGCGATGCGNCGCTGCTTTATTAAGCGCTAGCGATTATATAGCAGACGCATATTATATTGCGCG" - iBioseqDB = BioseqDB() - iBioseqDB.setData( [ iBioseq1, iBioseq2 ] ) - expCount = 6 - obsCount = iBioseqDB.countNt('N') - self.assertEquals(expCount, obsCount) - - def test_countNt_lowercase(self): - iBioseq1 = Bioseq() - iBioseq1.header = "seq1 description1" - iBioseq1.sequence = "gcgncgctgctttattaagcgctagcatgcgncgctgctttattaagcgctagcgattatatagcagacgcatattatattgcgcgatgcgncgctgctttattaagcgctagcgattatatagcagacgcatattatattgcgcg" - iBioseq2 = Bioseq() - iBioseq2.header = "seq2 description2" - iBioseq2.sequence = "gcgncgctgctttattaagcgctagcatgcgncgctgctttattaagcgctagcgattatatagcagacgcatattatattgcgcgatgcgncgctgctttattaagcgctagcgattatatagcagacgcatattatattgcgcg" - iBioseqDB = BioseqDB() - iBioseqDB.setData( [ iBioseq1, iBioseq2 ] ) - expCount = 0 - obsCount = iBioseqDB.countNt('N') - self.assertEquals(expCount, obsCount) - - - def test_countNt_withCharacterNotExisting(self): - iBioseq1 = Bioseq() - iBioseq1.header = "seq1 description1" - iBioseq1.sequence = "GCGNCGCTGCTTTATTAAGCGCTAGCATGCGNCGCTGCTTTATTAAGCGCTAGCGATTATATAGCAGACGCATATTATATTGCGCGATGCGNCGCTGCTTTATTAAGCGCTAGCGATTATATAGCAGACGCATATTATATTGCGCG" - iBioseq2 = Bioseq() - iBioseq2.header = "seq2 description2" - iBioseq2.sequence = "GCGNCGCTGCTTTATTAAGCGCTAGCATGCGNCGCTGCTTTATTAAGCGCTAGCGATTATATAGCAGACGCATATTATATTGCGCGATGCGNCGCTGCTTTATTAAGCGCTAGCGATTATATAGCAGACGCATATTATATTGCGCG" - iBioseqDB = BioseqDB() - iBioseqDB.setData( [ iBioseq1, iBioseq2 ] ) - expCount = 0 - obsCount = iBioseqDB.countNt('W') - self.assertEquals(expCount, obsCount) - - - def test_countAllNt(self): - iBioseq1 = Bioseq() - iBioseq1.header = "seq1 description1" - iBioseq1.sequence = "GCGNCGCTGCTTTATTAAGCGCTAGCATGCGNCGCTGCTTTATTAAGCGCTAGCGATTATATAGCAGACGCATATTATATTGCGCGATGCGNCGCTGCTTTATTAAGCGCTAGCGATTATATAGCAGACGCATATTATATTGCGCG" - iBioseq2 = Bioseq() - iBioseq2.header = "seq2 description2" - iBioseq2.sequence = "GCGNCGCTGCTTTATTAAGCGCTAGCATGCGNCGCTGCTTTATTAAGCGCTAGCGATTATATAGCAGACGCATATTATATTGCGCGATGCGNCGCTGCTTTATTAAGCGCTAGCGATTATATAGCAGACGCATATTATATTGCGCG" - iBioseqDB = BioseqDB() - iBioseqDB.setData( [ iBioseq1, iBioseq2 ] ) - - dExpCount = {'A': 68, 'C': 62, 'T': 86, 'G': 70, 'N': 6} - - dObsCount = iBioseqDB.countAllNt() - self.assertEquals(dExpCount, dObsCount) - - - def test_extractPart(self): - iBioseq1 = Bioseq("consensus1","GAGATGGCTCATGGAGTACCTGCCTGAGATGGCTCATGGAGTACCTGCCTGAGATGGCTCATGGAGTACCTGCCT") - iBioseq2 = Bioseq("consensus2","GAGATGGCTCATGGAGTACCGCGAGACCGCGAGATGGCTCATGGAGTACCGCGAGATGGCTCATGGAGTACCGC") - iBioseq3 = Bioseq("consensus3","GAGATGGCTCATGGAGTACCTGCCTTGCATGACTGCATGGAGTACCTGCCTGAGATGGCTCATGGAGTACCTGCCT") - iBioseq4 = Bioseq("consensus4","GAGATGGCTCATGGAGTACCGCGAGTGCGGTACCTATGGCCCTCATGGAGTACCGCGAGATGGCTCATGGAGTACCGCGAGATGGCTCATGGAGTACCGC") - - iBioseqDB = BioseqDB() - iBioseqDB.setData( [ iBioseq1, iBioseq2, iBioseq3, iBioseq4 ] ) - - iBioseq5 = Bioseq("consensus2","GAGATGGCTCATGGAGTACCGCGAGACCGCGAGATGGCTCATGGAGTACCGCGAGATGGCTCATGGAGTACCGC") - iBioseq6 = Bioseq("consensus3","GAGATGGCTCATGGAGTACCTGCCTTGCATGACTGCATGGAGTACCTGCCTGAGATGGCTCATGGAGTACCTGCCT") - - expSubBioseqDB = BioseqDB() - expSubBioseqDB.setData( [ iBioseq5, iBioseq6 ] ) - - obsSubBioseqDB = iBioseqDB.extractPart (1, 2) - - self.assertEquals(expSubBioseqDB, obsSubBioseqDB) - - - def test_bestLength(self): - iBioseq1 = Bioseq("consensus1","GAGATGGCTCATGGAGTACCTGCCTGAGATGGCTCATGGAGTACC") - iBioseq2 = Bioseq("consensus2","GAGATGGCTCATGGAGTACCGCGAGACCGCGAGATGGCTCATGGAGTACCGCGAGATGGCTCATGGAGTACCGC") - iBioseq3 = Bioseq("consensus3","GAGATGGCTCATGGAGTACC") - iBioseq4 = Bioseq("consensus4","GAGATGGCTCATGGAGTACCGCGAGTGCGGTACCTATGGCCCTCATGGAGTACCGCGAGATGGCTCATGGAGTACCGCGAGATGGCTCATGGAGTACCGC") - iBioseq5 = Bioseq("consensus5","TGCCTGAGATGGCTCATGGAGTACCTGCCT") - iBioseq6 = Bioseq("consensus6","TGCCTTGCATGACTGCATGGAGTACCTGCCTG") - iBioseq7 = Bioseq("consensus7","TGCCTGATGGCTCATGGAGTACCTGCCT") - - iBioseqDB = BioseqDB() - iBioseqDB.setData( [ iBioseq1, iBioseq2, iBioseq3, iBioseq4, iBioseq5, iBioseq6 , iBioseq7] ) - - iBioseq8 = Bioseq("consensus1","GAGATGGCTCATGGAGTACCTGCCTGAGATGGCTCATGGAGTACC") - iBioseq9 = Bioseq("consensus2","GAGATGGCTCATGGAGTACCGCGAGACCGCGAGATGGCTCATGGAGTACCGCGAGATGGCTCATGGAGTACCGC") - iBioseq10 = Bioseq("consensus4","GAGATGGCTCATGGAGTACCGCGAGTGCGGTACCTATGGCCCTCATGGAGTACCGCGAGATGGCTCATGGAGTACCGCGAGATGGCTCATGGAGTACCGC") - iBioseq11 = Bioseq("consensus6","TGCCTTGCATGACTGCATGGAGTACCTGCCTG") - expBioseqDB = BioseqDB() - expBioseqDB.setData( [ iBioseq8, iBioseq9, iBioseq10, iBioseq11] ) - - obsBioseqDB = iBioseqDB.bestLength (4) - - self.assertEquals(expBioseqDB, obsBioseqDB) - - - def test_bestLength_with_a_none_sequence_include(self): - iBioseq1 = Bioseq("consensus1", None) - iBioseq2 = Bioseq("consensus2","GAGATGGCTCATGGAGTACCGCGAGACCGCGAGATGGCTCATGGAGTACCGCGAGATGGCTCATGGAGTACCGC") - iBioseq3 = Bioseq("consensus3","GAGATGGCTCATGGAGTACC") - - iBioseqDB = BioseqDB() - iBioseqDB.setData( [ iBioseq1, iBioseq2, iBioseq3] ) - - iBioseq4 = Bioseq("consensus1", None) - iBioseq5 = Bioseq("consensus2","GAGATGGCTCATGGAGTACCGCGAGACCGCGAGATGGCTCATGGAGTACCGCGAGATGGCTCATGGAGTACCGC") - iBioseq6 = Bioseq("consensus3","GAGATGGCTCATGGAGTACC") - expBioseqDB = BioseqDB() - expBioseqDB.setData( [ iBioseq4, iBioseq5, iBioseq6] ) - - obsBioseqDB = iBioseqDB.bestLength (3) - - self.assertEquals(expBioseqDB, obsBioseqDB) - - - def test_bestLength_with_a_none_sequence_not_include(self): - iBioseq1 = Bioseq("consensus1", None) - iBioseq2 = Bioseq("consensus2","GAGATGGCTCATGGAGTACCGCGAGACCGCGAGATGGCTCATGGAGTACCGCGAGATGGCTCATGGAGTACCGC") - iBioseq3 = Bioseq("consensus3","GAGATGGCTCATGGAGTACC") - - iBioseqDB = BioseqDB() - iBioseqDB.setData( [ iBioseq1, iBioseq2, iBioseq3] ) - - iBioseq5 = Bioseq("consensus2","GAGATGGCTCATGGAGTACCGCGAGACCGCGAGATGGCTCATGGAGTACCGCGAGATGGCTCATGGAGTACCGC") - iBioseq6 = Bioseq("consensus3","GAGATGGCTCATGGAGTACC") - expBioseqDB = BioseqDB() - expBioseqDB.setData( [ iBioseq5, iBioseq6] ) - - obsBioseqDB = iBioseqDB.bestLength (2) - - self.assertEquals(expBioseqDB, obsBioseqDB) - - - def test_bestLength_number_of_bioseq_requiered_gt_BioseqDB_size(self): - iBioseq1 = Bioseq("consensus1","GAGATGGCTCATGGAGTACCTGCCTGAGATGGCTCATGGAGTACC") - iBioseq2 = Bioseq("consensus2","GAGATGGCTCATGGAGTACCGCGAGACCGCGAGATGGCTCATGGAGTACCGCGAGATGGCTCATGGAGTACCGC") - iBioseq3 = Bioseq("consensus3","GAGATGGCTCATGGAGTACC") - - iBioseqDB = BioseqDB() - iBioseqDB.setData( [ iBioseq1, iBioseq2, iBioseq3] ) - - iBioseq4 = Bioseq("consensus1","GAGATGGCTCATGGAGTACCTGCCTGAGATGGCTCATGGAGTACC") - iBioseq5 = Bioseq("consensus2","GAGATGGCTCATGGAGTACCGCGAGACCGCGAGATGGCTCATGGAGTACCGCGAGATGGCTCATGGAGTACCGC") - iBioseq6 = Bioseq("consensus3","GAGATGGCTCATGGAGTACC") - expBioseqDB = BioseqDB() - expBioseqDB.setData( [ iBioseq4, iBioseq5, iBioseq6] ) - - obsBioseqDB = iBioseqDB.bestLength (15) - - self.assertEquals(expBioseqDB, obsBioseqDB) - - - def test_extractPatternOfFile(self): - fastaFilename = "dummyBioseqDB.fa" - f = open(fastaFilename, "w") - f.write(">consensus1\nGAGATGGCTCATGGAGTACCTGCCTGAGATGGCTCATGGAGTACC\n") - f.write(">consensus2\nGAGATGGCTCATGGAGTACCGCGAGACCGCGAGATGGCTCATGGAGTACCGCGAGATGGCTCATGGAGTACCGC\n") - f.write(">consensus3\nGAGATGGCTCATGGAGTACC\n") - f.write(">consensus4\nGAGATGGCTCATGGAGTACCGCGAGTGCGGTACCTATGGCCCTCATGGAGTACCGCGAGATGGCTCATGGAGTACCGCGAGATGGCTCATGGAGTACCGC\n") - f.write(">consensus11\nTGCCTGAGATGGCTCATGGAGTACCTGCCTTGCCTTGCATGACTGCATGGAGTACCTGCCTGTGCCTGATGGCTCATGGAGTACCTGCCT\n") - f.close() - - iBioseq1 = Bioseq("consensus1","GAGATGGCTCATGGAGTACCTGCCTGAGATGGCTCATGGAGTACC") - iBioseq2 = Bioseq("consensus11","TGCCTGAGATGGCTCATGGAGTACCTGCCTTGCCTTGCATGACTGCATGGAGTACCTGCCTGTGCCTGATGGCTCATGGAGTACCTGCCT") - expBioseqDB = BioseqDB() - expBioseqDB.setData( [ iBioseq1, iBioseq2] ) - - obsBioseqDB = BioseqDB() - obsBioseqDB.extractPatternOfFile("consensus1+" , fastaFilename) - os.remove(fastaFilename) - self.assertEquals(expBioseqDB, obsBioseqDB) - - - def test_extractPatternOfFile_WithNoExistingPattern(self): - fastaFilename = "dummyBioseqDB.fa" - f = open(fastaFilename, "w") - f.write(">consensus1\nGAGATGGCTCATGGAGTACCTGCCTGAGATGGCTCATGGAGTACC\n") - f.write(">consensus2\nGAGATGGCTCATGGAGTACCGCGAGACCGCGAGATGGCTCATGGAGTACCGCGAGATGGCTCATGGAGTACCGC\n") - f.write(">consensus3\nGAGATGGCTCATGGAGTACC\n") - f.write(">consensus4\nGAGATGGCTCATGGAGTACCGCGAGTGCGGTACCTATGGCCCTCATGGAGTACCGCGAGATGGCTCATGGAGTACCGCGAGATGGCTCATGGAGTACCGC\n") - f.write(">consensus11\nTGCCTGAGATGGCTCATGGAGTACCTGCCTTGCCTTGCATGACTGCATGGAGTACCTGCCTGTGCCTGATGGCTCATGGAGTACCTGCCT\n") - f.close() - - expBioseqDB = BioseqDB() - - obsBioseqDB = BioseqDB() - obsBioseqDB.extractPatternOfFile("NoExistingPattern" , fastaFilename) - os.remove(fastaFilename) - self.assertEquals(expBioseqDB, obsBioseqDB) - - - def test_getByPattern (self): - iBioseq1 = Bioseq("consensus4","GAGATGGCTCATGGAGTACCGCGAGTGCGGTACCTATGGCCCTCATGGAGTACCGCGAGATGGCTCATGGAGTACCGCGAGATGGCTCATGGAGTACCGC") - iBioseq2 = Bioseq("consensus1","TGCCTGAGATGGCTCATGGAGTACCTGCCT") - iBioseq3 = Bioseq("consensus6","TGCCTTGCATGACTGCATGGAGTACCTGCCTG") - iBioseq4 = Bioseq("consensus11","TGCCTGATGGCTCATGGAGTACCTGCCT") - iBioseqDB = BioseqDB() - iBioseqDB.setData( [ iBioseq1, iBioseq2, iBioseq3, iBioseq4] ) - - iBioseq5 = Bioseq("consensus1","TGCCTGAGATGGCTCATGGAGTACCTGCCT") - iBioseq6 = Bioseq("consensus11","TGCCTGATGGCTCATGGAGTACCTGCCT") - expBioseqDB = BioseqDB() - expBioseqDB.setData( [ iBioseq5, iBioseq6] ) - - obsBioseqDB = iBioseqDB.getByPattern("consensus1+") - self.assertEquals(expBioseqDB, obsBioseqDB) - - - def test_getByPattern_with_no_existing_pattern (self): - iBioseq1 = Bioseq("consensus4","GAGATGGCTCATGGAGTACCGCGAGTGCGGTACCTATGGCCCTCATGGAGTACCGCGAGATGGCTCATGGAGTACCGCGAGATGGCTCATGGAGTACCGC") - iBioseq2 = Bioseq("consensus1","TGCCTGAGATGGCTCATGGAGTACCTGCCT") - iBioseq3 = Bioseq("consensus6","TGCCTTGCATGACTGCATGGAGTACCTGCCTG") - iBioseq4 = Bioseq("consensus11","TGCCTGATGGCTCATGGAGTACCTGCCT") - iBioseqDB = BioseqDB() - iBioseqDB.setData( [ iBioseq1, iBioseq2, iBioseq3, iBioseq4] ) - - expBioseqDB = BioseqDB() - - obsBioseqDB = iBioseqDB.getByPattern("noExistingPattern+") - self.assertEquals(expBioseqDB, obsBioseqDB) - - - def test_getDiffFromPattern (self): - iBioseq1 = Bioseq("consensus4","GAGATGGCTCATGGAGTACCGCGAGTGCGGTACCTATGGCCCTCATGGAGTACCGCGAGATGGCTCATGGAGTACCGCGAGATGGCTCATGGAGTACCGC") - iBioseq2 = Bioseq("consensus1","TGCCTGAGATGGCTCATGGAGTACCTGCCT") - iBioseq3 = Bioseq("consensus6","TGCCTTGCATGACTGCATGGAGTACCTGCCTG") - iBioseq4 = Bioseq("consensus11","TGCCTGATGGCTCATGGAGTACCTGCCT") - iBioseqDB = BioseqDB() - iBioseqDB.setData( [ iBioseq1, iBioseq2, iBioseq3, iBioseq4] ) - - iBioseq5 = Bioseq("consensus1","TGCCTGAGATGGCTCATGGAGTACCTGCCT") - iBioseq6 = Bioseq("consensus11","TGCCTGATGGCTCATGGAGTACCTGCCT") - expBioseqDB = BioseqDB() - expBioseqDB.setData( [ iBioseq5, iBioseq6] ) - - obsBioseqDB = iBioseqDB.getDiffFromPattern("consensus[4|6]") - - self.assertEquals(expBioseqDB, obsBioseqDB) - - - def test_getDiffFromPattern_with_no_existing_pattern (self): - iBioseq1 = Bioseq("consensus4","GAGATGGCTCATGGAGTACCGCGAGTGCGGTACCTATGGCCCTCATGGAGTACCGCGAGATGGCTCATGGAGTACCGCGAGATGGCTCATGGAGTACCGC") - iBioseq2 = Bioseq("consensus1","TGCCTGAGATGGCTCATGGAGTACCTGCCT") - iBioseq3 = Bioseq("consensus6","TGCCTTGCATGACTGCATGGAGTACCTGCCTG") - iBioseq4 = Bioseq("consensus11","TGCCTGATGGCTCATGGAGTACCTGCCT") - iBioseqDB = BioseqDB() - iBioseqDB.setData( [ iBioseq1, iBioseq2, iBioseq3, iBioseq4] ) - - iBioseq5 = Bioseq("consensus4","GAGATGGCTCATGGAGTACCGCGAGTGCGGTACCTATGGCCCTCATGGAGTACCGCGAGATGGCTCATGGAGTACCGCGAGATGGCTCATGGAGTACCGC") - iBioseq6 = Bioseq("consensus1","TGCCTGAGATGGCTCATGGAGTACCTGCCT") - iBioseq7 = Bioseq("consensus6","TGCCTTGCATGACTGCATGGAGTACCTGCCTG") - iBioseq8 = Bioseq("consensus11","TGCCTGATGGCTCATGGAGTACCTGCCT") - expBioseqDB = BioseqDB() - expBioseqDB.setData( [ iBioseq5, iBioseq6, iBioseq7, iBioseq8] ) - - obsBioseqDB = iBioseqDB.getDiffFromPattern("noExistingPattern+") - self.assertEquals(expBioseqDB, obsBioseqDB) - - - def test_rmByPattern (self): - iBioseq1 = Bioseq("consensus4","GAGATGGCTCATGGAGTACCGCGAGTGCGGTACCTATGGCCCTCATGGAGTACCGCGAGATGGCTCATGGAGTACCGCGAGATGGCTCATGGAGTACCGC") - iBioseq2 = Bioseq("consensus1","TGCCTGAGATGGCTCATGGAGTACCTGCCT") - iBioseq3 = Bioseq("consensus6","TGCCTTGCATGACTGCATGGAGTACCTGCCTG") - iBioseq4 = Bioseq("consensus11","TGCCTGATGGCTCATGGAGTACCTGCCT") - obsBioseqDB = BioseqDB() - obsBioseqDB.setData( [ iBioseq1, iBioseq2, iBioseq3, iBioseq4] ) - - iBioseq5 = Bioseq("consensus4","GAGATGGCTCATGGAGTACCGCGAGTGCGGTACCTATGGCCCTCATGGAGTACCGCGAGATGGCTCATGGAGTACCGCGAGATGGCTCATGGAGTACCGC") - iBioseq6 = Bioseq("consensus6","TGCCTTGCATGACTGCATGGAGTACCTGCCTG") - expBioseqDB = BioseqDB() - expBioseqDB.setData( [ iBioseq5, iBioseq6 ] ) - - obsBioseqDB.rmByPattern("consensus1+") - self.assertEquals(expBioseqDB, obsBioseqDB) - - - def test_rmByPattern_with_no_existing_pattern (self): - iBioseq1 = Bioseq("consensus4","GAGATGGCTCATGGAGTACCGCGAGTGCGGTACCTATGGCCCTCATGGAGTACCGCGAGATGGCTCATGGAGTACCGCGAGATGGCTCATGGAGTACCGC") - iBioseq2 = Bioseq("consensus1","TGCCTGAGATGGCTCATGGAGTACCTGCCT") - iBioseq3 = Bioseq("consensus6","TGCCTTGCATGACTGCATGGAGTACCTGCCTG") - iBioseq4 = Bioseq("consensus11","TGCCTGATGGCTCATGGAGTACCTGCCT") - obsBioseqDB = BioseqDB() - obsBioseqDB.setData( [ iBioseq1, iBioseq2, iBioseq3, iBioseq4] ) - - iBioseq5 = Bioseq("consensus4","GAGATGGCTCATGGAGTACCGCGAGTGCGGTACCTATGGCCCTCATGGAGTACCGCGAGATGGCTCATGGAGTACCGCGAGATGGCTCATGGAGTACCGC") - iBioseq6 = Bioseq("consensus1","TGCCTGAGATGGCTCATGGAGTACCTGCCT") - iBioseq7 = Bioseq("consensus6","TGCCTTGCATGACTGCATGGAGTACCTGCCTG") - iBioseq8 = Bioseq("consensus11","TGCCTGATGGCTCATGGAGTACCTGCCT") - expBioseqDB = BioseqDB() - expBioseqDB.setData( [ iBioseq5, iBioseq6, iBioseq7, iBioseq8 ] ) - obsBioseqDB.rmByPattern("noExistingPattern+") - self.assertEquals(expBioseqDB, obsBioseqDB) - - - def test_addBioseqFromABioseqDBIfHeaderContainPattern (self): - iBioseq1 = Bioseq("consensus4","GAGATGGCTCATGGAGTACCGCGAGTGCGGTACCTATGGCCCTCATGGAGTACCGCGAGATGGCTCATGGAGTACCGCGAGATGGCTCATGGAGTACCGC") - iBioseq2 = Bioseq("consensus1","TGCCTGAGATGGCTCATGGAGTACCTGCCT") - iBioseq3 = Bioseq("consensus7","TGCCTTGCATGACTGCATGGAGTACCTGCCTG") - iBioseq4 = Bioseq("consensus11","TGCCTGATGGCTCATGGAGTACCTGCCT") - obsBioseqDB = BioseqDB() - obsBioseqDB.setData( [ iBioseq1, iBioseq2, iBioseq3, iBioseq4] ) - - iBioseq5 = Bioseq("Sequence4","GAGATGGCTCATGGAGTACCGCGAGTGCGGTACCTATGGCCCTCATGGAGTACCGCGAGATGGCTCATGGAGTACCGCGAGATGGCTCATGGAGTACCGC") - iBioseq6 = Bioseq("consensus6","TGCCTTGCATGACTGCATGGAGTACCTGCCTG") - inBioseqDB = BioseqDB() - inBioseqDB.setData( [ iBioseq5, iBioseq6 ]) - - iBioseq7 = Bioseq("consensus4","GAGATGGCTCATGGAGTACCGCGAGTGCGGTACCTATGGCCCTCATGGAGTACCGCGAGATGGCTCATGGAGTACCGCGAGATGGCTCATGGAGTACCGC") - iBioseq8 = Bioseq("consensus1","TGCCTGAGATGGCTCATGGAGTACCTGCCT") - iBioseq9 = Bioseq("consensus7","TGCCTTGCATGACTGCATGGAGTACCTGCCTG") - iBioseq10 = Bioseq("consensus11","TGCCTGATGGCTCATGGAGTACCTGCCT") - iBioseq11 = Bioseq("consensus6","TGCCTTGCATGACTGCATGGAGTACCTGCCTG") - - expBioseqDB = BioseqDB() - expBioseqDB.setData( [ iBioseq7, iBioseq8, iBioseq9, iBioseq10, iBioseq11] ) - - obsBioseqDB.addBioseqFromABioseqDBIfHeaderContainPattern("consensus.*", inBioseqDB) - self.assertEquals(expBioseqDB, obsBioseqDB) - - - def test_addBioseqFromABioseqDBIfHeaderContainPattern_with_no_existing_pattern (self): - iBioseq1 = Bioseq("consensus4","GAGATGGCTCATGGAGTACCGCGAGTGCGGTACCTATGGCCCTCATGGAGTACCGCGAGATGGCTCATGGAGTACCGCGAGATGGCTCATGGAGTACCGC") - iBioseq2 = Bioseq("consensus1","TGCCTGAGATGGCTCATGGAGTACCTGCCT") - iBioseq3 = Bioseq("consensus7","TGCCTTGCATGACTGCATGGAGTACCTGCCTG") - iBioseq4 = Bioseq("consensus11","TGCCTGATGGCTCATGGAGTACCTGCCT") - obsBioseqDB = BioseqDB() - obsBioseqDB.setData( [ iBioseq1, iBioseq2, iBioseq3, iBioseq4] ) - - iBioseq5 = Bioseq("Sequence4","GAGATGGCTCATGGAGTACCGCGAGTGCGGTACCTATGGCCCTCATGGAGTACCGCGAGATGGCTCATGGAGTACCGCGAGATGGCTCATGGAGTACCGC") - iBioseq6 = Bioseq("consensus6","TGCCTTGCATGACTGCATGGAGTACCTGCCTG") - inBioseqDB = BioseqDB() - inBioseqDB.setData( [ iBioseq5, iBioseq6 ]) - - iBioseq7 = Bioseq("consensus4","GAGATGGCTCATGGAGTACCGCGAGTGCGGTACCTATGGCCCTCATGGAGTACCGCGAGATGGCTCATGGAGTACCGCGAGATGGCTCATGGAGTACCGC") - iBioseq8 = Bioseq("consensus1","TGCCTGAGATGGCTCATGGAGTACCTGCCT") - iBioseq9 = Bioseq("consensus7","TGCCTTGCATGACTGCATGGAGTACCTGCCTG") - iBioseq10 = Bioseq("consensus11","TGCCTGATGGCTCATGGAGTACCTGCCT") - - expBioseqDB = BioseqDB() - expBioseqDB.setData( [ iBioseq7, iBioseq8, iBioseq9, iBioseq10] ) - - obsBioseqDB.addBioseqFromABioseqDBIfHeaderContainPattern("noExistingPattern", inBioseqDB) - self.assertEquals(expBioseqDB, obsBioseqDB) - - - def test_upCase (self): - iBioseq1 = Bioseq("consensus4","atgacGatgca") - iBioseq2 = Bioseq("consensus1","atgcgaT") - obsBioseqDB = BioseqDB() - obsBioseqDB.setData( [ iBioseq1, iBioseq2 ] ) - iBioseq3 = Bioseq("consensus4","ATGACGATGCA") - iBioseq4 = Bioseq("consensus1","ATGCGAT") - expBioseqDB = BioseqDB() - expBioseqDB.setData( [ iBioseq3, iBioseq4 ] ) - obsBioseqDB.upCase() - self.assertEquals(expBioseqDB, obsBioseqDB) - - - def test_getMap(self): - iBioseq1 = Bioseq("header1","ATGC-RA-GCT") - iBioseq2 = Bioseq("header2","-TGC-RA-GCT") - iBioseq3 = Bioseq("header3","ATGC-RA-GC-") - - iAlignedBioseqDB = BioseqDB() - iAlignedBioseqDB.setData([iBioseq1, iBioseq2, iBioseq3]) - - obsDict = iAlignedBioseqDB.getDictOfLMapsWithoutGaps() - - expLMap1 = [Map( "header1_subSeq1", "header1", 1, 4 ), Map( "header1_subSeq2", "header1", 6, 7 ), Map( "header1_subSeq3", "header1", 9, 11 )] - expLMap2 = [Map( "header2_subSeq1", "header2", 2, 4 ), Map( "header2_subSeq2", "header2", 6, 7 ), Map( "header2_subSeq3", "header2", 9, 11 )] - expLMap3 = [Map( "header3_subSeq1", "header3", 1, 4 ), Map( "header3_subSeq2", "header3", 6, 7 ), Map( "header3_subSeq3", "header3", 9, 10 )] - - expDict = { - "header1": expLMap1, - "header2": expLMap2, - "header3": expLMap3 - } - - self.assertEquals(expDict, obsDict) - - def test_getSeqLengthByListOfName(self): - iBioseq1 = Bioseq("header1","ATGC-RA-GCT") - iBioseq2 = Bioseq("header2","-TGC-RAR") - iBioseq3 = Bioseq("header3","ATGC") - - iBioseqDB = BioseqDB() - iBioseqDB.setData([iBioseq1, iBioseq2, iBioseq3]) - - expList = [11, 4] - obsList = iBioseqDB.getSeqLengthByListOfName(["header1", "header3"]) - - self.assertEquals( expList, obsList ) - -test_suite = unittest.TestSuite() -test_suite.addTest( unittest.makeSuite( Test_BioseqDB ) ) -if __name__ == "__main__": - unittest.TextTestRunner(verbosity=2).run( test_suite )
--- a/commons/core/seq/test/Test_BioseqUtils.py Mon Apr 29 03:26:07 2013 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,498 +0,0 @@ -# Copyright INRA (Institut National de la Recherche Agronomique) -# http://www.inra.fr -# http://urgi.versailles.inra.fr -# -# This software is governed by the CeCILL license under French law and -# abiding by the rules of distribution of free software. You can use, -# modify and/ or redistribute the software under the terms of the CeCILL -# license as circulated by CEA, CNRS and INRIA at the following URL -# "http://www.cecill.info". -# -# As a counterpart to the access to the source code and rights to copy, -# modify and redistribute granted by the license, users are provided only -# with a limited warranty and the software's author, the holder of the -# economic rights, and the successive licensors have only limited -# liability. -# -# In this respect, the user's attention is drawn to the risks associated -# with loading, using, modifying and/or developing or reproducing the -# software by the user in light of its specific status of free software, -# that may mean that it is complicated to manipulate, and that also -# therefore means that it is reserved for developers and experienced -# professionals having in-depth computer knowledge. Users are therefore -# encouraged to load and test the software's suitability as regards their -# requirements in conditions enabling the security of their systems and/or -# data to be ensured and, more generally, to use and operate it in the -# same conditions as regards security. -# -# The fact that you are presently reading this means that you have had -# knowledge of the CeCILL license and that you accept its terms. - - -import unittest -import os -from commons.core.seq.Bioseq import Bioseq -from commons.core.seq.BioseqUtils import BioseqUtils -from commons.core.utils.FileUtils import FileUtils - - -class Test_BioseqUtils( unittest.TestCase ): - - def test_translateSequence_one_nt( self ): - bioseq = Bioseq() - bioseq.sequence = "G" - BioseqUtils.translateSequence(bioseq, 1) - expSequence = "" - obsSequence = bioseq.sequence - self.assertEqual(expSequence, obsSequence) - - - def test_translateSequence_frame1( self ): - bioseq = Bioseq() - bioseq.sequence = "NGTGGCTTCTAGTTGATCAGTTTATGATCACAATGATTTCACGTAGGTGTCTCGTGGCTCCGACTAATCAACAATATAATGCGAGTAGAGCTTGA" - BioseqUtils.translateSequence(bioseq, 1) - expSequence = "XGF*LISL*SQ*FHVGVSWLRLINNIMRVEL" - obsSequence = bioseq.sequence - self.assertEqual(expSequence, obsSequence) - - - def test_translateSequence_frame2( self ): - bioseq = Bioseq() - bioseq.sequence = "NGTGGCTTCTAGTTGATCAGTTTATGATCACAATGATTTCACGTAGGTGTCTCGTGGCTCCGACTAATCAACAATATAATGCGAGTAGAGCTTGA" - BioseqUtils.translateSequence(bioseq, 2) - expSequence = "VASS*SVYDHNDFT*VSRGSD*STI*CE*SL" - obsSequence = bioseq.sequence - self.assertEqual(expSequence, obsSequence) - - - def test_translateSequence_frame3( self ): - bioseq = Bioseq() - bioseq.sequence = "NGTGGCTTCTAGTTGATCAGTTTATGATCACAATGATTTCACGTAGGTGTCTCGTGGCTCCGACTAATCAACAATATAATGCGAGTAGAGCTTGA" - BioseqUtils.translateSequence(bioseq, 3) - expSequence = "WLLVDQFMITMISRRCLVAPTNQQYNASRA*" - obsSequence = bioseq.sequence - self.assertEqual(expSequence, obsSequence) - - - def test_setFrameInfoOnHeader(self): - bioseq = Bioseq() - bioseq.header = "header1 description1 description2" - BioseqUtils.setFrameInfoOnHeader(bioseq,1) - expHeader = "header1_1 description1 description2" - obsHeader = bioseq.header - self.assertEquals(expHeader,obsHeader) - - - def test_setFrameInfoOnHeader_header_without_space(self): - bioseq = Bioseq() - bioseq.header = "header" - BioseqUtils.setFrameInfoOnHeader(bioseq,1) - expHeader = "header_1" - obsHeader = bioseq.header - self.assertEquals(expHeader, obsHeader) - - - def test_TranslateInAllFrame( self ): - bioseq = Bioseq() - bioseq.header = "header1" - bioseq.sequence = "TGTGGCTTCTAGTTGATCAGTTTATGATCACAATGATTTCACGTAGGTGTCTCGTGGCTCCGACTAATCAACAATATAATGCGAGTAGAGCTTGA" - - bioseq1 = Bioseq() - bioseq1.header = "header1_1" - bioseq1.sequence = "CGF*LISL*SQ*FHVGVSWLRLINNIMRVEL" - bioseq2 = Bioseq() - bioseq2.header = "header1_2" - bioseq2.sequence = "VASS*SVYDHNDFT*VSRGSD*STI*CE*SL" - bioseq3 = Bioseq() - bioseq3.header = "header1_3" - bioseq3.sequence = "WLLVDQFMITMISRRCLVAPTNQQYNASRA*" - bioseq4 = Bioseq() - bioseq4.header = "header1_4" - bioseq4.sequence = "SSSTRIILLISRSHETPT*NHCDHKLIN*KP" - bioseq5 = Bioseq() - bioseq5.header = "header1_5" - bioseq5.sequence = "QALLALYC*LVGATRHLREIIVIIN*STRSH" - bioseq6 = Bioseq() - bioseq6.header = "header1_6" - bioseq6.sequence = "KLYSHYIVD*SEPRDTYVKSL*S*TDQLEAT" - - expLBioseq = [bioseq1, bioseq2, bioseq3, bioseq4, bioseq5, bioseq6] - obsLBioseq = BioseqUtils.translateInAllFrame(bioseq) - - self.assertEquals(expLBioseq, obsLBioseq) - - - def test_replaceStopCodonsByX( self ): - bioseq = Bioseq() - bioseq.sequence = "VASS*SVYDHNDFT*VSRGSD*STI*CE*SL" - BioseqUtils.replaceStopCodonsByX(bioseq) - expSequence = "VASSXSVYDHNDFTXVSRGSDXSTIXCEXSL" - obsSequence = bioseq.sequence - self.assertEquals(expSequence, obsSequence) - - - def test_translateBioseqListInAllFrames_with_empty_list( self ): - lBioseq = [] - obsLBioseq = BioseqUtils.translateBioseqListInAllFrames( lBioseq ) - expLBioseq = [] - self.assertEquals( expLBioseq, obsLBioseq ) - - - def test_translateBioseqListInAllFrames_with_one_item( self ): - bioseq1 = Bioseq() - bioseq1.header = "header1 description" - bioseq1.sequence = "TGTGGCTTCTAGTTGATCAGTTTATGATCACAATGATTTCACGTAGGTGTCTCGTGGCTCCGACTAATCAACAATATAATGCGAGTAGAGCTTGA" - lBioseq = [bioseq1] - obsLBioseq = BioseqUtils.translateBioseqListInAllFrames( lBioseq ) - - expBioseq1 = Bioseq() - expBioseq1.header = "header1_1 description" - expBioseq1.sequence = "CGF*LISL*SQ*FHVGVSWLRLINNIMRVEL" - - expBioseq2 = Bioseq() - expBioseq2.header = "header1_2 description" - expBioseq2.sequence = "VASS*SVYDHNDFT*VSRGSD*STI*CE*SL" - - expBioseq3 = Bioseq() - expBioseq3.header = "header1_3 description" - expBioseq3.sequence = "WLLVDQFMITMISRRCLVAPTNQQYNASRA*" - - expBioseq4 = Bioseq() - expBioseq4.header = "header1_4 description" - expBioseq4.sequence = "SSSTRIILLISRSHETPT*NHCDHKLIN*KP" - - expBioseq5 = Bioseq() - expBioseq5.header = "header1_5 description" - expBioseq5.sequence = "QALLALYC*LVGATRHLREIIVIIN*STRSH" - - expBioseq6 = Bioseq() - expBioseq6.header = "header1_6 description" - expBioseq6.sequence = "KLYSHYIVD*SEPRDTYVKSL*S*TDQLEAT" - - expLBioseq = [expBioseq1, expBioseq2, expBioseq3, expBioseq4, expBioseq5, expBioseq6] - - self.assertEquals( expLBioseq, obsLBioseq ) - - - def test_translateBioseqListInAllFrames( self ): - bioseq1 = Bioseq() - bioseq1.header = "header1 description" - bioseq1.sequence = "TGTGGCTTCTAGTTGATCAGTTTATGATCACAATGATTTCACGTAGGTGTCTCGTGGCTCCGACTAATCAACAATATAATGCGAGTAGAGCTTGA" - bioseq2 = Bioseq() - bioseq2.header = "header2" - bioseq2.sequence = "TGTGGCTTCTAGTTGATCAGTTTATGATCACAATGATTTCACGTAGGTGTCTCGTGGCTACGACTAATCAACAATATAATGCGAGTAGAGCTTGA" - lBioseq = [bioseq1, bioseq2] - obsLBioseq = BioseqUtils.translateBioseqListInAllFrames( lBioseq ) - - expBioseq1 = Bioseq() - expBioseq1.header = "header1_1 description" - expBioseq1.sequence = "CGF*LISL*SQ*FHVGVSWLRLINNIMRVEL" - - expBioseq2 = Bioseq() - expBioseq2.header = "header1_2 description" - expBioseq2.sequence = "VASS*SVYDHNDFT*VSRGSD*STI*CE*SL" - - expBioseq3 = Bioseq() - expBioseq3.header = "header1_3 description" - expBioseq3.sequence = "WLLVDQFMITMISRRCLVAPTNQQYNASRA*" - - expBioseq4 = Bioseq() - expBioseq4.header = "header1_4 description" - expBioseq4.sequence = "SSSTRIILLISRSHETPT*NHCDHKLIN*KP" - - expBioseq5 = Bioseq() - expBioseq5.header = "header1_5 description" - expBioseq5.sequence = "QALLALYC*LVGATRHLREIIVIIN*STRSH" - - expBioseq6 = Bioseq() - expBioseq6.header = "header1_6 description" - expBioseq6.sequence = "KLYSHYIVD*SEPRDTYVKSL*S*TDQLEAT" - - expBioseq7 = Bioseq() - expBioseq7.header = "header2_1" - expBioseq7.sequence = "CGF*LISL*SQ*FHVGVSWLRLINNIMRVEL" - - expBioseq8 = Bioseq() - expBioseq8.header = "header2_2" - expBioseq8.sequence = "VASS*SVYDHNDFT*VSRGYD*STI*CE*SL" - - expBioseq9 = Bioseq() - expBioseq9.header = "header2_3" - expBioseq9.sequence = "WLLVDQFMITMISRRCLVATTNQQYNASRA*" - - expBioseq10 = Bioseq() - expBioseq10.header = "header2_4" - expBioseq10.sequence = "SSSTRIILLISRSHETPT*NHCDHKLIN*KP" - - expBioseq11 = Bioseq() - expBioseq11.header = "header2_5" - expBioseq11.sequence = "QALLALYC*LVVATRHLREIIVIIN*STRSH" - - expBioseq12 = Bioseq() - expBioseq12.header = "header2_6" - expBioseq12.sequence = "KLYSHYIVD*S*PRDTYVKSL*S*TDQLEAT" - - expLBioseq = [expBioseq1, expBioseq2, expBioseq3, expBioseq4, expBioseq5, expBioseq6, expBioseq7, expBioseq8, expBioseq9, expBioseq10, expBioseq11, expBioseq12] - self.assertEquals( expLBioseq, obsLBioseq ) - - - def test_replaceStopCodonsByXInBioseqList_empty_list( self ): - lBioseq = [] - obsLBioseq = BioseqUtils.replaceStopCodonsByXInBioseqList( lBioseq ) - expLBioseq = [] - self.assertEquals(obsLBioseq, expLBioseq) - - - def test_replaceStopCodonsByXInBioseqList_without_stop_codon( self ): - bioseq1 = Bioseq() - bioseq1.header = "header1 description" - bioseq1.sequence = "CGFLISLSQFHVGVSWLRLINNIMRVEL" - - lBioseq = [bioseq1] - - obsLBioseq = BioseqUtils.replaceStopCodonsByXInBioseqList( lBioseq ) - - bioseq2 = Bioseq() - bioseq2.header = "header1 description" - bioseq2.sequence = "CGFLISLSQFHVGVSWLRLINNIMRVEL" - - expLBioseq = [bioseq2] - - self.assertEquals(obsLBioseq, expLBioseq) - - - def test_replaceStopCodonsByXInBioseqList( self ): - bioseq1 = Bioseq() - bioseq1.header = "header1 description" - bioseq1.sequence = "CGF*LISL*SQ*FHVGVSWLRLINNIMRVEL" - - bioseq2 = Bioseq() - bioseq2.header = "header2" - bioseq2.sequence = "VASS*SVYDHNDFT*VSRGSD*STI*CE*SL" - - lBioseq = [bioseq1, bioseq2] - - obsLBioseq = BioseqUtils.replaceStopCodonsByXInBioseqList( lBioseq ) - - bioseq3 = Bioseq() - bioseq3.header = "header1 description" - bioseq3.sequence = "CGFXLISLXSQXFHVGVSWLRLINNIMRVEL" - - bioseq4 = Bioseq() - bioseq4.header = "header2" - bioseq4.sequence = "VASSXSVYDHNDFTXVSRGSDXSTIXCEXSL" - - expLBioseq = [bioseq3, bioseq4] - - self.assertEquals(obsLBioseq, expLBioseq) - - - def test_writeBioseqListIntoFastaFile(self): - obsFileName = "dummyWrittenFastaFile.fa" - - bioseq1 = Bioseq() - bioseq1.header = "header1 description" - bioseq1.sequence = "TGTGGCTTCTAGTTGATCAGTTTATGATCACAATGATTTCACGTAGGTGTCTCGTGGCTCCGACTAATCAACAATATAATGCGAGTAGAGCTTGA" - bioseq2 = Bioseq() - bioseq2.header = "header2" - bioseq2.sequence = "TGTGGCTTCTAGTTGATCAGTTTATGATCACAATGATTTCACGTAGGTGTCTCGTGGCTACGACTAATCAACAATATAATGCGAGTAGAGCTTGA" - - lBioseq = [bioseq1, bioseq2] - - BioseqUtils.writeBioseqListIntoFastaFile( lBioseq, obsFileName ) - - expFileName = "dummyFastaFile.fa" - f = open(expFileName, "w") - f.write(">header1 description\n") - f.write("TGTGGCTTCTAGTTGATCAGTTTATGATCACAATGATTTCACGTAGGTGTCTCGTGGCTC\n") - f.write("CGACTAATCAACAATATAATGCGAGTAGAGCTTGA\n") - f.write(">header2\n") - f.write("TGTGGCTTCTAGTTGATCAGTTTATGATCACAATGATTTCACGTAGGTGTCTCGTGGCTA\n") - f.write("CGACTAATCAACAATATAATGCGAGTAGAGCTTGA\n") - f.close() - - self.assertTrue(FileUtils.are2FilesIdentical(expFileName, obsFileName)) - - os.remove(expFileName) - os.remove(obsFileName) - - - def test_extractBioseqListFromFastaFile( self ): - fileName = "dummyFastaFile.fa" - f = open(fileName,"w") - f.write(">header1_1 description1\n") - f.write("CGF*LISL*SQ*FHVGVSWLRLINNIMRVEL\n") - f.write(">header1_2 description2\n") - f.write("VASS*SVYDHNDFT*VSRGSD*STI*CE*SL\n") - f.write(">header1_3 description3\n") - f.write("CWLLVDQFMITMISRRCLVAPTNQQYNASRA*\n") - f.close() - - bioseq1 = Bioseq() - bioseq1.header = "header1_1 description1" - bioseq1.sequence = "CGF*LISL*SQ*FHVGVSWLRLINNIMRVEL" - bioseq2 = Bioseq() - bioseq2.header = "header1_2 description2" - bioseq2.sequence = "VASS*SVYDHNDFT*VSRGSD*STI*CE*SL" - bioseq3 = Bioseq() - bioseq3.header = "header1_3 description3" - bioseq3.sequence = "CWLLVDQFMITMISRRCLVAPTNQQYNASRA*" - - expLBioseq = [bioseq1, bioseq2, bioseq3] - - obsLBioseq = BioseqUtils.extractBioseqListFromFastaFile( fileName ) - self.assertEquals(expLBioseq , obsLBioseq) - - os.remove( fileName ) - - - def test_extractBioseqListFromFastaFile_empty_seq( self ): - fileName = "dummyFastaFile.fa" - f = open(fileName,"w") - f.write(">header1_1 description1\n") - f.close() - - bioseq1 = Bioseq() - bioseq1.header = "header1_1 description1" - bioseq1.sequence = "" - expLBioseq = [bioseq1] - - obsLBioseq = BioseqUtils.extractBioseqListFromFastaFile( fileName ) - self.assertEquals(expLBioseq , obsLBioseq) - - os.remove( fileName ) - - - def test_extractBioseqListFromFastaFile_empty_file( self ): - fileName = "dummyFastaFile.fa" - - f = open(fileName,"w") - f.close() - - expLBioseq = [] - - obsLBioseq = BioseqUtils.extractBioseqListFromFastaFile( fileName ) - self.assertEquals(expLBioseq , obsLBioseq) - - os.remove( fileName ) - - - def test_getSeqLengthWithSeqName ( self ): - bioseq1 = Bioseq() - bioseq1.header = "header1 description" - bioseq1.sequence = "CGF*LISL*SQ*FHVGVSWLRLINNIMRVEL" - - bioseq2 = Bioseq() - bioseq2.header = "header2" - bioseq2.sequence = "ATGCGTGCGTAAATGCGTATGCGTATGCGTTCGCGAATGCGTGT" - - lBioseq = [bioseq1, bioseq2] - - obsLength = BioseqUtils.getSeqLengthWithSeqName(lBioseq, "header1 description") - expLength = 31 - - self.assertEquals( expLength, obsLength) - - - def test_getSeqLengthWithSeqName_second_item ( self ): - bioseq1 = Bioseq() - bioseq1.header = "header1 description" - bioseq1.sequence = "CGF*LISL*SQ*FHVGVSWLRLINNIMRVEL" - - bioseq2 = Bioseq() - bioseq2.header = "header2" - bioseq2.sequence = "ATGCGTGCGTAAATGCGTATGCGTATGCGTTCGCGAATGCGTGT" - - lBioseq = [bioseq1, bioseq2] - - obsLength = BioseqUtils.getSeqLengthWithSeqName(lBioseq, "header2") - expLength = 44 - - self.assertEquals( expLength, obsLength) - - - def test_getSeqLengthWithSeqName_empty_list ( self ): - lBioseq = [] - - obsLength = BioseqUtils.getSeqLengthWithSeqName(lBioseq, "header2") - expLength = 0 - - self.assertEquals( expLength, obsLength) - - - def test_getSeqLengthWithSeqName_empty_sequence ( self ): - bioseq1 = Bioseq() - bioseq1.header = "header1 description" - bioseq1.sequence = "CGF*LISL*SQ*FHVGVSWLRLINNIMRVEL" - - bioseq2 = Bioseq() - bioseq2.header = "header2" - bioseq2.sequence = "" - - lBioseq = [bioseq1, bioseq2] - - obsLength = BioseqUtils.getSeqLengthWithSeqName(lBioseq, "header2") - expLength = 0 - - self.assertEquals( expLength, obsLength) - - - def test_getSeqLengthWithSeqName_sequence_unknown ( self ): - bioseq1 = Bioseq() - bioseq1.header = "header1 description" - bioseq1.sequence = "CGF*LISL*SQ*FHVGVSWLRLINNIMRVEL" - - bioseq2 = Bioseq() - bioseq2.header = "header2" - bioseq2.sequence = "ATGCGTGCGTAAATGCGTATGCGTATGCGTTCGCGAATGCGTGT" - - lBioseq = [bioseq1, bioseq2] - - obsLength = BioseqUtils.getSeqLengthWithSeqName(lBioseq, "header3") - expLength = 0 - - self.assertEquals( expLength, obsLength) - - - def test_getLengthPerSeqFromFile( self ): - inFile = "dummyInFile" - inFileHandler = open( inFile, "w" ) - inFileHandler.write( ">seq1\nAGCGATGCAGCTA\n" ) - inFileHandler.write( ">seq2\nGCGATGCGCATCGACGCGA\n" ) - inFileHandler.close() - - dExp = { "seq1": 13, "seq2": 19 } - - dObs = BioseqUtils.getLengthPerSeqFromFile( inFile ) - - self.assertEqual( dExp, dObs ) - - os.remove( inFile ) - - - def test_getBioseqListSortedByDecreasingLength( self ): - lBioseqs = [ Bioseq( "TE2", "ACC" ), - Bioseq( "TE3", "TA" ), - Bioseq( "TE1", "AGCG" ) ] - lExp = [ Bioseq( "TE1", "AGCG" ), - Bioseq( "TE2", "ACC" ), - Bioseq( "TE3", "TA" ) ] - lObs = BioseqUtils.getBioseqListSortedByDecreasingLength( lBioseqs ) - self.assertEquals( lExp, lObs ) - - - def test_getBioseqListSortedByDecreasingLengthWithoutGaps( self ): - lBioseqs = [ Bioseq( "TE2", "-ACC-" ), - Bioseq( "TE3", "TA---" ), - Bioseq( "TE1", "-AGCG" ) ] - lExp = [ Bioseq( "TE1", "-AGCG" ), - Bioseq( "TE2", "-ACC-" ), - Bioseq( "TE3", "TA---" ) ] - lObs = BioseqUtils.getBioseqListSortedByDecreasingLengthWithoutGaps( lBioseqs ) - self.assertEquals( lExp, lObs ) - - -test_suite = unittest.TestSuite() -test_suite.addTest( unittest.makeSuite( Test_BioseqUtils ) ) -if __name__ == "__main__": - unittest.TextTestRunner(verbosity=2).run( test_suite )
--- a/commons/core/seq/test/Test_FastaUtils.py Mon Apr 29 03:26:07 2013 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1694 +0,0 @@ -# Copyright INRA (Institut National de la Recherche Agronomique) -# http://www.inra.fr -# http://urgi.versailles.inra.fr -# -# This software is governed by the CeCILL license under French law and -# abiding by the rules of distribution of free software. You can use, -# modify and/ or redistribute the software under the terms of the CeCILL -# license as circulated by CEA, CNRS and INRIA at the following URL -# "http://www.cecill.info". -# -# As a counterpart to the access to the source code and rights to copy, -# modify and redistribute granted by the license, users are provided only -# with a limited warranty and the software's author, the holder of the -# economic rights, and the successive licensors have only limited -# liability. -# -# In this respect, the user's attention is drawn to the risks associated -# with loading, using, modifying and/or developing or reproducing the -# software by the user in light of its specific status of free software, -# that may mean that it is complicated to manipulate, and that also -# therefore means that it is reserved for developers and experienced -# professionals having in-depth computer knowledge. Users are therefore -# encouraged to load and test the software's suitability as regards their -# requirements in conditions enabling the security of their systems and/or -# data to be ensured and, more generally, to use and operate it in the -# same conditions as regards security. -# -# The fact that you are presently reading this means that you have had -# knowledge of the CeCILL license and that you accept its terms. - - -from commons.core.seq.FastaUtils import FastaUtils -from commons.core.seq.test.Utils_for_T_FastaUtils import Utils_for_T_FastaUtils -from commons.core.utils.FileUtils import FileUtils -import glob -import os -import shutil -import unittest - - -class Test_FastaUtils( unittest.TestCase ): - - - def test_dbSize_for_empty_file(self): - fileName = "dummyFastaFile.fa" - Utils_for_T_FastaUtils._createFastaFile_for_empty_file(fileName) - - obsNb = FastaUtils.dbSize( fileName ) - - expNb = 0 - os.remove(fileName) - self.assertEquals(expNb, obsNb) - - - def test_dbSize_one_sequence(self): - fileName = "dummyFastaFile.fa" - Utils_for_T_FastaUtils._createFastaFile_one_sequence(fileName) - - obsNb = FastaUtils.dbSize( fileName ) - - expNb = 1 - os.remove(fileName) - self.assertEquals(expNb, obsNb) - - - def test_dbSize_four_sequences(self): - fileName = "dummyFastaFile.fa" - Utils_for_T_FastaUtils._createFastaFile_four_sequences(fileName) - - obsNb = FastaUtils.dbSize( fileName ) - - expNb = 4 - os.remove(fileName) - self.assertEquals(expNb, obsNb) - - - def test_dbChunks(self): - inFileName = "dummyBigSeqFastaFile.fa" - expChunksFileName = 'exp' + inFileName +'_chunks.fa' - expChunksMapFileName = 'exp' + inFileName +'_chunks.map' - expCutFileName = 'exp' + inFileName +'_cut' - expNStretchFileName = 'exp' + inFileName +'.Nstretch.map' - Utils_for_T_FastaUtils._createFastaFile_big_sequence(inFileName) - Utils_for_T_FastaUtils._createFastaFile_of_Chunks(expChunksFileName) - Utils_for_T_FastaUtils._createMapFile_of_Chunks(expChunksMapFileName) - Utils_for_T_FastaUtils._createFastaFile_of_cut(expCutFileName) - Utils_for_T_FastaUtils._createFastaFile_of_Nstretch(expNStretchFileName) - - FastaUtils.dbChunks(inFileName, '60', '10', '11', '', False, 0) - - obsChunksFileName = inFileName +'_chunks.fa' - obsChunksMapFileName = inFileName +'_chunks.map' - obsCutFileName = inFileName +'_cut' - obsNStretchFileName = inFileName +'.Nstretch.map' - - self.assertTrue(FileUtils.are2FilesIdentical(expChunksFileName, obsChunksFileName)) - self.assertTrue(FileUtils.are2FilesIdentical(expChunksMapFileName, obsChunksMapFileName)) - self.assertTrue(FileUtils.are2FilesIdentical(expCutFileName, obsCutFileName)) - self.assertTrue(FileUtils.are2FilesIdentical(expNStretchFileName, obsNStretchFileName)) - - os.remove(inFileName) - os.remove(expChunksFileName) - os.remove(expChunksMapFileName) - os.remove(expCutFileName) - os.remove(expNStretchFileName) - os.remove(obsChunksFileName) - os.remove(obsChunksMapFileName) - os.remove(obsCutFileName) - os.remove(obsNStretchFileName) - - - def test_dbChunks_with_clean_and_prefix(self): - inFileName = "dummyBigSeqFastaFile.fa" - expChunksFileName = 'exp' + inFileName +'_chunks.fa' - expChunksMapFileName = 'exp' + inFileName +'_chunks.map' - Utils_for_T_FastaUtils._createFastaFile_big_sequence(inFileName) - Utils_for_T_FastaUtils._createFastaFile_of_Chunks(expChunksFileName) - Utils_for_T_FastaUtils._createMapFile_of_Chunks(expChunksMapFileName) - - FastaUtils.dbChunks(inFileName, '60', '10', '11', 'outFile_chunks', True, 0) - - obsChunksFileName = "outFile_chunks.fa" - obsChunksMapFileName = "outFile_chunks.map" - - self.assertTrue(FileUtils.are2FilesIdentical(expChunksFileName, obsChunksFileName)) - self.assertTrue(FileUtils.are2FilesIdentical(expChunksMapFileName, obsChunksMapFileName)) - - os.remove(inFileName) - os.remove(expChunksFileName) - os.remove(expChunksMapFileName) - os.remove(obsChunksFileName) - os.remove(obsChunksMapFileName) - - - def test_dbCumLength_with_empty_file(self): - inFileName = "dummyFastaFile.fa" - Utils_for_T_FastaUtils._createFastaFile_for_empty_file(inFileName) - - expCumulLength = 0 - - inFileHandler = open(inFileName, "r") - obsCumulLength = FastaUtils.dbCumLength(inFileHandler) - inFileHandler.close() - os.remove(inFileName) - - self.assertEquals(expCumulLength, obsCumulLength) - - def test_dbCumLength_four_sequences(self): - inFileName = "dummyFastaFile.fa" - Utils_for_T_FastaUtils._createFastaFile_four_sequences(inFileName) - - expCumulLength = 1168 - - inFileHandler = open(inFileName, "r") - obsCumulLength = FastaUtils.dbCumLength(inFileHandler) - inFileHandler.close() - os.remove(inFileName) - - self.assertEquals(expCumulLength, obsCumulLength) - - - def test_dbLengths( self ): - inFileName = "dummyFastaFile.fa" - inF = open( inFileName, "w" ) - inF.write(">seq1\nATGACGT\n") - inF.write(">seq2\nATGGCGAGACGT\n") - inF.close() - lExp = [ 7, 12 ] - lObs = FastaUtils.dbLengths( inFileName ) - self.assertEquals( lExp, lObs ) - os.remove( inFileName ) - - - def test_dbHeaders_with_empty_file(self): - inFile = "dummyFastaFile.fa" - Utils_for_T_FastaUtils._createFastaFile_for_empty_file( inFile ) - lExp = [] - lObs = FastaUtils.dbHeaders( inFile ) - self.assertEquals( lExp, lObs ) - os.remove( inFile ) - - - def test_dbHeaders_with_one_sequence_without_header(self): - inFile = "dummyFastaFile.fa" - Utils_for_T_FastaUtils._createFastaFile_sequence_without_header( inFile ) - lExp = [] - lObs = FastaUtils.dbHeaders( inFile ) - self.assertEquals( lExp, lObs ) - os.remove( inFile ) - - - def test_dbHeaders_four_sequences(self): - inFile = "dummyFastaFile.fa" - Utils_for_T_FastaUtils._createFastaFile_four_sequences( inFile ) - lExp = [ "seq 1", "seq 2", "seq 3", "seq 4" ] - lObs = FastaUtils.dbHeaders( inFile ) - self.assertEquals( lExp, lObs ) - os.remove( inFile ) - - - def test_dbSplit_no_in_file( self ): - inFileName = "dummyFastaFile.fa" - isSysExitRaised = False - try: - FastaUtils.dbSplit( inFileName, 1, False ) - except SystemExit: - isSysExitRaised = True - self.assertTrue( isSysExitRaised ) - - - def test_dbSplit_emptyFile( self ): - inFile = "dummyFastaFile.fa" - Utils_for_T_FastaUtils._createFastaFile_for_empty_file( inFile ) - FastaUtils.dbSplit( inFile, 10, False, 1 ) - self.assertTrue( not os.path.exists( "batch_1.fa" ) ) - os.remove( inFile ) - - - def test_dbSplit_oneSequence_tenSequencesPerBatch( self ): - inFile = "dummyFastaFile.fa" - Utils_for_T_FastaUtils._createFastaFile_one_sequence( inFile ) - - expBatchFile = "dummyExpBatch_1.fa" - Utils_for_T_FastaUtils._createFastaFile_one_sequence( expBatchFile ) - - FastaUtils.dbSplit( inFile, 10, False ) - - obsBatchFile = "batch_1.fa" - - self.assertTrue( FileUtils.are2FilesIdentical( expBatchFile, obsBatchFile ) ) - - for f in [ inFile, expBatchFile, obsBatchFile ]: - os.remove( f ) - - - def test_dbSplit_fourSequences_threeSequencesPerBatch( self ): - inFile = "dummyFastaFile.fa" - Utils_for_T_FastaUtils._createFastaFile_four_sequences( inFile ) - - expBatch1File = "dummyExpBatch_1.fa" - expBatch2File = "dummyExpBatch_2.fa" - Utils_for_T_FastaUtils._createBatch1_three_sequences( expBatch1File ) - Utils_for_T_FastaUtils._createBatch2_one_sequence( expBatch2File ) - - FastaUtils.dbSplit( inFile, 3, False ) - - obsBatch1File = "batch_1.fa" - obsBatch2File = "batch_2.fa" - - self.assertTrue( FileUtils.are2FilesIdentical( expBatch1File, obsBatch1File ) ) - self.assertTrue( FileUtils.are2FilesIdentical( expBatch2File, obsBatch2File ) ) - - for f in [ inFile, expBatch1File, expBatch2File, obsBatch1File, obsBatch2File ]: - os.remove( f ) - - - def test_dbSplit_fourSequences_twoSequencesPerBatch_inBatchDirectory( self ): - inFile = "dummyFastaFile.fa" - Utils_for_T_FastaUtils._createFastaFile_four_sequences( inFile ) - - expBatch1File = "dummyExp_batch_1.fa" - expBatch2File = "dummyExp_batch_2.fa" - Utils_for_T_FastaUtils._createBatch1_two_sequences( expBatch1File ) - Utils_for_T_FastaUtils._createBatch2_two_sequences( expBatch2File ) - - FastaUtils.dbSplit( inFile, 2, True, 1 ) - - obsBatch1File = "batches/batch_1.fa" - obsBatch2File = "batches/batch_2.fa" - - self.assertTrue( FileUtils.are2FilesIdentical( expBatch1File, obsBatch1File ) ) - self.assertTrue( FileUtils.are2FilesIdentical( expBatch2File, obsBatch2File ) ) - - for f in [ inFile, expBatch1File, expBatch2File, obsBatch1File, obsBatch2File ]: - os.remove( f ) - - - def test_dbSplit_tenSequences_oneSequencePerBatch_inBatchDirectory( self ): - inFile = "dummyFastaFile.fa" - Utils_for_T_FastaUtils._createFastaFile_ten_sequences( inFile ) - - FastaUtils.dbSplit( inFile, 1, True ) - - nb = 1 - for s in [ '01', '02', '03', '04', '05', '06', '07', '08', '09', '10' ]: - expBatchFile = "exp_batch_%s.fa" % ( s ) - Utils_for_T_FastaUtils._createBatch_one_small_sequence( expBatchFile, "seq " + str(nb) ) - nb += 1 - obsBatchFile = "batches/batch_%s.fa" % ( s ) - self.assertTrue( FileUtils.are2FilesIdentical( expBatchFile, obsBatchFile ) ) - os.remove( expBatchFile ) - os.remove( obsBatchFile ) - - os.remove( inFile ) - os.rmdir( "batches" ) - - - def test_dbSplit_twoSequences_oneSequencePerBatch_useSeqHeader( self ): - inFile = "dummyFastaFile.fa" - Utils_for_T_FastaUtils.createFastaFile_twoSequences( inFile ) - - lExpFileNames = [ "seq_1.fa", "seq_2.fa" ] - lExpFiles = [ "dummyExp_seq_1.fa", "dummyExp_seq_2.fa" ] - Utils_for_T_FastaUtils.createFastaFile_seq_1( lExpFiles[0] ) - Utils_for_T_FastaUtils.createFastaFile_seq_2( lExpFiles[1] ) - - FastaUtils.dbSplit( inFile, 1, False, True ) - - lObsFiles = glob.glob( "seq*.fa" ) - lObsFiles.sort() - for i in range( 0, len(lExpFileNames) ): - self.assertEqual( lExpFileNames[i], lObsFiles[i] ) - self.assertTrue( FileUtils.are2FilesIdentical( lExpFiles[i], lObsFiles[i] ) ) - - for f in [ inFile ] + lExpFiles + lObsFiles: - os.remove( f ) - - - def test_dbSplit_twoSequences_otherPrefix( self ): - inFile = "dummyFastaFile.fa" - Utils_for_T_FastaUtils.createFastaFile_twoSequences( inFile ) - - lExpFileNames = [ "query_1.fa", "query_2.fa" ] - lExpFiles = [ "dummyExp_seq_1.fa", "dummyExp_seq_2.fa" ] - Utils_for_T_FastaUtils.createFastaFile_seq_1( lExpFiles[0] ) - Utils_for_T_FastaUtils.createFastaFile_seq_2( lExpFiles[1] ) - - FastaUtils.dbSplit( inFile, 1, False, False, "query" ) - - lObsFiles = glob.glob( "query_*.fa" ) - lObsFiles.sort() - for i in range( 0, len(lExpFileNames) ): - self.assertEqual( lExpFileNames[i], lObsFiles[i] ) - self.assertTrue( FileUtils.are2FilesIdentical( lExpFiles[i], lObsFiles[i] ) ) - - for f in [ inFile ] + lExpFiles + lObsFiles: - os.remove( f ) - - - def test_splitFastaFileInBatches(self): - inFileName = "dummyFastaFile.fa" - with open(inFileName, "w") as f: - f.write(">seq1\n") - f.write("ATCGCTAGCTAGCTCGATCTAGTCAGTCTGTTTGGATCGCTCTCTGCTCGGAAATCC\n") - f.write(">seq2\n") - f.write("ATCGCTAGCTAGCTCG\n") - f.write(">seq3\n") - f.write("GTTTGGATCGCT\n") - f.write(">seq6\n") - f.write("ATCGCTAGCTAGCTCGATCTAGTCAGTCTGTTTGGATCGCTCTCTGCTCGGAAATCCTCTGTTTGGATCGCTCTCTGCTCGGAAATCC\n") - f.write(">seq5\n") - f.write("TTGGATCGCTCTCTGCTCGGAAATCCCGTC\n") - expBatch1 = "expBatch_1.fa" - with open(expBatch1, "w") as f: - f.write(">seq6\n") - f.write("ATCGCTAGCTAGCTCGATCTAGTCAGTCTGTTTGGATCGCTCTCTGCTCGGAAATCCTCT\n") - f.write("GTTTGGATCGCTCTCTGCTCGGAAATCC\n") - expBatch2 = "expBatch_2.fa" - with open(expBatch2, "w") as f: - f.write(">seq1\n") - f.write("ATCGCTAGCTAGCTCGATCTAGTCAGTCTGTTTGGATCGCTCTCTGCTCGGAAATCC\n") - expBatch3 = "expBatch_3.fa" - with open(expBatch3, "w") as f: - f.write(">seq5\n") - f.write("TTGGATCGCTCTCTGCTCGGAAATCCCGTC\n") - f.write(">seq2\n") - f.write("ATCGCTAGCTAGCTCG\n") - f.write(">seq3\n") - f.write("GTTTGGATCGCT\n") - - FastaUtils.splitFastaFileInBatches(inFileName, 60) - - obsBatch1 = "batches/batch_1.fa" - obsBatch2 = "batches/batch_2.fa" - obsBatch3 = "batches/batch_3.fa" - - self.assertTrue(FileUtils.are2FilesIdentical(expBatch1, obsBatch1)) - self.assertTrue(FileUtils.are2FilesIdentical(expBatch2, obsBatch2)) - self.assertTrue(FileUtils.are2FilesIdentical(expBatch3, obsBatch3)) - - os.remove(inFileName) - os.remove(expBatch1) - os.remove(expBatch2) - os.remove(expBatch3) - shutil.rmtree("batches") - - - def test_splitFastaFileInBatches_one_seq(self): - inFileName = "dummyFastaFile.fa" - with open(inFileName, "w") as f: - f.write(">seq2\n") - f.write("ATCGCTAGCTAGCTCG\n") - expBatch1 = "expBatch_1.fa" - with open(expBatch1, "w") as f: - f.write(">seq2\n") - f.write("ATCGCTAGCTAGCTCG\n") - - FastaUtils.splitFastaFileInBatches(inFileName, 60) - - obsBatch1 = "batches/batch_1.fa" - - self.assertTrue(FileUtils.are2FilesIdentical(expBatch1, obsBatch1)) - - os.remove(inFileName) - os.remove(expBatch1) - shutil.rmtree("batches") - - - def test_splitSeqPerCluster_no_in_file(self): - inFileName = "dummyFastaFile.fa" - isSysExitRaised = False - try: - FastaUtils.splitSeqPerCluster( inFileName, "Piler", False, False, "seqCluster") - except SystemExit: - isSysExitRaised = True - self.assertTrue(isSysExitRaised) - - - def test_splitSeqPerCluster_in_file_empty(self): - inFileName = "dummyFastaFile.fa" - with open(inFileName, 'w'): - pass - - FastaUtils.splitSeqPerCluster( inFileName, "Piler", False, False, "seqCluster") - - self.assertEquals(glob.glob("seqCluster*.fa"), []) - - os.remove(inFileName) - - - def test_splitSeqPerCluster_four_sequences_without_dir(self): - inFileName = "dummyFastaFile.fa" - Utils_for_T_FastaUtils._createFastaFile_of_four_sequences_with_specific_header(inFileName) - - expFirstClusterFileName = "exp_seqCluster1.fa" - Utils_for_T_FastaUtils._createFastaFile_of_first_cluster_result(expFirstClusterFileName) - expSecondClusterFileName = "exp_seqCluster2.fa" - Utils_for_T_FastaUtils._createFastaFile_of_second_cluster_result(expSecondClusterFileName) - expThirdClusterFileName = "exp_seqCluster3.574.fa" - Utils_for_T_FastaUtils._createFastaFile_of_third_cluster_result(expThirdClusterFileName) - - FastaUtils.splitSeqPerCluster( inFileName, "Piler", False, False, "seqCluster") - obsFirstClusterFileName = "seqCluster1.fa" - obsSecondClusterFileName = "seqCluster2.fa" - obsThirdClusterFileName = "seqCluster3.574.fa" - - os.remove(inFileName) - - self.assertTrue(FileUtils.are2FilesIdentical(expFirstClusterFileName, obsFirstClusterFileName)) - self.assertTrue(FileUtils.are2FilesIdentical(expSecondClusterFileName, obsSecondClusterFileName)) - self.assertTrue(FileUtils.are2FilesIdentical(expThirdClusterFileName, obsThirdClusterFileName)) - - os.remove(expFirstClusterFileName) - os.remove(expSecondClusterFileName) - os.remove(expThirdClusterFileName) - os.remove(obsFirstClusterFileName) - os.remove(obsSecondClusterFileName) - os.remove(obsThirdClusterFileName) - - - def test_splitSeqPerCluster_four_sequences_without_dir_no_split(self): - inFileName = "dummyFastaFile.fa" - Utils_for_T_FastaUtils._createFastaFile_of_four_sequences_with_specific_header_in_same_cluster(inFileName) - - expClusterFileName = "exp_seqCluster.fa" - Utils_for_T_FastaUtils._createFastaFile_of_four_sequences_with_specific_header_in_same_cluster(expClusterFileName) - - FastaUtils.splitSeqPerCluster( inFileName, "Piler", False, False, "seqCluster") - obsClusterFileName = "seqCluster1.fa" - - os.remove(inFileName) - - self.assertTrue(FileUtils.are2FilesIdentical(expClusterFileName, obsClusterFileName)) - - os.remove(expClusterFileName) - os.remove(obsClusterFileName) - - - def test_splitSeqPerCluster_four_sequences_without_dir_shuffle(self): - inFileName = "dummyFastaFile.fa" - Utils_for_T_FastaUtils._createFastaFile_of_four_sequences_with_specific_header_shuffle(inFileName) - - expFirstClusterFileName = "exp_seqCluster1.fa" - Utils_for_T_FastaUtils._createFastaFile_of_first_cluster_result(expFirstClusterFileName) - expSecondClusterFileName = "exp_seqCluster2.fa" - Utils_for_T_FastaUtils._createFastaFile_of_second_cluster_result(expSecondClusterFileName) - expThirdClusterFileName = "exp_seqCluster3.574.fa" - Utils_for_T_FastaUtils._createFastaFile_of_third_cluster_result(expThirdClusterFileName) - - FastaUtils.splitSeqPerCluster( inFileName, "Piler", False, False, "seqCluster") - obsFirstClusterFileName = "seqCluster1.fa" - obsSecondClusterFileName = "seqCluster2.fa" - obsThirdClusterFileName = "seqCluster3.574.fa" - - os.remove(inFileName) - - self.assertTrue(FileUtils.are2FilesIdentical(expFirstClusterFileName, obsFirstClusterFileName)) - self.assertTrue(FileUtils.are2FilesIdentical(expSecondClusterFileName, obsSecondClusterFileName)) - self.assertTrue(FileUtils.are2FilesIdentical(expThirdClusterFileName, obsThirdClusterFileName)) - - os.remove(expFirstClusterFileName) - os.remove(expSecondClusterFileName) - os.remove(expThirdClusterFileName) - os.remove(obsFirstClusterFileName) - os.remove(obsSecondClusterFileName) - os.remove(obsThirdClusterFileName) - - - def test_splitSeqPerCluster_four_sequences_simplify_header(self): - inFileName = "dummyFastaFile.fa" - Utils_for_T_FastaUtils._createFastaFile_of_four_sequences_with_specific_header(inFileName) - - expFirstClusterFileName = "exp_seqCluster1.fa" - Utils_for_T_FastaUtils._createFastaFile_of_first_cluster_result_with_simplify_header(expFirstClusterFileName) - expSecondClusterFileName = "exp_seqCluster2.fa" - Utils_for_T_FastaUtils._createFastaFile_of_second_cluster_result_with_simplify_header(expSecondClusterFileName) - expThirdClusterFileName = "exp_seqCluster3.574.fa" - Utils_for_T_FastaUtils._createFastaFile_of_third_cluster_result_with_simplify_header(expThirdClusterFileName) - - FastaUtils.splitSeqPerCluster( inFileName, "Piler", True, False, "seqCluster") - obsFirstClusterFileName = "seqCluster1.fa" - obsSecondClusterFileName = "seqCluster2.fa" - obsThirdClusterFileName = "seqCluster3.574.fa" - - os.remove(inFileName) - - self.assertTrue(FileUtils.are2FilesIdentical(expFirstClusterFileName, obsFirstClusterFileName)) - self.assertTrue(FileUtils.are2FilesIdentical(expSecondClusterFileName, obsSecondClusterFileName)) - self.assertTrue(FileUtils.are2FilesIdentical(expThirdClusterFileName, obsThirdClusterFileName)) - - os.remove(expFirstClusterFileName) - os.remove(expSecondClusterFileName) - os.remove(expThirdClusterFileName) - os.remove(obsFirstClusterFileName) - os.remove(obsSecondClusterFileName) - os.remove(obsThirdClusterFileName) - - - def test_splitSeqPerCluster_four_sequences_with_dir(self): - inFileName = "dummyFastaFile.fa" - Utils_for_T_FastaUtils._createFastaFile_of_four_sequences_with_specific_header(inFileName) - FastaUtils.splitSeqPerCluster( inFileName, "Piler", False, True, "seqCluster") - os.remove(inFileName) - - for i in ['1', '2', '3.574']: - expClusterFileName = "exp_cluster" + i + ".fa" - if i == '1': - Utils_for_T_FastaUtils._createFastaFile_of_first_cluster_result(expClusterFileName) - if i == '2': - Utils_for_T_FastaUtils._createFastaFile_of_second_cluster_result(expClusterFileName) - if i == '3.574': - Utils_for_T_FastaUtils._createFastaFile_of_third_cluster_result(expClusterFileName) - - obsClusterFileName= inFileName + "_cluster_" + i + "/seqCluster" + i + ".fa" - self.assertTrue(FileUtils.are2FilesIdentical(expClusterFileName, obsClusterFileName)) - os.remove(expClusterFileName) - os.remove(obsClusterFileName) - os.rmdir( inFileName + "_cluster_" + i ) - - - def test_dbLengthFilter_with_one_sequence(self): - fileName = "dummyFastaFile.fa" - Utils_for_T_FastaUtils._createFastaFile_one_sequence(fileName) - - expFileNameInf = "exp_dummyFastaFile.fa.Inf12" - Utils_for_T_FastaUtils._createFastaFile_for_empty_file(expFileNameInf) - expFileNameSup = "exp_dummyFastaFile.fa.Sup12" - Utils_for_T_FastaUtils._createFastaFile_one_sequence(expFileNameSup) - - FastaUtils.dbLengthFilter(12, fileName, verbose=0) - - obsFileNameInf = "dummyFastaFile.fa.Inf12" - obsFileNameSup = "dummyFastaFile.fa.Sup12" - - self.assertTrue(FileUtils.are2FilesIdentical(expFileNameInf, obsFileNameInf)) - self.assertTrue(FileUtils.are2FilesIdentical(expFileNameSup, obsFileNameSup)) - - os.remove(fileName) - os.remove(expFileNameInf) - os.remove(expFileNameSup) - os.remove(obsFileNameInf) - os.remove(obsFileNameSup) - - def test_dbLengthFilter_with_four_sequence(self): - fileName = "dummyFastaFile.fa" - Utils_for_T_FastaUtils._createFastaFile_four_sequences(fileName) - - expFileNameInf = "exp_dummyFastaFile.fa.Inf130" - Utils_for_T_FastaUtils._createFastaFile_one_sequence(expFileNameInf) - expFileNameSup = "exp_dummyFastaFile.fa.Sup130" - Utils_for_T_FastaUtils._createResult_of_dbLengthFilter_sup(expFileNameSup) - - FastaUtils.dbLengthFilter(130, fileName, verbose=0) - - obsFileNameInf = "dummyFastaFile.fa.Inf130" - obsFileNameSup = "dummyFastaFile.fa.Sup130" - - self.assertTrue(FileUtils.are2FilesIdentical(expFileNameInf, obsFileNameInf)) - self.assertTrue(FileUtils.are2FilesIdentical(expFileNameSup, obsFileNameSup)) - - os.remove(fileName) - os.remove(expFileNameInf) - os.remove(expFileNameSup) - os.remove(obsFileNameInf) - os.remove(obsFileNameSup) - - def test_dbLongestSequences_with_empty_file(self): - fileName = "dummyFastaFile.fa" - Utils_for_T_FastaUtils._createFastaFile_for_empty_file(fileName) - - expResult = 0 - - obsResult = FastaUtils.dbLongestSequences( 1, fileName ) - - self.assertEquals(expResult, obsResult) - - os.remove(fileName) - - def test_dbLongestSequences_with_one_longest_sequence(self): - fileName = "dummyFastaFile.fa" - Utils_for_T_FastaUtils._createFastaFile_four_sequences(fileName) - - expFileName = "exp_dummyFastaFile.fa.best1" - f = open(expFileName, 'w') - f.write(">seq 3\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCG\n") - f.close() - - FastaUtils.dbLongestSequences( 1, fileName, outFileName="", verbose=0, minThresh=0 ) - - obsFileName = "dummyFastaFile.fa.best1" - - self.assertTrue(FileUtils.are2FilesIdentical(expFileName, obsFileName)) - - os.remove(fileName) - os.remove(expFileName) - os.remove(obsFileName) - - def test_dbLongestSequences_with_two_longest_sequence(self): - fileName = "dummyFastaFile.fa" - Utils_for_T_FastaUtils._createFastaFile_three_sequences(fileName) - expFileName = "exp_dummyFastaFile.fa.best1" - f = open(expFileName, 'w') - f.write(">seq 2\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCG\n") - f.write(">seq 4\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCG\n") - f.close() - - FastaUtils.dbLongestSequences( 2, fileName, outFileName="", verbose=0, minThresh=0 ) - obsFileName = "dummyFastaFile.fa.best2" - - self.assertTrue(FileUtils.are2FilesIdentical(expFileName, obsFileName)) - - os.remove(fileName) - os.remove(expFileName) - os.remove(obsFileName) - - def test_dbExtractSeqHeaders(self): - fileName = "dummyFastaFile.fa" - Utils_for_T_FastaUtils._createFastaFile_three_sequences(fileName) - expFileName = "exp_dummyFastaFile.fa" - f = open(expFileName, 'w') - f.write("seq 1\n") - f.write("seq 2\n") - f.write("seq 4\n") - f.close() - - FastaUtils.dbExtractSeqHeaders(fileName) - obsFileName = "dummyFastaFile.fa.headers" - - self.assertTrue(FileUtils.are2FilesIdentical(expFileName, obsFileName)) - - os.remove(fileName) - os.remove(expFileName) - os.remove(obsFileName) - - def test_dbExtractSeqHeaders_with_empty_file(self): - fileName = "dummyFastaFile.fa" - Utils_for_T_FastaUtils._createFastaFile_for_empty_file(fileName) - expFileName = "exp_dummyFastaFile.fa" - f = open(expFileName, 'w') - f.write("") - f.close() - - FastaUtils.dbExtractSeqHeaders(fileName) - obsFileName = "dummyFastaFile.fa.headers" - - self.assertTrue(FileUtils.are2FilesIdentical(expFileName, obsFileName)) - - os.remove(fileName) - os.remove(expFileName) - os.remove(obsFileName) - - def test_dbExtractSeqHeaders_without_header(self): - fileName = "dummyFastaFile.fa" - Utils_for_T_FastaUtils._createFastaFile_sequence_without_header(fileName) - expFileName = "exp_dummyFastaFile.fa" - f = open(expFileName, 'w') - f.write("") - f.close() - - FastaUtils.dbExtractSeqHeaders(fileName) - obsFileName = "dummyFastaFile.fa.headers" - - self.assertTrue(FileUtils.are2FilesIdentical(expFileName, obsFileName)) - - os.remove(fileName) - os.remove(expFileName) - os.remove(obsFileName) - - def test_dbExtractByPattern_without_pattern(self): - fileName = "dummyFastaFile.fa" - Utils_for_T_FastaUtils._createFastaFile_three_sequences(fileName) - - obsResult = FastaUtils.dbExtractByPattern( "", fileName) - - expResult = None - - self.assertEquals(expResult, obsResult) - - os.remove(fileName) - - def test_dbExtractByPattern(self): - fileName = "dummyFastaFile.fa" - Utils_for_T_FastaUtils._createFastaFile_three_sequences(fileName) - expFileName = "exp_dummyFastaFile.fa" - Utils_for_T_FastaUtils._createFastaFile_three_sequences(expFileName) - - FastaUtils.dbExtractByPattern( 'seq', fileName) - - obsFileName = "dummyFastaFile.fa.extracted" - - self.assertTrue(FileUtils.are2FilesIdentical(expFileName, obsFileName)) - - os.remove(fileName) - os.remove(expFileName) - os.remove(obsFileName) - - def test_dbExtractByPattern_with_2_as_pattern(self): - fileName = "dummyFastaFile.fa" - Utils_for_T_FastaUtils._createFastaFile_three_sequences(fileName) - expFileName = "exp_dummyFastaFile.fa" - f = open(expFileName, 'w') - f.write(">seq 2\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCG\n") - f.close() - - FastaUtils.dbExtractByPattern( ' 2', fileName) - - obsFileName = "dummyFastaFile.fa.extracted" - - self.assertTrue(FileUtils.are2FilesIdentical(expFileName, obsFileName)) - - os.remove(fileName) - os.remove(expFileName) - os.remove(obsFileName) - - def test_dbExtractByPattern_with_sandie_as_pattern(self): - fileName = "dummyFastaFile.fa" - Utils_for_T_FastaUtils._createFastaFile_three_sequences(fileName) - expFileName = "exp_dummyFastaFile.fa" - Utils_for_T_FastaUtils._createFastaFile_for_empty_file(expFileName) - - FastaUtils.dbExtractByPattern( 'sandie', fileName) - - obsFileName = "dummyFastaFile.fa.extracted" - - self.assertTrue(FileUtils.are2FilesIdentical(expFileName, obsFileName)) - - os.remove(fileName) - os.remove(expFileName) - os.remove(obsFileName) - - def test_dbExtractByFilePattern_empty_pattern_filename(self): - patternFileName = "" - isSysExitRaised = False - try: - FastaUtils.dbExtractByFilePattern(patternFileName , None, "") - except SystemExit: - isSysExitRaised = True - self.assertTrue(isSysExitRaised) - - def test_dbExtractByFilePattern(self): - fileName = "dummyFastaFile.fa" - Utils_for_T_FastaUtils. _createFastaFile_ten_sequences(fileName) - patternFileName = "dummyPatternFile.txt" - Utils_for_T_FastaUtils._createPatternFile(patternFileName) - - expFileName = "exp_dummyFastaFile.fa" - f = open(expFileName, 'w') - f.write(">seq 1\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write(">seq 3\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write(">seq 8\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write(">seq 10\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.close() - - obsFileName = "dummyFastaFile.fa.extracted" - - FastaUtils.dbExtractByFilePattern( patternFileName, fileName, "") - - self.assertTrue(FileUtils.are2FilesIdentical(expFileName, obsFileName)) - - os.remove(fileName) - os.remove(patternFileName) - os.remove(expFileName) - os.remove(obsFileName) - - def test_dbCleanByPattern_without_pattern(self): - fileName = "dummyFastaFile.fa" - Utils_for_T_FastaUtils._createFastaFile_three_sequences(fileName) - - obsResult = FastaUtils.dbCleanByPattern( "", fileName) - - expResult = None - - self.assertEquals(expResult, obsResult) - - os.remove(fileName) - - def test_dbCleanByPattern(self): - fileName = "dummyFastaFile.fa" - Utils_for_T_FastaUtils. _createFastaFile_ten_sequences(fileName) - - expFileName = "exp_dummyFastaFile.fa" - f = open(expFileName, 'w') - f.write(">seq 1\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write(">seq 3\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write(">seq 4\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write(">seq 5\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write(">seq 6\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write(">seq 7\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write(">seq 8\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write(">seq 9\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write(">seq 10\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.close() - - obsFileName = "dummyFastaFile.fa.cleaned" - FastaUtils.dbCleanByPattern( '2', fileName) - - self.assertTrue(FileUtils.are2FilesIdentical(expFileName, obsFileName)) - - os.remove(fileName) - os.remove(expFileName) - os.remove(obsFileName) - - def test_dbCleanByPattern_with_expectedFile_empty(self): - fileName = "dummyFastaFile.fa" - Utils_for_T_FastaUtils. _createFastaFile_ten_sequences(fileName) - - expFileName = "exp_dummyFastaFile.fa" - f = open(expFileName, 'w') - f.write("") - f.close() - - obsFileName = "dummyFastaFile.fa.cleaned" - FastaUtils.dbCleanByPattern( 'seq', fileName) - - self.assertTrue(FileUtils.are2FilesIdentical(expFileName, obsFileName)) - - os.remove(fileName) - os.remove(expFileName) - os.remove(obsFileName) - - def test_dbCleanByFilePattern_empty_pattern_filename(self): - patternFileName = "" - isSysExitRaised = False - try: - FastaUtils.dbCleanByFilePattern(patternFileName , None, "") - except SystemExit: - isSysExitRaised = True - self.assertTrue(isSysExitRaised) - - def test_dbCleanByFilePattern(self): - fileName = "dummyFastaFile.fa" - Utils_for_T_FastaUtils. _createFastaFile_ten_sequences(fileName) - patternFileName = "dummyPatternFile.txt" - Utils_for_T_FastaUtils._createPatternFile(patternFileName) - - expFileName = "exp_dummyFastaFile.fa" - f = open(expFileName, 'w') - f.write(">seq 2\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write(">seq 4\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write(">seq 5\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write(">seq 6\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write(">seq 7\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write(">seq 9\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.close() - - obsFileName = "dummyFastaFile.fa.cleaned" - - FastaUtils.dbCleanByFilePattern( patternFileName, fileName, "") - - self.assertTrue(FileUtils.are2FilesIdentical(expFileName, obsFileName)) - - os.remove(fileName) - os.remove(patternFileName) - os.remove(expFileName) - os.remove(obsFileName) - - def test_dbORF_without_ORF(self): - fileName = "dummy.fa" - with open(fileName, "w") as f: - f.write(">dummy\n") - f.write("GGGTTGGGTTGGGTTGGGTTGGGTTGGGTTGGGTTGGGTTGGGTTGGGTT\n") - - expFileName = "exp.ORF.map" - with open(expFileName, "w") as f: - f.write("") - obsFileName = "%s.ORF.map" % fileName - - FastaUtils.dbORF(fileName, 0, 0) - - self.assertTrue(FileUtils.are2FilesIdentical(expFileName, obsFileName)) - - os.remove(fileName) - os.remove(obsFileName) - os.remove(expFileName) - - def test_dbORF_with_one_ORF(self): - fileName = "dummyFastaFile.fa" - f = open(fileName, 'w') - f.write(">seq1\n") - f.write("GAAAATATGGGGTAGATAAGGGATCTGGGTTAATTTTTT\n") - f.close() - - expFileName = "exp_dummyORFFile.ORF.map" - f = open(expFileName, 'w') - f.write("ORF|1|17\tseq1\t16\t33\n") - f.close() - - FastaUtils.dbORF(fileName, 0, 0) - obsFileName = fileName + ".ORF.map" - - self.assertTrue(FileUtils.are2FilesIdentical(expFileName, obsFileName)) - - os.remove(fileName) - os.remove(obsFileName) - os.remove(expFileName) - - def test_dbORF_with_real_ORF(self): - fileName = "dummy.fa" - with open(fileName, "w") as f: - f.write(">DmelChr4_Blaster_Recon_13_Map_4\n") - f.write("AAGTTGGACATTGAGGGCTTTCTTCGCCGTGTTTCGTTCTTTTCGACAAACAGCAGTGCT\n") - f.write("TTGCGGATCATTTTGTTTGAACAACCGACAATGCGACCAATTTCAGCGTAGGTTTTACCT\n") - f.write("TCAGAGATCACGTTTTTAATCAAATTTCTTTTTTCGACGGTACAATGCTTTCCGCGACCC\n") - f.write("ATGACTAGAGAATTTTTGGTCTTCGTTTGGAAAAAATTCAATTAAAACCTTTAATACAAC\n") - f.write("TCCTTTTTTCAAAATTTTTCGAAAAAAACCCAAAGCAATCACTCCTATTAATTTTATTCA\n") - f.write("GCAAATACGTGTTCAGTGCTATTTTTGTTACCGCCTCATTTCGCGCACTTTTGCAGCAAG\n") - f.write("TGCCCAAAAACAAAAAGAACCGTTACATTGAGAGACTAAAAATTTCTTGCTCAGAGAGCC\n") - f.write("AACATATGGTACTTATTATTCATGCAATCTGACTTAAAAAAATATAAACATTTAATAATT\n") - f.write("TTTTTTAGGAAATCAACTTTCCACCTGCAGTAGTGCTATTATTTTAACCGCAGCTGTATA\n") - f.write(">DmelChr4_Blaster_Piler_3.5_Map_7\n") - f.write("AGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTT\n") - f.write("AGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTT\n") - f.write("AGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTT\n") - f.write("AGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTT\n") - f.write("AGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTT\n") - f.write("AGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTT\n") - f.write("AGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGGTTAGGGTTAGGGTTAGGGTTAGGGT\n") - f.write("TAGGGCTAGGGTTAGGGGTTAGGGTTAGGGTTAGGCTTAGGGTTAGGGTTAGGGTTAGGG\n") - f.write("TTAGGGTTAGGGTTAGGGTTAGGAGTTAGGGTGTAGGGTTAGGGTTAGGGTTAGGGTTAG\n") - f.write("GGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAG\n") - f.write("GGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGCTAGGGTTAGGGTTAG\n") - f.write("GGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAG\n") - f.write(">DmelChr4_Blaster_Grouper_10_Map_13\n") - f.write("GCAAAGACACTAGAATAACAAGATGCGTAACGGCCATACATTGGTTTGGCACTATGCAGC\n") - f.write("CACTTTTTTGGTGACGGCCAAAATTACTCTCTTTCCGCTCACTCCCGCTGAGAGCGTAAG\n") - f.write("AAATCTAAAAATATAATTTGCTTGCTTGTGTGAGTAAAAACAAGAGACGAGAACGCGTAT\n") - f.write("AAGTGTGCGTGTTGTGCTAGAAGACGATTTTCGGGACCGAAATCAATTCTGATCGAAGAA\n") - f.write("ACGAATTTACATGGTACATATTAGGGTAGTTTTTGCCAATTTCCTAGCAATATGATAAAA\n") - f.write("TAAAAAAATTTTTAAAAATTCGCGCCCTGACTATTATAATTTTAAAGCTTTTTAAAATTT\n") - f.write("GTTTGTTAAAATCGCCGCTCGAATTAGCTACCGTTTACACATTTATATTTATGTTTAATT\n") - f.write("CTAATTTGTCTCTCATCTGACAATTTTTTAAGAAAGCGAAATATTTTTTTTTTGAAACAC\n") - f.write("TTTTAATGTTAATGTTACATCATATTAAGTCAAATGATTTAATAAATATACTAAATAATT\n") - f.write("AAATATGATAACTGTTTATTGCAAAAGTAATATCAAAGACACTAGAATTATTCTAGTGTC\n") - f.write("TTTGCTTTGTTCATATCTTGAGGCACGAAGTGCGGACACAAGCACTCAACAATCATTGCC\n") - f.write("TTATTAATTTTTCACACGCCGCAAGATGAATACTCTAATGACAAATATTCTTATATAAAG\n") - f.write("TCATTTTTGAAATTTATTTTTGTGATAATATGTACATAGATTTGGCTATTTCTAATCTAT\n") - f.write("TTTCAAATAATAATAACGTTAAGGCAATGCAAAACAAGAATTTTTTTAGTCGCATGGTGC\n") - f.write("CAATTGATCAAAAATAATATAGATTTAAAGTCTAAGAACTTCTAAGGTGAAGGGCATATT\n") - f.write("TTGTCAAATTTACAATGCATGAGCGAGCATACGTGTGCACACATACAGTTGTCTGCTATC\n") - f.write("ACTTTGTGCGTTGAAAA\n") - - expFileName = "exp.ORF.map" - with open(expFileName, "w") as f: - f.write("ORF|3|263\tDmelChr4_Blaster_Recon_13_Map_4\t189\t452\n") - f.write("ORF|2|206\tDmelChr4_Blaster_Recon_13_Map_4\t185\t391\n") - f.write("ORF|-3|164\tDmelChr4_Blaster_Recon_13_Map_4\t382\t218\n") - f.write("ORF|-1|161\tDmelChr4_Blaster_Recon_13_Map_4\t297\t136\n") - f.write("ORF|1|113\tDmelChr4_Blaster_Recon_13_Map_4\t400\t513\n") - f.write("ORF|1|113\tDmelChr4_Blaster_Recon_13_Map_4\t112\t225\n") - f.write("ORF|3|107\tDmelChr4_Blaster_Recon_13_Map_4\t81\t188\n") - f.write("ORF|1|107\tDmelChr4_Blaster_Recon_13_Map_4\t292\t399\n") - f.write("ORF|-1|104\tDmelChr4_Blaster_Recon_13_Map_4\t432\t328\n") - f.write("ORF|-2|104\tDmelChr4_Blaster_Recon_13_Map_4\t515\t411\n") - f.write("ORF|3|116\tDmelChr4_Blaster_Piler_3.5_Map_7\t393\t509\n") - f.write("ORF|-3|116\tDmelChr4_Blaster_Piler_3.5_Map_7\t505\t389\n") - f.write("ORF|-2|86\tDmelChr4_Blaster_Piler_3.5_Map_7\t518\t432\n") - f.write("ORF|1|80\tDmelChr4_Blaster_Piler_3.5_Map_7\t436\t516\n") - f.write("ORF|-3|170\tDmelChr4_Blaster_Grouper_10_Map_13\t222\t52\n") - f.write("ORF|-1|161\tDmelChr4_Blaster_Grouper_10_Map_13\t260\t99\n") - f.write("ORF|3|155\tDmelChr4_Blaster_Grouper_10_Map_13\t702\t857\n") - f.write("ORF|3|152\tDmelChr4_Blaster_Grouper_10_Map_13\t288\t440\n") - f.write("ORF|1|137\tDmelChr4_Blaster_Grouper_10_Map_13\t622\t759\n") - f.write("ORF|2|128\tDmelChr4_Blaster_Grouper_10_Map_13\t539\t667\n") - f.write("ORF|1|125\tDmelChr4_Blaster_Grouper_10_Map_13\t760\t885\n") - f.write("ORF|2|122\tDmelChr4_Blaster_Grouper_10_Map_13\t14\t136\n") - f.write("ORF|-2|113\tDmelChr4_Blaster_Grouper_10_Map_13\t847\t734\n") - f.write("ORF|1|110\tDmelChr4_Blaster_Grouper_10_Map_13\t154\t264\n") - obsFileName = "%s.ORF.map" % fileName - - FastaUtils.dbORF(fileName, 10, 30) - - self.assertTrue(FileUtils.are2FilesIdentical(expFileName, obsFileName)) - - os.remove(fileName) - os.remove(obsFileName) - os.remove(expFileName) - - def test_sortSequencesByIncreasingLength(self): - fileName = "dummyFastaFile.fa" - f = open(fileName, 'w') - f.write(">seq1_length_60\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write(">seq2_length_120\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write(">seq3_length_32\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATAT\n") - f.close() - - expFileName = "exp_dummyFastaFile.fa" - f = open(expFileName, 'w') - f.write(">seq3_length_32\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATAT\n") - f.write(">seq1_length_60\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write(">seq2_length_120\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - - f.close() - - obsFileName = "obs_dummyFastaFile.fa" - - FastaUtils.sortSequencesByIncreasingLength(fileName, obsFileName, 0) - - self.assertTrue(FileUtils.are2FilesIdentical(expFileName, obsFileName)) - - os.remove(expFileName) - os.remove(obsFileName) - - def test_sortSequencesByIncreasingLength_in_file_do_not_exists(self): - fileName = "dummyFile.fa" - isSysExitRaised = False - try: - FastaUtils.sortSequencesByIncreasingLength(fileName, "", 0) - except SystemExit: - isSysExitRaised = True - - self.assertTrue(isSysExitRaised) - - def test_sortSequencesByHeader(self): - fileName = "dummyFastaFile.fa" - f = open(fileName, "w") - f.write(">seq1::test-test\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write(">seq3\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATAT\n") - f.write(">seq2\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.close() - expFileName = "expFastaFile.fa" - f = open(expFileName, "w") - f.write(">seq1::test-test\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write(">seq2\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write(">seq3\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATAT\n") - f.close() - - obsFileName = "obsFastaFile.fa" - FastaUtils.sortSequencesByHeader(fileName, obsFileName) - self.assertTrue(FileUtils.are2FilesIdentical(expFileName, obsFileName)) - - os.remove(expFileName) - os.remove(obsFileName) - - def test_sortSequencesByHeader_no_outFileName(self): - fileName = "dummyFastaFile.fa" - f = open(fileName, "w") - f.write(">seq12\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write(">seq1\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATAT\n") - f.write(">seq2\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.close() - expFileName = "expFastaFile.fa" - f = open(expFileName, "w") - f.write(">seq1\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATAT\n") - f.write(">seq12\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write(">seq2\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.close() - - obsFileName = "dummyFastaFile_sortByHeaders.fa" - FastaUtils.sortSequencesByHeader(fileName) - self.assertTrue(FileUtils.are2FilesIdentical(expFileName, obsFileName)) - - os.remove(expFileName) - os.remove(obsFileName) - - def test_getLengthPerHeader( self ): - inFile = "dummyFile.fa" - inFileHandler = open( inFile, "w" ) - inFileHandler.write(">seq1\nAGCGATGCGT\n") - inFileHandler.write(">seq2\nAGCGATG\n") - inFileHandler.write(">seq3\nAGCGATGGTGCGTGC\n") - inFileHandler.write("AGCGATGGTGCGTGC\n") - inFileHandler.close() - - dExp = { "seq1": 10, "seq2": 7, "seq3": 30 } - - dObs = FastaUtils.getLengthPerHeader( inFile, 0 ) - - self.assertEquals( dExp, dObs ) - - os.remove( inFile ) - - def test_convertFastaHeadersFromChkToChr_grouper(self): - inFile = "dummyFastaFile.fa" - with open(inFile, "w") as f: - f.write(">MbQ1Gr1Cl0 chunk6 {Fragment} 95523..96053\n") - f.write("AGCGTGCA\n") - f.write(">MbQ77Gr8Cl0 chunk7 {Fragment} 123657..122568,121935..121446\n") - f.write("AGCATGC\n") - f.write(">MbS78Gr8Cl0 chunk7 {Fragment} 140078..139519,139470..138985,138651..138183\n") - f.write("CGTGCG\n") - f.write(">MbQ79Gr8Cl0 chunk7 {Fragment} 48021..48587,48669..49153,57346..57834\n") - f.write("AGCGTGC\n") - mapFile = "dummyMapFile.map" - with open(mapFile, "w") as f: - f.write("chunk5\tdmel_chr4\t760001\t960000\n") - f.write("chunk6\tdmel_chr4\t950001\t1150000\n") - f.write("chunk7\tdmel_chr4\t1140001\t1281640\n") - expFile = "expFile.fa" - with open(expFile, "w") as f: - f.write(">MbQ1Gr1Cl0 dmel_chr4 {Fragment} 1045523..1046053\n") - f.write("AGCGTGCA\n") - f.write(">MbQ77Gr8Cl0 dmel_chr4 {Fragment} 1263657..1262568,1261935..1261446\n") - f.write("AGCATGC\n") - f.write(">MbS78Gr8Cl0 dmel_chr4 {Fragment} 1280078..1279519,1279470..1278985,1278651..1278183\n") - f.write("CGTGCG\n") - f.write(">MbQ79Gr8Cl0 dmel_chr4 {Fragment} 1188021..1188587,1188669..1189153,1197346..1197834\n") - f.write("AGCGTGC\n") - obsFile = "obsFile.fa" - - FastaUtils.convertFastaHeadersFromChkToChr(inFile, mapFile, obsFile) - - self.assertTrue(FileUtils.are2FilesIdentical(expFile, obsFile)) - - for file in [inFile, mapFile, expFile, obsFile]: - os.remove(file) - - def test_convertFastaHeadersFromChkToChr_blastclust(self): - inFile = "dummyFastaFile.fa" - with open(inFile, "w") as f: - f.write(">BlastclustCluster12Mb63_chunk1 (dbseq-nr 0) [1,10]\n") - f.write("AGCGTGCA\n") - f.write(">BlastclustCluster12Mb53_chunk2 (dbseq-nr 2) [1,10]\n") - f.write("AGCATGC\n") - f.write(">BlastclustCluster12Mb26_chunk2 (dbseq-nr 2) [12,18]\n") - f.write("CGTGCG\n") - f.write(">BlastclustCluster12Mb35_chunk3 (dbseq-nr 0) [10,1]\n") - f.write("AGCGTGC\n") - mapFile = "dummyMapFile.map" - with open(mapFile, "w") as f: - f.write("chunk1\tchromosome1\t1\t20\n") - f.write("chunk2\tchromosome1\t16\t35\n") - f.write("chunk3\tchromosome2\t1\t20\n") - expFile = "expFile.fa" - with open(expFile, "w") as f: - f.write(">BlastclustCluster12Mb63 chromosome1 (dbseq-nr 0) 1..10\n") - f.write("AGCGTGCA\n") - f.write(">BlastclustCluster12Mb53 chromosome1 (dbseq-nr 2) 16..25\n") - f.write("AGCATGC\n") - f.write(">BlastclustCluster12Mb26 chromosome1 (dbseq-nr 2) 27..33\n") - f.write("CGTGCG\n") - f.write(">BlastclustCluster12Mb35 chromosome2 (dbseq-nr 0) 10..1\n") - f.write("AGCGTGC\n") - obsFile = "obsFile.fa" - - FastaUtils.convertFastaHeadersFromChkToChr(inFile, mapFile, obsFile) - - self.assertTrue(FileUtils.are2FilesIdentical(expFile, obsFile)) - - for file in [inFile, mapFile, expFile, obsFile]: - os.remove(file) - - def test_convertFastaToLength( self ): - inFile = "dummyFastaFile.fa" - inFileHandler = open(inFile, "w") - inFileHandler.write(">ReconCluster12Mb63 chunk1 {Fragment} 1..10\n") - inFileHandler.write("AGCGTGCA\n") - inFileHandler.write(">ReconCluster12Mb53 chunk2 {Fragment} 1..10\n") - inFileHandler.write("AGCATGCAA\n") - inFileHandler.write(">ReconCluster12Mb26 chunk2 {Fragment} 12..18\n") - inFileHandler.write("CGTGCGAAAA\n") - inFileHandler.write(">ReconCluster12Mb35 chunk3 {Fragment} 10..1\n") - inFileHandler.write("AGCGTG\n") - inFileHandler.close() - - expFile = "expFile.length" - expFileHandler = open(expFile, "w") - expFileHandler.write("ReconCluster12Mb63\t8\n") - expFileHandler.write("ReconCluster12Mb53\t9\n") - expFileHandler.write("ReconCluster12Mb26\t10\n") - expFileHandler.write("ReconCluster12Mb35\t6\n") - expFileHandler.close() - - obsFile = "obsFile.length" - - FastaUtils.convertFastaToLength(inFile, obsFile) - - self.assertTrue(FileUtils.are2FilesIdentical(expFile, obsFile)) - - for f in [inFile, expFile, obsFile]: - os.remove(f) - - def test_convertFastaToSeq( self ): - inFile = "dummyFastaFile.fa" - inFileHandler = open(inFile, "w") - inFileHandler.write(">ReconCluster12Mb63 chunk1 {Fragment} 1..10\n") - inFileHandler.write("AGCGTGCA\n") - inFileHandler.write(">ReconCluster12Mb53 chunk2 {Fragment} 1..10\n") - inFileHandler.write("AGCATGCAA\n") - inFileHandler.write(">ReconCluster12Mb26 chunk2 {Fragment} 12..18\n") - inFileHandler.write("CGTGCGAAAA\n") - inFileHandler.write(">ReconCluster12Mb35 chunk3 {Fragment} 10..1\n") - inFileHandler.write("AGCGTG\n") - inFileHandler.close() - - expFile = "expFile.seq" - expFileHandler = open(expFile, "w") - expFileHandler.write("ReconCluster12Mb63\tAGCGTGCA\tReconCluster12Mb63 chunk1 {Fragment} 1..10\t8\n") - expFileHandler.write("ReconCluster12Mb53\tAGCATGCAA\tReconCluster12Mb53 chunk2 {Fragment} 1..10\t9\n") - expFileHandler.write("ReconCluster12Mb26\tCGTGCGAAAA\tReconCluster12Mb26 chunk2 {Fragment} 12..18\t10\n") - expFileHandler.write("ReconCluster12Mb35\tAGCGTG\tReconCluster12Mb35 chunk3 {Fragment} 10..1\t6\n") - expFileHandler.close() - - obsFile = "obsFile.seq" - - FastaUtils.convertFastaToSeq(inFile, obsFile) - - self.assertTrue(FileUtils.are2FilesIdentical(expFile, obsFile)) - - for f in [inFile, expFile, obsFile]: - os.remove(f) - - def test_spliceFromCoords( self ): - coordFile = "dummyCoordFile" - coordFileHandler = open( coordFile, "w" ) - coordFileHandler.write("TE1\tchr1\t2\t5\n") - coordFileHandler.write("TE2\tchr1\t15\t11\n") - coordFileHandler.write("TE3\tchr2\t1\t3\n") - coordFileHandler.write("TE1\tchr2\t8\t10\n") - coordFileHandler.write("TE4\tchr3\t3\t1\n") - coordFileHandler.write("TE4\tchr3\t6\t4\n") - coordFileHandler.close() - - genomeFile = "dummyGenomeFile" - genomeFileHandler = open( genomeFile, "w" ) - genomeFileHandler.write(">chr1\n") - genomeFileHandler.write("AGGGGAAAAACCCCCAAAAA\n") - genomeFileHandler.write(">chr2\n") - genomeFileHandler.write("GGGAAAAGGG\n") - genomeFileHandler.write(">chr3\n") - genomeFileHandler.write("GGGGGGTTTT\n") - genomeFileHandler.close() - - expFile = "dummyExpFile" - expFileHandler = open( expFile, "w" ) - expFileHandler.write(">chr1\n") - expFileHandler.write("AAAAAAAAAAA\n") - expFileHandler.write(">chr2\n") - expFileHandler.write("AAAA\n") - expFileHandler.write(">chr3\n") - expFileHandler.write("TTTT\n") - expFileHandler.close() - - obsFile = "dummyObsFile" - - FastaUtils.spliceFromCoords( genomeFile, - coordFile, - obsFile ) - self.assertTrue( FileUtils.are2FilesIdentical( expFile, obsFile ) ) - for f in [ coordFile, genomeFile, expFile, obsFile ]: - os.remove( f ) - - def test_dbShuffle_inputFile( self ): - inFile = "dummyInFile.fa" - inFileHandler = open( inFile, "w" ) - inFileHandler.write(">seq1\n") - inFileHandler.write("AGCGATCGACAGCGCATCGCGCATCGCATCGCTACGCATAC\n") - inFileHandler.close() - - obsFile = "dummyObsFile.fa" - FastaUtils.dbShuffle( inFile, obsFile, 1 ) - - self.assertTrue( FastaUtils.dbSize( obsFile ) == 1 ) - - for f in [ inFile, obsFile ]: - os.remove( f ) - - def test_dbShuffle_inputDir( self ): - inDir = "dummyInDir" - if os.path.exists( inDir ): - shutil.rmtree( inDir ) - os.mkdir( inDir ) - inFile = "%s/dummyInFile.fa" % inDir - inFileHandler = open( inFile, "w" ) - inFileHandler.write(">seq1\n") - inFileHandler.write("AGCGATCGACAGCGCATCGCGCATCGCATCGCTACGCATAC\n") - inFileHandler.close() - - obsDir = "dummyObsDir" - FastaUtils.dbShuffle( inDir, obsDir, 1 ) - - obsFile = "dummyInFile_shuffle.fa" - self.assertTrue( len( glob.glob("%s/%s" % (obsDir,obsFile)) ) == 1 ) - - for d in [ inDir, obsDir ]: - shutil.rmtree( d ) - - def test_convertClusterFileToFastaFile(self): - inClusterFileName = "in.tab" - with open(inClusterFileName, "w") as f: - f.write("DTX-incomp_DmelChr4-B-R10-Map3_reversed\tDTX-incomp_DmelChr4-B-R9-Map3_reversed\tDTX-incomp_DmelChr4-B-G9-Map3\n") - f.write("PotentialHostGene-chim_DmelChr4-B-R5-Map5\tPotentialHostGene-chim_DmelChr4-B-R4-Map5_reversed\n") - f.write("RLX-incomp_DmelChr4-B-G220-Map3\n") - inFastaFileName = "in.fa" - with open(inFastaFileName, "w") as f: - f.write(">DTX-incomp_DmelChr4-B-R10-Map3_reversed\n") - f.write("ATCGCATCGATCGATC\n") - f.write(">DTX-incomp_DmelChr4-B-R9-Map3_reversed\n") - f.write("ATCGCATCGATCGATC\n") - f.write(">RLX-incomp_DmelChr4-B-G220-Map3\n") - f.write("ATCGCC\n") - f.write(">PotentialHostGene-chim_DmelChr4-B-R5-Map5\n") - f.write("ATCGCATCGATCGATCATCGCATCGATCGATC\n") - f.write(">PotentialHostGene-chim_DmelChr4-B-R4-Map5_reversed\n") - f.write("ATCGCATCGATCGATCATCGCATCGATCGATC\n") - f.write(">DTX-incomp_DmelChr4-B-G9-Map3\n") - f.write("ATCGCATCGATCGATC\n") - expFileName = "exp.fa" - with open(expFileName, "w") as f: - f.write(">BlastclustCluster1Mb1_DTX-incomp_DmelChr4-B-R10-Map3_reversed\n") - f.write("ATCGCATCGATCGATC\n") - f.write(">BlastclustCluster1Mb2_DTX-incomp_DmelChr4-B-R9-Map3_reversed\n") - f.write("ATCGCATCGATCGATC\n") - f.write(">BlastclustCluster3Mb1_RLX-incomp_DmelChr4-B-G220-Map3\n") - f.write("ATCGCC\n") - f.write(">BlastclustCluster2Mb1_PotentialHostGene-chim_DmelChr4-B-R5-Map5\n") - f.write("ATCGCATCGATCGATCATCGCATCGATCGATC\n") - f.write(">BlastclustCluster2Mb2_PotentialHostGene-chim_DmelChr4-B-R4-Map5_reversed\n") - f.write("ATCGCATCGATCGATCATCGCATCGATCGATC\n") - f.write(">BlastclustCluster1Mb3_DTX-incomp_DmelChr4-B-G9-Map3\n") - f.write("ATCGCATCGATCGATC\n") - obsFileName = "obs.fa" - - FastaUtils.convertClusterFileToFastaFile(inClusterFileName, inFastaFileName, obsFileName, "Blastclust") - - self.assertTrue(FileUtils.are2FilesIdentical(expFileName, obsFileName)) - os.remove(inClusterFileName) - os.remove(inFastaFileName) - os.remove(expFileName) - os.remove(obsFileName) - - - def test_convertClusterFileToFastaFile_withoutUnclusterizedSequences(self): - inClusterFileName = "in.tab" - with open(inClusterFileName, "w") as f: - f.write("DTX-incomp_DmelChr4-B-R10-Map3_reversed\tDTX-incomp_DmelChr4-B-R9-Map3_reversed\tDTX-incomp_DmelChr4-B-G9-Map3\n") - f.write("PotentialHostGene-chim_DmelChr4-B-R5-Map5\tPotentialHostGene-chim_DmelChr4-B-R4-Map5_reversed\n") - inFastaFileName = "in.fa" - with open(inFastaFileName, "w") as f: - f.write(">DTX-incomp_DmelChr4-B-R10-Map3_reversed\n") - f.write("ATCGCATCGATCGATC\n") - f.write(">DTX-incomp_DmelChr4-B-R9-Map3_reversed\n") - f.write("ATCGCATCGATCGATC\n") - f.write(">RLX-incomp_DmelChr4-B-G220-Map3\n") - f.write("ATCGCC\n") - f.write(">PotentialHostGene-chim_DmelChr4-B-R5-Map5\n") - f.write("ATCGCATCGATCGATCATCGCATCGATCGATC\n") - f.write(">PotentialHostGene-chim_DmelChr4-B-R4-Map5_reversed\n") - f.write("ATCGCATCGATCGATCATCGCATCGATCGATC\n") - f.write(">DTX-incomp_DmelChr4-B-G9-Map3\n") - f.write("ATCGCATCGATCGATC\n") - expFileName = "exp.fa" - with open(expFileName, "w") as f: - f.write(">BlastclustCluster1Mb1_DTX-incomp_DmelChr4-B-R10-Map3_reversed\n") - f.write("ATCGCATCGATCGATC\n") - f.write(">BlastclustCluster1Mb2_DTX-incomp_DmelChr4-B-R9-Map3_reversed\n") - f.write("ATCGCATCGATCGATC\n") - f.write(">BlastclustCluster3Mb1_RLX-incomp_DmelChr4-B-G220-Map3\n") - f.write("ATCGCC\n") - f.write(">BlastclustCluster2Mb1_PotentialHostGene-chim_DmelChr4-B-R5-Map5\n") - f.write("ATCGCATCGATCGATCATCGCATCGATCGATC\n") - f.write(">BlastclustCluster2Mb2_PotentialHostGene-chim_DmelChr4-B-R4-Map5_reversed\n") - f.write("ATCGCATCGATCGATCATCGCATCGATCGATC\n") - f.write(">BlastclustCluster1Mb3_DTX-incomp_DmelChr4-B-G9-Map3\n") - f.write("ATCGCATCGATCGATC\n") - obsFileName = "obs.fa" - - FastaUtils.convertClusterFileToFastaFile(inClusterFileName, inFastaFileName, obsFileName, "Blastclust") - - self.assertTrue(FileUtils.are2FilesIdentical(expFileName, obsFileName)) - os.remove(inClusterFileName) - os.remove(inFastaFileName) - os.remove(expFileName) - os.remove(obsFileName) - - def test_convertClusterFileToMapFile(self): - for clustAlgo in ["Blastclust", "MCL"]: - inFileName = "dummy%sOut.fa" % clustAlgo - inF = open(inFileName, "w") - inF.write(">%sCluster1Mb1_chunk1 (dbseq-nr 1) [1,14]\n" % clustAlgo) - inF.write("gaattgtttactta\n") - inF.write(">%sCluster3Mb1_chunk5 (dbseq-nr 8) [1000,1014]\n" % clustAlgo) - inF.write("gaattgtttactta\n") - inF.write(">%sCluster1Mb2_chunk1 (dbseq-nr 1) [30,44]\n" % clustAlgo) - inF.write("gaattgtttactta\n") - inF.write(">%sCluster2Mb1_chunk2 (dbseq-nr 1) [100,114]\n" % clustAlgo) - inF.write("gaattgtttactta") - inF.close() - - fileExp = "%sToMapExpected.map" % clustAlgo - outF = open(fileExp, "w") - outF.write("%sCluster1Mb1\tchunk1\t1\t14\n" % clustAlgo) - outF.write("%sCluster3Mb1\tchunk5\t1000\t1014\n" % clustAlgo) - outF.write("%sCluster1Mb2\tchunk1\t30\t44\n" % clustAlgo) - outF.write("%sCluster2Mb1\tchunk2\t100\t114\n" % clustAlgo) - outF.close() - - fileObs = "%s.map" % os.path.splitext(inFileName)[0] - FastaUtils.convertClusteredFastaFileToMapFile(inFileName, fileObs) - - self.assertTrue(FileUtils.are2FilesIdentical(fileObs, fileExp)) - - os.remove(inFileName) - os.remove(fileObs) - os.remove(fileExp) - - def test_getNstreches_2(self): - fileName = "dummy.fa" - with open(fileName, "w") as f: - f.write(">seq2\n") - f.write("NNNNxxNNnNTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTT\n") - f.write("AGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTT\n") - f.write("AGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTT\n") - f.write("AGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTT\n") - f.write("AGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTT\n") - f.write("AGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTT\n") - f.write("AGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGGTTAGGGTTAGGGTTAGGGTTAGGGT\n") - f.write("TAGGGCTAGGGTTAGGGGTTAGGGTTAGGGTTAGGCTTAGGGTTAGGGTTAGGGTTAGGG\n") - f.write("\n") - f.write("TTAGGGTTAGGGTTAGGGTTAGGAGTTAGGGTGTAGGGTTAGGGTTAGGGTTAGGGTTAG\n") - f.write("GGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAG\n") - f.write("GGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGCTAGGGTTAGGGTTAG\n") - f.write("GGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAG\n") - f.write("\n") - f.write(">seq1\n") - f.write("AAGTTGGACATTGAGGGCTTTCTTCGCCGTGTTTCGTTCTTTTCGACAAACAGCAGTGCT\n") - f.write("TTGCGGATCATxxxxxxxxxxxxxxxTTTGTTTGAACAACCGACAATGCGACCAATTTCA\n") - f.write("GCGTAGGTTTTACCTTCAGAGATCACGTTTTTAATCAAATTTCTTTTTTCGACGGTACAA\n") - f.write("TGCTTTCCGCGACCCATGACTAGAGAATTTTTGGTCTTCGTTTGGAAAAAATTCAATTAA\n") - f.write("AACCTTTAATACAACTCCTTNNTTTTCAAAATTTTTCGAAAAAAACCCAAAGCAATCACT\n") - f.write("CCTATTAATTTTATTCAGCAAATACGTGTTCAGTGCTATTTTTGTNTACCGCCTCATTTC\n") - f.write("\n") - f.write("GCGCACTTTTGCAGCAAGTGCCCAAAAACAAAAAGAACCGTTACATTGAGAGACTAAAAA\n") - f.write("TTTCTTGCTCAGAGAGCCAACATATGGTACTTATTATTCATGCAATCTGACTTAAAAAAA\n") - f.write("TATAAACATTTAATAATTTTTTTTAGGAANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN\n") - f.write("NNATCAACTTTCCACCTGCAGTAGTGCTATTATTTTAACCGCAGCTGTATAxx\n") - f.write("\n") - f.write("") - - FastaUtils.writeNstreches(fileName, 2) - obsFileName = "%s_Nstretches.map" % os.path.splitext(os.path.split(fileName)[1])[0] - - expFileName = "expNstretches.map" - with open(expFileName, "w") as f: - f.write("N_stretch\tseq1\t72\t86\n") - f.write("N_stretch\tseq1\t261\t262\n") - f.write("N_stretch\tseq1\t510\t542\n") - f.write("N_stretch\tseq1\t592\t593\n") - f.write("N_stretch\tseq2\t1\t10\n") - - self.assertTrue(FileUtils.are2FilesIdentical(obsFileName, expFileName)) - - os.remove(obsFileName) - os.remove(expFileName) - os.remove(fileName) - - def test_getNstreches_1(self): - fileName = "dummy.fa" - with open(fileName, "w") as f: - f.write(">seq2\n") - f.write("NNNNNNNNNNTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTT\n") - f.write("AGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTT\n") - f.write("AGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTT\n") - f.write("AGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTT\n") - f.write("AGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTT\n") - f.write("AGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTT\n") - f.write("AGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGGTTAGGGTTAGGGTTAGGGTTAGGGT\n") - f.write("TAGGGCTAGGGTTAGGGGTTAGGGTTAGGGTTAGGCTTAGGGTTAGGGTTAGGGTTAGGG\n") - f.write("TTAGGGTTAGGGTTAGGGTTAGGAGTTAGGGTGTAGGGTTAGGGTTAGGGTTAGGGTTAG\n") - f.write("GGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAG\n") - f.write("GGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGCTAGGGTTAGGGTTAG\n") - f.write("GGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAG\n") - f.write(">seq1\n") - f.write("AAGTTGGACATTGAGGGCTTTCTTCGCCGTGTTTCGTTCTTTTCGACAAACAGCAGTGCT\n") - f.write("TTGCGGATCATNNNNNNNNNNNNNNNTTTGTTTGAACAACCGACAATGCGACCAATTTCA\n") - f.write("GCGTAGGTTTTACCTTCAGAGATCACGTTTTTAATCAAATTTCTTTTTTCGACGGTACAA\n") - f.write("TGCTTTCCGCGACCCATGACTAGAGAATTTTTGGTCTTCGTTTGGAAAAAATTCAATTAA\n") - f.write("AACCTTTAATACAACTCCTTNNTTTTCAAAATTTTTCGAAAAAAACCCAAAGCAATCACT\n") - f.write("CCTATTAATTTTATTCAGCAAATACGTGTTCAGTGCTATTTTTGTNTACCGCCTCATTTC\n") - f.write("GCGCACTTTTGCAGCAAGTGCCCAAAAACAAAAAGAACCGTTACATTGAGAGACTAAAAA\n") - f.write("TTTCTTGCTCAGAGAGCCAACATATGGTACTTATTATTCATGCAATCTGACTTAAAAAAA\n") - f.write("TATAAACATTTAATAATTTTTTTTAGGAANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN\n") - f.write("NNATCAACTTTCCACCTGCAGTAGTGCTATTATTTTAACCGCAGCTGTATAx\n") - - FastaUtils.writeNstreches(fileName, 1) - obsFileName = "%s_Nstretches.map" % os.path.splitext(os.path.split(fileName)[1])[0] - - expFileName = "expNstretches.map" - with open(expFileName, "w") as f: - f.write("N_stretch\tseq1\t72\t86\n") - f.write("N_stretch\tseq1\t261\t262\n") - f.write("N_stretch\tseq1\t346\t346\n") - f.write("N_stretch\tseq1\t510\t542\n") - f.write("N_stretch\tseq1\t592\t592\n") - f.write("N_stretch\tseq2\t1\t10\n") - - self.assertTrue(FileUtils.are2FilesIdentical(obsFileName, expFileName)) - - os.remove(obsFileName) - os.remove(expFileName) - os.remove(fileName) - - def test_getNstreches_0(self): - fileName = "dummy.fa" - with open(fileName, "w") as f: - f.write(">seq2\n") - f.write("NNNNNNNNNNTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTT\n") - f.write("AGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTT\n") - f.write("AGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTT\n") - f.write("AGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTT\n") - f.write("AGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTT\n") - f.write("AGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTT\n") - f.write("AGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGGTTAGGGTTAGGGTTAGGGTTAGGGT\n") - f.write("TAGGGCTAGGGTTAGGGGTTAGGGTTAGGGTTAGGCTTAGGGTTAGGGTTAGGGTTAGGG\n") - f.write("TTAGGGTTAGGGTTAGGGTTAGGAGTTAGGGTGTAGGGTTAGGGTTAGGGTTAGGGTTAG\n") - f.write("GGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAG\n") - f.write("GGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGCTAGGGTTAGGGTTAG\n") - f.write("GGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAG\n") - f.write(">seq1\n") - f.write("AAGTTGGACATTGAGGGCTTTCTTCGCCGTGTTTCGTTCTTTTCGACAAACAGCAGTGCT\n") - f.write("TTGCGGATCATNNNNNNNNNNNNNNNTTTGTTTGAACAACCGACAATGCGACCAATTTCA\n") - f.write("GCGTAGGTTTTACCTTCAGAGATCACGTTTTTAATCAAATTTCTTTTTTCGACGGTACAA\n") - f.write("TGCTTTCCGCGACCCATGACTAGAGAATTTTTGGTCTTCGTTTGGAAAAAATTCAATTAA\n") - f.write("AACCTTTAATACAACTCCTTNNTTTTCAAAATTTTTCGAAAAAAACCCAAAGCAATCACT\n") - f.write("CCTATTAATTTTATTCAGCAAATACGTGTTCAGTGCTATTTTTGTNTACCGCCTCATTTC\n") - f.write("GCGCACTTTTGCAGCAAGTGCCCAAAAACAAAAAGAACCGTTACATTGAGAGACTAAAAA\n") - f.write("TTTCTTGCTCAGAGAGCCAACATATGGTACTTATTATTCATGCAATCTGACTTAAAAAAA\n") - f.write("TATAAACATTTAATAATTTTTTTTAGGAANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN\n") - f.write("NNATCAACTTTCCACCTGCAGTAGTGCTATTATTTTAACCGCAGCTGTATANN\n") - - FastaUtils.writeNstreches(fileName, 0) - obsFileName = "%s_Nstretches.map" % os.path.splitext(os.path.split(fileName)[1])[0] - - expFileName = "expNstretches.map" - with open(expFileName, "w") as f: - pass - - self.assertTrue(FileUtils.are2FilesIdentical(obsFileName, expFileName)) - - os.remove(obsFileName) - os.remove(expFileName) - os.remove(fileName) - - def test_getNstreches_2_GFF(self): - fileName = "dummy.fa" - with open(fileName, "w") as f: - f.write(">seq2\n") - f.write("NNNNxxNNnNTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTT\n") - f.write("AGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTT\n") - f.write("AGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTT\n") - f.write("AGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTT\n") - f.write("AGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTT\n") - f.write("AGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTT\n") - f.write("AGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGGTTAGGGTTAGGGTTAGGGTTAGGGT\n") - f.write("TAGGGCTAGGGTTAGGGGTTAGGGTTAGGGTTAGGCTTAGGGTTAGGGTTAGGGTTAGGG\n") - f.write("\n") - f.write("TTAGGGTTAGGGTTAGGGTTAGGAGTTAGGGTGTAGGGTTAGGGTTAGGGTTAGGGTTAG\n") - f.write("GGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAG\n") - f.write("GGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGCTAGGGTTAGGGTTAG\n") - f.write("GGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAG\n") - f.write("\n") - f.write(">seq1\n") - f.write("AAGTTGGACATTGAGGGCTTTCTTCGCCGTGTTTCGTTCTTTTCGACAAACAGCAGTGCT\n") - f.write("TTGCGGATCATxxxxxxxxxxxxxxxTTTGTTTGAACAACCGACAATGCGACCAATTTCA\n") - f.write("GCGTAGGTTTTACCTTCAGAGATCACGTTTTTAATCAAATTTCTTTTTTCGACGGTACAA\n") - f.write("TGCTTTCCGCGACCCATGACTAGAGAATTTTTGGTCTTCGTTTGGAAAAAATTCAATTAA\n") - f.write("AACCTTTAATACAACTCCTTNNTTTTCAAAATTTTTCGAAAAAAACCCAAAGCAATCACT\n") - f.write("CCTATTAATTTTATTCAGCAAATACGTGTTCAGTGCTATTTTTGTNTACCGCCTCATTTC\n") - f.write("\n") - f.write("GCGCACTTTTGCAGCAAGTGCCCAAAAACAAAAAGAACCGTTACATTGAGAGACTAAAAA\n") - f.write("TTTCTTGCTCAGAGAGCCAACATATGGTACTTATTATTCATGCAATCTGACTTAAAAAAA\n") - f.write("TATAAACATTTAATAATTTTTTTTAGGAANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN\n") - f.write("NNATCAACTTTCCACCTGCAGTAGTGCTATTATTTTAACCGCAGCTGTATAxx\n") - f.write("\n") - f.write("") - - FastaUtils.writeNstreches(fileName, 2, outFormat = "gff") - obsFileName = "%s_Nstretches.gff3" % os.path.splitext(os.path.split(fileName)[1])[0] - - expFileName = "expNstretches.gff3" - with open(expFileName, "w") as f: - f.write("##gff-version 3\n") - f.write("seq1\tFastaUtils\tN_stretch\t72\t86\t.\t.\t.\tName=N_stretch_72-86\n") - f.write("seq1\tFastaUtils\tN_stretch\t261\t262\t.\t.\t.\tName=N_stretch_261-262\n") - f.write("seq1\tFastaUtils\tN_stretch\t510\t542\t.\t.\t.\tName=N_stretch_510-542\n") - f.write("seq1\tFastaUtils\tN_stretch\t592\t593\t.\t.\t.\tName=N_stretch_592-593\n") - f.write("seq2\tFastaUtils\tN_stretch\t1\t10\t.\t.\t.\tName=N_stretch_1-10\n") - - self.assertTrue(FileUtils.are2FilesIdentical(obsFileName, expFileName)) - - os.remove(obsFileName) - os.remove(expFileName) - os.remove(fileName) - -if __name__ == "__main__": - unittest.main() \ No newline at end of file
--- a/commons/core/seq/test/Utils_for_T_FastaUtils.py Mon Apr 29 03:26:07 2013 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,857 +0,0 @@ -# Copyright INRA (Institut National de la Recherche Agronomique) -# http://www.inra.fr -# http://urgi.versailles.inra.fr -# -# This software is governed by the CeCILL license under French law and -# abiding by the rules of distribution of free software. You can use, -# modify and/ or redistribute the software under the terms of the CeCILL -# license as circulated by CEA, CNRS and INRIA at the following URL -# "http://www.cecill.info". -# -# As a counterpart to the access to the source code and rights to copy, -# modify and redistribute granted by the license, users are provided only -# with a limited warranty and the software's author, the holder of the -# economic rights, and the successive licensors have only limited -# liability. -# -# In this respect, the user's attention is drawn to the risks associated -# with loading, using, modifying and/or developing or reproducing the -# software by the user in light of its specific status of free software, -# that may mean that it is complicated to manipulate, and that also -# therefore means that it is reserved for developers and experienced -# professionals having in-depth computer knowledge. Users are therefore -# encouraged to load and test the software's suitability as regards their -# requirements in conditions enabling the security of their systems and/or -# data to be ensured and, more generally, to use and operate it in the -# same conditions as regards security. -# -# The fact that you are presently reading this means that you have had -# knowledge of the CeCILL license and that you accept its terms. - - -class Utils_for_T_FastaUtils( object ): - - def _createFastaFile_for_empty_file(fileName): - f = open(fileName, 'w') - f.write("") - f.close() - - _createFastaFile_for_empty_file = staticmethod ( _createFastaFile_for_empty_file ) - - - def _createFastaFile_one_sequence(fileName): - f = open(fileName, 'w') - f.write(">seq 1\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCG\n") - f.close() - - _createFastaFile_one_sequence = staticmethod ( _createFastaFile_one_sequence ) - - - def createFastaFile_twoSequences( fileName ): - f = open( fileName, "w" ) - f.write( ">seq 1\n" ) - f.write( "ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n" ) - f.write( "ATATTCG\n" ) - f.write( ">seq 2\n" ) - f.write( "ATATTCTTTCATCGATCGATCGGCGGCTATATGCTAGTGACGAAGCTAGTGTGAGTAGTA\n" ) - f.write( "ATATTCG\n" ) - f.close() - - createFastaFile_twoSequences = staticmethod ( createFastaFile_twoSequences ) - - - def createFastaFile_seq_1( fileName ): - f = open( fileName, "w" ) - f.write( ">seq 1\n" ) - f.write( "ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n" ) - f.write( "ATATTCG\n" ) - f.close() - - createFastaFile_seq_1 = staticmethod( createFastaFile_seq_1 ) - - - def createFastaFile_seq_2( fileName ): - f = open( fileName, "w" ) - f.write( ">seq 2\n" ) - f.write( "ATATTCTTTCATCGATCGATCGGCGGCTATATGCTAGTGACGAAGCTAGTGTGAGTAGTA\n" ) - f.write( "ATATTCG\n" ) - f.close() - - createFastaFile_seq_2 = staticmethod( createFastaFile_seq_2 ) - - - def _createFastaFile_sequence_without_header(fileName): - f = open(fileName, 'w') - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCG\n") - f.close() - - _createFastaFile_sequence_without_header = staticmethod ( _createFastaFile_sequence_without_header ) - - - def _createFastaFile_four_sequences(fileName): - f = open(fileName, 'w') - f.write(">seq 1\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCG\n") - f.write(">seq 2\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCG\n") - f.write(">seq 3\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCG\n") - f.write(">seq 4\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCG\n") - f.close() - - _createFastaFile_four_sequences = staticmethod ( _createFastaFile_four_sequences ) - - - def _createFastaFile_three_sequences(fileName): - f = open(fileName, 'w') - f.write(">seq 1\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCG\n") - f.write(">seq 2\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCG\n") - f.write(">seq 4\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCG\n") - f.close() - - _createFastaFile_three_sequences = staticmethod ( _createFastaFile_three_sequences ) - - -# ------------------ for dbSplit ---------------- # - - def _createBatch1_two_sequences(inFileName): - f = open(inFileName, 'w') - f.write(">seq 1\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCG\n") - f.write(">seq 2\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCG\n") - f.close() - - _createBatch1_two_sequences = staticmethod ( _createBatch1_two_sequences ) - - - def _createBatch2_two_sequences(inFileName): - f = open(inFileName, 'w') - f.write(">seq 3\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCG\n") - f.write(">seq 4\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCG\n") - f.close() - - _createBatch2_two_sequences = staticmethod ( _createBatch2_two_sequences ) - - - def _createBatch1_three_sequences(inFileName): - f = open(inFileName, 'w') - f.write(">seq 1\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCG\n") - f.write(">seq 2\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCG\n") - f.write(">seq 3\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCG\n") - f.close() - - _createBatch1_three_sequences = staticmethod ( _createBatch1_three_sequences ) - - - def _createBatch2_one_sequence(inFileName): - f = open(inFileName, 'w') - f.write(">seq 4\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCG\n") - f.close() - - _createBatch2_one_sequence = staticmethod ( _createBatch2_one_sequence ) - - - def _createFastaFile_ten_sequences(fileName): - f = open(fileName, 'w') - f.write(">seq 1\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write(">seq 2\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write(">seq 3\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write(">seq 4\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write(">seq 5\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write(">seq 6\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write(">seq 7\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write(">seq 8\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write(">seq 9\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write(">seq 10\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.close() - - _createFastaFile_ten_sequences = staticmethod ( _createFastaFile_ten_sequences ) - - - def _createBatch_one_small_sequence(fileName, seqName): - f = open(fileName, 'w') - f.write(">" +seqName + "\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.close() - - _createBatch_one_small_sequence = staticmethod ( _createBatch_one_small_sequence ) - - -# ------------------ for dbChunks ------------------- # - - def _createFastaFile_big_sequence(fileName): - f = open(fileName, 'w') - f.write(">sequence\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCG\n") - f.close() - - _createFastaFile_big_sequence = staticmethod ( _createFastaFile_big_sequence ) - - - def _createFastaFile_of_Chunks(fileName): - f = open(fileName, 'w') - f.write('>chunk01\n') - f.write('ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n') - f.write('>chunk02\n') - f.write('GTGAGTAGTAATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGT\n') - f.write('>chunk03\n') - f.write('GCTAGCTAGTGTGAGTAGTAATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCA\n') - f.write('>chunk04\n') - f.write('ATGCTAGTCAGCTAGCTAGTGTGAGTAGTAATATTCGCGCATCGATCGATCGGCGGCTAT\n') - f.write('>chunk05\n') - f.write('CGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTAATATTCGCGCATCGATCGAT\n') - f.write('>chunk06\n') - f.write('ATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTAATATTCGCGC\n') - f.write('>chunk07\n') - f.write('ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n') - f.write('>chunk08\n') - f.write('GTGAGTAGTAATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGT\n') - f.write('>chunk09\n') - f.write('GCTAGCTAGTGTGAGTAGTAATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCA\n') - f.write('>chunk10\n') - f.write('ATGCTAGTCAGCTAGCTAGTGTGAGTAGTAATATTCGCGCATCGATCGATCGGCGGCTAT\n') - f.write('>chunk11\n') - f.write('CGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTAATATTCGCGCATCGATCGAT\n') - f.write('>chunk12\n') - f.write('ATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTAATATTCGCGC\n') - f.write('>chunk13\n') - f.write('ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n') - f.write('>chunk14\n') - f.write('GTGAGTAGTAATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGT\n') - f.write('>chunk15\n') - f.write('GCTAGCTAGTGTGAGTAGTAATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCA\n') - f.write('>chunk16\n') - f.write('ATGCTAGTCAGCTAGCTAGTGTGAGTAGTAATATTCGCGCATCGATCGATCGGCGGCTAT\n') - f.write('>chunk17\n') - f.write('CGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTAATATTCGCGCATCGATCGAT\n') - f.write('>chunk18\n') - f.write('ATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTAATATTCGCGC\n') - f.write('>chunk19\n') - f.write('ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n') - f.write('>chunk20\n') - f.write('GTGAGTAGTAATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGT\n') - f.write('>chunk21\n') - f.write('GCTAGCTAGTGTGAGTAGTAATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCA\n') - f.write('>chunk22\n') - f.write('ATGCTAGTCAGCTAGCTAGTGTGAGTAGTAATATTCGCGCATCGATCGATCGGCGGCTAT\n') - f.write('>chunk23\n') - f.write('CGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTAATATTCG\n') - f.close() - - _createFastaFile_of_Chunks = staticmethod ( _createFastaFile_of_Chunks ) - - - def _createMapFile_of_Chunks(fileName): - f = open(fileName, 'w') - f.write("chunk01\tsequence\t1\t60\n") - f.write("chunk02\tsequence\t51\t110\n") - f.write("chunk03\tsequence\t101\t160\n") - f.write("chunk04\tsequence\t151\t210\n") - f.write("chunk05\tsequence\t201\t260\n") - f.write("chunk06\tsequence\t251\t310\n") - f.write("chunk07\tsequence\t301\t360\n") - f.write("chunk08\tsequence\t351\t410\n") - f.write("chunk09\tsequence\t401\t460\n") - f.write("chunk10\tsequence\t451\t510\n") - f.write("chunk11\tsequence\t501\t560\n") - f.write("chunk12\tsequence\t551\t610\n") - f.write("chunk13\tsequence\t601\t660\n") - f.write("chunk14\tsequence\t651\t710\n") - f.write("chunk15\tsequence\t701\t760\n") - f.write("chunk16\tsequence\t751\t810\n") - f.write("chunk17\tsequence\t801\t860\n") - f.write("chunk18\tsequence\t851\t910\n") - f.write("chunk19\tsequence\t901\t960\n") - f.write("chunk20\tsequence\t951\t1010\n") - f.write("chunk21\tsequence\t1001\t1060\n") - f.write("chunk22\tsequence\t1051\t1110\n") - f.write("chunk23\tsequence\t1101\t1147\n") - f.close() - - _createMapFile_of_Chunks = staticmethod ( _createMapFile_of_Chunks ) - - - def _createFastaFile_of_cut(fileName): - f = open(fileName, 'w') - f.write(">1 sequence {Cut} 1..60\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write(">2 sequence {Cut} 51..110\n") - f.write("GTGAGTAGTAATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGT\n") - f.write(">3 sequence {Cut} 101..160\n") - f.write("GCTAGCTAGTGTGAGTAGTAATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCA\n") - f.write(">4 sequence {Cut} 151..210\n") - f.write("ATGCTAGTCAGCTAGCTAGTGTGAGTAGTAATATTCGCGCATCGATCGATCGGCGGCTAT\n") - f.write(">5 sequence {Cut} 201..260\n") - f.write("CGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTAATATTCGCGCATCGATCGAT\n") - f.write(">6 sequence {Cut} 251..310\n") - f.write("ATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTAATATTCGCGC\n") - f.write(">7 sequence {Cut} 301..360\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write(">8 sequence {Cut} 351..410\n") - f.write("GTGAGTAGTAATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGT\n") - f.write(">9 sequence {Cut} 401..460\n") - f.write("GCTAGCTAGTGTGAGTAGTAATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCA\n") - f.write(">10 sequence {Cut} 451..510\n") - f.write("ATGCTAGTCAGCTAGCTAGTGTGAGTAGTAATATTCGCGCATCGATCGATCGGCGGCTAT\n") - f.write(">11 sequence {Cut} 501..560\n") - f.write("CGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTAATATTCGCGCATCGATCGAT\n") - f.write(">12 sequence {Cut} 551..610\n") - f.write("ATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTAATATTCGCGC\n") - f.write(">13 sequence {Cut} 601..660\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write(">14 sequence {Cut} 651..710\n") - f.write("GTGAGTAGTAATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGT\n") - f.write(">15 sequence {Cut} 701..760\n") - f.write("GCTAGCTAGTGTGAGTAGTAATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCA\n") - f.write(">16 sequence {Cut} 751..810\n") - f.write("ATGCTAGTCAGCTAGCTAGTGTGAGTAGTAATATTCGCGCATCGATCGATCGGCGGCTAT\n") - f.write(">17 sequence {Cut} 801..860\n") - f.write("CGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTAATATTCGCGCATCGATCGAT\n") - f.write(">18 sequence {Cut} 851..910\n") - f.write("ATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTAATATTCGCGC\n") - f.write(">19 sequence {Cut} 901..960\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write(">20 sequence {Cut} 951..1010\n") - f.write("GTGAGTAGTAATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGT\n") - f.write(">21 sequence {Cut} 1001..1060\n") - f.write("GCTAGCTAGTGTGAGTAGTAATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCA\n") - f.write(">22 sequence {Cut} 1051..1110\n") - f.write("ATGCTAGTCAGCTAGCTAGTGTGAGTAGTAATATTCGCGCATCGATCGATCGGCGGCTAT\n") - f.write(">23 sequence {Cut} 1101..1147\n") - f.write("CGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTAATATTCG\n") - f.close() - - _createFastaFile_of_cut = staticmethod ( _createFastaFile_of_cut ) - - - def _createFastaFile_of_Nstretch(fileName): - f = open(fileName, 'w') - f.write("") - f.close() - - _createFastaFile_of_Nstretch = staticmethod ( _createFastaFile_of_Nstretch ) - - -# ------------------ for splitSeqPerCluster ------------------- # - - def _createFastaFile_of_four_sequences_with_specific_header(inFileName): - f = open(inFileName, 'w') - f.write(">ReconCluster1Mb155 chunk183 {Fragment} 1..5506\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCG\n") - f.write(">MbQ3Gr2Cl0 chunk440 {Fragment} 2678..3645\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCG\n") - f.write(">MbS2Gr2Cl0 chunk622 {Fragment} 104..1078\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCG\n") - f.write(">PilerCluster3.574Mb796 chunk0117 {Fragment} 51582..50819\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCG\n") - f.close() - - _createFastaFile_of_four_sequences_with_specific_header = staticmethod ( _createFastaFile_of_four_sequences_with_specific_header ) - - - def _createFastaFile_of_four_sequences_with_specific_header_shuffle(inFileName): - f = open(inFileName, 'w') - f.write(">MbQ3Gr2Cl0 chunk440 {Fragment} 2678..3645\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCG\n") - f.write(">ReconCluster1Mb155 chunk183 {Fragment} 1..5506\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCG\n") - f.write(">MbS2Gr2Cl0 chunk622 {Fragment} 104..1078\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCG\n") - f.write(">PilerCluster3.574Mb796 chunk0117 {Fragment} 51582..50819\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCG\n") - f.close() - - _createFastaFile_of_four_sequences_with_specific_header_shuffle = staticmethod ( _createFastaFile_of_four_sequences_with_specific_header_shuffle ) - - - def _createFastaFile_of_four_sequences_with_specific_header_in_same_cluster(inFileName): - f = open(inFileName, 'w') - f.write(">ReconCluster1Mb155 chunk1 {Fragment} 1..5506\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCG\n") - f.write(">ReconCluster1Mb155 chunk2 {Fragment} 1..5506\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCG\n") - f.write(">ReconCluster1Mb155 chunk3 {Fragment} 1..5506\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCG\n") - f.write(">ReconCluster1Mb155 chunk4 {Fragment} 1..5506\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCG\n") - f.close() - - _createFastaFile_of_four_sequences_with_specific_header_in_same_cluster = staticmethod ( _createFastaFile_of_four_sequences_with_specific_header_in_same_cluster ) - - - def _createFastaFile_of_first_cluster_result(inFileName): - f = open(inFileName, 'w') - f.write(">ReconCluster1Mb155 chunk183 {Fragment} 1..5506\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCG\n") - f.close() - - _createFastaFile_of_first_cluster_result = staticmethod ( _createFastaFile_of_first_cluster_result ) - - - def _createFastaFile_of_second_cluster_result(inFileName): - f = open(inFileName, 'w') - f.write(">MbQ3Gr2Cl0 chunk440 {Fragment} 2678..3645\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCG\n") - f.write(">MbS2Gr2Cl0 chunk622 {Fragment} 104..1078\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCG\n") - f.close() - - _createFastaFile_of_second_cluster_result = staticmethod ( _createFastaFile_of_second_cluster_result ) - - - def _createFastaFile_of_third_cluster_result(inFileName): - f = open(inFileName, 'w') - f.write(">PilerCluster3.574Mb796 chunk0117 {Fragment} 51582..50819\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCG\n") - f.close() - - _createFastaFile_of_third_cluster_result = staticmethod ( _createFastaFile_of_third_cluster_result ) - - - def _createFastaFile_of_first_cluster_result_with_simplify_header(inFileName): - f = open(inFileName, 'w') - f.write(">Piler_Cluster1_Seq155\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCG\n") - f.close() - - _createFastaFile_of_first_cluster_result_with_simplify_header = staticmethod ( _createFastaFile_of_first_cluster_result_with_simplify_header ) - - - def _createFastaFile_of_second_cluster_result_with_simplify_header(inFileName): - f = open(inFileName, 'w') - f.write(">Piler_Cluster2_Seq3\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCG\n") - f.write(">Piler_Cluster2_Seq2\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCG\n") - f.close() - - _createFastaFile_of_second_cluster_result_with_simplify_header = staticmethod ( _createFastaFile_of_second_cluster_result_with_simplify_header ) - - - def _createFastaFile_of_third_cluster_result_with_simplify_header(inFileName): - f = open(inFileName, 'w') - f.write(">Piler_Cluster3.574_Seq796\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCG\n") - f.close() - - _createFastaFile_of_third_cluster_result_with_simplify_header = staticmethod ( _createFastaFile_of_third_cluster_result_with_simplify_header ) - -# ---------------------------------- # - - def _createPatternFile(fileName): - f = open(fileName, 'w') - f.write('seq 3\n') - f.write('f\n') - f.write('s.q 1\n') - f.write('q 8\n') - - _createPatternFile = staticmethod ( _createPatternFile ) - - - def _createResult_of_dbLengthFilter_sup(inFileName): - f = open(inFileName, 'w') - f.write(">seq 2\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCG\n") - f.write(">seq 3\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCG\n") - f.write(">seq 4\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCG\n") - f.close() - - _createResult_of_dbLengthFilter_sup = staticmethod ( _createResult_of_dbLengthFilter_sup ) - - - def _createFastaFile_four_sequences_for_header_filtering(fileName): - f = open(fileName, 'w') - f.write(">seq1_HostGene\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCG\n") - f.write(">seq2_SSR\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCG\n") - f.write(">seq3_Map2_NoCat\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCG\n") - f.write(">seq4_confused\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCGCGCATCGATCGATCGGCGGCTATATGCTAGTCAGCTAGCTAGTGTGAGTAGTA\n") - f.write("ATATTCG\n") - f.close() - - _createFastaFile_four_sequences_for_header_filtering = staticmethod ( _createFastaFile_four_sequences_for_header_filtering ) - - - def _createFastaFile_three_sequences_with_ORFs(fileName): - f = open(fileName, 'w') - f.write(">Mivi_sl_Blaster_Grouper_1_Map_3\n") - f.write("TACAGTCAAACCTGAGAAAATTTATATCGCCCAATCTTATACCTGGCAAAATTTATGGAC\n") - f.write("TTTTCAATCTCCCGACTTTTTTGGCTGACAGAACCTGTCCAATCTTATACCTTATAATTT\n") - f.write("ATGGGTTTACAGGTCAAATTATAAGATAAGAGAGAGCCGGAAATGAGCGATTGATCAGGA\n") - f.write("ATTGGCCTCTCCTTCGGCGTTCTTGTTGACGAGCCGCCTGCTGGAACAGTCCGAAATGCC\n") - f.write("CCGAAACAGCCGAGAAGCGAGCACAGTAGAGCAAAGGCGGCGGTTGACACGTTGACAGGC\n") - f.write("TATTAGTCGCGACGTGCTTCTCTCTCCTCTTCCGCCGACAACGACGCCGAAATGAACATC\n") - f.write("TTCACAATTCGAGAAGCCCTCATCAGAAATTCCTCTTCATATCATCATGGTCTCATTCCC\n") - f.write("TTCCCGGAATTCAACTGCTGGCGCCACGCTCAAATCTTGTCTGATCGCAAGAACAAAGGA\n") - f.write("TCGACCGACCATACACCTCTTCCCAACGGTCGCGGGCCTCTCGATGGCGATCGCGGCATC\n") - f.write("ATCAACGCGATGAACGCTCTGAAGACGGCGAACGATGAGCTGGTCGAAAAGGGGATAGTT\n") - f.write("ACGAGCAACGAGAAGATGAGTATCCACTTTCTCGTCGATGTGGAGGAGGAGAACCTTGCT\n") - f.write("GGTGGGGCTGAAATGACCGATCAGGAGATTGTGGACCTGGTCATTGCCGAAGAGTTGGAG\n") - f.write("GAGAATTGCGAGGGAGAAGGAGGAGAGGAGGAAGCGGAGATAGAGCTCCGACCGGCGGAG\n") - f.write("CGAACGACGCTGAAGGAGGCAATCTCAGCGCTTGATGTTTTCCTTAGGTTTGCTATGAAT\n") - f.write("GGGTACTCAGGTCCAACGGATTTGATTTCTTTTGAGGACGAGGCTAGGAGGATTCGCAGG\n") - f.write("ACTCTTGTTGCCGAGCAGGATGCCGCGAGGATTCAGACGACAATGACTTCGTATTTCCAG\n") - f.write("CGTCAGTAG\n") - f.write(">Mivi_sl_Blaster_Grouper_2_Map_3\n") - f.write("TACAGTCAGACCTGAGAAAATTTATATCGCCCAATCTTATACCTGTCAAAATTTATGGAC\n") - f.write("TTTTCAATCTCCCGACTTTTTTGGCTGACAGAACCTGTCCAATCTTATACCTTATAATTT\n") - f.write("ATGGGTTTACAGGTCAAATTATAAGATAAGAGAGAGCCGGAAATGAGCGATTGATCAGGA\n") - f.write("ATTGGCCTCTCCTTCGGCGTTCTTGTTGACGAGCCGCCTGCTGGAAGAGTCCGAAATGCC\n") - f.write("CCGAAACAGCCAAGAAGCGAGCACAGTAGAGCAAAGGCGGCGGTTGACACGTTGACAGGC\n") - f.write("TAGTCGCGACGTGCTTCTCTCTCCTCTTCCGCCGACAACGACGCCGAAATGAACATCTTC\n") - f.write("ACAATCCGAGAAGCCCTCATCAGAAATTCCTCTTCATATCATCATGGTCTCATTCCCTTC\n") - f.write("CCGGAATTCAACTGCTGGCGCCACGCTCAAATCTTGTCTGATCGCAAGAACAAAGGATCG\n") - f.write("ACCGACCATACACCTCTTCCCAACGGTCGCGGGCCTCTCGATGGCGATCGCGGCATCATC\n") - f.write("AACGCGATGAACGCTCTGAAGACGGCGAACGATGAGCTGGTCGAAAAGGGGATAGTTACG\n") - f.write("AGCAACGAGAAGATGAGTATCCACTTTCTCGTCGATGTGGAGGAGGAGAACCTTGCTGGT\n") - f.write("GGGGCTGAAATGACCGATCAGGAGATTGTGGACCTGGGGTCATTGCCGAAGAGTTGGAGG\n") - f.write("AGAATTGCGAGGGAGAACTTGAAGGAGGAGAGGAGGAAGCGGAGATAGAGCTCCGACCGG\n") - f.write("CGGAGCGAACGACGCTGAAGGAGGCAATCTCAGCGCTTGGTGTTTTCCTTAGGTTTGCTA\n") - f.write("TGAATGGGTACTCAGGTCCAACGAATTTGATTTCTTTTGAGGACGAGGCTAGGAGGATTC\n") - f.write("GCAGGACTCTTGTTGCCGAGCAGGATGCCGCGAGGATTCAGACGACAATGACTTCGTATT\n") - f.write("TCCAGCGTCAGTAGGTCAAGATATTTTTTCTTGGAGCTTTCATAACTTGTTAGATGTCAT\n") - f.write("CATGCCTCAGTAGAGGCCGTACATTGGCTGCAATTCAGTAATTCGGGCCTTCTGAATTTC\n") - f.write("CTCCCCCTCAAAAGTCAATGTATCGACTCAAACGATGCACGAAAATTCTTGATTTGATGT\n") - f.write("AGGAAGCTCAAAAACGGAGTTTCAGGTCATAATGTAGTGATCTGAAGCCGAACTCTCCAA\n") - f.write("GCTTATACCTGTCTTAATTTATGGGAAAATCCGTCCACCGAAAATATAAATTTTCTCAGG\n") - f.write("TCTGACTGTA\n") - f.write(">Mivi_sl_Blaster_Grouper_3_Map_3\n") - f.write("CAACACAAAGATAAGGCACCTTCATCCAGTGGCTCGCACGAACTTTCAATTGCAAGTCGT\n") - f.write("TGGCGTGCGCTGGGCGGGATCAAAACCGGGTCTGGGAGTCGCGTAACCCACTGGAGCAAG\n") - f.write("TAGGTGGTAGCCTGGACTGACAACGTGGACGTCAGCGACTTGAAATAGGTATTCGCGGCT\n") - f.write("TTCGTGGTCGGTGTACCCCTGTGTGTCCGGCATCGGCTGTCCAGAGTCGCCAGCCTGCCC\n") - f.write("GGTGCGAATGTGGGGGGCAGTCTCGGTCGCGCACGTGCGATGTCCCTCTCCCCACACGGG\n") - f.write("CCTGTCGGCTGCGGCTAACGGCCCCTGCAATGAGTCCTATCGACAGAAGTCCACCCAAGC\n") - f.write("TCAGCCTTCCCTCCACCAACACCAACATCGCAAGCCTCTCAAAAATTCACATCTCTTACA\n") - f.write("TCCCCTCGAAACACCCACTAAATGGATCCCTACCCTATCACTTGGCGGCAGTACTAGTAG\n") - f.write("CACGGGCCCAACTTCGACGGATCTCGAACGGACTTCCCACGGGTTCTCGGTGTGCAAGCG\n") - f.write("TCTCAGGTCAAGGTTTTGGTTGGTGGGCTTTCTGGGTGTGCAAAGGGGATTATTATAGAG\n") - f.write("GGAAGAAGAAGAAGGATGGGACCAGGGAGGCAGAGACGTGCGGGGTCAGGTTGATGGGGG\n") - f.write("AAGGTCGTGGAAGCGAAGAACGAGAGGCGAGCTTGTCGTTTGAGGAGAAAGGGGCCTCGC\n") - f.write("TGCCTGCAGAGAAAGGCGGTAAGTTGACCGGCGCAAAGTTATCATGAGACCGTAGCTCAG\n") - f.write("TATCGTTTCCTGTCGAGGGCATGGGTTACAGTCCGTCGAACTATGCGCGAGATCATCTGG\n") - f.write("TAGTAAAGAATCCCGCCGCCACTGACCAGATCTCCTGTGTCCTCTCAGCTCTCACAAAAC\n") - f.write("CTAGAAAAGCTTCGCATGGAGCCAAACGAATACTCCAATCCGACATTGAGCAAGACCCTT\n") - f.write("CCCTCTCGCCTCATAGGAACGAAACGGCCCATCTTCGAAGGGACAACTCTCTGTCGGCCG\n") - f.write("AGGAGATGACTTTTCTGACCGAGCGTAAGAGGAGATCGCACAGAGTCAGGGGTTGGTCGA\n") - f.write("GCTTTTGGGATTGGAGGAAGGGGGAGAGATTGATGAACGAGACGTCCCAATAGTGAGTCG\n") - f.write("CTCCGCACTGGAGCAATGATGGCAAACCGTGGAGTTGAAGAGTCTTGAACGCTATCAGAT\n") - f.write("CGGGCTAGGAGGGTCGGGAGGCGGTTGAATGCGTGCCAACCTTGGCTTCCTGTCAACGAT\n") - f.write("CCTCGCCTTTCAAGAGCTCGATCTATGGCAGTTGTTGACCTACACAGCGGGGGTATCCGG\n") - f.write("GTCCTGTTGGGCTCTGGCGAGTTTATATACGCTACCGATCGCACGTCCGCTCACACCATC\n") - f.write("CATCACTCAACGCCGCTGCGGTGATTGAGCACTTTATGTCCGTCTCAGGGGATCACCGTC\n") - f.write("TGAGTACAAAATCGGTCAACCGAGTCAGGGAGGCACACGGAGGGTACCAATCGCTTTTCG\n") - f.write("GACCTTTGATTTCAAAGTCTAAGAACAGTCAAAAGATCTGTAGTGAGTACAGACCACTGA\n") - f.write("CCCTCACTTGAGTAGATATTGACACTGACGAAGATCGCTACACTGCGGGCCTTGACAGTG\n") - f.write("ATTGATCTGTACTCGACACTGGTCTCATCGTACTTCTGGATGATGCCCAGAAAAGATGGG\n") - f.write("AAGGATCAGGTTGATCCGTATGTACCCCTGCGTCGGCTCGTGAGGTCCAGAGAGGGTCAT\n") - f.write("TCCACTGACTGTCCCGAACCCCCCCTGGCTGATCGTCAGCGCCTCGATGAAATGGTCGCG\n") - f.write("CGCGTACGATAATGCGGGCCTGGCTCACGGATGCGCGCCTTTCCCTATCGTCAGTCACGC\n") - f.write("AAATGTAGGCTTCCATCTGGAACGCTGCTTGATGGCCTAAGAATGGGCCGTCACGGAACA\n") - f.write("GCTCACCGCCTGCAGACACGAACGGCCGTGGCGGTCATGGAAGGATCTGAACGTGTCGCC\n") - f.write("CCATACGATTGACGAAGAGATGTAAGCTCCCTTGGTA\n") - f.close() - - _createFastaFile_three_sequences_with_ORFs = staticmethod ( _createFastaFile_three_sequences_with_ORFs ) - - - def _createFastaFile_three_sequences_with_ORFs_expected(fileName): - f = open(fileName, 'w') - f.write("ORF|1|662\tMivi_sl_Blaster_Grouper_1_Map_3\t307\t969\n") - f.write("ORF|-3|254\tMivi_sl_Blaster_Grouper_1_Map_3\t793\t539\n") - f.write("ORF|2|197\tMivi_sl_Blaster_Grouper_1_Map_3\t356\t553\n") - f.write("ORF|3|176\tMivi_sl_Blaster_Grouper_1_Map_3\t288\t464\n") - f.write("ORF|-1|176\tMivi_sl_Blaster_Grouper_1_Map_3\t786\t610\n") - f.write("ORF|3|143\tMivi_sl_Blaster_Grouper_1_Map_3\t672\t815\n") - f.write("ORF|1|131\tMivi_sl_Blaster_Grouper_1_Map_3\t175\t306\n") - f.write("ORF|-2|131\tMivi_sl_Blaster_Grouper_1_Map_3\t797\t666\n") - f.write("ORF|2|128\tMivi_sl_Blaster_Grouper_1_Map_3\t167\t295\n") - f.write("ORF|-2|119\tMivi_sl_Blaster_Grouper_1_Map_3\t242\t123\n") - f.write("ORF|1|464\tMivi_sl_Blaster_Grouper_2_Map_3\t304\t768\n") - f.write("ORF|3|305\tMivi_sl_Blaster_Grouper_2_Map_3\t669\t974\n") - f.write("ORF|-3|251\tMivi_sl_Blaster_Grouper_2_Map_3\t1094\t843\n") - f.write("ORF|-2|245\tMivi_sl_Blaster_Grouper_2_Map_3\t531\t286\n") - f.write("ORF|-3|224\tMivi_sl_Blaster_Grouper_2_Map_3\t791\t567\n") - f.write("ORF|-2|215\tMivi_sl_Blaster_Grouper_2_Map_3\t1098\t883\n") - f.write("ORF|2|197\tMivi_sl_Blaster_Grouper_2_Map_3\t353\t550\n") - f.write("ORF|3|173\tMivi_sl_Blaster_Grouper_2_Map_3\t288\t461\n") - f.write("ORF|-1|173\tMivi_sl_Blaster_Grouper_2_Map_3\t1087\t914\n") - f.write("ORF|-1|143\tMivi_sl_Blaster_Grouper_2_Map_3\t310\t167\n") - f.write("ORF|3|626\tMivi_sl_Blaster_Grouper_3_Map_3\t141\t767\n") - f.write("ORF|2|434\tMivi_sl_Blaster_Grouper_3_Map_3\t164\t598\n") - f.write("ORF|3|365\tMivi_sl_Blaster_Grouper_3_Map_3\t768\t1133\n") - f.write("ORF|-3|359\tMivi_sl_Blaster_Grouper_3_Map_3\t1514\t1155\n") - f.write("ORF|-1|320\tMivi_sl_Blaster_Grouper_3_Map_3\t1879\t1559\n") - f.write("ORF|3|272\tMivi_sl_Blaster_Grouper_3_Map_3\t1299\t1571\n") - f.write("ORF|-2|248\tMivi_sl_Blaster_Grouper_3_Map_3\t1503\t1255\n") - f.write("ORF|1|236\tMivi_sl_Blaster_Grouper_3_Map_3\t1576\t1812\n") - f.write("ORF|-1|227\tMivi_sl_Blaster_Grouper_3_Map_3\t1423\t1196\n") - f.write("ORF|-3|227\tMivi_sl_Blaster_Grouper_3_Map_3\t368\t141\n") - f.close() - - _createFastaFile_three_sequences_with_ORFs_expected = staticmethod ( _createFastaFile_three_sequences_with_ORFs_expected ) - - - def _createLinkFile_four_sequences_with_new_headers(fileName): - f = open(fileName, 'w') - f.write("seq 1\tReconCluster1Mb155 chunk183 {Fragment} 1..5506\t1\t127\n") - f.write("seq 2\tMbQ3Gr2Cl0 chunk440 {Fragment} 2678..3645\t1\t307\n") - f.write("seq 3\tMbS2Gr2Cl0 chunk622 {Fragment} 104..1078\t1\t427\n") - f.write("seq 4\tPilerCluster3.574Mb796 chunk0117 {Fragment} 51582..50819\t1\t307\n") - - _createLinkFile_four_sequences_with_new_headers = staticmethod ( _createLinkFile_four_sequences_with_new_headers ) - - - def _createLinkFile_four_sequences_same_headers(fileName): - f = open(fileName, 'w') - f.write("seq 1\tseq 1\t1\t127\n") - f.write("seq 2\tseq 2\t1\t307\n") - f.write("seq 3\tseq 3\t1\t427\n") - f.write("seq 4\tseq 4\t1\t307\n") - - _createLinkFile_four_sequences_same_headers = staticmethod ( _createLinkFile_four_sequences_same_headers )
--- a/commons/core/utils/test/TestSuite_utils.py Mon Apr 29 03:26:07 2013 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,50 +0,0 @@ -#!/usr/bin/env python - -# Copyright INRA (Institut National de la Recherche Agronomique) -# http://www.inra.fr -# http://urgi.versailles.inra.fr -# -# This software is governed by the CeCILL license under French law and -# abiding by the rules of distribution of free software. You can use, -# modify and/ or redistribute the software under the terms of the CeCILL -# license as circulated by CEA, CNRS and INRIA at the following URL -# "http://www.cecill.info". -# -# As a counterpart to the access to the source code and rights to copy, -# modify and redistribute granted by the license, users are provided only -# with a limited warranty and the software's author, the holder of the -# economic rights, and the successive licensors have only limited -# liability. -# -# In this respect, the user's attention is drawn to the risks associated -# with loading, using, modifying and/or developing or reproducing the -# software by the user in light of its specific status of free software, -# that may mean that it is complicated to manipulate, and that also -# therefore means that it is reserved for developers and experienced -# professionals having in-depth computer knowledge. Users are therefore -# encouraged to load and test the software's suitability as regards their -# requirements in conditions enabling the security of their systems and/or -# data to be ensured and, more generally, to use and operate it in the -# same conditions as regards security. -# -# The fact that you are presently reading this means that you have had -# knowledge of the CeCILL license and that you accept its terms. - - -import unittest -import sys -import Test_FileUtils - - -def main(): - - TestSuite_utils = unittest.TestSuite() - - TestSuite_utils.addTest( unittest.makeSuite( Test_FileUtils.Test_FileUtils, "test" ) ) - - runner = unittest.TextTestRunner(sys.stderr, 2, 2) - runner.run( TestSuite_utils ) - - -if __name__ == "__main__": - main()
--- a/commons/core/utils/test/Test_FileUtils.py Mon Apr 29 03:26:07 2013 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,883 +0,0 @@ -# Copyright INRA (Institut National de la Recherche Agronomique) -# http://www.inra.fr -# http://urgi.versailles.inra.fr -# -# This software is governed by the CeCILL license under French law and -# abiding by the rules of distribution of free software. You can use, -# modify and/ or redistribute the software under the terms of the CeCILL -# license as circulated by CEA, CNRS and INRIA at the following URL -# "http://www.cecill.info". -# -# As a counterpart to the access to the source code and rights to copy, -# modify and redistribute granted by the license, users are provided only -# with a limited warranty and the software's author, the holder of the -# economic rights, and the successive licensors have only limited -# liability. -# -# In this respect, the user's attention is drawn to the risks associated -# with loading, using, modifying and/or developing or reproducing the -# software by the user in light of its specific status of free software, -# that may mean that it is complicated to manipulate, and that also -# therefore means that it is reserved for developers and experienced -# professionals having in-depth computer knowledge. Users are therefore -# encouraged to load and test the software's suitability as regards their -# requirements in conditions enabling the security of their systems and/or -# data to be ensured and, more generally, to use and operate it in the -# same conditions as regards security. -# -# The fact that you are presently reading this means that you have had -# knowledge of the CeCILL license and that you accept its terms. - - -import os -import sys -import unittest -import time -import shutil -from commons.core.utils.FileUtils import FileUtils - - -class Test_FileUtils( unittest.TestCase ): - - def setUp( self ): - self._uniqId = "%s_%s" % ( time.strftime("%Y%m%d%H%M%S"), os.getpid() ) - - def tearDown( self ): - self._uniqId = "" - - def test_getNbLinesInSingleFile_non_empty( self ): - file = "dummyFile_%s" % ( self._uniqId ) - f = open( file, "w" ) - f.write( "line1\n" ) - f.write( "line2\n" ) - f.write( "line3" ) - f.close() - exp = 3 - obs = FileUtils.getNbLinesInSingleFile( file ) - self.assertEquals( exp, obs ) - os.remove( file ) - - def test_getNbLinesInSingleFile_non_empty_endEmptyLine( self ): - file = "dummyFile_%s" % ( self._uniqId ) - f = open( file, "w" ) - f.write( "line1\n" ) - f.write( "line2\n" ) - f.write( "line3\n" ) - f.write( "\n" ) - f.close() - exp = 3 - obs = FileUtils.getNbLinesInSingleFile( file ) - self.assertEquals( exp, obs ) - os.remove( file ) - - def test_getNbLinesInSingleFile_empty( self ): - file = "dummyFile_%s" % ( self._uniqId ) - os.system( "touch %s" % ( file ) ) - exp = 0 - obs = FileUtils.getNbLinesInSingleFile( file ) - self.assertEquals( exp, obs ) - os.remove( file ) - - def test_getNbLinesInFileList_non_empty( self ): - f = open("dummy1.txt", "w") - f.write("line1\n") - f.write("line2\n") - f.write("line3") - f.close() - f = open("dummy2.txt", "w") - f.write("line1\n") - f.write("line2\n") - f.write("line3") - f.close() - f = open("dummy3.txt", "w") - f.write("line1\n") - f.write("line2\n") - f.write("line3") - f.close() - lFiles = [ "dummy1.txt", "dummy2.txt", "dummy3.txt" ] - exp = 9 - obs = FileUtils.getNbLinesInFileList( lFiles ) - self.assertEqual( exp, obs ) - for f in lFiles: - os.remove( f ) - - def test_catFilesByPattern( self ): - f = open("dummy1.txt", "w") - f.write("line11\n") - f.write("line12\n") - f.write("line13") - f.close() - f = open("dummy2.txt", "w") - f.write("line21\n") - f.write("line22\n") - f.write("line23\n") - f.close() - f = open("dummy3.txt", "w") - f.write("line31\n") - f.write("line32\n") - f.write("line33") - f.close() - lFiles = [ "dummy1.txt", "dummy2.txt", "dummy3.txt" ] - outFile = "concatFiles.txt" - FileUtils.catFilesByPattern( "dummy*.txt", outFile ) - self.assertTrue( os.path.exists( outFile ) ) - exp = "line11\nline12\nline13line21\nline22\nline23\nline31\nline32\nline33" - obs = FileUtils.getFileContent( [ outFile ] ) - self.assertEqual( exp, obs ) - for f in lFiles: - os.remove( f ) - os.remove(outFile) - - def test_catFilesByPattern_with_headers( self ): - f = open("dummy1.txt", "w") - f.write("line11\n") - f.write("line12\n") - f.write("line13\n") - f.close() - f = open("dummy2.txt", "w") - f.write("line21\n") - f.write("line22\n") - f.write("line23\n") - f.close() - f = open("dummy3.txt", "w") - f.write("line31\n") - f.write("line32\n") - f.write("line33\n") - f.close() - lFiles = [ "dummy1.txt", "dummy2.txt", "dummy3.txt" ] - outFile = "concatFiles.txt" - FileUtils.catFilesByPattern( "dummy*.txt", outFile, skipHeaders = True) - self.assertTrue( os.path.exists( outFile ) ) - exp = "line12\nline13\nline22\nline23\nline32\nline33\n" - obs = FileUtils.getFileContent( [ outFile ] ) - self.assertEqual( exp, obs ) - for f in lFiles: - os.remove( f ) - os.remove(outFile) - - def test_catFilesByPattern_with_separator( self ): - f = open("dummy1.txt", "w") - f.write("line11\n") - f.write("line12\n") - f.write("line13") - f.close() - f = open("dummy2.txt", "w") - f.write("line21\n") - f.write("line22\n") - f.write("line23\n") - f.close() - f = open("dummy3.txt", "w") - f.write("line31\n") - f.write("line32\n") - f.write("line33") - f.close() - lFiles = [ "dummy1.txt", "dummy2.txt", "dummy3.txt" ] - outFile = "concatFiles.txt" - FileUtils.catFilesByPattern( "dummy*.txt", outFile, separator = "\n+------------+\n") - self.assertTrue( os.path.exists( outFile ) ) - exp = "line11\nline12\nline13\n+------------+\nline21\nline22\nline23\n\n+------------+\nline31\nline32\nline33" - obs = FileUtils.getFileContent( [ outFile ] ) - self.assertEqual( exp, obs ) - for f in lFiles: - os.remove( f ) - os.remove(outFile) - - def test_catFilesByPattern_with_headers_and_separator( self ): - f = open("dummy1.txt", "w") - f.write("line11\n") - f.write("line12\n") - f.write("line13\n") - f.close() - f = open("dummy2.txt", "w") - f.write("line21\n") - f.write("line22\n") - f.write("line23\n") - f.close() - f = open("dummy3.txt", "w") - f.write("line31\n") - f.write("line32\n") - f.write("line33\n") - f.close() - lFiles = [ "dummy1.txt", "dummy2.txt", "dummy3.txt" ] - outFile = "concatFiles.txt" - FileUtils.catFilesByPattern( "dummy*.txt", outFile, separator = "\n+------------+\n", skipHeaders = True) - self.assertTrue( os.path.exists( outFile ) ) - exp = "line12\nline13\n\n+------------+\nline22\nline23\n\n+------------+\nline32\nline33\n" - obs = FileUtils.getFileContent( [ outFile ] ) - self.assertEqual( exp, obs ) - for f in lFiles: - os.remove( f ) - os.remove(outFile) - - def test_isRessourceExists_exists(self): - f = open("dummyFile.txt", "w") - f.close() - self.assertTrue(FileUtils.isRessourceExists("dummyFile.txt")) - os.system("rm dummyFile.txt") - - def test_isRessourceExists_not_exists(self): - self.assertFalse(FileUtils.isRessourceExists("dummyFile.txt")) - - def test_isEmpty_empty( self ): - file = "dummyFile_%s" % ( self._uniqId ) - os.system( "touch %s" % ( file ) ) - self.assertTrue( FileUtils.isEmpty( file ) ) - os.remove( file ) - - def test_isEmpty_non_empty( self ): - file = "dummyFile_%s" % ( self._uniqId ) - fileHandler = open( file, "w" ) - fileHandler.write( "line1\n" ) - fileHandler.close() - self.assertFalse( FileUtils.isEmpty( file ) ) - os.remove( file ) - - def test_are2FilesIdentical_true( self ): - f = open("dummy1.txt", "w") - f.write("line11\n") - f.close() - f = open("dummy2.txt", "w") - f.write("line11\n") - f.close() - self.assertTrue( FileUtils.are2FilesIdentical( "dummy1.txt", "dummy2.txt" ) ) - for f in [ "dummy1.txt", "dummy2.txt" ]: - os.remove( f ) - - def test_are2FilesIdentical_false( self ): - f = open("dummy1.txt", "w") - f.write("line11\n") - f.close() - f = open("dummy2.txt", "w") - f.write("line21\n") - f.close() - self.assertFalse( FileUtils.are2FilesIdentical( "dummy1.txt", "dummy2.txt" ) ) - for f in [ "dummy1.txt", "dummy2.txt" ]: - os.remove( f ) - - def test_getFileContent( self ): - inFile = "dummyInFile_%s" % ( self._uniqId ) - inFileHandler = open( inFile, "w" ) - inFileHandler.write( "zgdfet\n" ) - inFileHandler.write( "agdfet\n" ) - inFileHandler.close() - exp = "zgdfet\n" + "agdfet\n" - obs = FileUtils.getFileContent( [ inFile ] ) - self.assertEquals( exp, obs ) - os.remove( inFile ) - - def test_sortFileContent( self ): - inFile = "dummyInFile_%s" % ( self._uniqId ) - inFileHandler = open( inFile, "w" ) - inFileHandler.write( "zgdfet\n" ) - inFileHandler.write( "agdfet\n" ) - inFileHandler.close() - - expFile = "dummyExpFile_%s" % ( self._uniqId ) - expFileHandler = open( expFile, "w" ) - expFileHandler.write( "agdfet\n" ) - expFileHandler.write( "zgdfet\n" ) - expFileHandler.close() - - FileUtils.sortFileContent( inFile ) - - self.assertTrue( FileUtils.are2FilesIdentical( expFile, inFile ) ) - for f in [ inFile, expFile ]: - os.remove( f ) - - def test_removeFilesByPattern_prefix( self ): - fileName1 = "filetest.fa" - fileName2 = "test.fa.Nstretch.map" - fileName3 = "test.fa_cut" - os.system("touch %s" % fileName1) - os.system("touch %s" % fileName2) - os.system("touch %s" % fileName3) - FileUtils.removeFilesByPattern("test*") - self.assertTrue(os.path.exists(fileName1)) - self.assertFalse(os.path.exists(fileName2)) - self.assertFalse(os.path.exists(fileName3)) - os.remove(fileName1) - - def test_removeFilesByPattern_suffix( self ): - fileName1 = "filetest" - fileName2 = "test.fa.Nstretch.map" - fileName3 = "test.fa_cut" - os.system("touch %s" % fileName1) - os.system("touch %s" % fileName2) - os.system("touch %s" % fileName3) - FileUtils.removeFilesByPattern("*test") - self.assertFalse(os.path.exists(fileName1)) - self.assertTrue(os.path.exists(fileName2)) - self.assertTrue(os.path.exists(fileName3)) - os.remove(fileName2) - os.remove(fileName3) - - def test_removeFilesBySuffixList( self ): - tmpDir = "dummyDir_%s" % ( self._uniqId ) - if not os.path.exists( tmpDir ): - os.mkdir( tmpDir ) - commonPrefix = "dummyFile_%s" %( self._uniqId ) - os.system( "touch %s/%s.fa" % ( tmpDir, commonPrefix ) ) - os.system( "touch %s/%s.fa.Nstretch.map" % ( tmpDir, commonPrefix ) ) - os.system( "touch %s/%s.fa_cut" % ( tmpDir, commonPrefix ) ) - lSuffixes = [ ".Nstretch.map", "_cut" ] - FileUtils.removeFilesBySuffixList( tmpDir, lSuffixes ) - self.assertTrue( os.path.exists( "%s/%s.fa" % ( tmpDir, commonPrefix ) ) ) - self.assertFalse( os.path.exists( "%s/%s.fa.Nstretch.map" % ( tmpDir, commonPrefix ) ) ) - self.assertFalse( os.path.exists( "%s/%s.fa_cut" % ( tmpDir, commonPrefix ) ) ) - shutil.rmtree( tmpDir ) - - def test_removeRepeatedBlanks( self ): - inFileName = "dummyWithRepeatedBlanks.dum" - obsFileName = "dummyWithoutRepeatedBlanks.dum" - expFileName = "dummyExpWithoutRepeatedBlanks.dum" - self._writeFileWithRepeatedBlanks( inFileName ) - self._writeFileWithoutRepeatedBlanks( expFileName ) - FileUtils.removeRepeatedBlanks( inFileName, obsFileName ) - self.assertTrue( FileUtils.are2FilesIdentical( expFileName, obsFileName ) ) - for f in [ inFileName, expFileName, obsFileName ]: - os.remove( f ) - - def test_RemoveRepeatedBlanks_without_outfileName (self): - inFileName = "dummyWithRepeatedBlanks.dum" - expFileName = "dummyExpWithoutRepeatedBlanks.dum" - obsFileName = inFileName - self._writeFileWithRepeatedBlanks( inFileName ) - self._writeFileWithoutRepeatedBlanks( expFileName ) - FileUtils.removeRepeatedBlanks( inFileName ) - self.assertTrue( FileUtils.are2FilesIdentical( expFileName, obsFileName ) ) - for f in [ inFileName, expFileName ]: - os.remove( f ) - - - def test_fromWindowsToUnixEof( self ): - inFile = "dummyInFile" - inFileHandler = open( inFile, "w" ) - inFileHandler.write( "toto\r\n" ) - inFileHandler.close() - expFile = "dummyExpFile" - expFileHandler = open( expFile, "w" ) - expFileHandler.write( "toto\n" ) - expFileHandler.close() - FileUtils.fromWindowsToUnixEof( inFile ) - self.assertTrue( FileUtils.are2FilesIdentical( expFile, inFile ) ) - for f in [ inFile, expFile ]: - os.remove( f ) - - - def test_removeDuplicatedLines( self ): - inFile = "dummyInFile" - inFileHandler = open( inFile, "w" ) - inFileHandler.write( "toto\n" ) - inFileHandler.write( "titi\n" ) - inFileHandler.write( "toto\n" ) - inFileHandler.close() - expFile = "dummyExpFile" - expFileHandler = open( expFile, "w" ) - expFileHandler.write( "toto\n" ) - expFileHandler.write( "titi\n" ) - expFileHandler.close() - FileUtils.removeDuplicatedLines( inFile ) - self.assertTrue( FileUtils.are2FilesIdentical( expFile, inFile ) ) - for f in [ inFile, expFile ]: - os.remove( f ) - - - def test_writeLineListInFile( self ): - inFile = "dummyInFile" - lLines = [ "toto\n", "titi\n" ] - expFile = "dummyExpFile" - expFileHandler = open( expFile, "w" ) - expFileHandler.write( "toto\n" ) - expFileHandler.write( "titi\n" ) - expFileHandler.close() - FileUtils.writeLineListInFile( inFile, lLines ) - self.assertTrue( FileUtils.are2FilesIdentical( expFile, inFile ) ) - for f in [ inFile, expFile ]: - os.remove( f ) - - - def test_getAbsoluteDirectoryPathList(self): - currentDir = os.getcwd() - rootDir = currentDir + "/" + "dummy" - if os.path.exists( rootDir ): - shutil.rmtree(rootDir) - os.mkdir(rootDir) - - os.mkdir(rootDir + "/" + "dummyDir1") - os.mkdir(rootDir + "/" + "dummyDir2") - - expLDir = [rootDir + "/" + "dummyDir1", rootDir + "/" + "dummyDir2"] - obsLDir = FileUtils.getAbsoluteDirectoryPathList(rootDir) - - expLDir.sort() - obsLDir.sort() - self.assertEquals(expLDir, obsLDir) - - shutil.rmtree(rootDir + "/" + "dummyDir1") - shutil.rmtree(rootDir + "/" + "dummyDir2") - shutil.rmtree(rootDir) - - - def test_getAbsoluteDirectoryPathList_empty_dir(self): - currentDir = os.getcwd() - rootDir = currentDir + "/" + "dummy" - if os.path.exists( rootDir ): - shutil.rmtree(rootDir) - os.mkdir(rootDir) - - expLDir = [] - obsLDir = FileUtils.getAbsoluteDirectoryPathList(rootDir) - - self.assertEquals(expLDir, obsLDir) - - shutil.rmtree(rootDir) - - - def test_getSubListAccordingToPattern_match(self): - lPath = ["/home/repet/titi", "/pattern/test", "/patter/test", "/_patternic_/test", "/home/patternic/test", "/home/pattern", "pattern", ""] - - expL = ["/pattern/test", "/_patternic_/test", "/home/patternic/test", "/home/pattern", "pattern"] - obsL = FileUtils.getSubListAccordingToPattern(lPath, "pattern") - - self.assertEquals(expL, obsL) - - - def test_getSubListAccordingToPattern_not_match(self): - lPath = ["/home/repet/titi", "/pattern/test", "/patter/test", "/_patternic_/test", "/home/patternic/test", "/home/pattern", "pattern", ""] - - expL = ["/home/repet/titi", "/patter/test", ""] - obsL = FileUtils.getSubListAccordingToPattern(lPath, "pattern", False) - - self.assertEquals(expL, obsL) - - - def test_getFileNamesList(self): - currentDir = os.getcwd() - rootDir = currentDir + "/" + "dummy" - if os.path.exists( rootDir ): - shutil.rmtree(rootDir) - os.mkdir(rootDir) - - directory = "testDir" - os.mkdir(rootDir + "/" + directory) - fileName1 = "dummyFile1.gff" - fullFileName1 = rootDir + "/" + directory + "/" + fileName1 - file1 = open(fullFileName1, "w") - file1.close() - fileName2 = "dummyFile2.gff" - fullFileName2 = rootDir + "/" + directory + "/" + fileName2 - file2 = open(fullFileName2, "w") - file2.close() - - expLFiles = [fileName1, fileName2] - obsLFiles = FileUtils.getFileNamesList(rootDir + "/" + directory) - - self.assertEquals(expLFiles, sorted(obsLFiles)) - - shutil.rmtree(rootDir) - - def test_getFileNamesList_withPattern(self): - currentDir = os.getcwd() - rootDir = currentDir + "/" + "dummy" - if os.path.exists( rootDir ): - shutil.rmtree(rootDir) - os.mkdir(rootDir) - - directory = "testDir" - os.mkdir(rootDir + "/" + directory) - fileName1 = "dummyFile1.gff" - fullFileName1 = rootDir + "/" + directory + "/" + fileName1 - file1 = open(fullFileName1, "w") - file1.close() - fileName2 = "dummyFile2.gff" - fullFileName2 = rootDir + "/" + directory + "/" + fileName2 - file2 = open(fullFileName2, "w") - file2.close() - - expLFiles = [fileName1] - obsLFiles = FileUtils.getFileNamesList(rootDir + "/" + directory, "dummyFile1.*") - - self.assertEquals(expLFiles, obsLFiles) - - shutil.rmtree(rootDir) - - def test_getFileNamesList_empty_dir(self): - currentDir = os.getcwd() - rootDir = currentDir + "/" + "dummy" - os.mkdir(rootDir) - - directory = "testDir" - os.mkdir(rootDir + "/" + directory) - - expLFiles = [] - obsLFiles = FileUtils.getFileNamesList(rootDir + "/" + directory) - - self.assertEquals(expLFiles, obsLFiles) - - shutil.rmtree(rootDir) - - def test_getMd5SecureHash( self ): - if "hashlib" in sys.modules: - inFile = "dummyInFile" - inFileHandler = open( inFile, "w" ) - inFileHandler.write( "DLZIH17T63B;?" ) - inFileHandler.close() - exp = "50d1e2ded8f03881f940f70226e2b986" - obs = FileUtils.getMd5SecureHash( inFile ) - self.assertEqual( exp, obs ) - os.remove( inFile ) - - def test_catFilesOfDir(self): - currentDir = os.getcwd() - rootDir = currentDir + "/" + "dummy" - if os.path.exists( rootDir ): - shutil.rmtree(rootDir) - os.mkdir(rootDir) - - directory = "testDir" - os.mkdir(rootDir + "/" + directory) - fileName1 = "dummyFile1.gff" - fullFileName1 = rootDir + "/" + directory + "/" + fileName1 - file1 = open(fullFileName1, "w") - file1.write("file1\n") - file1.close() - fileName2 = "dummyFile2.gff" - fullFileName2 = rootDir + "/" + directory + "/" + fileName2 - file2 = open(fullFileName2, "w") - file2.write("file2\n") - file2.close() - obsFile = "obsFile" - expFile = "expFile" - expF = open(expFile, "w") - expF.write("file1\nfile2\n") - expF.close() - FileUtils.catFilesOfDir(rootDir + "/" + directory, obsFile) - self.assertTrue(FileUtils.are2FilesIdentical(expFile, obsFile)) - - shutil.rmtree(rootDir) - os.remove(expFile) - os.remove(obsFile) - - def test_isSizeNotNull_True(self): - file = "dummyExpFile" - fileHandler = open( file, "w" ) - fileHandler.write( "toto\n" ) - fileHandler.write( "titi\n" ) - fileHandler.close() - obsSize = FileUtils.isSizeNotNull(file) - self.assertTrue(obsSize) - os.remove(file) - - def test_isSizeNotNull_False(self): - file = "dummyExpFile" - fileHandler = open( file, "w" ) - fileHandler.close() - obsSize = FileUtils.isSizeNotNull(file) - self.assertFalse(obsSize) - os.remove(file) - - def test_splitFileIntoNFiles_3_files(self): - inputFile = "dummy.txt" - obsFile1 = "dummy-1.txt" - obsFile2 = "dummy-2.txt" - obsFile3 = "dummy-3.txt" - - f = open(inputFile, "w") - f.write("line1\n") - f.write("line2\n") - f.write("line3\n") - f.close() - - exp1 = "line1\n" - exp2 = "line2\n" - exp3 = "line3\n" - - FileUtils.splitFileIntoNFiles(inputFile, 3) - - obs1 = open(obsFile1).read() - obs2 = open(obsFile2).read() - obs3 = open(obsFile3).read() - - self.assertEqual(exp1, obs1) - self.assertEqual(exp2, obs2) - self.assertEqual(exp3, obs3) - self.assertFalse(FileUtils.isRessourceExists("dummy-4.txt")) - FileUtils.removeFilesByPattern("dummy*") - - def test_splitFileIntoNFiles_2_files(self): - inputFile = "dummy.txt" - obsFile1 = "dummy-1.txt" - obsFile2 = "dummy-2.txt" - - f = open(inputFile, "w") - f.write("line1\n") - f.write("line2\n") - f.write("line3\n") - f.close() - - exp1 = "line1\nline2\n" - exp2 = "line3\n" - - FileUtils.splitFileIntoNFiles(inputFile, 2) - - obs1 = open(obsFile1).read() - obs2 = open(obsFile2).read() - - self.assertEqual(exp1, obs1) - self.assertEqual(exp2, obs2) - self.assertFalse(FileUtils.isRessourceExists("dummy-3.txt")) - FileUtils.removeFilesByPattern("dummy*") - - def test_splitFileIntoNFiles_one_file(self): - inputFile = "dummy.txt" - obsFile1 = "dummy-1.txt" - - f = open(inputFile, "w") - f.write("line1\n") - f.write("line2\n") - f.write("line3\n") - f.close() - - exp1 = "line1\nline2\nline3\n" - - FileUtils.splitFileIntoNFiles(inputFile, 1) - - obs1 = open(obsFile1).read() - - self.assertEqual(exp1, obs1) - self.assertFalse(FileUtils.isRessourceExists("dummy-2.txt")) - FileUtils.removeFilesByPattern("dummy*") - - def test_splitFileIntoNFiles_more_file_than_lines(self): - inputFile = "dummy.txt" - obsFile1 = "dummy-1.txt" - obsFile2 = "dummy-2.txt" - obsFile3 = "dummy-3.txt" - - f = open(inputFile, "w") - f.write("line1\n") - f.write("line2\n") - f.write("line3\n") - f.close() - - exp1 = "line1\n" - exp2 = "line2\n" - exp3 = "line3\n" - - FileUtils.splitFileIntoNFiles(inputFile, 10) - - obs1 = open(obsFile1).read() - obs2 = open(obsFile2).read() - obs3 = open(obsFile3).read() - - self.assertEqual(exp1, obs1) - self.assertEqual(exp2, obs2) - self.assertEqual(exp3, obs3) - self.assertFalse(FileUtils.isRessourceExists("dummy-4.txt")) - FileUtils.removeFilesByPattern("dummy*") - - def test_splitFileIntoNFiles_empty_file(self): - inputFile = "dummy.txt" - obsFile1 = "dummy-1.txt" - - os.system( "touch %s" % ( inputFile ) ) - - exp1 = "" - - FileUtils.splitFileIntoNFiles(inputFile, 10) - - obs1 = open(obsFile1).read() - - self.assertEqual(exp1, obs1) - self.assertFalse(FileUtils.isRessourceExists("dummy-2.txt")) - FileUtils.removeFilesByPattern("dummy*") - - def test_splitFileIntoNFiles_0_file(self): - inputFile = "dummy.txt" - obsFile1 = "dummy-1.txt" - - f = open(inputFile, "w") - f.write("line1\n") - f.write("line2\n") - f.write("line3\n") - f.close() - - exp1 = "line1\nline2\nline3\n" - - FileUtils.splitFileIntoNFiles(inputFile, 0) - - obs1 = open(obsFile1).read() - - self.assertEqual(exp1, obs1) - self.assertFalse(FileUtils.isRessourceExists("dummy-2.txt")) - FileUtils.removeFilesByPattern("dummy*") - - def test_splitFileAccordingToLineNumber_3_files(self): - inputFile = "dummy.txt" - obsFile1 = "dummy-1.txt" - obsFile2 = "dummy-2.txt" - obsFile3 = "dummy-3.txt" - - f = open(inputFile, "w") - f.write("line1\n") - f.write("line2\n") - f.write("line3\n") - f.close() - - exp1 = "line1\n" - exp2 = "line2\n" - exp3 = "line3\n" - - FileUtils.splitFileAccordingToLineNumber(inputFile, 1) - - obs1 = open(obsFile1).read() - obs2 = open(obsFile2).read() - obs3 = open(obsFile3).read() - - self.assertEqual(exp1, obs1) - self.assertEqual(exp2, obs2) - self.assertEqual(exp3, obs3) - self.assertFalse(FileUtils.isRessourceExists("dummy-4.txt")) - FileUtils.removeFilesByPattern("dummy*") - - def test_splitFileAccordingToLineNumber_2_files(self): - inputFile = "dummy.txt" - obsFile1 = "dummy-1.txt" - obsFile2 = "dummy-2.txt" - - f = open(inputFile, "w") - f.write("line1\n") - f.write("line2\n") - f.write("line3\n") - f.close() - - exp1 = "line1\nline2\n" - exp2 = "line3\n" - - FileUtils.splitFileAccordingToLineNumber(inputFile, 2) - - obs1 = open(obsFile1).read() - obs2 = open(obsFile2).read() - - self.assertEqual(exp1, obs1) - self.assertEqual(exp2, obs2) - self.assertFalse(FileUtils.isRessourceExists("dummy-3.txt")) - FileUtils.removeFilesByPattern("dummy*") - - def test_splitFileAccordingToLineNumber_one_file(self): - inputFile = "dummy.txt" - obsFile1 = "dummy-1.txt" - - f = open(inputFile, "w") - f.write("line1\n") - f.write("line2\n") - f.write("line3\n") - f.close() - - exp1 = "line1\nline2\nline3\n" - - FileUtils.splitFileAccordingToLineNumber(inputFile, 3) - - obs1 = open(obsFile1).read() - - self.assertEqual(exp1, obs1) - self.assertFalse(FileUtils.isRessourceExists("dummy-2.txt")) - FileUtils.removeFilesByPattern("dummy*") - - def test_splitFileAccordingToLineNumber_more_maxLines_than_lines(self): - inputFile = "dummy.txt" - obsFile1 = "dummy-1.txt" - - f = open(inputFile, "w") - f.write("line1\n") - f.write("line2\n") - f.write("line3\n") - f.close() - - exp1 = "line1\nline2\nline3\n" - - FileUtils.splitFileAccordingToLineNumber(inputFile, 10) - - obs1 = open(obsFile1).read() - - self.assertEqual(exp1, obs1) - self.assertFalse(FileUtils.isRessourceExists("dummy-2.txt")) - FileUtils.removeFilesByPattern("dummy*") - - def test_splitFileAccordingToLineNumber_empty_file(self): - inputFile = "dummy.txt" - obsFile1 = "dummy-1.txt" - - os.system( "touch %s" % ( inputFile ) ) - - exp1 = "" - - FileUtils.splitFileAccordingToLineNumber(inputFile, 10) - - obs1 = open(obsFile1).read() - - self.assertEqual(exp1, obs1) - self.assertFalse(FileUtils.isRessourceExists("dummy-2.txt")) - FileUtils.removeFilesByPattern("dummy*") - - def test_splitFileAccordingToLineNumber_0_lines(self): - inputFile = "dummy.txt" - obsFile1 = "dummy-1.txt" - - f = open(inputFile, "w") - f.write("line1\n") - f.write("line2\n") - f.write("line3\n") - f.close() - - exp1 = "line1\nline2\nline3\n" - - FileUtils.splitFileAccordingToLineNumber(inputFile, 0) - - obs1 = open(obsFile1).read() - - self.assertEqual(exp1, obs1) - self.assertFalse(FileUtils.isRessourceExists("dummy-2.txt")) - FileUtils.removeFilesByPattern("dummy*") - - def _writeFile( self, fileName ): - inFile = open(fileName, 'w') - inFile.write(">Sequence_de_reference\n") - inFile.write("ATTTTGCAGTCTTATTCGAG-----GCCATTGCT\n") - inFile.write(">Lignee1_mismatch\n") - inFile.write("ATTTTGCAGACTTATTCGAG-----GCCATTGCT\n") - inFile.write(">Lignee2_insertion\n") - inFile.write("ATTTTGCAGTCTTATTCGAGATTACGCCATTGCT\n") - inFile.write(">Lignee3_deletion\n") - inFile.write("A---TGCAGTCTTATTCGAG-----GCCATTGCT\n") - inFile.close() - - def _writeFileWithEmptyLine( self, fileName ): - fileWithEmptyLine = open(fileName, 'w') - fileWithEmptyLine.write(">Sequence_de_reference\n") - fileWithEmptyLine.write("ATTTTGCAGTCTTATTCGAG-----GCCATTGCT\n") - fileWithEmptyLine.write("\n\n") - fileWithEmptyLine.write(">Lignee1_mismatch\n") - fileWithEmptyLine.write("ATTTTGCAGACTTATTCGAG-----GCCATTGCT\n") - fileWithEmptyLine.write("\n\n") - fileWithEmptyLine.write(">Lignee2_insertion\n") - fileWithEmptyLine.write("ATTTTGCAGTCTTATTCGAGATTACGCCATTGCT\n") - fileWithEmptyLine.write("\n") - fileWithEmptyLine.write(">Lignee3_deletion\n") - fileWithEmptyLine.write("A---TGCAGTCTTATTCGAG-----GCCATTGCT\n") - fileWithEmptyLine.close() - - def _writeFileWithRepeatedBlanks( self, fileName ): - fileWithRepeatedBlanks = open(fileName, 'w') - fileWithRepeatedBlanks.write(">Sequ ence_de _reference\n") - fileWithRepeatedBlanks.write("ATTTT GCAGTCTT TTCGAG- ----GCCATT GCT\n") - fileWithRepeatedBlanks.close() - - def _writeFileWithoutRepeatedBlanks( self, fileName ): - fileWithoutRepeatedBlanks = open(fileName, 'w') - fileWithoutRepeatedBlanks.write(">Sequ ence_de _reference\n") - fileWithoutRepeatedBlanks.write("ATTTT GCAGTCTT TTCGAG- ----GCCATT GCT\n") - fileWithoutRepeatedBlanks.close() - -if __name__ == "__main__": - unittest.main() \ No newline at end of file
--- a/commons/core/writer/test/Test_Gff3Writer.py Mon Apr 29 03:26:07 2013 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,101 +0,0 @@ -from commons.core.writer.Gff3Writer import Gff3Writer -from SMART.Java.Python.structure.Transcript import Transcript -from SMART.Java.Python.structure.Interval import Interval -import unittest -import os -from SMART.Java.Python.misc import Utils - -class Test_Gff3Writer(unittest.TestCase): - - def test_writer(self): - obsFileName = "testGffWriter1.gff3" - writer = Gff3Writer(obsFileName) - - transcript = Transcript() - transcript.setName("test1.1") - transcript.setChromosome("arm_X") - transcript.setStart(1000) - transcript.setEnd(4000) - transcript.setDirection("+") - transcript.setTagValue("ID", "test1.1-1") - transcript.setTagValue("occurrence", 1) - transcript.setTagValue("nbOccurrences", 2) - - exon1 = Interval() - exon1.setChromosome("arm_X") - exon1.setStart(1000) - exon1.setEnd(2000) - exon1.setDirection("+") - - exon2 = Interval() - exon2.setChromosome("arm_X") - exon2.setStart(3000) - exon2.setEnd(4000) - exon2.setDirection("+") - - transcript.addExon(exon1) - transcript.addExon(exon2) - - writer.addTranscript(transcript) - writer.write() - writer.close() - - expFileName = "expFile.gff3" - f = open(expFileName, "w") - f.write("arm_X\tS-MART\ttranscript\t1000\t4000\t.\t+\t.\tnbOccurrences=2;ID=test1.1-1;occurrence=1;Name=test1.1\n") - f.write("arm_X\tS-MART\texon\t1000\t2000\t.\t+\t.\tID=test1.1-1-exon1;Name=test1.1-exon1;Parent=test1.1-1\n") - f.write("arm_X\tS-MART\texon\t3000\t4000\t.\t+\t.\tID=test1.1-1-exon2;Name=test1.1-exon2;Parent=test1.1-1\n") - f.close() - - self.assertTrue(Utils.diff(expFileName, obsFileName)) - - os.remove(expFileName) - os.remove(obsFileName) - - def test_writerAltNames(self): - obsFileName = "testGffWriter1.gff3" - writer = Gff3Writer(obsFileName,title="ALTSOURCE", feature="Match", featurePart="Match-Part") - - transcript = Transcript() - transcript.setName("test1.1") - transcript.setChromosome("arm_X") - transcript.setStart(1000) - transcript.setEnd(4000) - transcript.setDirection("+") - transcript.setTagValue("ID", "test1.1-1") - transcript.setTagValue("occurrence", 1) - transcript.setTagValue("nbOccurrences", 2) - - exon1 = Interval() - exon1.setChromosome("arm_X") - exon1.setStart(1000) - exon1.setEnd(2000) - exon1.setDirection("+") - - exon2 = Interval() - exon2.setChromosome("arm_X") - exon2.setStart(3000) - exon2.setEnd(4000) - exon2.setDirection("+") - - transcript.addExon(exon1) - transcript.addExon(exon2) - - writer.addTranscript(transcript) - writer.write() - writer.close() - - expFileName = "expFile.gff3" - f = open(expFileName, "w") - f.write("arm_X\tALTSOURCE\tMatch\t1000\t4000\t.\t+\t.\tnbOccurrences=2;ID=test1.1-1;occurrence=1;Name=test1.1\n") - f.write("arm_X\tALTSOURCE\tMatch-Part\t1000\t2000\t.\t+\t.\tID=test1.1-1-Match-Part1;Name=test1.1-Match-Part1;Parent=test1.1-1\n") - f.write("arm_X\tALTSOURCE\tMatch-Part\t3000\t4000\t.\t+\t.\tID=test1.1-1-Match-Part2;Name=test1.1-Match-Part2;Parent=test1.1-1\n") - f.close() - - self.assertTrue(Utils.diff(expFileName, obsFileName)) - - os.remove(expFileName) - os.remove(obsFileName) - -if __name__ == '__main__': - unittest.main()
--- a/commons/core/writer/test/Test_MapWriter.py Mon Apr 29 03:26:07 2013 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,61 +0,0 @@ -from SMART.Java.Python.structure.Transcript import Transcript -from SMART.Java.Python.structure.Interval import Interval -import unittest -import os -from SMART.Java.Python.misc import Utils -from commons.core.writer.MapWriter import MapWriter -from commons.core.utils.FileUtils import FileUtils - -class Test_MapWriter(unittest.TestCase): - - def setUp(self): - self.expFileName = "expMapWriter.map" - self.obsFileName = "testMapWriter1.map" - - def tearDown(self): - os.remove(self.expFileName) - os.remove(self.obsFileName) - - def test_writer(self): - self.write_ExpMapFileName() - writer = MapWriter(self.obsFileName) - - transcript = Transcript() - transcript.setName("test1.1") - transcript.setChromosome("arm_X") - transcript.setStart(1000) - transcript.setEnd(4000) - transcript.setDirection("+") - transcript.setTagValue("ID", "test1.1-1") - transcript.setTagValue("occurrence", 1) - transcript.setTagValue("nbOccurrences", 2) - - exon1 = Interval() - exon1.setChromosome("arm_X") - exon1.setStart(1000) - exon1.setEnd(2000) - exon1.setDirection("+") - - exon2 = Interval() - exon2.setChromosome("arm_X") - exon2.setStart(3000) - exon2.setEnd(4000) - exon2.setDirection("+") - - transcript.addExon(exon1) - transcript.addExon(exon2) - - writer.addTranscript(transcript) - writer.write() - writer.close() - - self.assertTrue(FileUtils.are2FilesIdentical(self.expFileName, self.obsFileName)) - - - def write_ExpMapFileName(self): - f = open(self.expFileName, "w") - f.write("test1.1\tarm_X\t1000\t4001\n") - f.close() - -if __name__ == '__main__': - unittest.main()