def serializeAlleleCountDataTo(self, stream): type = getStreamType(stream) stream.opentag('allelecounts') for locus in self.freqcount.keys(): stream.writeln() stream.opentag('locus', name=locus) stream.writeln() stream.closetag('allelecounts') return 1
def serializeMetadataTo(self, stream): type = getStreamType(stream) stream.opentag('populationdata') stream.writeln() if self.popData: for summary in self.popData.keys(): # convert metadata name into a XML tag name tagname = string.lower(string.replace(summary, ' ', '-')) stream.tagContents(tagname, self.popData[summary]) stream.writeln() # call subclass-specific metadata serialization self.serializeSubclassMetadataTo(stream) stream.closetag('populationdata') stream.writeln()
def serializeMetadataTo(self, stream): type = getStreamType(stream) stream.opentag('populationdata') stream.writeln() if self.popData: for summary in self.popData.keys(): # convert metadata name into a XML tag name tagname = string.lower(string.replace(summary,' ','-')) stream.tagContents(tagname, self.popData[summary]) stream.writeln() # call subclass-specific metadata serialization self.serializeSubclassMetadataTo(stream) stream.closetag('populationdata') stream.writeln()
def serializeHomozygosityTo(self, stream): type = getStreamType(stream) if self.expectedStatsFlag: stream.opentag('homozygosity') stream.writeln() stream.tagContents('observed', "%.4f" % self.getObservedHomozygosity()) stream.writeln() stream.tagContents('expected', "%.4f" % self.getExpectedHomozygosity()) stream.writeln() stream.tagContents('normdev', "%.4f" % self.getNormDevHomozygosity()) stream.writeln() #stream.tagContents('expectedVariance', "%.4f" % self.getVarExpectedHomozygosity()) #stream.writeln() #stream.tagContents('expectedStdErr', "%.4f" % self.getSemExpectedHomozygosity()) #stream.writeln() stream.opentag('pvalue') lb, up = self.getPValueRange() stream.tagContents('lower', "%.4f" % lb) stream.tagContents('upper', "%.4f" % up) stream.closetag('pvalue') stream.writeln() stream.closetag('homozygosity') elif self.sampleCount == 0: stream.emptytag('homozygosity', role='no-data') else: stream.opentag('homozygosity', role='out-of-range') stream.writeln() stream.tagContents('observed', "%.4f" % self.getObservedHomozygosity()) stream.writeln() stream.closetag('homozygosity') # always end on a newline stream.writeln()
def serializeTo(self, stream, allelelump=0): type = getStreamType(stream) # stream serialization goes here stream.opentag('hardyweinberg', allelelump=("%d" % allelelump)) stream.writeln() stream.tagContents("samplesize", "%d" % self.n) stream.writeln() # don't print out, already printed out in <allelecounts> tag in ParseFile # stream.tagContents("distinctalleles", "%d" % self.k) # stream.writeln() stream.tagContents("lumpBelow", "%d" % self.lumpBelow) stream.writeln() self.serializeXMLTableTo(stream) if self.flagHoms == 1: stream.opentag('homozygotes') stream.writeln() stream.tagContents("observed", "%d" % self.totalHomsObs) stream.writeln() stream.tagContents("expected", "%4f" % self.totalHomsExp) stream.writeln() stream.tagContents("chisq", "%4f" % self.totalChisqHoms) stream.writeln() stream.tagContents("pvalue", "%4f" % self.chisqHomsPval) stream.writeln() stream.tagContents("chisqdf", "1") stream.writeln() stream.closetag('homozygotes') stream.writeln() if self.flagHets == 1: stream.opentag('heterozygotes') stream.writeln() stream.tagContents("observed", "%d" % self.totalHetsObs) stream.writeln() stream.tagContents("expected", "%4f" % self.totalHetsExp) stream.writeln() stream.tagContents("chisq", "%4f" % self.totalChisqHets) stream.writeln() stream.tagContents("pvalue", "%4f" % self.chisqHetsPval) stream.writeln() stream.tagContents("chisqdf", "1") stream.writeln() stream.closetag('heterozygotes') stream.writeln() # loop for heterozygotes by allele stream.opentag('heterozygotesByAllele') stream.writeln() for allele in self.hetsChisqByAllele.keys(): stream.opentag('allele', name=allele) stream.writeln() stream.tagContents("observed", "%d" % self.hetsObservedByAllele[allele]) stream.writeln() stream.tagContents("expected", "%4f" % self.hetsExpectedByAllele[allele]) stream.writeln() stream.tagContents("chisq", "%4f" % self.hetsChisqByAllele[allele]) stream.writeln() stream.tagContents("pvalue", "%4f" % self.hetsPvalByAllele[allele]) stream.writeln() stream.closetag('allele') stream.writeln() stream.closetag('heterozygotesByAllele') stream.writeln() if self.flagLumps == 1: stream.opentag('lumped') stream.writeln() stream.tagContents("observed", "%d" % self.lumpedObservedGenotypes) stream.writeln() stream.tagContents("expected", "%4f" % self.lumpedExpectedGenotypes) stream.writeln() stream.tagContents("chisq", "%4f" % self.lumpedChisq) stream.writeln() stream.tagContents("pvalue", "%4f" % self.lumpedChisqPval) stream.writeln() stream.tagContents("chisqdf", "1") stream.writeln() stream.closetag('lumped') stream.writeln() else: if self.flagNoRareGenotypes == 1: stream.emptytag('lumped', role='no-rare-genotypes') elif self.flagTooFewExpected == 1: stream.emptytag('lumped', role='too-few-expected') else: stream.emptytag('lumped', role='not-calculated') if self.flagCommons == 1: stream.opentag('common') stream.writeln() stream.tagContents("observed", "%d" % self.commonObservedAccumulator) stream.writeln() stream.tagContents("expected", "%4f" % self.commonExpectedAccumulator) stream.writeln() stream.tagContents("chisq", "%4f" % self.HWChisq) stream.writeln() stream.tagContents("pvalue", "%4f" % self.HWChisqPval) stream.writeln() stream.tagContents("chisqdf", "%d" % int(self.HWChisqDf)) stream.writeln() stream.closetag('common') stream.writeln() else: if self.flagNoCommonGenotypes == 1: stream.emptytag('common', role='no-common-genotypes') elif self.flagTooManyParameters == 1: stream.emptytag('common', role='too-many-parameters') else: stream.emptytag('common', role='not-calculated') stream.writeln() if self.flagCommonPlusLumped == 1: stream.opentag('commonpluslumped') stream.writeln() stream.tagContents("observed", "%d" % self.commonPlusLumpedObserved) stream.writeln() stream.tagContents("expected", "%4f" % self.commonPlusLumpedExpected) stream.writeln() stream.tagContents("chisq", "%4f" % self.commonPlusLumpedChisq) stream.writeln() stream.tagContents("pvalue", "%4f" % self.commonPlusLumpedChisqPval) stream.writeln() stream.tagContents("chisqdf", "%d" % int(self.commonPlusLumpedChisqDf)) stream.writeln() stream.closetag('commonpluslumped') stream.writeln() else: stream.emptytag('commonpluslumped', role='not-calculated') stream.writeln() stream.closetag('hardyweinberg') # extra spacer line stream.writeln()