Spørsmål:
Beregn prosentandelen av hvert unike fylogenetiske tre i en BEAST-utgang
Justine Vandendorpe
2019-02-05 16:33:38 UTC
view on stackexchange narkive permalink

Jeg har en nexus-formatert BEAST -utgang som inneholder 20 000 fylogenetiske trær med syv takster. Er det noen måte å få prosentandelen av hvert unike fylogenetiske tre som finnes i denne utgangen?

Jeg gjorde allerede et mislykket forsøk med R.

Hvis fylogenetiske trær kan representeres som strenger, er det i utgangspunktet bare strengmatching. Uansett, jeg tror spørsmålet ditt vil være mer egnet for [bioinformatics.se] da det mest handler om programmeringsaspektet.
Kan du forklare hva som er et "unikt fylogenetisk tre"? Kanskje hvis du laster opp et bilde, ville det være tydeligere hva du mener.
@llrs Når jeg nevner et 'unikt fylogenetisk tre', refererer jeg til [topologien] (https://www.ebi.ac.uk/training/online/course/introduction-phylogenetics/what-phylogeny/aspects-phylogenies/ topologi) av treet. Jeg vil gjerne trekke ut alle de unike topologiene fra min BEAST-utgang, og beregne hvor mange ganger hver av disse topologiene vises i min BEAST-utdata. Dette vil tillate meg å etablere en prosentandel for hver topologi. Tanken er å vite hvilke topologier som er mest representert i tillegg til konsensus-treet.
To svar:
Justine Vandendorpe
2019-02-07 18:03:07 UTC
view on stackexchange narkive permalink

Jeg klarte til slutt å gjøre det i R. Her er koden min:

  install.packages ('devtools') bibliotek (devtools) install_github ('santiagosnchez / rBt') bibliotek (rBt) beast_output <- read.annot.beast ('beast_output .trees ') beast_output_rooted <- root.multiPhylo (beast_output, c (' taxon_A ',' taxon_B ')) unique_topologies <- unique.multiPhylo (beast_output_rooted) count <- function (item, list) i total = 0 1: lengde (liste)) {if (all.equal.phylo (item, list [[i]], use.edge.length = FALSE)) {total = total + 1}} return (total)} result <- data.frame (unik_topologi = rep (0, lengde (unike_topologier)), count = rep (0, lengde (unike_topologier))) for (i i 1: lengde (unike_topologier)) {resultat [i,] <- c (i , count (unike_topologier [[i]], beast_output_rooted))} resultat  $ prosent <- ((resultat $  count / length (beast_output_rooted)) * 100)  
Dette er fantastisk, takk for innlegget
Michael
2019-02-05 23:08:41 UTC
view on stackexchange narkive permalink

Du trenger en konsensus fylogeni.

Dette er tilgjengelig i RAxML, PAUP, den gamle Phylip-pakken og muligens statistikk-følgesvenn til Beast, Tracer. Jeg må grave opp koden for RAxML og PAUP. Det enkleste er Consense her fordi du bare laster det ned og skriver inn sekvensen. MERK at de muligens er en formatforskjell (RAxML og Consense bruker Phylip-format), jeg mistenker at du har nexus- eller Newick-format.

Beast har sannsynligvis sin egen konsensusformering ELLER Beast-følgesvennen "Tracer" kan ha dette (jeg kan ikke huske). Tracer er her og ville være kult hvis det gjorde konsensus fylogeni fordi det ikke vil være noen konverteringsproblemer (det bruker ikke Phylip-format). Alternativet er å bruke PAUP (ingen konverteringsproblemer), som for tiden er i en tilstand av flyt fra forskjellige stadier av freeware og oppdateringer. PAUP er inneholdt i Genious-pakken, som er tilgjengelig som 1 måneders gratisvare.

Ta en titt og gi meg beskjed: for hvis du vil bruke RAxML eller Consense, må du sannsynligvis minne meg av Beast-utdata, hvis det er det jeg tror det er et format konverterings-app er nødvendig. Beregningen er enkel, det er enkelt å skripte et konverteringsprogram, men jeg tror treforming vil være et problem.

Du kan bruke Ape, innenfor R, men som du har samlet, er det mange andre løsninger. Det er nyere, imponerende løsninger som frittstående som jeg ikke har brukt ennå.

Tusen takk for svaret! Imidlertid har jeg allerede et konsensus-tre, og jeg prøver nå å få de andre mest representerte topologiene fra min BEAST-produksjon.
Ok. Så vidt jeg er klar over at programmet ikke er skrevet, for minst et par år siden, var det ikke, ikke sikker på dette nå. Å bruke R "ape" er det beste alternativet. På dette spørsmålet kan jeg definitivt ikke hjelpe.


Denne spørsmålet ble automatisk oversatt fra engelsk.Det opprinnelige innholdet er tilgjengelig på stackexchange, som vi takker for cc by-sa 4.0-lisensen den distribueres under.
Loading...