连续空间中的凝聚模拟

ercs的Python项目详细描述


模拟在空间中进化的种群的合并 灭绝/再沉积模式下的连续体。模拟 支持:

  • 一个n个体样本,其m位点位于 直径为L的圆环。
  • 相邻位点间的任意重组率。
  • 在固定时间发生的任意数量的事件 价格。

ercs同时支持python 2和3。

文档

下面是一个快速的例子,可以帮助那些不耐烦的人:

import ercs
sim = ercs.Simulator(10)
sim.sample = [None, (3, 2), (6, 4), (7, 0)]
sim.event_classes = [ercs.DiscEventClass(u=0.5, r=1)]
pi, tau = sim.run(1)

有关ercs的完整文档,请访问http://jeromekelleher.github.com/ercs

安装

ercs取决于GNU Scientific Library, 必须先安装它,然后才能生成ercs模块。 幸运的是,这在大多数平台上都很简单。例如, 在debian或ubuntu上使用:

$ sudo apt-get install libgsl0-dev

或在软呢帽上:

$ sudo yum install gsl-devel

GSL可用于大多数包装系统;如果您的 平台,可以从源安装。

一旦安装了gsl,我们就可以使用 标准python methods。为了 例如,使用pip我们有

$ sudo pip install ercs

或者,我们可以手动下载包,将其解压缩,然后运行:

$ python setup.py build
$ sudo python setup.py install

大多数情况下,这将编译和安装模块没有困难。

也可以下载 ercs来自github

潜在问题

在GSL不作为本机打包的一部分提供的平台上 系统(或由于非根访问而在本地安装GSL) 找到正确的头和库可能会有问题 编译ercs时。例如,在freebsd上我们得到了一些东西 像这样:

$ python setup.py build
... [Messages cut for brevity] ...
In file included from _ercsmodule.c:27:
lib/ercs.h:26:25: error: gsl/gsl_rng.h: No such file or directory
In file included from _ercsmodule.c:27:
lib/ercs.h:73: error: expected declaration specifiers or '...' before 'gsl_rng'
lib/ercs.h:94: error: expected specifier-qualifier-list before 'gsl_rng'
_ercsmodule.c: In function 'pyercs_simulate':
_ercsmodule.c:351: error: 'ercs_t' has no member named 'pi'
_ercsmodule.c:356: error: 'ercs_t' has no member named 'tau'
error: command 'cc' failed with exit status 1

可以使用gsl-config程序设置 将LDFLAGSCFLAGS环境变量 它们的正确值:

$ CFLAGS=`gsl-config --cflags` LDFLAGS=`gsl-config --libs` python setup.py build

测试

ercs提供了一些测试用例来确保安装的顺利进行。 最好在安装后立即运行这些程序:

$ python tests.py

也可以在低级c库上运行一些测试。 为此,cdlib目录并运行:

$ make check

这将构建C库测试用例并运行它们。如果编译失败, 可能需要像以前一样设置LDFLAGSCFLAGS

$ make CFLAGS="`gsl-config --cflags`" LDFLAGS="`gsl-config --libs`" check

测试平台

ercs已在以下平台上成功构建和测试:

Operating systemPlatformPythonCompiler
Ubuntu 8.04i3862.5.2gcc 4.2.3
NetBSD 5.0i3862.7.3gcc 4.1.3
Fedora 17i3862.7.3gcc 4.7.2
Fedora 17i3863.2.3gcc 4.7.2
Cygwini3862.6.8gcc 4.5.3
Ubuntu 12.04x86-642.7.3gcc 4.6.3
Ubuntu 12.04x86-643.2.3gcc 4.6.3
FreeBSD 9.0i3863.2.2gcc 4.2.2
FreeBSD 9.0i3862.7.2gcc 4.2.2
FreeBSD 9.0i3863.1.4clang 3.0
Solaris 11x86-642.6.4Sun C 5.12
Mac OSX 10.6.8x86-642.6.1gcc 4.2.1
Mac OSX 10.6.8x86-643.2.3gcc 4.2.1
Mac OS X 10.4.11ppc3.2.3gcc 4.0.1
Mac OS X 10.4.11ppc2.7.3gcc 4.0.1
Debian wheezyarmv6l2.7.3gcc 4.6.3
Debian squeezeppc642.6.6gcc 4.4.5
Debian squeezeppc643.1.3gcc 4.4.5

此外,还使用 以下处理器和编译器:

PlatformCompiler
Linux 2.6.18-164.15.1.el5 x86_64 GNU/LinuxIntel(R) C 11.0
Linux 2.6.32-5-amd64 x86_64 GNU/Linuxgcc 4.4.5
Linux 2.6.32-5-amd64 x86_64 GNU/Linuxclang 1.1
Linux 3.2.0-32-generic x86_64 GNU/Linuxgcc 4.6.3
Linux 3.2.0-32-generic x86_64 GNU/Linuxclang 3.0
Linux 3.2.27+ armv6l GNU/Linuxgcc 4.6.3
Linux 2.6.32-5-powerpc64 ppc64 GNU/Linuxgcc 4.4.5
Linux 2.6.32-5-powerpc64 ppc64 GNU/Linuxclang 1.1
SunOS 5.11 11.0 i86pc i386 i86pcSun C 5.12
SunOS 5.10 sun4u sparc SUNW,Ultra-4Sun C 5.8

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何随机分配一个分散的ArrayList?   java 6×6数组验证   JAVAlang.ClassNotFoundException:com。低密度脂蛋白。vision86。商业拦截器。登录接收器   java树映射按值排序错误   java C#with Xamarin:检查Whatsapp是否发送了消息   java在注释中传递方法   java线程局部区域(TLA)和线程堆栈大小(Xss)之间有什么区别?   java未从youtube数据api获取JSON响应   玻璃鱼3爪哇。尼奥。频道。ClosedChannel异常客户端关闭SSL   java以数组的形式从int返回素因子作为输入   java从数据库获取空列表和异步任务   两个泛型参数具有相同上限时的java Unchecked cast警告   java使用jquery在文本字段中显示servlet结果   java Tomcat确实使用在上下文中配置的驱动程序。xml