Пример #1
0
    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
Пример #2
0
 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
Пример #3
0
    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()
Пример #4
0
    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()
Пример #5
0
    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()
Пример #6
0
  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()
Пример #7
0
  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()