From 0f1676e7f6786cd1d02b6ef46e8e3f94cba09a52 Mon Sep 17 00:00:00 2001
From: marco <marco@5a81b35b-ba03-0410-adc8-b2c5c5119f08>
Date: Mon, 10 May 2010 05:38:55 +0000
Subject: [PATCH] always use uppercase element name when assigning mass and
 radius to atoms

git-svn-id: https://dng.biozentrum.unibas.ch/svn/openstructure/trunk@2213 5a81b35b-ba03-0410-adc8-b2c5c5119f08
---
 modules/conop/src/conop.cc | 245 +++++++++++++++++++------------------
 1 file changed, 125 insertions(+), 120 deletions(-)

diff --git a/modules/conop/src/conop.cc b/modules/conop/src/conop.cc
index e634b6a73..3267e83e0 100644
--- a/modules/conop/src/conop.cc
+++ b/modules/conop/src/conop.cc
@@ -41,28 +41,28 @@ Conopology::Conopology():
   builder_map_["DEFAULT"]=builder_map_["HEURISTIC"];
 
   ele_rad_map_["H"]  = 1.09;
-
+                 
   ele_rad_map_["C"]  = 1.75;
   ele_rad_map_["N"]  = 1.55;
   ele_rad_map_["O"]  = 1.52;
   ele_rad_map_["F"]  = 1.47;
-
-  ele_rad_map_["Na"] = 2.27;
-  ele_rad_map_["Mg"] = 1.73;
-  ele_rad_map_["Si"] = 2.10;
+                 
+  ele_rad_map_["NA"] = 2.27;
+  ele_rad_map_["MG"] = 1.73;
+  ele_rad_map_["SI"] = 2.10;
   ele_rad_map_["P"]  = 1.80;
   ele_rad_map_["S"]  = 1.80;
-  ele_rad_map_["Cl"] = 1.75;
-
+  ele_rad_map_["CL"] = 1.75;
+                 
   ele_rad_map_["K"]  = 2.75;
-  ele_rad_map_["Ca"] = 2.00;
-  ele_rad_map_["Mn"] = 2.00;
-  ele_rad_map_["Fe"] = 2.00;
-  ele_rad_map_["Co"] = 2.00;
-  ele_rad_map_["Ni"] = 1.63;
-  ele_rad_map_["Cu"] = 1.40;
-  ele_rad_map_["Zn"] = 1.39;
-  ele_rad_map_["Br"] = 1.85;
+  ele_rad_map_["CA"] = 2.00;
+  ele_rad_map_["MN"] = 2.00;
+  ele_rad_map_["FE"] = 2.00;
+  ele_rad_map_["CO"] = 2.00;
+  ele_rad_map_["NI"] = 1.63;
+  ele_rad_map_["CU"] = 1.40;
+  ele_rad_map_["ZN"] = 1.39;
+  ele_rad_map_["BR"] = 1.85;
 
   ele_rad_map_["I"]  = 1.98;
 
@@ -70,122 +70,122 @@ Conopology::Conopology():
   // Element masses according to IUPAC standards
   // see http://www.chem.qmul.ac.uk/iupac/AtWt/
   ele_mass_map_["H"]  = 1.00794;
-  ele_mass_map_["He"] = 4.002602;
-  ele_mass_map_["Li"] = 6.941;
-  ele_mass_map_["Be"] = 9.012182;
+  ele_mass_map_["HE"] = 4.002602;
+  ele_mass_map_["LI"] = 6.941;
+  ele_mass_map_["BE"] = 9.012182;
   ele_mass_map_["B"]  = 10.811;
   ele_mass_map_["C"]  = 12.0107;
   ele_mass_map_["N"]  = 14.0067;
   ele_mass_map_["O"]  = 15.9994;
   ele_mass_map_["F"]  = 18.9984032;
-  ele_mass_map_["Ne"] = 20.1797;
-  ele_mass_map_["Na"] = 22.98976928;
-  ele_mass_map_["Mg"] = 24.3050;
-  ele_mass_map_["Al"] = 26.9815386;
-  ele_mass_map_["Si"] = 28.0855;
+  ele_mass_map_["NE"] = 20.1797;
+  ele_mass_map_["NA"] = 22.98976928;
+  ele_mass_map_["MG"] = 24.3050;
+  ele_mass_map_["AL"] = 26.9815386;
+  ele_mass_map_["SI"] = 28.0855;
   ele_mass_map_["P"]  = 30.973762;
   ele_mass_map_["S"]  = 32.065;
-  ele_mass_map_["Cl"] = 35.453;
-  ele_mass_map_["Ar"] = 39.948;
+  ele_mass_map_["CL"] = 35.453;
+  ele_mass_map_["AR"] = 39.948;
   ele_mass_map_["K"]  = 39.0983;
-  ele_mass_map_["Ca"] = 40.078;
-  ele_mass_map_["Sc"] = 44.955912;
-  ele_mass_map_["Ti"] = 47.867;
+  ele_mass_map_["CA"] = 40.078;
+  ele_mass_map_["SC"] = 44.955912;
+  ele_mass_map_["TI"] = 47.867;
   ele_mass_map_["V"]  = 50.9415;
-  ele_mass_map_["Cr"] = 51.9961;
-  ele_mass_map_["Mn"] = 54.938045;
-  ele_mass_map_["Fe"] = 55.845;
-  ele_mass_map_["Co"] = 58.933195;
-  ele_mass_map_["Ni"] = 58.6934;
-  ele_mass_map_["Cu"] = 63.546;
-  ele_mass_map_["Zn"] = 65.38;
-  ele_mass_map_["Ga"] = 69.723;
-  ele_mass_map_["Ge"] = 72.64;
-  ele_mass_map_["As"] = 74.92160;
-  ele_mass_map_["Se"] = 78.96;
-  ele_mass_map_["Br"] = 79.904;
-  ele_mass_map_["Kr"] = 83.798;
-  ele_mass_map_["Rb"] = 85.4678;
-  ele_mass_map_["Sr"] = 87.62;
+  ele_mass_map_["CR"] = 51.9961;
+  ele_mass_map_["MN"] = 54.938045;
+  ele_mass_map_["FE"] = 55.845;
+  ele_mass_map_["CO"] = 58.933195;
+  ele_mass_map_["NI"] = 58.6934;
+  ele_mass_map_["CU"] = 63.546;
+  ele_mass_map_["ZN"] = 65.38;
+  ele_mass_map_["GA"] = 69.723;
+  ele_mass_map_["GE"] = 72.64;
+  ele_mass_map_["AS"] = 74.92160;
+  ele_mass_map_["SE"] = 78.96;
+  ele_mass_map_["BR"] = 79.904;
+  ele_mass_map_["KR"] = 83.798;
+  ele_mass_map_["RB"] = 85.4678;
+  ele_mass_map_["SR"] = 87.62;
   ele_mass_map_["Y"]  = 88.90585;
-  ele_mass_map_["Zr"] = 91.224;
-  ele_mass_map_["Nb"] = 92.90638;
-  ele_mass_map_["Mo"] = 95.96;
-  ele_mass_map_["Tc"] = 98.0;
-  ele_mass_map_["Ru"] = 101.07;
-  ele_mass_map_["Rh"] = 102.90550;
-  ele_mass_map_["Pd"] = 106.42;
-  ele_mass_map_["Ag"] = 107.8682;
-  ele_mass_map_["Cd"] = 112.411;
-  ele_mass_map_["In"] = 114.818;
-  ele_mass_map_["Sn"] = 118.710;
-  ele_mass_map_["Sb"] = 121.760;
-  ele_mass_map_["Te"] = 127.60;
+  ele_mass_map_["ZR"] = 91.224;
+  ele_mass_map_["NB"] = 92.90638;
+  ele_mass_map_["MO"] = 95.96;
+  ele_mass_map_["TC"] = 98.0;
+  ele_mass_map_["RU"] = 101.07;
+  ele_mass_map_["RH"] = 102.90550;
+  ele_mass_map_["PD"] = 106.42;
+  ele_mass_map_["AG"] = 107.8682;
+  ele_mass_map_["CD"] = 112.411;
+  ele_mass_map_["IN"] = 114.818;
+  ele_mass_map_["SN"] = 118.710;
+  ele_mass_map_["SB"] = 121.760;
+  ele_mass_map_["TE"] = 127.60;
   ele_mass_map_["I"]  = 126.90447;
-  ele_mass_map_["Xe"] = 131.293;
-  ele_mass_map_["Cs"] = 132.9054519;
-  ele_mass_map_["Ba"] = 137.327;
-  ele_mass_map_["La"] = 138.90547;
-  ele_mass_map_["Ce"] = 140.116;
-  ele_mass_map_["Pr"] = 140.90765;
-  ele_mass_map_["Nd"] = 144.242;
-  ele_mass_map_["Pm"] = 145.0;
-  ele_mass_map_["Sm"] = 150.36;
-  ele_mass_map_["Eu"] = 151.964;
-  ele_mass_map_["Gd"] = 157.25;
-  ele_mass_map_["Tb"] = 158.92535;
-  ele_mass_map_["Dy"] = 162.500;
-  ele_mass_map_["Ho"] = 164.93032;
-  ele_mass_map_["Er"] = 167.259;
-  ele_mass_map_["Tm"] = 168.93421;
-  ele_mass_map_["Yb"] = 173.054;
-  ele_mass_map_["Lu"] = 174.9668;
-  ele_mass_map_["Hf"] = 178.49;
-  ele_mass_map_["Ta"] = 180.94788;
+  ele_mass_map_["XE"] = 131.293;
+  ele_mass_map_["CS"] = 132.9054519;
+  ele_mass_map_["BA"] = 137.327;
+  ele_mass_map_["LA"] = 138.90547;
+  ele_mass_map_["CE"] = 140.116;
+  ele_mass_map_["PR"] = 140.90765;
+  ele_mass_map_["ND"] = 144.242;
+  ele_mass_map_["PM"] = 145.0;
+  ele_mass_map_["SM"] = 150.36;
+  ele_mass_map_["EU"] = 151.964;
+  ele_mass_map_["GD"] = 157.25;
+  ele_mass_map_["TB"] = 158.92535;
+  ele_mass_map_["DY"] = 162.500;
+  ele_mass_map_["HO"] = 164.93032;
+  ele_mass_map_["ER"] = 167.259;
+  ele_mass_map_["TM"] = 168.93421;
+  ele_mass_map_["YB"] = 173.054;
+  ele_mass_map_["LU"] = 174.9668;
+  ele_mass_map_["HF"] = 178.49;
+  ele_mass_map_["TA"] = 180.94788;
   ele_mass_map_["W"]  = 183.84;
-  ele_mass_map_["Re"] = 186.207;
-  ele_mass_map_["Os"] = 190.23;
-  ele_mass_map_["Ir"] = 192.217;
-  ele_mass_map_["Pt"] = 195.084;
-  ele_mass_map_["Au"] = 196.966569;
-  ele_mass_map_["Hg"] = 200.59;
-  ele_mass_map_["Tl"] = 204.3833;
-  ele_mass_map_["Pb"] = 207.2;
-  ele_mass_map_["Bi"] = 208.98040;
-  ele_mass_map_["Po"] = 209.0;
-  ele_mass_map_["At"] = 210.0;
-  ele_mass_map_["Rn"] = 222.0;
-  ele_mass_map_["Fr"] = 223.0;
-  ele_mass_map_["Ra"] = 226.0;
-  ele_mass_map_["Ac"] = 227.0;
-  ele_mass_map_["Th"] = 232.03806;
-  ele_mass_map_["Pa"] = 231.03588;
+  ele_mass_map_["RE"] = 186.207;
+  ele_mass_map_["OS"] = 190.23;
+  ele_mass_map_["IR"] = 192.217;
+  ele_mass_map_["PT"] = 195.084;
+  ele_mass_map_["AU"] = 196.966569;
+  ele_mass_map_["HG"] = 200.59;
+  ele_mass_map_["TL"] = 204.3833;
+  ele_mass_map_["PB"] = 207.2;
+  ele_mass_map_["BI"] = 208.98040;
+  ele_mass_map_["PO"] = 209.0;
+  ele_mass_map_["AT"] = 210.0;
+  ele_mass_map_["RN"] = 222.0;
+  ele_mass_map_["FR"] = 223.0;
+  ele_mass_map_["RA"] = 226.0;
+  ele_mass_map_["AC"] = 227.0;
+  ele_mass_map_["TH"] = 232.03806;
+  ele_mass_map_["PA"] = 231.03588;
   ele_mass_map_["U"]  = 238.02891;
-  ele_mass_map_["Np"] = 237.0;
-  ele_mass_map_["Pu"] = 244.0;
-  ele_mass_map_["Am"] = 243.0;
-  ele_mass_map_["Cm"] = 247.0;
-  ele_mass_map_["Bk"] = 247.0;
-  ele_mass_map_["Cf"] = 251.0;
-  ele_mass_map_["Es"] = 252.0;
-  ele_mass_map_["Fm"] = 257.0;
-  ele_mass_map_["Md"] = 258.0;
-  ele_mass_map_["No"] = 259.0;
-  ele_mass_map_["Lr"] = 262.0;
-  ele_mass_map_["Rf"] = 267.0;
-  ele_mass_map_["Db"] = 268.0;
-  ele_mass_map_["Sg"] = 271.0;
-  ele_mass_map_["Bh"] = 272.0;
-  ele_mass_map_["Hs"] = 270.0;
-  ele_mass_map_["Mt"] = 276.0;
-  ele_mass_map_["Ds"] = 281.0;
-  ele_mass_map_["Rg"] = 280.0;
-  ele_mass_map_["Cn"] = 285.0;
-  ele_mass_map_["Uut"]= 284.0;
-  ele_mass_map_["Uuq"]= 289.0;
-  ele_mass_map_["Uup"]= 288.0;
-  ele_mass_map_["Uuh"]= 293.0;
-  ele_mass_map_["Uuo"]= 294.0;  
+  ele_mass_map_["NP"] = 237.0;
+  ele_mass_map_["PU"] = 244.0;
+  ele_mass_map_["AM"] = 243.0;
+  ele_mass_map_["CM"] = 247.0;
+  ele_mass_map_["BK"] = 247.0;
+  ele_mass_map_["CF"] = 251.0;
+  ele_mass_map_["ES"] = 252.0;
+  ele_mass_map_["FM"] = 257.0;
+  ele_mass_map_["MD"] = 258.0;
+  ele_mass_map_["NO"] = 259.0;
+  ele_mass_map_["LR"] = 262.0;
+  ele_mass_map_["RF"] = 267.0;
+  ele_mass_map_["DB"] = 268.0;
+  ele_mass_map_["SG"] = 271.0;
+  ele_mass_map_["BH"] = 272.0;
+  ele_mass_map_["HS"] = 270.0;
+  ele_mass_map_["MT"] = 276.0;
+  ele_mass_map_["DS"] = 281.0;
+  ele_mass_map_["RG"] = 280.0;
+  ele_mass_map_["CN"] = 285.0;
+  ele_mass_map_["UUT"]= 284.0;
+  ele_mass_map_["UUQ"]= 289.0;
+  ele_mass_map_["UUP"]= 288.0;
+  ele_mass_map_["UUH"]= 293.0;
+  ele_mass_map_["UUO"]= 294.0;  
 }
 
 void Conopology::RegisterBuilder(const BuilderP& b, const String& name) {
@@ -294,13 +294,18 @@ void Conopology::ConnectAll(const BuilderP& b, mol::EntityHandle eh, int flag)
 
 Real Conopology::GetDefaultAtomRadius(const String& element) const
 {
-  std::map<String,Real>::const_iterator it = ele_rad_map_.find(element);
+  String upper_ele=element;
+  std::transform(upper_ele.begin(),upper_ele.end(),upper_ele.begin(),toupper);  
+  std::map<String,Real>::const_iterator it = ele_rad_map_.find(upper_ele);
   return it==ele_rad_map_.end() ? 1.5 : it->second;
 }
 
 Real Conopology::GetDefaultAtomMass(const String& element) const
 {
-  std::map<String,Real>::const_iterator it = ele_mass_map_.find(element);
+  String upper_ele=element;
+  std::transform(upper_ele.begin(),upper_ele.end(),upper_ele.begin(),toupper);  
+  
+  std::map<String,Real>::const_iterator it = ele_mass_map_.find(upper_ele);
   return it==ele_mass_map_.end() ? 1.0 : it->second;
 }
 
-- 
GitLab