方法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'
或 "join all input molecules into a single output molecule" 选项
才可转成正确的格式,否则输出的smiles文件中只有原子组成是对的,而无任何准确的结构信息
命令行模式:要加“-j”选项,如:
obabel ifata input. fsa - j - osmi - O output. smi
方法5(本地)
借助ChemDraw或ChemSketch等化学绘图软件,依据肽序列直接转换成二维结构式输出,详见B站视频——
Chemdraw 10秒搞定多肽结构式 这次真的,绝对,是高清的!!!_哔哩哔哩_bilibili
Chemdraw氨基酸、多肽绘制及3D结构转化_哔哩哔哩_bilibili
补充提示:上述视频中仅简单介绍了从肽序列生成结构式的操作,即——
而要从二维结构式再得到Smiles的方式一般为:选中结构式后→右键→Molecule→Copy As→SMILES,然后粘贴在某个文字处理工具(如记事本或word中)即可。
如果要直接显示在ChemDraw视图中,需要先点击左边工具栏中的“A“按钮切换到文本编辑模式,然后在打开的文本框中粘贴。
可参看以下优酷视频,其中第一个老外讲的视频比较糊:
使用ChemDraw将化学结构式转换成SMILES和InChI strings
利用Chemdraw产生SMILES及chemdraw中选择结构的方法
注:以上所有方法均不支持批量转换
——————————————
方法6(本地)
利用python的RDKit包
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端才可正常使用)
参见:创腾出品 | Pipeline Pilot在药物筛选设计中的应用(一)_哔哩哔哩_bilibili
--------------------------------------------------------------------------------------------------------------------
小结:根据以上不完全整理,最接近于实现批量处理效果的是最后两种方法,但方法七仍无法从文件读取并输出到文件,方法八需要收费的商业软件。
期待:不知哪位大神感兴趣,能否研究下从文件中批量读取肽序列,并批量转成SMILES格式保存为文件?如果搞一个简单好用的开源小工具实现上述功能就方便了......