def test_get_default_network_scaling(self): scaling_fun = scoring.get_default_network_scaling(100) self.assertAlmostEqual(0.0, scaling_fun(1)) self.assertAlmostEqual(0.013513514, scaling_fun(3)) self.assertAlmostEqual(0.493243243, scaling_fun(74)) self.assertAlmostEqual(0.5, scaling_fun(75)) self.assertAlmostEqual(0.5, scaling_fun(76)) self.assertAlmostEqual(0.5, scaling_fun(100))
def test_net_scoring(self): #tests the network scoring by itself# network_scaling_fun = scoring.get_default_network_scaling(2000) network_scoring = nw.ScoringFunction(self.organism, self.membership, self.ratio_matrix, scaling_func=network_scaling_fun, run_in_iteration=lambda x: True, config_params=self.config_params) netscores = network_scoring.compute(self.iteration_result).sorted_by_row_name() ref_netscores = read_matrix('testdata/netscores_fixed.tsv') self.assertTrue(check_matrix_values(netscores, ref_netscores))
def make_row_scoring(self): """makes a row scoring function on demand""" # Default row scoring functions row_scoring = microarray.RowScoringFunction( self.membership(), self.ratio_matrix, scaling_func=lambda iteration: self['row_scaling'], config_params=self.config_params) self.row_scoring = row_scoring meme_suite = meme.MemeSuite430() sequence_filters = [ motif.unique_filter, motif.get_remove_low_complexity_filter(meme_suite), motif.get_remove_atgs_filter(self['search_distances']['upstream'])] motif_scaling_fun = scoring.get_default_motif_scaling( self['num_iterations']) motif_scoring = motif.MemeScoringFunction( self.organism(), self.membership(), self.ratio_matrix, meme_suite, sequence_filters=sequence_filters, scaling_func=motif_scaling_fun, num_motif_func=motif.default_nmotif_fun, update_in_iteration=scoring.schedule(601, 3), motif_in_iteration=scoring.schedule(600, 100), #update_in_iteration=scoring.schedule(100, 10), #motif_in_iteration=scoring.schedule(100, 100), config_params=self.config_params) self.motif_scoring = motif_scoring network_scaling_fun = scoring.get_default_network_scaling( self['num_iterations']) network_scoring = nw.ScoringFunction( self.organism(), self.membership(), self.ratio_matrix, scaling_func=network_scaling_fun, run_in_iteration=scoring.schedule(1, 7), config_params=self.config_params) self.network_scoring = network_scoring row_scoring_functions = [row_scoring, motif_scoring, network_scoring] return scoring.ScoringFunctionCombiner( self.membership(), row_scoring_functions, config_params=self.config_params, log_subresults=True)
def make_row_scoring(self): """returns the row scoring function""" # we need to remove the location from the sequence when selecting for # individual clusters sequence_filters = [lambda seqs, feature_ids: {key: seqs[key][1] for key in seqs.keys()}] network_scaling_fun = scoring.get_default_network_scaling(self['num_iterations']) meme_scoring = None weeder_scoring = None row_scoring = microarray.RowScoringFunction( self.membership(), self.ratio_matrix, lambda iteration: ROW_WEIGHT, config_params=self.config_params) scoring_funcs = [row_scoring, self.make_network_scoring(network_scaling_fun)] if ADD_SET_ENRICHMENT: scoring_funcs.append(self.make_set_scoring(network_scaling_fun, USE_SET_TYPES)) if ADD_MEME: meme_suite_meme = self.meme_suite('upstream') meme_scoring = self.make_meme_scoring('upstream', meme_suite_meme, sequence_filters + [motif.get_remove_low_complexity_filter(meme_suite_meme)]) if ADD_WEEDER: meme_suite_weeder = self.meme_suite(WEEDER_SEQ_TYPE) weeder_scoring = self.make_weeder_scoring(WEEDER_SEQ_TYPE, meme_suite_weeder, sequence_filters + [motif.get_remove_low_complexity_filter(meme_suite_weeder)]) if ADD_MEME and ADD_WEEDER: scoring_funcs.append(scoring.ScoringFunctionCombiner( self.membership(), [meme_scoring, weeder_scoring], scaling_func=lambda iteration: 0.5, config_params=self.config_params)) else: if ADD_MEME: scoring_funcs.append(meme_scoring) if ADD_WEEDER: scoring_funcs.append(weeder_scoring) return scoring.ScoringFunctionCombiner(self.membership(), scoring_funcs, config_params=self.config_params)
def make_row_scoring(self): """returns the row scoring function""" sequence_filters = [] network_scaling_fun = scoring.get_default_network_scaling(self['num_iterations']) meme_scoring = None weeder_scoring = None row_scoring = microarray.RowScoringFunction( self.membership(), self.ratio_matrix, lambda iteration: self['row_scaling'], config_params=self.config_params) scoring_funcs = [row_scoring, self.make_network_scoring(network_scaling_fun)] if ADD_MEME: meme_scoring = self.make_meme_scoring('upstream', self.meme_suite('upstream'), sequence_filters) if ADD_WEEDER: weeder_scoring = self.make_weeder_scoring(WEEDER_SEQ_TYPE, self.meme_suite(WEEDER_SEQ_TYPE), sequence_filters) if ADD_MEME and ADD_WEEDER: scoring_funcs.append(scoring.ScoringFunctionCombiner( self.membership(), [meme_scoring, weeder_scoring], scaling_func=lambda iteration: 0.5, config_params=self.config_params)) else: if ADD_MEME: scoring_funcs.append(meme_scoring) if ADD_WEEDER: scoring_funcs.append(weeder_scoring) return scoring.ScoringFunctionCombiner(self.membership(), scoring_funcs, config_params=self.config_params)
def __init__(self): scaling_fun = scoring.get_default_network_scaling(2000) scoring.ScoringFunctionBase.__init__(self, None, None, scaling_fun)
def make_row_scoring(self): """returns the row scoring function""" row_scoring = microarray.RowScoringFunction( self.membership(), self.ratio_matrix, scaling_func=lambda iteration: self['row_scaling'], config_params=self.config_params) background_file_prom = meme_FS.global_background_file_FS( self.organism(), self.ratio_matrix.row_names(), 'Promoter', alphabet, alphabet_replacement, use_revcomp=True, resultsDir = "/".join([self['meme_dir'], 'backgroundFiles'])) meme_suite = meme_FS.MemeSuite481(background_file=background_file_prom, remove_tempfiles=True, resultsDir = self['meme_dir']) """ background_file_p3utr = meme_FS.global_background_file_FS( self.organism(), self.ratio_matrix.row_names(), '3pUTR', alphabet, alphabet_replacement, use_revcomp=True) meme_suite_p3utr = meme_FS.MemeSuite430(background_file=background_file_p3utr) """ sequence_filters = [ motif_FS.unique_filter, motif_FS.get_remove_low_complexity_filter(meme_suite), motif_FS.get_remove_atgs_filter(self['search_distances']['Promoter'])] sequence_filters = [motif_FS.get_remove_atgs_filter(self['search_distances']['Promoter'])] motif_scaling_fun = scoring.get_default_motif_scaling(self['num_iterations']) motif_scoring = motif_FS.MemeScoringFunction( self.organism(), self.membership(), self.ratio_matrix, meme_suite, seqtype='Promoter', sequence_filters=sequence_filters, pvalue_filter=motif_FS.MinPValueFilter(-9), scaling_func=motif_scaling_fun, update_in_iteration=scoring.schedule(11, 3), motif_in_iteration=scoring.schedule(10, 100), config_params=self.config_params) """ motif_scoring_3pUTR = motif_FS.MemeScoringFunction( self.organism(), self.membership(), self.ratio_matrix, meme_suite, seqtype='3pUTR', sequence_filters=sequence_filters, pvalue_filter=motif_FS.MinPValueFilter(-9), scaling_func=motif_scaling_fun, run_in_iteration=scoring.schedule(100, 50), config_params=self.config_params) motif_combiner = scoring.ScoringFunctionCombiner( self.membership(), [motif_scoring, motif_scoring_3pUTR], scaling_func=lambda iteration: 0.5) """ ''' weeder_scoring = motif.WeederScoringFunction( self.organism(), self.membership(), self.ratio_matrix, meme_suite_p3utr, '3pUTR', pvalue_filter=motif.MinPValueFilter(-20.0), scaling_func=lambda iteration: 0.0, run_in_iteration=scoring.default_motif_iterations, config_params=self.config_params) motif_combiner = scoring.ScoringFunctionCombiner( self.membership(), [motif_scoring, weeder_scoring], scaling_func=lambda iteration: 0.5) ''' network_scaling_fun = scoring.get_default_network_scaling(self['num_iterations']) network_scoring = nw.ScoringFunction(self.organism(), self.membership(), self.ratio_matrix, scaling_func=network_scaling_fun, run_in_iteration=scoring.schedule(1, 7), config_params=self.config_params) row_scoring_functions = [row_scoring, motif_scoring, network_scoring] #row_scoring_functions = [row_scoring] return scoring.ScoringFunctionCombiner(self.membership(), row_scoring_functions, log_subresults=True)