GROMACS,is a versatile package to perform molecular dynamics, i.e. simulate the Newtonian equations of motion for systems with hundreds to millions of particles.
It is primarily designed for biochemical molecules like proteins and lipids that have a lot of complicated bonded interactions, but since GROMACS is extremely fast at calculating the nonbonded interactions (that usually dominate simulations) many groups are also using it for research on non-biological systems, e.g. polymers.
GROMACS supports all the usual algorithms you expect from a modern molecular dynamics implementation, (check the online reference or manual for details), but there are also quite a few features that make it stand out from the competition:
GROMACS provides extremely high performance compared to all other programs. A lot of algorithmic optimizations have been introduced in the code; we have for instance extracted the calculation of the virial from the innermost loops over pairwise interactions, and we use our own software routines to calculate the inverse square root. The innermost loops are generated automatically in either C or Fortran at compile time, with optimizations adopted to your architecture. Assembly loops using SSE and 3DNow! multimedia instructions are provided for x86 processors, resulting in exceptional performance on inexpensive PC workstations. For Pentium IV processors there are even SSE2 double precision assembly loops, and on Power PC G4 and later processors we provide Altivec loops both for Linux and Mac OS X. Gromacs is normally 3-10 timesfaster than any other program; check the article in Journal of Molecular Modeling (reference can be found under resources) for a comparison benchmark.
GROMACS is user-friendly, with topologies and parameter files written in clear text format. There is a lot of consistency checking, and clear error messages are issued when something is wrong. Since the C preprocessor is used, you can have conditional parts in your topologies and include other files. You can even compress most files and GROMACS will automatically pipe them through gzip upon reading.
There is no scripting language - all programs use a simple interface with command line options for input and output files. You can always get help on the options by using the -h option, or use the extensive manuals provided free of charge in electronic or paper format. There is also an integrated graphical user interface available for all programs.
As the simulation is proceeding, GROMACS will continuously tell you how far it has come, and what time and date it expects to be finished.
Both run input files and trajectories are independent of hardware endian and can thus be read by any version GROMACS, even if it was compiled using a different floating-point precision. All files from GROMACS 2.0 can further be used in the new version 3!
GROMACS can write coordinates using lossy compression, which provides a very compact way of storing trajectory data. The accuracy can be selected by the user.
GROMACS comes with a large selection of flexible tools for trajectory analysis - you won't have to write any code to perform routine analyses. The output is further provided in the form of finished Xmgr/Grace graphs, with axis labels, legends, etc. already in place!
A basic trajectory viewer that only requires standard X libraries is included, and several external visualization tools can read the GROMACS file formats.
GROMACS can be run in parallel, using standard MPI communication.
GROMACS contains several state-of-the-art algorithms that make it possible to extend the time steps is simulations significantly, and thereby further enhance performance without sacrificing accuracy or detail.
The package includes a fully automated topology builder for proteins, even multimeric structures. Building blocks are available for the 20 standard aminoacid residues as well as some modified ones, the 4 nucleotide and 4 deoxinucleotide resides, several sugars and lipids, and some special groups like hemes and several small molecules.
There is ongoing development to extend GROMACS with interfaces both to Quantum Chemistry and Bioinformatics/databases.
GROMACS is Free Software, available under the GNU General Public License.
GROMACS是用於研究生物分子體系的分子動力學程式包。它可以用分子動力學、隨機動力學或者路徑積分方法模擬溶液或晶體中的任意分子,進行分子能量的最小化,分析構象等。它的模擬程式包包含GROMACS力場(蛋白質、核苷酸、糖等),研究的範圍可以包括玻璃和液晶、到聚合物、晶體和生物分子溶液。GROMACS是一個功能強大的分子動力學的模擬軟體,其在模擬大量分子系統的牛頓運動方面具有極大的優勢。
GROMACS支持幾乎所有當前流行的分子模擬軟體的算法,而且與同類軟體相比,它還具有一些特有的優勢:
(1) GROMACS進行了大量的算法的最佳化,使其計算功能更強大。例如:在計算矩陣的逆時,算法的內循環會根據自身系統的特點自動選擇由C語言或Fortran來編譯。GROMACS中對Altivec loops的計算,無論是在Linux還是MacOSX.系統上,它都要比其它軟體快3-10倍,而且GROMACS提高計算速度的同時也保證了計算精度。
(2) GROMACS具有友好的用戶界面,拓撲檔案和參數檔案都以文檔的形式給出。在程式運行過程中,並不用輸入腳本注釋語言。所有GROMACS的操作都是通過簡單的命令行操作進行的。而且運行的過程是分步的,隨時可以檢查模擬的正確性和可行性,可以減少時間上的浪費。
(3) GRMACS操作簡單,功能豐富,而且對於初學者來說易於上手。而且可以通過詳細的免費使用手冊,用戶可以得到更多的信息。
(4) 在模擬運行的過程中,GROMACS會不斷報告用戶程式的運算速度和進程。
(5) GROMACS具有良好的兼容性。輸入檔案和輸出的軌跡檔案的格式都是獨立於硬體的。
(6) GROMACS能通過二進制檔案來寫入坐標,這樣就提供了一個壓縮性很強的軌跡數據存儲方法,壓縮方式的精度可以由用戶來選擇。
(7) GROMACS還為軌跡分析提供了大量的輔助工具,用戶不必再為常規分析編寫任何程式。GROMACS還提供了軌跡的可視程式,而且許多可視化工具都可以顯示。
(8) GROMACS允許並行運算,使用標準的MPI通訊。
GROMACS的運行過程,主要由一系列的檔案和命令組成。GROMACS一般的模擬過程可以分成以下三個階段:
(1) 前處理過程:生成模擬對象的坐標檔案、拓撲結構檔案以及平衡參數及其外力作用參數等檔案。
(2) 模擬過程:首先要對系統進行能量最小化,避免結構的不合理而在模擬中出現錯誤;然後是對系統升溫過程,先給系統的各個原子以Boltzmen分布初速度,再模擬較短的時間以達到初步的平衡;最後進行真正的分子動力學模擬,即平衡過程。此過程一般時間步長為1fs,運行時間在ns量級,以保證模擬系統儘可能找到勢能的最低點。當然,對於其他的操作,如施加外力(模擬AFM加力)需要在平衡之後進行。在MD模擬的過程中,用戶可以運用配套的可視化軟體,如VMD等隨時觀測模擬的過程及系統的狀態。
(3) 後處理過程:MD模擬結束後,GROMACS會產生一系列檔案,如.pdo檔案(受力分析檔案)、.trr檔案(模擬過程結果檔案)、.edr檔案(能量檔案)等。同時,GROMACS本身還提供了多種分析程式,可以對這些檔案進行分析,可以得到分子體系的各種信息。
(1) 解壓縮fftw,lam-mpi,gromacs源碼
tar -zxvf fftw-3.1.2.tar.gz
tar –zxvf gromacs-3.3.1.tar.gz
tar -zxvf lam-7.1.3.tar.gz
(2) 編譯lam-mpi
cd lam-7.1.3 ./configure --prefix=/home/lam-7.1.3 --without-fc --with-rsh="ssh-x"
make
make install
註:--without-fc是不編譯mpif77,可以去掉
(3) 添加mpi環境變數
export PATH=$PATH:/home/lam-7.1.3/bin ( append to .bashrc)
(4) 編譯fftw單雙精度版
cd fftw-3.1.2
./configure --enable-float --enable-mpi --prefix=/home/fftw-3.1.2
make
make install
make distclean
./configure --disable-float --enable-mpi --prefix=/home/fftw-3.1.2
(3) 設定fftw環境變數
export CPPFLAGS=-I/home/fftw-3.1.2/include
export LDFLAGS=-L/home/fftw-3.1.2/lib
(4) 編譯gromacs
cd gromacs-3.3.1 ./configure --prefix=/home/gromacs-3.3.1 --enable-mpi
make
make install
make distclean
./configure --prefix=/home/gromacs-3.3.1 --program-suffix=_d --enable-mpi --disable-float
(5) 設定gromacs環境變數
export PATH=$PATH:/home/gromacs-3.3.1/bin ( append to .bashrc)
(6) 編譯gromacs源包里的其它檔案(可選)
make contrib 註:這步可以省去
update: gromacs-4.0,fftw-3.2.1,lam7.1.4與上面的方法完全相同,只需更換目錄即可。
Below is presented a generalised procedure for performing a simulation. The exact steps and processes involved will vary depending on exactly what is being attempted. Use as a general guide only!
1> Clearly identify the property / phenomena of interest to be studied by performing the simulation.
2>Select the appropriate tools to be able to perform the simulation and observe the property/phenomena of interest. It is important to read and familiarise yourself with publications by other researchers on similar systems. Tools include: - software to perform the simulation with, consideration of force field may influence this decision.- force field which describes how the atoms / particles within the system interact with each other. Select one that is appropriate for the system being studied and the property/phenomena of interest. Very important and non-trivial step!
3>Obtain/generate the initial coordinate file for each molecule to be placed within the system.
4>Generate the raw starting structure for the system by placing the molecules within the coordinate file as appropriate. Molecules may be specifically placed or arranged randomly.
5>Obtain/generate the topology file for the system, using (for example) pdb2gmx, PRODRG or your favourite text editor in concert with chapter 5 of the GROMACS Manual.
6>Describe a simulation box (e.g. using editconf) whose size is appropriate for the eventual density you would like, fill it with solvent (e.g. using genbox), and add any counter-ions needed to neutralize the system (e.g. using grompp and genion). In these steps you may need to edit your topology file to stay current with your coordinate file.
7>Run an energy minimisation simulation on the system (using grompp and mdrun). This is required to sort out any bad starting structures caused during generation of the system, which may cause the production simulation to crash.
8>Select the appropriate simulation parameters for the equilibration simulation (defined in .mdp file). You need to be consistent with how force field was derived. You may need to simulate at NVT with position restraints on your solvent and/or solute to get the T almost right, then relax to NPT to fix the density, then move further (if needed) to reach your production simulation ensemble (e.g. NVT, NVE).
9>Run the equilibration simulation for sufficient time so that the system relaxes sufficiently to allow the production run to be commenced (using grompp and mdrun, then g_energy and trajectory visualisation tools).
10>Select the appropriate simulation parameters for the production simulation (defined in .mdp file), in particular be careful not to re-generate the velocities. You still need to be consistent with how the force field was derived and how to measure the property / phenomena of interest.
11>Run the production simulation for sufficient time so that property / pheno-mena of interest can be observed in required detail (using grompp/tpbconv and mdrun).
12>Analyse / visualise the resulting trajectory and data files to obtain information on the property / phenomena of interest.