def _validate(self):
        '''Tests that the maps agree through composition.'''

        # I used to use the assertion "self.atom_to_uniparc_sequence_maps.keys() == self.atom_to_seqres_sequence_maps.keys() == self.seqres_to_uniparc_sequence_maps.keys()"
        # but that failed for 2IMM where "self.atom_to_uniparc_sequence_maps.keys() == self.seqres_to_uniparc_sequence_maps.keys() == []" but THAT fails for 1IR3 so I removed
        # the assertions entirely.
        for c, m in self.atom_to_seqres_sequence_maps.iteritems():
            if self.seqres_to_uniparc_sequence_maps.keys():
                atom_uniparc_keys = set(self.atom_to_uniparc_sequence_maps.get(c, {}).keys())
                atom_seqres_keys = set(self.atom_to_seqres_sequence_maps.get(c, {}).keys())
                assert(atom_uniparc_keys.intersection(atom_seqres_keys) == atom_uniparc_keys)
                for k, v in m.map.iteritems():
                    uparc_id_1, uparc_id_2 = None, None
                    try:
                        uparc_id_1 = self.seqres_to_uniparc_sequence_maps[c].map[v]
                        uparc_id_2 = self.atom_to_uniparc_sequence_maps[c].map[k]
                    except:
                        continue
                    assert(uparc_id_1 == uparc_id_2)
Tests that the maps agree through composition.