diff --git a/modules/conop/pymod/export_compound.cc b/modules/conop/pymod/export_compound.cc index 3a9e4e6118867027b04db2bbf3eb3031878c44ed..f14e90a37e634c5f34c728fc5b61287d518326a9 100644 --- a/modules/conop/pymod/export_compound.cc +++ b/modules/conop/pymod/export_compound.cc @@ -69,6 +69,17 @@ char get_chemtype(CompoundPtr compound) return char(compound->GetChemType()); } +int get_charge(CompoundPtr compound) +{ + return int(compound->GetCharge()); +} + +void set_charge(CompoundPtr compound, int c) +{ + compound->SetCharge(c); +} + + CompoundPtr find_compound(CompoundLibPtr comp_lib, const String& tlc, const String& dialect) { @@ -95,6 +106,9 @@ void export_Compound() { return_value_policy<copy_const_reference>()) .def("SetOneLetterCode", &Compound::SetOneLetterCode) .def("GetOneLetterCode", &Compound::GetOneLetterCode) + + .def("GetCharge", &Compound::GetCharge) + .def("SetCharge", &Compound::SetCharge) .add_property("three_letter_code", make_function(&Compound::GetID, return_value_policy<copy_const_reference>())) .add_property("name", @@ -129,6 +143,7 @@ void export_Compound() { .def_readonly("is_leaving", &AtomSpec::is_leaving) .def_readonly("is_aromatic", &AtomSpec::is_aromatic) .def_readonly("ordinal", &AtomSpec::ordinal) + .def_readonly("charge", &AtomSpec::charge) ; class_<BondSpec>("BondSpec", no_init) diff --git a/modules/conop/src/compound.hh b/modules/conop/src/compound.hh index e06dde4c3b15964fd191c64de25a6f673dd19ad7..650271b5f0ac9a9448a5dcd598fa791191bba17a 100644 --- a/modules/conop/src/compound.hh +++ b/modules/conop/src/compound.hh @@ -76,17 +76,19 @@ struct DLLEXPORT_OST_CONOP AtomSpec { alt_name(), element(), is_leaving(false), - is_aromatic() + is_aromatic(), + charge() { } AtomSpec(int o, const String& n, const String& a, const String& e, - bool l, bool r): + bool l, bool r, int c): ordinal(o), name(n), alt_name(a), element(e), is_leaving(l), - is_aromatic(r) + is_aromatic(r), + charge(c) {} int ordinal; String name; @@ -94,10 +96,11 @@ struct DLLEXPORT_OST_CONOP AtomSpec { String element; bool is_leaving; bool is_aromatic; + int charge; bool operator==(const AtomSpec& rhs) const { return ordinal==rhs.ordinal && name==rhs.name && alt_name==rhs.alt_name && element==rhs.element && is_leaving==rhs.is_leaving && - rhs.is_aromatic==rhs.is_aromatic; + rhs.is_aromatic==rhs.is_aromatic && charge==rhs.charge; } bool operator!=(const AtomSpec& rhs) const { return !this->operator==(rhs); @@ -152,7 +155,8 @@ public: chem_type_(), dialect_(Compound::PDB), creation_date_(), - mod_date_() + mod_date_(), + charge_() { } @@ -241,6 +245,10 @@ public: const String& GetFormula() { return formula_; } + void SetCharge(int charge) { charge_=charge; } + + int GetCharge() { return charge_; } + const BondSpecList& GetBondSpecs() const { return bond_specs_; } @@ -275,6 +283,7 @@ private: Dialect dialect_; Date creation_date_; Date mod_date_; + int charge_; }; typedef std::map<String, CompoundPtr> CompoundMap; diff --git a/modules/conop/src/compound_lib.cc b/modules/conop/src/compound_lib.cc index 35c60e0c3fa133d9cc11165273d30e760dd77790..ba8ecc51d919b56843d6ccfa9952574301121a79 100644 --- a/modules/conop/src/compound_lib.cc +++ b/modules/conop/src/compound_lib.cc @@ -49,7 +49,8 @@ const char* CREATE_CMD[]={ " formula VARCHAR(64) NOT NULL, " " pdb_initial TIMESTAMP, " " pdb_modified TIMESTAMP, " -" name VARCHAR(256) " +" name VARCHAR(256), " +" charge INT " ");", " CREATE UNIQUE INDEX IF NOT EXISTS commpound_tlc_index ON chem_compounds " " (tlc, dialect)", @@ -62,7 +63,8 @@ const char* CREATE_CMD[]={ " is_aromatic VARCHAR(1) NOT NULL, " " stereo_conf VARCHAR(1) NOT NULL, " " is_leaving VARCHAR(1) NOT NULL, " -" ordinal INT " +" ordinal INT, " +" charge INT " ");", " CREATE INDEX IF NOT EXISTS atom_name_index ON atoms " " (compound_id, name, alt_name)", @@ -85,13 +87,13 @@ const char* CREATE_CMD[]={ const char* INSERT_COMPOUND_STATEMENT="INSERT INTO chem_compounds " -" (tlc, olc, dialect, chem_class, chem_type, formula, pdb_initial, pdb_modified, name) " -" VALUES (?, ?, ?, ?, ?, ?, DATE(?), DATE(?), ?)"; +" (tlc, olc, dialect, chem_class, chem_type, formula, pdb_initial, pdb_modified, name, charge) " +" VALUES (?, ?, ?, ?, ?, ?, DATE(?), DATE(?), ?, ?)"; const char* INSERT_ATOM_STATEMENT="INSERT INTO atoms " " (compound_id, name, alt_name, element, is_aromatic, stereo_conf, " -" is_leaving, ordinal) " -" VALUES (?, ?, ?, ?, ?, ?, ?, ?)"; +" is_leaving, ordinal, charge) " +" VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)"; const char* INSERT_BOND_STATEMENT="insert into bonds " " (compound_id, atom_one, atom_two, bond_order, stereo_conf) " @@ -222,6 +224,8 @@ void CompoundLib::AddCompound(const CompoundPtr& compound) modi_date_str=modi_date.ToString(); sqlite3_bind_text(stmt, 7, crea_date_str.c_str(), crea_date_str.length(), NULL); sqlite3_bind_text(stmt, 8, modi_date_str.c_str(), modi_date_str.length(), NULL); + int charge=compound->GetCharge(); + sqlite3_bind_int(stmt, 10, charge); } else { LOG_ERROR(sqlite3_errmsg(conn_)); sqlite3_finalize(stmt); @@ -255,6 +259,7 @@ void CompoundLib::AddCompound(const CompoundPtr& compound) sqlite3_bind_int(stmt, 6, 0); sqlite3_bind_int(stmt, 7, a.is_leaving); sqlite3_bind_int(stmt, 8, a.ordinal); + sqlite3_bind_int(stmt, 9, a.charge); retval=sqlite3_step(stmt); assert(retval==SQLITE_DONE); atom_ids[a.ordinal]=sqlite3_last_insert_rowid(conn_); @@ -363,7 +368,7 @@ CompoundLibPtr CompoundLib::Load(const String& database, bool readonly) } void CompoundLib::LoadAtomsFromDB(CompoundPtr comp, int pk) const { - String aq=str(format("SELECT name, alt_name, element, ordinal, is_leaving " + String aq=str(format("SELECT name, alt_name, element, ordinal, is_leaving, charge " "FROM atoms WHERE compound_id=%d " "ORDER BY ordinal ASC") % pk); sqlite3_stmt* stmt; @@ -379,6 +384,7 @@ void CompoundLib::LoadAtomsFromDB(CompoundPtr comp, int pk) const { atom_sp.element=String(reinterpret_cast<const char*>(sqlite3_column_text(stmt, 2))); atom_sp.ordinal=sqlite3_column_int(stmt, 3); atom_sp.is_leaving=bool(sqlite3_column_int(stmt, 4)!=0); + atom_sp.charge=sqlite3_column_int(stmt, 5); comp->AddAtom(atom_sp); } } else { @@ -421,7 +427,7 @@ CompoundPtr CompoundLib::FindCompound(const String& id, if (i!=compound_cache_.end()) { return i->second; } - String query="SELECT id, tlc, olc, chem_class, dialect, formula"; + String query="SELECT id, tlc, olc, chem_class, dialect, formula, charge"; if(chem_type_available_) { query+=", chem_type"; if(name_available_) { @@ -450,11 +456,12 @@ CompoundPtr CompoundLib::FindCompound(const String& id, compound->SetDialect(Compound::Dialect(sqlite3_column_text(stmt, 4)[0])); const char* f=reinterpret_cast<const char*>(sqlite3_column_text(stmt, 5)); compound->SetFormula(f); + compound->SetCharge(sqlite3_column_int(stmt, 6)); if(chem_type_available_) { - compound->SetChemType(mol::ChemType(sqlite3_column_text(stmt, 6)[0])); + compound->SetChemType(mol::ChemType(sqlite3_column_text(stmt, 7)[0])); } if (name_available_) { - const char* name=reinterpret_cast<const char*>(sqlite3_column_text(stmt, 7)); + const char* name=reinterpret_cast<const char*>(sqlite3_column_text(stmt, 8)); if (name) { compound->SetName(name); } diff --git a/modules/conop/src/standard_compounds.cc b/modules/conop/src/standard_compounds.cc index 7ce7302ffcc4f90e37a1f59e80595e54efbb4f24..e9012a7c035adf5330504f8fb12f75287f9dfde2 100644 --- a/modules/conop/src/standard_compounds.cc +++ b/modules/conop/src/standard_compounds.cc @@ -5,19 +5,19 @@ CompoundPtr MakeALACompound() { c->SetChemType(mol::ChemType('U')); c->SetFormula("C3 H7 N O2"); AtomSpec atoms[] = { - AtomSpec(0, "N", "N", "N", false, true), - AtomSpec(1, "CA", "CA", "C", false, true), - AtomSpec(2, "C", "C", "C", false, true), - AtomSpec(3, "O", "O", "O", false, true), - AtomSpec(4, "CB", "CB", "C", false, true), - AtomSpec(5, "OXT", "OXT", "O", true, true), - AtomSpec(6, "H", "H", "H", false, true), - AtomSpec(7, "H2", "HN2", "H", true, true), - AtomSpec(8, "HA", "HA", "H", false, true), - AtomSpec(9, "HB1", "1HB", "H", false, true), - AtomSpec(10, "HB2", "2HB", "H", false, true), - AtomSpec(11, "HB3", "3HB", "H", false, true), - AtomSpec(12, "HXT", "HXT", "H", true, true) + AtomSpec(0, "N", "N", "N", false, true,0), + AtomSpec(1, "CA", "CA", "C", false, true,0), + AtomSpec(2, "C", "C", "C", false, true,0), + AtomSpec(3, "O", "O", "O", false, true,0), + AtomSpec(4, "CB", "CB", "C", false, true,0), + AtomSpec(5, "OXT", "OXT", "O", true, true,0), + AtomSpec(6, "H", "H", "H", false, true,0), + AtomSpec(7, "H2", "HN2", "H", true, true,0), + AtomSpec(8, "HA", "HA", "H", false, true,0), + AtomSpec(9, "HB1", "1HB", "H", false, true,0), + AtomSpec(10, "HB2", "2HB", "H", false, true,0), + AtomSpec(11, "HB3", "3HB", "H", false, true,0), + AtomSpec(12, "HXT", "HXT", "H", true, true,0) }; for (int i=0; i<13; ++i) { c->AddAtom(atoms[i]); } BondSpec bonds[] = { @@ -44,20 +44,20 @@ CompoundPtr MakeCYSCompound() { c->SetChemType(mol::ChemType('U')); c->SetFormula("C3 H7 N O2 S"); AtomSpec atoms[] = { - AtomSpec(0, "N", "N", "N", false, true), - AtomSpec(1, "CA", "CA", "C", false, true), - AtomSpec(2, "C", "C", "C", false, true), - AtomSpec(3, "O", "O", "O", false, true), - AtomSpec(4, "CB", "CB", "C", false, true), - AtomSpec(5, "SG", "SG", "S", false, true), - AtomSpec(6, "OXT", "OXT", "O", true, true), - AtomSpec(7, "H", "H", "H", false, true), - AtomSpec(8, "H2", "HN2", "H", true, true), - AtomSpec(9, "HA", "HA", "H", false, true), - AtomSpec(10, "HB2", "1HB", "H", false, true), - AtomSpec(11, "HB3", "2HB", "H", false, true), - AtomSpec(12, "HG", "HG", "H", false, true), - AtomSpec(13, "HXT", "HXT", "H", true, true) + AtomSpec(0, "N", "N", "N", false, true,0), + AtomSpec(1, "CA", "CA", "C", false, true,0), + AtomSpec(2, "C", "C", "C", false, true,0), + AtomSpec(3, "O", "O", "O", false, true,0), + AtomSpec(4, "CB", "CB", "C", false, true,0), + AtomSpec(5, "SG", "SG", "S", false, true,0), + AtomSpec(6, "OXT", "OXT", "O", true, true,0), + AtomSpec(7, "H", "H", "H", false, true,0), + AtomSpec(8, "H2", "HN2", "H", true, true,0), + AtomSpec(9, "HA", "HA", "H", false, true,0), + AtomSpec(10, "HB2", "1HB", "H", false, true,0), + AtomSpec(11, "HB3", "2HB", "H", false, true,0), + AtomSpec(12, "HG", "HG", "H", false, true,0), + AtomSpec(13, "HXT", "HXT", "H", true, true,0) }; for (int i=0; i<14; ++i) { c->AddAtom(atoms[i]); } BondSpec bonds[] = { @@ -85,22 +85,22 @@ CompoundPtr MakeASPCompound() { c->SetChemType(mol::ChemType('U')); c->SetFormula("C4 H7 N O4"); AtomSpec atoms[] = { - AtomSpec(0, "N", "N", "N", false, true), - AtomSpec(1, "CA", "CA", "C", false, true), - AtomSpec(2, "C", "C", "C", false, true), - AtomSpec(3, "O", "O", "O", false, true), - AtomSpec(4, "CB", "CB", "C", false, true), - AtomSpec(5, "CG", "CG", "C", false, true), - AtomSpec(6, "OD1", "OD1", "O", false, true), - AtomSpec(7, "OD2", "OD2", "O", false, true), - AtomSpec(8, "OXT", "OXT", "O", true, true), - AtomSpec(9, "H", "H", "H", false, true), - AtomSpec(10, "H2", "HN2", "H", true, true), - AtomSpec(11, "HA", "HA", "H", false, true), - AtomSpec(12, "HB2", "HB1", "H", false, true), - AtomSpec(13, "HB3", "HB2", "H", false, true), - AtomSpec(14, "HD2", "HD2", "H", false, true), - AtomSpec(15, "HXT", "HXT", "H", true, true) + AtomSpec(0, "N", "N", "N", false, true,0), + AtomSpec(1, "CA", "CA", "C", false, true,0), + AtomSpec(2, "C", "C", "C", false, true,0), + AtomSpec(3, "O", "O", "O", false, true,0), + AtomSpec(4, "CB", "CB", "C", false, true,0), + AtomSpec(5, "CG", "CG", "C", false, true,0), + AtomSpec(6, "OD1", "OD1", "O", false, true,0), + AtomSpec(7, "OD2", "OD2", "O", false, true,0), + AtomSpec(8, "OXT", "OXT", "O", true, true,0), + AtomSpec(9, "H", "H", "H", false, true,0), + AtomSpec(10, "H2", "HN2", "H", true, true,0), + AtomSpec(11, "HA", "HA", "H", false, true,0), + AtomSpec(12, "HB2", "HB1", "H", false, true,0), + AtomSpec(13, "HB3", "HB2", "H", false, true,0), + AtomSpec(14, "HD2", "HD2", "H", false, true,0), + AtomSpec(15, "HXT", "HXT", "H", true, true,0) }; for (int i=0; i<16; ++i) { c->AddAtom(atoms[i]); } BondSpec bonds[] = { @@ -130,25 +130,25 @@ CompoundPtr MakeGLUCompound() { c->SetChemType(mol::ChemType('U')); c->SetFormula("C5 H9 N O4"); AtomSpec atoms[] = { - AtomSpec(0, "N", "N", "N", false, true), - AtomSpec(1, "CA", "CA", "C", false, true), - AtomSpec(2, "C", "C", "C", false, true), - AtomSpec(3, "O", "O", "O", false, true), - AtomSpec(4, "CB", "CB", "C", false, true), - AtomSpec(5, "CG", "CG", "C", false, true), - AtomSpec(6, "CD", "CD", "C", false, true), - AtomSpec(7, "OE1", "OE1", "O", false, true), - AtomSpec(8, "OE2", "OE2", "O", false, true), - AtomSpec(9, "OXT", "OXT", "O", true, true), - AtomSpec(10, "H", "H", "H", false, true), - AtomSpec(11, "H2", "HN2", "H", true, true), - AtomSpec(12, "HA", "HA", "H", false, true), - AtomSpec(13, "HB2", "HB1", "H", false, true), - AtomSpec(14, "HB3", "HB2", "H", false, true), - AtomSpec(15, "HG2", "HG1", "H", false, true), - AtomSpec(16, "HG3", "HG2", "H", false, true), - AtomSpec(17, "HE2", "HE2", "H", false, true), - AtomSpec(18, "HXT", "HXT", "H", true, true) + AtomSpec(0, "N", "N", "N", false, true,0), + AtomSpec(1, "CA", "CA", "C", false, true,0), + AtomSpec(2, "C", "C", "C", false, true,0), + AtomSpec(3, "O", "O", "O", false, true,0), + AtomSpec(4, "CB", "CB", "C", false, true,0), + AtomSpec(5, "CG", "CG", "C", false, true,0), + AtomSpec(6, "CD", "CD", "C", false, true,0), + AtomSpec(7, "OE1", "OE1", "O", false, true,0), + AtomSpec(8, "OE2", "OE2", "O", false, true,0), + AtomSpec(9, "OXT", "OXT", "O", true, true,0), + AtomSpec(10, "H", "H", "H", false, true,0), + AtomSpec(11, "H2", "HN2", "H", true, true,0), + AtomSpec(12, "HA", "HA", "H", false, true,0), + AtomSpec(13, "HB2", "HB1", "H", false, true,0), + AtomSpec(14, "HB3", "HB2", "H", false, true,0), + AtomSpec(15, "HG2", "HG1", "H", false, true,0), + AtomSpec(16, "HG3", "HG2", "H", false, true,0), + AtomSpec(17, "HE2", "HE2", "H", false, true,0), + AtomSpec(18, "HXT", "HXT", "H", true, true,0) }; for (int i=0; i<19; ++i) { c->AddAtom(atoms[i]); } BondSpec bonds[] = { @@ -181,29 +181,29 @@ CompoundPtr MakePHECompound() { c->SetChemType(mol::ChemType('U')); c->SetFormula("C9 H11 N O2"); AtomSpec atoms[] = { - AtomSpec(0, "N", "N", "N", false, true), - AtomSpec(1, "CA", "CA", "C", false, true), - AtomSpec(2, "C", "C", "C", false, true), - AtomSpec(3, "O", "O", "O", false, true), - AtomSpec(4, "CB", "CB", "C", false, true), - AtomSpec(5, "CG", "CG", "C", false, true), - AtomSpec(6, "CD1", "CD1", "C", false, true), - AtomSpec(7, "CD2", "CD2", "C", false, true), - AtomSpec(8, "CE1", "CE1", "C", false, true), - AtomSpec(9, "CE2", "CE2", "C", false, true), - AtomSpec(10, "CZ", "CZ", "C", false, true), - AtomSpec(11, "OXT", "OXT", "O", true, true), - AtomSpec(12, "H", "H", "H", false, true), - AtomSpec(13, "H2", "HN2", "H", true, true), - AtomSpec(14, "HA", "HA", "H", false, true), - AtomSpec(15, "HB2", "1HB", "H", false, true), - AtomSpec(16, "HB3", "2HB", "H", false, true), - AtomSpec(17, "HD1", "HD1", "H", false, true), - AtomSpec(18, "HD2", "HD2", "H", false, true), - AtomSpec(19, "HE1", "HE1", "H", false, true), - AtomSpec(20, "HE2", "HE2", "H", false, true), - AtomSpec(21, "HZ", "HZ", "H", false, true), - AtomSpec(22, "HXT", "HXT", "H", true, true) + AtomSpec(0, "N", "N", "N", false, true,0), + AtomSpec(1, "CA", "CA", "C", false, true,0), + AtomSpec(2, "C", "C", "C", false, true,0), + AtomSpec(3, "O", "O", "O", false, true,0), + AtomSpec(4, "CB", "CB", "C", false, true,0), + AtomSpec(5, "CG", "CG", "C", false, true,0), + AtomSpec(6, "CD1", "CD1", "C", false, true,0), + AtomSpec(7, "CD2", "CD2", "C", false, true,0), + AtomSpec(8, "CE1", "CE1", "C", false, true,0), + AtomSpec(9, "CE2", "CE2", "C", false, true,0), + AtomSpec(10, "CZ", "CZ", "C", false, true,0), + AtomSpec(11, "OXT", "OXT", "O", true, true,0), + AtomSpec(12, "H", "H", "H", false, true,0), + AtomSpec(13, "H2", "HN2", "H", true, true,0), + AtomSpec(14, "HA", "HA", "H", false, true,0), + AtomSpec(15, "HB2", "1HB", "H", false, true,0), + AtomSpec(16, "HB3", "2HB", "H", false, true,0), + AtomSpec(17, "HD1", "HD1", "H", false, true,0), + AtomSpec(18, "HD2", "HD2", "H", false, true,0), + AtomSpec(19, "HE1", "HE1", "H", false, true,0), + AtomSpec(20, "HE2", "HE2", "H", false, true,0), + AtomSpec(21, "HZ", "HZ", "H", false, true,0), + AtomSpec(22, "HXT", "HXT", "H", true, true,0) }; for (int i=0; i<23; ++i) { c->AddAtom(atoms[i]); } BondSpec bonds[] = { @@ -241,16 +241,16 @@ CompoundPtr MakeGLYCompound() { c->SetChemType(mol::ChemType('U')); c->SetFormula("C2 H5 N O2"); AtomSpec atoms[] = { - AtomSpec(0, "N", "N", "N", false, true), - AtomSpec(1, "CA", "CA", "C", false, true), - AtomSpec(2, "C", "C", "C", false, true), - AtomSpec(3, "O", "O", "O", false, true), - AtomSpec(4, "OXT", "OXT", "O", true, true), - AtomSpec(5, "H", "H", "H", false, true), - AtomSpec(6, "H2", "HN2", "H", true, true), - AtomSpec(7, "HA2", "HA1", "H", false, true), - AtomSpec(8, "HA3", "HA2", "H", false, true), - AtomSpec(9, "HXT", "HXT", "H", true, true) + AtomSpec(0, "N", "N", "N", false, true,0), + AtomSpec(1, "CA", "CA", "C", false, true,0), + AtomSpec(2, "C", "C", "C", false, true,0), + AtomSpec(3, "O", "O", "O", false, true,0), + AtomSpec(4, "OXT", "OXT", "O", true, true,0), + AtomSpec(5, "H", "H", "H", false, true,0), + AtomSpec(6, "H2", "HN2", "H", true, true,0), + AtomSpec(7, "HA2", "HA1", "H", false, true,0), + AtomSpec(8, "HA3", "HA2", "H", false, true,0), + AtomSpec(9, "HXT", "HXT", "H", true, true,0) }; for (int i=0; i<10; ++i) { c->AddAtom(atoms[i]); } BondSpec bonds[] = { @@ -274,27 +274,27 @@ CompoundPtr MakeHISCompound() { c->SetChemType(mol::ChemType('U')); c->SetFormula("C6 H10 N3 O2"); AtomSpec atoms[] = { - AtomSpec(0, "N", "N", "N", false, true), - AtomSpec(1, "CA", "CA", "C", false, true), - AtomSpec(2, "C", "C", "C", false, true), - AtomSpec(3, "O", "O", "O", false, true), - AtomSpec(4, "CB", "CB", "C", false, true), - AtomSpec(5, "CG", "CG", "C", false, true), - AtomSpec(6, "ND1", "ND1", "N", false, true), - AtomSpec(7, "CD2", "CD2", "C", false, true), - AtomSpec(8, "CE1", "CE1", "C", false, true), - AtomSpec(9, "NE2", "NE2", "N", false, true), - AtomSpec(10, "OXT", "OXT", "O", true, true), - AtomSpec(11, "H", "H", "H", false, true), - AtomSpec(12, "H2", "HN2", "H", true, true), - AtomSpec(13, "HA", "HA", "H", false, true), - AtomSpec(14, "HB2", "1HB", "H", false, true), - AtomSpec(15, "HB3", "2HB", "H", false, true), - AtomSpec(16, "HD1", "HD1", "H", false, true), - AtomSpec(17, "HD2", "HD2", "H", false, true), - AtomSpec(18, "HE1", "HE1", "H", false, true), - AtomSpec(19, "HE2", "HE2", "H", false, true), - AtomSpec(20, "HXT", "HXT", "H", true, true) + AtomSpec(0, "N", "N", "N", false, true,0), + AtomSpec(1, "CA", "CA", "C", false, true,0), + AtomSpec(2, "C", "C", "C", false, true,0), + AtomSpec(3, "O", "O", "O", false, true,0), + AtomSpec(4, "CB", "CB", "C", false, true,0), + AtomSpec(5, "CG", "CG", "C", false, true,0), + AtomSpec(6, "ND1", "ND1", "N", false, true,0), + AtomSpec(7, "CD2", "CD2", "C", false, true,0), + AtomSpec(8, "CE1", "CE1", "C", false, true,0), + AtomSpec(9, "NE2", "NE2", "N", false, true,0), + AtomSpec(10, "OXT", "OXT", "O", true, true,0), + AtomSpec(11, "H", "H", "H", false, true,0), + AtomSpec(12, "H2", "HN2", "H", true, true,0), + AtomSpec(13, "HA", "HA", "H", false, true,0), + AtomSpec(14, "HB2", "1HB", "H", false, true,0), + AtomSpec(15, "HB3", "2HB", "H", false, true,0), + AtomSpec(16, "HD1", "HD1", "H", false, true,0), + AtomSpec(17, "HD2", "HD2", "H", false, true,0), + AtomSpec(18, "HE1", "HE1", "H", false, true,0), + AtomSpec(19, "HE2", "HE2", "H", false, true,0), + AtomSpec(20, "HXT", "HXT", "H", true, true,0) }; for (int i=0; i<21; ++i) { c->AddAtom(atoms[i]); } BondSpec bonds[] = { @@ -330,28 +330,28 @@ CompoundPtr MakeILECompound() { c->SetChemType(mol::ChemType('U')); c->SetFormula("C6 H13 N O2"); AtomSpec atoms[] = { - AtomSpec(0, "N", "N", "N", false, true), - AtomSpec(1, "CA", "CA", "C", false, true), - AtomSpec(2, "C", "C", "C", false, true), - AtomSpec(3, "O", "O", "O", false, true), - AtomSpec(4, "CB", "CB", "C", false, true), - AtomSpec(5, "CG1", "CG1", "C", false, true), - AtomSpec(6, "CG2", "CG2", "C", false, true), - AtomSpec(7, "CD1", "CD1", "C", false, true), - AtomSpec(8, "OXT", "OXT", "O", true, true), - AtomSpec(9, "H", "H", "H", false, true), - AtomSpec(10, "H2", "HN2", "H", true, true), - AtomSpec(11, "HA", "HA", "H", false, true), - AtomSpec(12, "HB", "HB", "H", false, true), - AtomSpec(13, "HG12", "1HG1", "H", false, true), - AtomSpec(14, "HG13", "2HG1", "H", false, true), - AtomSpec(15, "HG21", "1HG2", "H", false, true), - AtomSpec(16, "HG22", "2HG2", "H", false, true), - AtomSpec(17, "HG23", "3HG2", "H", false, true), - AtomSpec(18, "HD11", "1HD1", "H", false, true), - AtomSpec(19, "HD12", "2HD1", "H", false, true), - AtomSpec(20, "HD13", "3HD1", "H", false, true), - AtomSpec(21, "HXT", "HXT", "H", true, true) + AtomSpec(0, "N", "N", "N", false, true,0), + AtomSpec(1, "CA", "CA", "C", false, true,0), + AtomSpec(2, "C", "C", "C", false, true,0), + AtomSpec(3, "O", "O", "O", false, true,0), + AtomSpec(4, "CB", "CB", "C", false, true,0), + AtomSpec(5, "CG1", "CG1", "C", false, true,0), + AtomSpec(6, "CG2", "CG2", "C", false, true,0), + AtomSpec(7, "CD1", "CD1", "C", false, true,0), + AtomSpec(8, "OXT", "OXT", "O", true, true,0), + AtomSpec(9, "H", "H", "H", false, true,0), + AtomSpec(10, "H2", "HN2", "H", true, true,0), + AtomSpec(11, "HA", "HA", "H", false, true,0), + AtomSpec(12, "HB", "HB", "H", false, true,0), + AtomSpec(13, "HG12", "1HG1", "H", false, true,0), + AtomSpec(14, "HG13", "2HG1", "H", false, true,0), + AtomSpec(15, "HG21", "1HG2", "H", false, true,0), + AtomSpec(16, "HG22", "2HG2", "H", false, true,0), + AtomSpec(17, "HG23", "3HG2", "H", false, true,0), + AtomSpec(18, "HD11", "1HD1", "H", false, true,0), + AtomSpec(19, "HD12", "2HD1", "H", false, true,0), + AtomSpec(20, "HD13", "3HD1", "H", false, true,0), + AtomSpec(21, "HXT", "HXT", "H", true, true,0) }; for (int i=0; i<22; ++i) { c->AddAtom(atoms[i]); } BondSpec bonds[] = { @@ -387,31 +387,31 @@ CompoundPtr MakeLYSCompound() { c->SetChemType(mol::ChemType('U')); c->SetFormula("C6 H15 N2 O2"); AtomSpec atoms[] = { - AtomSpec(0, "N", "N", "N", false, true), - AtomSpec(1, "CA", "CA", "C", false, true), - AtomSpec(2, "C", "C", "C", false, true), - AtomSpec(3, "O", "O", "O", false, true), - AtomSpec(4, "CB", "CB", "C", false, true), - AtomSpec(5, "CG", "CG", "C", false, true), - AtomSpec(6, "CD", "CD", "C", false, true), - AtomSpec(7, "CE", "CE", "C", false, true), - AtomSpec(8, "NZ", "NZ", "N", false, true), - AtomSpec(9, "OXT", "OXT", "O", true, true), - AtomSpec(10, "H", "H", "H", false, true), - AtomSpec(11, "H2", "HN2", "H", true, true), - AtomSpec(12, "HA", "HA", "H", false, true), - AtomSpec(13, "HB2", "1HB", "H", false, true), - AtomSpec(14, "HB3", "2HB", "H", false, true), - AtomSpec(15, "HG2", "1HG", "H", false, true), - AtomSpec(16, "HG3", "2HG", "H", false, true), - AtomSpec(17, "HD2", "1HD", "H", false, true), - AtomSpec(18, "HD3", "2HD", "H", false, true), - AtomSpec(19, "HE2", "1HE", "H", false, true), - AtomSpec(20, "HE3", "2HE", "H", false, true), - AtomSpec(21, "HZ1", "1HZ", "H", false, true), - AtomSpec(22, "HZ2", "2HZ", "H", false, true), - AtomSpec(23, "HZ3", "3HZ", "H", false, true), - AtomSpec(24, "HXT", "HXT", "H", true, true) + AtomSpec(0, "N", "N", "N", false, true,0), + AtomSpec(1, "CA", "CA", "C", false, true,0), + AtomSpec(2, "C", "C", "C", false, true,0), + AtomSpec(3, "O", "O", "O", false, true,0), + AtomSpec(4, "CB", "CB", "C", false, true,0), + AtomSpec(5, "CG", "CG", "C", false, true,0), + AtomSpec(6, "CD", "CD", "C", false, true,0), + AtomSpec(7, "CE", "CE", "C", false, true,0), + AtomSpec(8, "NZ", "NZ", "N", false, true,0), + AtomSpec(9, "OXT", "OXT", "O", true, true,0), + AtomSpec(10, "H", "H", "H", false, true,0), + AtomSpec(11, "H2", "HN2", "H", true, true,0), + AtomSpec(12, "HA", "HA", "H", false, true,0), + AtomSpec(13, "HB2", "1HB", "H", false, true,0), + AtomSpec(14, "HB3", "2HB", "H", false, true,0), + AtomSpec(15, "HG2", "1HG", "H", false, true,0), + AtomSpec(16, "HG3", "2HG", "H", false, true,0), + AtomSpec(17, "HD2", "1HD", "H", false, true,0), + AtomSpec(18, "HD3", "2HD", "H", false, true,0), + AtomSpec(19, "HE2", "1HE", "H", false, true,0), + AtomSpec(20, "HE3", "2HE", "H", false, true,0), + AtomSpec(21, "HZ1", "1HZ", "H", false, true,0), + AtomSpec(22, "HZ2", "2HZ", "H", false, true,0), + AtomSpec(23, "HZ3", "3HZ", "H", false, true,0), + AtomSpec(24, "HXT", "HXT", "H", true, true,0) }; for (int i=0; i<25; ++i) { c->AddAtom(atoms[i]); } BondSpec bonds[] = { @@ -450,28 +450,28 @@ CompoundPtr MakeLEUCompound() { c->SetChemType(mol::ChemType('U')); c->SetFormula("C6 H13 N O2"); AtomSpec atoms[] = { - AtomSpec(0, "N", "N", "N", false, true), - AtomSpec(1, "CA", "CA", "C", false, true), - AtomSpec(2, "C", "C", "C", false, true), - AtomSpec(3, "O", "O", "O", false, true), - AtomSpec(4, "CB", "CB", "C", false, true), - AtomSpec(5, "CG", "CG", "C", false, true), - AtomSpec(6, "CD1", "CD1", "C", false, true), - AtomSpec(7, "CD2", "CD2", "C", false, true), - AtomSpec(8, "OXT", "OXT", "O", true, true), - AtomSpec(9, "H", "H", "H", false, true), - AtomSpec(10, "H2", "HN2", "H", true, true), - AtomSpec(11, "HA", "HA", "H", false, true), - AtomSpec(12, "HB2", "1HB", "H", false, true), - AtomSpec(13, "HB3", "2HB", "H", false, true), - AtomSpec(14, "HG", "HG", "H", false, true), - AtomSpec(15, "HD11", "1HD1", "H", false, true), - AtomSpec(16, "HD12", "2HD1", "H", false, true), - AtomSpec(17, "HD13", "3HD1", "H", false, true), - AtomSpec(18, "HD21", "1HD2", "H", false, true), - AtomSpec(19, "HD22", "2HD2", "H", false, true), - AtomSpec(20, "HD23", "3HD2", "H", false, true), - AtomSpec(21, "HXT", "HXT", "H", true, true) + AtomSpec(0, "N", "N", "N", false, true,0), + AtomSpec(1, "CA", "CA", "C", false, true,0), + AtomSpec(2, "C", "C", "C", false, true,0), + AtomSpec(3, "O", "O", "O", false, true,0), + AtomSpec(4, "CB", "CB", "C", false, true,0), + AtomSpec(5, "CG", "CG", "C", false, true,0), + AtomSpec(6, "CD1", "CD1", "C", false, true,0), + AtomSpec(7, "CD2", "CD2", "C", false, true,0), + AtomSpec(8, "OXT", "OXT", "O", true, true,0), + AtomSpec(9, "H", "H", "H", false, true,0), + AtomSpec(10, "H2", "HN2", "H", true, true,0), + AtomSpec(11, "HA", "HA", "H", false, true,0), + AtomSpec(12, "HB2", "1HB", "H", false, true,0), + AtomSpec(13, "HB3", "2HB", "H", false, true,0), + AtomSpec(14, "HG", "HG", "H", false, true,0), + AtomSpec(15, "HD11", "1HD1", "H", false, true,0), + AtomSpec(16, "HD12", "2HD1", "H", false, true,0), + AtomSpec(17, "HD13", "3HD1", "H", false, true,0), + AtomSpec(18, "HD21", "1HD2", "H", false, true,0), + AtomSpec(19, "HD22", "2HD2", "H", false, true,0), + AtomSpec(20, "HD23", "3HD2", "H", false, true,0), + AtomSpec(21, "HXT", "HXT", "H", true, true,0) }; for (int i=0; i<22; ++i) { c->AddAtom(atoms[i]); } BondSpec bonds[] = { @@ -507,26 +507,26 @@ CompoundPtr MakeMETCompound() { c->SetChemType(mol::ChemType('U')); c->SetFormula("C5 H11 N O2 S"); AtomSpec atoms[] = { - AtomSpec(0, "N", "N", "N", false, true), - AtomSpec(1, "CA", "CA", "C", false, true), - AtomSpec(2, "C", "C", "C", false, true), - AtomSpec(3, "O", "O", "O", false, true), - AtomSpec(4, "CB", "CB", "C", false, true), - AtomSpec(5, "CG", "CG", "C", false, true), - AtomSpec(6, "SD", "SD", "S", false, true), - AtomSpec(7, "CE", "CE", "C", false, true), - AtomSpec(8, "OXT", "OXT", "O", true, true), - AtomSpec(9, "H", "H", "H", false, true), - AtomSpec(10, "H2", "HN2", "H", true, true), - AtomSpec(11, "HA", "HA", "H", false, true), - AtomSpec(12, "HB2", "1HB", "H", false, true), - AtomSpec(13, "HB3", "2HB", "H", false, true), - AtomSpec(14, "HG2", "1HG", "H", false, true), - AtomSpec(15, "HG3", "2HG", "H", false, true), - AtomSpec(16, "HE1", "1HE", "H", false, true), - AtomSpec(17, "HE2", "2HE", "H", false, true), - AtomSpec(18, "HE3", "3HE", "H", false, true), - AtomSpec(19, "HXT", "HXT", "H", true, true) + AtomSpec(0, "N", "N", "N", false, true,0), + AtomSpec(1, "CA", "CA", "C", false, true,0), + AtomSpec(2, "C", "C", "C", false, true,0), + AtomSpec(3, "O", "O", "O", false, true,0), + AtomSpec(4, "CB", "CB", "C", false, true,0), + AtomSpec(5, "CG", "CG", "C", false, true,0), + AtomSpec(6, "SD", "SD", "S", false, true,0), + AtomSpec(7, "CE", "CE", "C", false, true,0), + AtomSpec(8, "OXT", "OXT", "O", true, true,0), + AtomSpec(9, "H", "H", "H", false, true,0), + AtomSpec(10, "H2", "HN2", "H", true, true,0), + AtomSpec(11, "HA", "HA", "H", false, true,0), + AtomSpec(12, "HB2", "1HB", "H", false, true,0), + AtomSpec(13, "HB3", "2HB", "H", false, true,0), + AtomSpec(14, "HG2", "1HG", "H", false, true,0), + AtomSpec(15, "HG3", "2HG", "H", false, true,0), + AtomSpec(16, "HE1", "1HE", "H", false, true,0), + AtomSpec(17, "HE2", "2HE", "H", false, true,0), + AtomSpec(18, "HE3", "3HE", "H", false, true,0), + AtomSpec(19, "HXT", "HXT", "H", true, true,0) }; for (int i=0; i<20; ++i) { c->AddAtom(atoms[i]); } BondSpec bonds[] = { @@ -560,23 +560,23 @@ CompoundPtr MakeASNCompound() { c->SetChemType(mol::ChemType('U')); c->SetFormula("C4 H8 N2 O3"); AtomSpec atoms[] = { - AtomSpec(0, "N", "N", "N", false, true), - AtomSpec(1, "CA", "CA", "C", false, true), - AtomSpec(2, "C", "C", "C", false, true), - AtomSpec(3, "O", "O", "O", false, true), - AtomSpec(4, "CB", "CB", "C", false, true), - AtomSpec(5, "CG", "CG", "C", false, true), - AtomSpec(6, "OD1", "OD1", "O", false, true), - AtomSpec(7, "ND2", "ND2", "N", true, true), - AtomSpec(8, "OXT", "OXT", "O", true, true), - AtomSpec(9, "H", "H", "H", false, true), - AtomSpec(10, "H2", "HN2", "H", true, true), - AtomSpec(11, "HA", "HA", "H", false, true), - AtomSpec(12, "HB2", "HB1", "H", false, true), - AtomSpec(13, "HB3", "HB2", "H", false, true), - AtomSpec(14, "HD21", "HD21", "H", true, true), - AtomSpec(15, "HD22", "HD22", "H", true, true), - AtomSpec(16, "HXT", "HXT", "H", true, true) + AtomSpec(0, "N", "N", "N", false, true,0), + AtomSpec(1, "CA", "CA", "C", false, true,0), + AtomSpec(2, "C", "C", "C", false, true,0), + AtomSpec(3, "O", "O", "O", false, true,0), + AtomSpec(4, "CB", "CB", "C", false, true,0), + AtomSpec(5, "CG", "CG", "C", false, true,0), + AtomSpec(6, "OD1", "OD1", "O", false, true,0), + AtomSpec(7, "ND2", "ND2", "N", true, true,0), + AtomSpec(8, "OXT", "OXT", "O", true, true,0), + AtomSpec(9, "H", "H", "H", false, true,0), + AtomSpec(10, "H2", "HN2", "H", true, true,0), + AtomSpec(11, "HA", "HA", "H", false, true,0), + AtomSpec(12, "HB2", "HB1", "H", false, true,0), + AtomSpec(13, "HB3", "HB2", "H", false, true,0), + AtomSpec(14, "HD21", "HD21", "H", true, true,0), + AtomSpec(15, "HD22", "HD22", "H", true, true,0), + AtomSpec(16, "HXT", "HXT", "H", true, true,0) }; for (int i=0; i<17; ++i) { c->AddAtom(atoms[i]); } BondSpec bonds[] = { @@ -607,23 +607,23 @@ CompoundPtr MakePROCompound() { c->SetChemType(mol::ChemType('U')); c->SetFormula("C5 H9 N O2"); AtomSpec atoms[] = { - AtomSpec(0, "N", "N", "N", false, true), - AtomSpec(1, "CA", "CA", "C", false, true), - AtomSpec(2, "C", "C", "C", false, true), - AtomSpec(3, "O", "O", "O", false, true), - AtomSpec(4, "CB", "CB", "C", false, true), - AtomSpec(5, "CG", "CG", "C", false, true), - AtomSpec(6, "CD", "CD", "C", false, true), - AtomSpec(7, "OXT", "OXT", "O", true, true), - AtomSpec(8, "H", "HT1", "H", true, true), - AtomSpec(9, "HA", "HA", "H", false, true), - AtomSpec(10, "HB2", "1HB", "H", false, true), - AtomSpec(11, "HB3", "2HB", "H", false, true), - AtomSpec(12, "HG2", "1HG", "H", false, true), - AtomSpec(13, "HG3", "2HG", "H", false, true), - AtomSpec(14, "HD2", "1HD", "H", false, true), - AtomSpec(15, "HD3", "2HD", "H", false, true), - AtomSpec(16, "HXT", "HXT", "H", true, true) + AtomSpec(0, "N", "N", "N", false, true,0), + AtomSpec(1, "CA", "CA", "C", false, true,0), + AtomSpec(2, "C", "C", "C", false, true,0), + AtomSpec(3, "O", "O", "O", false, true,0), + AtomSpec(4, "CB", "CB", "C", false, true,0), + AtomSpec(5, "CG", "CG", "C", false, true,0), + AtomSpec(6, "CD", "CD", "C", false, true,0), + AtomSpec(7, "OXT", "OXT", "O", true, true,0), + AtomSpec(8, "H", "HT1", "H", true, true,0), + AtomSpec(9, "HA", "HA", "H", false, true,0), + AtomSpec(10, "HB2", "1HB", "H", false, true,0), + AtomSpec(11, "HB3", "2HB", "H", false, true,0), + AtomSpec(12, "HG2", "1HG", "H", false, true,0), + AtomSpec(13, "HG3", "2HG", "H", false, true,0), + AtomSpec(14, "HD2", "1HD", "H", false, true,0), + AtomSpec(15, "HD3", "2HD", "H", false, true,0), + AtomSpec(16, "HXT", "HXT", "H", true, true,0) }; for (int i=0; i<17; ++i) { c->AddAtom(atoms[i]); } BondSpec bonds[] = { @@ -655,26 +655,26 @@ CompoundPtr MakeGLNCompound() { c->SetChemType(mol::ChemType('U')); c->SetFormula("C5 H10 N2 O3"); AtomSpec atoms[] = { - AtomSpec(0, "N", "N", "N", false, true), - AtomSpec(1, "CA", "CA", "C", false, true), - AtomSpec(2, "C", "C", "C", false, true), - AtomSpec(3, "O", "O", "O", false, true), - AtomSpec(4, "CB", "CB", "C", false, true), - AtomSpec(5, "CG", "CG", "C", false, true), - AtomSpec(6, "CD", "CD", "C", false, true), - AtomSpec(7, "OE1", "OE1", "O", false, true), - AtomSpec(8, "NE2", "NE2", "N", false, true), - AtomSpec(9, "OXT", "OXT", "O", true, true), - AtomSpec(10, "H", "H", "H", false, true), - AtomSpec(11, "H2", "HN2", "H", true, true), - AtomSpec(12, "HA", "HA", "H", false, true), - AtomSpec(13, "HB2", "1HB", "H", false, true), - AtomSpec(14, "HB3", "2HB", "H", false, true), - AtomSpec(15, "HG2", "1HG", "H", false, true), - AtomSpec(16, "HG3", "2HG", "H", false, true), - AtomSpec(17, "HE21", "1HE2", "H", false, true), - AtomSpec(18, "HE22", "2HE2", "H", false, true), - AtomSpec(19, "HXT", "HXT", "H", true, true) + AtomSpec(0, "N", "N", "N", false, true,0), + AtomSpec(1, "CA", "CA", "C", false, true,0), + AtomSpec(2, "C", "C", "C", false, true,0), + AtomSpec(3, "O", "O", "O", false, true,0), + AtomSpec(4, "CB", "CB", "C", false, true,0), + AtomSpec(5, "CG", "CG", "C", false, true,0), + AtomSpec(6, "CD", "CD", "C", false, true,0), + AtomSpec(7, "OE1", "OE1", "O", false, true,0), + AtomSpec(8, "NE2", "NE2", "N", false, true,0), + AtomSpec(9, "OXT", "OXT", "O", true, true,0), + AtomSpec(10, "H", "H", "H", false, true,0), + AtomSpec(11, "H2", "HN2", "H", true, true,0), + AtomSpec(12, "HA", "HA", "H", false, true,0), + AtomSpec(13, "HB2", "1HB", "H", false, true,0), + AtomSpec(14, "HB3", "2HB", "H", false, true,0), + AtomSpec(15, "HG2", "1HG", "H", false, true,0), + AtomSpec(16, "HG3", "2HG", "H", false, true,0), + AtomSpec(17, "HE21", "1HE2", "H", false, true,0), + AtomSpec(18, "HE22", "2HE2", "H", false, true,0), + AtomSpec(19, "HXT", "HXT", "H", true, true,0) }; for (int i=0; i<20; ++i) { c->AddAtom(atoms[i]); } BondSpec bonds[] = { @@ -708,33 +708,33 @@ CompoundPtr MakeARGCompound() { c->SetChemType(mol::ChemType('U')); c->SetFormula("C6 H15 N4 O2"); AtomSpec atoms[] = { - AtomSpec(0, "N", "N", "N", false, true), - AtomSpec(1, "CA", "CA", "C", false, true), - AtomSpec(2, "C", "C", "C", false, true), - AtomSpec(3, "O", "O", "O", false, true), - AtomSpec(4, "CB", "CB", "C", false, true), - AtomSpec(5, "CG", "CG", "C", false, true), - AtomSpec(6, "CD", "CD", "C", false, true), - AtomSpec(7, "NE", "NE", "N", false, true), - AtomSpec(8, "CZ", "CZ", "C", false, true), - AtomSpec(9, "NH1", "NH1", "N", false, true), - AtomSpec(10, "NH2", "NH2", "N", false, true), - AtomSpec(11, "OXT", "OXT", "O", true, true), - AtomSpec(12, "H", "H", "H", false, true), - AtomSpec(13, "H2", "HN2", "H", true, true), - AtomSpec(14, "HA", "HA", "H", false, true), - AtomSpec(15, "HB2", "1HB", "H", false, true), - AtomSpec(16, "HB3", "2HB", "H", false, true), - AtomSpec(17, "HG2", "1HG", "H", false, true), - AtomSpec(18, "HG3", "2HG", "H", false, true), - AtomSpec(19, "HD2", "1HD", "H", false, true), - AtomSpec(20, "HD3", "2HD", "H", false, true), - AtomSpec(21, "HE", "HE", "H", false, true), - AtomSpec(22, "HH11", "1HH1", "H", false, true), - AtomSpec(23, "HH12", "2HH1", "H", false, true), - AtomSpec(24, "HH21", "1HH2", "H", false, true), - AtomSpec(25, "HH22", "2HH2", "H", false, true), - AtomSpec(26, "HXT", "HXT", "H", true, true) + AtomSpec(0, "N", "N", "N", false, true,0), + AtomSpec(1, "CA", "CA", "C", false, true,0), + AtomSpec(2, "C", "C", "C", false, true,0), + AtomSpec(3, "O", "O", "O", false, true,0), + AtomSpec(4, "CB", "CB", "C", false, true,0), + AtomSpec(5, "CG", "CG", "C", false, true,0), + AtomSpec(6, "CD", "CD", "C", false, true,0), + AtomSpec(7, "NE", "NE", "N", false, true,0), + AtomSpec(8, "CZ", "CZ", "C", false, true,0), + AtomSpec(9, "NH1", "NH1", "N", false, true,0), + AtomSpec(10, "NH2", "NH2", "N", false, true,0), + AtomSpec(11, "OXT", "OXT", "O", true, true,0), + AtomSpec(12, "H", "H", "H", false, true,0), + AtomSpec(13, "H2", "HN2", "H", true, true,0), + AtomSpec(14, "HA", "HA", "H", false, true,0), + AtomSpec(15, "HB2", "1HB", "H", false, true,0), + AtomSpec(16, "HB3", "2HB", "H", false, true,0), + AtomSpec(17, "HG2", "1HG", "H", false, true,0), + AtomSpec(18, "HG3", "2HG", "H", false, true,0), + AtomSpec(19, "HD2", "1HD", "H", false, true,0), + AtomSpec(20, "HD3", "2HD", "H", false, true,0), + AtomSpec(21, "HE", "HE", "H", false, true,0), + AtomSpec(22, "HH11", "1HH1", "H", false, true,0), + AtomSpec(23, "HH12", "2HH1", "H", false, true,0), + AtomSpec(24, "HH21", "1HH2", "H", false, true,0), + AtomSpec(25, "HH22", "2HH2", "H", false, true,0), + AtomSpec(26, "HXT", "HXT", "H", true, true,0) }; for (int i=0; i<27; ++i) { c->AddAtom(atoms[i]); } BondSpec bonds[] = { @@ -775,20 +775,20 @@ CompoundPtr MakeSERCompound() { c->SetChemType(mol::ChemType('U')); c->SetFormula("C3 H7 N O3"); AtomSpec atoms[] = { - AtomSpec(0, "N", "N", "N", false, true), - AtomSpec(1, "CA", "CA", "C", false, true), - AtomSpec(2, "C", "C", "C", false, true), - AtomSpec(3, "O", "O", "O", false, true), - AtomSpec(4, "CB", "CB", "C", false, true), - AtomSpec(5, "OG", "OG", "O", false, true), - AtomSpec(6, "OXT", "OXT", "O", true, true), - AtomSpec(7, "H", "H", "H", false, true), - AtomSpec(8, "H2", "HN2", "H", true, true), - AtomSpec(9, "HA", "HA", "H", false, true), - AtomSpec(10, "HB2", "1HB", "H", false, true), - AtomSpec(11, "HB3", "2HB", "H", false, true), - AtomSpec(12, "HG", "HG", "H", false, true), - AtomSpec(13, "HXT", "HXT", "H", true, true) + AtomSpec(0, "N", "N", "N", false, true,0), + AtomSpec(1, "CA", "CA", "C", false, true,0), + AtomSpec(2, "C", "C", "C", false, true,0), + AtomSpec(3, "O", "O", "O", false, true,0), + AtomSpec(4, "CB", "CB", "C", false, true,0), + AtomSpec(5, "OG", "OG", "O", false, true,0), + AtomSpec(6, "OXT", "OXT", "O", true, true,0), + AtomSpec(7, "H", "H", "H", false, true,0), + AtomSpec(8, "H2", "HN2", "H", true, true,0), + AtomSpec(9, "HA", "HA", "H", false, true,0), + AtomSpec(10, "HB2", "1HB", "H", false, true,0), + AtomSpec(11, "HB3", "2HB", "H", false, true,0), + AtomSpec(12, "HG", "HG", "H", false, true,0), + AtomSpec(13, "HXT", "HXT", "H", true, true,0) }; for (int i=0; i<14; ++i) { c->AddAtom(atoms[i]); } BondSpec bonds[] = { @@ -816,23 +816,23 @@ CompoundPtr MakeTHRCompound() { c->SetChemType(mol::ChemType('U')); c->SetFormula("C4 H9 N O3"); AtomSpec atoms[] = { - AtomSpec(0, "N", "N", "N", false, true), - AtomSpec(1, "CA", "CA", "C", false, true), - AtomSpec(2, "C", "C", "C", false, true), - AtomSpec(3, "O", "O", "O", false, true), - AtomSpec(4, "CB", "CB", "C", false, true), - AtomSpec(5, "OG1", "OG1", "O", false, true), - AtomSpec(6, "CG2", "CG2", "C", false, true), - AtomSpec(7, "OXT", "OXT", "O", true, true), - AtomSpec(8, "H", "H", "H", false, true), - AtomSpec(9, "H2", "HN2", "H", true, true), - AtomSpec(10, "HA", "HA", "H", false, true), - AtomSpec(11, "HB", "HB", "H", false, true), - AtomSpec(12, "HG1", "HG1", "H", false, true), - AtomSpec(13, "HG21", "1HG2", "H", false, true), - AtomSpec(14, "HG22", "2HG2", "H", false, true), - AtomSpec(15, "HG23", "3HG2", "H", false, true), - AtomSpec(16, "HXT", "HXT", "H", true, true) + AtomSpec(0, "N", "N", "N", false, true,0), + AtomSpec(1, "CA", "CA", "C", false, true,0), + AtomSpec(2, "C", "C", "C", false, true,0), + AtomSpec(3, "O", "O", "O", false, true,0), + AtomSpec(4, "CB", "CB", "C", false, true,0), + AtomSpec(5, "OG1", "OG1", "O", false, true,0), + AtomSpec(6, "CG2", "CG2", "C", false, true,0), + AtomSpec(7, "OXT", "OXT", "O", true, true,0), + AtomSpec(8, "H", "H", "H", false, true,0), + AtomSpec(9, "H2", "HN2", "H", true, true,0), + AtomSpec(10, "HA", "HA", "H", false, true,0), + AtomSpec(11, "HB", "HB", "H", false, true,0), + AtomSpec(12, "HG1", "HG1", "H", false, true,0), + AtomSpec(13, "HG21", "1HG2", "H", false, true,0), + AtomSpec(14, "HG22", "2HG2", "H", false, true,0), + AtomSpec(15, "HG23", "3HG2", "H", false, true,0), + AtomSpec(16, "HXT", "HXT", "H", true, true,0) }; for (int i=0; i<17; ++i) { c->AddAtom(atoms[i]); } BondSpec bonds[] = { @@ -863,25 +863,25 @@ CompoundPtr MakeVALCompound() { c->SetChemType(mol::ChemType('U')); c->SetFormula("C5 H11 N O2"); AtomSpec atoms[] = { - AtomSpec(0, "N", "N", "N", false, true), - AtomSpec(1, "CA", "CA", "C", false, true), - AtomSpec(2, "C", "C", "C", false, true), - AtomSpec(3, "O", "O", "O", false, true), - AtomSpec(4, "CB", "CB", "C", false, true), - AtomSpec(5, "CG1", "CG1", "C", false, true), - AtomSpec(6, "CG2", "CG2", "C", false, true), - AtomSpec(7, "OXT", "OXT", "O", true, true), - AtomSpec(8, "H", "H", "H", false, true), - AtomSpec(9, "H2", "HN2", "H", true, true), - AtomSpec(10, "HA", "HA", "H", false, true), - AtomSpec(11, "HB", "HB", "H", false, true), - AtomSpec(12, "HG11", "1HG1", "H", false, true), - AtomSpec(13, "HG12", "2HG1", "H", false, true), - AtomSpec(14, "HG13", "3HG1", "H", false, true), - AtomSpec(15, "HG21", "1HG2", "H", false, true), - AtomSpec(16, "HG22", "2HG2", "H", false, true), - AtomSpec(17, "HG23", "3HG2", "H", false, true), - AtomSpec(18, "HXT", "HXT", "H", true, true) + AtomSpec(0, "N", "N", "N", false, true,0), + AtomSpec(1, "CA", "CA", "C", false, true,0), + AtomSpec(2, "C", "C", "C", false, true,0), + AtomSpec(3, "O", "O", "O", false, true,0), + AtomSpec(4, "CB", "CB", "C", false, true,0), + AtomSpec(5, "CG1", "CG1", "C", false, true,0), + AtomSpec(6, "CG2", "CG2", "C", false, true,0), + AtomSpec(7, "OXT", "OXT", "O", true, true,0), + AtomSpec(8, "H", "H", "H", false, true,0), + AtomSpec(9, "H2", "HN2", "H", true, true,0), + AtomSpec(10, "HA", "HA", "H", false, true,0), + AtomSpec(11, "HB", "HB", "H", false, true,0), + AtomSpec(12, "HG11", "1HG1", "H", false, true,0), + AtomSpec(13, "HG12", "2HG1", "H", false, true,0), + AtomSpec(14, "HG13", "3HG1", "H", false, true,0), + AtomSpec(15, "HG21", "1HG2", "H", false, true,0), + AtomSpec(16, "HG22", "2HG2", "H", false, true,0), + AtomSpec(17, "HG23", "3HG2", "H", false, true,0), + AtomSpec(18, "HXT", "HXT", "H", true, true,0) }; for (int i=0; i<19; ++i) { c->AddAtom(atoms[i]); } BondSpec bonds[] = { @@ -914,33 +914,33 @@ CompoundPtr MakeTRPCompound() { c->SetChemType(mol::ChemType('U')); c->SetFormula("C11 H12 N2 O2"); AtomSpec atoms[] = { - AtomSpec(0, "N", "N", "N", false, true), - AtomSpec(1, "CA", "CA", "C", false, true), - AtomSpec(2, "C", "C", "C", false, true), - AtomSpec(3, "O", "O", "O", false, true), - AtomSpec(4, "CB", "CB", "C", false, true), - AtomSpec(5, "CG", "CG", "C", false, true), - AtomSpec(6, "CD1", "CD1", "C", false, true), - AtomSpec(7, "CD2", "CD2", "C", false, true), - AtomSpec(8, "NE1", "NE1", "N", false, true), - AtomSpec(9, "CE2", "CE2", "C", false, true), - AtomSpec(10, "CE3", "CE3", "C", false, true), - AtomSpec(11, "CZ2", "CZ2", "C", false, true), - AtomSpec(12, "CZ3", "CZ3", "C", false, true), - AtomSpec(13, "CH2", "CH2", "C", false, true), - AtomSpec(14, "OXT", "OXT", "O", true, true), - AtomSpec(15, "H", "H", "H", false, true), - AtomSpec(16, "H2", "HN2", "H", true, true), - AtomSpec(17, "HA", "HA", "H", false, true), - AtomSpec(18, "HB2", "1HB", "H", false, true), - AtomSpec(19, "HB3", "2HB", "H", false, true), - AtomSpec(20, "HD1", "HD1", "H", false, true), - AtomSpec(21, "HE1", "HE1", "H", false, true), - AtomSpec(22, "HE3", "HE3", "H", false, true), - AtomSpec(23, "HZ2", "HZ2", "H", false, true), - AtomSpec(24, "HZ3", "HZ3", "H", false, true), - AtomSpec(25, "HH2", "HH2", "H", false, true), - AtomSpec(26, "HXT", "HXT", "H", true, true) + AtomSpec(0, "N", "N", "N", false, true,0), + AtomSpec(1, "CA", "CA", "C", false, true,0), + AtomSpec(2, "C", "C", "C", false, true,0), + AtomSpec(3, "O", "O", "O", false, true,0), + AtomSpec(4, "CB", "CB", "C", false, true,0), + AtomSpec(5, "CG", "CG", "C", false, true,0), + AtomSpec(6, "CD1", "CD1", "C", false, true,0), + AtomSpec(7, "CD2", "CD2", "C", false, true,0), + AtomSpec(8, "NE1", "NE1", "N", false, true,0), + AtomSpec(9, "CE2", "CE2", "C", false, true,0), + AtomSpec(10, "CE3", "CE3", "C", false, true,0), + AtomSpec(11, "CZ2", "CZ2", "C", false, true,0), + AtomSpec(12, "CZ3", "CZ3", "C", false, true,0), + AtomSpec(13, "CH2", "CH2", "C", false, true,0), + AtomSpec(14, "OXT", "OXT", "O", true, true,0), + AtomSpec(15, "H", "H", "H", false, true,0), + AtomSpec(16, "H2", "HN2", "H", true, true,0), + AtomSpec(17, "HA", "HA", "H", false, true,0), + AtomSpec(18, "HB2", "1HB", "H", false, true,0), + AtomSpec(19, "HB3", "2HB", "H", false, true,0), + AtomSpec(20, "HD1", "HD1", "H", false, true,0), + AtomSpec(21, "HE1", "HE1", "H", false, true,0), + AtomSpec(22, "HE3", "HE3", "H", false, true,0), + AtomSpec(23, "HZ2", "HZ2", "H", false, true,0), + AtomSpec(24, "HZ3", "HZ3", "H", false, true,0), + AtomSpec(25, "HH2", "HH2", "H", false, true,0), + AtomSpec(26, "HXT", "HXT", "H", true, true,0) }; for (int i=0; i<27; ++i) { c->AddAtom(atoms[i]); } BondSpec bonds[] = { @@ -983,30 +983,30 @@ CompoundPtr MakeTYRCompound() { c->SetChemType(mol::ChemType('U')); c->SetFormula("C9 H11 N O3"); AtomSpec atoms[] = { - AtomSpec(0, "N", "N", "N", false, true), - AtomSpec(1, "CA", "CA", "C", false, true), - AtomSpec(2, "C", "C", "C", false, true), - AtomSpec(3, "O", "O", "O", false, true), - AtomSpec(4, "CB", "CB", "C", false, true), - AtomSpec(5, "CG", "CG", "C", false, true), - AtomSpec(6, "CD1", "CD1", "C", false, true), - AtomSpec(7, "CD2", "CD2", "C", false, true), - AtomSpec(8, "CE1", "CE1", "C", false, true), - AtomSpec(9, "CE2", "CE2", "C", false, true), - AtomSpec(10, "CZ", "CZ", "C", false, true), - AtomSpec(11, "OH", "OH", "O", false, true), - AtomSpec(12, "OXT", "OXT", "O", true, true), - AtomSpec(13, "H", "H", "H", false, true), - AtomSpec(14, "H2", "HN2", "H", true, true), - AtomSpec(15, "HA", "HA", "H", false, true), - AtomSpec(16, "HB2", "1HB", "H", false, true), - AtomSpec(17, "HB3", "2HB", "H", false, true), - AtomSpec(18, "HD1", "HD1", "H", false, true), - AtomSpec(19, "HD2", "HD2", "H", false, true), - AtomSpec(20, "HE1", "HE1", "H", false, true), - AtomSpec(21, "HE2", "HE2", "H", false, true), - AtomSpec(22, "HH", "HH", "H", false, true), - AtomSpec(23, "HXT", "HXT", "H", true, true) + AtomSpec(0, "N", "N", "N", false, true,0), + AtomSpec(1, "CA", "CA", "C", false, true,0), + AtomSpec(2, "C", "C", "C", false, true,0), + AtomSpec(3, "O", "O", "O", false, true,0), + AtomSpec(4, "CB", "CB", "C", false, true,0), + AtomSpec(5, "CG", "CG", "C", false, true,0), + AtomSpec(6, "CD1", "CD1", "C", false, true,0), + AtomSpec(7, "CD2", "CD2", "C", false, true,0), + AtomSpec(8, "CE1", "CE1", "C", false, true,0), + AtomSpec(9, "CE2", "CE2", "C", false, true,0), + AtomSpec(10, "CZ", "CZ", "C", false, true,0), + AtomSpec(11, "OH", "OH", "O", false, true,0), + AtomSpec(12, "OXT", "OXT", "O", true, true,0), + AtomSpec(13, "H", "H", "H", false, true,0), + AtomSpec(14, "H2", "HN2", "H", true, true,0), + AtomSpec(15, "HA", "HA", "H", false, true,0), + AtomSpec(16, "HB2", "1HB", "H", false, true,0), + AtomSpec(17, "HB3", "2HB", "H", false, true,0), + AtomSpec(18, "HD1", "HD1", "H", false, true,0), + AtomSpec(19, "HD2", "HD2", "H", false, true,0), + AtomSpec(20, "HE1", "HE1", "H", false, true,0), + AtomSpec(21, "HE2", "HE2", "H", false, true,0), + AtomSpec(22, "HH", "HH", "H", false, true,0), + AtomSpec(23, "HXT", "HXT", "H", true, true,0) }; for (int i=0; i<24; ++i) { c->AddAtom(atoms[i]); } BondSpec bonds[] = { @@ -1045,44 +1045,44 @@ CompoundPtr MakeGCompound() { c->SetChemType(mol::ChemType('U')); c->SetFormula("C10 H14 N5 O8 P"); AtomSpec atoms[] = { - AtomSpec(0, "OP3", "O3P", "O", true, true), - AtomSpec(1, "P", "P", "P", false, true), - AtomSpec(2, "OP1", "O1P", "O", false, true), - AtomSpec(3, "OP2", "O2P", "O", false, true), - AtomSpec(4, "O5'", "O5*", "O", false, true), - AtomSpec(5, "C5'", "C5*", "C", false, true), - AtomSpec(6, "C4'", "C4*", "C", false, true), - AtomSpec(7, "O4'", "O4*", "O", false, true), - AtomSpec(8, "C3'", "C3*", "C", false, true), - AtomSpec(9, "O3'", "O3*", "O", false, true), - AtomSpec(10, "C2'", "C2*", "C", false, true), - AtomSpec(11, "O2'", "O2*", "O", false, true), - AtomSpec(12, "C1'", "C1*", "C", false, true), - AtomSpec(13, "N9", "N9", "N", false, true), - AtomSpec(14, "C8", "C8", "C", false, true), - AtomSpec(15, "N7", "N7", "N", false, true), - AtomSpec(16, "C5", "C5", "C", false, true), - AtomSpec(17, "C6", "C6", "C", false, true), - AtomSpec(18, "O6", "O6", "O", false, true), - AtomSpec(19, "N1", "N1", "N", false, true), - AtomSpec(20, "C2", "C2", "C", false, true), - AtomSpec(21, "N2", "N2", "N", false, true), - AtomSpec(22, "N3", "N3", "N", false, true), - AtomSpec(23, "C4", "C4", "C", false, true), - AtomSpec(24, "HOP3", "3HOP", "H", false, true), - AtomSpec(25, "HOP2", "2HOP", "H", false, true), - AtomSpec(26, "H5'", "1H5*", "H", false, true), - AtomSpec(27, "H5''", "2H5*", "H", false, true), - AtomSpec(28, "H4'", "H4*", "H", false, true), - AtomSpec(29, "H3'", "H3*", "H", false, true), - AtomSpec(30, "HO3'", "H3T", "H", true, true), - AtomSpec(31, "H2'", "H2*", "H", false, true), - AtomSpec(32, "HO2'", "2HO*", "H", false, true), - AtomSpec(33, "H1'", "H1*", "H", false, true), - AtomSpec(34, "H8", "H8", "H", false, true), - AtomSpec(35, "H1", "H1", "H", false, true), - AtomSpec(36, "H21", "1H2", "H", false, true), - AtomSpec(37, "H22", "2H2", "H", false, true) + AtomSpec(0, "OP3", "O3P", "O", true, true,0), + AtomSpec(1, "P", "P", "P", false, true,0), + AtomSpec(2, "OP1", "O1P", "O", false, true,0), + AtomSpec(3, "OP2", "O2P", "O", false, true,0), + AtomSpec(4, "O5'", "O5*", "O", false, true,0), + AtomSpec(5, "C5'", "C5*", "C", false, true,0), + AtomSpec(6, "C4'", "C4*", "C", false, true,0), + AtomSpec(7, "O4'", "O4*", "O", false, true,0), + AtomSpec(8, "C3'", "C3*", "C", false, true,0), + AtomSpec(9, "O3'", "O3*", "O", false, true,0), + AtomSpec(10, "C2'", "C2*", "C", false, true,0), + AtomSpec(11, "O2'", "O2*", "O", false, true,0), + AtomSpec(12, "C1'", "C1*", "C", false, true,0), + AtomSpec(13, "N9", "N9", "N", false, true,0), + AtomSpec(14, "C8", "C8", "C", false, true,0), + AtomSpec(15, "N7", "N7", "N", false, true,0), + AtomSpec(16, "C5", "C5", "C", false, true,0), + AtomSpec(17, "C6", "C6", "C", false, true,0), + AtomSpec(18, "O6", "O6", "O", false, true,0), + AtomSpec(19, "N1", "N1", "N", false, true,0), + AtomSpec(20, "C2", "C2", "C", false, true,0), + AtomSpec(21, "N2", "N2", "N", false, true,0), + AtomSpec(22, "N3", "N3", "N", false, true,0), + AtomSpec(23, "C4", "C4", "C", false, true,0), + AtomSpec(24, "HOP3", "3HOP", "H", false, true,0), + AtomSpec(25, "HOP2", "2HOP", "H", false, true,0), + AtomSpec(26, "H5'", "1H5*", "H", false, true,0), + AtomSpec(27, "H5''", "2H5*", "H", false, true,0), + AtomSpec(28, "H4'", "H4*", "H", false, true,0), + AtomSpec(29, "H3'", "H3*", "H", false, true,0), + AtomSpec(30, "HO3'", "H3T", "H", true, true,0), + AtomSpec(31, "H2'", "H2*", "H", false, true,0), + AtomSpec(32, "HO2'", "2HO*", "H", false, true,0), + AtomSpec(33, "H1'", "H1*", "H", false, true,0), + AtomSpec(34, "H8", "H8", "H", false, true,0), + AtomSpec(35, "H1", "H1", "H", false, true,0), + AtomSpec(36, "H21", "1H2", "H", false, true,0), + AtomSpec(37, "H22", "2H2", "H", false, true,0) }; for (int i=0; i<38; ++i) { c->AddAtom(atoms[i]); } BondSpec bonds[] = { @@ -1137,42 +1137,42 @@ CompoundPtr MakeTCompound() { c->SetChemType(mol::ChemType('U')); c->SetFormula("C10 H15 N2 O8 P"); AtomSpec atoms[] = { - AtomSpec(0, "OP3", "O3P", "O", true, true), - AtomSpec(1, "P", "P", "P", false, true), - AtomSpec(2, "OP1", "O1P", "O", false, true), - AtomSpec(3, "OP2", "O2P", "O", false, true), - AtomSpec(4, "O5'", "O5*", "O", false, true), - AtomSpec(5, "C5'", "C5*", "C", false, true), - AtomSpec(6, "C4'", "C4*", "C", false, true), - AtomSpec(7, "O4'", "O4*", "O", false, true), - AtomSpec(8, "C3'", "C3*", "C", false, true), - AtomSpec(9, "O3'", "O3*", "O", false, true), - AtomSpec(10, "C2'", "C2*", "C", false, true), - AtomSpec(11, "C1'", "C1*", "C", false, true), - AtomSpec(12, "N1", "N1", "N", false, true), - AtomSpec(13, "C2", "C2", "C", false, true), - AtomSpec(14, "O2", "O2", "O", false, true), - AtomSpec(15, "N3", "N3", "N", false, true), - AtomSpec(16, "C4", "C4", "C", false, true), - AtomSpec(17, "O4", "O4", "O", false, true), - AtomSpec(18, "C5", "C5", "C", false, true), - AtomSpec(19, "C7", "C5M", "C", false, true), - AtomSpec(20, "C6", "C6", "C", false, true), - AtomSpec(21, "HOP3", "3HOP", "H", false, true), - AtomSpec(22, "HOP2", "2HOP", "H", false, true), - AtomSpec(23, "H5'", "1H5*", "H", false, true), - AtomSpec(24, "H5''", "2H5*", "H", false, true), - AtomSpec(25, "H4'", "H4*", "H", false, true), - AtomSpec(26, "H3'", "H3*", "H", false, true), - AtomSpec(27, "HO3'", "H3T", "H", true, true), - AtomSpec(28, "H2'", "1H2*", "H", false, true), - AtomSpec(29, "H2''", "2H2*", "H", false, true), - AtomSpec(30, "H1'", "H1*", "H", false, true), - AtomSpec(31, "H3", "H3", "H", false, true), - AtomSpec(32, "H71", "1H5M", "H", false, true), - AtomSpec(33, "H72", "2H5M", "H", false, true), - AtomSpec(34, "H73", "3H5M", "H", false, true), - AtomSpec(35, "H6", "H6", "H", false, true) + AtomSpec(0, "OP3", "O3P", "O", true, true,0), + AtomSpec(1, "P", "P", "P", false, true,0), + AtomSpec(2, "OP1", "O1P", "O", false, true,0), + AtomSpec(3, "OP2", "O2P", "O", false, true,0), + AtomSpec(4, "O5'", "O5*", "O", false, true,0), + AtomSpec(5, "C5'", "C5*", "C", false, true,0), + AtomSpec(6, "C4'", "C4*", "C", false, true,0), + AtomSpec(7, "O4'", "O4*", "O", false, true,0), + AtomSpec(8, "C3'", "C3*", "C", false, true,0), + AtomSpec(9, "O3'", "O3*", "O", false, true,0), + AtomSpec(10, "C2'", "C2*", "C", false, true,0), + AtomSpec(11, "C1'", "C1*", "C", false, true,0), + AtomSpec(12, "N1", "N1", "N", false, true,0), + AtomSpec(13, "C2", "C2", "C", false, true,0), + AtomSpec(14, "O2", "O2", "O", false, true,0), + AtomSpec(15, "N3", "N3", "N", false, true,0), + AtomSpec(16, "C4", "C4", "C", false, true,0), + AtomSpec(17, "O4", "O4", "O", false, true,0), + AtomSpec(18, "C5", "C5", "C", false, true,0), + AtomSpec(19, "C7", "C5M", "C", false, true,0), + AtomSpec(20, "C6", "C6", "C", false, true,0), + AtomSpec(21, "HOP3", "3HOP", "H", false, true,0), + AtomSpec(22, "HOP2", "2HOP", "H", false, true,0), + AtomSpec(23, "H5'", "1H5*", "H", false, true,0), + AtomSpec(24, "H5''", "2H5*", "H", false, true,0), + AtomSpec(25, "H4'", "H4*", "H", false, true,0), + AtomSpec(26, "H3'", "H3*", "H", false, true,0), + AtomSpec(27, "HO3'", "H3T", "H", true, true,0), + AtomSpec(28, "H2'", "1H2*", "H", false, true,0), + AtomSpec(29, "H2''", "2H2*", "H", false, true,0), + AtomSpec(30, "H1'", "H1*", "H", false, true,0), + AtomSpec(31, "H3", "H3", "H", false, true,0), + AtomSpec(32, "H71", "1H5M", "H", false, true,0), + AtomSpec(33, "H72", "2H5M", "H", false, true,0), + AtomSpec(34, "H73", "3H5M", "H", false, true,0), + AtomSpec(35, "H6", "H6", "H", false, true,0) }; for (int i=0; i<36; ++i) { c->AddAtom(atoms[i]); } BondSpec bonds[] = { @@ -1224,43 +1224,43 @@ CompoundPtr MakeACompound() { c->SetChemType(mol::ChemType('U')); c->SetFormula("C10 H14 N5 O7 P"); AtomSpec atoms[] = { - AtomSpec(0, "OP3", "O3P", "O", true, true), - AtomSpec(1, "P", "P", "P", false, true), - AtomSpec(2, "OP1", "O1P", "O", false, true), - AtomSpec(3, "OP2", "O2P", "O", false, true), - AtomSpec(4, "O5'", "O5*", "O", false, true), - AtomSpec(5, "C5'", "C5*", "C", false, true), - AtomSpec(6, "C4'", "C4*", "C", false, true), - AtomSpec(7, "O4'", "O4*", "O", false, true), - AtomSpec(8, "C3'", "C3*", "C", false, true), - AtomSpec(9, "O3'", "O3*", "O", false, true), - AtomSpec(10, "C2'", "C2*", "C", false, true), - AtomSpec(11, "O2'", "O2*", "O", false, true), - AtomSpec(12, "C1'", "C1*", "C", false, true), - AtomSpec(13, "N9", "N9", "N", false, true), - AtomSpec(14, "C8", "C8", "C", false, true), - AtomSpec(15, "N7", "N7", "N", false, true), - AtomSpec(16, "C5", "C5", "C", false, true), - AtomSpec(17, "C6", "C6", "C", false, true), - AtomSpec(18, "N6", "N6", "N", false, true), - AtomSpec(19, "N1", "N1", "N", false, true), - AtomSpec(20, "C2", "C2", "C", false, true), - AtomSpec(21, "N3", "N3", "N", false, true), - AtomSpec(22, "C4", "C4", "C", false, true), - AtomSpec(23, "HOP3", "3HOP", "H", false, true), - AtomSpec(24, "HOP2", "2HOP", "H", false, true), - AtomSpec(25, "H5'", "1H5*", "H", false, true), - AtomSpec(26, "H5''", "2H5*", "H", false, true), - AtomSpec(27, "H4'", "H4*", "H", false, true), - AtomSpec(28, "H3'", "H3*", "H", false, true), - AtomSpec(29, "HO3'", "H3T", "H", true, true), - AtomSpec(30, "H2'", "H2*", "H", false, true), - AtomSpec(31, "HO2'", "2HO*", "H", false, true), - AtomSpec(32, "H1'", "H1*", "H", false, true), - AtomSpec(33, "H8", "H8", "H", false, true), - AtomSpec(34, "H61", "1H6", "H", false, true), - AtomSpec(35, "H62", "2H6", "H", false, true), - AtomSpec(36, "H2", "H2", "H", false, true) + AtomSpec(0, "OP3", "O3P", "O", true, true,0), + AtomSpec(1, "P", "P", "P", false, true,0), + AtomSpec(2, "OP1", "O1P", "O", false, true,0), + AtomSpec(3, "OP2", "O2P", "O", false, true,0), + AtomSpec(4, "O5'", "O5*", "O", false, true,0), + AtomSpec(5, "C5'", "C5*", "C", false, true,0), + AtomSpec(6, "C4'", "C4*", "C", false, true,0), + AtomSpec(7, "O4'", "O4*", "O", false, true,0), + AtomSpec(8, "C3'", "C3*", "C", false, true,0), + AtomSpec(9, "O3'", "O3*", "O", false, true,0), + AtomSpec(10, "C2'", "C2*", "C", false, true,0), + AtomSpec(11, "O2'", "O2*", "O", false, true,0), + AtomSpec(12, "C1'", "C1*", "C", false, true,0), + AtomSpec(13, "N9", "N9", "N", false, true,0), + AtomSpec(14, "C8", "C8", "C", false, true,0), + AtomSpec(15, "N7", "N7", "N", false, true,0), + AtomSpec(16, "C5", "C5", "C", false, true,0), + AtomSpec(17, "C6", "C6", "C", false, true,0), + AtomSpec(18, "N6", "N6", "N", false, true,0), + AtomSpec(19, "N1", "N1", "N", false, true,0), + AtomSpec(20, "C2", "C2", "C", false, true,0), + AtomSpec(21, "N3", "N3", "N", false, true,0), + AtomSpec(22, "C4", "C4", "C", false, true,0), + AtomSpec(23, "HOP3", "3HOP", "H", false, true,0), + AtomSpec(24, "HOP2", "2HOP", "H", false, true,0), + AtomSpec(25, "H5'", "1H5*", "H", false, true,0), + AtomSpec(26, "H5''", "2H5*", "H", false, true,0), + AtomSpec(27, "H4'", "H4*", "H", false, true,0), + AtomSpec(28, "H3'", "H3*", "H", false, true,0), + AtomSpec(29, "HO3'", "H3T", "H", true, true,0), + AtomSpec(30, "H2'", "H2*", "H", false, true,0), + AtomSpec(31, "HO2'", "2HO*", "H", false, true,0), + AtomSpec(32, "H1'", "H1*", "H", false, true,0), + AtomSpec(33, "H8", "H8", "H", false, true,0), + AtomSpec(34, "H61", "1H6", "H", false, true,0), + AtomSpec(35, "H62", "2H6", "H", false, true,0), + AtomSpec(36, "H2", "H2", "H", false, true,0) }; for (int i=0; i<37; ++i) { c->AddAtom(atoms[i]); } BondSpec bonds[] = { @@ -1314,41 +1314,41 @@ CompoundPtr MakeCCompound() { c->SetChemType(mol::ChemType('U')); c->SetFormula("C9 H14 N3 O8 P"); AtomSpec atoms[] = { - AtomSpec(0, "OP3", "O3P", "O", true, true), - AtomSpec(1, "P", "P", "P", false, true), - AtomSpec(2, "OP1", "O1P", "O", false, true), - AtomSpec(3, "OP2", "O2P", "O", false, true), - AtomSpec(4, "O5'", "O5*", "O", false, true), - AtomSpec(5, "C5'", "C5*", "C", false, true), - AtomSpec(6, "C4'", "C4*", "C", false, true), - AtomSpec(7, "O4'", "O4*", "O", false, true), - AtomSpec(8, "C3'", "C3*", "C", false, true), - AtomSpec(9, "O3'", "O3*", "O", false, true), - AtomSpec(10, "C2'", "C2*", "C", false, true), - AtomSpec(11, "O2'", "O2*", "O", false, true), - AtomSpec(12, "C1'", "C1*", "C", false, true), - AtomSpec(13, "N1", "N1", "N", false, true), - AtomSpec(14, "C2", "C2", "C", false, true), - AtomSpec(15, "O2", "O2", "O", false, true), - AtomSpec(16, "N3", "N3", "N", false, true), - AtomSpec(17, "C4", "C4", "C", false, true), - AtomSpec(18, "N4", "N4", "N", false, true), - AtomSpec(19, "C5", "C5", "C", false, true), - AtomSpec(20, "C6", "C6", "C", false, true), - AtomSpec(21, "HOP3", "3HOP", "H", false, true), - AtomSpec(22, "HOP2", "2HOP", "H", false, true), - AtomSpec(23, "H5'", "1H5*", "H", false, true), - AtomSpec(24, "H5''", "2H5*", "H", false, true), - AtomSpec(25, "H4'", "H4*", "H", false, true), - AtomSpec(26, "H3'", "H3*", "H", false, true), - AtomSpec(27, "HO3'", "H3T", "H", true, true), - AtomSpec(28, "H2'", "H2*", "H", false, true), - AtomSpec(29, "HO2'", "2HO*", "H", false, true), - AtomSpec(30, "H1'", "H1*", "H", false, true), - AtomSpec(31, "H41", "1H4", "H", false, true), - AtomSpec(32, "H42", "2H4", "H", false, true), - AtomSpec(33, "H5", "H5", "H", false, true), - AtomSpec(34, "H6", "H6", "H", false, true) + AtomSpec(0, "OP3", "O3P", "O", true, true,0), + AtomSpec(1, "P", "P", "P", false, true,0), + AtomSpec(2, "OP1", "O1P", "O", false, true,0), + AtomSpec(3, "OP2", "O2P", "O", false, true,0), + AtomSpec(4, "O5'", "O5*", "O", false, true,0), + AtomSpec(5, "C5'", "C5*", "C", false, true,0), + AtomSpec(6, "C4'", "C4*", "C", false, true,0), + AtomSpec(7, "O4'", "O4*", "O", false, true,0), + AtomSpec(8, "C3'", "C3*", "C", false, true,0), + AtomSpec(9, "O3'", "O3*", "O", false, true,0), + AtomSpec(10, "C2'", "C2*", "C", false, true,0), + AtomSpec(11, "O2'", "O2*", "O", false, true,0), + AtomSpec(12, "C1'", "C1*", "C", false, true,0), + AtomSpec(13, "N1", "N1", "N", false, true,0), + AtomSpec(14, "C2", "C2", "C", false, true,0), + AtomSpec(15, "O2", "O2", "O", false, true,0), + AtomSpec(16, "N3", "N3", "N", false, true,0), + AtomSpec(17, "C4", "C4", "C", false, true,0), + AtomSpec(18, "N4", "N4", "N", false, true,0), + AtomSpec(19, "C5", "C5", "C", false, true,0), + AtomSpec(20, "C6", "C6", "C", false, true,0), + AtomSpec(21, "HOP3", "3HOP", "H", false, true,0), + AtomSpec(22, "HOP2", "2HOP", "H", false, true,0), + AtomSpec(23, "H5'", "1H5*", "H", false, true,0), + AtomSpec(24, "H5''", "2H5*", "H", false, true,0), + AtomSpec(25, "H4'", "H4*", "H", false, true,0), + AtomSpec(26, "H3'", "H3*", "H", false, true,0), + AtomSpec(27, "HO3'", "H3T", "H", true, true,0), + AtomSpec(28, "H2'", "H2*", "H", false, true,0), + AtomSpec(29, "HO2'", "2HO*", "H", false, true,0), + AtomSpec(30, "H1'", "H1*", "H", false, true,0), + AtomSpec(31, "H41", "1H4", "H", false, true,0), + AtomSpec(32, "H42", "2H4", "H", false, true,0), + AtomSpec(33, "H5", "H5", "H", false, true,0), + AtomSpec(34, "H6", "H6", "H", false, true,0) }; for (int i=0; i<35; ++i) { c->AddAtom(atoms[i]); } BondSpec bonds[] = { @@ -1399,40 +1399,40 @@ CompoundPtr MakeUCompound() { c->SetChemType(mol::ChemType('U')); c->SetFormula("C9 H13 N2 O9 P"); AtomSpec atoms[] = { - AtomSpec(0, "OP3", "O3P", "O", true, true), - AtomSpec(1, "P", "P", "P", false, true), - AtomSpec(2, "OP1", "O1P", "O", false, true), - AtomSpec(3, "OP2", "O2P", "O", false, true), - AtomSpec(4, "O5'", "O5*", "O", false, true), - AtomSpec(5, "C5'", "C5*", "C", false, true), - AtomSpec(6, "C4'", "C4*", "C", false, true), - AtomSpec(7, "O4'", "O4*", "O", false, true), - AtomSpec(8, "C3'", "C3*", "C", false, true), - AtomSpec(9, "O3'", "O3*", "O", false, true), - AtomSpec(10, "C2'", "C2*", "C", false, true), - AtomSpec(11, "O2'", "O2*", "O", false, true), - AtomSpec(12, "C1'", "C1*", "C", false, true), - AtomSpec(13, "N1", "N1", "N", false, true), - AtomSpec(14, "C2", "C2", "C", false, true), - AtomSpec(15, "O2", "O2", "O", false, true), - AtomSpec(16, "N3", "N3", "N", false, true), - AtomSpec(17, "C4", "C4", "C", false, true), - AtomSpec(18, "O4", "O4", "O", false, true), - AtomSpec(19, "C5", "C5", "C", false, true), - AtomSpec(20, "C6", "C6", "C", false, true), - AtomSpec(21, "HOP3", "3HOP", "H", false, true), - AtomSpec(22, "HOP2", "2HOP", "H", false, true), - AtomSpec(23, "H5'", "1H5*", "H", false, true), - AtomSpec(24, "H5''", "2H5*", "H", false, true), - AtomSpec(25, "H4'", "H4*", "H", false, true), - AtomSpec(26, "H3'", "H3*", "H", false, true), - AtomSpec(27, "HO3'", "H3T", "H", true, true), - AtomSpec(28, "H2'", "H2*", "H", false, true), - AtomSpec(29, "HO2'", "2HO*", "H", false, true), - AtomSpec(30, "H1'", "H1*", "H", false, true), - AtomSpec(31, "H3", "H3", "H", false, true), - AtomSpec(32, "H5", "H5", "H", false, true), - AtomSpec(33, "H6", "H6", "H", false, true) + AtomSpec(0, "OP3", "O3P", "O", true, true,0), + AtomSpec(1, "P", "P", "P", false, true,0), + AtomSpec(2, "OP1", "O1P", "O", false, true,0), + AtomSpec(3, "OP2", "O2P", "O", false, true,0), + AtomSpec(4, "O5'", "O5*", "O", false, true,0), + AtomSpec(5, "C5'", "C5*", "C", false, true,0), + AtomSpec(6, "C4'", "C4*", "C", false, true,0), + AtomSpec(7, "O4'", "O4*", "O", false, true,0), + AtomSpec(8, "C3'", "C3*", "C", false, true,0), + AtomSpec(9, "O3'", "O3*", "O", false, true,0), + AtomSpec(10, "C2'", "C2*", "C", false, true,0), + AtomSpec(11, "O2'", "O2*", "O", false, true,0), + AtomSpec(12, "C1'", "C1*", "C", false, true,0), + AtomSpec(13, "N1", "N1", "N", false, true,0), + AtomSpec(14, "C2", "C2", "C", false, true,0), + AtomSpec(15, "O2", "O2", "O", false, true,0), + AtomSpec(16, "N3", "N3", "N", false, true,0), + AtomSpec(17, "C4", "C4", "C", false, true,0), + AtomSpec(18, "O4", "O4", "O", false, true,0), + AtomSpec(19, "C5", "C5", "C", false, true,0), + AtomSpec(20, "C6", "C6", "C", false, true,0), + AtomSpec(21, "HOP3", "3HOP", "H", false, true,0), + AtomSpec(22, "HOP2", "2HOP", "H", false, true,0), + AtomSpec(23, "H5'", "1H5*", "H", false, true,0), + AtomSpec(24, "H5''", "2H5*", "H", false, true,0), + AtomSpec(25, "H4'", "H4*", "H", false, true,0), + AtomSpec(26, "H3'", "H3*", "H", false, true,0), + AtomSpec(27, "HO3'", "H3T", "H", true, true,0), + AtomSpec(28, "H2'", "H2*", "H", false, true,0), + AtomSpec(29, "HO2'", "2HO*", "H", false, true,0), + AtomSpec(30, "H1'", "H1*", "H", false, true,0), + AtomSpec(31, "H3", "H3", "H", false, true,0), + AtomSpec(32, "H5", "H5", "H", false, true,0), + AtomSpec(33, "H6", "H6", "H", false, true,0) }; for (int i=0; i<34; ++i) { c->AddAtom(atoms[i]); } BondSpec bonds[] = { @@ -1482,43 +1482,43 @@ CompoundPtr MakeDGCompound() { c->SetChemType(mol::ChemType('U')); c->SetFormula("C10 H14 N5 O7 P"); AtomSpec atoms[] = { - AtomSpec(0, "OP3", "O3P", "O", true, true), - AtomSpec(1, "P", "P", "P", false, true), - AtomSpec(2, "OP1", "O1P", "O", false, true), - AtomSpec(3, "OP2", "O2P", "O", false, true), - AtomSpec(4, "O5'", "O5*", "O", false, true), - AtomSpec(5, "C5'", "C5*", "C", false, true), - AtomSpec(6, "C4'", "C4*", "C", false, true), - AtomSpec(7, "O4'", "O4*", "O", false, true), - AtomSpec(8, "C3'", "C3*", "C", false, true), - AtomSpec(9, "O3'", "O3*", "O", false, true), - AtomSpec(10, "C2'", "C2*", "C", false, true), - AtomSpec(11, "C1'", "C1*", "C", false, true), - AtomSpec(12, "N9", "N9", "N", false, true), - AtomSpec(13, "C8", "C8", "C", false, true), - AtomSpec(14, "N7", "N7", "N", false, true), - AtomSpec(15, "C5", "C5", "C", false, true), - AtomSpec(16, "C6", "C6", "C", false, true), - AtomSpec(17, "O6", "O6", "O", false, true), - AtomSpec(18, "N1", "N1", "N", false, true), - AtomSpec(19, "C2", "C2", "C", false, true), - AtomSpec(20, "N2", "N2", "N", false, true), - AtomSpec(21, "N3", "N3", "N", false, true), - AtomSpec(22, "C4", "C4", "C", false, true), - AtomSpec(23, "HOP3", "3HOP", "H", false, true), - AtomSpec(24, "HOP2", "2HOP", "H", false, true), - AtomSpec(25, "H5'", "1H5*", "H", false, true), - AtomSpec(26, "H5''", "2H5*", "H", false, true), - AtomSpec(27, "H4'", "H4*", "H", false, true), - AtomSpec(28, "H3'", "H3*", "H", false, true), - AtomSpec(29, "HO3'", "H3T", "H", true, true), - AtomSpec(30, "H2'", "1H2*", "H", false, true), - AtomSpec(31, "H2''", "2H2*", "H", false, true), - AtomSpec(32, "H1'", "H1*", "H", false, true), - AtomSpec(33, "H8", "H8", "H", false, true), - AtomSpec(34, "H1", "H1", "H", false, true), - AtomSpec(35, "H21", "1H2", "H", false, true), - AtomSpec(36, "H22", "2H2", "H", false, true) + AtomSpec(0, "OP3", "O3P", "O", true, true,0), + AtomSpec(1, "P", "P", "P", false, true,0), + AtomSpec(2, "OP1", "O1P", "O", false, true,0), + AtomSpec(3, "OP2", "O2P", "O", false, true,0), + AtomSpec(4, "O5'", "O5*", "O", false, true,0), + AtomSpec(5, "C5'", "C5*", "C", false, true,0), + AtomSpec(6, "C4'", "C4*", "C", false, true,0), + AtomSpec(7, "O4'", "O4*", "O", false, true,0), + AtomSpec(8, "C3'", "C3*", "C", false, true,0), + AtomSpec(9, "O3'", "O3*", "O", false, true,0), + AtomSpec(10, "C2'", "C2*", "C", false, true,0), + AtomSpec(11, "C1'", "C1*", "C", false, true,0), + AtomSpec(12, "N9", "N9", "N", false, true,0), + AtomSpec(13, "C8", "C8", "C", false, true,0), + AtomSpec(14, "N7", "N7", "N", false, true,0), + AtomSpec(15, "C5", "C5", "C", false, true,0), + AtomSpec(16, "C6", "C6", "C", false, true,0), + AtomSpec(17, "O6", "O6", "O", false, true,0), + AtomSpec(18, "N1", "N1", "N", false, true,0), + AtomSpec(19, "C2", "C2", "C", false, true,0), + AtomSpec(20, "N2", "N2", "N", false, true,0), + AtomSpec(21, "N3", "N3", "N", false, true,0), + AtomSpec(22, "C4", "C4", "C", false, true,0), + AtomSpec(23, "HOP3", "3HOP", "H", false, true,0), + AtomSpec(24, "HOP2", "2HOP", "H", false, true,0), + AtomSpec(25, "H5'", "1H5*", "H", false, true,0), + AtomSpec(26, "H5''", "2H5*", "H", false, true,0), + AtomSpec(27, "H4'", "H4*", "H", false, true,0), + AtomSpec(28, "H3'", "H3*", "H", false, true,0), + AtomSpec(29, "HO3'", "H3T", "H", true, true,0), + AtomSpec(30, "H2'", "1H2*", "H", false, true,0), + AtomSpec(31, "H2''", "2H2*", "H", false, true,0), + AtomSpec(32, "H1'", "H1*", "H", false, true,0), + AtomSpec(33, "H8", "H8", "H", false, true,0), + AtomSpec(34, "H1", "H1", "H", false, true,0), + AtomSpec(35, "H21", "1H2", "H", false, true,0), + AtomSpec(36, "H22", "2H2", "H", false, true,0) }; for (int i=0; i<37; ++i) { c->AddAtom(atoms[i]); } BondSpec bonds[] = { @@ -1572,42 +1572,42 @@ CompoundPtr MakeDTCompound() { c->SetChemType(mol::ChemType('U')); c->SetFormula("C10 H15 N2 O8 P"); AtomSpec atoms[] = { - AtomSpec(0, "OP3", "O3P", "O", true, true), - AtomSpec(1, "P", "P", "P", false, true), - AtomSpec(2, "OP1", "O1P", "O", false, true), - AtomSpec(3, "OP2", "O2P", "O", false, true), - AtomSpec(4, "O5'", "O5*", "O", false, true), - AtomSpec(5, "C5'", "C5*", "C", false, true), - AtomSpec(6, "C4'", "C4*", "C", false, true), - AtomSpec(7, "O4'", "O4*", "O", false, true), - AtomSpec(8, "C3'", "C3*", "C", false, true), - AtomSpec(9, "O3'", "O3*", "O", false, true), - AtomSpec(10, "C2'", "C2*", "C", false, true), - AtomSpec(11, "C1'", "C1*", "C", false, true), - AtomSpec(12, "N1", "N1", "N", false, true), - AtomSpec(13, "C2", "C2", "C", false, true), - AtomSpec(14, "O2", "O2", "O", false, true), - AtomSpec(15, "N3", "N3", "N", false, true), - AtomSpec(16, "C4", "C4", "C", false, true), - AtomSpec(17, "O4", "O4", "O", false, true), - AtomSpec(18, "C5", "C5", "C", false, true), - AtomSpec(19, "C7", "C5M", "C", false, true), - AtomSpec(20, "C6", "C6", "C", false, true), - AtomSpec(21, "HOP3", "3HOP", "H", false, true), - AtomSpec(22, "HOP2", "2HOP", "H", false, true), - AtomSpec(23, "H5'", "1H5*", "H", false, true), - AtomSpec(24, "H5''", "2H5*", "H", false, true), - AtomSpec(25, "H4'", "H4*", "H", false, true), - AtomSpec(26, "H3'", "H3*", "H", false, true), - AtomSpec(27, "HO3'", "H3T", "H", true, true), - AtomSpec(28, "H2'", "1H2*", "H", false, true), - AtomSpec(29, "H2''", "2H2*", "H", false, true), - AtomSpec(30, "H1'", "H1*", "H", false, true), - AtomSpec(31, "H3", "H3", "H", false, true), - AtomSpec(32, "H71", "1H5M", "H", false, true), - AtomSpec(33, "H72", "2H5M", "H", false, true), - AtomSpec(34, "H73", "3H5M", "H", false, true), - AtomSpec(35, "H6", "H6", "H", false, true) + AtomSpec(0, "OP3", "O3P", "O", true, true,0), + AtomSpec(1, "P", "P", "P", false, true,0), + AtomSpec(2, "OP1", "O1P", "O", false, true,0), + AtomSpec(3, "OP2", "O2P", "O", false, true,0), + AtomSpec(4, "O5'", "O5*", "O", false, true,0), + AtomSpec(5, "C5'", "C5*", "C", false, true,0), + AtomSpec(6, "C4'", "C4*", "C", false, true,0), + AtomSpec(7, "O4'", "O4*", "O", false, true,0), + AtomSpec(8, "C3'", "C3*", "C", false, true,0), + AtomSpec(9, "O3'", "O3*", "O", false, true,0), + AtomSpec(10, "C2'", "C2*", "C", false, true,0), + AtomSpec(11, "C1'", "C1*", "C", false, true,0), + AtomSpec(12, "N1", "N1", "N", false, true,0), + AtomSpec(13, "C2", "C2", "C", false, true,0), + AtomSpec(14, "O2", "O2", "O", false, true,0), + AtomSpec(15, "N3", "N3", "N", false, true,0), + AtomSpec(16, "C4", "C4", "C", false, true,0), + AtomSpec(17, "O4", "O4", "O", false, true,0), + AtomSpec(18, "C5", "C5", "C", false, true,0), + AtomSpec(19, "C7", "C5M", "C", false, true,0), + AtomSpec(20, "C6", "C6", "C", false, true,0), + AtomSpec(21, "HOP3", "3HOP", "H", false, true,0), + AtomSpec(22, "HOP2", "2HOP", "H", false, true,0), + AtomSpec(23, "H5'", "1H5*", "H", false, true,0), + AtomSpec(24, "H5''", "2H5*", "H", false, true,0), + AtomSpec(25, "H4'", "H4*", "H", false, true,0), + AtomSpec(26, "H3'", "H3*", "H", false, true,0), + AtomSpec(27, "HO3'", "H3T", "H", true, true,0), + AtomSpec(28, "H2'", "1H2*", "H", false, true,0), + AtomSpec(29, "H2''", "2H2*", "H", false, true,0), + AtomSpec(30, "H1'", "H1*", "H", false, true,0), + AtomSpec(31, "H3", "H3", "H", false, true,0), + AtomSpec(32, "H71", "1H5M", "H", false, true,0), + AtomSpec(33, "H72", "2H5M", "H", false, true,0), + AtomSpec(34, "H73", "3H5M", "H", false, true,0), + AtomSpec(35, "H6", "H6", "H", false, true,0) }; for (int i=0; i<36; ++i) { c->AddAtom(atoms[i]); } BondSpec bonds[] = { @@ -1659,39 +1659,39 @@ CompoundPtr MakeDUCompound() { c->SetChemType(mol::ChemType('U')); c->SetFormula("C9 H13 N2 O8 P"); AtomSpec atoms[] = { - AtomSpec(0, "OP3", "O3P", "O", true, true), - AtomSpec(1, "P", "P", "P", false, true), - AtomSpec(2, "OP1", "O1P", "O", false, true), - AtomSpec(3, "OP2", "O2P", "O", false, true), - AtomSpec(4, "O5'", "O5*", "O", false, true), - AtomSpec(5, "C5'", "C5*", "C", false, true), - AtomSpec(6, "C4'", "C4*", "C", false, true), - AtomSpec(7, "O4'", "O4*", "O", false, true), - AtomSpec(8, "C3'", "C3*", "C", false, true), - AtomSpec(9, "O3'", "O3*", "O", false, true), - AtomSpec(10, "C2'", "C2*", "C", false, true), - AtomSpec(11, "C1'", "C1*", "C", false, true), - AtomSpec(12, "N1", "N1", "N", false, true), - AtomSpec(13, "C2", "C2", "C", false, true), - AtomSpec(14, "O2", "O2", "O", false, true), - AtomSpec(15, "N3", "N3", "N", false, true), - AtomSpec(16, "C4", "C4", "C", false, true), - AtomSpec(17, "O4", "O4", "O", false, true), - AtomSpec(18, "C5", "C5", "C", false, true), - AtomSpec(19, "C6", "C6", "C", false, true), - AtomSpec(20, "HOP3", "3HOP", "H", false, true), - AtomSpec(21, "HOP2", "2HOP", "H", false, true), - AtomSpec(22, "H5'", "1H5*", "H", false, true), - AtomSpec(23, "H5''", "2H5*", "H", false, true), - AtomSpec(24, "H4'", "H4*", "H", false, true), - AtomSpec(25, "H3'", "H3*", "H", false, true), - AtomSpec(26, "HO3'", "H3T", "H", true, true), - AtomSpec(27, "H2'", "1H2*", "H", false, true), - AtomSpec(28, "H2''", "2H2*", "H", false, true), - AtomSpec(29, "H1'", "H1*", "H", false, true), - AtomSpec(30, "H3", "H3", "H", false, true), - AtomSpec(31, "H5", "H5", "H", false, true), - AtomSpec(32, "H6", "H6", "H", false, true) + AtomSpec(0, "OP3", "O3P", "O", true, true,0), + AtomSpec(1, "P", "P", "P", false, true,0), + AtomSpec(2, "OP1", "O1P", "O", false, true,0), + AtomSpec(3, "OP2", "O2P", "O", false, true,0), + AtomSpec(4, "O5'", "O5*", "O", false, true,0), + AtomSpec(5, "C5'", "C5*", "C", false, true,0), + AtomSpec(6, "C4'", "C4*", "C", false, true,0), + AtomSpec(7, "O4'", "O4*", "O", false, true,0), + AtomSpec(8, "C3'", "C3*", "C", false, true,0), + AtomSpec(9, "O3'", "O3*", "O", false, true,0), + AtomSpec(10, "C2'", "C2*", "C", false, true,0), + AtomSpec(11, "C1'", "C1*", "C", false, true,0), + AtomSpec(12, "N1", "N1", "N", false, true,0), + AtomSpec(13, "C2", "C2", "C", false, true,0), + AtomSpec(14, "O2", "O2", "O", false, true,0), + AtomSpec(15, "N3", "N3", "N", false, true,0), + AtomSpec(16, "C4", "C4", "C", false, true,0), + AtomSpec(17, "O4", "O4", "O", false, true,0), + AtomSpec(18, "C5", "C5", "C", false, true,0), + AtomSpec(19, "C6", "C6", "C", false, true,0), + AtomSpec(20, "HOP3", "3HOP", "H", false, true,0), + AtomSpec(21, "HOP2", "2HOP", "H", false, true,0), + AtomSpec(22, "H5'", "1H5*", "H", false, true,0), + AtomSpec(23, "H5''", "2H5*", "H", false, true,0), + AtomSpec(24, "H4'", "H4*", "H", false, true,0), + AtomSpec(25, "H3'", "H3*", "H", false, true,0), + AtomSpec(26, "HO3'", "H3T", "H", true, true,0), + AtomSpec(27, "H2'", "1H2*", "H", false, true,0), + AtomSpec(28, "H2''", "2H2*", "H", false, true,0), + AtomSpec(29, "H1'", "H1*", "H", false, true,0), + AtomSpec(30, "H3", "H3", "H", false, true,0), + AtomSpec(31, "H5", "H5", "H", false, true,0), + AtomSpec(32, "H6", "H6", "H", false, true,0) }; for (int i=0; i<33; ++i) { c->AddAtom(atoms[i]); } BondSpec bonds[] = { @@ -1740,40 +1740,40 @@ CompoundPtr MakeDCCompound() { c->SetChemType(mol::ChemType('U')); c->SetFormula("C9 H14 N3 O7 P"); AtomSpec atoms[] = { - AtomSpec(0, "OP3", "O3P", "O", true, true), - AtomSpec(1, "P", "P", "P", false, true), - AtomSpec(2, "OP1", "O1P", "O", false, true), - AtomSpec(3, "OP2", "O2P", "O", false, true), - AtomSpec(4, "O5'", "O5*", "O", false, true), - AtomSpec(5, "C5'", "C5*", "C", false, true), - AtomSpec(6, "C4'", "C4*", "C", false, true), - AtomSpec(7, "O4'", "O4*", "O", false, true), - AtomSpec(8, "C3'", "C3*", "C", false, true), - AtomSpec(9, "O3'", "O3*", "O", false, true), - AtomSpec(10, "C2'", "C2*", "C", false, true), - AtomSpec(11, "C1'", "C1*", "C", false, true), - AtomSpec(12, "N1", "N1", "N", false, true), - AtomSpec(13, "C2", "C2", "C", false, true), - AtomSpec(14, "O2", "O2", "O", false, true), - AtomSpec(15, "N3", "N3", "N", false, true), - AtomSpec(16, "C4", "C4", "C", false, true), - AtomSpec(17, "N4", "N4", "N", false, true), - AtomSpec(18, "C5", "C5", "C", false, true), - AtomSpec(19, "C6", "C6", "C", false, true), - AtomSpec(20, "HOP3", "3HOP", "H", false, true), - AtomSpec(21, "HOP2", "2HOP", "H", false, true), - AtomSpec(22, "H5'", "1H5*", "H", false, true), - AtomSpec(23, "H5''", "2H5*", "H", false, true), - AtomSpec(24, "H4'", "H4*", "H", false, true), - AtomSpec(25, "H3'", "H3*", "H", false, true), - AtomSpec(26, "HO3'", "H3T", "H", true, true), - AtomSpec(27, "H2'", "1H2*", "H", false, true), - AtomSpec(28, "H2''", "2H2*", "H", false, true), - AtomSpec(29, "H1'", "H1*", "H", false, true), - AtomSpec(30, "H41", "1H4", "H", false, true), - AtomSpec(31, "H42", "2H4", "H", false, true), - AtomSpec(32, "H5", "H5", "H", false, true), - AtomSpec(33, "H6", "H6", "H", false, true) + AtomSpec(0, "OP3", "O3P", "O", true, true,0), + AtomSpec(1, "P", "P", "P", false, true,0), + AtomSpec(2, "OP1", "O1P", "O", false, true,0), + AtomSpec(3, "OP2", "O2P", "O", false, true,0), + AtomSpec(4, "O5'", "O5*", "O", false, true,0), + AtomSpec(5, "C5'", "C5*", "C", false, true,0), + AtomSpec(6, "C4'", "C4*", "C", false, true,0), + AtomSpec(7, "O4'", "O4*", "O", false, true,0), + AtomSpec(8, "C3'", "C3*", "C", false, true,0), + AtomSpec(9, "O3'", "O3*", "O", false, true,0), + AtomSpec(10, "C2'", "C2*", "C", false, true,0), + AtomSpec(11, "C1'", "C1*", "C", false, true,0), + AtomSpec(12, "N1", "N1", "N", false, true,0), + AtomSpec(13, "C2", "C2", "C", false, true,0), + AtomSpec(14, "O2", "O2", "O", false, true,0), + AtomSpec(15, "N3", "N3", "N", false, true,0), + AtomSpec(16, "C4", "C4", "C", false, true,0), + AtomSpec(17, "N4", "N4", "N", false, true,0), + AtomSpec(18, "C5", "C5", "C", false, true,0), + AtomSpec(19, "C6", "C6", "C", false, true,0), + AtomSpec(20, "HOP3", "3HOP", "H", false, true,0), + AtomSpec(21, "HOP2", "2HOP", "H", false, true,0), + AtomSpec(22, "H5'", "1H5*", "H", false, true,0), + AtomSpec(23, "H5''", "2H5*", "H", false, true,0), + AtomSpec(24, "H4'", "H4*", "H", false, true,0), + AtomSpec(25, "H3'", "H3*", "H", false, true,0), + AtomSpec(26, "HO3'", "H3T", "H", true, true,0), + AtomSpec(27, "H2'", "1H2*", "H", false, true,0), + AtomSpec(28, "H2''", "2H2*", "H", false, true,0), + AtomSpec(29, "H1'", "H1*", "H", false, true,0), + AtomSpec(30, "H41", "1H4", "H", false, true,0), + AtomSpec(31, "H42", "2H4", "H", false, true,0), + AtomSpec(32, "H5", "H5", "H", false, true,0), + AtomSpec(33, "H6", "H6", "H", false, true,0) }; for (int i=0; i<34; ++i) { c->AddAtom(atoms[i]); } BondSpec bonds[] = { @@ -1823,42 +1823,42 @@ CompoundPtr MakeDACompound() { c->SetChemType(mol::ChemType('U')); c->SetFormula("C10 H14 N5 O6 P"); AtomSpec atoms[] = { - AtomSpec(0, "OP3", "O3P", "O", true, true), - AtomSpec(1, "P", "P", "P", false, true), - AtomSpec(2, "OP1", "O1P", "O", false, true), - AtomSpec(3, "OP2", "O2P", "O", false, true), - AtomSpec(4, "O5'", "O5*", "O", false, true), - AtomSpec(5, "C5'", "C5*", "C", false, true), - AtomSpec(6, "C4'", "C4*", "C", false, true), - AtomSpec(7, "O4'", "O4*", "O", false, true), - AtomSpec(8, "C3'", "C3*", "C", false, true), - AtomSpec(9, "O3'", "O3*", "O", false, true), - AtomSpec(10, "C2'", "C2*", "C", false, true), - AtomSpec(11, "C1'", "C1*", "C", false, true), - AtomSpec(12, "N9", "N9", "N", false, true), - AtomSpec(13, "C8", "C8", "C", false, true), - AtomSpec(14, "N7", "N7", "N", false, true), - AtomSpec(15, "C5", "C5", "C", false, true), - AtomSpec(16, "C6", "C6", "C", false, true), - AtomSpec(17, "N6", "N6", "N", false, true), - AtomSpec(18, "N1", "N1", "N", false, true), - AtomSpec(19, "C2", "C2", "C", false, true), - AtomSpec(20, "N3", "N3", "N", false, true), - AtomSpec(21, "C4", "C4", "C", false, true), - AtomSpec(22, "HOP3", "3HOP", "H", false, true), - AtomSpec(23, "HOP2", "2HOP", "H", false, true), - AtomSpec(24, "H5'", "1H5*", "H", false, true), - AtomSpec(25, "H5''", "2H5*", "H", false, true), - AtomSpec(26, "H4'", "H4*", "H", false, true), - AtomSpec(27, "H3'", "H3*", "H", false, true), - AtomSpec(28, "HO3'", "H3T", "H", true, true), - AtomSpec(29, "H2'", "1H2*", "H", false, true), - AtomSpec(30, "H2''", "2H2*", "H", false, true), - AtomSpec(31, "H1'", "H1*", "H", false, true), - AtomSpec(32, "H8", "H8", "H", false, true), - AtomSpec(33, "H61", "1H6", "H", false, true), - AtomSpec(34, "H62", "2H6", "H", false, true), - AtomSpec(35, "H2", "H2", "H", false, true) + AtomSpec(0, "OP3", "O3P", "O", true, true,0), + AtomSpec(1, "P", "P", "P", false, true,0), + AtomSpec(2, "OP1", "O1P", "O", false, true,0), + AtomSpec(3, "OP2", "O2P", "O", false, true,0), + AtomSpec(4, "O5'", "O5*", "O", false, true,0), + AtomSpec(5, "C5'", "C5*", "C", false, true,0), + AtomSpec(6, "C4'", "C4*", "C", false, true,0), + AtomSpec(7, "O4'", "O4*", "O", false, true,0), + AtomSpec(8, "C3'", "C3*", "C", false, true,0), + AtomSpec(9, "O3'", "O3*", "O", false, true,0), + AtomSpec(10, "C2'", "C2*", "C", false, true,0), + AtomSpec(11, "C1'", "C1*", "C", false, true,0), + AtomSpec(12, "N9", "N9", "N", false, true,0), + AtomSpec(13, "C8", "C8", "C", false, true,0), + AtomSpec(14, "N7", "N7", "N", false, true,0), + AtomSpec(15, "C5", "C5", "C", false, true,0), + AtomSpec(16, "C6", "C6", "C", false, true,0), + AtomSpec(17, "N6", "N6", "N", false, true,0), + AtomSpec(18, "N1", "N1", "N", false, true,0), + AtomSpec(19, "C2", "C2", "C", false, true,0), + AtomSpec(20, "N3", "N3", "N", false, true,0), + AtomSpec(21, "C4", "C4", "C", false, true,0), + AtomSpec(22, "HOP3", "3HOP", "H", false, true,0), + AtomSpec(23, "HOP2", "2HOP", "H", false, true,0), + AtomSpec(24, "H5'", "1H5*", "H", false, true,0), + AtomSpec(25, "H5''", "2H5*", "H", false, true,0), + AtomSpec(26, "H4'", "H4*", "H", false, true,0), + AtomSpec(27, "H3'", "H3*", "H", false, true,0), + AtomSpec(28, "HO3'", "H3T", "H", true, true,0), + AtomSpec(29, "H2'", "1H2*", "H", false, true,0), + AtomSpec(30, "H2''", "2H2*", "H", false, true,0), + AtomSpec(31, "H1'", "H1*", "H", false, true,0), + AtomSpec(32, "H8", "H8", "H", false, true,0), + AtomSpec(33, "H61", "1H6", "H", false, true,0), + AtomSpec(34, "H62", "2H6", "H", false, true,0), + AtomSpec(35, "H2", "H2", "H", false, true,0) }; for (int i=0; i<36; ++i) { c->AddAtom(atoms[i]); } BondSpec bonds[] = { diff --git a/modules/io/src/mol/chemdict_parser.cc b/modules/io/src/mol/chemdict_parser.cc index 654204dcd6591d31267b67bbde7b14ddabea19b4..b1aac36a2e7c866da336cd406a7ccae87c2e357a 100644 --- a/modules/io/src/mol/chemdict_parser.cc +++ b/modules/io/src/mol/chemdict_parser.cc @@ -22,7 +22,7 @@ bool ChemdictParser::OnBeginData(const StringRef& data_name) } bool ChemdictParser::OnBeginLoop(const StarLoopDesc& header) -{ +{ if (header.GetCategory()=="chem_comp_atom") { loop_type_=ATOM_SPEC; indices_[ATOM_NAME]=header.GetIndex("atom_id"); @@ -30,7 +30,8 @@ bool ChemdictParser::OnBeginLoop(const StarLoopDesc& header) indices_[ELE]=header.GetIndex("type_symbol"); indices_[IS_LEAVING]=header.GetIndex("pdbx_leaving_atom_flag"); indices_[IS_AROMATIC]=header.GetIndex("pdbx_aromatic_flag"); - indices_[ORDINAL]=header.GetIndex("pdbx_ordinal"); + indices_[ORDINAL]=header.GetIndex("pdbx_ordinal"); + indices_[CHARGE]=header.GetIndex("charge"); return true; } else if (header.GetCategory()=="chem_comp_bond") { loop_type_=BOND_SPEC; @@ -54,6 +55,7 @@ void ChemdictParser::OnDataRow(const StarLoopDesc& header, atom.ordinal=columns[indices_[ORDINAL]].to_int().second-1; atom.element=columns[indices_[ELE]].str(); atom.is_aromatic=columns[indices_[IS_AROMATIC]][0]=='Y'; + atom.charge=columns[indices_[CHARGE]].to_int().second; compound_->AddAtom(atom); atom_map_[atom.name]=atom.ordinal; } else if (loop_type_==BOND_SPEC) { @@ -126,6 +128,10 @@ void ChemdictParser::OnDataItem(const StarDataItem& item) } else if (item.GetName()==StringRef("pdbx_modified_date", 18)) { compound_->SetModificationDate(Date::FromString(item.GetValue())); } + else if (item.GetName()==StringRef("pdbx_formal_charge", 18)) { + compound_->SetCharge(item.GetValue().to_int().second); + //std::cout << compound_->GetID() << compound_->GetCharge() << "\n" ; + } } else if (item.GetName()==StringRef("atom_id", 7)) { atom_.name=item.GetValue().str(); } else if (item.GetName()==StringRef("alt_atom_id", 11)) { diff --git a/modules/io/src/mol/chemdict_parser.hh b/modules/io/src/mol/chemdict_parser.hh index 51142744c37de1e419f39395db04edc926801982..ae5552885c5ff7fd2728282d8201df32d99065d2 100644 --- a/modules/io/src/mol/chemdict_parser.hh +++ b/modules/io/src/mol/chemdict_parser.hh @@ -75,12 +75,13 @@ private: IS_LEAVING=4, ELE=5, STEREO_CONF=6, + CHARGE=7, ATOM_ID1=0, ATOM_ID2=1, BOND_ORDER=2 } PropIndex; char last_; - int indices_[10]; + int indices_[11]; bool insert_; static std::map<String, mol::ChemClass> tm_; static std::map<String, mol::ChemType> xtm_;