annotate commons/core/parsing/test/Test_Multifasta2SNPFileWriter.py @ 6:769e306b7933

Change the repository level.
author yufei-luo
date Fri, 18 Jan 2013 04:54:14 -0500
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
6
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1 from commons.core.utils.FileUtils import FileUtils
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
2 from commons.core.seq.BioseqDB import BioseqDB
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
3 from commons.core.seq.Bioseq import Bioseq
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
4 from commons.core.parsing.Multifasta2SNPFile import Multifasta2SNPFileWriter
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
5 from commons.core.parsing.Multifasta2SNPFile import Multifasta2SNPFile
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
6 from commons.core.parsing.Multifasta2SNPFile import ReferenceBioseqAndLinesBioseqDBWrapper
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
7 from commons.core.LoggerFactory import LoggerFactory
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
8 import os
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
9 import logging
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
10 import unittest
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
11
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
12 class Test_Multifasta2SNPFileWriter(unittest.TestCase):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
13
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
14 def setUp(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
15 self._obsSubSNPFile = "SubSNP.csv"
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
16 self._expSubSNPFile = "ExpSubSNP.csv"
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
17
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
18 self._obsAlleleFile = "Allele.csv"
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
19 self._expAlleleFile = "ExpAllele.csv"
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
20
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
21 self._obsIndividualFile = "Individual.csv"
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
22 self._expIndividualFile = "ExpIndividual.csv"
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
23
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
24 self._obsSequenceFSAFile = "Sequences.fsa"
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
25 self._expSequenceFSAFile = "ExpSequences.fsa"
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
26
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
27 self._obsSequenceCSVFile = "Sequences.csv"
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
28 self._expSequenceCSVFile = "ExpSequences.csv"
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
29
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
30 self._obsBatchFile = "Batch.txt"
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
31 self._expBatchFile = "ExpBatch.txt"
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
32
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
33 self._obsBatchLineFile = "BatchLine.csv"
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
34 self._expBatchLineFile = "ExpBatchLine.csv"
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
35
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
36 self._logFileName = "Test_Multifasta2SNPWriter.log"
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
37
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
38 self._inputFileName = "multifasta.fsa"
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
39
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
40 self._lSNPResult = []
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
41 self._dAlleleResult = {}
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
42 self._lIndividualResult = []
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
43 self._refSeq = Bioseq()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
44 self._seqDb= BioseqDB()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
45
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
46 self._logFile = LoggerFactory.createLogger(self._logFileName, logging.INFO, "%(asctime)s %(levelname)s: %(message)s")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
47 self._lSequenceWrapper = ReferenceBioseqAndLinesBioseqDBWrapper(self._refSeq, self._seqDb, self._logFile, self._inputFileName)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
48 self._lBatchLineResults = []
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
49
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
50 self._Multifasta2SNPFileWriter = Multifasta2SNPFileWriter()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
51
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
52 self._inFileName = "multifasta.txt"
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
53 self._taxon = "Arabidopsis thaliana"
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
54
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
55 def tearDown(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
56 if FileUtils.isRessourceExists(self._inFileName):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
57 os.remove(self._inFileName)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
58 if FileUtils.isRessourceExists("multifasta2SNP.log"):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
59 os.remove("multifasta2SNP.log")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
60 if FileUtils.isRessourceExists("Test_Multifasta2SNPWriter.log"):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
61 os.remove("Test_Multifasta2SNPWriter.log")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
62
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
63 if FileUtils.isRessourceExists(self._obsSubSNPFile):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
64 os.remove(self._obsSubSNPFile)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
65 if FileUtils.isRessourceExists(self._expSubSNPFile):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
66 os.remove(self._expSubSNPFile)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
67
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
68 if FileUtils.isRessourceExists(self._obsAlleleFile):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
69 os.remove(self._obsAlleleFile)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
70 if FileUtils.isRessourceExists(self._expAlleleFile):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
71 os.remove(self._expAlleleFile)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
72
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
73 if FileUtils.isRessourceExists(self._obsIndividualFile):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
74 os.remove(self._obsIndividualFile)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
75 if FileUtils.isRessourceExists(self._expIndividualFile):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
76 os.remove(self._expIndividualFile)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
77
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
78 if FileUtils.isRessourceExists(self._obsSequenceFSAFile):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
79 os.remove(self._obsSequenceFSAFile)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
80 if FileUtils.isRessourceExists(self._expSequenceFSAFile):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
81 os.remove(self._expSequenceFSAFile)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
82
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
83 if FileUtils.isRessourceExists(self._obsSequenceCSVFile):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
84 os.remove(self._obsSequenceCSVFile)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
85 if FileUtils.isRessourceExists(self._expSequenceCSVFile):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
86 os.remove(self._expSequenceCSVFile)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
87
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
88 if FileUtils.isRessourceExists(self._obsBatchFile):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
89 FileUtils.removeFilesByPattern(self._obsBatchFile)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
90 if FileUtils.isRessourceExists(self._expBatchFile):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
91 FileUtils.removeFilesByPattern(self._expBatchFile)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
92
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
93 if FileUtils.isRessourceExists(self._obsBatchLineFile):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
94 FileUtils.removeFilesByPattern(self._obsBatchLineFile)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
95 if FileUtils.isRessourceExists(self._expBatchLineFile):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
96 FileUtils.removeFilesByPattern(self._expBatchLineFile)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
97
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
98 def test_writeSubSNPFileWithSubSNPList(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
99 self._lSNPResult = [{'subSNPName': "SubSNP1", '5flank': "A", '3flank': "T", 'position': 1, 'lineName': "1", 'allele': 1, 'batchNumber': 1, 'confidenceValue' : "A", 'type' : "SNP", 'length': 1},
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
100 {'subSNPName': "SubSNP2", '5flank': "T", '3flank': "A", 'position': 10, 'lineName': "1", 'allele': 2, 'batchNumber': 1, 'confidenceValue' : "A", 'type' : "SNP", 'length': 1},
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
101 {'subSNPName': "SubSNP3", '5flank': "T", '3flank': "A", 'position': 20, 'lineName': "2", 'allele': 3, 'batchNumber': 1, 'confidenceValue' : "A", 'type' : "SNP", 'length': 1}]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
102
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
103 self._writeExpSubSNPFile()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
104 self._Multifasta2SNPFileWriter._writeSubSNPFile(self._obsSubSNPFile, self._lSNPResult)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
105
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
106 self.assertTrue(FileUtils.isRessourceExists(self._obsSubSNPFile))
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
107 self.assertTrue(FileUtils.are2FilesIdentical(self._expSubSNPFile, self._obsSubSNPFile))
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
108
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
109 def test_writeAlleleFileWithAlleleDict(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
110 self._dAlleleResult['A'] = 1
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
111 self._dAlleleResult['C'] = 2
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
112 self._dAlleleResult['T'] = 3
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
113
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
114 self._writeExpAlleleFile()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
115 self._Multifasta2SNPFileWriter._writeAlleleFile(self._obsAlleleFile, self._dAlleleResult)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
116
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
117 self.assertTrue(FileUtils.isRessourceExists(self._obsAlleleFile))
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
118 self.assertTrue(FileUtils.are2FilesIdentical(self._expAlleleFile, self._obsAlleleFile))
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
119
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
120 def test_writeIndividualFileWithIndivList(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
121 self._lIndividualResult = [{'individualNumber': 1, 'individualName': "Individual1", 'scientificName': "Arabidopsis thaliana"},
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
122 {'individualNumber': 2, 'individualName': "Individual2", 'scientificName': "Arabidopsis thaliana"}]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
123
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
124 self._writeExpIndividualFile()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
125
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
126 self._Multifasta2SNPFileWriter._writeIndividualFile(self._obsIndividualFile, self._lIndividualResult)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
127
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
128 self.assertTrue(FileUtils.isRessourceExists(self._obsIndividualFile))
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
129 self.assertTrue(FileUtils.are2FilesIdentical(self._expIndividualFile, self._obsIndividualFile))
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
130
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
131 def test_writeSequenceFilesWithSequenceWrapper(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
132 self._writeInputFile()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
133 self._writeExpSequenceFiles()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
134 batchName = "batch1"
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
135 taxon = "Arabidopsis thaliana"
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
136 gene = "methyltransferase"
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
137 multifasta2SNPFile = Multifasta2SNPFile(batchName, gene, taxon)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
138 self._lSequenceWrapper = multifasta2SNPFile.createWrapperFromFile(self._inFileName)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
139 lRefseq = []
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
140 lRefseq.append(self._lSequenceWrapper._iReferenceBioseq)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
141 self._Multifasta2SNPFileWriter._writeSequenceFiles(self._obsSequenceFSAFile, self._obsSequenceCSVFile, lRefseq, taxon)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
142
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
143 self.assertTrue(FileUtils.isRessourceExists(self._obsSequenceFSAFile))
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
144 self.assertTrue(FileUtils.are2FilesIdentical(self._expSequenceFSAFile, self._obsSequenceFSAFile))
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
145 self.assertTrue(FileUtils.isRessourceExists(self._obsSequenceCSVFile))
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
146 self.assertTrue(FileUtils.are2FilesIdentical(self._expSequenceCSVFile, self._obsSequenceCSVFile))
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
147
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
148 def test_writeBatchFile(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
149 self._dBatchResults = {'BatchNumber': "1", 'BatchName': "batch1", 'GeneName': "gene1", 'RefSeqName': "Sequence de Reference"}
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
150 lBatchResults = []
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
151 lBatchResults.append(self._dBatchResults)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
152 self._writeExpBatchFile()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
153 self._Multifasta2SNPFileWriter._writeBatchFile(self._obsBatchFile, lBatchResults)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
154 self.assertTrue(FileUtils.isRessourceExists(self._obsBatchFile))
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
155 self.assertTrue(FileUtils.are2FilesIdentical(self._expBatchFile, self._obsBatchFile))
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
156
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
157 def test_writeBatchLineFile(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
158 self._lBatchLineResults = [{'IndividualNumber': "1", 'BatchNumber': "1"},
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
159 {'IndividualNumber': "2", 'BatchNumber': "1"}]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
160 self._writeExpBatchLineFile()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
161 self._Multifasta2SNPFileWriter._writeBatchLineFile(self._obsBatchLineFile, self._lBatchLineResults)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
162 self.assertTrue(FileUtils.isRessourceExists(self._obsBatchLineFile))
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
163 self.assertTrue(FileUtils.are2FilesIdentical(self._expBatchLineFile, self._obsBatchLineFile))
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
164
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
165 def test_sortAlleleResultByAlleleNumber(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
166 dAlleleResults = {'A': 3,
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
167 'G': 1,
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
168 'C': 2}
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
169
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
170 lExpAlleleSortedList = [('G', 1),
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
171 ('C', 2),
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
172 ('A', 3)]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
173
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
174 lObsAlleleSortedList = self._Multifasta2SNPFileWriter.sortAlleleResultByAlleleNumber(dAlleleResults)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
175 self.assertEquals(lExpAlleleSortedList, lObsAlleleSortedList)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
176
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
177 def test_write(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
178
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
179 self._writeInputFile()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
180 batchName = "batch1"
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
181 taxon = "Arabidopsis thaliana"
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
182 gene = "methyltransferase"
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
183 multifasta2SNPFile = Multifasta2SNPFile(taxon, batchName, gene)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
184 self._lSequenceWrapper = multifasta2SNPFile.createWrapperFromFile(self._inFileName)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
185
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
186
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
187 multifasta2SNPFile._lSubSNPFileResults = [{'subSNPName': "SubSNP1", '5flank': "A", '3flank': "T", 'position': 1, 'lineName': "1", 'allele': 1, 'batchNumber': 1, 'confidenceValue' : "A", 'type' : "SNP", 'length': 1},
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
188 {'subSNPName': "SubSNP2", '5flank': "T", '3flank': "A", 'position': 10, 'lineName': "1", 'allele': 2, 'batchNumber': 1, 'confidenceValue' : "A", 'type' : "SNP", 'length': 1},
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
189 {'subSNPName': "SubSNP3", '5flank': "T", '3flank': "A", 'position': 20, 'lineName': "2", 'allele': 3, 'batchNumber': 1, 'confidenceValue' : "A", 'type' : "SNP", 'length': 1}]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
190 multifasta2SNPFile._dAlleleFileResults['A'] = 1
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
191 multifasta2SNPFile._dAlleleFileResults['C'] = 2
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
192 multifasta2SNPFile._dAlleleFileResults['T'] = 3
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
193
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
194 multifasta2SNPFile._lIndividualFileResults = [{'individualNumber': 1, 'individualName': "Individual1", 'scientificName': "Arabidopsis thaliana"},
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
195 {'individualNumber': 2, 'individualName': "Individual2", 'scientificName': "Arabidopsis thaliana"}]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
196
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
197 multifasta2SNPFile._lBatchFileResults = [{'BatchNumber': "1", 'BatchName': "batch1", 'GeneName': "gene1", 'RefSeqName': "Sequence de Reference"}]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
198
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
199 multifasta2SNPFile._lBatchLineFileResults = [{'IndividualNumber': "1", 'BatchNumber': "1"},
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
200 {'IndividualNumber': "2", 'BatchNumber': "1"}]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
201
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
202
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
203 self._writeExpSubSNPFile()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
204 self._writeExpAlleleFile()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
205 self._writeExpIndividualFile()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
206 self._writeExpSequenceFiles()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
207 self._writeExpBatchFile()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
208 self._writeExpBatchLineFile()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
209
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
210 self._Multifasta2SNPFileWriter.write(multifasta2SNPFile)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
211 self.assertTrue(FileUtils.isRessourceExists(self._obsSubSNPFile))
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
212 self.assertTrue(FileUtils.are2FilesIdentical(self._expSubSNPFile, self._obsSubSNPFile))
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
213 self.assertTrue(FileUtils.isRessourceExists(self._obsAlleleFile))
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
214 self.assertTrue(FileUtils.are2FilesIdentical(self._expAlleleFile, self._obsAlleleFile))
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
215 self.assertTrue(FileUtils.isRessourceExists(self._obsIndividualFile))
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
216 self.assertTrue(FileUtils.are2FilesIdentical(self._expIndividualFile, self._obsIndividualFile))
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
217 self.assertTrue(FileUtils.isRessourceExists(self._obsSequenceFSAFile))
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
218 self.assertTrue(FileUtils.are2FilesIdentical(self._expSequenceFSAFile, self._obsSequenceFSAFile))
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
219 self.assertTrue(FileUtils.isRessourceExists(self._obsSequenceCSVFile))
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
220 self.assertTrue(FileUtils.are2FilesIdentical(self._expSequenceCSVFile, self._obsSequenceCSVFile))
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
221 self.assertTrue(FileUtils.isRessourceExists(self._obsBatchFile))
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
222 self.assertTrue(FileUtils.are2FilesIdentical(self._expBatchFile, self._obsBatchFile))
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
223 self.assertTrue(FileUtils.isRessourceExists(self._obsBatchLineFile))
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
224 self.assertTrue(FileUtils.are2FilesIdentical(self._expBatchLineFile, self._obsBatchLineFile))
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
225
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
226 def _writeExpSubSNPFile(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
227 expFile = open(self._expSubSNPFile, "w")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
228 expFile.write("SubSNPName;ConfidenceValue;Type;Position;5flank;3flank;Length;BatchNumber;IndividualNumber;PrimerType;PrimerNumber;Forward_or_Reverse;AlleleNumber\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
229 expFile.write("SubSNP1;A;SNP;1;A;T;1;1;1;Sequence;;;1\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
230 expFile.write("SubSNP2;A;SNP;10;T;A;1;1;1;Sequence;;;2\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
231 expFile.write("SubSNP3;A;SNP;20;T;A;1;1;2;Sequence;;;3\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
232 expFile.close()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
233
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
234 def _writeExpAlleleFile(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
235 expFile = open(self._expAlleleFile, "w")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
236 expFile.write("AlleleNumber;Value;Motif;NbCopy;Comment\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
237 expFile.write("1;A;;;\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
238 expFile.write("2;C;;;\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
239 expFile.write("3;T;;;\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
240 expFile.close()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
241
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
242
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
243 def _writeExpIndividualFile(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
244 expFile = open(self._expIndividualFile, "w")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
245 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")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
246 expFile.write("1;Individual1;;;;;;;;;;Arabidopsis thaliana;;;;;\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
247 expFile.write("2;Individual2;;;;;;;;;;Arabidopsis thaliana;;;;;\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
248 expFile.close()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
249
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
250 def _writeInputFile(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
251 inFileHandle = open(self._inFileName, "w")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
252 inFileHandle.write(">Sequence_de_Reference\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
253 inFileHandle.write("CCTAAGCCATTGCTTGGTGATTATGAAGGCAGTAGTCAAACCTCCACAATC\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
254 inFileHandle.write(">Line1\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
255 inFileHandle.write("CCTTAGCCATTGCTTGGTGACTATGAAGGCAGTAGGCAAACCTCCACAATC\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
256 inFileHandle.write(">Line2\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
257 inFileHandle.write("CCTAAGCCATTGCTTGGTGACTATCAAGGCAGTAGCCAAACCTCCACAATA")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
258 inFileHandle.close()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
259
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
260 def _writeExpSequenceFiles(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
261 SequenceFSAFileHandle = open(self._expSequenceFSAFile, "w")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
262 SequenceFSAFileHandle.write(">Sequence_de_Reference\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
263 SequenceFSAFileHandle.write("CCTAAGCCATTGCTTGGTGATTATGAAGGCAGTAGTCAAACCTCCACAATC\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
264 SequenceFSAFileHandle.close()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
265 SequenceCSVFileHandle = open(self._expSequenceCSVFile, "w")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
266 SequenceCSVFileHandle.write("SequenceName;SeqType;BankName;BankVersion;ACNumber;Locus;ScientificName\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
267 SequenceCSVFileHandle.write("Sequence_de_Reference;Reference;;;;;Arabidopsis thaliana\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
268 SequenceCSVFileHandle.close()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
269
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
270 def _writeExpBatchFile(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
271 BatchFileHandle = open(self._expBatchFile, "w")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
272 BatchFileHandle.write("BatchNumber: 1\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
273 BatchFileHandle.write("BatchName: batch1\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
274 BatchFileHandle.write("GeneName: gene1\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
275 BatchFileHandle.write("Description: \n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
276 BatchFileHandle.write("ContactNumber: \n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
277 BatchFileHandle.write("ProtocolNumber: \n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
278 BatchFileHandle.write("ThematicNumber: \n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
279 BatchFileHandle.write("RefSeqName: Sequence de Reference\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
280 BatchFileHandle.write("AlignmentFileName: \n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
281 BatchFileHandle.write("SeqName: \n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
282 BatchFileHandle.write("//\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
283 BatchFileHandle.close()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
284
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
285 def _writeExpBatchLineFile(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
286 BatchLineFileHandle = open(self._expBatchLineFile, "w")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
287 BatchLineFileHandle.write("IndividualNumber;Pos5;Pos3;BatchNumber;Sequence\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
288 BatchLineFileHandle.write("1;;;1;\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
289 BatchLineFileHandle.write("2;;;1;\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
290 BatchLineFileHandle.close()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
291 if __name__ == "__main__":
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
292 unittest.main()