def computeSimilarity(dataArray): start = time() sampleIDList = dataArray[8] n = len(sampleIDList) matrix = np.zeros((n,n)) for i in range(n): for j in range(i,n): #Total ratio computation common,in1,in2,_,_,_,_,_ = compute(dataArray[7],[sampleIDList[i]],[sampleIDList[j]]) commonA = countAssignmentsInCommon(common,[sampleIDList[i]],[sampleIDList[j]]) numberA1 = countAssignments(in1,[sampleIDList[i]]) numberA2 = countAssignments(in2,[sampleIDList[j]]) tratio = totalRatio(commonA,numberA1,numberA2) #Pattern ratio computation commonPatternsList = enumerateCommonPatterns(dataArray[7],[sampleIDList[i]],[sampleIDList[j]]) specificPatternsList1 = enumerateSpecificPatterns(dataArray[7],[sampleIDList[i]],[sampleIDList[j]]) specificPatternsList2 = enumerateSpecificPatterns(dataArray[7],[sampleIDList[i]],[sampleIDList[j]]) pRatio = patternRatio(commonPatternsList,specificPatternsList1,specificPatternsList2) #Diversity coefficient dRatio1,_ = computeDiversityCoefficient(dataArray[5],[sampleIDList[i]],dataArray) dRatio2,_ = computeDiversityCoefficient(dataArray[5],[sampleIDList[j]],dataArray) subdRatio = abs(dRatio1 - dRatio2) if subdRatio: s = sumOpInf(pRatio,tratio) - subdRatio else: s = sumOpInf(pRatio,tratio) matrix[i][j] = s matrix[j][i] = s end = time() print "TIME:",(end-start) return matrix
def diversityAct(dataArray): sampleNameList,metadata,interval1,interval2 = createSampleNameList(dataArray) #@dataArray[5] = n is the number of nodes in the taxonomic tree coefficient,sample = computeDiversityCoefficient(dataArray[5],sampleNameList,dataArray) print "\nMicrobial Diversity coefficient is: " + str(coefficient) print "[If you have obtained -inf, it could mean the taxonomic tree is actually empty.]\n" answer = raw_input("Save the results? Y/N\n") if (answer == "Y"): data = "Microbial Diversity Results ****\n for lists " + str(sampleNameList) + "\n" if metadata: data += "selected on metadata: " + str(metadata) + "with extreme values: " + str(interval1) + " (lower bounds) and " + str(interval2) + " (upper bounds) \n" data += "\nMicrobial Diversity coefficient is: " + str(coefficient) +"\n\nEND OF FILE ****" writeFile(data,"","text") elif not (answer == "N"): print "/!\ You should answer 'Y' or 'N'!" answer = raw_input("Do you want to display the pie chart of the assignments to the taxonomic tree in the selected samples? Y/N\n") if (answer == "Y"): plotPieChart([sample1[0] for sample1 in sample],[sample1[1] for sample1 in sample],"Assignments to the taxonomic tree in " + str(sampleNameList[:3])) elif not (answer == "N"): print "/!\ You should answer 'Y' or 'N'!"