Ich hatte vor einiger Zeit ein etwas grösseres Programm geschrieben. Nun wollte ich es erweitern, hab es aber noch einmal neu geschrieben um ein Paket zu verwenden, das mir einige Sachen erleichtern soll (BioPython). So weit so gut, jetzt bin ich an eine Stelle gekommen, an der ich einen Teil des codes aus dem alten Programm wiederverwenden wollte und hab ihn copy und paste in mein neues Programm eingefügt (Berechnung einer Kovarianzmatrix...). Allerdings braucht mein neues Programm um einiges länger zur Berechnung, als es mein altes tat. Der code sieht wie folgt aus:
Code: Alles auswählen
t = time.clock()
exP = []
exA = []
print len(atomList)
print len(atomList[0])
for i in range(len(atomList[0])):
v = []
for j in range(len(atomList)):
v.append(atomList[j][i])
exP.append(v)
for j in range(len(aveList)):
exA.append(aveList[j])
a1 = []
for aNr in range(len(exP)):
a2 = []
for aStr in exP[aNr]:
a2.append(aStr-exA[aNr])
a1.append(a2)
for elem in a1:
row = []
for e in a1:
sum = 0
for i in range(len(elem)):
sum += elem[i]*e[i]
row.append(sum/len(elem))
self._matrixAsArray.append(row)
self._matrix = matrix(self._matrixAsArray)
a1 = time.clock() - t
print "Laufzeit: %3.2f sec" %a1
print self._matrix
In meinem alten Programm hatte ich alle Daten in Listen, jetzt verwende ich die Objekt-Strukturen von BioPython, übersetze allerdings die Informationen aus den Objekten wieder in die Listenstruktur, die ich im alten Programm auch hatte, damit ich meine alten Methoden verwenden kann. (Ja ich weiss, klingt nach unnötiger Mehrarbeit, allerdings bietet mir BioPython viele Sachen, die ich sonst selber schreiben müsste. Da ist mir dieser kleine Umweg noch lieber, zumal ich das nur an zwei Stellen machen muss und ich ansonsten mit den BioPython Methoden auskomme...)
Hat irgendjemand eine Idee, woran das liegen könnte???
Vielen Dank,
cpt