Mercurial > repos > yufei-luo > s_mart
diff smart_toolShed/SMART/Java/Python/mySql/test/Test_MySqlTranscriptTable.py @ 0:e0f8dcca02ed
Uploaded S-MART tool. A toolbox manages RNA-Seq and ChIP-Seq data.
author | yufei-luo |
---|---|
date | Thu, 17 Jan 2013 10:52:14 -0500 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/smart_toolShed/SMART/Java/Python/mySql/test/Test_MySqlTranscriptTable.py Thu Jan 17 10:52:14 2013 -0500 @@ -0,0 +1,158 @@ +from commons.core.writer.MySqlTranscriptWriter import MySqlTranscriptWriter +from SMART.Java.Python.structure.TranscriptContainer import TranscriptContainer +from SMART.Java.Python.structure.Transcript import Transcript +from SMART.Java.Python.structure.Interval import Interval +from SMART.Java.Python.mySql.MySqlConnection import MySqlConnection +from SMART.Java.Python.mySql.MySqlTranscriptTable import MySqlTranscriptTable +import unittest + + +class Test_MySqlTranscriptTable(unittest.TestCase): + + def test_getRange(self): + transcript = Transcript() + transcript.setName("test1.1") + transcript.setChromosome("arm_X") + transcript.setStart(1000) + transcript.setEnd(4000) + transcript.setSize(2000) + transcript.setDirection("+") + + exon1 = Interval() + exon1.setName("test1.1") + exon1.setChromosome("arm_X") + exon1.setStart(1000) + exon1.setEnd(2000) + exon1.setSize(1000) + + exon2 = Interval() + exon2.setName("test1.1") + exon2.setChromosome("arm_X") + exon2.setStart(3000) + exon2.setEnd(4000) + exon2.setSize(1000) + + transcript.addExon(exon1) + transcript.addExon(exon2) + + connection = MySqlConnection() + writer = MySqlTranscriptWriter(connection, "testMySqlTranscriptTableGetRange") + writer.addTranscript(transcript) + writer.write() + + transcriptContainer = TranscriptContainer("testMySqlTranscriptTableGetRange", "sql") + transcriptContainer.mySqlConnection = connection + self.assertEqual(transcriptContainer.getNbTranscripts(), 1) + for transcript in transcriptContainer.getIterator(): + self.assertEqual(transcript.getName(), "test1.1") + self.assertEqual(transcript.getChromosome(), "arm_X") + self.assertEqual(transcript.getStart(), 1000) + self.assertEqual(transcript.getEnd(), 4000) + self.assertEqual(transcript.getSize(), 2002) + self.assertEqual(transcript.getNbExons(), 2) + exons = transcript.getExons() + self.assertEqual(exons[0].getStart(), 1000) + self.assertEqual(exons[0].getEnd(), 2000) + self.assertEqual(exons[1].getStart(), 3000) + self.assertEqual(exons[1].getEnd(), 4000) + + + def test_setDefaultTagValue(self): + transcript1 = Transcript() + transcript1.setName("test1.1") + transcript1.setChromosome("arm_X") + transcript1.setStart(1000) + transcript1.setEnd(2000) + transcript1.setDirection("+") + + exon1 = Interval() + exon1.setName("test1.1") + exon1.setChromosome("arm_X") + exon1.setStart(1000) + exon1.setEnd(2000) + + transcript1.addExon(exon1) + + transcript2 = Transcript() + transcript2.setName("test2.1") + transcript2.setChromosome("arm_X") + transcript2.setStart(1000) + transcript2.setEnd(2000) + transcript2.setDirection("+") + transcript2.setTagValue("nbOccurrences", "2") + + exon2 = Interval() + exon2.setName("test2.1") + exon2.setChromosome("arm_X") + exon2.setStart(1000) + exon2.setEnd(2000) + + transcript2.addExon(exon2) + + transcript3 = Transcript() + transcript3.setName("test3.1") + transcript3.setChromosome("arm_X") + transcript3.setStart(1000) + transcript3.setEnd(2000) + transcript3.setDirection("+") + transcript3.setTagValue("occurrences", "2") + + exon3 = Interval() + exon3.setName("test3.1") + exon3.setChromosome("arm_X") + exon3.setStart(1000) + exon3.setEnd(2000) + + transcript3.addExon(exon3) + + connection = MySqlConnection() + table = MySqlTranscriptTable(connection, "testMySqlTranscriptTableSetDefaultTagValue") + table.createTranscriptTable() + table.addTranscript(transcript1) + table.addTranscript(transcript2) + table.addTranscript(transcript3) + table.setDefaultTagValue("occurrence", "1") + + cpt = 0 + for transcript in table.getIterator(): + cpt += 1 + self.assert_(cpt != 4) + if cpt == 1: + self.assertEqual(transcript.name, "test1.1") + self.assertEqual(transcript.getChromosome(), "arm_X") + self.assertEqual(transcript.getStart(), 1000) + self.assertEqual(transcript.getEnd(), 2000) + self.assertEqual(transcript.getSize(), 1001) + self.assertEqual(transcript.getNbExons(), 1) + exons = transcript.getExons() + self.assertEqual(exons[0].getStart(), 1000) + self.assertEqual(exons[0].getEnd(), 2000) + self.assertEqual(transcript.getTagValue("occurrence"), 1) + elif cpt == 2: + self.assertEqual(transcript.name, "test2.1") + self.assertEqual(transcript.getChromosome(), "arm_X") + self.assertEqual(transcript.getStart(), 1000) + self.assertEqual(transcript.getEnd(), 2000) + self.assertEqual(transcript.getSize(), 1001) + self.assertEqual(transcript.getNbExons(), 1) + exons = transcript.getExons() + self.assertEqual(exons[0].getStart(), 1000) + self.assertEqual(exons[0].getEnd(), 2000) + self.assertEqual(transcript.getTagValue("nbOccurrences"), 2) + self.assertEqual(transcript.getTagValue("occurrence"), 1) + elif cpt == 2: + self.assertEqual(transcript.name, "test3.1") + self.assertEqual(transcript.getChromosome(), "arm_X") + self.assertEqual(transcript.getStart(), 1000) + self.assertEqual(transcript.getEnd(), 2000) + self.assertEqual(transcript.getSize(), 1001) + self.assertEqual(transcript.getNbExons(), 1) + exons = transcript.getExons() + self.assertEqual(exons[0].getStart(), 1000) + self.assertEqual(exons[0].getEnd(), 2000) + self.assertEqual(transcript.getTagValue("occurrence"), 2) + + table.remove() + +if __name__ == '__main__': + unittest.main()