Documents/NamdSample/namd210b/lib/ramd/scripts/ramd-4.1.tcl (103 lines of code) (raw):

#*********************************************************************************** # * # Random Acceleration Molecular Dynamics (RAMD) * # Implementation for NAMD v2.7 * # September 2009 * # * # Copyright (c) 2009, EML Research gGmbH, Heidelberg, Germany * # Author: Vlad Cojocaru * # Email: vlad.cojocaru@eml-r.villa-bosch.de * # * # This Tcl script includes all the features of the implementation for AMBER 8 * # (fortran code by Tim Johann & Ting Wang in the MCM group @ EML Research gGmbH) * # See: http://projects.eml.org/mcmsoft/amberpatches/ * # * # The first Tcl script to run RAMD in NAMD (v2.5+) was written by Harish Vashisth * # Ref: Vashisth H et al, Biophys J. 2008 Nov 1;95(9):4193-204. Epub 2008 Aug 1 * # * # The Vashisth script inspired some lines of this script, but mainly this script * # is based on the fortran code written for AMBER 8 * # * # The structure of this script is inspired by the Adaptive Biasing Force module * # distributed with NAMD 2.6 * # * # The original RAMD method is described in: * # Ref1: Luedemann,S.K.,Lounnas,V.and R.C.Wade., * # J Mol Biol, 303:797-811 (2000) * # Ref2: Schleinkofer,K.,Sudarko,Winn,P.,Luedemann,S.K.and R.C.Wade, * # EMBO Reports, 6, 584-589 (2005) * # * # Disclaimer: This script is for research purposes only. EML Research does not * # assume any responsibility for the software or its use. * # * # !!! Quantitative reproducibility of the results obtained with AMBER 8 * # is not possible due to a numerical errors and such like * # * # !!! This script is under development. * # * # The script along with usage examples is available at * # http://projects.eml.org/mcm/software * #*********************************************************************************** #******************************************************* # Startup * #******************************************************* package provide ramd 4.1 #******************************************************* # Parameter definitions #******************************************************* namespace eval ::RAMD { set version "4.1" if {! [info exists RAMDdir]} { set RAMDdir [file dirname [info script]] } # If it fails, try the local directory if { $RAMDdir == "" } { set RAMDdir "." } TclForces on TclForcesScript $RAMDdir/ramd-4.1_script.tcl array set defaults { ramdSteps 50 accel 0.25 rMinRamd 0.01 forceOutFreq 0 firstProtAtom 1 ramdSeed 14253 mdSteps 0 mdStart no maxDist 50 debugLevel 0 } set mandatory "firstRamdAtom lastRamdAtom lastProtAtom" set silent "rMinMd" array set capitals {} foreach param [concat $mandatory $silent [array names defaults]] { set capitals([string tolower $param]) $param # not set yet set alreadySet($param) 0 } } ;# namespace proc ramd { keyword value } { set ::RAMD::keyword $keyword set ::RAMD::value $value namespace eval ::RAMD { # Build list of all allowed parameter names set list [array names capitals] set lowercase [string tolower $keyword] # Process parameters if {[lsearch $list $lowercase] != -1} { set keyword $capitals($lowercase) if { $alreadySet($keyword) } { print "RAMD> WARNING - multiple definitions of parameter $keyword" } set $keyword $value set alreadySet($keyword) 1 return } else { error [format "Unknown RAMD keyword: %s" $keyword] } } ;# namespace } ;# proc ramd # define upper-case synonyms to proc abf proc RAMD { keyword value } { ramd $keyword $value } proc Ramd { keyword value } { ramd $keyword $value }