从这里开始 - 为 Biopython 做贡献

错误报告 + 功能请求

我们非常重视您对 Biopython 模块的反馈。像这样的开源项目从各种贡献者的反馈、错误报告(以及补丁!)中受益匪浅。

讨论功能请求和潜在错误的主要论坛是 Biopython 邮件列表 以及 GitHub 上的 issue 或 pull request。

此外,如果您认为您发现了一个新的错误,您可以将其提交到我们的 issue 跟踪器 https://github.com/biopython/biopython/issues(这取代了旧的 Open Bioinformatics Foundation 托管的 RedMine 跟踪器)。这样,它就不会被埋在任何人的收件箱中而被遗忘。

邮件列表和帮助新手

我们鼓励所有用户注册 Biopython 主邮件列表。一旦您掌握了 Biopython 的某个领域,我们鼓励您帮助回答初学者的问题。毕竟,您曾经也是初学者。

贡献文档

我们很乐意接受反馈或贡献 - 无论是通过错误报告还是邮件列表。在阅读本教程时,也许您注意到了您感兴趣但缺失或没有清楚解释的主题。Biopython 还自带文档(docstrings,它们也 在线),您也可以在那里帮助填补任何空白。

贡献食谱示例

正如第 食谱 - 使用 Biopython 可以做的一些有趣的事情 章所述,Biopython 现在有一个 wiki 收集了用户贡献的“食谱”示例,https://biopython.pythonlang.cn/wiki/Category:Cookbook - 也许您可以为它添加一些内容?

为平台维护一个发行版

我们目前提供源代码归档文件(适用于任何操作系统,如果您安装了正确的构建工具),以及通过 https://github.com/biopython/biopython-wheels 提供的预编译 wheel,以涵盖主要操作系统。

大多数主要的 Linux 发行版都有志愿者将这些源代码发布到 Linux 用户可以轻松安装的软件包中(处理依赖关系等)。这真是太棒了,我们当然非常感谢。如果您想为这项工作做出贡献,请详细了解您的 Linux 发行版是如何处理此问题的。通过 https://github.com/conda-forge/biopython-feedstock,conda-forge 团队也为 conda 包提供了类似的过程。

以下是一些针对特定平台的技巧,可以帮助人们开始参与。

Windows

– 您必须首先确保您的 Windows 计算机上安装了 C 编译器,并且您可以编译和安装程序(这是最困难的部分 - 请参阅 Biopython 安装说明以了解如何操作)。

RPM

– RPM 是某些 Linux 平台上非常流行的软件包系统。http://www.rpm.org 上提供了大量关于 RPM 的文档,可帮助您开始使用它们。为您的平台创建 RPM 非常容易。您只需要能够从源代码构建软件包(因此必须有一个可以工作的 C 编译器) - 请参阅 Biopython 安装说明以获取更多信息。

要创建 RPM,您只需要执行以下操作

$ python setup.py bdist_rpm

这将为您的特定平台创建一个 RPM,并在 dist 目录中创建一个源 RPM。此 RPM 应该良好且可以立即使用,所以您只需要做这些!方便快捷。

Macintosh

– 自从 Apple 迁移到 Mac OS X 以来,Mac 上的事情变得容易了许多。我们通常将其视为另一个 Unix 变体,从源代码安装 Biopython 与在 Linux 上一样容易。获取所有 GCC 编译器等的最佳方法是安装 Apple 的 X-Code。我们可能能够为 Mac OS X 提供点击即运行安装程序,但迄今为止还没有任何需求。

获得软件包后,请在您的系统上测试它,以确保它可以正常安装所有内容并正常工作。如果您对此感到满意,请在 GitHub 上创建一个 pull request 并写信到我们的 Biopython 邮件列表。您做到了。谢谢!

贡献单元测试

即使您没有为 Biopython 添加任何新功能,但您想编写一些代码,请考虑扩展我们的单元测试覆盖率。我们在第 Biopython 测试框架 章中专门讨论了这个主题。

贡献代码

除了对在 Python 中创建生物学相关代码感兴趣之外,加入 Biopython 代码开发没有其他障碍。表达兴趣的最佳方式是在 Biopython 邮件列表上 - 只需告诉我们您对编码感兴趣以及您想做哪些事情。通常,我们在对模块进行编码之前尝试进行一些讨论,因为这有助于产生好的想法 - 然后随时加入并开始编码!

Biopython 主要发行版试图保持相当一致和可互操作,以便为用户提供便利。您可以在 Biopython 的贡献文档中阅读一些我们尝试使用的(相当非正式的)编码风格指南 https://biopython.pythonlang.cn/wiki/Contributing。我们还尝试将代码添加到发行版中,以及测试(有关回归测试框架的更多信息,请参阅第 Biopython 测试框架 章)和文档,以便一切尽可能保持可工作且有良好文档(包括 docstrings)。当然,这是最理想的情况,在许多情况下,您可以在邮件列表或 GitHub 上找到其他愿意在您提供代码后帮助添加文档或更多测试的人。因此,为了结束本段就像上一段一样,请随时开始工作!

请注意,要进行代码贡献,您必须有合法权利贡献它并根据 Biopython 许可证对其进行许可。如果您自己编写了所有代码,并且它不是基于任何其他代码,那么这应该不是问题。但是,如果您想贡献衍生作品,例如基于 GPL 或 LPGL 许可的代码的作品,则会出现问题,因为它与我们的许可证不兼容。如果您对此有任何疑问,请在邮件列表或 GitHub 上讨论这个问题。

对 Biopython 的任何添加的另一个关注点是任何构建时间或运行时依赖关系。一般来说,编写与独立工具(如 BLAST、EMBOSS 或 ClustalW)交互的代码不会带来很大问题。但是,对另一个库的任何依赖关系 - 即使是 Python 库(尤其是编译和安装 Biopython 所需的库,如 NumPy)也需要进一步讨论。

此外,如果您拥有认为不适合放入发行版中的代码,但您想将其提供出来,我们维护了 Script Central (https://biopython.pythonlang.cn/wiki/Scriptcentral),它提供了指向用于生物信息学的 Python 中的免费代码的指针。

希望本文档让您对 Biopython 感到足够兴奋,可以尝试使用它(最重要的是,做出贡献!)。感谢您一直阅读到最后!