28、自动化RNA三维结构设计与比较:RNAMake与RNA - Puzzles工具包的应用

自动化RNA三维结构设计与比较:RNAMake与RNA - Puzzles工具包的应用

1. RNAMake:自动化RNA纳米结构设计与热力学稳定性预测

RNAMake是一款用于自动化设计RNA三维结构的工具,它用C++11编写,可使用g++和clang编译器构建,学术用途可从https://simtk.org/frs/?group_id=1749免费获取。其每个应用都作为独立的可执行文件,便于使用。相关示例和文件都包含在“tests”子文件夹中。

1.1 自动设计RNA纳米结构

RNAMake的 design_rna_scaffold 应用程序是构建由RNA基序和螺旋迭代组成的RNA三维片段的核心工具。该应用需要三个必需的命令行参数:
- --pdb :指定包含起始RNA结构的蛋白质数据库(PDB)文件的路径。
- --start_bp --end_bp :定义要构建的沃森 - 克里克碱基对的起始和结束位置,格式为“[链ID][编号]-[链ID][编号]”。

此外,还有许多其他常用参数,如下表所示:
| 参数 | 是否必需 | 描述 | 允许的值 |
| ---- | ---- | ---- | ---- |
| -h,--help | 否 | 从命令行提供选项信息 | - |
| --pdb | 是 | 包含起始RNA链的PDB文件路径 | 目录字符串,如/path/to/file.Pdb |
| --start_bp | 是 | RNA设计的起始沃森 - 克里克碱基对 | 文本,格式为“[链ID][编号]-[链ID][编号]”(无空格) |
| --end_bp | 是 | RNA设计的结束沃森 - 克里克碱基对 | 文本,格式为“[链ID][编号]-[链ID][编号]”(无空格) |
| --designs | 否 | design_rna_scaffold 尝试生成的设计数量 | 大于0的整数 |
| --extra_pdbs | 否 | 允许在基序路径中包含PDB文件中的额外RNA片段 | 逗号分隔的PDB文件列表 |
| --log_level | 否 | 设置 design_rna_scaffold 的全局日志级别 | 按升序排列:Verbose, debug, info, warning, error, fatal |
| --dump_pdbs | 否 | 为每个RNAMake解决方案输出一个PDB文件 | - |
| --out_file | 否 | 存储程序结果的输出文件名称 | 有效的字符串输入,如/valid/path/my_output.Out |
| --score_file | 否 | 存储生成设计的评分信息的文件名称 | 有效的字符串输入,如/valid/path/my_output.Scores |
| --max_helix_length | 否 | 螺旋的最大碱基对数 | 大于 --min_helix_length 的正整数 |
| --min_helix_length | 否 | 螺旋的最小碱基对数 | 大于1且小于 --max_helix_length 的整数 |
| --motif_path | 否 | 生成解决方案时使用的基序库 | 逗号分隔的基序库列表 |
| --no_sterics | 否 | 关闭对提供的RNA结构的空间位阻检查 | - |
| --only_tether_opt | 否 | 使应用程序忽略除空间位阻外的其他提供的结构 | - |
| --search_cutoff | 否 | 可接受解决方案的最大分数 | 正浮点数 |
| --search_max_motifs | 否 | 路径搜索中可使用的最大基序数 | 正整数 |
| --search_max_size | 否 | 解决方案中可使用的最大核苷酸数 | 正整数 |
| --search_type | 否 | 使用的搜索类型 | “path_finding”、“mc”或“exhaustive” |
| --skip_sequence_optimization | 否 | 禁用所有设计的序列优化 | - |
| --sequences_per_design | 否 | 每个基序设计尝试的序列数 | 正整数 |
| --thermo_fluc | 否 | 在序列优化后对设计片段运行热波动模拟 | - |

例如,以下命令定义了“miniTTR”问题:

design_rna_scaffold --pdb inputs/min_tetraloop_receptor.pdb --start_bp “A220 - A253” --end_bp “A144 - A159”

默认情况下, design_rna_scaffold 将使用其经典的路径搜索算法,该算法平衡螺旋区域的长度与到结束碱基对的相对距离。该应用默认输出两个文件:“default.out”和“default.scores”。“default.out”文件存储了重新生成每个设计的RNA片段所需的所有信息,可提供给其他RNAMake应用进行额外分析;“default.scores”文件是每个设计信息的逗号分隔摘要,各列含义如下表所示:
| 输出值 | 描述 |
| ---- | ---- |
| design_num | 设计编号,从0开始递增 |
| design_score | 设计得分,衡量解决方案到达目标碱基对的程度 |
| design_sequence | 提供的PDB和构建的RNA片段的完整序列,螺旋区域中可设置为任何碱基对的核苷酸用“N”表示 |
| design_structure | 用点括号表示法表示的完整二级结构 |
| motif_uses | 使用了RNAMake基序库中的哪些基序 |
| opt_num | 如果进行了序列优化,序列优化的编号 |
| opt_sequence | 螺旋序列经过优化以匹配所需二级结构的完整序列 |
| opt_score | 优化序列的解决方案到达目标碱基对的程度 |
| thermo_fluc_best_score | 如果进行了热波动模拟,到达目标碱基对的最佳可能构象 |
| hit_count | 在100,000次试验中,解决方案到达目标碱基对的次数 |

RNAMake还引入了基于蒙特卡罗的搜索方法,用户可以通过设置 --search_type 为“MC”并提供基序路径来指定使用该方法。当前可用的基序库如下表所示:
| 基序库名称 | 描述 |
| ---- | ---- |
| ideal_helices | 2到20个碱基对大小的理想化螺旋 |
| Twoway | 所有双向连接 |
| Tcontact | 所有三级接触 |
| Hairpin | 所有发夹结构 |
| Nway | 所有具有三个或更多碱基对末端的连接 |
| flex_helices | 由RNAMake - ΔΔG生成的略微偏离理想化几何形状的螺旋 |
| unique_twoway | 聚类的双向连接,以减少可能性总数 |
| bp_steps | 所有螺旋碱基对步骤 |

例如,以下命令指定了一个基序路径:

design_rna_scaffold --pdb inputs/min_tetraloop_receptor.pdb --start_bp “A220 - A253” --end_bp “A144 - A159” --search_type mc --motif_path “flex_helices,twoway,flex_helices”

这将约束RNAMake寻找仅包含一个由两个非理想螺旋夹着的双向连接的解决方案。用户还可以通过 --extra_pdbs 选项提供自定义RNA结构,例如:

design_rna_scaffold --pdb inputs/min_tetraloop_receptor.pdb --start_bp A220 - A253 --end_bp A144 - A159 --search_type mc --motif_path “flex_helices,twoway,flex_helices,atp_aptamer,flex_helices,twoway,flex_helices,twoway,flex_helices” --extra_pdbs inputs/atp_aptamer.pdb

此外,RNAMake还支持在大型天然RNA系统(如大肠杆菌核糖体)中设计新的RNA片段,例如:

design_rna_scaffold --pdb inputs/ribosome.pdb --start_bp B1449 - B1454 --end_bp C1447 - C1464 --only_tether_opt
1.2 进行三维热力学稳定性预测

RNAMake的另一个主要功能是通过其碱基对步骤的集合表示来估计三维热力学稳定性。最初,这些模拟仅限于tectoRNA系统,现在可以使用 ddg_tecto 应用程序进行计算,例如:

ddg_tecto -fseq CUAGGAAUCUGGAAGUACCGAGGAAACUCGGUACUUCCUGUGUC CUAG -fss "((((((....((((((((((((....))))))))))))....))))))" -cseq CUAGGAUAUGGAAGAUCCUCGGGAACGAGGAUCUUCCUAAGUCCUAG -css "(((((((..((((((((((((....))))))))))))...)))))))"

其中, -fseq -fss 定义了tecto系统第一条链的序列和二级结构, -cseq -css 定义了第二条链的序列和二级结构。

最近,通过在 design_rna_scaffold 应用程序中提供 --thermo_fluc 标志,也可以进行热波动计算,例如:

design_rna_scaffold --pdb inputs/min_tetraloop_receptor.pdb --start_bp A220 - A253 --end_bp A144 - A159 --thermo_fluc

热波动将通过蒙特卡罗模拟对螺旋碱基对步骤进行采样,报告解决方案到达定义碱基对的可能性。但这些模拟仅考虑螺旋的碱基对步骤,如果解决方案中有大量非螺旋基序,这些计算将无法反映整个系统的真实稳定性。

2. RNA - Puzzles工具包:RNA三维结构比较

RNA在众多生物过程中起着核心作用,其功能多样性归因于其形成特定三维结构的能力。因此,准确快速地建模RNA三维结构对于理解其分子功能以及与其他大分子和配体的相互作用至关重要。

在过去十年中,许多RNA三维结构预测算法得到了积极开发和改进,包括比较建模、片段组装和从头建模等方法。为了盲目比较这些预测方法并了解该领域的瓶颈,RNA - Puzzles社区发起了评估RNA三维结构预测的工作。RNA - Puzzles工具包是从该项目衍生而来的计算资源,包括:
- 不同RNA三维结构预测方法生成的诱饵集。
- 三维结构归一化、分析、操作和可视化工具。
- 三维结构比较度量工具。

2.1 传统结构比较指标的局限性

在三维结构比较中,均方根偏差(RMSD)是最广泛使用的指标之一,它测量叠加后对齐原子的欧几里得距离的均方根偏差。然而,RMSD将误差推广到整个结构,连接区域的误差可能导致拓扑变化,即使结构的其他部分与参考结构相似,也会导致RMSD值较高。此外,RMSD无法考虑RNA的碱基对特征。

2.2 RNA特定的比较指标

为了克服RMSD的局限性,一些RNA特定的指标被提出:
- 交互网络保真度(INF) :定义为参考结构和预测结构相互作用之间的马修斯相关系数(MCC),用于评估相互作用预测的准确性。评估的相互作用类型包括沃森 - 克里克相互作用、非沃森 - 克里克相互作用和碱基堆积。
- 变形轮廓(DP) :使用二维距离矩阵(可通过热图可视化)来表示预测结构和参考结构之间的平均距离,热图中的颜色与结构之间的局部相似性相关。
- P值 :用于平衡序列长度对RMSD的影响。

此外,近年来还开发了其他新颖的指标,如圆形量的平均值(MCQ)和扭转角空间中的最长连续段(LCS - TA),用于测量扭转角空间中的结构相似性。

2.3 标准RNA三维结构比较协议

可以使用RNA - Puzzles工具包中的 rna - tools RNA_assessment 工具来展示标准的RNA三维结构比较协议。该工作流程模拟了RNA - Puzzles中的RNA三维结构预测场景,在比较中同时提供预测的RNA结构和实验确定的参考RNA结构。具体步骤可能如下:
1. 准备预测的RNA结构和参考RNA结构。
2. 使用 rna - tools 进行结构归一化、分析和操作。
3. 使用 RNA_assessment 工具和上述RNA特定的比较指标进行结构比较。
4. 根据比较结果评估预测方法的准确性和性能。

通过使用这些工具和指标,可以更全面、准确地评估RNA三维结构预测方法的性能,为RNA结构研究提供更有力的支持。

3. 实际应用案例分析
3.1 RNAMake在不同场景下的应用优势
  • 小型RNA结构设计 :在“miniTTR”问题中,RNAMake通过 design_rna_scaffold 应用程序,利用经典路径搜索算法,能够在给定起始和结束碱基对的情况下,平衡螺旋区域长度与到结束碱基对的相对距离,找到合适的基序和螺旋组合来构建RNA片段。例如,通过命令 design_rna_scaffold --pdb inputs/min_tetraloop_receptor.pdb --start_bp “A220 - A253” --end_bp “A144 - A159” ,可以生成包含tetraloop和tetraloop - receptor三级接触的连续RNA链。这种设计方式为研究小型RNA分子的结构和功能提供了有力的工具。
  • 复杂RNA结构设计 :基于蒙特卡罗的搜索方法使RNAMake能够处理更复杂的设计需求。用户可以通过指定基序路径和额外的RNA结构,精确控制设计的RNA片段的组成。如在命令 design_rna_scaffold --pdb inputs/min_tetraloop_receptor.pdb --start_bp A220 - A253 --end_bp A144 - A159 --search_type mc --motif_path “flex_helices,twoway,flex_helices,atp_aptamer,flex_helices,twoway,flex_helices,twoway,flex_helices” --extra_pdbs inputs/atp_aptamer.pdb 中,将ATP适配体纳入设计,为构建具有特定功能的RNA结构提供了可能。
  • 大型天然RNA系统中的应用 :RNAMake还能在大型天然RNA系统如大肠杆菌核糖体中发挥作用。通过 design_rna_scaffold --pdb inputs/ribosome.pdb --start_bp B1449 - B1454 --end_bp C1447 - C1464 --only_tether_opt 命令,可在核糖体的不同亚基之间构建RNA片段,形成连接的核糖体,这对于研究核糖体的结构和功能具有重要意义。

以下是一个简单的mermaid流程图,展示RNAMake在不同场景下的设计流程:

graph LR
    A[选择设计场景] --> B{小型RNA结构设计}
    A --> C{复杂RNA结构设计}
    A --> D{大型天然RNA系统设计}
    B --> E[使用经典路径搜索算法]
    C --> F[使用蒙特卡罗搜索方法]
    D --> G[考虑大型系统特点进行设计]
    E --> H[生成RNA片段]
    F --> H
    G --> H
3.2 RNA - Puzzles工具包在评估中的作用

在评估RNA三维结构预测方法时,RNA - Puzzles工具包提供了全面的解决方案。传统的RMSD指标存在局限性,而RNA特定的比较指标如INF、DP和P值等,能够更准确地评估预测结构与参考结构之间的相似性。
- INF的应用 :通过计算参考结构和预测结构相互作用之间的马修斯相关系数,INF可以评估相互作用预测的准确性。例如,在比较两个RNA结构时,通过统计沃森 - 克里克相互作用、非沃森 - 克里克相互作用和碱基堆积的一致性,可以得到一个反映预测准确性的数值。
- DP的应用 :DP使用二维距离矩阵和热图来直观展示预测结构和参考结构之间的平均距离。热图中的颜色变化可以帮助研究人员快速识别结构之间的局部相似性,从而发现预测结构中的可能误差区域。
- P值的应用 :P值用于平衡序列长度对RMSD的影响,使得在比较不同长度的RNA结构时,能够更公平地评估预测方法的性能。

以下是一个表格,总结RNA - Puzzles工具包中不同比较指标的特点:
| 指标 | 特点 | 作用 |
| ---- | ---- | ---- |
| INF | 基于相互作用的马修斯相关系数 | 评估相互作用预测的准确性 |
| DP | 二维距离矩阵和热图表示 | 直观展示结构之间的平均距离和局部相似性 |
| P值 | 平衡序列长度对RMSD的影响 | 公平评估不同长度RNA结构的预测性能 |

4. 总结与展望
4.1 总结

RNAMake和RNA - Puzzles工具包在RNA三维结构的设计和比较方面提供了强大的功能。RNAMake通过其丰富的搜索算法和灵活的设计选项,能够满足不同场景下的RNA结构设计需求,从简单的小型RNA到复杂的大型天然RNA系统。而RNA - Puzzles工具包则提供了一系列针对RNA结构特点的比较指标,弥补了传统RMSD指标的不足,使得RNA三维结构预测方法的评估更加准确和全面。

4.2 展望

随着RNA研究的不断深入,对于RNA三维结构设计和比较的需求也将不断增加。未来,RNAMake可能会进一步优化其算法,提高设计效率和准确性,同时支持更多类型的RNA结构设计。RNA - Puzzles工具包也可能会开发更多新颖的比较指标,以适应不断发展的RNA结构预测技术。此外,将RNAMake和RNA - Puzzles工具包与其他生物技术相结合,如基因编辑和药物设计,有望为解决生物医学领域的实际问题提供新的思路和方法。

总之,RNAMake和RNA - Puzzles工具包为RNA研究提供了重要的技术支持,未来它们将在推动RNA科学发展中发挥更大的作用。

已经博主授权,源码转载自 https://pan.quark.cn/s/a4b39357ea24 QueueForMcu 基于单片机实现的队列功能模块,主要用于8位、16位、32位非运行RTOS的单片机应用,兼容大多数单片机平台。 开源代码:https://.com/xiaoxinpro/QueueForMcu 一、特性 动态创建队列对象 动态设置队列数据缓冲区 静态指定队列元素数据长度 采用值传递的方式保存队列数据 二、快速使用 三、配置说明 目前QueueForMcu只有一个静态配置项,具体如下: 在文件 中有一个宏定义 用于指定队列元素的数据长度,默认是 ,可以根据需要更改为其他数据类型。 四、数据结构 队列的数据结构为 用于保存队列的状态,源码如下: 其中 为配置项中自定义的数据类型。 五、创建队列 1、创建队列缓存 由于我们采用值传递的方式保存队列数据,因此我们在创建队列前要手动创建一个队列缓存区,用于存放队列数据。 以上代码即创建一个大小为 的队列缓存区。 2、创建队列结构 接下来使用 创建队列结构,用于保存队列的状态: 3、初始化队列 准备好队列缓存和队列结构后调用 函数来创建队列,该函数原型如下: 参数说明: 参考代码: 六、压入队列 1、单数据压入 将数据压入队列尾部使用 函数,该函数原型如下: 参数说明: 返回值说明: 该函数会返回一个 枚举数据类型,返回值会根据队列状态返回以下几个值: 参考代码: 2、多数据压入 若需要将多个数据(数组)压入队列可以使用 函数,原理上循环调用 函数来实现的,函数原型如下: 参数说明: 当数组长度大于队列剩余长度时,数组多余的数据将被忽略。 返回值说明: 该函数将返回实际被压入到队列中的数据长度。 当队列中的剩余长度富余...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值