《Journal of Chemical Information and Modeling》:CCD2MD: A Suite of Packages for Preparing Co-Folded Outputs for Molecular Dynamics Simulations
编辑推荐:
介绍CCD2MD工具,该工具将共折叠方法生成的蛋白质-脂质复合物结构转换为GROMACS兼容的原子和粗粒度模型,支持膜嵌入及用户自定义CCD代码,解决 chirality问题并扩展至其他生物大分子。
蛋白质与脂质之间的相互作用在膜蛋白的稳定性和功能中扮演着至关重要的角色。随着实验手段在天然膜环境条件下研究这些相互作用的难度不断增加,计算方法为识别和分析潜在结合位点提供了强有力的支持。近年来,共折叠技术的进步使得预测完整蛋白结构成为可能,这种技术能够捕捉脂质结合后可能发生的构象变化,从而显著提高结合位点的预测准确性。然而,这些方法的输出通常需要后续处理,以确保与常用的分子动力学(MD)力场兼容。为此,我们开发了CCD2MD,这是一个模块化的工具包,旨在将共折叠的输出转换为适合GROMACS模拟的系统。CCD2MD支持原子级和粗粒化表示,且可以包含或不包含膜嵌入,使其不仅适用于蛋白质-脂质系统,还能够轻松适应其他共折叠的生物分子组装,包括与核酸、小分子、碳水化合物或金属离子的复合物,从而实现多种尺度的模拟设置。
蛋白质与小分子配体的相互作用是许多生物过程的核心,尤其是脂质结合可以调节和影响膜蛋白的功能。某些抗菌药物的效力来源于其破坏蛋白质-配体相互作用的能力。因此,计算方法在研究和表征这些相互作用方面具有重要价值,特别是在实验数据有限的情况下。在硅基方法中,可以评估结合模式的稳定性,并提供动态视角,从而支持潜在配体的虚拟筛选。分子动力学模拟是常用的方法之一,可以提供蛋白质灵活性和运动的详细信息。这些模拟可以基于完全原子(全原子,AA)或粗粒化(CG)表示进行。然而,模拟的可靠性高度依赖于初始结构的质量,因为蛋白质在结合配体后可能会发生构象变化。将配体对接到无配体(apo)状态或错误的有配体(holo)构象可能会导致较差的结合构型,从而使得分子模型和后续模拟无法准确反映复合物的真实动态。
共折叠程序,如RosettaFold All-Atom、AlphaFold3、Chai-1、Boltz-1和Protenix,可以生成配体结合的蛋白质结构,其中配体可以以CCD代码或SMILES字符串的形式表示。这些方法在再现已知的蛋白质-配体复合物方面显示出令人鼓舞的准确性,标志着在预测任意结合状态方面的重要进展。然而,无论是在软件包还是分子表示中,手性问题仍然普遍存在,这可能归因于训练数据对相反手性配体的偏好。尽管SMILES字符串提供了更大的灵活性,但CCD代码虽然在范围上较为有限,但通常能更好地保留分子的手性信息。此外,CCD代码还提供了在不同平台之间一致和唯一的表示。将用户自定义的CCD代码集成到AlphaFold3(AF3)的分布中,使得这些优势能够扩展到任意分子,从而提升共折叠蛋白质-配体模型的准确性和互操作性。
尽管存在手性问题,共折叠方法仍然是研究蛋白质-配体相互作用的强大工具,例如最近的一项研究显示其可用于解释冷冻电镜图谱,以及指导对蛋白质-糖相互作用的探索。然而,这些结构在用于分子模拟之前通常需要大量的后处理工作。一个常见的挑战是配体表示之间的不匹配:共折叠输出中的CCD代码可能与力场(如CHARMM)中的命名约定或原子顺序不一致。这一问题在使用SMILES字符串时尤为复杂,因为不同的字符串描述同一分子可能会导致不同的原子顺序,从而与力场定义不符。因此,将共折叠输出转换为模拟就绪系统通常需要使用工具如CHARMM-GUI生成新的力场文件,或手动重新组织和重命名原子;这两种方法都可能耗时且容易出错。
为了解决这些问题,我们推出了CCD2MD工具包,它是一个模块化的工具集,旨在将共折叠输出转换为适合GROMACS的模拟系统。CCD2MD包括多个组件:pos2cif、ccd2at和ccd2cg,以及用于完整性的at2ccd、at2cg和at2mem。这些工具可以自动化地将共折叠的蛋白质-配体结构转换为与CHARMM36和Martini 3力场兼容的格式。此外,该工具包还包括基于MemPrO的膜插入流程,使得蛋白质及其翻译后修饰或结合的配体可以被嵌入到脂质双分子层中,以进一步进行模拟。如图1所示,该工作流程包括ccd2at、ccd2cg和pos2cif三种工具,分别用于不同类型的转换。
对于那些在CCD2MD数据库中存在的分子,ccd2at或ccd2cg可以将它们的输出转换为CHARMM或Martini格式。此外,用户也可以通过自定义SMILES字符串来设置这些转换。具体的转换过程在支持信息中有所描述。CCD2MD.cif文件中包含了所有分子的用户自定义CCD代码,这些代码与CHARMM的命名和顺序相匹配。pos2cif工具可以生成.cif文件(包含用户CCD映射)和一个.json文件,用于输入到AF3中,以处理任意数量的指定配体,前提是提供了配体名称和位置文件。可选地,还可以通过.itp、.rtf或.rtp文件提供键合信息,以更准确地确定电荷和共价相互作用。如果没有提供这些信息,键合信息将通过原子间的距离进行推断,使用硬截止距离来判断两个原子是否足够接近以形成键。键的类型和芳香性对于AF3是必需的,但不会用于生成模型,因此设置为单键且非芳香性,不会影响功能。单链单残基配体可以通过添加类似“-r/–rename
”的标志来重命名,其中是位置和键合文件中的配体名称,是所需的输出名称。
对于共价键合的配体,pos2cif可以通过.mol2文件(包含位置和键合信息)或一个由.pdb和.itp文件组成的对进行输入。与单链单残基配体不同,每个分子的文件对必须按照.pdb后接.itp的顺序排列。对于所有文件类型,只能存在一个共价键合的配体。如果共价键合的配体有多个相同的组件,将使用第一个实例的坐标作为理想坐标。电荷和键的类型将按照上述方式分配,但这些配体的名称不能通过-r/–rename标志进行更改。
pos2cif的使用方法如下:
pos2cif [-n ··· -f ···]
[-r ( < new>) ...]
[-c (( < itp>) | < mol2>) ...]
[-e < charge>] [-b < bond>] [-H]
[-j < json>] [-t < title>] [-A < afvers>]
[-s < seed>···] [-d < dialect>]
[-p ( | ( )) ...]
其中,-n/--names指定了要转换的配体代码,如输入文件中所列;-f/--files列出了包含配体位置和键合信息的输入文件(.crd、.itp、.mol2、.pdb、.rtf、.rtp);-r/--rename用于重命名配体,是输入文件中的配体名称,是所需的输出名称;-c/--covalent用于添加共价键合的配体,通过.mol2文件或.pdb和.itp文件对进行输入;-e/--charge设置了在CIF文件中对部分电荷进行四舍五入的阈值(默认为0.75 e);-b/--bond定义了用于从位置数据生成键的距离截止(默认为1.4 ?),仅在未提供键合信息时使用;-H/--Hydrogen输出氢原子和键合信息;-j/--json指定了AF3输入.json文件的名称(默认为output.json),同时生成单个配体的CIF文件(NAME_output.cif);-d/--dialect设置了.json文件的格式(默认为alphafold3);-A/--afvers指定了AlphaFold的版本(默认为2);-t/--title设置了AF3使用的系统名称(默认为pos2cif_system);-s/--seeds指定了模型种子(默认为1);-p/--protein用于添加蛋白质序列,通过FASTA序列进行输入。对于N个拷贝,用户可以传递N个FASTA序列,一个FASTA序列后接N,或者FASTA序列与数字的组合。
AF3输出中包含的userCCD代码可以与传统的CCD代码一起使用。根据系统组件的不同,生成的模型可以通过ccd2at、at2mem、at2cg或ccd2cg进行后处理。通过定义一个“用户”映射,将userCCD代码链接到CHARMM兼容的原子名称,可以实现这种转换。用户应避免通过-M标志传递二级结构偏置信息,因为这超出了当前实现的范围。此外,当存在翻译后修饰(PTMs)时,内部默认是将-resid input传递给Martinize2,除非用户显式提供了-resid mol。
在粗粒化(CG)表示的转换方面,CCD2MD包括映射文件,如CHL1_CG.txt,用于定义Martini珠和其对应的原子。这些原子通过CHARMM名称进行引用,当适用时也包括CCD和SMILES原子名称。配体可以直接从共折叠的CCD输出转换为CG格式,通过将珠放置在其组成原子的质心,排除氢原子(因为共折叠输出中通常不含氢原子)。虽然氢原子的缺失可能略微影响珠的位置,但经过能量最小化后,这种影响预计将是微不足道的。
对于包含翻译后修饰的蛋白质转换,CCD2MD通过Martinize2进行处理,并允许用户传递自定义参数。系统拓扑(topol.top)和所有相关的.itp文件将被写入输出目录。这种方法可以扩展到其他CG力场,前提是存在合适的映射文件。尽管Martinize2支持非蛋白质成分,但它通常需要自定义库和映射文件。CCD2MD通过包括预定义的映射文件来绕过这一限制。配体以无链信息的方式输出。对于原子级系统,如果输入是.cif文件,Martinize2版本0.14.0可以直接处理,前提是安装了PyCifRW包。否则,会生成一个中间文件(OUTPUTNAME_convert.pdb)用于蛋白质转换。CG蛋白质及其拓扑结构将被写入为OUTPUTNAME_proteinCG.pdb和OUTPUTNAME_proteinCG.top,分别对应蛋白质和拓扑文件。完整的系统将保存在OUTPUTNAME.pdb中。虽然中间文件被放置在输出目录中,但Martinize2和MemPrO生成的拓扑和.itp文件仍保留在工作目录中。
对于需要嵌入膜的原子级系统,我们使用at2mem工具。其使用方式与上述类似,但-mem标志仅用于传递膜组成,可以省略。例如,通过添加-mem标志来启动膜嵌入,同时可以指定膜组成、浓度和MemPrO的参数。对于原子级系统,CG输出将通过CG2AT-CCD2MD转换回原子级,这是一种修改后的CG2AT工具,包含在CCD2MD的GitHub分布中。由于CG到AA的转换,可能会在原始共折叠输出和膜嵌入结构之间出现轻微的配体定位差异。
CCD2MD的依赖项包括从GitHub下载的Python 3环境,以及NumPy和Pandas这两个广泛使用的开源库,它们均采用宽松的许可协议。对于原子级转换,需要GROMACS;对于粗粒化转换和膜嵌入,则需要Martinize2。为了直接使用CIF文件,需要Martinize2版本0.14.0和PyCifRW包。对于膜嵌入,还需要MemPrO和CG2AT-CCD2MD,它们均在CCD2MD的GitHub仓库中提供。
蛋白质与脂质的结合可以显著影响蛋白质的行为。然而,许多膜蛋白含有功能尚不明确的脂质结合位点。因此,研究这些相互作用是拓展我们对膜蛋白功能理解的一个有前景的方向。共折叠技术在预测配体结合的蛋白质结构方面代表了重大进展,而CCD2MD则通过提供一个可扩展的、开源的工具包,将共折叠输出转换为模拟就绪的系统。尽管本研究中展示的配体数据库主要集中在蛋白质-脂质模型和使用CHARMM与Martini力场的模拟上,但其方法可以推广到其他配体和力场。CCD2MD还支持用户自定义的SMILES字符串,使得在不同共折叠平台之间实现兼容性成为可能,而无需手动重命名配体输出。我们鼓励用户将与自身研究相关的配体纳入该框架中。虽然CCD2MD中的大多数配体是脂质,但我们强调,通过创建用户CCD代码和额外映射(见支持信息),该技术可以应用于任何通用配体,包括核酸、金属离子以及更广泛的小分子。我们欢迎用户将有用的地图贡献给社区,这些地图的创建方式与SMILES字符串类似(见支持信息)。
尽管共折叠技术具有显著优势,但它们并非没有局限性。手性问题,尤其是在配体表示中,是普遍存在的,即使使用CCD代码也难以完全避免。虽然转换到CG表示并回转到原子级可以缓解这些问题,但可能会引入原子位置的微小偏移。改变使用的共折叠程序也可能提高结果质量——我们注意到ABCFold的存在,它允许用户轻松比较AF3、Boltz-1和Chai-1的输出结果,这些程序均基于相同的多序列比对。尽管CCD2MD可以将这些共折叠程序的输出转换为CCD代码,但在使用SMILES字符串时可能存在限制(见支持信息)。
未来的发展计划包括定义用于典型膜组成的标志、创建直接模拟输出的流程,以及通过PyPI分发CCD2MD以简化安装和集成。我们还打算扩展该工具包,使其能够支持更多力场,以满足生物分子模拟社区的需求。不过,我们强调,通过pos2cif工具使用用户自定义的CCD代码,可以轻松适应替代的原子级力场。