def calcMaxGc(fastaStr):
    """Given a FASTA string, find the label with the greatest GC content"""

    strandMap = parseFastaString(fastaStr)

    maxGcVal = -1
    maxLabel = None
    for key,val in strandMap.items():
        curGcVal = calcGcContent(val)
        if maxGcVal < curGcVal:
            maxGcVal = curGcVal
            maxLabel = key

    return "{0}\n{1:0.6f}%".format(maxLabel, maxGcVal*100)
    def testFindFastaDnaStringsInValidData(self):
        strandMap = parseFastaString(TEST_STR())

        self.assertEqual(3,len(strandMap))
        for key,value in strandMap.items():
            self.assertTrue(value in EXPECTED_DNA_STRINGS())
    def testFindFastaLabelsInValidData(self):
        strandMap = parseFastaString(TEST_STR())

        self.assertEqual(3,len(strandMap))
        for key in strandMap:
            self.assertTrue(key in EXPECTED_LABELS())