docs: def compareKmerProfiles(profileFN1, profileFN2):
      '''
      This function takes two kmer profiles and compare them for similarity.
      @param profileFN1 - the first kmer-profile to compare to
      @param profileFN2 - the second kmer-profile to compare to
      @return - a tuple of the form (1-norm, 2-norm, sum of differences, normalized Dot product)
      '''
      fp1 = open(profileFN1, 'r')
      fp2 = open(profileFN2, 'r')
      
      oneNorm = 0
      twoNorm = 0
      sumDeltas = 0
      dotProduct = 0
      
      tot1 = float(fp1.readline().strip('\n').split(',')[1])
      tot2 = float(fp2.readline().strip('\n').split(',')[1])
      
      (seq1, count1) = parseProfileLine(fp1)
      (seq2, count2) = parseProfileLine(fp2)
      
      while seq1 != None or seq2 != None:
          if seq1 == seq2:
              delta = abs(count1/tot1-count2/tot2)
              dotProduct += (count1/tot1)*(count2/tot2)
              (seq1, count1) = parseProfileLine(fp1)
              (seq2, count2) = parseProfileLine(fp2)
          elif seq2 == None or (seq1 != None and seq1 < seq2):
              delta = count1/tot1
              (seq1, count1) = parseProfileLine(fp1)
          else:
              delta = count2/tot2
              (seq2, count2) = parseProfileLine(fp2)
          
          if delta > oneNorm:
              oneNorm = delta
          
          twoNorm += delta*delta
          sumDeltas += delta
      
      fp1.close()
      fp2.close()
      
      twoNorm = math.sqrt(twoNorm)
      #print '1-norm:\t\t'+str(oneNorm)
      #print '2-norm:\t\t'+str(twoNorm)
      #print 'Delta sum:\t'+str(sumDeltas)
      return (oneNorm, twoNorm, sumDeltas, dotProduct)