about summary refs log tree commit diff
path: root/uploader/templates/genotypes
diff options
context:
space:
mode:
Diffstat (limited to 'uploader/templates/genotypes')
-rw-r--r--uploader/templates/genotypes/base.html23
-rw-r--r--uploader/templates/genotypes/create-dataset.html82
-rw-r--r--uploader/templates/genotypes/index.html32
-rw-r--r--uploader/templates/genotypes/list-genotypes.html149
-rw-r--r--uploader/templates/genotypes/list-markers.html105
-rw-r--r--uploader/templates/genotypes/select-population.html25
-rw-r--r--uploader/templates/genotypes/view-dataset.html61
7 files changed, 477 insertions, 0 deletions
diff --git a/uploader/templates/genotypes/base.html b/uploader/templates/genotypes/base.html
new file mode 100644
index 0000000..7d61312
--- /dev/null
+++ b/uploader/templates/genotypes/base.html
@@ -0,0 +1,23 @@
+{%extends "populations/base.html"%}
+
+{%block lvl3_breadcrumbs%}
+<li {%if activelink=="genotypes"%}
+    class="breadcrumb-item active"
+    {%else%}
+    class="breadcrumb-item"
+    {%endif%}>
+  {%if population is mapping%}
+  <a href="{{url_for('species.populations.genotypes.list_genotypes',
+           species_id=species.SpeciesId,
+           population_id=population.Id)}}">
+    {%if dataset is defined and dataset is mapping%}
+    {{dataset.Name}}
+    {%else%}
+    Genotypes
+    {%endif%}</a>
+  {%else%}
+  <a href="{{url_for('species.populations.genotypes.index')}}">Genotypes</a>
+  {%endif%}
+</li>
+{%block lvl4_breadcrumbs%}{%endblock%}
+{%endblock%}
diff --git a/uploader/templates/genotypes/create-dataset.html b/uploader/templates/genotypes/create-dataset.html
new file mode 100644
index 0000000..10331c1
--- /dev/null
+++ b/uploader/templates/genotypes/create-dataset.html
@@ -0,0 +1,82 @@
+{%extends "genotypes/base.html"%}
+{%from "flash_messages.html" import flash_all_messages%}
+{%from "populations/macro-display-population-card.html" import display_population_card%}
+
+{%block title%}Genotypes — Create Dataset{%endblock%}
+
+{%block pagetitle%}Genotypes — Create Dataset{%endblock%}
+
+{%block lvl4_breadcrumbs%}
+<li {%if activelink=="create-dataset"%}
+    class="breadcrumb-item active"
+    {%else%}
+    class="breadcrumb-item"
+    {%endif%}>
+  <a href="{{url_for('species.populations.genotypes.create_dataset',
+           species_id=species.SpeciesId,
+           population_id=population.Id)}}">Create Dataset</a>
+</li>
+{%endblock%}
+
+{%block contents%}
+{{flash_all_messages()}}
+
+<div class="row">
+  <form id="frm-geno-create-dataset"
+        method="POST"
+        action="{{url_for('species.populations.genotypes.create_dataset',
+                species_id=species.SpeciesId,
+                population_id=population.Id)}}">
+    <legend>Create a new Genotype Dataset</legend>
+
+    <div class="form-group">
+      <label for="txt-geno-dataset-name" class="form-label">Name</label>
+      <input type="text"
+             id="txt-geno-dataset-name"
+             name="geno-dataset-name"
+             required="required"
+             class="form-control" />
+      <small class="form-text text-muted">
+        <p>This is a short representative, but constrained name for the genotype
+          dataset.<br />
+          The field will only accept letters ('A-Za-z'), numbers (0-9), hyphens
+          and underscores. Any other character will cause the name to be
+          rejected.</p></small>
+    </div>
+
+    <div class="form-group">
+      <label for="txt-geno-dataset-fullname" class="form-label">Full Name</label>
+      <input type="text"
+             id="txt-geno-dataset-fullname"
+             name="geno-dataset-fullname"
+             required="required"
+             class="form-control" />
+      <small class="form-text text-muted">
+        <p>This is a longer, more descriptive name for your dataset.</p></small>
+    </div>
+
+    <div class="form-group">
+      <label for="txt-geno-dataset-shortname"
+             class="form-label">Short Name</label>
+      <input type="text"
+             id="txt-geno-dataset-shortname"
+             name="geno-dataset-shortname"
+             class="form-control" />
+      <small class="form-text text-muted">
+        <p>A short name for your dataset. If you leave this field blank, the
+          short name will be set to the same value as the
+          "<strong>Name</strong>" field above.</p></small>
+    </div>
+
+    <div class="form-group">
+      <input type="submit"
+             class="btn btn-primary"
+             value="create dataset"  />
+    </div>
+  </form>
+</div>
+{%endblock%}
+
+{%block sidebarcontents%}
+{{display_population_card(species, population)}}
+{%endblock%}
diff --git a/uploader/templates/genotypes/index.html b/uploader/templates/genotypes/index.html
new file mode 100644
index 0000000..b50ebc5
--- /dev/null
+++ b/uploader/templates/genotypes/index.html
@@ -0,0 +1,32 @@
+{%extends "genotypes/base.html"%}
+{%from "flash_messages.html" import flash_all_messages%}
+{%from "species/macro-select-species.html" import select_species_form%}
+
+{%block title%}Genotypes{%endblock%}
+
+{%block pagetitle%}Genotypes{%endblock%}
+
+
+{%block contents%}
+{{flash_all_messages()}}
+
+<div class="row">
+  <p>
+    This section allows you to upload genotype information for your experiments,
+    in the case that you have not previously done so.
+  </p>
+  <p>
+    We'll need to link the genotypes to the species and population, so do please
+    go ahead and select those in the next two steps.
+  </p>
+</div>
+
+<div class="row">
+  {{select_species_form(url_for("species.populations.genotypes.index"),
+  species)}}
+</div>
+{%endblock%}
+
+{%block javascript%}
+<script type="text/javascript" src="/static/js/species.js"></script>
+{%endblock%}
diff --git a/uploader/templates/genotypes/list-genotypes.html b/uploader/templates/genotypes/list-genotypes.html
new file mode 100644
index 0000000..0f074fd
--- /dev/null
+++ b/uploader/templates/genotypes/list-genotypes.html
@@ -0,0 +1,149 @@
+{%extends "genotypes/base.html"%}
+{%from "flash_messages.html" import flash_all_messages%}
+{%from "populations/macro-display-population-card.html" import display_population_card%}
+
+{%block title%}Genotypes{%endblock%}
+
+{%block pagetitle%}Genotypes{%endblock%}
+
+{%block lvl4_breadcrumbs%}
+<li {%if activelink=="list-genotypes"%}
+    class="breadcrumb-item active"
+    {%else%}
+    class="breadcrumb-item"
+    {%endif%}>
+  <a href="{{url_for('species.populations.genotypes.list_genotypes',
+           species_id=species.SpeciesId,
+           population_id=population.Id)}}">List genotypes</a>
+</li>
+{%endblock%}
+
+{%block contents%}
+{{flash_all_messages()}}
+
+<div class="row">
+  <h2>Genetic Markers</h2>
+  <p>There are a total of {{total_markers}} currently registered genetic markers
+    for the "{{species.FullName}}" species. You can click
+    <a href="{{url_for('species.populations.genotypes.list_markers',
+             species_id=species.SpeciesId,
+             population_id=population.Id)}}"
+       title="View genetic markers for species '{{species.FullName}}">
+      this link to view the genetic markers
+    </a>.
+  </p>
+</div>
+
+<div class="row">
+  <h2>Genotype Encoding</h2>
+  <p>
+    The genotype encoding used for the "{{population.FullName}}" population from
+    the "{{species.FullName}}" species is as shown in the table below.
+  </p>
+  <table class="table">
+
+    <thead>
+      <tr>
+        <th>Allele Type</th>
+        <th>Allele Symbol</th>
+        <th>Allele Value</th>
+      </tr>
+    </thead>
+
+    <tbody>
+      {%for row in genocode%}
+      <tr>
+        <td>{{row.AlleleType}}</td>
+        <td>{{row.AlleleSymbol}}</td>
+        <td>{{row.DatabaseValue if row.DatabaseValue is not none else "NULL"}}</td>
+      </tr>
+      {%else%}
+      <tr>
+        <td colspan="7" class="text-info">
+          <span class="glyphicon glyphicon-exclamation-sign"></span>
+          There is no explicit genotype encoding defined for this population.
+        </td>
+      </tr>
+      {%endfor%}
+    </tbody>
+  </table>
+
+  {%if genocode | length < 1%}
+  <a href="#add-genotype-encoding"
+     title="Add a genotype encoding system for this population"
+     class="btn btn-primary not-implemented">
+    add genotype encoding
+    </a>
+  {%endif%}
+</div>
+
+<div class="row text-danger">
+  <h3>Some Important Concepts to Consider/Remember</h3>
+  <ul>
+    <li>Reference vs. Non-reference alleles</li>
+    <li>In <em>GenoCode</em> table, items are ordered by <strong>InbredSet</strong></li>
+  </ul>
+  <h3>Possible references</h3>
+  <ul>
+    <li>https://mr-dictionary.mrcieu.ac.uk/term/genotype/</li>
+    <li>https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7363099/</li>
+  </ul>
+</div>
+
+<div class="row">
+  <h2>Genotype Datasets</h2>
+
+  <p>The genotype data is organised under various genotype datasets. You can
+    click on the link for the relevant dataset to view a little more information
+    about it.</p>
+
+  {%if dataset is not none%}
+    <table class="table">
+      <thead>
+        <tr>
+          <th>Name</th>
+          <th>Full Name</th>
+        </tr>
+      </thead>
+
+      <tbody>
+        <tr>
+          <td>{{dataset.Name}}</td>
+          <td><a href="{{url_for('species.populations.genotypes.view_dataset',
+                       species_id=species.SpeciesId,
+                       population_id=population.Id,
+                       dataset_id=dataset.Id)}}"
+                 title="View details regarding and manage dataset '{{dataset.FullName}}'">
+              {{dataset.FullName}}</a></td>
+        </tr>
+      </tbody>
+    </table>
+  {%else%}
+  <p class="text-warning">
+    <span class="glyphicon glyphicon-exclamation-sign"></span>
+    There is no genotype dataset defined for this population.
+  </p>
+  <p>
+    <a href="{{url_for('species.populations.genotypes.create_dataset',
+             species_id=species.SpeciesId,
+             population_id=population.Id)}}"
+       title="Create a new genotype dataset for the '{{population.FullName}}' population for the '{{species.FullName}}' species."
+       class="btn btn-primary">
+      create new genotype dataset</a></p>
+  {%endif%}
+</div>
+<div class="row text-warning">
+  <p>
+    <span class="glyphicon glyphicon-exclamation-sign"></span>
+    <strong>NOTE</strong>: Currently the GN2 (and related) system(s) expect a
+    single genotype dataset. If there is more than one, the system apparently
+    fails in unpredictable ways.
+  </p>
+  <p>Fix this to allow multiple datasets, each with a different assembly from
+    all the rest.</p>
+</div>
+{%endblock%}
+
+{%block sidebarcontents%}
+{{display_population_card(species, population)}}
+{%endblock%}
diff --git a/uploader/templates/genotypes/list-markers.html b/uploader/templates/genotypes/list-markers.html
new file mode 100644
index 0000000..a705ae3
--- /dev/null
+++ b/uploader/templates/genotypes/list-markers.html
@@ -0,0 +1,105 @@
+{%extends "genotypes/base.html"%}
+{%from "flash_messages.html" import flash_all_messages%}
+{%from "species/macro-display-species-card.html" import display_species_card%}
+
+{%block title%}Genotypes: List Markers{%endblock%}
+
+{%block pagetitle%}Genotypes: List Markers{%endblock%}
+
+{%block lvl4_breadcrumbs%}
+<li {%if activelink=="list-markers"%}
+    class="breadcrumb-item active"
+    {%else%}
+    class="breadcrumb-item"
+    {%endif%}>
+  <a href="{{url_for('species.populations.genotypes.list_markers',
+           species_id=species.SpeciesId,
+           population_id=population.Id)}}">List markers</a>
+</li>
+{%endblock%}
+
+{%block contents%}
+{{flash_all_messages()}}
+
+{%if markers | length > 0%}
+<div class="row">
+  <p>
+    There are a total of {{total_markers}} genotype markers for this species.
+  </p>
+  <div class="row">
+    <div class="col-md-2" style="text-align: start;">
+      {%if start_from > 0%}
+      <a href="{{url_for('species.populations.genotypes.list_markers',
+               species_id=species.SpeciesId,
+               population_id=population.Id,
+               start_from=start_from-count,
+               count=count)}}">
+        <span class="glyphicon glyphicon-backward"></span>
+        Previous
+      </a>
+      {%endif%}
+    </div>
+    <div class="col-md-8" style="text-align: center;">
+      Displaying markers {{start_from+1}} to {{start_from+count if start_from+count < total_markers else total_markers}} of
+      {{total_markers}}
+    </div>
+    <div class="col-md-2" style="text-align: end;">
+      {%if start_from + count < total_markers%}
+      <a href="{{url_for('species.populations.genotypes.list_markers',
+               species_id=species.SpeciesId,
+               population_id=population.Id,
+               start_from=start_from+count,
+               count=count)}}">
+        Next
+        <span class="glyphicon glyphicon-forward"></span>
+      </a>
+      {%endif%}
+    </div>
+  </div>
+  <table class="table">
+    <thead>
+      <tr>
+        <th title="">#</th>
+        <th title="">Marker Name</th>
+        <th title="Chromosome">Chr</th>
+        <th title="Physical location of the marker in megabasepairs">
+          Location (Mb)</th>
+        <th title="">Source</th>
+        <th title="">Source2</th>
+    </thead>
+
+    <tbody>
+      {%for marker in markers%}
+      <tr>
+        <td>{{marker.sequence_number}}</td>
+        <td>{{marker.Marker_Name}}</td>
+        <td>{{marker.Chr}}</td>
+        <td>{{marker.Mb}}</td>
+        <td>{{marker.Source}}</td>
+        <td>{{marker.Source2}}</td>
+      </tr>
+      {%endfor%}
+    </tbody>
+  </table>
+</div>
+{%else%}
+<div class="row">
+  <p class="text-warning">
+    <span class="glyphicon glyphicon-exclamation-sign"></span>
+    This species does not currently have any genetic markers uploaded, therefore,
+    there is nothing to display here.
+  </p>
+  <p>
+    <a href="#add-genetic-markers-for-species-{{species.SpeciesId}}"
+     title="Add genetic markers for this species"
+     class="btn btn-primary">
+    add genetic markers
+    </a>
+  </p>
+</div>
+{%endif%}
+{%endblock%}
+
+{%block sidebarcontents%}
+{{display_species_card(species)}}
+{%endblock%}
diff --git a/uploader/templates/genotypes/select-population.html b/uploader/templates/genotypes/select-population.html
new file mode 100644
index 0000000..acdd063
--- /dev/null
+++ b/uploader/templates/genotypes/select-population.html
@@ -0,0 +1,25 @@
+{%extends "genotypes/base.html"%}
+{%from "flash_messages.html" import flash_all_messages%}
+{%from "species/macro-display-species-card.html" import display_species_card%}
+{%from "populations/macro-select-population.html" import select_population_form%}
+
+{%block title%}Genotypes{%endblock%}
+
+{%block pagetitle%}Genotypes{%endblock%}
+
+
+{%block contents%}
+{{flash_all_messages()}}
+
+<div class="row">
+  {{select_population_form(url_for("species.populations.genotypes.select_population", species_id=species.SpeciesId), species, populations)}}
+</div>
+{%endblock%}
+
+{%block sidebarcontents%}
+{{display_species_card(species)}}
+{%endblock%}
+
+{%block javascript%}
+<script type="text/javascript" src="/static/js/populations.js"></script>
+{%endblock%}
diff --git a/uploader/templates/genotypes/view-dataset.html b/uploader/templates/genotypes/view-dataset.html
new file mode 100644
index 0000000..e7ceb36
--- /dev/null
+++ b/uploader/templates/genotypes/view-dataset.html
@@ -0,0 +1,61 @@
+{%extends "genotypes/base.html"%}
+{%from "flash_messages.html" import flash_all_messages%}
+{%from "populations/macro-display-population-card.html" import display_population_card%}
+
+{%block title%}Genotypes: View Dataset{%endblock%}
+
+{%block pagetitle%}Genotypes: View Dataset{%endblock%}
+
+{%block lvl4_breadcrumbs%}
+<li {%if activelink=="view-dataset"%}
+    class="breadcrumb-item active"
+    {%else%}
+    class="breadcrumb-item"
+    {%endif%}>
+  <a href="{{url_for('species.populations.genotypes.view_dataset',
+           species_id=species.SpeciesId,
+           population_id=population.Id,
+           dataset_id=dataset.Id)}}">view dataset</a>
+</li>
+{%endblock%}
+
+{%block contents%}
+{{flash_all_messages()}}
+
+<div class="row">
+  <h2>Genotype Dataset Details</h2>
+  <table class="table">
+    <thead>
+      <tr>
+        <th>Name</th>
+        <th>Full Name</th>
+      </tr>
+    </thead>
+
+    <tbody>
+      <tr>
+        <td>{{dataset.Name}}</td>
+        <td>{{dataset.FullName}}</td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+
+<div class="row text-warning">
+  <h2>Assembly Details</h2>
+
+  <p>Maybe include the assembly details here if found to be necessary.</p>
+</div>
+
+<div class="row">
+  <h2>Genotype Data</h2>
+
+  <p class="text-danger">
+    Provide link to enable uploading of genotype data here.</p>
+</div>
+
+{%endblock%}
+
+{%block sidebarcontents%}
+{{display_population_card(species, population)}}
+{%endblock%}