Skip to content

Commit

Permalink
Add Genome lab
Browse files Browse the repository at this point in the history
  • Loading branch information
neoformit committed Aug 28, 2024
1 parent 0224a42 commit ce1e50a
Show file tree
Hide file tree
Showing 12 changed files with 1,184 additions and 0 deletions.
3 changes: 3 additions & 0 deletions subdomains/genome/CONTRIBUTORS
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# If GitHub username, name and avatar will be fetched and displayed
AnnaSyme
neoformit
361 changes: 361 additions & 0 deletions subdomains/genome/annotation.yml

Large diffs are not rendered by default.

411 changes: 411 additions & 0 deletions subdomains/genome/assembly.yml

Large diffs are not rendered by default.

36 changes: 36 additions & 0 deletions subdomains/genome/base.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# Test this locally with:
# http://127.0.0.1:8000/lab/export?content_root=http://localhost:8000/static/home/labs/genome/base.yml

# Request this on site.usegalaxy.org.au with:
# https://site.usegalaxy.org.au/lab/export?content_root=https://site.usegalaxy.org.au/static/home/labs/genome/base.yml

# Check out the documentation for building exported labs:
# https://site.usegalaxy.org.au/lab/export

# Use these variables in HTML templates like:
# "Welcome to the Galaxy {{ site_name }} {{ lab_name }}"
# To make the content more generic and reusable across sites
site_name: Australia
lab_name: Genome Lab
nationality: Australian
galaxy_base_url: https://genome.usegalaxy.org.au # Use for rendering tool/workflow URLs. Trailing '/' will be removed.
subdomain: genome
root_domain: usegalaxy.org.au
feedback_email: help@genome.edu.au

# Custom content relative to this file URL
header_logo: static/logo.png
custom_css: static/custom.css
intro_md: templates/intro.html
conclusion_md: templates/conclusion.html
footer_md: templates/footer.html


# Data (Tools, Workflows etc.) to be rendered into sections/tabs/accordion elements.
# Either:
# 1. Relative to this file URL
# 2. Full URL to fetch globally centralized content
sections:
- data.yml
- assembly.yml
- annotation.yml
160 changes: 160 additions & 0 deletions subdomains/genome/data.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,160 @@
id: data
title: Data import and preparation
tabs:
- id: tools
title: Tools
heading_md: >
Common tools are listed here, or search for more in the full tool panel to the left.
content:
- title_md: Import data to Galaxy
description_md: >
Standard upload of data to Galaxy, from your computer or from the web.
button_link: "{{ galaxy_base_url }}/tool_runner?tool_id=upload1"
- title_md: <code>FastQC</code> - sequence quality reports
description_md: >
<p>
Before using your sequencing data, it's important to ensure that
the data quality is sufficient for your analysis.
</p>
inputs:
- datatypes:
- fastq
- bam
- sam
button_link: "{{ galaxy_base_url }}/tool_runner?tool_id=toolshed.g2.bx.psu.edu%2Frepos%2Fdevteam%2Ffastqc%2Ffastqc"
- title_md: <code>FastP</code> - sequence quality reports, trimming & filtering
description_md: >
<p>
Faster run than FastQC, this tool can also trim reads and filter by quality.
</p>
inputs:
- datatypes:
- fastq
button_link: "{{ galaxy_base_url }}/tool_runner?tool_id=toolshed.g2.bx.psu.edu%2Frepos%2Fiuc%2Ffastp%2Ffastp"
- title_md: <code>NanoPlot</code> - visualize Oxford Nanopore data
description_md: >
<p>
A plotting suite for Oxford Nanopore sequencing data and alignments.
</p>
inputs:
- datatypes:
- fastq
- fasta
- vcf_bgzip
button_link: "{{ galaxy_base_url }}/tool_runner?tool_id=toolshed.g2.bx.psu.edu%2Frepos%2Fiuc%2Fnanoplot%2Fnanoplot"
- title_md: <code>GenomeScope</code> - estimate genome size
description_md: >
<p>
A set of metrics and graphs to visualize genome size and complexity prior to assembly.
</p>
inputs:
- datatypes:
- tabular
label: Output from <code>Meryl</code> or <code>Jellyfish histo</code>
button_link: "{{ galaxy_base_url }}/tool_runner?tool_id=toolshed.g2.bx.psu.edu%2Frepos%2Fiuc%2Fgenomescope%2Fgenomescope"
- title_md: <code>Meryl</code> - count kmers
description_md: >
<p>
Prepare kmer count histogram for input to GenomeScope.
</p>
inputs:
- datatypes:
- fastq
- fasta
button_link: "{{ galaxy_base_url }}/tool_runner?tool_id=toolshed.g2.bx.psu.edu%2Frepos%2Fiuc%2Fmeryl%2Fmeryl"
- id: workflows
title: Workflows
heading_md: >
A workflow is a series of Galaxy tools that have been linked together to perform a specific analysis. You can use and customize the example workflows below.
<a href="https://galaxyproject.org/learn/advanced-workflow/" target="_blank">Learn more.</a>
content:
- title_md: Data QC
description_md: >
<p>
Report statistics from sequencing reads. <br> <br> Tools: <code>nanoplot</code> <code>fastqc</code> <code>multiqc</code>
</p>
button_link: "{{ galaxy_base_url }}/workflows/trs_import?trs_server=workflowhub.eu&run_form=true&trs_id=222"
view_link: https://workflowhub.eu/workflows/222
view_tip: View in WorkflowHub
button_tip: Import to Galaxy AU
- title_md: Kmer counting to estimate genome size
description_md: >
<p>
Estimates genome size and heterozygosity based on counts of kmers. <br> <br> Tools: <code>meryl</code> <code>genomescope</code>
</p>
button_link: "{{ galaxy_base_url }}/workflows/trs_import?trs_server=workflowhub.eu&run_form=true&trs_id=223"
view_link: https://workflowhub.eu/workflows/223
view_tip: View in WorkflowHub
button_tip: Import to Galaxy AU
- title_md: Trim and filter reads
description_md: >
<p>
Trims and filters raw sequence reads according to specified settings. <br> <br> Tools: <code>fastp</code>
</p>
button_link: "{{ galaxy_base_url }}/workflows/trs_import?trs_server=workflowhub.eu&run_form=true&trs_id=224"
view_link: https://workflowhub.eu/workflows/224
view_tip: View in WorkflowHub
button_tip: Import to Galaxy AU
- id: help
title: Help
content:
- title_md: How can I import my genomics data?
description_md: >
<p>
You can upload your data to Galaxy using the Upload tool from anywhere in Galaxy. Just look for the "Upload data" button at the top of the tool panel.
</p>
button_md: More info
button_link: https://training.galaxyproject.org/training-material/topics/galaxy-interface/
- title_md: How can I subsample my data?
description_md: >
<p>
We recommend subsampling large data sets to test tools and workflows. A useful tool is <code>seqtk_seq</code>, setting the parameter at "Sample fraction of sequences".
</p>
- title_md: How can I import data from the BPA portal?
description_md: >
<p>
BioPlatforms Australia allows data downloads via URL. Once you have generated one of these URLs in the BPA portal, you can import it into Galaxy using the "Fetch data" feature of the Upload tool.
</p>
button_md: More info
button_link: https://australianbiocommons.github.io/how-to-guides/genome_assembly/hifi_assembly#in-depth-workflow-guide
- title_md: Can I upload sensitive data?
description_md: >
<p>
No, do not upload personal or sensitive, such as human health or clinical data. Please see our <a href="/about#data-privacy">Data Privacy</a> page for definitions of sensitive and health-related information.
</p>
<p>
Please also make sure you have read our <a href="/about#terms-of-service">Terms of Service</a>, which covers hosting and analysis of research data.
</p>
- title_md: Is my data private?
description_md: >
<p>
Please read our <a href="/about#data-privacy">Privacy Policy</a> for information on your personal data and any data that you upload.
</p>
- title_md: How can I increase my storage quota?
description_md: >
<p>
Please submit a quota request if your Galaxy Australia account reaches its data storage limit. Requests are usually provisioned quickly if you provide a reasonable use case for your request.
</p>
button_md: Request
button_link: /request/quota
- title_md: "Tutorial: Quality Control"
description_md: >
<p>
Quality control and data cleaning is an essential first step in any NGS analysis. This tutorial will show you how to use and interpret results from <code>FastQC</code>, <code>NanoPlot</code> and <code>PycoQC</code>.
</p>
button_md: Tutorial
button_link: https://training.galaxyproject.org/training-material/topics/sequence-analysis/tutorials/quality-control/tutorial.html
- title_md: "Tutorial: introduction to Genomics and Galaxy"
description_md: >
<p>
This practical aims to familiarize you with the Galaxy user interface. It will teach you how to perform basic tasks such as importing data, running tools, working with histories, creating workflows, and sharing your work.
</p>
button_md: Tutorial
button_link: https://training.galaxyproject.org/training-material/topics/introduction/tutorials/galaxy-intro-strands/tutorial.html
- title_md: Galaxy Australia support
description_md: >
<p>
Any user of Galaxy Australia can request support through an online form.
</p>
button_md: Request support
button_link: /request/support
Binary file added subdomains/genome/static/annotation-overview.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added subdomains/genome/static/assembly-overview.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file.
Binary file added subdomains/genome/static/logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
163 changes: 163 additions & 0 deletions subdomains/genome/templates/conclusion.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,163 @@
<section class="my-5">
<h4 class="mb-3">What's happening in {{ nationality }} genomics research?</h4>
<button
class="ga-btn"
data-bs-toggle="modal"
data-bs-target="#communityConnectModal"
>
Explore
</button>
<br>
<br>
<h4 class="mb-3">What do you think of the {{ lab_name }}?</h4>
<button
class="ga-btn"
data-bs-toggle="modal"
data-bs-target="#feedbackModal"
>
Give feedback
</button>
</section>


<div class="modal fade" id="feedbackModal" tabindex="-1">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<form id="feedbackForm">

{% csrf_token %}

<div class="modal-header">
<h5 class="modal-title">Feedback</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"
onclick="clearForm()"></button>
</div>
<div class="modal-body">
<div class="default-content">
<p>
We'd love to hear your feedback on the Galaxy Australia {{ site_name }}. Please let us know what
you think!
</p>
<div class="mb-3">
<label for="nameInput" class="form-label">Name</label>

<input type="text" class="form-control" id="nameInput" required>
</div>
<div class="mb-3">
<label for="emailInput" class="form-label">Email address</label>
<input type="email" class="form-control" id="emailInput" aria-describedby="emailHelp" required>
<div id="emailHelp" class="form-text">In case we'd like to contact you for more information.</div>
</div>
<div class="mb-3">
<label for="messageInput" class="form-label">Your feedback</label>
<textarea class="form-control" id="messageInput" rows="8" required></textarea>
</div>
</div>

<div class="success-content" style="display: none;">
<p class="alert alert-success">Thanks for your feedback!</p>
</div>

<div class="loading m-5 text-center" style="display: none;">
<img src="https://raw.githubusercontent.com/usegalaxy-au/galaxy-media-site/dev/webapp/home/static/home/img/spinner.svg" alt="Loading animation" width="150px">
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal" onclick="clearForm();">Close</button>
<button type="submit" class="btn btn-primary">Submit</button>
</div>
</form>
</div>
</div>
</div>

<div class="modal fade" id="communityConnectModal" tabindex="-1">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">Australian genomics research</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<p>
<p><a href="https://www.biocommons.org.au/genomics-domain" target="_blank">Discover more genomics activities and services supported by Australian BioCommons, and join in the community Genomics meetings</a></p>
</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>


<script>
function clearForm() {
setTimeout(() => {
document.getElementById('feedbackForm').reset();
$('#feedbackForm .default-content').show();
$('#feedbackForm .success-content').hide();
$('#feedbackForm .loading').hide();
$('button[type="submit"]').show();
}, 500);
}

function submitForm(event) {
event.preventDefault();
$('#feedbackForm .loading').show();
$('#feedbackForm .default-content').hide();
$('button[type="submit"]').hide();

// Clear any previous errors
$('#feedbackForm .error-message').remove();
$('#feedbackForm .invalid').removeClass('invalid');

let formData = new FormData();
formData.append('name', $('#nameInput').val());
formData.append('email', $('#emailInput').val());
formData.append('message', $('#messageInput').val());

fetch('/feedback/{{ subdomain }}', {
method: 'POST',
headers: {
'X-CSRFToken': getCsrfToken(),
},
body: formData,
}).then(r => r.json())
.then(data => {
if (data.success) {
showSuccess();
} else {
showErrors(JSON.parse(data.errors_json));
}
});
}

function getCsrfToken() {
return document.querySelector('[name=csrfmiddlewaretoken]').value;
}

function showSuccess() {
console.log("Form success");
$('#feedbackForm .loading').hide();
$('#feedbackForm .default-content').hide();
$('#feedbackForm .success-content').show();
}

function showErrors(errors) {
Object.keys(errors).forEach( (field) => {
errors[field].forEach( err => {
const msg = err.message;
$(`#${field}Input`)
.addClass('invalid')
.parent().append(`<small class="text-danger error-message">${msg}</small>`);
})
});
$('#feedbackForm .loading').hide();
$('#feedbackForm .default-content').show();
$('button[type="submit"]').show();
}

$('#feedbackForm').submit(submitForm);

</script>
10 changes: 10 additions & 0 deletions subdomains/genome/templates/footer.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<iframe id="footerIframe" style="width: 100%;" src="https://site.usegalaxy.org.au/embed/home/snippets/footer.html"></iframe>
<script>
// Dynamically resize the iframe based on the content height
window.addEventListener("message", function(event) {
const iframe = document.getElementById('footerIframe');
const height = event.data.height + 'px';
console.log('Set footer height:', height);
iframe.style.height = height;
}, false);
</script>
Loading

0 comments on commit ce1e50a

Please sign in to comment.