Python开发工具Patroni、bcbio-nextgen、Algorithms、clint介绍

以下为你介绍的Python开发工具都可用在Linux系统上:Patroni(高可用性模板)、bcbio-nextgen(为全自动高通量测序分析提供最佳实践管道的工具)、Algorithms(Python 的算法模块)、clint(Python 命令行工具)。

1、Patroni(高可用性模板)

Patroni是一个模板,它使用Python为你提供一个自己订制的,高可用的解决方案,为最大程度的可用性,它的配置信息存储在像ZooKeeper、etcd或者Consul中。如果DBAs,DevOps工程师或者SRE正在寻找一个在数据中心中快速部署高可用PostgreSQL方案,或者其他的用途,Patroni 能提供帮助。

安装:

brew install postgresql etcd haproxy libyaml python

pip install psycopg2 pyyaml

运行和配置:

> etcd --data-dir=data/etcd

> ./patroni.py postgres0.yml

> ./patroni.py postgres1.yml

pip的常规安装:

Patroni可以通过pip安装:

pip install patroni[dependencies]

其中依赖项可以为空,或包含以下一项或多项:

etcd:

python-etcd模块以便使用Etcd作为DCS。

consul:

python-consul模块以将Consul用作DCS。

zookeeper:

kazoo模块,以便将Zookeeper用作DCS。

exhibitor:

kazoo模块,以便将Exhibitor用作DCS(与Zookeeper相同的依赖项)。

Kubernetes:

kubernetes模块以便在Patroni中将Kubernetes用作DCS。

aws:

boto以使用AWS回调。

例如,为了将Patroni及其依赖项安装到Etcd作为DCS和AWS回调的命令是:

pip install patroni[etcd,aws]

请注意,应独立于Patroni安装用于创建副本或自定义引导脚本(即WAL-E)的外部工具。

下载地址:https://github.com/zalando/patroni

2、bcbio-nextgen(为全自动高通量测序分析提供最佳实践管道的工具)

Python开发工具Patroni、bcbio-nextgen、Algorithms、clint介绍

bcbio-nextgen是一个Python工具,它为全自动高通量测序分析提供了最佳的实践管道。当用户编写一个高级配置文件指定输入和分析参数后,该用户的输入可以驱动处理分布式运算、幂等进程重启以及安全事务步骤的并行管道。bcbio的目标是提供一个能够进行数据测序分析处理组件的资源共享社区,以此能够让研究人员更专注于下游生物科学的研究。

目标:

bcbio-nextgen实现全自动高通量测序数据分析的目标主要包含以下方面:

可量化性:优秀的科学研究需要能够准确地评估结果的质量,新的算法和软件成为可用。

可分析性:将结果导入工具使得查询结果与可视化结果更加容易。

可扩展性:在分布式异构计算环境中处理大数据集以及样本数据。

可复用性:跟踪配置,版本,来源以及命令行以便对结果的调试、扩展以及复用。

社区开发:开发过程是完全开放的并且由来自多个社区的贡献者来共同维护。通过在共享框架上的协作,我们可以克服在迅速变化的研究领域维护复杂管道的挑战。

易理解性:生物信息学家、生物学家和公众能够将研究材料、个人基因组的临床样本数据等各种数据作为输入来运行整个工具。

快速开始:

使用所有工具依赖项和数据文件安装bcbio-nextgen:

wget https://raw.github.com/bcbio/bcbio-nextgen/master/scripts/bcbio_nextgen_install.py

python bcbio_nextgen_install.py /usr/local/share/bcbio --tooldir=/usr/local \

 --genomes GRCh37 --aligners bwa --aligners bowtie2

生成引用了已安装软件,数据和系统信息的可编辑系统配置文件。

自动从您的项目中创建示例FASTQ和BAM文件的处理描述,以及示例元数据的CSV文件:

bcbio_nextgen.py -w template freebayes-variant project1.csv sample1.bam sample2_1.fq sample2_2.fq

这将生成一个包含管道配置选项的样本描述文件。

运行分析,分布在8个本地核心中:

cd project1/work

bcbio_nextgen.py ../config/project1.yaml -n 8

下载地址:https://github.com/bcbio/bcbio-nextgen

3、Algorithms(Python 的算法模块)

Algorithms可以用来学习算法,这些实现来自很多伪代码,在源代码中列有参考。这个库主要作为一个教育工具。

算法种类包括:Sorting、Searching、Shuffling、Math、Random。

用法:

如果要在代码中使用算法,则非常简单:

from algorithms.sorting import bubble_sort

my_list = bubble_sort.sort(my_list)

安装:

$ pip install algorithms

测试:

Pytest用作主要测试运行程序,所有单元测试都可以通过以下方式运行:

$ ./run_tests.py

下载地址:https://github.com/nryoung/algorithms

4、clint(Python 命令行工具)

Clint 是一个包含了用于开发命令行应用的工具集合模块。

它支持高亮,但是在会话为 TTY 终端的时候可以自动识别,而不会去渲染。

拥有非常棒的纵向输出,可选择是否自动扩展列。

参数使用起来非常简单。

特点:

文档还不够完善。

CLI颜色与缩进。

使用非常简单并且纵向输出非常强大。

简单支持Unix管道。

应用目录管理。

趋势:

完善文档。

简单的选择系统。

默认的查询系统。

示例:

>>> from clint.textui import puts, indent

>>> puts('not indented text')

>>> with indent(4):

>>>     puts('indented text')

not indented text

 indented text

下载地址:https://github.com/kennethreitz/clint

注明

以上就是Python开发工具Patroni、bcbio-nextgen、Algorithms、clint的介绍内容,这些Python开发工具都能使用在Linux操作系统中。

栏目相关文章