Code:
|
if len(values) == 1:
self.setChain(list(values).pop())
elif values:
molSystems = set(x.molSystem for x in values)
if len(molSystems) == 1:
molSystemCode = molSystems.pop().code
self.molSystemCode = molSystemCode
chainCodes = []
residueSeqIds = []
for chain in values:
residues = chain.sortedResidues()
chainCodes.extend(len(residues)*[chain.code])
residues.extend(x.seqId for x in residues)
wasOverride = self.root.override
self.root.override = True
try:
self.chainCodes = chainCodes
self.molSystemCode = molSystemCode
self.residueSeqIds = residueSeqIds
finally:
self.root.override = wasOverride
else:
raise ApiError("Chains are from different MolSystems: %s" % values)
else:
raise ApiError("MolResidueData.chains can not be set to empty")
|