diff --git a/modules/mol/base/src/chain_type.cc b/modules/mol/base/src/chain_type.cc index 6694aa017ab0c7cf89ba6e8d5cce6d2b495940f2..0820407c7b70821a42444cfb3dc6b0c9f97690fc 100644 --- a/modules/mol/base/src/chain_type.cc +++ b/modules/mol/base/src/chain_type.cc @@ -59,7 +59,9 @@ ChainType ChainTypeFromString(StringRef identifier) } else if (StringRef("oligosaccharide", 15) == identifier) { return CHAINTYPE_OLIGOSACCHARIDE; } else if (StringRef("other", 5) == identifier) { - return CHAINTYPE_UNKNOWN; + // According to the mmCIF dictionary, "other" only exists in + // _entity_poly.type. Therefore, "other" can only be a generic polymer. + return CHAINTYPE_POLY; } throw Error("Unrecognised chain type descriptor found: '" + diff --git a/modules/mol/base/src/chain_type.hh b/modules/mol/base/src/chain_type.hh index 08ce4dcc6462a726a367eaf34708b789d684dcc0..27e1910e61bdd58bbf98df8d6d28bf4042d48744 100644 --- a/modules/mol/base/src/chain_type.hh +++ b/modules/mol/base/src/chain_type.hh @@ -28,6 +28,11 @@ namespace ost { namespace mol { /// \enum different kinds of chains +/// +/// Warning: this class mixes vocabulary from _entity.type and +// _entity_poly.type, which is more detailed. As a result it cannot be used to +/// to read/write mmCIF entity types accurately. + typedef enum { CHAINTYPE_POLY, ///< polymer CHAINTYPE_NON_POLY, ///< non-polymer