AiZynthFinder社区贡献指南:从问题报告到代码提交
【免费下载链接】aizynthfinderA tool for retrosynthetic planning项目地址: https://gitcode.com/gh_mirrors/ai/aizynthfinder
AiZynthFinder是一款强大的 retrosynthetic planning 工具,基于蒙特卡洛树搜索算法,能够递归分解分子结构以找到可购买的前体。该工具支持多种搜索算法和扩展策略,完全可定制化,是化学合成领域研究者的得力助手。
为什么参与AiZynthFinder社区贡献? 🤝
参与开源项目贡献不仅能提升个人技能,还能为科学研究工具的发展贡献力量。AiZynthFinder社区欢迎各种形式的贡献,无论是报告bug、提出功能建议,还是提交代码改进,都能帮助工具变得更完善。
AiZynthFinder的核心功能架构
在开始贡献前,了解项目的核心架构有助于更好地理解代码结构。AiZynthFinder的主要组件包括搜索树、反应树、评分系统和库存管理等,它们之间的关系如下:
AiZynthFinder核心组件关系图
工作流程概览
AiZynthFinder的工作流程从树搜索开始,经过树分析、路径收集,最终生成反应树。以下序列图展示了主要步骤:
AiZynthFinder工作流程序列图
贡献的第一步:环境准备 ⚙️
1. 克隆仓库
首先,克隆AiZynthFinder仓库到本地:
git clone https://gitcode.com/gh_mirrors/ai/aizynthfinder2. 搭建开发环境
推荐使用conda创建独立环境,确保依赖兼容性:
conda env create -f env-dev.yml conda activate aizynth-dev poetry install --all-extras这样就完成了开发环境的搭建,aizynthfinder包将以可编辑模式安装。
如何报告问题或提出建议? 🐛
如果您在使用过程中遇到bug,或有功能改进建议,请通过以下步骤提交issue:
- 访问项目的issue页面(无需外部链接,可在仓库内找到)
- 选择合适的issue模板(bug报告或功能请求)
- 详细描述问题:
- 复现步骤
- 预期行为
- 实际行为
- 环境信息(系统、Python版本等)
对于bug报告,建议附上错误日志和截图,以便开发者更快定位问题。
代码贡献完整流程 👨💻
1. Fork仓库并创建分支
- Fork项目仓库到您的个人账号
- 克隆您的fork到本地
- 创建新分支进行开发:
git checkout -b feature/your-feature-name或修复bug:
git checkout -b fix/bug-description
2. 代码开发与规范
在开发过程中,请遵循以下规范:
- 使用
black工具进行代码格式化 - 遵循PEP8风格指南
- 为新功能添加测试用例(位于
tests/目录) - 更新相关文档(位于
docs/目录)
3. 运行测试
确保您的代码通过所有测试:
pytest -v对于完整的CI测试,可以运行:
invoke full-tests4. 提交与推送
提交代码时,请使用清晰的提交信息:
git commit -m "Add feature: xxx" git push origin your-branch-name5. 创建Pull Request
在GitHub上创建Pull Request时,请:
- 填写PR模板,描述您的更改
- 关联相关的issue
- 确保CI检查通过
贡献示例:添加新的扩展策略 🌟
假设您想为AiZynthFinder添加一种新的扩展策略,可以按照以下步骤进行:
- 在
plugins/目录下创建新的策略文件,例如new_strategy.py - 实现扩展策略类,继承自
ExpansionStrategy - 在配置文件中添加新策略的配置选项
- 添加测试用例到
tests/context/test_expansion_strategies.py - 更新文档,说明新策略的使用方法
图形界面功能贡献 🖥️
AiZynthFinder提供了用户友好的图形界面,您可以通过aizynthapp命令启动:
AiZynthFinder GUI输入界面
如果您想改进GUI功能,可以关注aizynthfinder/interfaces/gui/目录下的代码。例如,您可以添加新的可视化选项,或优化聚类分析功能:
AiZynthFinder聚类分析界面
文档贡献 📚
完善的文档对用户和开发者都非常重要。您可以通过以下方式贡献文档:
- 改进现有教程
- 添加新功能的使用示例
- 完善API文档字符串
- 修复文档中的错误
文档源代码位于docs/目录,使用Sphinx生成HTML文档:
invoke build-docs社区交流与支持 🤗
虽然贡献者的支持时间有限,但您可以通过提交issue获得帮助。在提问时,请:
- 提供详细的上下文信息
- 描述您已经尝试过的解决方法
- 清晰表达您的问题或需求
总结
通过本指南,您已经了解了如何从报告问题到提交代码,全面参与AiZynthFinder社区贡献。无论您是初学者还是有经验的开发者,您的每一份贡献都将帮助AiZynthFinder变得更好。
AiZynthFinder搜索结果界面
开始您的贡献之旅吧!🚀
【免费下载链接】aizynthfinderA tool for retrosynthetic planning项目地址: https://gitcode.com/gh_mirrors/ai/aizynthfinder
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考