📜  高斯坐标到 pdb - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:12:55.913000             🧑  作者: Mango

高斯坐标到 PDB - Shell/Bash

有时候在化学模拟软件中或者从分子动力学模拟中需要将高斯坐标转换为PDB格式,这样才能将分子导入到其他软件中。在本文中,将介绍如何使用Shell/Bash脚本将高斯坐标转换为PDB格式。

前提条件

在开始转换之前,我们需要确保在我们的计算机上安装了脚本所需的软件。这些软件包括:

  • sed:用于文本处理
  • awk:用于文本处理
  • ChemShell:用于读取高斯文件
脚本

下面是一个将高斯坐标转换为PDB的Shell脚本。请将以下代码复制并粘贴到您的Shell终端中,然后按Enter键运行。

#!/bin/sh

if [ $# -ne 1 ]; then
  echo "Usage: $0 <gaussian_file>"
  exit 1
fi

gaussian_file=$1
mol_name=`echo $gaussian_file | awk -F"." '{print $1}'`

echo "REMARK $mol_name" > $mol_name.pdb

natoms=`grep -w "NAtoms=" ${gaussian_file} | awk '{print $2}'`
atom_lines=`grep -B${natoms} AtmWgt ${gaussian_file}`
x_lines=`grep -A${natoms} -w "Standard orientation:" ${gaussian_file} | tail -n ${natoms} | awk '{printf "%12.6f   ", $4}'`
y_lines=`grep -A${natoms} -w "Standard orientation:" ${gaussian_file} | tail -n ${natoms} | awk '{printf "%12.6f   ", $5}'`
z_lines=`grep -A${natoms} -w "Standard orientation:" ${gaussian_file} | tail -n ${natoms} | awk '{printf "%12.6f   ", $6}'`

for i in `seq 1 ${natoms}`; do
  atom_line=`echo "${atom_lines}" | sed -n "${i}p" | awk '{printf "%-5s%4d%5s ", $1, $2, $4}'`
  coord_line="${x_lines}${y_lines}${z_lines}"
  echo "${atom_line}${coord_line}" | sed 's/[[:space:]]\{1,\}/ /g' >> $mol_name.pdb
done

echo "TER" >> $mol_name.pdb

这个脚本将给出高斯文件作为参数。它将提取分子的原子数和坐标,然后将它们格式化为PDB格式。

运行示例

假设我们有一个名为“methane.gjf”的高斯文件,其中包含丁烷分子的坐标。下面是如何将其转换为PDB格式。

$ ./gaussian_to_pdb.sh methane.gjf

这将生成一个名为methane.pdb的新文件,其中包含丁烷的坐标。您可以使用任何PDB阅读器来查看和编辑这个文件,例如VMD或Chimera。

总结

使用这个简单的Shell脚本,我们可以将高斯坐标文件转换为PDB格式。这样,我们就能将文件导入到其他化学模拟软件中,例如VMD、Chimera和PyMOL。