def __init__(self, **kwargs): filters = [ Filter( Mutation, 'sources', comparators=['in'], choices=list(source_manager.visible_fields.keys()), default=None, nullable=True, as_sqlalchemy=sqlalchemy_filter_from_source_name ), Filter( Site, 'types', comparators=['in'], choices={ site_type.name: site_type for site_type in SiteType.available_types() }, as_sqlalchemy=SiteType.fuzzy_filter, as_sqlalchemy_joins=[SiteType] ), Filter( Gene, 'has_ptm_muts', comparators=['eq'], as_sqlalchemy=lambda value: text('ptm_muts_cnt > 0') if value else text('true') ), Filter( Gene, 'is_known_kinase', comparators=['eq'], as_sqlalchemy=lambda value: Protein.kinase.any() ) ] + [ filter for filter in source_dependent_filters() if filter.has_sqlalchemy # filters without sqlalchemy interface are not supported for table views ] super().__init__(filters) self.update_from_request(request)
def __init__(self, **kwargs): filters = [ Filter( Mutation, 'sources', comparators=['in'], choices=list(Mutation.source_fields.keys()), default=None, nullable=True, as_sqlalchemy=source_filter_to_sqlalchemy ), Filter( Site, 'type', comparators=['in'], choices=Site.types, as_sqlalchemy=True ), Filter( Gene, 'has_ptm_muts', comparators=['eq'], as_sqlalchemy=lambda self, value: text('ptm_muts_cnt > 0') if value else text('true') ), Filter( Gene, 'is_known_kinase', comparators=['eq'], as_sqlalchemy=lambda self, value: Protein.kinase.any() ) ] + [ filter for filter in source_dependent_filters() if filter.has_sqlalchemy # filters without sqlalchemy interface are not supported for table views ] super().__init__(filters) self.update_from_request(request)
def __init__(self, request): filters = [ Filter(Target(), 'property', comparators=['in'], choices=['Value1', "Value2, corrected"], multiple=True) ] super().__init__(filters) self.update_from_request(request)
def __init__(self, **kwargs): available_features = search_features active_features = set(available_features) - {'summary'} filters = [ # Why default = False? Due to used widget: checkbox. # It is not possible to distinguish between user not asking for # all mutations (so sending nothing in post, since un-checking it # will cause it to be skipped in the form) or user doing nothing # Why or? Take a look on table: # is_ptm show all muts (by default only ptm) include? # 0 0 0 # 0 1 1 # 1 0 1 # 1 1 1 Filter(Mutation, 'is_ptm', comparators=['or'], is_attribute_a_method=True, default=False), Filter(Protein, 'has_ptm_mutations', comparators=['eq'], as_sqlalchemy=True), Filter( Feature, 'name', comparators=['in'], default=list(active_features), choices=available_features, ), Filter( Search, 'query', comparators=['eq'], ), ] super().__init__(filters) self.update_from_request(request)
def common_filters(protein, default_source='MC3', source_nullable=False, custom_datasets_ids=[]): return [ Filter(Mutation, 'sources', comparators=['in'], choices=list(source_manager.visible_fields.keys()), default=default_source, nullable=source_nullable, as_sqlalchemy=sqlalchemy_filter_from_source_name), Filter(UserMutations, 'sources', comparators=['in'], choices=list(custom_datasets_ids), default=None, nullable=True), Filter(Mutation, 'is_ptm', comparators=['eq']), Filter(Drug, 'groups.name', comparators=['in'], nullable=False, choices=cached_queries.drug_groups, default=['approved'], multiple='all', as_sqlalchemy=True), Filter(Site, 'types', comparators=['in'], choices={ site_type.name: site_type for site_type in SiteType.available_types() }, custom_comparators={'in': SiteType.fuzzy_comparator}, as_sqlalchemy=SiteType.fuzzy_filter, as_sqlalchemy_joins=[Site.types]) ] + source_dependent_filters(protein)
def common_filters(protein, default_source='MC3', source_nullable=False, custom_datasets_ids=[]): return [ Filter(Mutation, 'sources', comparators=['in'], choices=list(Mutation.visible_fields.keys()), default=default_source, nullable=source_nullable, as_sqlalchemy=source_filter_to_sqlalchemy), Filter(UserMutations, 'sources', comparators=['in'], choices=list(custom_datasets_ids), default=None, nullable=True), Filter( Mutation, 'is_ptm', comparators=['eq' ], is_attribute_a_method=True), Filter(Drug, 'groups.name', comparators=['in'], nullable=False, choices=cached_queries.drug_groups, default=['approved'], multiple='all', as_sqlalchemy=True), Filter(Site, 'type', comparators=['in'], choices=Site.types, as_sqlalchemy=True) ] + source_dependent_filters(protein)
def js_toggle(name, default=True): return Filter(Target(), name, comparators=['eq'], default=default)