如何将短肽序列(氨基酸单字母缩写样式)转换成Smiles格式(资源汇总)

方法1(在线)

PepSMI: Convert Peptide to SMILES string

(纽普生物开发的一款在线工具)
https://www.novoprolabs.com/tools/convert-peptide-to-smiles-string

方法2(在线)

Dendrimer Builder(支持分支结构、N端和C端修饰、特殊氨基酸等)
https://dendrimerbuilder.gdb.tools/

方法3(在线)

利用BIOPEP-UWM网站 https://biochemia.uwm.edu.pl/en/biopep-uwm-2/
从任意一个数据检索界面进去后点击ANALYSIS按钮,然后选择"SMILES"按钮即可打开在线转换页面

方法4(本地)

OpenBabel
GUI模式:必须勾选 'Display in firefox'
                     或 "the option of join all input molecules into a single output molecule"  选项
    才可转成正确的格式,否则输出的smiles文件中只有原子组成是对的,而无任何准确的结构信息

命令行模式:要加“-j”选项,如:

obabel ifata input. fsa - j - osmi - O output. smi

方法5(本地)

借助ChemDrawChemSketch等化学绘图软件,依据肽序列直接转换成二维结构式输出,详见B站视频——

Chemdraw 10秒搞定多肽结构式 这次真的,绝对,是高清的!!!_哔哩哔哩_bilibili

Chemdraw氨基酸、多肽绘制及3D结构转化_哔哩哔哩_bilibili

补充提示:上述视频中仅简单介绍了从肽序列生成结构式的操作,即——

而要从二维结构式再得到Smiles的方式一般为:选中结构式后→右键→Molecule→Copy As→SMILES,然后粘贴在某个文字处理工具(如记事本或word中)即可。

如果要直接显示在ChemDraw视图中,需要先点击左边工具栏中的“A“按钮切换到文本编辑模式,然后在打开的文本框中粘贴。

可参看以下优酷视频,其中第一个老外讲的视频比较糊:

使用ChemDraw将化学结构式转换成SMILES和InChI strings

利用Chemdraw产生SMILES及chemdraw中选择结构的方法


:以上所有方法均不支持批量转换
——————————————

方法6(本地)

利用pythonRDKit
Compute a mol from a fasta using Chem.MolFromFASTA
Convert the mol into SMILES using Chem.MolToSmiles.
Example:

>>>conda install -c rdkit rdkit
>>>from rdkit import Chem
>>>Chem.MolToSmiles(Chem.MolFromFASTA('AE'))
'N[C@H](C(=O)N[C@H](C(=O)O)CCC(=O)O)C'

说明:因Smiles有多种不同的呈现形式(如canonical,restricted radom atom order,unrestricted radom atom order,Universal or Inchified,aromatic or Kekule,isomeric,allHsExplicit等),同一个分子经不同工具或不同处理参数转换后的样式可能有所不同,如以下两个和上面的实际均为丙氨酸(Alanine,A)和谷氨酸(Glutamate,E)组成的丙谷二肽(AE),有的手性有区别。
N[C@@]([H])(C)C(=O)N[C@@]([H])(CCC(=O)O)C(=O)O
C[C@H](N)C(=O)N[C@@H](CCC(=O)O)C(=O)O

参见:
https://blog.csdn.net/u012325865/article/details/111975800
https://blog.csdn.net/weixin_60737527/article/details/126083902

批量读取smi和输出smi可以借助python实现,参见 https://www.jianshu.com/p/c0df2942d8d1
但不支持从蛋白或核酸的序列文件中批量读取
因为——
Chem.MolFromSequence

Chem.MolFromFASTA
等命令只支持字符串str,不支持从文件读取

只有Chem.SmilesMolSupplier语句可以读取包含多个smiles的文件(制表格分隔样式的txt),但没有类似“Chem.SequenceMolSupplier”的命令

————————

方法7(本地)

利用R包Peptides中的smilesStrings.R
安装包:

# Install the Peptides package if it's not already installed
if (!require("Peptides")) {
    install.packages("Peptides")
}

加载包:

library(Peptides)

基本用法:

aaSMILES(seq)

如:

aaSMILES("AA")
# [1] "N[C@]([H])(C)C(=O)N[C@]([H])(C)C(=O)O"
aaSMILES(c("AA", "GG"))
# [1] "N[C@]([H])(C)C(=O)N[C@]([H])(C)C(=O)O" "NCC(=O)NCC(=O)O"

此方法也只支持直接读取序列本身,不支持从文件中读取,输出结果可以包含多个smiles,但无法导出到文件

参见:https://rdrr.io/github/dosorio/Peptides/man/aaSMILES.html
在线运行:https://rdrr.io/cran/Peptides/src/R/smilesStrings.R

————

方法8(本地)

借助Discovery Studio实现,具体步骤是先根据序列生成sdf文件,再转成smiles格式,详见以下B站视频——

Discovery Studio-使用DS软件批量构建多肽_哔哩哔哩_bilibili

使用Discovery Studio批量将Sdf转为Smiles和Chemdraw_哔哩哔哩_bilibili

但DS里也只能一个个点击处理,要想批量必须借助BIOVIA 的另外一款产品Pipeline Pilot才行(windows下安装单机版DS后默认只有PP的server端,需要依据自带的server主页面(Server Home Page)里提供的教程,打开下载并安装PP的cilent端,然后设置连接server端才可正常使用)

BIOVIA 科学软件产品组合

参见:创腾出品 | Pipeline Pilot在药物筛选设计中的应用(一)_哔哩哔哩_bilibili

--------------------------------------------------------------------------------------------------------------------

小结:根据以上不完全整理,最接近于实现批量处理效果的是最后两种方法,但方法七仍无法从文件读取并输出到文件,方法八需要收费的商业软件。

期待:不知哪位大神感兴趣,能否研究下从文件中批量读取肽序列,并批量转成SMILES格式保存为文件?如果搞一个简单好用的开源小工具实现上述功能就方便了......

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值