From 4417005e2cb0f8b198df53271aef87bb35bc52f3 Mon Sep 17 00:00:00 2001 From: Ben Jeffery Date: Tue, 17 May 2022 20:31:43 +0100 Subject: [PATCH] PKG Add msprime and deps including libgsl (#2548) msprime is a widely used genetic simulation tool. --- docs/project/changelog.md | 3 ++- packages/demes/meta.yaml | 18 ++++++++++++++++++ packages/libgsl/meta.yaml | 12 ++++++++++++ packages/msprime/meta.yaml | 29 +++++++++++++++++++++++++++++ packages/msprime/test_msprime.py | 18 ++++++++++++++++++ packages/newick/meta.yaml | 14 ++++++++++++++ packages/ruamel/meta.yaml | 16 ++++++++++++++++ 7 files changed, 109 insertions(+), 1 deletion(-) create mode 100644 packages/demes/meta.yaml create mode 100644 packages/libgsl/meta.yaml create mode 100644 packages/msprime/meta.yaml create mode 100644 packages/msprime/test_msprime.py create mode 100644 packages/newick/meta.yaml create mode 100644 packages/ruamel/meta.yaml diff --git a/docs/project/changelog.md b/docs/project/changelog.md index aa40269c9..20c29b22e 100644 --- a/docs/project/changelog.md +++ b/docs/project/changelog.md @@ -111,7 +111,8 @@ substitutions: - New packages: opencv-python v4.5.5.64 {pr}`2305`, ffmpeg {pr}`2305`, libwebp {pr}`2305`, h5py, pkgconfig and libhdf5 {pr}`2411`, bitarray {pr}`2459`, gsw {pr}`2511`, cftime {pr}`2504`, - svgwrite, jsonschema, tskit {pr}`2506`, xarray {pr}`2538` + svgwrite, jsonschema, tskit {pr}`2506`, xarray {pr}`2538`, demes, libgsl, newick, + ruamel, msprime {pr}`4138`. ## Version 0.20.0 diff --git a/packages/demes/meta.yaml b/packages/demes/meta.yaml new file mode 100644 index 000000000..55a8907ae --- /dev/null +++ b/packages/demes/meta.yaml @@ -0,0 +1,18 @@ +package: + name: demes + version: 0.2.2 +source: + url: https://files.pythonhosted.org/packages/2f/e4/86796d77ea453aa96f1ce758b461cdf738177f441a18c832cc9f29848903/demes-0.2.2-py3-none-any.whl + sha256: 54f0110e9f1b5167347fb4793f0b1d297a58dfe3857f5e5287762aa50dea6036 +requirements: + run: + - attrs + - ruamel +test: + imports: + - demes +about: + home: https://github.com/popsim-consortium/demes-python + PyPI: https://pypi.org/project/demes + summary: tools for describing demographic models + license: ISC diff --git a/packages/libgsl/meta.yaml b/packages/libgsl/meta.yaml new file mode 100644 index 000000000..38121f9b6 --- /dev/null +++ b/packages/libgsl/meta.yaml @@ -0,0 +1,12 @@ +package: + name: libgsl + version: "2.7" +source: + sha256: efbbf3785da0e53038be7907500628b466152dbc3c173a87de1b5eba2e23602b + url: https://ftp.gnu.org/gnu/gsl/gsl-2.7.tar.gz +build: + library: true + script: | + emconfigure ./configure \ + CFLAGS="-fPIC" + emmake make -j ${PYODIDE_JOBS:-3} diff --git a/packages/msprime/meta.yaml b/packages/msprime/meta.yaml new file mode 100644 index 000000000..7c830964f --- /dev/null +++ b/packages/msprime/meta.yaml @@ -0,0 +1,29 @@ +package: + name: msprime + version: 1.1.1 +source: + url: https://files.pythonhosted.org/packages/30/ac/22b9d2dc6e3233cc35e613b714d52cf87e4af00064a53d226824401629cb/msprime-1.1.1.tar.gz + sha256: e840bed2ba37ae572b234f0b55af006dc408881593f184304481ee6058ea6f30 +build: + cflags: | + -I$(PYODIDE_ROOT)/packages/libgsl/build/libgsl-2.7 + ldflags: | + -L$(PYODIDE_ROOT)/packages/libgsl/build/libgsl-2.7/.libs + -L$(PYODIDE_ROOT)/packages/libgsl/build/libgsl-2.7/cblas/.libs +requirements: + run: + - numpy + - newick + - tskit + - demes + - libgsl +test: + imports: + - msprime +about: + home: https://tskit.dev/msprime + PyPI: https://pypi.org/project/msprime + summary: + Simulate genealogical trees and genomic sequence data using population + genetic models + license: GNU GPLv3+ diff --git a/packages/msprime/test_msprime.py b/packages/msprime/test_msprime.py new file mode 100644 index 000000000..a18779d33 --- /dev/null +++ b/packages/msprime/test_msprime.py @@ -0,0 +1,18 @@ +from pyodide_test_runner import run_in_pyodide + + +@run_in_pyodide( + packages=[ + "msprime", + ] +) +def test_msprime(): + import msprime + import tskit + + # basic test + ts = msprime.sim_ancestry(10, random_seed=42) + ts.dump("/tmp/msprime.trees") + ts = tskit.load("/tmp/msprime.trees") + ts2 = msprime.sim_ancestry(10, random_seed=42) + ts.tables.assert_equals(ts2.tables, ignore_provenance=True) diff --git a/packages/newick/meta.yaml b/packages/newick/meta.yaml new file mode 100644 index 000000000..27985dc5b --- /dev/null +++ b/packages/newick/meta.yaml @@ -0,0 +1,14 @@ +package: + name: newick + version: 1.3.2 +source: + url: https://files.pythonhosted.org/packages/95/11/4db3f40c604b6cb1a574cbf06f66e217af03835385cca1605530d58cacc7/newick-1.3.2-py2.py3-none-any.whl + sha256: 6fced6f48b045225ccc4ee4cdbfe78c42b538274f1b866c6add349cf02752fdd +test: + imports: + - newick +about: + home: https://github.com/dlce-eva/python-newick + PyPI: https://pypi.org/project/newick + summary: A python module to read and write the Newick format + license: Apache 2 diff --git a/packages/ruamel/meta.yaml b/packages/ruamel/meta.yaml new file mode 100644 index 000000000..a7b9fb0b3 --- /dev/null +++ b/packages/ruamel/meta.yaml @@ -0,0 +1,16 @@ +package: + name: ruamel + version: 0.17.21 +source: + url: https://files.pythonhosted.org/packages/9e/cb/938214ac358fbef7058343b3765c79a1b7ed0c366f7f992ce7ff38335652/ruamel.yaml-0.17.21-py3-none-any.whl + sha256: 742b35d3d665023981bd6d16b3d24248ce5df75fdb4e2924e93a05c1f8b61ca7 +test: + imports: + - ruamel +about: + home: https://sourceforge.net/p/ruamel-yaml/code/ci/default/tree + PyPI: https://pypi.org/project/ruamel.yaml + summary: + ruamel.yaml is a YAML parser/emitter that supports roundtrip preservation + of comments, seq/map flow style, and map key order + license: MIT license