view nvt.xml @ 3:6944c73fe6f9 draft default tip

Uploaded
author fmercuri
date Mon, 28 Jun 2021 10:24:56 +0000
parents c549135d400b
children
line wrap: on
line source

<tool id="gmx_nvt" name="GROMACS NVT equilibration daimoners' version" version="@VERSION@">
    <description>- constant-temperature and -volume 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' ./nvt.mdp &&
        #end if
        #if $mdp.mdpfile == "default":
            ln -s '$nvt' ./nvt.mdp &&
        #end if
        
        ln -s '$gro_input' ./em.gro &&
        ln -s '$top_input' ./top_input.top &&
        ln -s '$itp_input' ./posres.itp &&

        gmx grompp -f ./nvt.mdp -c ./em.gro -r ./em.gro -p ./top_input.top -o nvt.tpr -maxwarn 4 &>> verbose.txt &&
        gmx mdrun -deffnm nvt &>> verbose.txt
        
        #if $str == 'pdb' or $str == 'both'
            && gmx editconf -f nvt.gro -o nvt.pdb &>> verbose.txt
        #end if
    ]]></command>
        <configfiles>
            <!-- .mdp file for the gromacs simulation -->
            <configfile name="nvt">
                #if $mdp.mdpfile == 'default':
                    title    = NVT 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 n ps
                    nstvout     = $mdp.write_freq    ; save velocities every n ps
                    nstenergy   = $mdp.write_freq    ; save energies every n ps
                    nstlog      = $mdp.write_freq    ; update log file every n ps
                    nstxout-compressed  = $mdp.write_freq      ; save compressed coordinates every 10.0 ps
                    ; Bond parameters
                    continuation          = no    ; first dynamics run
                    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
                    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    = $mdp.sysname ; two coupling groups - more accurate
                    tau_t      = 0.1 ; time constant, in ps
                    ref_t      = $mdp.temperature; reference temperature, one for each group, in K
                    ; Pressure coupling is off
                    pcoupl    = no     ; no pressure coupling in NVT
                    ; Periodic boundary conditions
                    pbc    = xyz        ; 3-D PBC
                    ; Dispersion correction
                    DispCorr  = EnerPres  ; account for cut-off vdW scheme
                    ; Velocity generation
                    gen_vel    = yes    ; assign velocities from Maxwell distribution
                    gen_temp  = 300    ; temperature for Maxwell distribution
                    gen_seed  = -1    ; generate a random seed
                #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="itp_input" type="data" format='itp' label="Position restraint file."/>

        <expand macro="md_inputs"/>
    </inputs>
    <outputs>
        <data name="output1" format="gro" from_work_dir="nvt.gro">
            <filter>str == 'gro' or str == 'both'</filter>
        </data>
        <data name="output5" format="pdb" from_work_dir="nvt.pdb">
            <filter>str == 'pdb' or str == 'both'</filter>
        </data>
        <data name="output2" format="cpt" from_work_dir="nvt.cpt"/>
        <data name="output3" format="trr" from_work_dir="nvt.trr">
            <filter>traj == 'trr' or traj == 'both'</filter>
        </data>
        <data name="output4" format="xtc" from_work_dir="nvt.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="em.gro" />
            <param name="top_input" value="topol_solv.top" />
            <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="nvt.gro" ftype="gro" compare="sim_size"/>
            <output name="output2" file="nvt.cpt" ftype="cpt" compare="sim_size"/>
            <output name="output4" file="nvt.xtc" ftype="xtc" compare="sim_size"/>
            <output name="output5" file="nvt.pdb" ftype="pdb" compare="sim_size"/>
            
        </test>
        <test>
            <param name="gro_input" value="em.gro" />
            <param name="top_input" value="topol_solv.top" />
            <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="nvt.cpt" ftype="cpt" compare="sim_size"/>
            <output name="output4" file="nvt.xtc" ftype="xtc" compare="sim_size"/>
            <output name="output5" file="nvt.pdb" ftype="pdb" compare="sim_size"/>
    
        </test>
        <test>
            <param name="gro_input" value="em.gro" />
            <param name="top_input" value="topol_solv.top" />
            <param name="itp_input" value="posres.itp" />
            <param name="str" value="gro"/>
            <param name="traj" value="trr"/>
            
            <expand macro="test_params"/>
            
            <output name="output1" file="nvt.gro" ftype="gro" compare="sim_size"/>
            <output name="output2" file="nvt.cpt" ftype="cpt" compare="sim_size"/>
            <output name="output3" file="nvt.trr" ftype="trr" compare="sim_size"/>
        </test>
        <test>
            <param name="gro_input" value="em.gro" />
            <param name="top_input" value="topol_solv.top" />
            <param name="itp_input" value="posres.itp" />
            <param name="mdpfile" value="custom" />
            <param name="mdp_input" value="nvt.mdp" />
            <param name="traj" value="none"/>
            <param name="str" value="gro"/>
            <output name="output1" file="nvt.gro" ftype="gro" compare="sim_size"/>
            <output name="output2" file="nvt.cpt" ftype="cpt" compare="sim_size"/>
        </test>
    </tests>
    <help><![CDATA[

Upload GRO, TOP and ITP (position restraint) files for equilibration under an NVT ensemble. 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>