python脚本一键重置PDB文件中蛋白的bfactor值

本文主要介绍如何一键修改PDB文件中的bfactor值,并附完整的python代码

在晶体结构优化过程中,有时候由于蛋白的bfactor过高,蛋白链会出现大片奇奇怪怪差值密度的情况。这时候可以尝试在优化前对bfactor进行重置,奇怪的差值密度可能会有所改善。
在pdb文件中,手动修改bfactor这一列值会比较麻烦,尤其是序列比较长或者多条肽链的情况,修改起来会比较费时间。这里我借用Biopandas模块写了一个python脚本去实现:

'''
Usage: python reset_bfactor.py -p XXXX.pdb -b bfactor

'''
import argparse
from biopandas.pdb import PandasPdb
parser = argparse.ArgumentParser(usage='python reset_bfactor.py',description='')
parser.add_argument("--pdb", "-p", action="store",dest='pdbpath', help="please input pdb file,such as XXX.pdb")
parser.add_argument("--bfactor", "-b", action="store",dest='targetB', help="please input target bfactor value, such as 30.00")
args = parser.parse_args()

pdbpath=args.pdbpath
bfactor_value=args.targetB


data = PandasPdb().read_pdb(pdbpath)

##pdb文件信息存储在data类的df属性中。data.df是一个字典,其保存有pdb格式中常见的这几种record type:'ATOM', 'HETATM', 'ANISOU', 'OTHERS'
data.df.keys()
##取出pdb中的‘ATOM' and 'HETATM' record type来操作
df_ATOM = data.df['ATOM']
df_HETATM = data.df['HETATM']

df_ATOM['b_factor'] = float(bfactor_value)
df_HETATM['b_factor'] = float(bfactor_value)

##把原data中的df变为修改后的df
data.df['ATOM'] = df_ATOM
data.df['HETATM'] = df_HETATM
##调用”to_pdb"方法保存为新的pdb文件
data.to_pdb('out.pdb')
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
04-12 2703

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值