Installation
PLASTRO can be installed via pip or conda. We recommend using conda for easier dependency management.
Requirements
PLASTRO requires Python 3.10 or higher and the following core dependencies:
pybind11 >= 2.6.0 (required for building graph-walker)
graph-walker >= 1.0.6 (essential for random walk functionality)
NumPy >= 1.20.0
Pandas >= 1.3.0
SciPy >= 1.7.0
Matplotlib >= 3.4.0
Scanpy >= 1.8.0
AnnData >= 0.8.0
NetworkX >= 2.6.0
scikit-learn >= 1.0.0
scikit-bio >= 0.5.7
ete3 >= 3.1.2
seaborn >= 0.11.0
tqdm >= 4.60.0
icecream >= 2.1.0
Install via Pip
PLASTRO requires pybind11 to be installed first for building essential dependencies:
pip install pybind11
pip install plastro
To install with all optional dependencies:
pip install pybind11
pip install plastro[all]
Development Installation
For development, clone the repository and install in editable mode:
git clone https://github.com/dpeerlab/PLASTRO.git
cd PLASTRO
pip install pybind11
pip install -e ".[dev]"
Using Environment Files
We provide environment files for easy setup:
Using conda:
conda env create -f environment.yml
conda activate plastro
Using pip:
pip install -r requirements.txt
Optional Dependencies
Some features require additional packages:
Lineage Tracing:
pip install cassiopeia-lineage
Development Tools:
pip install plastro[dev]
Documentation:
pip install plastro[docs]
Verification
Test your installation:
import plastro
print(plastro.__version__)
# Test basic functionality
print("Available functions:", dir(plastro))
Troubleshooting
Common Issues:
ETE3 Installation Problems
If you encounter issues with ETE3:
conda install -c etetoolkit ete3
Graph-Walker Build Issues
If graph-walker fails to build, ensure pybind11 is installed first:
pip install pybind11 pip install graph-walker
Memory Issues with Large Datasets
For large datasets, consider:
Using a machine with more RAM
Processing data in chunks
Using sparse matrix representations
Getting Help:
If you encounter issues:
Check the Issues page
Search existing issues for solutions
Create a new issue with detailed error information