我想用python提取Vina对接文件中的REMARK VINA RESULT: -7.845 0.000 0.000 REMARK INTER + INTRA: -10.237这两个数据
时间: 2024-02-14 18:25:14 浏览: 115
数据分析处理 wine数据集
5星 · 资源好评率100%
要提取AutoDock Vina对接文件中的对接分数和互相作用能,请使用以下示例代码:
```python
def extract_scores(filename):
dock_scores = []
inter_intra_scores = []
with open(filename, 'r') as file:
for line in file:
if line.startswith('REMARK VINA RESULT:'):
parts = line.split()
dock_score = float(parts[3])
dock_scores.append(dock_score)
elif line.startswith('REMARK INTER + INTRA:'):
parts = line.split()
inter_intra_score = float(parts[3])
inter_intra_scores.append(inter_intra_score)
return dock_scores, inter_intra_scores
# 提取对接分数和互相作用能
dock_scores, inter_intra_scores = extract_scores('output.pdbqt')
# 打印对接分数
for i, score in enumerate(dock_scores):
print(f'Docking score for ligand {i+1}: {score}')
# 打印互相作用能
for i, score in enumerate(inter_intra_scores):
print(f'Inter + Intra score for ligand {i+1}: {score}')
```
在上面的代码中,我们定义了一个`extract_scores`函数来提取对接分数和互相作用能。它打开文件并逐行读取,当遇到以`REMARK VINA RESULT:`开头的行时,提取对接分数,当遇到以`REMARK INTER + INTRA:`开头的行时,提取互相作用能。然后将它们分别添加到`dock_scores`和`inter_intra_scores`列表中。
你可以调用`extract_scores`函数并传递AutoDock Vina输出文件的路径(例如`output.pdbqt`),然后得到两个包含对接分数和互相作用能的列表。接下来,你可以根据需要进一步处理和使用这些数据。
希望这可以帮助你提取所需的数据。如果你有任何其他问题,请随时提问!
阅读全文