2007 年,我参与了 Google 编程之夏 (GSoC),开发 Avogadro 应用程序。在开发 Avogadro 的过程中,我们创立了 开放化学项目,作为一个伞形项目,旨在开发化学和材料科学相关的工具。我们的目标是将高质量的开源工具带给这些领域的研究社区,并开发其他工具来补充 Avogadro 分子编辑器。
今年,我们非常高兴被选为 GSoC 的指导机构;我们的一些导师包括 Geoff Hutchison、Adam Tenderholt、David Koes 和 Karol Langner,他们都是相关项目的长期贡献者。而且,我们很幸运获得了三个学生项目名额。为了开始,我们联系了来自相关社区的许多导师,并制定了一个 创意页面。
项目
在提案征集期间,在宣布入选机构后,学生被要求提交他们的项目提案。这些提案通常基于指导机构提出的想法,但也可以是原创的想法。我们收到了学生们提交的一些质量非常高的提案,并且我们对一些提议的方向感到震惊。从我们的提案池中仅选择三个是很困难的,但这是一个幸福的烦恼。
我们选择了一个使用 PyBind11 封装 Avogadro 2 API 的项目;一个为 Avogadro 2 添加晶体/材料功能的项目;以及第三个项目,扩展我们的 JSON 格式以支持 Avogadro 2 和 cclib 项目之间的数据交换。
我们的学生项目旨在改进我们认为不足的领域,导师们随时准备在整个夏季提供指导和支持。Python 封装项目将使 Avogadro 2 应用程序可脚本化,并使其易于自动化重复性任务,或扩展应用程序以执行新操作,而无需修改 C++ 代码。晶体/材料项目为具有原子周期性/重复结构的全新系统类别增加了支持。这些系统具有独特的挑战,因为它们严重依赖于对称性、最小表示和周期性边界条件。最后,JSON 格式的扩展使 Avogadro 2 能够重用 cclib Python 库,并使所有支持的格式都可以在友好的桌面应用程序 Avogadro 2 中供用户使用。
(不幸的是,我们很早就与从事 Python 绑定项目的学生失去了联系,并且在项目初期阶段之后无法建立联系。我们已将情况告知 Google,并将精力集中在我们剩下的两个项目上。)
我们的学生在整个夏天都表现出色,并实现了他们在提案中为项目设定的所有高级目标。我们的导师在整个夏天都与他们合作,他们很快就学会了开发工具。大多数学生的代码已合并到这两个项目的主要开发分支中,并将在每个项目的下一个版本中推出。
学生们
Patrick Avery 是一名博士生,他致力于 Avogadro 2 中的功能,这些功能最终将在他完成学业后帮助他进行研究。他提出了一个原创提案,并讨论了添加其他功能。他成功地添加了许多功能来支持晶体、对称性和其他有用的工具,以扩展对称性简化的表示。他还超越了最初的提议和对他的期望,显着扩展了编辑结构时的撤消/重做支持,并为周期性半经验代码添加了初步支持,以对晶体/材料系统进行量子计算。
Sanjeed Schamnad 提交了一个基于我们需要帮助的事项的提案,并向 cclib 和 Avogadro 2 项目提交了代码。他致力于扩展在 Avogadro 2 中开发的 JSON 表示,以支持更广泛的电子结构/量子力学信息。然后将其添加到 cclib 项目中作为编写器,将来自一系列受支持代码的数据导出为这种通用格式,然后扩展 Avogadro 2 中的读取器以使用数据。我们仍在研究将 Avogadro 2 与 Python 解释器一起分发,以及将 cclib 打包到我们的安装程序中的最佳方法。就将更多数据导入 Avogadro 2 而言,以及在两个相关的开源化学项目之间建立桥梁而言,这是一个很棒的项目。
我们正在努力使剩余的贡献达到可以合并的程度。
宏伟构想
我们对学生的奉献精神印象深刻。他们的暑期项目不仅为我们的代码库贡献了新代码,而且使我们能够将开放化学项目发展成为相关软件项目的伞形项目。我们希望在未来几年将开放化学组织扩展到其他项目,并促进学生更多地参与开源科学运动。培养下一代研究人员的软件开发、社区和协作开发技能非常重要。
我们正在准备参加 Google 主办的导师峰会,这是一个很好的机会,可以讨论哪些方面做得好,以及我们的导师和项目管理员如何改进未来几年所有参与者的体验。感谢我们的学生,感谢 Google 对让学生“翻转比特,而不是汉堡”的持续支持。
评论已关闭。