Returns True if a record is marked as a derived record i.e. the DDG value is calculated from one source ("reverse"
           mutation) or two sources (a "mutation triangle") without a separate experiment having taken place. This property
           is marked in the Kortemme lab database when we have determined that this is indeed the case. Otherwise, return
           False.
           For purely computational dataframes, we should always return False.

def is_this_record_a_derived_mutation(self, record):
        '''Returns True if a record is marked as a derived record i.e. the DDG value is calculated from one source ("reverse"
           mutation) or two sources (a "mutation triangle") without a separate experiment having taken place. This property
           is marked in the Kortemme lab database when we have determined that this is indeed the case. Otherwise, return
           False.
           For purely computational dataframes, we should always return False.'''
        if self.contains_experimental_data:
            for analysis_set in self.get_analysis_sets(record):
                ddg_details = record['DDG'][analysis_set]
                if ddg_details and ddg_details['IsDerivedValue']:
                    return True
            return False
        else:
            # Computational dataframe case
            return False