Bio. DBC.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')
将面体组合作为OpenSCAD矩阵写入文件。
此例程既调用
IC_Chain.internal_to_atom_coordinates()和IC_Chain.atom_to_internal_coordinates()由于对缩放、环周围的显式键合以及设置输出模型的坐标空间的要求。输出数据格式主要是:
- 每个面体的矩阵:
len 1、angle 2、len 3、原子键类、指示先前面体中表示的原子/键的标志(OpenSCAD非常慢,具有冗余重叠元素)、键特征的标志
变换矩阵将每个面体组装成剩余二面体集
将每个残基的矩阵转换为链中的位置
该Python文件中包含OpenSCAD软件,可将这些矩阵处理成适合3D打印项目的模型。
- 参数:
entity -- Biopython DBC
Structure要输出的实体结构数据file -- 比波伊松
as_handle()文件名或打开文件指针文件写入数据scale (float) -- STL输出每埃单位(通常为毫米),写入输出
pdbid (str) -- DBC idcode,写入输出中。如果未提供并且实体中未设置“idcode”,则返回到“0 DBC”
backboneOnly (bool) -- 默认为假。如果为True,则不输出超过CBeta的侧链数据
includeCode (bool) -- 默认为真。包括OpenSCAD软件(如下行列),以便输出文件可以加载到OpenSCAD中;如果为假,则仅输出数据矩阵
maxPeptideBond (float) -- 可选默认无。初始化IC_Chain类(默认1.4)中的截止值,以检测断链。 如果您的目标发生连锁断裂,请在此处传递大量数字,以在断裂期间创建非常长的“纽带”。
start,fin (int) -- 默认无internal_to_atom_coords()的参数限制链段。
handle (str) -- 生成的OpenSCAD矩阵结构顶层的默认“蛋白质”名称
看到
IC_Residue.set_flexible()为特定残基设置具有可旋转键的标志,并且IC_Residue.set_hbond()以包括用于小磁体的腔以作为氢键工作。有关实现示例,请参见<https://www.thingiverse.com/thing:3957471>。OpenSCAD代码显式创建球体和圆柱体来表示3D模型中的原子和键。 有选项可以支持可旋转键和磁性氢键。
编写矩阵是为了链接、列举和描述残基、二面体、面体和链,反映相关IC_* 数据结构的内容。
面体的OpenSCAD矩阵具有以下附加信息:
- 记录原子和键状态(单、双、共振
以便3D模型中的原子球可以使用3D模型
键和原子被跟踪,以便每个键和原子只创建一次
- 旋转键选择和氢键磁铁支架
可以指定(见
IC_Residue.set_flexible()和IC_Residue.set_hbond())
注意应用
Bio.PDB.internal_coords.IC_Chain.MaxPeptideBond:通过将其设置为较大的值,可以连接缺失的残基(连接具有任意长键的链段)。注意,这使用了每个残差的串行装配,将每个残差放置在原点,并将坐标空间转换提供给OpenaSCAD
所有ALTSYS(无序)残基和原子都被写入输出模型。 (见
Bio.PDB.internal_coords.IC_Residue.no_altloc)