跳转到主要内容

Cython绑定和Python接口,用于FAMSA,这是一个用于超大规模多序列比对的算法。

项目描述

🐍🧮 PyFAMSA Stars

Cython 绑定和 Python 接口到 FAMSA,一个用于超大规模多重序列比对算法。

Actions Coverage License PyPI Bioconda AUR Wheel Python Versions Python Implementations Source Mirror Issues Docs Changelog Downloads

⚠️ 本软件包基于 FAMSA 2。

🗺️ 概述

FAMSA 是 Deorowicz 等人在 2016 年发表的一种用于大规模多重序列比对的方法。[1] 它使用了最先进的时间和内存优化以及快速引导树启发式算法,以实现非常高的性能和精度。

PyFAMSA 是一个 Python 模块,它使用 Cython 提供了对 FAMSA 的绑定。它实现了一个用户友好的、Pythonic 的接口,可以使用不同的参数对蛋白质序列进行比对,并直接访问结果。它与 FAMSA 库接口交互,具有以下优点

  • 单一依赖:PyFAMSA 以 Python 软件包的形式分发,因此您可以将它作为依赖项添加到您的项目中,无需担心 FAMSA 二进制文件是否存在于最终用户机器上。
  • 无中间文件:所有操作都在内存中完成,在您控制的 Python 对象中进行,因此您无需通过子进程和临时文件调用 FAMSA CLI。
  • 友好接口:在配置新的 Aligner 时,可以简单地通过关键字参数从 Python 代码中选择不同的引导树构建方法和启发式算法。
  • 自定义打分矩阵:您可以使用来自 scoring-matrices 库的任何自定义打分矩阵,除了默认的 MIQS 以外,来评分比对。

🔧 安装

PyFAMSA 可以直接从 PyPI 安装,其中包含一些针对 x86-64 架构(Linux/OSX)和 Aarch64 架构(仅 Linux)的预构建轮,以及使用 Cython 编译所需的代码

$ pip install pyfamsa

否则,PyFAMSA 也可以作为 Bioconda 软件包提供

$ conda install -c bioconda pyfamsa

否则,请参阅 安装页面在线文档

💡 示例

让我们在内存中创建一些序列,使用 UPGMA 方法(不使用任何启发式算法)进行比对,并将比对结果直接打印到屏幕上

from pyfamsa import Aligner, Sequence

sequences = [
    Sequence(b"Sp8",  b"GLGKVIVYGIVLGTKSDQFSNWVVWLFPWNGLQIHMMGII"),
    Sequence(b"Sp10", b"DPAVLFVIMLGTITKFSSEWFFAWLGLEINMMVII"),
    Sequence(b"Sp26", b"AAAAAAAAALLTYLGLFLGTDYENFAAAAANAWLGLEINMMAQI"),
    Sequence(b"Sp6",  b"ASGAILTLGIYLFTLCAVISVSWYLAWLGLEINMMAII"),
    Sequence(b"Sp17", b"FAYTAPDLLLIGFLLKTVATFGDTWFQLWQGLDLNKMPVF"),
    Sequence(b"Sp33", b"PTILNIAGLHMETDINFSLAWFQAWGGLEINKQAIL"),
]

aligner = Aligner(guide_tree="upgma")
msa = aligner.align(sequences)

for sequence in msa:
      print(sequence.id.decode().ljust(10), sequence.sequence.decode())

这将输出以下内容

Sp10       --------DPAVLFVIMLGTIT-KFS--SEWFFAWLGLEINMMVII
Sp17       ---FAYTAPDLLLIGFLLKTVA-TFG--DTWFQLWQGLDLNKMPVF
Sp26       AAAAAAAAALLTYLGLFLGTDYENFA--AAAANAWLGLEINMMAQI
Sp33       -------PTILNIAGLHMETDI-NFS--LAWFQAWGGLEINKQAIL
Sp6        ------ASGAILTLGIYLFTLCAVIS--VSWYLAWLGLEINMMAII
Sp8        ------GLGKVIVYGIVLGTKSDQFSNWVVWLFPWNGLQIHMMGII

🧶 线程安全

Aligner 对象是线程安全的,align 方法是可重入的。您可以使用单个 ThreadPool 对象并行处理多个比对

import glob
import multiprocessing.pool
import Bio.SeqIO
from pyfamsa import Aligner, Sequence

families = [
    [ Sequence(r.id.encode(), r.seq.encode()) for r in Bio.SeqIO.parse(file, "fasta") ]
    for file in glob.glob("pyfamsa/tests/data/*.faa")
]

aligner = Aligner()
with multiprocessing.pool.ThreadPool() as pool:
    alignments = pool.map(aligner.align, families)

🔎 参考信息

完成蛋白质比对了吗?您可能想对其进行修剪:在这种情况下,您可以使用 pytrimal Python 软件包,它包装了 trimAl 2.0。或者,也许您想从比对中构建一个 HMM?那么,也许可以看看 pyhmmer,这是一个 Python 软件包,它包装了 HMMER

💭 反馈

⚠️ 问题跟踪器

发现了错误?有增强请求吗?如果您需要报告或询问某些内容,请访问 GitHub 问题跟踪器。如果您正在提交错误报告,请尽可能提供有关问题的详细信息,并尝试在一个简单、易于复现的情况下重现相同的错误。

🏗️ 贡献

欢迎贡献!有关更多详细信息,请参阅 CONTRIBUTING.md

📋 更新日志

本项目遵循语义化版本控制,并提供符合Keep a Changelog 格式的变更日志

📜 许可证

本库遵循GNU通用公共许可证v3.0。FAMSA由REFRESH生物信息学组开发,也以GPLv3许可证分发。更多信息请参阅vendor/FAMSA/LICENSE。此外,FAMSA还提供了一些用于兼容性的库,所有这些库均在PyFAMSA中以各自的条款重新分发:atomic_wait(MIT许可证)、mimalloc(MIT许可证)、libdeflate(MIT许可证)、Boost(Boost软件许可证)。

本项目与FAMSA作者无关,未获得其赞助或认可。该项目由Martin Larralde在其博士项目期间开发,当时他在欧洲分子生物学实验室Zeller团队工作。

📖 参考文献

  • [1] Deorowicz, Sebastian, Debudaj-Grabysz, Agnieszka & Gudyś, Adam. ‘FAMSA: Fast and accurate multiple sequence alignment of huge protein families’. Sci Rep 6, 33964 (2016). doi:10.1038/srep33964

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源代码分发

pyfamsa-0.5.2.tar.gz (2.6 MB 查看哈希值)

上传时间 源代码

构建分发

pyfamsa-0.5.2-pp310-pypy310_pp73-win_amd64.whl (1.4 MB 查看哈希值)

上传时间 PyPy Windows x86-64

pyfamsa-0.5.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.6 MB 查看哈希值)

上传时间 PyPy manylinux: glibc 2.17+ x86-64

pyfamsa-0.5.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.5 MB 查看哈希值)

上传时间 PyPy manylinux: glibc 2.17+ ARM64

pyfamsa-0.5.2-pp310-pypy310_pp73-macosx_10_9_x86_64.whl (1.5 MB 查看哈希值)

上传于 PyPy macOS 10.9+ x86-64

pyfamsa-0.5.2-pp39-pypy39_pp73-win_amd64.whl (1.4 MB 查看哈希)

上传于 PyPy Windows x86-64

pyfamsa-0.5.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.6 MB 查看哈希)

上传于 PyPy manylinux: glibc 2.17+ x86-64

pyfamsa-0.5.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.5 MB 查看哈希)

上传于 PyPy manylinux: glibc 2.17+ ARM64

pyfamsa-0.5.2-pp39-pypy39_pp73-macosx_10_9_x86_64.whl (1.5 MB 查看哈希)

上传于 PyPy macOS 10.9+ x86-64

pyfamsa-0.5.2-pp38-pypy38_pp73-win_amd64.whl (1.4 MB 查看哈希)

上传于 PyPy Windows x86-64

pyfamsa-0.5.2-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.6 MB 查看哈希)

上传于 PyPy manylinux: glibc 2.17+ x86-64

pyfamsa-0.5.2-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.5 MB 查看哈希)

上传于 PyPy manylinux: glibc 2.17+ ARM64

pyfamsa-0.5.2-pp38-pypy38_pp73-macosx_10_9_x86_64.whl (1.5 MB 查看哈希)

上传于 PyPy macOS 10.9+ x86-64

pyfamsa-0.5.2-pp37-pypy37_pp73-win_amd64.whl (1.4 MB 查看哈希)

上传于 PyPy Windows x86-64

pyfamsa-0.5.2-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.6 MB 查看哈希)

上传于 PyPy manylinux: glibc 2.17+ x86-64

pyfamsa-0.5.2-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.5 MB 查看哈希值)

上传时间 PyPy manylinux: glibc 2.17+ ARM64

pyfamsa-0.5.2-pp37-pypy37_pp73-macosx_10_9_x86_64.whl (1.5 MB 查看哈希值)

上传时间 PyPy macOS 10.9+ x86-64

pyfamsa-0.5.2-cp312-cp312-win_amd64.whl (1.4 MB 查看哈希值)

上传时间 CPython 3.12 Windows x86-64

pyfamsa-0.5.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.6 MB 查看哈希值)

上传时间 CPython 3.12 manylinux: glibc 2.17+ x86-64

pyfamsa-0.5.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (6.0 MB 查看哈希值)

上传时间 CPython 3.12 manylinux: glibc 2.17+ ARM64

pyfamsa-0.5.2-cp312-cp312-macosx_11_0_arm64.whl (1.5 MB 查看哈希值)

上传时间 CPython 3.12 macOS 11.0+ ARM64

pyfamsa-0.5.2-cp312-cp312-macosx_10_9_x86_64.whl (1.5 MB 查看哈希值)

上传时间 CPython 3.12 macOS 10.9+ x86-64

pyfamsa-0.5.2-cp311-cp311-win_amd64.whl (1.4 MB 查看哈希值)

上传时间 CPython 3.11 Windows x86-64

pyfamsa-0.5.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.6 MB 查看哈希值)

上传时间 CPython 3.11 manylinux: glibc 2.17+ x86-64

pyfamsa-0.5.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (6.0 MB 查看哈希值)

上传时间 CPython 3.11 manylinux: glibc 2.17+ ARM64

pyfamsa-0.5.2-cp311-cp311-macosx_11_0_arm64.whl (1.5 MB 查看哈希值)

上传于 CPython 3.11 macOS 11.0+ ARM64

pyfamsa-0.5.2-cp311-cp311-macosx_10_9_x86_64.whl (1.5 MB 查看哈希值)

上传于 CPython 3.11 macOS 10.9+ x86-64

pyfamsa-0.5.2-cp310-cp310-win_amd64.whl (1.4 MB 查看哈希值)

上传于 CPython 3.10 Windows x86-64

pyfamsa-0.5.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.5 MB 查看哈希值)

上传于 CPython 3.10 manylinux: glibc 2.17+ x86-64

pyfamsa-0.5.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (6.0 MB 查看哈希值)

上传于 CPython 3.10 manylinux: glibc 2.17+ ARM64

pyfamsa-0.5.2-cp310-cp310-macosx_11_0_arm64.whl (1.5 MB 查看哈希值)

上传于 CPython 3.10 macOS 11.0+ ARM64

pyfamsa-0.5.2-cp310-cp310-macosx_10_9_x86_64.whl (1.5 MB 查看哈希值)

上传于 CPython 3.10 macOS 10.9+ x86-64

pyfamsa-0.5.2-cp39-cp39-win_amd64.whl (1.4 MB 查看哈希值)

上传于 CPython 3.9 Windows x86-64

pyfamsa-0.5.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.5 MB 查看哈希值)

上传于 CPython 3.9 manylinux: glibc 2.17+ x86-64

pyfamsa-0.5.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (6.0 MB 查看哈希值)

上传于 CPython 3.9 manylinux: glibc 2.17+ ARM64

pyfamsa-0.5.2-cp39-cp39-macosx_11_0_arm64.whl (1.5 MB 查看哈希值)

上传于 CPython 3.9 macOS 11.0+ ARM64

pyfamsa-0.5.2-cp39-cp39-macosx_10_9_x86_64.whl (1.5 MB 查看哈希值)

上传于 CPython 3.9 macOS 10.9+ x86-64

pyfamsa-0.5.2-cp38-cp38-win_amd64.whl (1.4 MB 查看哈希值)

上传于 CPython 3.8 Windows x86-64

pyfamsa-0.5.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.6 MB 查看哈希值)

上传于 CPython 3.8 manylinux: glibc 2.17+ x86-64

pyfamsa-0.5.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (6.0 MB 查看哈希值)

上传于 CPython 3.8 manylinux: glibc 2.17+ ARM64

pyfamsa-0.5.2-cp38-cp38-macosx_11_0_arm64.whl (1.5 MB 查看哈希值)

上传于 CPython 3.8 macOS 11.0+ ARM64

pyfamsa-0.5.2-cp38-cp38-macosx_10_9_x86_64.whl (1.5 MB 查看哈希值)

上传于 CPython 3.8 macOS 10.9+ x86-64

pyfamsa-0.5.2-cp37-cp37m-win_amd64.whl (1.4 MB 查看哈希值)

上传于 CPython 3.7m Windows x86-64

pyfamsa-0.5.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.5 MB 查看哈希值)

上传于 CPython 3.7m manylinux: glibc 2.17+ x86-64

pyfamsa-0.5.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (6.0 MB 查看哈希值)

上传于 CPython 3.7m manylinux: glibc 2.17+ ARM64

pyfamsa-0.5.2-cp37-cp37m-macosx_10_9_x86_64.whl (1.5 MB 查看哈希值)

上传于 CPython 3.7m macOS 10.9+ x86-64

pyfamsa-0.5.2-cp36-cp36m-win_amd64.whl (1.4 MB 查看哈希值)

上传于 CPython 3.6m Windows x86-64

pyfamsa-0.5.2-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.5 MB 查看哈希值)

上传时间: CPython 3.6m manylinux: glibc 2.17+ x86-64

pyfamsa-0.5.2-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (6.0 MB 查看哈希值)

上传时间: CPython 3.6m manylinux: glibc 2.17+ ARM64

支持者