def get_job_ids(self, annotation): job_ids = m_models.AnalysisJobGoTerm.objects \ .filter( M_Q(go_slim__go_term=annotation) | M_Q(go_terms__go_term=annotation) ) \ .distinct('job_id') return job_ids
def get_queryset(self): lineage = urllib.parse.unquote( self.kwargs.get('lineage', None).strip()) organism = m_models.Organism.objects \ .filter(lineage=lineage) \ .only('name').distinct('name') if len(organism) == 0: raise Http404(("Attribute error '%s'." % self.lookup_field)) queryset = m_models.Organism.objects \ .filter(M_Q(ancestors__in=organism) | M_Q(name__in=organism)) return queryset
def get_queryset(self): lineage = urllib.parse.unquote( self.kwargs.get(self.lookup_field, None).strip()) organism = m_models.Organism.objects.filter(lineage=lineage) \ .only('id') if len(organism) == 0: raise NotFound("Lineage not found. Lineage: " + lineage) job_ids = m_models.AnalysisJobTaxonomy.objects \ .filter( M_Q(taxonomy__organism__in=organism) | M_Q(taxonomy_lsu__organism__in=organism) | M_Q(taxonomy_ssu__organism__in=organism) ).distinct('job_id') return emg_models.AnalysisJob.objects \ .filter(job_id__in=job_ids) \ .available(self.request)
def get_queryset(self): # noqa C901 """Filter the analysis job contigs """ obj = self.get_object() queryset = m_models.AnalysisJobContig.objects request = self.request query_filter = M_Q() # TODO: simplify! filter_cog = request.GET.get('cog', '').upper() if filter_cog: query_filter |= M_Q(cogs__cog=filter_cog) filter_kegg = request.GET.get('kegg', '').upper() if filter_kegg: query_filter |= M_Q(keggs__ko=filter_kegg) filter_go = request.GET.get('go', '').upper() if filter_go: query_filter |= M_Q(gos__go_term=filter_go) filter_interpro = request.GET.get('interpro', '').upper() if filter_interpro: query_filter |= M_Q(interpros__interpro_identifier=filter_interpro) filter_pfam = request.GET.get('pfam', '').upper() if filter_pfam: query_filter |= M_Q(pfams__pfam_entry=filter_pfam) filter_antismash = request.GET.get('antismash', '').lower() if filter_antismash: query_filter |= M_Q(as_geneclusters__gene_cluster=filter_antismash) if 'facet[]' in request.GET: facets = request.GET.getlist('facet[]') # TODO: try to simplify this facet_qs = M_Q() if len(facets): for facet in [ f for f in facets if getattr(m_models.AnalysisJobContig, 'has_' + f, False) ]: facet_qs |= M_Q(**{'has_' + facet: True}) else: # contigs with no annotations for f in m_models.AnalysisJobContig._fields: if f.startswith('has_'): facet_qs &= M_Q(**{f: False}) query_filter &= (facet_qs) len_filter = M_Q() filter_gt = request.GET.get('gt', None) filter_lt = request.GET.get('lt', None) if filter_gt: len_filter &= M_Q(length__gte=filter_gt) if filter_lt: len_filter &= M_Q(length__lte=filter_lt) if len_filter: query_filter &= (len_filter) search = request.GET.get('search', '') if search: query_filter &= M_Q(contig_id__icontains=search) identifier = M_Q(job_id=obj.job_id, pipeline_version=obj.pipeline.release_version) return queryset.filter(identifier & query_filter)
def get_job_ids(self, annotation): return m_models.AnalysisJobKeggOrtholog.objects \ .filter(M_Q(ko_entries__ko=annotation)) \ .distinct('job_id')
def get_job_ids(self, annotation): return m_models.AnalysisJobAntiSmashGeneCluser.objects \ .filter(M_Q(antismash_gene_clusters__gene_cluster=annotation)) \ .distinct('job_id')
def get_job_ids(self, annotation): return m_models.AnalysisJobGenomeProperty.objects \ .filter(M_Q(genome_properties__genome_property=annotation)) \ .distinct('job_id')
def get_job_ids(self, annotation): return m_models.AnalysisJobPfam.objects \ .filter(M_Q(pfam_entries__pfam=annotation)) \ .distinct('job_id')
def get_job_ids(self, annotation): return m_models.AnalysisJobKeggModule.objects \ .filter(M_Q(kegg_modules__module=annotation)) \ .distinct('job_id')
def get_job_ids(self, annotation): return m_models.AnalysisJobInterproIdentifier.objects \ .filter(M_Q(interpro_identifiers__interpro_identifier=annotation)) \ .distinct('job_id')