Bio.PDB.SCADIO 模块
SCADIO: 编写 OpenSCAD 程序以创建蛋白质结构 3D 模型。
由于整体复杂性和打印时通常需要支撑突出区域,因此 3D 打印蛋白质结构并非易事。该软件是生成打印模型(例如 STL 文件)的一种途径,但不会解决将模型转换为物理产品的相关问题。OpenSCAD <http://www.openscad.org/> 可以从该软件生成的脚本中创建可打印模型。MeshMixer <http://www.meshmixer.com/>、各种切片软件以及您可用的 3D 打印技术为您提供了解决物理呈现模型问题的选择。
这里生成的模型由 OpenSCAD 原语组成,例如代表单个原子和键的球体和圆柱体,它们是蛋白质结构的显式模型。好处是,可以为与 3D 打印相关的特定打印自定义选择单个原子/键(例如可旋转键机制或氢键磁铁)。或者,您可以使用例如 Chimera 将结构呈现为带状或类似形式,以单个对象进行打印。
我建议使用这里提供的 OpenSCAD 脚本生成您的初始模型,然后根据您的需要修改该脚本。更改 atomScale 和 bondRadius 值可以通过消除间隙并消除对支撑的相应需求来简化模型,或者您可能希望修改 hedronDispatch() 例程以选择残基或链段以单独打印,然后使用可旋转键连接。在此开发阶段,您可能希望通过使用 includeCode=False 选项来写入 SCAD(),从而只将这里生成的数据矩阵包含在您的版本中。一个使用可旋转骨架和磁性氢键的示例项目位于 <https://www.thingiverse.com/thing:3957471>。
- Bio.PDB.SCADIO.write_SCAD(entity, file, scale=None, pdbid=None, backboneOnly=False, includeCode=True, maxPeptideBond=None, start=None, fin=None, handle='protein')
将 hedron 组件写入文件,作为 OpenSCAD 矩阵。
此例程调用
IC_Chain.internal_to_atom_coordinates()
和IC_Chain.atom_to_internal_coordinates()
,因为需要进行缩放、围绕环的显式键以及设置输出模型的坐标空间。输出数据格式主要是
- 每个 hedron 的矩阵
len1、angle2、len3、原子共价键类别、标志以指示原子/键是否在之前的 hedron 中表示(OpenSCAD 处理重复的重叠元素非常慢)、键特征标志
转换矩阵,用于将每个 hedron 组装成残基二面体集
每个残基的转换矩阵,用于在链中定位
OpenSCAD 软件包含在此 Python 文件中,用于将这些矩阵处理成适合 3D 打印项目的模型。
- 参数:
entity – Biopython PDB
Structure
实体结构数据,用于导出file – Bipoython
as_handle()
文件名或打开的文件指针文件,用于将数据写入其中scale (float) – 每个埃的单位(通常为毫米),用于 STL 输出,写入输出
pdbid (str) – PDB idcode,写入输出。如果未提供且实体中未设置“idcode”,则默认为“0PDB”。
backboneOnly (bool) – 默认为 False。如果为 True,则不会输出 Cbeta 后的侧链数据
includeCode (bool) – 默认为 True。包含 OpenSCAD 软件(在下面内联),以便输出文件可以加载到 OpenSCAD 中;如果为 False,则只输出数据矩阵
maxPeptideBond (float) – 可选参数,默认为 None。覆盖 IC_Chain 类中用于检测链断裂的截止值(默认为 1.4)。如果您的目标有链断裂,请在此处传递一个很大的数字以创建一个跨越断裂的非常长的“键”。
start,fin (int) – 默认为 None。用于
internal_to_atom_coords()
的参数,以限制链段。handle (str) – 默认为 “protein”,这是生成的 OpenSCAD 矩阵结构的顶级名称
请参阅
IC_Residue.set_flexible()
以设置特定残基的标志,以便具有可旋转键,并参阅IC_Residue.set_hbond()
以包含小型磁铁的空腔,作为氢键使用。请参阅 <https://www.thingiverse.com/thing:3957471> 了解实现示例。OpenSCAD 代码显式创建球体和圆柱体,以在 3D 模型中表示原子和键。提供选项来支持可旋转键和磁性氢键。
矩阵被写入以链接、枚举和描述残基、二面体、hedron 和链,镜像相关 IC_* 数据结构的内容。
hedron 的 OpenSCAD 矩阵具有以下附加信息
- 记录了原子和键的状态(单键、双键、共振键)
以便可以在 3D 模型中使用共价半径来表示原子球体
跟踪键和原子,以便每个键和原子只创建一次
- 键选项,用于旋转和氢键的磁铁支架
可以指定(请参阅
IC_Residue.set_flexible()
和IC_Residue.set_hbond()
)
请注意
Bio.PDB.internal_coords.IC_Chain.MaxPeptideBond
的应用:通过将此值设置为很大的值,可以链接缺失的残基(用任意长的键连接链段)。请注意,此例程使用每个残基的串行组装,将每个残基放置在原点并向 OpenaSCAD 提供坐标空间转换
所有 ALTLOC(无序)残基和原子都写入输出模型。(请参阅
Bio.PDB.internal_coords.IC_Residue.no_altloc
)