From 73f863a6ab25d92420c095180c76a0876c985865 Mon Sep 17 00:00:00 2001 From: carlocamilloni <carlo.camilloni@gmail.com> Date: Fri, 8 Sep 2017 09:09:09 +0200 Subject: [PATCH] Implicit: small changes --- src/colvar/Implicit.cpp | 34 ++++++++++++++++++++++++++-------- 1 file changed, 26 insertions(+), 8 deletions(-) diff --git a/src/colvar/Implicit.cpp b/src/colvar/Implicit.cpp index ab4e21f07..54c5a548f 100644 --- a/src/colvar/Implicit.cpp +++ b/src/colvar/Implicit.cpp @@ -1,5 +1,5 @@ /* +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - Copyright (c) 2017 The plumed team + Copyright (c) 2016,2017 The plumed team (see the PEOPLE file at the root of the distribution for a list of names) See http://www.plumed.org for more information. @@ -42,10 +42,9 @@ namespace colvar { //+PLUMEDOC COLVAR IMPLICIT /* +Calculates EEF1 solvation free energy for a group of atoms. -Calculate EEF1-SB solvation free energy for a group of atoms. - -EEF1-SB is a solvent-accessible surface area based model, where the free energy of solvation is computed using a pairwise interaction term for non-hydrogen atoms: +EEF1 is a solvent-accessible surface area based model, where the free energy of solvation is computed using a pairwise interaction term for non-hydrogen atoms: \f[ \Delta G^\mathrm{solv}_i = \Delta G^\mathrm{ref}_i - \sum_{j \neq i} f_i(r_{ij}) V_j \f] @@ -133,8 +132,7 @@ Implicit::Implicit(const ActionOptions&ao): checkRead(); - log << " Bibliography " << plumed.cite("Bottaro S, Lindorff-Larsen K, Best R, J. Chem. Theory Comput. 9, 5641 (2013)") - << plumed.cite("Lazaridis T, Karplus M, Proteins Struct. Funct. Genet. 35, 133 (1999)"); log << "\n"; + log << " Bibliography " << plumed.cite("Lazaridis T, Karplus M, Proteins Struct. Funct. Genet. 35, 133 (1999)"); log << "\n"; nl.resize(size); @@ -287,6 +285,7 @@ void Implicit::setupConstants(const vector<AtomNumber> &atoms, vector<vector<dou valuemap = setupValueMap(); typemap = setupTypeMap(); vector<SetupMolInfo*> moldat = plumed.getActionSet().select<SetupMolInfo*>(); + bool cter=false; if (moldat.size() == 1) { log << " MOLINFO DATA found, using proper atom names\n"; for(unsigned i=0; i<atoms.size(); ++i) { @@ -297,7 +296,7 @@ void Implicit::setupConstants(const vector<AtomNumber> &atoms, vector<vector<dou string Atype = typemap[Rname][Aname]; // Check for terminal COOH or COO- (different atomtypes & parameters!) - if (moldat[0]->getAtomName(atoms[i]) == "OT1") { + if (moldat[0]->getAtomName(atoms[i]) == "OT1" || moldat[0]->getAtomName(atoms[i]) == "OXT") { // We create a temporary AtomNumber object to access future atoms unsigned ai = atoms[i].index(); AtomNumber tmp_an; @@ -309,8 +308,9 @@ void Implicit::setupConstants(const vector<AtomNumber> &atoms, vector<vector<dou // COO- Atype = "OC"; } + cter = true; } - if (moldat[0]->getAtomName(atoms[i]) == "OT2") { + if (moldat[0]->getAtomName(atoms[i]) == "OT2" || (cter == true && moldat[0]->getAtomName(atoms[i]) == "O")) { unsigned ai = atoms[i].index(); AtomNumber tmp_an; tmp_an.setIndex(ai + 1); @@ -372,6 +372,15 @@ void Implicit::setupConstants(const vector<AtomNumber> &atoms, vector<vector<dou map<string, map<string, string> > Implicit::setupTypeMap() { map<string, map<string, string> > typemap; typemap = { + { "ACE", { + {"CH3", "CT3"}, + {"HH31","HA3"}, + {"HH32","HA3"}, + {"HH33","HA3"}, + {"C", "C" }, + {"O", "O" } + } + }, { "ALA", { {"N", "NH1"}, {"HN", "H" }, @@ -711,6 +720,15 @@ map<string, map<string, string> > Implicit::setupTypeMap() { {"O", "O" } } }, + { "NMA", { + {"N", "NH1"}, + {"HN", "H" }, + {"CH3", "CT3"}, + {"HH31","HA3"}, + {"HH32","HA3"}, + {"HH33","HA3"}, + } + }, { "PHE", { {"N", "NH1"}, {"HN", "H" }, -- GitLab