Ich habe eine ausgerichtete Proteinsequenzdatei, die ich zur Rekonstruktion eines sparsamen Baums verwendet habe. Ich verwende derzeit die NNITreeSearcher._get_neighbors-Methode aus Biopython 1.72, aber es ist eine Möglichkeit, nur einen Baum mit der besten Bewertung zu finden.
def _nni (self, Starting_tree, Ausrichtung): "" Suche nach der besten Sparsamkeit Baum mit dem NNI-Algorithmus (PRIVATE). "" "best_tree = Startbaum, während True: best_score = self.scorer.get_score (bester_baum, Ausrichtung) temp = bester_score für t in self._get_neighbors (bester_baum): score = self.scorer.get_score (t, Ausrichtung) wenn Punktzahl < best_score: best_score = Punktzahl best_tree = t # Stopp, wenn keine kleinere Punktzahl vorhanden ist, wenn best_score > = temp: break return best_tree
Ich muss alle NNI- generieren Nachbarn der Bäume (zwei Bäume sind NNI-Nachbarn, wenn einer durch eine Austauschoperation für den nächsten Nachbarn in einen anderen umgewandelt werden kann).
- Ich möchte wissen, wie ich die Gesamtzahl der zuvor generierten Bäume erhalten kann der beste Baum erreicht ist.
- Ist es möglich, alle Bäume zurückzugeben, die generiert wurden, bevor der beste Baum erreicht wurde, damit die gesamte / erforderliche Anzahl von Bäumen (außer dem besten Baum) gedruckt werden kann? ol>