SimPhyni: a tool for phylogenetic trait simulation and inference.
Project description
SimPhyNI
Overview
SimPhyNI (Simulation-based Phylogenetic iNteraction Inference) is a phylogenetically-aware framework for detecting evolutionary associations between binary traits (e.g., gene presence/absence, major/minor alleles, binary phenotypes) on microbial phylogenetic trees. This tool leverages phylogenetic infromation to correct for surious associations caused by the relatedness of sister taxa.
This pipeline is designed to:
- Infer evolutionary parameters for traits (gain/loss rates, time to emergence, ancestral states)
- Estimate trait co-occurence null models through independent simulation of traits
- Output statistical results for associations
Getting Started
Installation
First create a new environment:
conda create -n simphyni python=3.11
conda activate simphyni
then install using using PyPI
pip install simphyni
test installation:
simphyni version
Usage
Run mode (single-run)
simphyni run \
--sample-name my_sample \
--tree path/to/tree.nwk \
--traits path/to/traits.csv \
--run-traits 0,1,2 \
--outdir my_analysis \
--cores 4 \
--temp_dir ./tmp \
--min_prev 0.05 \
--max_prev 0.95 \
--prefilter \
--plot
- --run-traits specifies a comma-separated list of column indices (0-indexed) in the traits CSV for “trait against all” comparisons. Use 'ALL' (default) to include all traits.
Run mode (batch)
Create a samples.csv file:
Sample,Tree,Traits,run_traits,MinPrev,MaxPrev
run1,tree1.nwk,traits1.csv,All,0.05,0.95
run2,tree2.nwk,traits2.csv,"0,1,2",0.05,0.90
- run_traits, MinPrev, and MaxPrev are optional columns that will use default values if not provided
Then execute:
simphyni run --samples samples.csv --cores 16
Run with HPC
First, download example cluster scripts:
simphyni download-cluster-scripts
Edit cluster config file for your computing cluster then install the approprate snakemake executor from the avalible catalog: https://snakemake.github.io/snakemake-plugin-catalog/index.html (slurm shown below):
pip install snakemake-executor-plugin-slurm
run simphyni with the --profile flag:
simphyni run --samples samples.csv --profile cluster_profile
For all run options:
simphyni run --help
Example data
Download and run example inputs using:
simphyni download-examples
simphyni run --samples example_inputs/simphyni_sample_info.csv --cores 8 --prefilter --plot
Outputs
Outputs for each sample are placed in structured folders in the working directory or specified output directory in subdirectories by sample name, including:
simphyni_result.csvcontianing all tested trait pairs with their infered interaction direction, p-value, and effect sizesimphyni_object.pkloptional file containing the completed analysis, parsable with an active SimPhyNI evironment. Contorlled with the --save-object flag (not recommended for large analyses, > 1,000,000 comparisons)- heatmap summaries of tested associations if --plot is enabled
Directory Structure
SimPhyNI/
├── simphyni/ # Core package
│ ├── Simulation/ # Simulation scripts
│ ├── scripts/ # Workflow scripts
│ └── envs/simphyni.yaml # Conda environment (used in snakemake)
├── conda-recipe/ # Build recipe
├── cluster_scripts # Cluster configs for SLURM
├── example_inputs
└── pyproject.toml
Contact
For questions, please open an issue or contact Ishaq Balogun at https://github.com/jpeyemi.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file simphyni-0.1.10.tar.gz.
File metadata
- Download URL: simphyni-0.1.10.tar.gz
- Upload date:
- Size: 25.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.23
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cbe3d398d2f923ae8f6fa2c03d615ac32dc7c6744bada980962601490f312c5c
|
|
| MD5 |
aa4974063bde8dc39e64ef01572c9c7f
|
|
| BLAKE2b-256 |
0b47261dbbdb205ae9702e008d207f88eb545515a1e80ee63d2c86250416c3f4
|
File details
Details for the file simphyni-0.1.10-py3-none-any.whl.
File metadata
- Download URL: simphyni-0.1.10-py3-none-any.whl
- Upload date:
- Size: 27.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.23
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0f57e3392d03305837e35b16615748afded59f70c117f426613951e60c1ecf98
|
|
| MD5 |
061bbba1228ac85c9c03b1e070f2ec5d
|
|
| BLAKE2b-256 |
1f3c4183bcc415d4657a9b2359df14f26763658b60731e9a244f9db0b199f9b5
|