diff --git a/backend/metagenedb/api/catalog/views/gene.py b/backend/metagenedb/api/catalog/views/gene.py index a618a36b7cf1f5b474ddae14cf81f8eb43fc011a..475791668de4dfc150c921bea3cf3d33f73729c5 100644 --- a/backend/metagenedb/api/catalog/views/gene.py +++ b/backend/metagenedb/api/catalog/views/gene.py @@ -1,6 +1,7 @@ import pandas as pd from rest_framework.viewsets import GenericViewSet from rest_framework import mixins +from rest_framework import status from rest_framework.decorators import action from rest_framework.response import Response @@ -29,7 +30,7 @@ class GeneViewSet(mixins.ListModelMixin, labels = [] for rg in all_ranges: labels.append(f"{rg[0]}-{rg[1]-1}") - data.append(df[get_mask(df, rg, window_col)].count()['gene_length']) + data.append(df[get_mask(df, rg, window_col)].count()[window_col]) return { 'counts': data, 'labels': labels @@ -40,6 +41,11 @@ class GeneViewSet(mixins.ListModelMixin, if 'window_size' in request.query_params: window_size = int(request.query_params.get('window_size')) df = pd.DataFrame(list(self.queryset.values(self.GENE_LENGTH_COL))) + if df.empty: + return Response( + {'results': {}}, + status=status.HTTP_204_NO_CONTENT + ) return Response( {'results': self._count_windows(df, window_size)} )