aboutsummaryrefslogtreecommitdiff
path: root/uploader/genotypes
diff options
context:
space:
mode:
Diffstat (limited to 'uploader/genotypes')
-rw-r--r--uploader/genotypes/models.py16
-rw-r--r--uploader/genotypes/views.py13
2 files changed, 29 insertions, 0 deletions
diff --git a/uploader/genotypes/models.py b/uploader/genotypes/models.py
index 53c5fb8..642caa6 100644
--- a/uploader/genotypes/models.py
+++ b/uploader/genotypes/models.py
@@ -39,3 +39,19 @@ def genotype_markers(
cursor.execute(_query, (species_id,))
debug_query(cursor)
return tuple(dict(row) for row in cursor.fetchall())
+
+
+def genotype_datasets(
+ conn: mdb.Connection,
+ species_id: int,
+ population_id: int
+) -> tuple[dict, ...]:
+ """Retrieve genotype datasets from the database."""
+ with conn.cursor(cursorclass=DictCursor) as cursor:
+ cursor.execute(
+ "SELECT gf.* FROM Species AS s INNER JOIN InbredSet AS iset "
+ "ON s.Id=iset.SpeciesId INNER JOIN GenoFreeze AS gf "
+ "ON iset.Id=gf.InbredSetId "
+ "WHERE s.Id=%s AND iset.Id=%s",
+ (species_id, population_id))
+ return tuple(dict(row) for row in cursor.fetchall())
diff --git a/uploader/genotypes/views.py b/uploader/genotypes/views.py
index 2ff9965..294da0e 100644
--- a/uploader/genotypes/views.py
+++ b/uploader/genotypes/views.py
@@ -15,6 +15,7 @@ from uploader.population.models import (populations_by_species,
population_by_species_and_id)
from .models import (genotype_markers,
+ genotype_datasets,
genotype_markers_count,
genocode_by_population)
@@ -97,6 +98,8 @@ def list_genotypes(species_id: int, population_id: int):
conn, population_id),
total_markers=genotype_markers_count(
conn, species_id),
+ datasets=genotype_datasets(
+ conn, species_id, population_id),
activelink="list-genotypes")
@@ -125,3 +128,13 @@ def list_markers(species_id: int):
count=count,
markers=markers,
activelink="list-markers")
+
+@genotypesbp.route(
+ "/<int:species_id>/populations/<int:population_id>/genotypes/datasets/"
+ "<int:dataset_id>/view",
+ methods=["GET"])
+@require_login
+def view_dataset(species_id: int, population_id: int, dataset_id: int):
+ """View details regarding a specific dataset."""
+ return (f"Genotype dataset '{dataset_id}, from population '{population_id}' "
+ f"of species '{species_id}'.")