changeset 1:434ecf9668fa draft

Uploaded
author fmercuri
date Wed, 23 Jun 2021 19:03:23 +0000
parents e9350579a698
children caea32e429ce
files npt.xml
diffstat 1 files changed, 180 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/npt.xml	Wed Jun 23 19:03:23 2021 +0000
@@ -0,0 +1,180 @@
+<tool id="gmx_npt" name="GROMACS NPT equilibration" version="@VERSION@">
+    <description>- constant-temperature and -pressure equilibration of a system</description>
+    <macros>
+        <import>macros.xml</import>
+    </macros>
+
+    <expand macro="requirements" />
+
+    <command detect_errors="exit_code"><![CDATA[
+        #if $mdp.mdpfile == "custom":
+            ln -s '$mdp.mdp_input' ./npt.mdp &&
+        #end if
+        #if $mdp.mdpfile == "default":
+            ln -s '$npt' ./npt.mdp &&
+        #end if
+
+        ln -s '$gro_input' ./nvt.gro &&
+        ln -s '$cpt_input' ./nvt.cpt &&
+        ln -s '$top_input' ./top_input.top &&
+        ln -s '$itp_input' ./posres.itp &&
+
+        gmx grompp -f ./npt.mdp -c ./nvt.gro -r ./nvt.gro -t ./nvt.cpt -p ./top_input.top -o npt.tpr &>> verbose.txt &&
+        gmx mdrun -deffnm npt &>> verbose.txt
+
+        #if $str == 'pdb' or $str == 'both'
+            && gmx editconf -f npt.gro -o npt.pdb &>> verbose.txt
+        #end if
+
+    ]]></command>
+        <configfiles>
+            <!-- .mdp file for the gromacs simulation -->
+            <configfile name="npt">
+                #if $mdp.mdpfile == 'default':
+                    title    = NPT equilibration 
+                    define    = -DPOSRES  ; position restrain the protein
+                    ; Run parameters
+                    integrator  = $mdp.integrator    ; leap-frog integrator
+                    nsteps    = $mdp.md_steps    ; 2 * 50000 = 100 ps
+                    dt        = $mdp.step_length    ; 2 fs
+                    ; Output control
+                    nstxout    = $mdp.write_freq    ; save coordinates every 1.0 ps
+                    nstvout    = $mdp.write_freq    ; save velocities every 1.0 ps
+                    nstenergy  = $mdp.write_freq    ; save energies every 1.0 ps
+                    nstlog     = $mdp.write_freq    ; update log file every 1.0 ps
+                    nstxout-compressed  = $mdp.write_freq      ; save compressed coordinates every 10.0 ps
+
+                    ; Bond parameters
+                    continuation            = yes    ; Restarting after NVT 
+                    constraint_algorithm    = lincs      ; holonomic constraints 
+                    constraints             = $mdp.constraints  ; all bonds (even heavy atom-H bonds) constrained
+                    lincs_iter              = 1        ; accuracy of LINCS
+                    lincs_order             = 4        ; also related to accuracy
+                    ; Neighborsearching
+                    cutoff-scheme   = $mdp.cutoffscheme
+                    ns_type         = grid    ; search neighboring grid cells
+                    nstlist         = 10      ; 20 fs, largely irrelevant with Verlet scheme
+                    rcoulomb      = $mdp.rcoulomb    ; Short-range electrostatic cut-off
+                    rlist       = $mdp.rlist ; Cut-off distance for the short-range neighbor list.
+                    rvdw        = $mdp.rvdw    ; Short-range Van der Waals cut-off
+                    ; Electrostatics
+                    coulombtype      = $mdp.coulombtype    ; method for electrostatics calculations e.g. PME
+                    pme_order        = 4        ; cubic interpolation
+                    fourierspacing   = 0.16    ; grid spacing for FFT
+                    ; Temperature coupling is on
+                    tcoupl     = V-rescale              ; modified Berendsen thermostat
+                    tc-grps    = Protein Non-Protein  ; two coupling groups - more accurate
+                    tau_t      = 0.1    0.1          ; time constant, in ps
+                    ref_t      = $mdp.temperature $mdp.temperature    ; reference temperature, one for each group, in K
+                    ; Pressure coupling is on
+                    pcoupl            = Parrinello-Rahman      ; Pressure coupling on in NPT
+                    pcoupltype        = isotropic              ; uniform scaling of box vectors
+                    tau_p             = 2.0                ; time constant, in ps
+                    ref_p             = $mdp.refp          ; reference pressure, in bar
+                    compressibility   = 4.5e-5              ; isothermal compressibility of water, bar^-1
+                    refcoord_scaling  = com
+                    ; Periodic boundary conditions
+                    pbc    = xyz    ; 3-D PBC
+                    ; Dispersion correction
+                    DispCorr  = EnerPres  ; account for cut-off vdW scheme
+                    ; Velocity generation
+                    gen_vel    = no    ; Velocity generation is off
+                #end if
+            </configfile>
+
+        </configfiles>
+    <inputs>
+        <param argument="gro_input" type="data" format='gro' label="GRO structure file."/>
+        <param argument="top_input" type="data" format='top' label="Topology (TOP) file."/>
+        <param argument="cpt_input" type="data" format='cpt' label="Checkpoint (CPT) file from NVT run."/>
+        <param argument="itp_input" type="data" format='itp' label="Position restraint file."/>
+        
+        <expand macro="md_inputs"/>
+    </inputs>
+    <outputs>
+        <data name="output1" format="gro" from_work_dir="npt.gro">
+            <filter>str == 'gro' or str == 'both'</filter>
+        </data>
+        <data name="output5" format="pdb" from_work_dir="npt.pdb">
+            <filter>str == 'pdb' or str == 'both'</filter>
+        </data>
+        <data name="output2" format="cpt" from_work_dir="npt.cpt"/>
+        <data name="output3" format="trr" from_work_dir="npt.trr">
+            <filter>traj == 'trr' or traj == 'both'</filter>
+        </data>
+        <data name="output4" format="xtc" from_work_dir="npt.xtc">
+            <filter>traj == 'xtc' or traj == 'both'</filter>
+        </data>
+        <data name="report" format="txt" from_work_dir="verbose.txt">
+            <filter>capture_log</filter>
+        </data>
+    </outputs>
+    
+    <tests>
+        <test>
+            <param name="gro_input" value="nvt.gro" />
+            <param name="top_input" value="topol_solv.top" />
+            <param name="cpt_input" value="nvt.cpt" />
+            <param name="itp_input" value="posres.itp" />
+            <param name="traj" value="xtc"/>
+            <param name="str" value="both"/>
+            
+            <expand macro="test_params"/>
+            
+            <output name="output1" file="npt.gro" ftype="gro" compare="sim_size"/>
+            <output name="output2" file="npt.cpt" ftype="cpt" compare="sim_size"/>
+            <output name="output4" file="npt.xtc" ftype="xtc" compare="sim_size"/>
+            <output name="output5" file="npt.pdb" ftype="pdb" compare="sim_size"/>
+        </test>
+        
+        <test>
+            <param name="gro_input" value="nvt.gro" />
+            <param name="top_input" value="topol_solv.top" />
+            <param name="cpt_input" value="nvt.cpt" />
+            <param name="itp_input" value="posres.itp" />
+            <param name="traj" value="xtc"/>
+            <param name="str" value="pdb"/>
+            
+            <expand macro="test_params"/>
+            
+            <output name="output2" file="npt.cpt" ftype="cpt" compare="sim_size"/>
+            <output name="output4" file="npt.xtc" ftype="xtc" compare="sim_size"/>
+            <output name="output5" file="npt.pdb" ftype="pdb" compare="sim_size"/>
+        </test>
+
+        <test>
+            <param name="gro_input" value="nvt.gro" />
+            <param name="top_input" value="topol_solv.top" />
+            <param name="cpt_input" value="nvt.cpt" />
+            <param name="itp_input" value="posres.itp" />
+            <param name="str" value="none"/>
+            <param name="traj" value="trr"/>
+            
+            <expand macro="test_params"/>
+            
+            <output name="output2" file="npt.cpt" ftype="cpt" compare="sim_size"/>
+            <output name="output3" file="npt.trr" ftype="trr" compare="sim_size"/>
+        </test>
+
+        <test>
+            <param name="gro_input" value="nvt.gro" />
+            <param name="top_input" value="topol_solv.top" />
+            <param name="cpt_input" value="nvt.cpt" />
+            <param name="itp_input" value="posres.itp" />
+            <param name="mdpfile" value="custom" />
+            <param name="mdp_input" value="npt.mdp" />
+            <param name="traj" value="none"/>
+            <param name="str" value="gro"/>
+            <output name="output1" file="npt.gro" ftype="gro" compare="sim_size"/>
+            <output name="output2" file="npt.cpt" ftype="cpt" compare="sim_size"/>
+        </test>
+    </tests>
+    <help><![CDATA[
+
+Upload GRO, TOP and ITP (position restraint) files for equilibration under an NPT ensemble, as well as the checkpoint (CPT) file from the NVT equilibration. To take advantage of all GROMACS features, upload an MDP file with simulation parameters. Otherwise, choose parameters through the Galaxy interface. See http://manual.gromacs.org/documentation/2018/user-guide/mdp-options.html for more information on the options.
+
+    ]]></help>
+
+        <expand macro="citations" />
+    
+    </tool>