def post(self, request, format=None, *args, **kwargs): queryset = Germplasm.objects.all() # PARAMS: # { # "germplasmPUIs" : [ "http://www.crop-diversity.org/mgis/accession/01BEL084609", "doi:10.15454/328757862534E12" ], # "germplasmDbIds" : [ "986", "01BEL084609" ], # "germplasmSpecies" : [ "aestivum", "vinifera" ], # "germplasmGenus" : [ "Solanum", "Triticum" ], # "germplasmNames" : [ "XYZ1", "Pahang" ], # "accessionNumbers": [ "ITC0609", "ITC0685" ], # "pageSize" : 100, # "page": 1 # } params = self.request.data logger = logging.getLogger(__name__) logger.warn("Parameters: %s" % params) queryset = search_post_params_in( self, queryset, [('germplasmNames', 'germplasmName'), ('germplasmDbId', 'germplasmDbId'), ('germplasmPUIs', 'germplasmPUI'), ('germplasmSpecies', 'germplasmSpecies'), ('germplasmGenus', 'germplasmGenus'), ('accessionNumbers', 'accessionNumber')]) return paginate(queryset, request, GermplasmSerializer)
def post(self, request, format=None, *args, **kwargs): queryset = Program.objects.all() # PARAMS: # { # "programDbId": "123", # "name": "Wheat Resistance Program", # "abbreviation" : "DRP1", # "objective" : "Disease resistance", # "leadPerson" : "Dr. Henry Beachell" # } params = self.request.data logger = logging.getLogger(__name__) logger.warn("Search parameters: %s" % params) queryset = search_post_params_in(self, queryset, [('programDbId', 'programDbId'), ('name', 'name'), ('abbreviation', 'abbreviation'), ('objective', 'objective'), ('leadPerson', 'leadPerson')], False) return paginate(queryset, request, ProgramSerializer)
def get(self, request, format=None, *args, **kwargs): mapDbId = self.kwargs['mapDbId'] queryset = Map.objects.all() queryset = queryset.filter(mapDbId=mapDbId) return paginate(queryset, request, MapDetailSerializer)
def get(self, request, format=None, *args, **kwargs): queryset = Location.objects.all() queryset = search_get_qparams(self, queryset, [('locationType', 'locationType')]) return paginate(queryset, request, LocationSerializer)
def get(self, request, format=None, *args, **kwargs): queryset = StudyObsUnit.objects.all() queryset = search_get_qparams( self, queryset, [('observationVariableDbIds', 'observationVariableDbIds')]) return paginate(queryset, request, StudyObsUnitSerializer)
def get(self, request, format=None, *args, **kwargs): queryset = Call.objects.all() return paginate(queryset, request, CallsSerializer) # end def get # end class CallsView
def get(self, request, format=None, *args, **kwargs): queryset = ObsVariable.objects.all() observationVariableDbId = self.kwargs.get('observationVariableDbId', None) if observationVariableDbId is not None: queryset = queryset.filter(observationVariableDbId=observationVariableDbId) # end if return paginate(queryset, request, ObsVariableSerializer)
def get(self, request, format=None, *args, **kwargs): queryset = Marker.objects.all() markerDbId = self.kwargs.get('markerDbId', None) if markerDbId is not None: queryset = queryset.filter(markerDbId=markerDbId) # end if return paginate(queryset, request, MarkerSerializer)
def get(self, request, format=None, *args, **kwargs): queryset = Germplasm.objects.all() germplasmDbId = self.kwargs.get('germplasmDbId', None) if germplasmDbId is not None: queryset = queryset.filter(germplasmDbId=germplasmDbId) # end if return paginate(queryset, request, GermplasmSerializer)
def get(self, request, format=None, *args, **kwargs): queryset = StudyPlot.objects.all() studyDbId = self.kwargs.get('studyDbId', None) if studyDbId is not None: queryset = queryset.filter(studyDbId=studyDbId) # end if return paginate(queryset, request, StudyPlotSerializer)
def get(self, request, format=None, *args, **kwargs): queryset = Trait.objects.all() traitDbId = self.kwargs.get('traitDbId', None) if traitDbId is not None: queryset = queryset.filter(traitDbId=traitDbId) # end if return paginate(queryset, request, TraitSerializer)
def get(self, request, format=None, *args, **kwargs): queryset = Marker.objects.all() # name, matchMethod, include # possible values are 'case_insensitive', 'exact' (case sensitive), 'wildcard' (which is case insensitive). Wildcard uses both '*' and '%' for any number of characters and '?' for one character matching. Default is exact. # Whether to include synonyms in the output. name = self.request.query_params.get('name', None) match_method = self.request.query_params.get('matchMethod', None) include = self.request.query_params.get('include', None) synonyms = include is not None and include == 'synonyms' logger = logging.getLogger(__name__) logger.warn("FILTERING: %s, method=%s, synonyms=%s" % (name, match_method, synonyms)) if name is not None: if match_method is not None: if match_method == 'case_insensitive': if synonyms: queryset = queryset.filter( Q(defaultDisplaydefaultDisplayName__iexact=name) | Q(synonyms__iexact=name)) else: queryset = queryset.filter( defaultDisplayName__iexact=name) # end if elif match_method == 'wildcard': # TODO: add prefixes and suffixes name = name.replace('*', '') name = name.replace('%', '') if synonyms: queryset = queryset.filter( Q(defaultDisplayName__icontains=name) | Q(synonyms__contains=name)) else: queryset = queryset.filter( defaultDisplayName__icontains=name) # end if # end if else: # exact if synonyms: queryset = queryset.filter( Q(defaultDisplayName=name) | Q(synonyms=name)) else: queryset = queryset.filter(defaultDisplayName=name) # end if # end if # end if queryset = search_get_qparams(self, queryset, [('type', 'type')]) return paginate(queryset, request, MarkerSerializer)
def get(self, request, format=None, *args, **kwargs): queryset = ObsVariable.objects.all() # this search is not standard since it is on a related table param_value = self.request.query_params.get('traitClass', None) if param_value is not None: queryset = queryset.filter(trait__classe=param_value) # end if return paginate(queryset, request, ObsVariableSerializer)
def post(self, request, format=None, *args, **kwargs): queryset = AlleleMSearch.objects.all() # TODO: it is not clear to which data the query parameters apply! # unknownString=&sepPhased=&sepUnphased=&expandHomozygotes= queryset = search_post_params_in( self, queryset, [('markerprofileDbId', 'markerprofileDbId'), ('markerDbId', 'markerDbId')]) return paginate(queryset, request, AlleleMSearchSerializer, BrAPIListPagination)
def get(self, request, format=None, *args, **kwargs): logger = logging.getLogger(__name__) mapDbId = self.kwargs['mapDbId'] queryset = MapLinkage.objects.all() linkageGroupId = self.request.query_params.get('linkageGroupId', None) logger.warn("Linkages: (%s, %s)" % (mapDbId, linkageGroupId)) queryset = search_get_qparams(self, queryset, [('mapDbId', 'mapDbId'), ('linkageGroupId', 'linkageGroupId')]) return paginate(queryset, request, MapLinkageSerializer)
def get(self, request, format=None, *args, **kwargs): queryset = Germplasm.objects.all() logger = logging.getLogger(__name__) logger.warn("Searching with parameters %s" % self.request.query_params) queryset = search_get_qparams(self, queryset, [('germplasmName', 'germplasmName'), ('germplasmDbId', 'germplasmDbId'), ('germplasmPUI', 'germplasmPUI')]) return paginate(queryset, request, GermplasmSerializer)
def get(self, request, format=None, *args, **kwargs): queryset = Sample.objects.all() sampleId = self.kwargs.get('sampleId', None) logger = logging.getLogger(__name__) logger.warn("Sample id '%s'" % sampleId) if sampleId is not None: queryset = queryset.filter(sampleId=sampleId) # end if return paginate(queryset, request, SampleSerializer)
def post(self, request, format=None, *args, **kwargs): queryset = Study.objects.all() queryset = search_post_params_in( self, queryset, [('studyType', 'studyType'), ('seasonDbId', 'seasonDbId'), ('locationDbId', 'locationDbId'), ('programDbId', 'programDbId'), ('germplasmDbId', 'germplasmDbIds'), ('observationVariableDbId', 'observationVariableDbIds'), ('active', 'active')]) return paginate(queryset, request, StudySerializer)
def get(self, request, format=None, *args, **kwargs): queryset = Location.objects.all() locationDbId = self.kwargs.get('locationDbId', None) if locationDbId is not None: queryset = queryset.filter(locationDbId=locationDbId) # end if return paginate(queryset, request, LocationSerializer) # end def get # end class LocationDetailsView
def get(self, request, format=None, *args, **kwargs): queryset = GermplasmMarkerprofile.objects.all() germplasmDbId = self.kwargs.get('id', None) if germplasmDbId is not None: queryset = queryset.filter(germplasmDbId=germplasmDbId) # end if return paginate(queryset, request, GermplasmMarkerprofileSerializer) # end def get # end class GermplasmMarkerprofileView
def get(self, request, format=None, *args, **kwargs): logger = logging.getLogger(__name__) logger.warn("Searching with parameters %s" % self.request.query_params) queryset = MarkerProfile.objects.all() queryset = search_get_qparams(self, queryset, [('germplasmDbId', 'germplasm'), ('studyDbId', 'studyDbId'), ('sampleDbId', 'sample'), ('extractDbId', 'extract'), ('analysisMethod', 'method')]) return paginate(queryset, request, MarkerProfileSerializer)
def get(self, request, format=None, *args, **kwargs): queryset = GPPedigree.objects.all() germplasmDbId = self.kwargs.get('germplasmDbId', None) if germplasmDbId is not None: queryset = queryset.filter(germplasmDbId=germplasmDbId) # end if notation = self.request.query_params.get('notation', None) if notation is not None: raise Exception('Deal with "notation" parameter') # end if return paginate(queryset, request, GPPedigreeSerializer)
def post(self, request, format=None, *args, **kwargs): params = self.request.data logger = logging.getLogger(__name__) logger.warn("Search parameters: %s" % params) queryset = ObsVariable.objects.all() # TODO: add ('datatypes'), ('traitClasses') queryset = search_post_params_in(self, queryset, [('observationVariableDbId', 'observationVariableDbIds'), ('ontologyXref', 'ontologyXrefs'), ('ontologyDbId', 'ontologyDbIds'), ('method', 'methodDbIds'), ('scale', 'scaleDbIds'), ('name', 'names')]) return paginate(queryset, request, ObsVariableSerializer)
def get(self, request, format=None, *args, **kwargs): queryset = MarkerProfile.objects.all() markerprofileDbId = self.kwargs.get('markerprofileDbId', None) logger = logging.getLogger(__name__) logger.warn("Markerprofiles data: %s" % markerprofileDbId) if markerprofileDbId is not None: queryset = queryset.filter( markerProfilesDbId_details=markerprofileDbId) # end if # TODO: it is not clear to which data the query parameters apply! # unknownString=&sepPhased=&sepUnphased=&expandHomozygotes= return paginate(queryset, request, MarkerProfileSerializer)
def get(self, request, format=None, *args, **kwargs): queryset = GermplasmAttr.objects.all() germplasmDbId = self.kwargs.get('germplasmDbId', None) if germplasmDbId is not None: queryset = queryset.filter(germplasmDbId=germplasmDbId) # end if attributeDbIds = self.request.query_params.get('attributeList', None) logger = logging.getLogger(__name__) logger.warn("FILTERING: %s (IN %s)" % (germplasmDbId, attributeDbIds)) if attributeDbIds is not None: queryset = queryset.filter(attributeDbId__in=attributeDbIds) # end if return paginate(queryset, request, GermplasmAttrSerializer)
def post(self, request, format=None, *args, **kwargs): queryset = Phenotype.objects.all() # PARAMS: # { # "germplasmDbIds" : [ "Blabla", "34Mtp362" ], // (optional, text, `986`) ... The name or synonym of external genebank accession identifiers # "observationVariableDbIds" : [ "37373", "CO_321:00000234"], // (optional, text, `CO_321:00000234`) ... The IDs of traits, could be ontology ID, database ID or PUI # "studyDbIds" : [ "383", "2929", "WHEAT_NETWK_2016_MONTPELLIER" ], // (optional, text, `2356`) ... The database ID / PK of the studies search parameter # "locationDbIds" : [ "383838", "MONTPELLIER" ], // locations these traits were collected # "programDbIds" : [ "3838", "Drought resistance CG 2020" ], // list of programs that have phenotyped this trait # "seasonDbIds" : [ "338", "2010", "1956-2014", "2002-2003-2004", "2007 Spring" ], // (optional, text, `2001`) ... The year or Phenotyping campaign of a multiannual study (trees, grape, ...) # "observationLevel" : "plot", // (optional, text, `plot`) ... The type of the observationUnit. Returns only the observaton unit of the specified type; the parent levels ID can be accessed through observationUnitStructure. # "observationTimeStampRange" : ["2015-06-16T00:53:26-0800","2015-06-18T00:53:26-0800"] # "pageSize" : 100, // (optional, integer, `1000`) ... The size of the pages to be returned. Default is `1000`. # "page" : 1, // (optional, integer, `10`) ... Which result page is requested # } params = self.request.data logger = logging.getLogger(__name__) logger.warn("Search parameters: %s" % params) queryset = search_post_params_in( self, queryset, [('germplasmDbIds', 'germplasmDbIds'), ('observationVariableDbIds', 'observationVariableDbIds'), ('studyDbIds', 'studyDbIds'), ('locationDbIds', 'locationDbIds'), ('programDbIds', 'programDbIds'), ('seasonDbIds', 'seasonDbIds'), ('observationLevel', 'observationLevel')]) observationTimeStampRange = params.get('observationTimeStampRange', None) if observationTimeStampRange is not None: queryset = queryset.filter( Q(observationTimeStampRange__gte=observationTimeStampRange[0]) & Q(observationTimeStampRange__lte=observationTimeStampRange[1])) # end if #serializer = PhenotypeSerializer(queryset, many=True) return paginate(queryset, request, PhenotypeSerializer)
def get(self, request, format=None, *args, **kwargs): queryset = Trial.objects.all() queryset = search_get_qparams(self, queryset, [('programDbId', 'programDbId'), ('locationDbId', 'locationDbId'), ('active', 'active')]) sortBy = self.request.query_params.get('sortBy', None) sortOrder = self.request.query_params.get('sortOrder', None) if sortBy is not None: if sortOrder is not None and sortOrder == 'Ascending': queryset = queryset.order_by(sortBy) elif sortOrder is not None and sortOrder == 'Descending': queryset = queryset.order_by('-' + sortBy) # end if # end if return paginate(queryset, request, TrialSerializer)
def get(self, request, format=None, *args, **kwargs): logger = logging.getLogger(__name__) mapDbId = self.kwargs['mapDbId'] queryset = MapLinkage.objects.all() linkageGroupId = self.kwargs['linkageGroupId'] logger.warn("Positions: (%s, %s)" % (mapDbId, linkageGroupId)) queryset = queryset.filter(Q(mapDbId=mapDbId)&Q(linkageGroupId=linkageGroupId)) # numerical filters, therefore cannot use '_search_get_qparams' min_pos = self.request.query_params.get('min', None) if min_pos is not None: queryset = queryset.filter(location__gte=min_pos) # end if max_pos = self.request.query_params.get('max', None) if max_pos is not None: queryset = queryset.filter(location__lte=max_pos) # end if return paginate(queryset, request, MapLinkageSerializer)
def get(self, request, format=None, *args, **kwargs): queryset = Map.objects.all() queryset = search_get_qparams(self, queryset, [('type', 'type'), ('species', 'species')]) return paginate(queryset, request, MapSerializer)
def get(self, request, format=None, *args, **kwargs): queryset = Trait.objects.all() return paginate(queryset, request, TraitSerializer)