详解AlphaFold生成的PDB文件以及3D打印所需的STL文件

继上篇帖子
https://blog.csdn.net/yhlhhhhh/article/details/122507090?utm_source=app&app_version=4.21.0&code=app_1562916241&uLinkId=usr1mkqgl919blen 里写的将预测的模型用3D打印机打印出来,而这其中就涉及到格式转换的问题,但据我所知貌似没有专门的转换工具,所以需要用编程实现。而用编程实现的两个基础就是要知道待转换格式的数据框架和转换格式的数据框架分别是什么,之后再想解决方案。

PDB文件部分

首先我百度了一下,发现网上给的资料并不多,有些给出的则是比较笼统的解释,并没有针对某个实例。这是找到的资料:https://blog.sciencenet.cn/blog-548663-895916.html于是我就想通过某种方式打开这个文件并输出到txt上。受以前绘制发育树贴:
https://blog.csdn.net/yhlhhhhh/article/details/118191473?utm_source=app&app_version=4.21.0&code=app_1562916241&uLinkId=usr1mkqgl919blen
的启发,我发现虽然biopython要求的是Newick格式,但是把形如Newick的数据框架放在txt中同样能输出结果,我就想到既然能够直接用txt读取,那为什么不能试试以txt的形式打开呢,于是我打开VScode,写了这一段Python脚本:
在这里插入图片描述
输出结果发现竟然成功了:
在这里插入图片描述
于是我又写了下面一段脚本将结果输出到txt中以方便观察:
在这里插入图片描述
输出结果:
在这里插入图片描述
首先根据我目前已有的生物和化学知识可以直接看出:
第一列代表的是微粒类型,ATOM代表原子,TER代表残基第二列很明显是微粒编号第三列嘛。。。不知道,先跳过去,一会再看第四列,氨基酸名称,并且是三字母缩写第五列,不知道,先跳过第六列,一看和氨基酸名称的分布相同,并且有向下标序号的感觉,所以猜是氨基酸序列编号之后看到后面有5列数,其中第3列仿佛和第4列有些分开,所以我猜7,8,9列是一组数据,10,11列是另一种或两种数据。我又看了看7,8,9列都有负有正,况且pdb文件中肯定要有表示位置的数据,所以我猜测7,8,9列分别代表着x,y,z坐标。至于10,11列是什么不知道,也先跳过最后一列,我一看都是字母,而且大多是CHON,所以是元素符号之后我就查阅了资料,说第三列是原子名称,第五列是肽链名,第11列是占有率,第12列是温度因子通过我的感觉以及不断尝试,我发现第3列是带着位置信息的原子名称,规则如下:第三列表示原子在中心碳或R基的位置肽键上的原子直接写元素名称即可字符第一位为元素名称第二位为从中心碳开始到远中心碳端的距离(从B~Y,不包括C,G)当R基上存在苯环时,连接苯环的近中心碳端字符第二位为G;该位置的对位碳位置字符第二位则为Z;两临位碳字符第二位按照顺序向下标,并在第三位分别加上1和2以区分两个临位碳;两对位碳的标注方法与临位碳相同若出现4位的情况,则说明R基上有支链,此时第3位代表的是主链或支链,第4位则代表的才是各个氢原子。 emmmm这么说可能比较抽象,我举几个例子吧:
甘氨酸:
在这里插入图片描述
在这里插入图片描述
亮氨酸:
在这里插入图片描述
在这里插入图片描述
苯丙氨酸:
在这里插入图片描述

STL文件部分

根据我当时在清华做项目的那段时间教授跟我说的,STL有明码形式和二进制形式,它会将表面用三角来代替以方便打印。但是这执导的信息太少了,于是,我一去问了一下度娘:二进制STL文件用固定的字节数来给出三角面片的几何信息。文件起始的80个字节是文件头,用于存贮文件名;紧接着用 4 个字节的整数来描述模型的三角面片个数,后面逐个给出每个三角面片的几何信息。每个三角面片占用固定的50个字节,依次是:3个4字节浮点数(角面片的法矢量)3个4字节浮点数(1个顶点的坐标)3个4字节浮点数(2个顶点的坐标)3个4字节浮点数(3个顶点的坐标)个三角面片的最后2个字节用来描述三角面片的属性信息。一个完整二进制STL文件的大小为三角形面片数乘以 50再加上84个字节。

UINT8//Header//文件头
UINT32//Numberoftriangles//三角面片数量
//foreachtriangle(每个三角面片中)
REAL32[3]//Normalvector//法线矢量
REAL32[3]//Vertex1//顶点1坐标
REAL32[3]//Vertex2//顶点2坐标
REAL32[3]//Vertex3//顶点3坐标
UINT16//Attributebytecountend//文件属性统计代码片

嘿嘿,谢谢度娘(doge

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yhlhhhh

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值