eGPS oneBuilder

Chinese documentation: README_zh.md
Citation guide: how_to_cite.md
A Linux-based phylogenetic workflow that combines scriptable CLI wrappers with Java Swing GUIs. The actual alignment and tree-building pipeline is Linux-only. On Windows, the Swing tools are limited to GUI configuration export and standalone tanglegram viewing for existing results.
0. Highlights
- The repository provides one workflow for protein input and one for DNA/CDS input.
- The recommended distribution format is an Apptainer/Singularity image. It bundles the Linux runtime software, Java runtime, Java libraries, and MAD binary so users do not need to recreate the development environment manually.
- Supports MAFFT alignment, PHYLIP distance/parsimony methods, IQ-TREE maximum likelihood, MrBayes Bayesian inference, and optional Foldseek protein-structure similarity for protein inputs.
- Adds
onebuilder.launcher, a Java Swing workflow GUI with Input / Align, Tree Parameters, Tree Build, and Tanglegram. On Linux it can run the existing pipeline; on Windows it is limited to workflow setup, config export, and standalone result viewing.
- Keeps the CLI wrappers for scripted and batch-style runs, so the same workflow can be driven either from the GUI or from shell automation.
- Lets the GUI pass MAFFT, method enable/disable, maximum-likelihood, Bayesian, and raw passthrough settings into the existing shell wrappers and Python pipelines through
--config runtime JSON.
- Generates tree visualizations plus TreeDist / Robinson-Foulds matrices and a combined summary heatmap in
tree_summary/.
- Provides a standalone Java tanglegram viewer for interactive comparison of inferred trees on both Linux and Windows.
tanglegram.launcher can directly load one tree_summary/ result and render the four sequence-derived trees, plus an optional Protein Structure tree when available.
0.1 New Features
onebuilder.launcher adds an interactive Java Swing workflow GUI with left-side workflow sections for input, method parameters, rerooting, running, tanglegram inspection, viewer launching, and citation guidance.
- The parameter editor is now separated from the run page: method settings live in
Tree Parameters, while Tree Build focuses on draft review, run/export controls, live logs, and compact method-status indicators.
- The existing CLI wrappers remain first-class entrypoints, so the same workflow can still be scripted for repeated or batch-style runs.
- GUI and CLI now work together through a shared
--config runtime JSON bridge instead of maintaining separate execution logic.
- oneBuilder now validates output prefixes as simple names before running or importing configs, so prefixes cannot contain path separators, absolute paths,
. / .., or control characters.
- GUI-started Linux pipeline stages have a configurable timeout guard. The default is 24 hours per stage; set
ONEBUILDER_STAGE_TIMEOUT_SECONDS or Java property onebuilder.stageTimeoutSeconds to override it.
tanglegram.launcher loads one tree_summary/ result and renders the four inferred trees as six fixed pairwise comparison tabs.
tree_summary/ now includes a combined TreeDist + Robinson-Foulds heatmap figure in addition to the raw distance matrices. Pairwise TreeDist/RF calculation now computes each unique tree pair once and mirrors the symmetric matrix entries.
- Protein runs can add a Foldseek-based
Protein Structure step with basic TSV/FASTA controls, an Advanced Parameters drawer for Foldseek search flags, and optional structure-tree generation for tanglegram comparison.
- The left workflow includes
7. How to cite, which loads the citation guide from phylotree_builder_v0.0.1/how_to_cite.md; the repository root also exposes it through the how_to_cite.md symlink.
- On Windows,
onebuilder.launcher now shows a startup warning explaining that pipeline execution is disabled there, with a preference toggle to hide or re-enable that notice later.
- Multi-sequence protein FASTA, or multi-sequence DNA/CDS FASTA
- You can provide either aligned or unaligned multi-sequence FASTA
- If the input is already aligned, run the tree pipeline directly
- If the input is not aligned yet, you can either align it yourself first or let the GUI / CLI run MAFFT automatically before tree inference
1.2 Output
distance_method/
maximum_likelihood/
bayesian_method/
parsimony_method/
protein_structure/ when enabled for protein input
visualizations/
tree_summary/
2. Quick Start
2.1 Recommended: Apptainer
Use the Apptainer image when you want a portable Linux runtime without manually installing MAFFT, PHYLIP, IQ-TREE, MrBayes, Foldseek, Python/R packages, Java runtime, Java jars, or MAD.
If you already have the image, put it at:
apptainer/onebuilder-0.0.1-linux64.sif
Check the image:
apptainer exec apptainer/onebuilder-0.0.1-linux64.sif onebuilder-run-config --help
apptainer exec apptainer/onebuilder-0.0.1-linux64.sif onebuilder-align --help
apptainer exec apptainer/onebuilder-0.0.1-linux64.sif onebuilder-trim --help
apptainer exec apptainer/onebuilder-0.0.1-linux64.sif onebuilder-protein --help
apptainer exec apptainer/onebuilder-0.0.1-linux64.sif onebuilder-dna --help
Run one exported oneBuilder JSON. Bind the repository, or any directory containing your input data and output folder, to a path visible inside the container:
apptainer exec --bind "$PWD:/work" apptainer/onebuilder-0.0.1-linux64.sif \
onebuilder-run-config --force-overwrite /work/input_demo/inputConfig/gold_standard_cds_aligned_full_config.onebuilder.json
Run an aligned protein FASTA directly:
apptainer exec --bind "$PWD:/work" apptainer/onebuilder-0.0.1-linux64.sif \
onebuilder-protein --force-overwrite /work/input_demo/inputSeq/gold_standard_protein_aligned.fasta /work/demo_protein
Run an aligned DNA/CDS FASTA directly:
apptainer exec --bind "$PWD:/work" apptainer/onebuilder-0.0.1-linux64.sif \
onebuilder-dna --force-overwrite /work/input_demo/inputSeq/gold_standard_cds_aligned.fasta /work/demo_dna
Run MAFFT alignment only:
apptainer exec --bind "$PWD:/work" apptainer/onebuilder-0.0.1-linux64.sif \
onebuilder-align /work/input.fasta
Launch the full GUI from the image:
apptainer exec --bind "$PWD:/work" apptainer/onebuilder-0.0.1-linux64.sif \
java -cp "/opt/onebuilder/java_tanglegram:/opt/onebuilder/lib/*" onebuilder.launcher
Launch the standalone tanglegram GUI:
apptainer exec --bind "$PWD:/work" apptainer/onebuilder-0.0.1-linux64.sif \
java -cp "/opt/onebuilder/java_tanglegram:/opt/onebuilder/lib/*" tanglegram.launcher
Open an existing tree_summary/ directly:
apptainer exec --bind "$PWD:/work" apptainer/onebuilder-0.0.1-linux64.sif \
java -cp "/opt/onebuilder/java_tanglegram:/opt/onebuilder/lib/*" tanglegram.launcher -dir /work/test1/tree_summary
To build or rebuild the image locally, use the tracked recipe:
bash apptainer_build/build.sh
The build recipe expects this development checkout to already have the local runtime snapshot and bundled runtime assets available under phylotree_builder_v0.0.1/.pixi/envs/default/, phylotree_builder_v0.0.1/lib/, and phylotree_builder_v0.0.1/third_party/. A plain Git clone is enough to inspect and edit source code, but the final self-contained runtime artifact is the .sif image.
Large build products are written to the local apptainer/ workspace, which is ignored by Git. In this workspace it is a symlink to a Linux home-directory path so stage/ and .sif files do not have to be created on slow /mnt/c storage.
2.2 Native GUI
Launch the workflow GUI and configure everything interactively:
java -cp "java_tanglegram:lib/*" onebuilder.launcher
Use this path when you want to set alignment, method selection, and ML/Bayesian options in the window and run from the same place.
View already-run results:
java -cp "java_tanglegram:lib/*" tanglegram.launcher
2.3 Native CLI
Run the pipeline directly from the shell, which is convenient for scripting and batch jobs.
2.3.1 Protein Sequence
zsh phylotree_builder_v0.0.1/s2_phylo_4prot.zsh \
input_demo/simu/gold_standard_protein_aligned.fasta demo_protein
2.3.2 DNA Sequence
zsh phylotree_builder_v0.0.1/s2_phylo_4dna.zsh \
input_demo/simu/gold_standard_cds_aligned.fasta demo_dna
2.3.3 Unaligned Sequence
If your input FASTA is not aligned yet, run MAFFT first, then pass the aligned result into the tree pipeline:
zsh phylotree_builder_v0.0.1/s1_quick_align.zsh input.fasta
2.4 Native GUI plus CLI
This is the main hybrid workflow: use the GUI to set parameters, export one runtime JSON, then replay the whole flow from the shell with a single command.
java -cp "java_tanglegram:lib/*" onebuilder.launcher
Then run that exported JSON on Linux:
zsh phylotree_builder_v0.0.1/run_onebuilder_config.zsh /path/to/demo.onebuilder.json
This script reads run.input_type, run.input_file, run.output_base_dir, run.output_prefix, and alignment.run_alignment_first from the JSON, optionally runs MAFFT first, then dispatches to the correct protein or DNA/CDS wrapper automatically.
The lower-level wrappers remain available, but run_onebuilder_config.zsh is now the intended CLI entrypoint for replaying a GUI-exported configuration.
2.5 Native Full Config Import Run
You can also start from one complete runtime JSON directly, without reopening the GUI first. This is useful when you want to keep one checked or shared config file as the single source of truth for repeated Linux runs.
zsh phylotree_builder_v0.0.1/run_onebuilder_config.zsh tree_build_full_config_template.json
In practice you should first copy tree_build_full_config_template.json, then fill in the run paths and the method settings you care about.
The full template may include both protein-oriented and DNA/CDS-oriented method blocks at the same time. The runtime loader now resolves that by reading run.input_type first, then selecting the matching method settings automatically during execution.
For example, with run.input_type set to DNA_CDS, the run will use dnadist, dnapars, DNA MrBayes settings, and DNA-safe IQ-TREE settings even if the same JSON still contains protein-only blocks for another job.
2.6 Wrapper Options
The wrappers now expose the options that the GUI uses internally:
run_onebuilder_config.zsh <runtime.json> or run_onebuilder_config.zsh --config <runtime.json>
s1_quick_align.zsh [--config runtime.json] [--strategy localpair|genafpair|auto|globalpair] [--maxiterate N] [--reorder|--no-reorder] <input.fasta>
s2_phylo_4prot.zsh [--config runtime.json] <input.fasta> [output_prefix]
s2_phylo_4dna.zsh [--config runtime.json] <input.fasta> [output_prefix]
run_onebuilder_config.zsh is Linux-only and is the highest-level CLI wrapper. It reuses the JSON exported by onebuilder.launcher directly, so you do not need to repeat the input file or output prefix on the command line.
The lower-level --config JSON support on s1_quick_align.zsh, s2_phylo_4prot.zsh, and s2_phylo_4dna.zsh remains available. It lets the GUI pass alignment, method enable/disable state, ML parameters, Bayesian parameters, and raw passthrough blocks into the existing shell wrappers and Python pipelines.
Detailed parameter reference:
3. Runtime Expectations
The timings below come from real runs of the bundled demo inputs on the current development machine. Treat them as order-of-magnitude guidance, not fixed guarantees.
- Protein demo
gold_standard_protein_aligned.fasta: about 8 to 9 minutes end to end.
- In the protein workflow, the slowest step is MrBayes. The current default
ngen is 100000, so current runs may take longer than older benchmark notes that used 50000.
- In the same protein run, IQ-TREE took about 35 to 40 seconds, distance and parsimony steps finished within seconds, and post-processing (MAD rerooting, visualization, and tree-distance summaries) took another roughly 20 to 30 seconds.
- DNA/CDS demo
gold_standard_cds_aligned.fasta: about 40 to 45 seconds end to end.
- In the current DNA/CDS demo, IQ-TREE took about 10 to 12 seconds, MrBayes took about 9 to 10 seconds, and MAD rerooting plus visualization plus tree-distance summaries added another roughly 15 to 25 seconds.
- On larger datasets, with longer sequences, more bootstrap replicates, or more MrBayes generations, the Bayesian step is usually the first one that becomes the bottleneck.
4. Workflow
- Start from an aligned FASTA file.
- Convert it to PHYLIP format.
- Build trees with four inference methods.
- Reroot and ladderize the trees.
- Generate plots, summary reports, and tree distance statistics.
- Use the Java tanglegram module if you want to compare results interactively.
The repository now includes two standalone Java Swing entrypoints:
onebuilder.launcher: the full workflow GUI with Input / Align, Tree Parameters, Tree Build, and Tanglegram. Linux can run the pipeline; Windows is for setup and JSON config export only.
tanglegram.launcher: the focused pairwise tanglegram viewer for loading an existing tree_summary/ on Linux or Windows, including the optional Protein Structure tree when it exists.
run_onebuilder_config.zsh: the Linux-only JSON runner that replays a GUI-exported .onebuilder.json without re-entering the input file or output prefix.
Compile from the repository root:
javac -cp "phylotree_builder_v0.0.1/lib/*:phylotree_builder_v0.0.1/java_tanglegram" -d phylotree_builder_v0.0.1/java_tanglegram \
phylotree_builder_v0.0.1/java_tanglegram/tanglegram/*.java \
phylotree_builder_v0.0.1/java_tanglegram/onebuilder/*.java \
phylotree_builder_v0.0.1/java_tanglegram/tests/*.java
javac -cp "phylotree_builder_v0.0.1\lib/*;phylotree_builder_v0.0.1\java_tanglegram" -d phylotree_builder_v0.0.1\java_tanglegram `
phylotree_builder_v0.0.1\java_tanglegram\tanglegram\*.java `
phylotree_builder_v0.0.1\java_tanglegram\onebuilder\*.java `
phylotree_builder_v0.0.1\java_tanglegram\tests\*.java
Or first cd phylotree_builder_v0.0.1/, then use:
javac -cp "lib/*:java_tanglegram" -d java_tanglegram \
java_tanglegram/tanglegram/*.java \
java_tanglegram/onebuilder/*.java \
java_tanglegram/tests/*.java
javac -cp "lib/*;java_tanglegram" -d java_tanglegram `
java_tanglegram/tanglegram/*.java `
java_tanglegram/onebuilder/*.java `
java_tanglegram/tests/*.java
5.1 Full Workflow GUI
Linux launch from the repository root:
java -cp "phylotree_builder_v0.0.1/java_tanglegram:phylotree_builder_v0.0.1/lib/*" onebuilder.launcher
Linux launch after cd phylotree_builder_v0.0.1/:
java -cp "java_tanglegram:lib/*" onebuilder.launcher
Windows PowerShell launch from the repository root:
java -cp "phylotree_builder_v0.0.1\java_tanglegram;phylotree_builder_v0.0.1\lib/*" onebuilder.launcher
Windows PowerShell launch after Set-Location phylotree_builder_v0.0.1:
java -cp "java_tanglegram;lib/*" onebuilder.launcher
Usage notes:
- The left workflow is fixed to four main sections:
Input / Align, Tree Parameters, Tree Build, and Tanglegram.
Input / Align is the only page that must be completed first. If required fields are missing, later sections stay clickable but explain why navigation is blocked.
Tree Parameters uses a method tree with Distance Method, Maximum Likelihood, Bayes Method, Maximum Parsimony, and Protein Structure.
Protein Structure is always visible in the method tree. It is enabled for protein input and shown as Protein only for non-protein input.
Tree Build is now the dedicated run page. It contains the configuration summary/log area plus Run, Stop, and Export Config actions.
- The
Tree Build page also shows five compact method-status indicators for Distance Method, Maximum Likelihood, Bayes Method, Maximum Parsimony, and the reserved Protein Structure slot.
- Actual alignment and tree building are Linux-only. Use a Linux desktop session or X11 forwarding for real runs.
- On Windows,
onebuilder.launcher is limited to parameter editing and JSON config export. It does not execute s1_quick_align.zsh, s2_phylo_4prot.zsh, or s2_phylo_4dna.zsh, and it shows a startup warning unless that notice is disabled in preferences.
- Enable
Run multiple sequence alignment first if the input FASTA is raw and not aligned yet; on Linux the GUI forwards MAFFT settings into s1_quick_align.zsh.
- The input page includes input/output paths, remembered browse locations, MAFFT strategy,
Maxiterate, sequence reorder control, Advanced MAFFT, Export config file when running, and Export JSON.
- Advanced parameter groups are collapsed by default with a shared task-pane style and now appear in a consistent position directly below the primary controls in each method page.
- The GUI lets you disable individual tree-building methods and tune the exposed ML, Bayesian, and structured PHYLIP common parameters before starting a run.
Protein Structure is a protein-only Foldseek step. Basic Parameters include Enable Foldseek protein structure similarity, Use protein structure mapping TSV, Protein structure TSV, and ProstT5 model weights. When a TSV is selected, each non-comment row must be sequence_id<TAB>structure_file, and relative structure paths are resolved from the TSV directory. When no TSV is selected, FASTA-only ProstT5/3Di mode requires a local ProstT5 model weights path; oneBuilder does not download that model automatically.
Protein Structure > Advanced Parameters exposes Foldseek search controls: Threads (--threads), Sensitivity (-s), E-value (-e), Max seqs (--max-seqs), Coverage threshold (-c), Coverage mode (--cov-mode), Alignment type (--alignment-type), TM-score threshold, Verbosity (-v), --exhaustive-search, --exact-tmscore, --gpu, and Extra Foldseek args with one token per line.
- After Foldseek creates the distance matrix, oneBuilder can build
protein_structure/structure_tree.nwk with either NJ or Swift NJ. That tree is treated as an optional fifth tree in tanglegram loading, so runs without Protein Structure still show the original four-method comparisons.
- The Foldseek step writes
protein_structure/pairwise_scores.tsv, protein_structure/similarity_matrix.tsv, protein_structure/distance_matrix.tsv, protein_structure/structure_tree.nwk, and protein_structure/run_config.json. Runtime-only structure_inputs/ and foldseek_tmp/ directories are intentionally ignored by Git. For CLI/config runs, set methods.protein_structure.prostt5_model_path whenever use_structure_manifest is false.
- For Apptainer/Singularity packaging, include the ProstT5 weights in the image or bind-mount them at runtime, then set
prostt5_model_path to the path visible inside the container.
- The default structure distance policy is
distance = 1 - similarity, using the mean of qtmscore and ttmscore when real structures are provided. Missing Foldseek pairs are written as distance 1 by default so the distance matrix stays numeric.
- The Tree Build progress bar starts with an indeterminate animation during preparation, then switches to determinate
completed/total progress once method or post-build events are available. Long-running Bayesian, Protein Structure, and tree-distance steps keep the same counter while showing a please wait... text animation.
- The ML page now gives non-blocking bootstrap guidance:
1000 remains the recommended default, 0 explicitly means “skip -bb”, and very large values show a runtime warning instead of hard-blocking the run.
- The PHYLIP pages now keep
menu_overrides as the advanced escape hatch, while exposing stable common controls such as DNA distance model settings, neighbor type/outgroup, protein protpars print toggles, and DNA dnapars outgroup/transversion options directly in the GUI.
- The window also includes
Preference > Settings... for shared UI preferences such as global font family, global font size, window-size restore, the default tanglegram label-font size, and Show Windows oneBuilder startup warning.
- Preference changes are applied live to currently open Java windows and are reused on the next launch.
- Shared GUI preferences are stored in
~/.egps.onebuilder.prop instead of the Windows registry, so the same storage model is used on Linux and Windows.
Export config file when running is enabled by default. When it stays enabled, Linux runs save <output_base_dir>/<output_prefix>.onebuilder.json and pass that file into the wrappers.
output_prefix must be a plain file/directory name. The GUI and config importer reject path separators, absolute paths, . / .., and control characters to keep generated output inside the selected output base directory.
- If
Export config file when running is disabled, Linux runs still work but use a temporary runtime JSON file for that run only. That file is created under the selected output base directory and removed when the run exits; a warning is logged if cleanup fails.
- GUI-started Linux stages time out after 24 hours by default. Use
ONEBUILDER_STAGE_TIMEOUT_SECONDS=<seconds> or JVM property -Donebuilder.stageTimeoutSeconds=<seconds> to change this; use 0 to disable the guard.
Export JSON always writes the current GUI settings to <output_base_dir>/<output_prefix>.onebuilder.json.
- The exported
<output_prefix>.onebuilder.json is now directly executable on Linux through zsh phylotree_builder_v0.0.1/run_onebuilder_config.zsh /path/to/file.onebuilder.json.
- Inside
onebuilder.launcher, the Tanglegram page unlocks only after a successful Linux run and then auto-loads the current output directory. On Windows, use the standalone tanglegram.launcher to inspect an existing tree_summary/.
- Inside the GUI, the
Tanglegram page also exposes label-font size, horizontal/vertical padding, auto-fit, and a Reload from current run action.
- The launchers explicitly disable FlatLaf’s native library integration with
flatlaf.useNativeLibrary=false, so JDK 24+ does not print the --enable-native-access=ALL-UNNAMED warning.
How to cite displays the English citation guide as its own left-side workflow section. The canonical file lives at phylotree_builder_v0.0.1/how_to_cite.md, and the repository root how_to_cite.md is a symlink to the same document.
5.2 Tanglegram Viewer
Launch without loading data first from the repository root:
java -cp "phylotree_builder_v0.0.1/java_tanglegram:phylotree_builder_v0.0.1/lib/*" tanglegram.launcher
java -cp "phylotree_builder_v0.0.1\java_tanglegram;phylotree_builder_v0.0.1\lib/*" tanglegram.launcher
After cd phylotree_builder_v0.0.1/:
java -cp "java_tanglegram:lib/*" tanglegram.launcher
java -cp "java_tanglegram;lib/*" tanglegram.launcher
Launch and immediately load one pipeline result:
java -cp "phylotree_builder_v0.0.1/java_tanglegram:phylotree_builder_v0.0.1/lib/*" tanglegram.launcher -dir test1/tree_summary
java -cp "phylotree_builder_v0.0.1\java_tanglegram;phylotree_builder_v0.0.1\lib/*" tanglegram.launcher -dir test1\tree_summary
Usage notes:
- The window title is
Tanglegram.
- If you already have pipeline output on Windows, this is the viewer to use for the six pairwise comparisons.
- The menu bar contains
Files > Open and Preference > Settings....
Preference shares the same global UI settings as onebuilder.launcher, including the global font and the default tanglegram label-font size.
- Those shared UI settings are stored in
~/.egps.onebuilder.prop.
Open expects a tree_summary/ directory from a pipeline run.
- The viewer arranges the four sequence-derived trees in the fixed six-tab order:
NJ-ML, NJ-BI, NJ-MP, ML-BI, ML-MP, BI-MP. If protein_structure/structure_tree.nwk exists, additional tabs compare PS against the available sequence-derived trees.
- If one required sequence method is missing but at least two trees can still be resolved, the viewer loads only the valid pair tabs instead of failing the whole window. Missing Protein Structure trees are optional and reported as optional warnings.
- If
tree_meta_data.tsv contains stale or machine-specific paths, the viewer falls back to the standard sibling folders distance_method/, maximum_likelihood/, bayesian_method/, and parsimony_method/.
- If no
-dir argument is provided, the app starts empty and waits for the user to import a tree_summary/ directory from the menu.
Dependencies and Environment
- Linux
- Pixi environment, declared in
phylotree_builder_v0.0.1/pixi.toml
- Core dependencies:
phylip, iqtree, mrbayes, biopython, ete4, r-treedist, matplotlib, mafft, foldseek
- The protein pipeline uses the local
help_utils.py and cal_pair_wise_tree_dist.R
- MAD rerooting defaults to
phylotree_builder_v0.0.1/third_party/mad/mad
Example Data
input_demo/simu/: simulated aligned input data
input_demo/prot_seqs_with_structure/: protein plus structure demo data for the Foldseek Protein Structure workflow
test1/: example output directory layout
Other Modules
phylo_pipeline_4dna.py: DNA/CDS pipeline entrypoint, now aligned with the protein workflow’s local helper scripts, MAD rerooting, and name-restoration flow
java_tanglegram/: standalone Java Swing tanglegram viewer for comparing the four sequence-derived pipeline trees, plus the optional Protein Structure tree when present
Notes
- Both the protein and DNA/CDS pipelines temporarily rename sequence IDs to
seqN before PHYLIP conversion, then restore the original names in the output trees.
- Prefer the repository wrapper scripts over assembling
pixi run ... python3.13 ... commands by hand.
Known Gotchas
- PHYLIP uses the strict format here, so sequence IDs traditionally need to stay within 10 characters. Both repository pipelines handle this automatically by renaming IDs to
seqN, but the limitation still matters if you invoke PHYLIP tools manually.
- Use the protein workflow for protein input and the DNA/CDS workflow for DNA or CDS input.
- The wrapper scripts assume that
pixi is callable. If your shell cannot find it, add Pixi to PATH or set PIXI_EXE explicitly.
- When invoking the Python pipelines directly, use
python3.13 instead of assuming a plain python executable exists inside the Pixi environment.
- If you run the main Python scripts directly rather than using the wrapper scripts, some environments also require
LD_LIBRARY_PATH=phylotree_builder_v0.0.1/.pixi/envs/default/lib; otherwise dependencies such as NumPy, R, or IQ-TREE may fail to load.
- In the current Pixi environment, IQ-TREE may appear as
iqtree3; the repository scripts handle this automatically, but manual commands need to account for the binary name.
- MAD rerooting depends on the vendored binary at
phylotree_builder_v0.0.1/third_party/mad/mad. If it is missing, the pipelines keep the original trees and continue.
- With the current defaults, the protein workflow is much slower than the DNA/CDS workflow mainly because MrBayes dominates runtime at larger
ngen values, not because the other tree-building methods are inherently different in kind.
- Sample inputs and sample output directories live at the repository root, not inside
phylotree_builder_v0.0.1/.
License
Apache-2.0. See LICENSE.
评论