def test_scale_measurement(self): self.assert_measurement_equal(self.transformed_small, measurements.scale(self.small_measurement, self.factor)) self.assert_measurement_equal(self.transformed_medium, measurements.scale(self.medium_measurement, self.factor)) self.assert_measurement_equal(self.transformed_large, measurements.scale(self.large_measurement, self.factor))
def test_scale_measurement(self): self.assert_measurement_equal( self.transformed_small, measurements.scale(self.small_measurement, self.factor)) self.assert_measurement_equal( self.transformed_medium, measurements.scale(self.medium_measurement, self.factor)) self.assert_measurement_equal( self.transformed_large, measurements.scale(self.large_measurement, self.factor))
def perform(self, run, target): log.debug('Performing SimpleDataFit of %s.', self.measurement_name) sim_result = run.analyses[self.measurement_name] data = run.experiment.objectives[self.label].measurement sim_result = _measurements.skip_beginning(sim_result, self.skip_beginning) sim_result = _measurements.scale(sim_result, self.scale_simulation_by) if self.interpolate_simulation: interp = _interpolation.resample_measurement(sim_result, data[0]) # log.debug('interp times: %s', interp[0]) log.debug('Sim values: %s', interp[1]) log.debug('Data values: %s', data[1]) target.value = self.residual_function(interp, data) else: target.value = self.residual_function(sim_result, data) log.debug('Sim values: %s', sim_result[1]) log.debug('Data values: %s', data[1]) log.debug('Objective value: %s.', target.value) if target.value <= 0: log.warn('Negative or zero residual found %s.', target.value)
def timecourse(db_session, session_id, experiment_index=0, run_index=0, filename='results/short_time.dat'): session = db_session.query(database.Session).get(session_id) run = session.experiments[experiment_index].runs[run_index] ftc = run.all_parameters['filament_tip_concentration'] seed_concentration = run.all_parameters['seed_concentration'] length_data = run.analyses['length'] # convert to [factin] # factin_data = measurements.scale(length_data, ftc) factin_data = measurements.add_number(measurements.scale(length_data, ftc), -seed_concentration) # pi_random_data = run.analyses['Pi_random'] # pi_vectorial_data = run.analyses['Pi_vectorial'] pi_data = run.analyses['Pi'] combined_data = _combine_timecourse_data(factin_data, # pi_random_data, pi_vectorial_data, pi_data) _write_results(filename, combined_data, 'Time (s)', 'Concentration (uM)', 'Data', ['[F-actin]', # '[Pi_random]', '[Pi_vectorial]', '[Pi_other]'])
def fit_measurement(self, run, data): unnormalized_measurement = self.unnormalized_measurement(run) fit, norm = _pyrene_normalization(unnormalized_measurement, data, self.residual_function) measurement = _measurements.scale(unnormalized_measurement, norm) return fit, measurement
def timecourse(db_session, session_id, experiment_index=0, run_index=0, filename='results/short_time.dat'): session = db_session.query(database.Session).get(session_id) run = session.experiments[experiment_index].runs[run_index] ftc = run.all_parameters['filament_tip_concentration'] seed_concentration = run.all_parameters['seed_concentration'] length_data = run.analyses['length'] # convert to [factin] # factin_data = measurements.scale(length_data, ftc) factin_data = measurements.add_number(measurements.scale(length_data, ftc), -seed_concentration) # pi_random_data = run.analyses['Pi_random'] # pi_vectorial_data = run.analyses['Pi_vectorial'] pi_data = run.analyses['Pi'] combined_data = _combine_timecourse_data( factin_data, # pi_random_data, pi_vectorial_data, pi_data) _write_results( filename, combined_data, 'Time (s)', 'Concentration (uM)', 'Data', [ '[F-actin]', # '[Pi_random]', '[Pi_vectorial]', '[Pi_other]' ])
def model_function(normalization): scaled_sim = _measurements.scale(fluorescence_sim, normalization[0]) return residual_function(fluorescence_data, scaled_sim)
def unnormalized_measurement(self, run): analyses = run.analyses measurements = [] for name, weight in self.weights.iteritems(): measurements.append(_measurements.scale(analyses[name], weight)) return _measurements.add(measurements)