Beispiel #1
0
    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)
Beispiel #2
0
    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)
Beispiel #3
0
            def __init__(self, request):

                filters = [
                    Filter(Target(),
                           'property',
                           comparators=['in'],
                           choices=['Value1', "Value2, corrected"],
                           multiple=True)
                ]
                super().__init__(filters)
                self.update_from_request(request)
Beispiel #4
0
    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)
Beispiel #5
0
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)
Beispiel #6
0
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)
Beispiel #7
0
def js_toggle(name, default=True):
    return Filter(Target(), name, comparators=['eq'], default=default)