rabdam:识别和量化单个蛋白质晶体结构中特定辐射损伤的程序

rabdam的Python项目详细描述


Rabdam–识别MX结构中的特定辐射损伤

python versionpython versionlgpl许可

计算b损伤b指标的程序,以量化单个MX结构中存在的特定辐射损伤程度。适用于任何标准格式的PDB或MMCIF文件。

**注意:这些脚本正在开发中,并定期更新。该计划目前正在扩展,以纳入核酸分析。在测试这些新能力的同时,目前rabdam仅限于评估(i)蛋白质晶体结构和(ii)蛋白质/核酸晶体结构的蛋白质成分的损害。同时,如果您想使用rabdam进行核酸分析,请通过页面底部提供的电子邮件地址与作者联系。**


内容


如何简短地运行

rabdam是一个命令行程序。要使用推荐的默认参数值运行程序,请执行:

python rabdam.py–f xxxx

,其中,xxxx是正在研究的mx结构的4字符pdb加入码。或者,您可以为rabdam提供本地保存的pdb文件的绝对文件路径:

python rabdam.py–f path/to/pdb_file.pdb

,或本地保存的mmcif文件:

python rabdam.py–f path/to/mmcif_file.cif

有关详细信息,请参见下面的"用法"部分。


背景

在大分子晶体学(MX)数据收集过程中,X射线也被所研究的晶体吸收并沉积在晶体内部,造成损伤。这种损伤可导致结晶大分子拷贝的局部化学变化,例如蛋白质中的二硫键断裂,等。这种特殊的辐射损伤表现,如果不加以识别和解释,可能会导致从mx结构得出错误的生物学结论。不幸的是,第三代同步辐射源的高强度已经导致了特定的辐射损伤人工制品通常存在于蛋白数据库(PDB)中的MX结构中,即使数据收集是在100 K.

特定辐射损伤引起的化学变化导致受影响部位的原子因子值随之增加。然而,除了辐射损伤外,多个因素还可以影响原子的b-因子值,其中最重要的是原子的迁移率。由特定辐射损伤引起的原子b-因子(这里称为b-因子)的增加不够大,无法区分损伤和迁移率。

原子在晶体结构中的迁移率与其堆积密度之间有很强的正相关,在其局部环境中存在的原子数。b损伤度量是完全各向同性原子b-根据填充密度校正的因子:具体来说,原子的b损伤值等于其b因子与原子的平均b-因子1与n之比,它们与原子的堆积密度环境相似。已证明b损伤指标可确定受损MX结构中特定辐射损伤的预期位置(Gerstel等人,2015年)。

images/bdamage_equation.png

计算原子b损伤值的方法总结如下:


images/bdamage_methodology.png 计算b损伤指标。从感兴趣的大分子的不对称单元的输入pdb/mmcif文件,rabdam(a)生成单元单元的副本,然后生成单元单元的3x3x3组件。(c)3x3x3单元单元单元组件中距离非对称单元7_以上的原子被贴现。(d)非对称单元中原子的堆积密度j计算为半径为7°的原子数。(e)非对称单位原子按堆积密度排序;然后,将原子的b损伤值j计算为其b-因子与通过滑动窗口分组的原子的b-因子值平均值的比率,如同占据相似的包装密度环境。请注意,计算b损伤时不考虑氢原子。为了清晰起见,图表以二维而不是三维形式显示。


b损伤值由全原子各向同性b-因子值计算,该因子值应列在标准格式pdb/mmcif文件中结构的atom/hettm记录的b-因子字段中。然而,约10%的pdb/mmcif文件列出了该字段中的可选因子值(touw&vriend,2014)。b-因子数据库(bdb)包含在atom/hettm记录b-因子字段中具有完全各向同性(*但不一定是原子的)b-因子值的pdb文件;具有足够标题信息以确定内容的所有PDB条目,如有必要,可重新计算b-因子字段,这些条目都包含在BDB中(Touw&Vriend,2014)。rabdam包含定期更新的pdb结构的加入代码列表,这些代码存储在完全各向同性的b-从bdb下载的因子中;如果用户指定的加入代码不在此列表中,用于rabdam分析,程序将标记警告。

b网络度量是(每个原子)b损伤度量的派生,该度量用一个值概括mx结构遭受的特定辐射损伤的总程度。真正的。由蛋白质中的特定辐射损伤引起的最具特征的化学变化之一是谷氨酸和天门冬氨酸残基的脱羧;根据结构Glu和Asp侧链氧原子的b损伤值的核密度估计值,计算出b度量值,作为损伤中位数曲线两侧的面积比。分发。

(*目前正在开发一种相当于蛋白质特异性的核酸测量方法-见上面的程序说明)。

计算蛋白质结构的b净值的方法总结如下:


images/bnet_calculation.png 计算的b指标是,在glu和as p残基的末端氧原子的b损伤值和asp残基的b损伤值的核密度估计值下,中位数(总的b损伤分布)两边的面积之比。


Rabdam将计算任何标准格式的PDB或MMCIF文件的b损害b指标的值,以确定结构内特定辐射损害的潜在个别位置和总范围。


用法

安装
  1. rabdam可以从github下载/克隆。然后,您可以从rabdam目录将rabdam作为脚本运行,也可以将rabdam作为包安装(可以从任何目录运行),方法是导航到rabdam目录并执行:
    python setup.py安装

  2. rabdam可以直接从pypi安装(作为一个包),使用pip
    pip安装rabdam

  3. rabdam是ccp4软件套件的一部分。它目前作为命令行软件包提供,不久将并入图形用户界面。


系统要求

rabdam同时支持python 2和python 3。此外,它还依赖于以下包/程序,这些包/程序不包括在anaconda python发行版(4.3.0版以后)中

  • ccp4软件套件(rabdam依赖于ccp4套件程序pdbcur)

要检查计算机是否缺少运行rabdam所需的任何包/程序,请执行:

python rabdam.py—依赖关系

**注意:由于其与pdbcur的依赖性,rabdam只能在终端/命令提示符下运行,其中ccp4程序也可以在该提示符下运行(例如,ccp4控制台)。**

Rabdam在单处理器上运行200kDa结构大约需要1分钟(根据在1.8GHz Intel Core i5处理器上的Macintosh操作系统下执行的测试估计)。它与Windows、Macintosh和Linux操作系统兼容。


数据要求

rabdam可以在感兴趣的mx结构的单个模型的任何标准格式pdb或mmcif文件上运行(特别是,它需要cryst1,如果存在,则需要来自报头信息的ssbond行,以及atom/hettm记录)。但是请注意,由于b损伤是每个原子的度量,因此只应针对每个原子的因子值已被细化的结构计算。此外,由于b-因子和占用值之间的相关性,只有受占有精细化的非配体原子应为交替构象中的那些原子(其占有率应总和为1)。


运行rabdam

**rabdam既可以作为脚本运行,也可以作为包运行(有关更多详细信息,请参阅安装部分)。下面提供的示例命令用于将程序作为脚本运行。如果您以包的形式运行rabdam(pypi或ccp4包),只需将python rabdam.py替换为rabdam**

rabdam是一个命令行程序。控制程序运行的主要命令行标志有四个:

  • -i/--输入
  • -f/--pdb_文件
  • -r/--运行
  • -o/--输出



-i-f标志控制程序的输入。运行rabdam需要这两个相互排斥的标志之一。

-i标志用于指定列出所选程序参数值的输入txt文件的名称(有关此输入文件应包含的详细信息,请参阅下面的"构造输入文件"部分)。如果输入文件与rabdam.py脚本位于同一目录中,则只需提供文件名即可运行rabdam:

python rabdam.py-i input_file.txt

否则,您需要提供其绝对文件路径:

python rabdam.py-i path/to/input_file.txt

或者,如果您希望使用完全默认的参数值执行rabdam运行,则可以在没有输入文件的情况下运行rabdam;在这种情况下,使用-f标志向rabdam提供4个字符的pdb加入码(xxxx)。或要分析的MX结构的绝对文件路径(path/to/pdb_file.pdb或path/to/mmcif_file.cif):

python rabdam.py-f xxxx/python rabdam.py-f path/to/pdb_file.pdb/python rabdam.py-f path/to/mmcif_file.cif

可以根据-f标志指定多个pdb和/或mmcif文件进行分析,例如

python rabdam.py–f路径/to/pdb_文件/u 1.pdb路径/to/mmcif_文件/u 2.cif路径/to/pdb_文件/u 3.pdb

重要的是,请注意,当使用-f标志时,提供的文件路径不能包含任何空格。(但是,在输入TXT文件中指定文件路径时,此限制不适用。)



-r-o标志控制程序的输出。这两个标志都是可选的。

-r标志可用于指示rabdam运行到完成(默认),或在其整个运行过程中部分停止/启动。rabdam的结构使其将为输入mx结构计算的b损坏值写入数据帧;然后使用此数据帧写入程序输出文件。通过使用-r标志,可以指示rabdam停止(-r df/-r dataframe)或启动(-r analysis)其运行以下dataframe构造。例如,如果您希望更改程序输出文件的格式(可以使用输入TXT文件中指定的参数进行控制-请参见下面的"构造输入文件"部分),而不更改b损坏,则此选项将节省时间。分销本身。

-o标志可用于控制程序写入的输出文件的选择。默认情况下,rabdam会写入6个输出文件,由以下5个关键字指定:

  • kde:为输入mx结构计算的b损伤值分布的核密度估计
  • bdam:一个pdb文件,其中b-fac用ln(b损伤)值替换原子(/hettm)记录的Tor列(从而使用分子图形软件,如pymol、ccp4mg、等,使结构均匀地涂上b损伤),再加上一个mmcif文件,其中b损坏值的列被附加到atom(/hettm)记录(位于b-因子列和元素列之间)
  • csv:列出b损伤分析中包含的输入mx结构中所有原子的属性(输入pdb/mmcif文件中的属性和rabdam计算的属性)的csv文件
  • b net:glu和asp残基的末端氧原子的b损伤值的核密度估计值,加上根据该分布计算出的(蛋白质特定的)b值(参见"背景"部分)
  • 摘要:一个HTML文件,总结上述5个输出文件中显示的结果

可以使用-o标志加上按任意顺序列出的输出文件(在上面的列表中突出显示)的关键字名称来控制rabdam写入的输出文件。例如,要获取csv和bnet输出文件,请执行:

python rabdam.py–o csv bnet(/python rabdam.py-o bnet csv

注意,如果您指示rabdam编写摘要html文件(python rabdam.py-o summary),那么rabdam也将编写kde和bnet文件。这是因为要使摘要HTML文件能够显示这些图形,需要将图形保存到本地计算机。



此外,还有两个补充命令行标志:

  • -h/--帮助
  • --依赖关系

-h标志在终端/命令提示符中显示帮助消息,列出运行rabdam时可以/必须指定的不同命令行标志。--dependencies标志指示程序测试运行它的系统是否安装了必要的程序/python包,以便rabdam运行到完成。


写入rabdam输入文件

如果希望使用非默认参数值运行rabdam,则需要向程序提供一个输入文件,指定选定的参数值。rabdam(按任意顺序)接受16个输入参数(由斜体关键字规定):

  • 要分析的pdb/mmcif文件的名称

4个字符的PDB登录代码或绝对文件路径(可能包含空格)。通过列出用逗号分隔的每个结构的名称,可以从一个输入文件运行多个结构(见下文)。这是唯一没有由关键字指定的参数,并且没有默认值。

  • 输出目录,目录

要在其中写入程序输出文件的目录(由其绝对文件路径指定)的位置。如果未指定,则默认为当前工作目录。

  • 选项忽略批处理运行期间遇到的错误,batchcontinue

如果程序在批处理运行期间遇到可识别的程序错误,则指示程序跳到列表中的下一个结构("true")或终止("false",默认行为)。

  • 选项覆盖与新输出文件同名的现有文件,覆盖

指示程序,如果遇到与输出目录中已存在的要写入的输出文件同名的文件,则始终覆盖这些预先存在的文件("true"),或要求用户为遇到的每个情况("错误",默认行为)。

  • 堆积密度阈值,pdt

原子的堆积密度是以半径pdt其默认值为7,但可以将其设置为等于任何值(以为单位)。除非您知道自己在做什么,否则不要更改此参数的值!

  • 滑动窗口大小,窗口大小

用于在类似堆积密度环境中对原子进行分组以进行b损伤计算的滑动窗口的大小(占b损伤分析中包含的原子总数的百分比)。它的默认值是0.02(2%),但是可以取任何小于1(100%)的值。除非您知道自己在做什么,否则不要更改此参数的值!

  • 删除hettm的选项,hettm

指定是否要将(keep)/exclude(remove)hettam包含在/从b损害计算中。由于hettm的b-因子与堆积密度比与atom的不同,该参数默认设置为"移除"。除非您知道自己在做什么,否则不要更改此参数的值!

  • 仅保留蛋白质/核酸原子的选项,蛋白质核酸

指定在b损害计算中是包含蛋白质原子("蛋白质")还是包含核酸原子("核酸"/"")。由于这两种原子类型的b因子与堆积密度比的差异,强烈建议将它们分开分析。默认情况下,此参数设置为"蛋白质"。目前,该程序正在开发中,以便进行核酸分析,但该参数不能改变其默认值。

  • b损伤计算中移除原子的选项,移除原子

允许从b损伤计算中移除单个原子(通过其原子序列号或其残留物类型指定)(默认情况下,不使用此参数移除任何原子)。为了在编写输入文件时方便起见,可以同时指定多个原子(请参阅下面为同一参数提供多个值的指南)。该参数有助于去除具有异常高/低b-因子的原子,例如在没有电子密度的情况下模拟氨基酸侧链时发生。除非您知道自己在做什么,否则不要更改此参数的值!

  • b伤害计算中添加原子的选项,添加原子

允许在b损伤计算中添加单个原子(通过其原子序列号或其残基类型指定)(默认情况下,不使用此参数添加原子)。(但是,请注意,在b损害计算中,不能多次考虑同一个原子。)为方便编写输入文件,可以同时指定多个原子(请参阅下面为同一参数提供多个值的指南)。除非您知道自己在做什么,否则不要更改此参数的值!

  • 在核密度估计值中突出显示原子的选项bb损伤分布,高光原子

突出显示输出核密度估计上指定原子的b损伤值(默认情况下不突出显示原子)。原子由其序列号指定,如提供给rabdam的输入pdb/mmcif文件中所列。一次突出多个原子是可能的(请参阅下面为同一参数提供多个值的指南);但请注意,建议一次指定的原子数不超过6个(超过6个原子时,图形颜色方案将自动重复,而且完整的键可能不适合绘图)。

  • 创建初始PDB文件副本的选项,createOrigPDB

当设置为"true"(默认情况下,此参数设置为"false")时,将初始pdb文件(直接提供给程序,或通过转换输入mmcif文件获得)的副本写入输出目录。

  • 选择创建过滤的非对称单元的pdb文件,createaupdb

当设置为""(默认情况下,此参数设置为"")时,将已过滤(以除去氢原子、0个占用原子和备用构象)非对称单位坐标的PDB文件写入输出目录。

  • 创建单元单元PDB文件的选项,createUCPDB

当设置为"true"(默认情况下,此参数设置为"false")时,将单位单元格坐标的PDB文件写入输出目录。

  • 用于创建3x3x3单元单元部件的PDB文件的选项,createAUCPDB

当设置为"true"(默认情况下,此参数设置为"false")时,将3x3x3单元单元程序集坐标的PDB文件写入输出目录。

  • 用于创建修剪单元单元部件的PDB文件的选项,createTaPDB

当设置为"true"(默认情况下,此参数设置为"false")时,将修剪的3x3x3单元部件坐标的PDB文件写入输出目录。

请注意,如果输入文件中未指定参数,则在rabdam运行时将采用其默认值。



为了使rabdam在输入文件中成功解析,它必须符合以下格式准则:

  • 关键字及其关联值必须用"="分隔。连续的关键字/值对必须用","分隔
  • 同一关键字的多个值必须用";"分隔。或者,可以通过提供以"-"分隔的范围的最小值和最大值来指定连续(数字)值的范围。因此,您可以通过高光原子=2;3;4高光原子=2-4来指示rabdam在输出的b损伤核密度估计中突出显示原子2、3和4

下面是一个示例输入文件,指示rabdam分析溶菌酶结构4h8x和4h9i,将输出文件写入目录c:\ users\username\documents\rabdam_test_output,并突出显示原子14、15,16和30对输出核密度的估计。所有其他参数都设置为其默认值。此示例输入文件("example\input.txt")与可从此网页下载的rabdam python脚本一起提供。

4H8X, 4H9I,
dir=C:\Users\UserName\Documents\RABDAM_test_output,
batchContinue=False,
overwrite=False,
PDT=7,
windowSize=0.02,
HETATM=Remove,
proteinOrNucleicAcid=Protein,
addAtoms=,
removeAtoms=,
highlightAtoms=14-16;30,
createOrigpdb=False,
createAUpdb=False,
createUCpdb=False,
createAUCpdb=False,
createTApdb=False

查询

请发送电子邮件kathryn.l.shelley@gmail.com


贡献者

  • 凯瑟琳·雪莱
  • 汤姆·迪克森
  • 乔尼·布鲁克斯·巴特利特

这个软件是在牛津大学埃尔斯佩斯加曼教授的实验室里开发的。


引用rabdam

Rabdam软件的说明如下:

如果你使用拉伯丹来分析MX结构中的特定辐射损伤,请引用本文



b损伤指标在中定义和验证:



rabdam取决于ccp4套件程序pdbcur:

  • winn md,ballard cc,cowtan kd,dodson ej,emsley p,evans pr,keegan rm,kristinel eb,leslie agw,mccoy a,mcnicholas sj,murshudov gn,pannu ns,potterton ea,powell hr,read rj,vagin a,wilson ks(2011)ccp4套房和当前发展概况。晶体学报d67:235-242 https://doi.org/doi:10.1107/s090744910045749



rabdam从b-因子数据库中提取具有完全各向同性(*但不一定是原子的)b-因子的pdb加入码列表:

另请参见https://github.com/cmbi/bdb" rel="nofollow">https://github.com/cmbi/bdb

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java OpenJDK交叉编译:失败无法生成目标   java使用Hibernate向postgresql表插入json值   Java7中的新Swing JLayer   java从另一个类访问方法和属性,而不实例化它   java右键单击弹出菜单无法聚焦JTextField   java是否可以使用jpa@Query调用Oracle函数   java是打印任何类型的ArrayList元素的通用方法   使用多重映射作为参数的Java   java我有两个字符串,内容相同,但哈希代码不同,因此。equals方法正在重新运行false。请建议如何解决这个问题   java JPA查询元素集合   java如何将数据从请求绑定到现有对象?多步骤形式   java在没有警告的情况下转换泛型类型?   声明Java乘法长和浮点数,结果是哪种数据类型?