27个发布版本
0.11.0 | 2023年9月1日 |
---|---|
0.10.2 | 2023年5月23日 |
0.10.1 | 2022年12月4日 |
0.10.0 | 2022年8月13日 |
0.6.2 | 2021年3月31日 |
#268 in 生物学
107 每月下载量
用于 6 crates
525KB
11K SLoC
描述
这是一个Rust库,帮助解析、编辑和保存晶体学PDB/mmCIF文件。它可以读取PDB/mmCIF文件中的大多数原子数据。其高级目标是创建一个稳定、高效且易于使用的纯Rust编写的PDB/mmCIF文件接口。
贡献
由于这是一个处于积极开发中的库,请随时分享您的想法、观点、希望和批评。每个评论都将被阅读和讨论,以便使这个库尽可能地为所有用户有用。当然我们都喜欢文明讨论,所以请遵循社区指南,但总的来说,请做一个文明的人。
许可证
MIT
为什么
这最初是为了在科学项目中使用Rust而开始的。但它变成了一个开源项目,因为我认为在科学计算中使用Rust非常有帮助,并且是一个很好的补充,与无处不在的Python并列。所以通过创建它,我希望扩展Rust的可用性。自从《自然》杂志发表了一篇(技术特性)文章(文章),阐述了使用Rust的好处,并表明Rust的使用越来越广泛,我计划在科学项目中更多地使用Rust。我认为帮助Rust(在科学社区中)前进的最好方法是创建更多支持Rust科学项目的支持。
贡献者
- Douwe Schulte
- 石天翼
- DocKDE
- Oliver Wissett
支持的功能
由于这个库的主要目标是允许访问原子数据,因此不支持PDB和mmCIF的许多元数据功能。对于这两种文件格式,使用最新版本(PDB v3.30和mmcif v5.338),但鉴于它们都是非常稳定的文件格式,确切版本不应影响最终用户。
PDB功能 | PDB | mmCIF | 在mmCIF中对应 |
---|---|---|---|
HEADER (ID) | ✔️ | ✔️ | entry.id |
REMARK | ✔️ | ❌ | _pdbx_database_remark.id |
ATOM | ✔️ | ✔️ | 原子站点 |
ANISOU | ✔️ | ✔️ | 原子站点 |
SCALE | ✔️ | ✔️ | _atom_sites.Cartn_transf |
ORIGX | ✔️ | ✔️ | _database_PDB_matrix.origx |
MATRIX | ✔️ | ✔️ | struct_ncs_oper |
CRYSTAL | ✔️ | ✔️ | cell + symmetry |
MODEL | ✔️ | ✔️ | 原子站点 |
MASTER | 〰️ | ❌ | _pdbx_database_PDB_master |
SEQRES | 〰️ | ❌ | ? |
DBREF | ✔️ | ❌ | pdbx_dbref |
DBREF1/2 | ✔️ | ❌ | pdbx_dbref |
MODRES | ✔️ | ❌ | ? |
SEQADV | ✔️ | ❌ | ? |
部分 | 关键词 | 支持 |
---|---|---|
异质 | HET, HETNAM, HETSYN, FORMUL | 🔍 |
二级结构 | HELIX, SHEET | 🔍 |
连接性 | SSBOND, LINK, CISPEP, CONNECT | 🔍 |
标题 | OBSLTE, TITLE, SPLIT, CAVEAT, COMPND, SOURCE, KEYWDS, EXPDTA, NUMMDL, MDLTYP, AUTHOR, REVDAT, SPRSDE, JRNL, HEADER (其他列) | ❌ |
其他 | 站点 | ❌ |
符号 | 描述 |
---|---|
✔️ | 支持 |
〰️ | 部分支持 |
⏲ | 支持计划(v1.0) |
🔍 | 支持预期(>v1.0) |
❌ | 不支持 |
计划支持的功能将包含在1.0版本中。预期支持的功能将是候选者,但不一定包含在1.0版本中。不支持的功能被认为对于这些文件上的原子数据计算不是必要的。如果您确实需要这些功能,请提出问题,我们可以讨论其包含。另外,如果您需要“计划”或“预期”的功能,请随时提出问题以指导开发,使其对现实生活产生影响。
其他功能包
- 该功能包利用功能包Rayon的力量,提供对PDB结构的多线程迭代器。
- 该功能包利用功能包rstar的力量,提供非常高效的空间查找。
- 该功能包有选择原子(s)的健壮方式,请参阅
Search
。 - 该功能包有许多针对常见PDB操作的出色辅助方法(重新编号、排序、原子属性查找)。
- 该功能包有许多遍历PDB结构的方法,以方便访问和控制性能。
最新更新
v0.11.0
- 添加了对压缩文件(
.gz
)的支持(感谢OWisset) - 不再自动将链名称转换为大写(感谢OWisset)
另请参阅变更日志。
支持和开发
当我在自己的项目中积极使用此功能包时,该功能包正在积极开发和扩展。我非常愿意接收并处理PR和问题,即使项目看起来有点过时。但如果有人发现这个项目过时,并想接管管理和/或主要开发,请随时联系,我们可以讨论。如果这意味着项目将继续存在,我将很高兴将项目和crates.io的访问权转让。
依赖关系
~4.5MB
~93K SLoC