#分子模拟# 用python将PDB转化成FASTA
2017-05-25 本文已影响54人
生信杂谈
用python将PDB转化成FASTA
很多时候我们都需要读取PDB的序列文件,虽然这个很容易,很多软件也可以做到,但是了解一些机理总归是好的,有幸在github碰到写的pdb2fasta,所以想和大家一起分享学习一下。我们首先来看一下PDB文件结构:
可以发现所有的残基序列都含有
ATOM
标签,第4列主要是残基编号,第5列为链,第六列为链序号。那么我们首先先匹配ATOM
,只有匹配ATOM
的内容才会被继续分析,然后匹配第5列,如果之前的一行与后一行数值相同,那么那一行也要跳过,这样就可以每个氨基酸残基唯一获取一次了。而分隔符pdb文件默认为\t
。我们以1b8p为例进行分析,首先打开文件:
然后写核心的读取循环组件。
相比代码大家都非常容易理解,我们用一个for循环来确定是否为空行,若为空行,则continue继续下一个循环,toks[0]!='ATOM',查看是否为'ATOM'开头,不是则continue,如果第5列为不是重复值的话,则打印出来,然后将新的toks[5]赋值给变量。结果如下:
非常完美,模块化的话有人已经做了,可以在末尾下载,使用方法为python 脚本名称 pdb文件> 新命令的.fasta文件,非常简单,完整代码如下:
代码来源:https://github.com/dongshuyan/pdb2fasta/blob/master/pdb2fasta.py
更多原创精彩内容敬请关注生信杂谈: