Parsing phylogenetic trees (newick format)
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 45/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bastante claro
- Estado de actividad
- Tranquilo
- Stack tecnológico
- rust
- Área
- bioinformatics
Línea de trabajo
The issue asks for a new phylo.rs module that parses Newick strings into a struct and prints them back; the payload names no existing file to edit. Start by reading the Newick examples in the issue body and decide on the node representation. Done means the listed examples, from the unnamed tree through the rooted-on-a-leaf tree, parse and print back equivalently, with tests for each.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Is your feature request related to a problem? Please describe.
Would like to add parsing of newick format just to print the newick in the first place. Newick is described here:https://en.wikipedia.org/wiki/Newick_format. It is possible to get multiple newick trees inside a single file, they each finish with a semicolon. Some trees can have many nodes, the structure is a graph-type with nodes, edges and leaves. There is an XML format that some python programs parse newick into, phyloXML
Describe the solution you'd like
Looking to start a module phylo.rs with a parse of newick into some type of good struct or hashmap in the first place, with just ability to print it out.
Describe alternatives you've considered
There are some newick tree parsers in crates.io but they all seem to be a few years old, for example newick_0.11.0
Additional context
Various types of newick tree to parse: The one below marked as "popular" is the one I've seen much the most often, so we could concentrate on that structure and allow the others if possible. There are multiple nodes.
(,,(,)); no nodes are named
(A,B,(C,D)); leaf nodes are named
(A,B,(C,D)E)F; all nodes are named
(:0.1,:0.2,(:0.3,:0.4):0.5); all but root node have a distance to parent
(:0.1,:0.2,(:0.3,:0.4):0.5):0.0; all have a distance to parent
(A:0.1,B:0.2,(C:0.3,D:0.4):0.5); distances and leaf names (popular)
(A:0.1,B:0.2,(C:0.3,D:0.4)E:0.5)F; distances and all names
((B:0.2,(C:0.3,D:0.4)E:0.5)F:0.1)A; a tree rooted on a leaf node (rare)
- Lenguaje dominante
- Rust
- Estrellas
- 38
- Forks
- 15
- Merge medio
- 21 h 33 min
- PR fusionados (30 d)
- 2
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de LCrossman/microBioRust
-
good first issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
LCrossman/microBioRust#57 ·
-
pyclass warning on update pyo3Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
LCrossman/microBioRust#53 · 1 reacción ·
-
legacy manual annotation format rare error missing last codon in pseudogene after genbank! parseAbierto
Dificultad 3/5 Medio día Aptitud para principiantes 40/100
LCrossman/microBioRust#50 ·
-
enhancement help wanted
Dificultad 4/5 3-5 días Aptitud para principiantes 25/100
LCrossman/microBioRust#19 ·
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 8/100
LCrossman/microBioRust#18 · 1 reacción ·
Todos los issues de LCrossman/microBioRust
Issues similares
-
checkpoint/verify/rebuild_indexes on a thread holding a WriteTransaction deadlock instead of INT-001Abiertobug known-issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
project-minigraf/minigraf#734 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
Los mantenedores suelen responder en 4 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 64/100
Nimblesite/lspkit#26 ·
Los mantenedores suelen responder en 1 día