https://github.com/border-lab/xftsim
eXtensible Forward Time SIMulator for complex phenogenetic architectures
https://github.com/border-lab/xftsim
simulation statistical-genetics
Last synced: about 2 months ago
JSON representation
eXtensible Forward Time SIMulator for complex phenogenetic architectures
- Host: GitHub
- URL: https://github.com/border-lab/xftsim
- Owner: border-lab
- License: gpl-3.0
- Created: 2023-03-05T20:08:25.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2026-04-22T16:56:34.000Z (about 2 months ago)
- Last Synced: 2026-04-22T18:38:05.773Z (about 2 months ago)
- Topics: simulation, statistical-genetics
- Language: Python
- Homepage:
- Size: 55.9 MB
- Stars: 3
- Watchers: 1
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://xftsim.readthedocs.io/en/latest/?badge=latest) [](https://badge.fury.io/py/xftsim)
# eXtensible Forward Time SIMulator
`xftsim` simulates complex phenotype/genotype data with an emphasis on short timescale phenomena. `xftsim` is designed with two primary goals:
- make it easy for statistical geneticists to perform reproducible and systematic sensitivity analyses to better understand limitations and assumptions
- enable evaulation of methods for analyzing complex traits under realistically complex generative models
## Installation
`xftsim` is on PyPI. It can be installed in a couple minutes using pip and conda:
```bash
conda create --name xftsim python=3.9.6
conda activate xftsim
pip install xftsim
```
Alternatively, you can install the latest development version from github:
```bash
git clone https://github/rborder/xftsim
cd xftsim
git checkout dev
pip -e . install
```
To enable full functionality (i.e., automatic generation of causal diagrams), you must install [pygraphviz](https://pygraphviz.github.io).
`xftsim` has been tested on MacOS 13.4 and the following GNU/Linux distributions: Ubuntu 22.04, Ubuntu 24.04, PopOS 22.04, and RHEL 7 using Python version 3.9.6.
`xftsim` depends on the following packages...
```
asciitree==0.3.3
attrs==23.2.0
cattrs==23.2.3
certifi==2023.11.17
cffi==1.17.1
charset-normalizer==3.3.2
chembl-webresource-client==0.10.9
click==8.1.7
cloudpickle==3.1.0
contourpy==1.2.0
csrgraph==0.1.28
cycler==0.12.1
dask==2024.8.0
dask-expr==1.1.10
dask-glm==0.3.2
dask-ml==2024.4.4
Deprecated==1.2.14
distributed==2024.8.0
easydict==1.13
exceptiongroup==1.2.0
fasteners==0.19
fonttools==4.46.0
fsspec==2024.10.0
funcy==2.0
gensim==4.3.2
idna==3.6
importlib-metadata==8.5.0
importlib-resources==6.1.1
iniconfig==2.0.0
jinja2==3.1.4
joblib==1.3.2
kiwisolver==1.4.5
llvmlite==0.39.1
locket==1.0.0
MarkupSafe==3.0.2
matplotlib==3.8.2
msgpack==1.1.0
multipledispatch==1.0.0
networkx==2.8.8
node2vec==0.4.6
nodevectors==0.1.23
nptyping==2.5.0
numba==0.56.4
numcodecs==0.12.1
numpy==1.23.5
packaging==23.2
pandas==2.1.4
pandas-plink==2.2.9
partd==1.4.2
Pillow==10.1.0
platformdirs==4.2.0
pluggy==1.5.0
psutil==6.1.0
pyarrow==18.0.0
pycparser==2.22
pyparsing==3.1.1
pytest==8.3.3
python-dateutil==2.8.2
pytz==2023.3.post1
PyYAML==6.0.2
rdkit==2023.9.5
requests==2.31.0
requests-cache==1.2.0
scikit-learn==1.3.2
scipy==1.11.4
seaborn==0.13.0
sgkit==0.9.0
six==1.16.0
smart-open==7.0.1
sortedcontainers==2.4.0
sparse==0.15.4
tblib==3.0.0
threadpoolctl==3.2.0
tomli==2.0.2
toolz==1.0.0
tornado==6.4.1
tqdm==4.66.2
typing-extensions==4.10.0
tzdata==2023.3
url-normalize==1.4.3
urllib3==2.1.0
wrapt==1.16.0
xarray==2024.7.0
xftsim==0.2.0
zarr==2.18.2
zict==3.0.0
zipp==3.20.2
zstandard==0.23.0
```
## Getting started
To get started, [check out the documentation](https://xftsim.readthedocs.io)!
For a minimal test simulation you can run one of the built in demos (runtime < 1min):
```python3
import warnings
warnings.simplefilter(action='ignore', category=FutureWarning)
import xftsim as xft
demo = xft.sim.DemoSimulation('BGRM')
demo.run(3)
xft.utils.print_tree(demo.results)
```
## Notice
`xftsim` is under active development. Please let us know if there are features missing or bugs!