def _finishtypecheck(self):
     if self.referenceStrain:
         if not self.wildtype:
             raise _ExchangeFormatValueError('A reference strain must ' +
                                            'always be wildtype')
         if self.aggregateData:
             raise _ExchangeFormatValueError('A reference strain cannot ' +
                                            'represent aggregate data')
     if self.wildtype and (self.strainID or self.knockouts):
         raise _ExchangeFormatValueError('A wildtype strain cannot have ' +
                                         'a strain parent or knockouts')
 def _finishtypecheck(self):
     if self.timeseriesID and self.time is None:
         raise _ExchangeFormatValueError(
             'If a time series ID is specified a time value must be ' +
             'provided.')