diff --git a/modules/io/src/mol/omf.cc b/modules/io/src/mol/omf.cc
index a7daf239274417ed140da8593ca54efd615a31b3..2ddda6b9da73cc42cc2f3b795caffb008d750984 100644
--- a/modules/io/src/mol/omf.cc
+++ b/modules/io/src/mol/omf.cc
@@ -967,7 +967,7 @@ DefaultPepLib::DefaultPepLib() {
   /* hardcoded constructor created with:
 
   from ost import conop
-  def ProcessCompound(comp_name, lib, skip_oxt=True):
+  def ProcessCompound(comp_name, lib, skip_oxt=True, ca_only=False):
       c = lib.FindCompound(comp_name)   
       anames = list()
       idx_mapper = dict()
@@ -977,6 +977,8 @@ DefaultPepLib::DefaultPepLib() {
               continue
           if skip_oxt and a.name == "OXT":
               continue
+          if ca_only and a.name != "CA":
+              continue
           idx_mapper[a_idx] = a.name
           anames.append(a.name)
           element_mapper[a.name] = a.element
@@ -1015,12 +1017,12 @@ DefaultPepLib::DefaultPepLib() {
   lib = conop.GetDefaultLib()
   anames = ["ALA", "ARG", "ASN", "ASP", "GLN", "GLU", "LYS", "SER", "CYS", "MET",
             "TRP", "TYR", "THR", "VAL", "ILE", "LEU", "GLY", "PRO", "HIS", "PHE"]
-  print("  ResidueDefinition res_def;");
+  print("  ResidueDefinition res_def;")
   for aname in anames:
     ProcessCompound(aname, lib)
     ProcessCompound(aname, lib, skip_oxt = False)
+    ProcessCompound(aname, lib, ca_only=True)
   */
-
   ResidueDefinition res_def;
   res_def = ResidueDefinition();
   res_def.name = "ALA";
@@ -1087,6 +1089,16 @@ DefaultPepLib::DefaultPepLib() {
   res_def.bond_orders.push_back(1);
   residue_definitions.push_back(res_def);
 
+  res_def = ResidueDefinition();
+  res_def.name = "ALA";
+  res_def.olc = 'A';
+  res_def.chem_type = 'A';
+  res_def.chem_class = 'L';
+  res_def.anames.push_back("CA");
+  res_def.elements.push_back("C");
+  res_def.is_hetatm.assign(1, false);
+  residue_definitions.push_back(res_def);
+
   res_def = ResidueDefinition();
   res_def.name = "ARG";
   res_def.olc = 'R';
@@ -1212,6 +1224,16 @@ DefaultPepLib::DefaultPepLib() {
   res_def.bond_orders.push_back(2);
   residue_definitions.push_back(res_def);
 
+  res_def = ResidueDefinition();
+  res_def.name = "ARG";
+  res_def.olc = 'R';
+  res_def.chem_type = 'A';
+  res_def.chem_class = 'L';
+  res_def.anames.push_back("CA");
+  res_def.elements.push_back("C");
+  res_def.is_hetatm.assign(1, false);
+  residue_definitions.push_back(res_def);
+
   res_def = ResidueDefinition();
   res_def.name = "ASN";
   res_def.olc = 'N';
@@ -1307,6 +1329,16 @@ DefaultPepLib::DefaultPepLib() {
   res_def.bond_orders.push_back(2);
   residue_definitions.push_back(res_def);
 
+  res_def = ResidueDefinition();
+  res_def.name = "ASN";
+  res_def.olc = 'N';
+  res_def.chem_type = 'A';
+  res_def.chem_class = 'L';
+  res_def.anames.push_back("CA");
+  res_def.elements.push_back("C");
+  res_def.is_hetatm.assign(1, false);
+  residue_definitions.push_back(res_def);
+
   res_def = ResidueDefinition();
   res_def.name = "ASP";
   res_def.olc = 'D';
@@ -1402,6 +1434,16 @@ DefaultPepLib::DefaultPepLib() {
   res_def.bond_orders.push_back(1);
   residue_definitions.push_back(res_def);
 
+  res_def = ResidueDefinition();
+  res_def.name = "ASP";
+  res_def.olc = 'D';
+  res_def.chem_type = 'A';
+  res_def.chem_class = 'L';
+  res_def.anames.push_back("CA");
+  res_def.elements.push_back("C");
+  res_def.is_hetatm.assign(1, false);
+  residue_definitions.push_back(res_def);
+
   res_def = ResidueDefinition();
   res_def.name = "GLN";
   res_def.olc = 'Q';
@@ -1507,6 +1549,16 @@ DefaultPepLib::DefaultPepLib() {
   res_def.bond_orders.push_back(2);
   residue_definitions.push_back(res_def);
 
+  res_def = ResidueDefinition();
+  res_def.name = "GLN";
+  res_def.olc = 'Q';
+  res_def.chem_type = 'A';
+  res_def.chem_class = 'L';
+  res_def.anames.push_back("CA");
+  res_def.elements.push_back("C");
+  res_def.is_hetatm.assign(1, false);
+  residue_definitions.push_back(res_def);
+
   res_def = ResidueDefinition();
   res_def.name = "GLU";
   res_def.olc = 'E';
@@ -1612,6 +1664,16 @@ DefaultPepLib::DefaultPepLib() {
   res_def.bond_orders.push_back(1);
   residue_definitions.push_back(res_def);
 
+  res_def = ResidueDefinition();
+  res_def.name = "GLU";
+  res_def.olc = 'E';
+  res_def.chem_type = 'A';
+  res_def.chem_class = 'L';
+  res_def.anames.push_back("CA");
+  res_def.elements.push_back("C");
+  res_def.is_hetatm.assign(1, false);
+  residue_definitions.push_back(res_def);
+
   res_def = ResidueDefinition();
   res_def.name = "LYS";
   res_def.olc = 'K';
@@ -1717,6 +1779,16 @@ DefaultPepLib::DefaultPepLib() {
   res_def.bond_orders.push_back(1);
   residue_definitions.push_back(res_def);
 
+  res_def = ResidueDefinition();
+  res_def.name = "LYS";
+  res_def.olc = 'K';
+  res_def.chem_type = 'A';
+  res_def.chem_class = 'L';
+  res_def.anames.push_back("CA");
+  res_def.elements.push_back("C");
+  res_def.is_hetatm.assign(1, false);
+  residue_definitions.push_back(res_def);
+
   res_def = ResidueDefinition();
   res_def.name = "SER";
   res_def.olc = 'S';
@@ -1792,6 +1864,16 @@ DefaultPepLib::DefaultPepLib() {
   res_def.bond_orders.push_back(1);
   residue_definitions.push_back(res_def);
 
+  res_def = ResidueDefinition();
+  res_def.name = "SER";
+  res_def.olc = 'S';
+  res_def.chem_type = 'A';
+  res_def.chem_class = 'L';
+  res_def.anames.push_back("CA");
+  res_def.elements.push_back("C");
+  res_def.is_hetatm.assign(1, false);
+  residue_definitions.push_back(res_def);
+
   res_def = ResidueDefinition();
   res_def.name = "CYS";
   res_def.olc = 'C';
@@ -1867,6 +1949,16 @@ DefaultPepLib::DefaultPepLib() {
   res_def.bond_orders.push_back(1);
   residue_definitions.push_back(res_def);
 
+  res_def = ResidueDefinition();
+  res_def.name = "CYS";
+  res_def.olc = 'C';
+  res_def.chem_type = 'A';
+  res_def.chem_class = 'L';
+  res_def.anames.push_back("CA");
+  res_def.elements.push_back("C");
+  res_def.is_hetatm.assign(1, false);
+  residue_definitions.push_back(res_def);
+
   res_def = ResidueDefinition();
   res_def.name = "MET";
   res_def.olc = 'M';
@@ -1962,6 +2054,16 @@ DefaultPepLib::DefaultPepLib() {
   res_def.bond_orders.push_back(1);
   residue_definitions.push_back(res_def);
 
+  res_def = ResidueDefinition();
+  res_def.name = "MET";
+  res_def.olc = 'M';
+  res_def.chem_type = 'A';
+  res_def.chem_class = 'L';
+  res_def.anames.push_back("CA");
+  res_def.elements.push_back("C");
+  res_def.is_hetatm.assign(1, false);
+  residue_definitions.push_back(res_def);
+
   res_def = ResidueDefinition();
   res_def.name = "TRP";
   res_def.olc = 'W';
@@ -2129,6 +2231,16 @@ DefaultPepLib::DefaultPepLib() {
   res_def.bond_orders.push_back(1);
   residue_definitions.push_back(res_def);
 
+  res_def = ResidueDefinition();
+  res_def.name = "TRP";
+  res_def.olc = 'W';
+  res_def.chem_type = 'A';
+  res_def.chem_class = 'L';
+  res_def.anames.push_back("CA");
+  res_def.elements.push_back("C");
+  res_def.is_hetatm.assign(1, false);
+  residue_definitions.push_back(res_def);
+
   res_def = ResidueDefinition();
   res_def.name = "TYR";
   res_def.olc = 'Y';
@@ -2270,6 +2382,16 @@ DefaultPepLib::DefaultPepLib() {
   res_def.bond_orders.push_back(1);
   residue_definitions.push_back(res_def);
 
+  res_def = ResidueDefinition();
+  res_def.name = "TYR";
+  res_def.olc = 'Y';
+  res_def.chem_type = 'A';
+  res_def.chem_class = 'L';
+  res_def.anames.push_back("CA");
+  res_def.elements.push_back("C");
+  res_def.is_hetatm.assign(1, false);
+  residue_definitions.push_back(res_def);
+
   res_def = ResidueDefinition();
   res_def.name = "THR";
   res_def.olc = 'T';
@@ -2355,6 +2477,16 @@ DefaultPepLib::DefaultPepLib() {
   res_def.bond_orders.push_back(1);
   residue_definitions.push_back(res_def);
 
+  res_def = ResidueDefinition();
+  res_def.name = "THR";
+  res_def.olc = 'T';
+  res_def.chem_type = 'A';
+  res_def.chem_class = 'L';
+  res_def.anames.push_back("CA");
+  res_def.elements.push_back("C");
+  res_def.is_hetatm.assign(1, false);
+  residue_definitions.push_back(res_def);
+
   res_def = ResidueDefinition();
   res_def.name = "VAL";
   res_def.olc = 'V';
@@ -2440,6 +2572,16 @@ DefaultPepLib::DefaultPepLib() {
   res_def.bond_orders.push_back(1);
   residue_definitions.push_back(res_def);
 
+  res_def = ResidueDefinition();
+  res_def.name = "VAL";
+  res_def.olc = 'V';
+  res_def.chem_type = 'A';
+  res_def.chem_class = 'L';
+  res_def.anames.push_back("CA");
+  res_def.elements.push_back("C");
+  res_def.is_hetatm.assign(1, false);
+  residue_definitions.push_back(res_def);
+
   res_def = ResidueDefinition();
   res_def.name = "ILE";
   res_def.olc = 'I';
@@ -2535,6 +2677,16 @@ DefaultPepLib::DefaultPepLib() {
   res_def.bond_orders.push_back(1);
   residue_definitions.push_back(res_def);
 
+  res_def = ResidueDefinition();
+  res_def.name = "ILE";
+  res_def.olc = 'I';
+  res_def.chem_type = 'A';
+  res_def.chem_class = 'L';
+  res_def.anames.push_back("CA");
+  res_def.elements.push_back("C");
+  res_def.is_hetatm.assign(1, false);
+  residue_definitions.push_back(res_def);
+
   res_def = ResidueDefinition();
   res_def.name = "LEU";
   res_def.olc = 'L';
@@ -2630,6 +2782,16 @@ DefaultPepLib::DefaultPepLib() {
   res_def.bond_orders.push_back(1);
   residue_definitions.push_back(res_def);
 
+  res_def = ResidueDefinition();
+  res_def.name = "LEU";
+  res_def.olc = 'L';
+  res_def.chem_type = 'A';
+  res_def.chem_class = 'L';
+  res_def.anames.push_back("CA");
+  res_def.elements.push_back("C");
+  res_def.is_hetatm.assign(1, false);
+  residue_definitions.push_back(res_def);
+
   res_def = ResidueDefinition();
   res_def.name = "GLY";
   res_def.olc = 'G';
@@ -2685,6 +2847,16 @@ DefaultPepLib::DefaultPepLib() {
   res_def.bond_orders.push_back(1);
   residue_definitions.push_back(res_def);
 
+  res_def = ResidueDefinition();
+  res_def.name = "GLY";
+  res_def.olc = 'G';
+  res_def.chem_type = 'A';
+  res_def.chem_class = 'P';
+  res_def.anames.push_back("CA");
+  res_def.elements.push_back("C");
+  res_def.is_hetatm.assign(1, false);
+  residue_definitions.push_back(res_def);
+
   res_def = ResidueDefinition();
   res_def.name = "PRO";
   res_def.olc = 'P';
@@ -2776,6 +2948,16 @@ DefaultPepLib::DefaultPepLib() {
   res_def.bond_orders.push_back(1);
   residue_definitions.push_back(res_def);
 
+  res_def = ResidueDefinition();
+  res_def.name = "PRO";
+  res_def.olc = 'P';
+  res_def.chem_type = 'A';
+  res_def.chem_class = 'L';
+  res_def.anames.push_back("CA");
+  res_def.elements.push_back("C");
+  res_def.is_hetatm.assign(1, false);
+  residue_definitions.push_back(res_def);
+
   res_def = ResidueDefinition();
   res_def.name = "HIS";
   res_def.olc = 'H';
@@ -2897,6 +3079,16 @@ DefaultPepLib::DefaultPepLib() {
   res_def.bond_orders.push_back(1);
   residue_definitions.push_back(res_def);
 
+  res_def = ResidueDefinition();
+  res_def.name = "HIS";
+  res_def.olc = 'H';
+  res_def.chem_type = 'A';
+  res_def.chem_class = 'L';
+  res_def.anames.push_back("CA");
+  res_def.elements.push_back("C");
+  res_def.is_hetatm.assign(1, false);
+  residue_definitions.push_back(res_def);
+
   res_def = ResidueDefinition();
   res_def.name = "PHE";
   res_def.olc = 'F';
@@ -3027,6 +3219,16 @@ DefaultPepLib::DefaultPepLib() {
   res_def.bond_orders.push_back(2);
   res_def.bond_orders.push_back(1);
   residue_definitions.push_back(res_def);
+
+  res_def = ResidueDefinition();
+  res_def.name = "PHE";
+  res_def.olc = 'F';
+  res_def.chem_type = 'A';
+  res_def.chem_class = 'L';
+  res_def.anames.push_back("CA");
+  res_def.elements.push_back("C");
+  res_def.is_hetatm.assign(1, false);
+  residue_definitions.push_back(res_def);
 }
 
 OMFPtr OMF::FromEntity(const ost::mol::EntityHandle& ent,