蛋白结构评价-LDDT score

蛋白结构评价-LDDT score

LDDT 的全称是 local distance difference test,局部距离差测试,在它被提出来的时候也不是全新概念,它来自 dRMSD + GDT。

基本用法

要根据存储在 ref.pdb 中的参考结构计算一个 PDB 文件 (mdl1.pdb) 的 lDDT,请使用以下命令;每个模型的局部和全局 lDDT 分数都打印到终端:

lddt mdl1.pdb ref.pdb
类似地,可以计算 PDB 文件列表的 lDDT:
lddt mdl1.pdb mdl2.pdb mdl3.pdb ref.pdb
或同时用于多个参考结构(请在页面底部找到用法示例):
lddt mdl1.pdb ref1.pdb、ref2.pdb、ref3.pdb

参数

lddt 可执行文件支持其他几个命令行选项,请在下面找到它们:

lddt [ options ] <mod1> [ mod1 [ mod2 ]] <re1> [ ,ref2,ref3 ]
 
-s 在 ref 上执行的选择
-c 仅使用 Calphas 
-f 执行结构检查和过滤输入数据
-t 容错解析
-p <file> 强制使用指定的参数文件
-v <level> 角度详细级别(0 =仅结果,1 =报告问题,2 =完整报告)
-r <value> 距离包含半径
-i <value> 序列距离
-e print version 
-x 忽略残基名称一致性检查

lDDT - 用例

模型质量检查

当使用 -f 选项调用 lddt 可执行文件时,程序会在计算 lDDT 分数之前执行一些立体化学和空间碰撞检查。使用此选项时,用户还必须提供包含平均键长、角宽和最小碰撞距离的文本文件。lddt 附带一个默认参数文件,该文件基于 Engh 和 Huber 参数以及剑桥结构数据库中定义的原子半径。该文件是人类可读的,可以使用文本编辑器进行修改。必须使用 -p 参数将文件的位置传递给 lddt 可执行文件。

例如:
lddt -f -p stereo_chemical_params.txt mdl1.pdb ref.pdb
执行模型质量检查时,在输出文本中全局和局部 lDDT 分数之前会提供一些有关测试结果的信息。报告了结构中严重的立体化学违规和空间冲突的数量,以及一些关于全球模型质量的统计数据。局部和全局 lDDT 分数也根据测试结果进行调整。当残基的侧链中发生立体化学违规或空间冲突时,涉及该侧链原子的所有距离自动被视为不守恒。当违规涉及残基的主链原子时,包含残基原子的所有距离都被认为是不守恒的。

自定义包含半径

lDDT 分数评估比预定夹杂物半径更近的原子之间的距离。默认情况下,半径设置为 15 埃,但用户可以通过 -r 参数(以埃为单位)向 lddt 可执行文件传递一个新值来覆盖此值:

例如:

lddt -r 10.0 mdl1.pdb ref.pdb

一致性检查

比较结构时,lddt 可执行文件不执行任何链名称检查。它只处理每个结构中的第一个链,而不考虑名称。但是,它确实会检查残基名称,以确保结构正确对齐。如果被比较的残基名称不匹配,lddt 可执行文件将停止并报错。如果用户出于特定原因需要覆盖此行为并跳过检查,则可以使用 -x 选项调用 lddt 可执行文件。例如:

例如:
lddt -x mdl1.pdb ref.pdb

自定义质量参数

lddt 可执行文件使用多个阈值来确定立体化学违规和空间冲突的严重程度。对于 Bonds 和 Angles,参数文件包含典型的平均长度和宽度,以及它们在蛋白质结构中的测量值的预期标准偏差。当测量值与预期值的偏差超过预定义的标准偏差数时,lDDT 会将违规标记为严重。默认情况下,此值为 12,但用户可以分别使用键和角度的 -b 和 -a 标志覆盖默认容差阈值。

对于空间碰撞,lddt 可执行文件根据正在研究的原子元素从参数文件中恢复原子半径和碰撞公差距离。

例如:

lddt -f -p stereo_chemical_params.txt -b 8 -a 8 mdl1.pdb ref.pdb

多参考结构

lDDT 允许同时使用多个参考结构(有关详细信息,请参阅上面引用的手稿)。为了使用多个引用,只需将它们添加到第一个 ref.pdb 文件中,以逗号分隔。

例如:
lddt mdl1.pdb ref1.pdb、ref2.pdb、ref3.pdb

输出详细度

默认情况下,lddt 可执行文件仅输出全局和本地分数的值。但是,用户可以使用 -v 参数调整输出的详细程度。默认详细级别为 0(仅分数)。其他可用级别是:1(打印关于非守恒距离和失败质量检查的信息,如果执行)和 2(打印关于所有距离和所有质量检查的信息,如果执行)

例如:
lddt -v 1 -f -p stereo_chemical_params.txt mdl1.pdb ref.pdb
警告:冗长级别 1 和 2 会生成大量输出文本,尤其是在评估大型结构和多个模型时。

lDDT Python API

#! /bin/env python
"""Run lDDT from within script."""
from ost.io import LoadPDB
from ost.mol.alg import (CleanlDDTReferences,
                         PreparelDDTGlobalRDMap,
                         lDDTSettings,
                         CheckStructure,
                         LocalDistDiffTest,
                         GetlDDTPerResidueStats,
                         PrintlDDTPerResidueStats,
                         ResidueNamesMatch)
from ost.io import ReadStereoChemicalPropsFile

model_path = "Path to your model pdb file"
reference_path = "Path to your reference pdb file"
structural_checks = True
bond_tolerance = 12
angle_tolerance = 12
cutoffs = [0.5, 1.0, 2.0, 4.0]
#
# Load model and prepare its view
model = LoadPDB(model_path)
model_view = model.GetChainList()[0].Select("peptide=true")
#
# Prepare references - it should be alist of EntityView(s)
references = [LoadPDB(reference_path).CreateFullView()]
#
# Initialize settings with default parameters and print them
settings = lDDTSettings()
settings.PrintParameters()

#
# Clean up references
CleanlDDTReferences(references)
#
# Prepare residue map from references
rdmap = PreparelDDTGlobalRDMap(references,
                               cutoffs=cutoffs,
                               sequence_separation=settings.sequence_separation,
                               radius=settings.radius)
#
# This part is optional and it depends on our settings parameter
if structural_checks:
    stereochemical_parameters = ReadStereoChemicalPropsFile()
    CheckStructure(ent=model_view,
                   bond_table=stereochemical_parameters.bond_table,
                   angle_table=stereochemical_parameters.angle_table,
                   nonbonded_table=stereochemical_parameters.nonbonded_table,
                   bond_tolerance=bond_tolerance,
                   angle_tolerance=angle_tolerance)
#
# Check consistency
is_cons = ResidueNamesMatch(model_view, references[0], True)
print("Consistency check: ", "OK" if is_cons else "ERROR")
#
# Calculate lDDT
LocalDistDiffTest(model_view,
                  references,
                  rdmap,
                  settings)
#
# Get the local scores
local_scores = GetlDDTPerResidueStats(model_view,
                                      rdmap,
                                      structural_checks,
                                      settings.label)
#
# Pring local scores
PrintlDDTPerResidueStats(local_scores, structural_checks, len(cutoffs))
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

发呆的比目鱼

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

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

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

打赏作者

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

抵扣说明:

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

余额充值