怎么把txt文件转换为smi文件
时间: 2023-12-18 18:03:32 浏览: 199
要将txt文件转换为smi文件,您需要使用特定的软件。以下是将txt文件转换为smi文件的步骤:
1. 下载并安装“Subtitle Workshop”软件,该软件是一款流行的字幕编辑器,可免费下载。
2. 打开“Subtitle Workshop”软件,并选择“File”菜单中的“New Subtitle”选项。
3. 在弹出的窗口中,选择“Text Subtitle”作为文件类型,并单击“OK”按钮。
4. 在“Subtitle1”窗口中,将txt文件的内容复制并粘贴到窗口中。
5. 在“Subtitle1”窗口中,选择“File”菜单中的“Save As”选项。
6. 在弹出的窗口中,选择“SAMI Captioning”作为文件类型,并为文件命名。
7. 单击“Save”按钮,以将txt文件转换为smi文件。
完成上述步骤后,您将成功将txt文件转换为smi文件。
相关问题
# coding=utf-8 from rdkit import Chem import pandas as pd # 读取CSV文件 data = pd.read_csv('dataSetA.csv') # 提取SMILES列 smiles = data['rxn_Smiles'] # 遍历每个SMILES字符串并打印 rxn_SMILES for smi in smiles: print(smi) mol = Chem.MolFromSmiles(smi) if mol is not None: Chem.Draw.MolToMPL(mol) # 在Matplotlib中绘制结构式
你的代码看起来是用于读取 CSV 文件中的 rxn_Smiles 列,并使用 RDKit 库将其转换为 RDKit 分子对象,并在 Matplotlib 中绘制结构式。这是一个基本的流程,但请确保你已经正确导入了所需的模块和库,并且已经正确安装了 RDKit 和 Matplotlib。
如果你遇到了问题或错误,可以提供具体的错误信息,这样我可以更好地帮助你解决问题。
# coding=utf-8 #加载化学库 from rdkit import Chem from rdkit.Chem import Draw from rdkit.Chem import AllChem import pandas as pd import os import csv # 读取 CSV 文件 data = pd.read_csv('dataSetB.csv') # 提取 rxn_smiles 列 # 获取每一列的数据 smiles_mapping_namerxn = data['rxnSmiles_Mapping_NameRxn'] smiles_mapping_indigotk = data['rxnSmiles_Mapping_IndigoTK'] smiles_indigoautomapperknime = data['rxnSmiles_IndigoAutoMapperKNIME'] # 创建目录 os.makedirs('D:/1/', exist_ok=True) os.makedirs('D:/2/', exist_ok=True) os.makedirs('D:/3/', exist_ok=True) # 遍历每个 rxn_smiles 字符串并打印 #for i, smi in enumerate(smiles_mapping_namerxn): # print(smi) # rxn = chem.allchem.reactionfromsmarts(smi) # if rxn is not none: # # 绘制反应结构 # img = draw.reactiontoimage(rxn) # img.show() # img.save(f'd:/1/reaction_{i}.png') # else: # #当无法解析rxn_smiles时,使用print语句打印出相应的消息,并将无法解析的smi值作为附加信息一起打印。 # print("failed to parse rxn_smiles.", smi) #for i, smi in enumerate(smiles_mapping_indigotk): # print(smi) # rxn = Chem.AllChem.ReactionFromSmarts(smi) # if rxn is not None: # 绘制反应结构 # img = Draw.ReactionToImage(rxn) # img.save(f'D:/2/reaction_{i}.png') # else: # 当无法解析rxn_smiles时,使用print语句打印出相应的消息,并将无法解析的smi值作为附加信息一起打印。 # print("Failed to parse rxn_smiles.", smi) def new_func(smi): rxn = Chem.AllChem.ReactionFromSmarts(smi) return rxn #for i, smi in enumerate(smiles_indigoautomapperknime): # print(smi) # rxn = new_func(smi) # if rxn is not None: with open('your_file.csv', 'r') as file: reader = csv.reader(file) rows = list(reader) for row in rows[42154:]: # 绘制反应结构 img = Draw.ReactionToImage(rxn) img.save(f'D:/3/reaction_{i}.png') lines=lines+1 else: #当无法解析rxn_smiles时,使用print语句打印出相应的消息,并将无法解析的smi值作为附加信息一起打印。 print("Failed to parse rxn_smiles.", smi)什么地方错了。、
在你提供的代码中,有几个问题需要解决:
1. 在使用 `csv.reader()` 读取 CSV 文件之前,你需要将文件路径 `'your_file.csv'` 指定为实际的文件路径,或者确保该文件与代码在同一目录下。
2. 在处理每一行数据之前,你需要根据需要通过 `new_func()` 函数将 SMILES 转化为反应对象 `rxn`。
3. 在 `for` 循环中,你需要使用 `enumerate()` 函数来获取索引 `i` 和对应的行数据 `row`。
修改后的代码示例如下:
```python
from rdkit import Chem
from rdkit.Chem import Draw
import csv
def new_func(smi):
rxn = Chem.AllChem.ReactionFromSmarts(smi)
return rxn
with open('your_file.csv', 'r') as file:
reader = csv.reader(file)
rows = list(reader)
for i, row in enumerate(rows[42154:]):
smi = row[0] # 假设 SMILES 数据在第一列
print(smi)
rxn = new_func(smi)
if rxn is not None:
# 绘制反应结构
img = Draw.ReactionToImage(rxn)
img.save(f'D:/3/reaction_{i}.png')
else:
print("Failed to parse rxn_smiles.", smi)
```
请根据实际情况修改代码中的文件路径和数据列索引,以满足你的需求。另外,请确保相关的库已经正确安装。如果还有其他问题,请提供具体的错误信息,以便我可以更好地帮助你。
阅读全文