2016-05-06 12 views
0

Ich muss eine sehr einfache Sache tun, ich habe einen Baum mit Verzweigungszeiten (im Inneren des Objekts wie Astlänge genannt) und ich muss eine Matrix mit den Verzweigungszeiten für die Spitzen erstellen. Ich habe viele Pakete ausprobiert und ich habe sehr komplexe Dinge gemacht, aber ich kann diese einfache Sache nicht, jemand könnte mir dabei helfen?Wie kann ich eine paarweise Matrix mit Verzweigungszeiten erstellen?

+1

Hallo und willkommen zu SO! Bitte lies [this] (http://stackoverflow.com/help/how-to-ask) Post darüber, wie du bessere Fragen stellst, die dir helfen werden, bessere Antworten zu geben. Veröffentlichen Sie insbesondere den Code, den Sie ausprobiert haben, und präzisieren Sie, mit was Sie Probleme haben. –

Antwort

0

In R ist Baumbearbeitung mit Werkzeugen aus Paket ape bequem. Sie können Ihren Baum im neuen Format mit read.tree() laden.

Ihre Frage ist nicht ganz klar, was Sie als nächstes tun müssen. Wenn Sie eine Abstandsmatrix mit paarweisen Divergenzzeiten von Taxa berechnen möchten, verwenden Sie die Funktion cophenetic.phylo().

require(ape) 

# Simulate a chronogram for 10 taxa 
tr <- rcoal(10) 
plot(tr) 

# Calculate pairwise divergence times 
div <- cophenetic.phylo(tr) 

Wenn Sie mal von den Spitzen der jüngsten Divergenz zu extrahieren, würde dieser Code Ihnen Längen von Endästen im Baum geben:

# Identify which branches are terminal 
term <- which(tr$edge[,2] %in% 1:10) 

# Provide terminal branch lengths 
tbr <- as.data.frame(cbind(taxa = tr$tip.label, times = tr$edge.length[term]))