diff --git a/webapp/home/admin.py b/webapp/home/admin.py index 8b70e4e6..135926bd 100644 --- a/webapp/home/admin.py +++ b/webapp/home/admin.py @@ -5,7 +5,7 @@ from django.contrib.auth.admin import UserAdmin as BaseUserAdmin from django.conf import settings -from .models import CoverImage, MediaImage, Notice, Subsite, User +from .models import CoverImage, MediaImage, Notice, User from .admin_forms import NoticeAdminForm, UserCreationForm, UserChangeForm @@ -113,4 +113,3 @@ class CoverImageAdmin(admin.ModelAdmin): admin.site.unregister(Group) admin.site.register(MediaImage, MediaImageAdmin) admin.site.register(CoverImage, CoverImageAdmin) -admin.site.register(Subsite) diff --git a/webapp/home/lab_cache.py b/webapp/home/lab_cache.py deleted file mode 100644 index e916e030..00000000 --- a/webapp/home/lab_cache.py +++ /dev/null @@ -1,62 +0,0 @@ -"""Cache lab pages because rendering is expensive.""" - -from django.core.cache import cache -from django.utils.http import urlencode -from django.http import HttpResponse -from hashlib import md5 - -CACHE_KEY_IGNORE_GET_PARAMS = ( - 'cache', -) - - -class LabCache: - @classmethod - def get(cls, request): - if request.GET.get('cache', '').lower() == 'false': - return - - cache_key = cls._generate_cache_key(request) - body = cache.get(cache_key) - if body: - response = HttpResponse(body) - response['X-Cache-Status'] = 'HIT' - return response - - @classmethod - def put(cls, request, body): - cache_key = cls._generate_cache_key(request) - cache.set(cache_key, body, timeout=3600) - response = HttpResponse(body) - response['X-Cache-Status'] = 'MISS' - return response - - @classmethod - def _generate_cache_key(cls, request): - """Create a unique cache key from request path.""" - params = { - k: v for k, v in request.GET.items() - if k not in CACHE_KEY_IGNORE_GET_PARAMS - } - key = f"{request.path}?{urlencode(params)}" - return md5(key.encode('utf-8')).hexdigest() - - -class WebCache: - """Cache content from web requests.""" - - @classmethod - def get(cls, url): - cache_key = cls._generate_cache_key(url) - data = cache.get(cache_key) - if data: - return data - - @classmethod - def put(cls, url, data, timeout=3600): - cache_key = cls._generate_cache_key(url) - cache.set(cache_key, data, timeout=timeout) - - @classmethod - def _generate_cache_key(cls, url): - return md5(url.encode('utf-8')).hexdigest() diff --git a/webapp/home/lab_export.py b/webapp/home/lab_export.py deleted file mode 100644 index 6612539d..00000000 --- a/webapp/home/lab_export.py +++ /dev/null @@ -1,374 +0,0 @@ -"""Exported landing pages to be requested by external Galaxy servers. - -Example with local YAML: -http://127.0.0.1:8000/landing/export?content_root=http://127.0.0.1:8000/static/home/labs/genome/base.yml - -Example URL with remote YAML: -http://127.0.0.1:8000/landing/export?content_root=https://raw.githubusercontent.com/usegalaxy-au/galaxy-media-site/dev/webapp/home/static/home/labs/genome/base.yml - -""" - -import concurrent.futures -import logging -import requests -import warnings -import yaml -from bs4 import BeautifulSoup, MarkupResemblesLocatorWarning -from django.conf import settings -from markdown2 import Markdown -from pydantic import ValidationError - -from types import SimpleNamespace -from utils.exceptions import SubsiteBuildError -from .lab_schema import LabSchema, LabSectionSchema -from .lab_cache import WebCache - -logger = logging.getLogger('django') - -ACCEPTED_IMG_EXTENSIONS = ('png', 'jpg', 'jpeg', 'svg', 'webp') -CONTRIBUTORS_FILE = 'CONTRIBUTORS' -GITHUB_USERNAME_URL = "https://api.github.com/users/{username}" -CONTENT_TYPES = SimpleNamespace( - WEBPAGE='webpage', - YAML='yaml', - TEXT='text', -) - - -class ExportSubsiteContext(dict): - """Build and validate render context for exported subsite landing page. - - These page are intended to be displayed externally to the host Galaxy - (i.e. on a different Galaxy server). - - The context can be built from GET params or from an externally hosted YAML - context specified by a ``content_root`` GET param. - """ - - FETCH_SNIPPETS = ( - 'header_logo', - 'intro_md', - 'footer_md', - 'conclusion_md', - 'custom_css', - ) - - def __init__(self, content_root): - """Init context from dict.""" - super().__init__(self) - self['snippets'] = {} - self.content_root = content_root - self.parent_url = content_root.rsplit('/', 1)[0] + '/' - self.update({ - 'export': True, - 'extend_template': 'home/header-export.html', - }) - self._fetch_yaml_context() - self._fetch_sections() - self._fetch_contributors() - - def _clean(self): - """Format params for rendering.""" - self['galaxy_base_url'] = self['galaxy_base_url'].rstrip('/') - self._filter_sections() - - def validate(self): - """Validate against required params.""" - self._validate_sections() - self._clean() - - def _validate_sections(self): - """Validate sections against Pydantic schema.""" - for section in self['sections']: - try: - LabSectionSchema(**section) - except ValidationError as e: - raise SubsiteBuildError( - e, - section_id=section["id"], - source='YAML', - ) - - def _get( - self, - url, - expected_type=None, - ignore_404=False, - ): - """Fetch content from URL and validate returned content.""" - url = self._make_raw(url) - self._validate_url(url, expected_type) - try: - res = requests.get(url) - except requests.exceptions.RequestException as exc: - raise SubsiteBuildError(exc, url=url) - if res.status_code >= 300: - if ignore_404 and res.status_code == 404: - return - raise SubsiteBuildError( - f'HTTP {res.status_code} fetching file.', - url=url) - if expected_type != CONTENT_TYPES.WEBPAGE: - self._validate_not_webpage(url, res, expected_type) - return res - - def _validate_not_webpage(self, url, response, expected_type=None): - """Assert that the response body is not a webpage.""" - def looks_like_a_webpage(response): - body = response.content.decode('utf-8') - lines = [ - x.strip() - for x in body.split('\n') - if x.strip() - ] - return any([ - # raw.githubusercontent.com does not set content-type - 'text/html' in response.headers.get('content-type', ''), - lines and '' in lines[0].lower(), - lines and lines[0].lower().startswith('.yml or base.yml. - """ - if not self.content_root: - raise ValueError( - "GET parameter 'content_root' required for root URL") - - context = self._fetch_yaml_content(self.content_root, extend=False) - - if not self.content_root.endswith('base.yml'): - # Attempt to extend base.yml with self.content_root - base_content_url = (self.parent_url + 'base.yml') - base_context = self._fetch_yaml_content( - base_content_url, ignore_404=True, extend=False) - if base_context: - base_context.update(context) - context = base_context - - try: - LabSchema(**context) - except ValidationError as exc: - raise SubsiteBuildError(exc, url=self.content_root, source='YAML') - - self.update(context) - self._fetch_snippets() - - def _fetch_sections(self): - """Fetch webpage sections content from remote YAML file.""" - sections = self.get('sections') - if isinstance(sections, str): - self['sections'] = self._fetch_yaml_content(self.get('sections')) - elif isinstance(sections, list): - self['sections'] = [ - self._fetch_yaml_content(s) - for s in sections - ] - return sections - - def _filter_sections(self): - """Iterate over sections and remove items based on exclusion tags.""" - def filter_excluded_items(data): - def is_excluded_item(item): - return ( - isinstance(item, dict) - and 'exclude_from' in item - and self['root_domain'] in item['exclude_from'] - ) - - if isinstance(data, dict): - data = { - k: filter_excluded_items(v) - for k, v in data.items() - } - elif isinstance(data, list): - data = [ - filter_excluded_items(item) - for item in data - if not is_excluded_item(item) - ] - return data - - if self.get('root_domain'): - self['sections'] = filter_excluded_items(self['sections']) - - def _fetch_yaml_content(self, relpath, ignore_404=False, extend=True): - """Recursively fetch web content from remote YAML file.""" - yaml_url = self.content_root - if not (yaml_url and relpath): - return - url = ( - relpath if relpath.startswith('http') - else yaml_url.rsplit('/', 1)[0] + '/' + relpath.lstrip('./') - ) - res = self._get( - url, - expected_type=CONTENT_TYPES.YAML, - ignore_404=ignore_404, - ) - if not res: - return - yaml_str = res.content.decode('utf-8') - - try: - data = yaml.safe_load(yaml_str) - except yaml.YAMLError as exc: - raise SubsiteBuildError(exc, url=url, source='YAML') - if isinstance(data, str): - raise SubsiteBuildError( - 'YAML file must contain a dictionary or list.' - f' Got a string instead:\n{data}', - url=url, - source='YAML', - ) - - if extend and isinstance(data, dict): - data = { - # Fetch remote YAML if value is .yml - k: self._fetch_yaml_content(v) or v - if isinstance(v, str) and v.split('.')[-1] in ('yml', 'yaml') - else v - for k, v in data.items() - } - - return data - - def _fetch_contributors(self): - """Attempt to fetch list of contributors from repo.""" - url = self.parent_url + CONTRIBUTORS_FILE - res = self._get(url, ignore_404=True, expected_type=CONTENT_TYPES.TEXT) - if res: - usernames_list = [ - x.strip() for x in res.content.decode('utf-8').split('\n') - if x.strip() - and not x.strip().startswith('#') - ] - self['contributors'] = fetch_names(usernames_list) - else: - self['contributors'] = [] - - def _fetch_snippets(self): - """Fetch HTML snippets and add to context.snippets.""" - for name in self.FETCH_SNIPPETS: - if relpath := self.get(name): - if relpath.rsplit('.', 1)[1] in ACCEPTED_IMG_EXTENSIONS: - self['snippets'][name] = self._fetch_img_src(relpath) - else: - self['snippets'][name] = self._fetch_snippet(relpath) - - def _fetch_img_src(self, relpath): - """Build URL for image.""" - if self.content_root: - return self._make_raw(self.parent_url + relpath.lstrip('./')) - - def _fetch_snippet(self, relpath): - """Fetch HTML snippet from remote URL.""" - url = (self.parent_url + relpath.lstrip('./')) - res = self._get(url, expected_type=CONTENT_TYPES.WEBPAGE) - body = res.content.decode('utf-8') - if url.endswith('.md'): - body = self._convert_md(body) - if url.rsplit('.', 1)[1] in ('html', 'md'): - self._validate_html(body) - return body - - def _convert_md(self, text): - """Render markdown to HTML.""" - engine = Markdown(extras={ - "tables": True, - "code-friendly": True, - "html-classes": { - 'table': 'table table-striped', - }, - }) - return engine.convert(text) - - def _validate_html(self, body): - """Validate HTML content.""" - try: - with warnings.catch_warnings(): - warnings.simplefilter('ignore', MarkupResemblesLocatorWarning) - BeautifulSoup(body, 'html.parser') - except Exception as exc: - raise SubsiteBuildError(exc, source='HTML') - - -def get_github_user(username): - url = GITHUB_USERNAME_URL.format(username=username) - if cached := WebCache.get(url): - return cached - headers = { - 'X-GitHub-Api-Version': '2022-11-28', - } - token = settings.GITHUB_API_TOKEN - if token: - headers['Authorization'] = f'Bearer {token}' - response = requests.get(url, headers=headers) - if response.status_code == 200: - user_data = response.json() - WebCache.put(url, user_data, timeout=2_592_000) - return user_data - elif response.status_code == 401: - logger.warning( - 'GitHub API token unauthorized. Request blocked by rate-limiting.') - elif response.status_code == 404: - logger.warning(f'GitHub user not found: {username}') - WebCache.put(url, {'login': username}, timeout=2_592_000) - return {'login': username} - - -def fetch_names(usernames): - def fetch_name(username): - return (username, get_github_user(username)) - - users = [] - with concurrent.futures.ThreadPoolExecutor() as executor: - future_to_username = { - executor.submit(fetch_name, username): username - for username in usernames - } - for future in concurrent.futures.as_completed(future_to_username): - _, user_data = future.result() - users.append(user_data) - users.sort(key=lambda x: - usernames.index(x.get('login')) - if x and x.get('avatar_url') - else 9999) - - return users diff --git a/webapp/home/lab_schema.py b/webapp/home/lab_schema.py deleted file mode 100644 index 88cd33e7..00000000 --- a/webapp/home/lab_schema.py +++ /dev/null @@ -1,116 +0,0 @@ -"""Schema for validating Galaxy Lab content.""" - -import re -from enum import Enum -from pydantic import BaseModel, Field, field_validator -from pydantic.types import Annotated -from typing import Optional, Union - - -def html_tags(v: str) -> str: - """Validate markdown content.""" - if "<" not in v: - return v - # Remove self closing tags - v = ( - re.sub(r'(<.*?/>)|()', '', v, flags=re.MULTILINE) - .replace('
', '') - .replace('
', '') - ) - # Enumerate open/close tags - open_tags = re.findall(r'<[^/][\s\S]*?>', v, flags=re.MULTILINE) - close_tags = re.findall(r'', v, flags=re.MULTILINE) - assert len(open_tags) == len(close_tags), ( - f'Unclosed HTML tag in section content:\n{v}') - return v - - -MarkdownStr = Annotated[ - str, - Field(description='Markdown or HTML formatted string.'), -] - - -class IconEnum(str, Enum): - """Define material icon types for buttons.""" - run = 'run' # play_arrow - tutorial = 'tutorial' # school - social = 'social' # group - help = 'help' # help - view = 'view' # visibility - - -class TabContentEnum(str, Enum): - """Define the type of content in a tab item.""" - subsections = 'subsections' - - -class TabItem(BaseModel): - """Validate Galaxy Lab section tab item. - - In the UI this will be rendered as an "accordion" item. - """ - title_md: MarkdownStr - description_md: MarkdownStr - button_link: Optional[str] = None - button_tip: Optional[str] = None - button_md: Optional[MarkdownStr] = None - button_icon: Optional[IconEnum] = None - view_link: Optional[str] = None - view_tip: Optional[str] = None - view_md: Optional[MarkdownStr] = None - view_icon: Optional[IconEnum] = None - exclude_from: Optional[list[str]] = [] - - @field_validator( - 'title_md', 'description_md', 'button_md', 'view_md', - mode='before', - ) - def validate_md(cls, value): - return html_tags(value) - - -class TabSubsection(BaseModel): - """Validate Galaxy Lab section tab subsection.""" - id: str - title: str - content: list[TabItem] - - -class SectionTab(BaseModel): - """Validate Galaxy Lab section tab.""" - id: str - title: Optional[str] = None - content: Optional[ - Union[ - list[TabItem], - dict[TabContentEnum, list[TabSubsection]] - ] - ] = None - heading_md: Optional[MarkdownStr] = None - - @field_validator('heading_md', mode='before') - def validate_md(cls, value): - return html_tags(value) - - -class LabSectionSchema(BaseModel): - """Validate Galaxy Lab section.""" - id: str - tabs: list[SectionTab] - - -class LabSchema(BaseModel): - """Validate Galaxy Lab content.""" - site_name: str - lab_name: str - nationality: str - galaxy_base_url: str - subdomain: str - root_domain: str - sections: list[str] | str - header_logo: Optional[str] = None - custom_css: Optional[str] = None - intro_md: Optional[str] = None - conclusion_md: Optional[str] = None - footer_md: Optional[str] = None diff --git a/webapp/home/labs/.gitignore b/webapp/home/labs/.gitignore deleted file mode 100644 index 7835ffc2..00000000 --- a/webapp/home/labs/.gitignore +++ /dev/null @@ -1 +0,0 @@ -singlecell \ No newline at end of file diff --git a/webapp/home/labs/docs/CONTRIBUTORS b/webapp/home/labs/docs/CONTRIBUTORS deleted file mode 100644 index 165a98cb..00000000 --- a/webapp/home/labs/docs/CONTRIBUTORS +++ /dev/null @@ -1,2 +0,0 @@ -# If GitHub username, name and avatar will be fetched and displayed -neoformit diff --git a/webapp/home/labs/docs/base.yml b/webapp/home/labs/docs/base.yml deleted file mode 100644 index 63faca19..00000000 --- a/webapp/home/labs/docs/base.yml +++ /dev/null @@ -1,23 +0,0 @@ -# Default spec for an exported subsite landing page - -# You can test with: /lab/export?content_root=https://raw.githubusercontent.com/usegalaxy-au/galaxy-media-site/dev/webapp/home/labs/docs/base.yml - -site_name: Antarctica -lab_name: Galaxy Lab Pages -nationality: Antarctican -galaxy_base_url: https://galaxy-antarctica.org -subdomain: antarctica -root_domain: galaxy-antarctica.org - -# These files need to be accessible on the internet, relative to the content_root URL! -# ----------------------------------------------------------------------------- -# Custom content relative to this file URL -intro_md: templates/intro.html -header_logo: static/flask.svg -footer_md: templates/footer.html -custom_css: static/custom.css - -# Data to be rendered into sections/tabs/accordion elements: -sections: - - section_1.yml - - section_2.yml diff --git a/webapp/home/labs/docs/section_1.yml b/webapp/home/labs/docs/section_1.yml deleted file mode 100644 index 804b8787..00000000 --- a/webapp/home/labs/docs/section_1.yml +++ /dev/null @@ -1,91 +0,0 @@ -id: section_1 -title: Example section -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: - - # Accordion item schema: - # title_md: # inline MD accepted e.g. *italics*, **bold**, `code` - # description_md: - # inputs: - # - datatypes: # tool input 1 - two accepted datatypes - # - - # - - # label: - # - datatypes: # tool input 2 - one accepted datatype - # - - # label: - # button_link: - # button_md: - # button_tip: - # view_link: - # view_md: - # view_tip: - - - button_link: "{{ galaxy_base_url }}/tool_runner?tool_id=upload1" - 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=toolshed.g2.bx.psu.edu%2Frepos%2Fdevteam%2Ffastqc%2Ffastqc" - title_md: FastQC - sequence quality reports - description_md: > - Before using your sequencing data, it's important to ensure that - the data quality is sufficient for your analysis. - inputs: - - label: Sequencing data for analysis - datatypes: - - fasta - - fastq - - bam - - sam - - - 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. - [Learn more](https://galaxyproject.org/learn/advanced-workflow/). - content: - - button_link: "{{ galaxy_base_url }}/workflows/trs_import?trs_server=workflowhub.eu&run_form=true&trs_id=222" - button_tip: Import to Galaxy AU - title_md: Data QC - view_link: https://workflowhub.eu/workflows/222 - view_tip: View in WorkflowHub - view_icon: tutorial - description_md: | - Report statistics from sequencing reads. -

- Tools: - - - `nanoplot` - - `fastqc` - - `multiqc` - - button_link: "{{ galaxy_base_url }}/workflows/trs_import?trs_server=workflowhub.eu&run_form=true&trs_id=223" - button_tip: Import to Galaxy AU - description_md: | - Estimates genome size and heterozygosity based on counts of kmers. -

- Tools: - - - `meryl` - - `genomescope` - title_md: Kmer counting to estimate genome size - view_link: https://workflowhub.eu/workflows/223 - view_tip: View in WorkflowHub - - - id: help - title: Help - content: - - button_md: More info - button_link: https://training.galaxyproject.org/training-material/topics/galaxy-interface/ - description_md: | - 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. - title_md: How can I import my genomics data? - - description_md: | - We recommend subsampling large data sets to test tools and workflows. - A useful tool is `seqtk_seq`, setting the parameter at "Sample fraction of sequences". - title_md: How can I subsample my data? diff --git a/webapp/home/labs/docs/section_2.yml b/webapp/home/labs/docs/section_2.yml deleted file mode 100644 index 4215c5c5..00000000 --- a/webapp/home/labs/docs/section_2.yml +++ /dev/null @@ -1,155 +0,0 @@ -id: section_2 -title: Example section with subsections -tabs: - - id: tools - title: Tools - heading_md: | - The tools in this section have been divided into subsections to make it - easier for users to find the tools they need. This must replace the - entire value of the content key i.e. you can't mix - subsections with standalone items. - content: - - # Content can be split into subsections, each with a title. - # This must replace the entire value of the `content` key i.e. you can't - # mix subsections with standalone items: - subsections: - - id: subsection_1 - title: This is my first subsection - content: - - # Accordion item schema: - # title_md: # inline MD accepted e.g. *italics*, **bold**, `code` - # description_md: - # inputs: - # - datatypes: # tool input 1 - two accepted datatypes - # - - # - - # label: - # - datatypes: # tool input 2 - one accepted datatype - # - - # label: - # button_link: - # button_md: - # button_tip: - # view_link: - # view_md: - # view_tip: - - - title_md: Hifiasm- assembly with PacBio HiFi data - button_link: "{{ galaxy_base_url }}/tool_runner?tool_id=toolshed.g2.bx.psu.edu%2Frepos%2Fbgruening%2Fhifiasm%2Fhifiasm" - description_md:

A haplotype-resolved assembler for PacBio HiFi reads.

- inputs: - - label: PacBio reads - datatypes: - - fasta - - fastq - - - id: subsection_2 - title: Another subsection - content: - - title_md: Flye- assembly with PacBio or Nanopore data - button_link: "{{ galaxy_base_url }}/tool_runner?tool_id=toolshed.g2.bx.psu.edu%2Frepos%2Fbgruening%2Fflye%2Fflye" - description_md: > -

- de novo - assembly of single-molecule sequencing reads, designed for a wide range of datasets, - from small bacterial projects to large mammalian-scale assemblies. -

- inputs: - - label: Single-molecule sequencing reads - datatypes: - - fasta - - fastq - - - 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. - - Learn more - . - content: - subsections: - - id: pacbio - title: Assembly with PacBio HiFi data - content: - - description_md: > -

- This - - How-to-Guide - - will describe the steps required to assemble your genome on the Galaxy Australia platform, - using multiple workflows. -

- title_md: About these workflows - - button_link: "{{ galaxy_base_url }}/workflows/trs_import?trs_server=workflowhub.eu&run_form=true&trs_id=220" - button_tip: Import to Galaxy Australia - description_md: > -

- Convert a BAM file to FASTQ format to perform QC analysis (required if your data is in BAM format). -

- inputs: - - label: PacBiosubreads.bam - datatypes: - - bam - title_md: BAM to FASTQ + QC v1.0 - view_link: https://workflowhub.eu/workflows/220 - view_tip: View in WorkflowHub - - id: nanopore - title: Assembly with Nanopore data and polishing with Illumina data - content: - - description_md: > -

- This - - tutorial - - describes the steps required to assemble a genome on Galaxy with Nanopore and Illumina data -

- title_md: About these workflows - - button_link: "{{ galaxy_base_url }}/workflows/trs_import?trs_server=workflowhub.eu&run_form=true&trs_id=225" - button_tip: Import to Galaxy Australia - description_md: > -

- Assemble Nanopore long reads. This workflow can be run alone or as part of a combined workflow for large genome assembly. -

- inputs: - - label: Long reads (may be raw, filtered and/or corrected) - datatypes: - - fastqsanger - title_md: Flye assembly with Nanopore data - view_link: https://workflowhub.eu/workflows/225 - view_tip: View in WorkflowHub - - - id: help - title: Help - content: - - button_md: Request support - button_link: /request - description_md: > -

- Yes. Galaxy Australia has assembly tools for small prokaryote genomes as well as larger eukaryote genomes. - We are continually adding new tools and optimising them for large genome assemblies - - this means adding enough computer processing power to run data-intensive tools, as well as configuring - aspects such as parallelisation -

-

- Please contact us if: -

-
    -
  • you need to increase your data storage limit
  • -
  • there is a tool you wish to request
  • -
  • a tool appears to be broken or running slowly
  • -
- title_md: Can I use Galaxy Australia to assemble a large genome? - - description_md: > -
    -
  • See the tutorials in this Help section. They cover different approaches to genome assembly
  • -
  • Read the methods in scientific papers about genome assembly, particularly those about genomes with similar characteristics to those in your project
  • -
  • See the Workflows section for examples of different approaches to genome assembly - these cover different sequencing data types, and a variety of tools.
  • -
- title_md: How can I learn about genome assembly? diff --git a/webapp/home/labs/docs/static/custom.css b/webapp/home/labs/docs/static/custom.css deleted file mode 100644 index 9fc3864b..00000000 --- a/webapp/home/labs/docs/static/custom.css +++ /dev/null @@ -1,34 +0,0 @@ -#header-logo { - width: unset; -} -.export-info-hover { - position: relative; -} -.export-info-hover:hover { - box-shadow: 0 0 2px 0 #000; - background-color: #eee; -} -.export-info-button { - font-size: 1rem; - font-weight: normal; - font-family: var(--bs-body-font-family); - background-color: #000; - color: #fff; - padding: 5px 10px; - margin: 0; - border-radius: 5px; - text-decoration: none; - display: inline-block; - margin: 10px 0; - cursor: pointer; - display: none; - position: absolute; - top: -43px; - right: -2px; -} -.export-info-hover:hover .export-info-button{ - display: block; -} -li { - margin-bottom: .5rem; -} \ No newline at end of file diff --git a/webapp/home/labs/docs/static/flask.svg b/webapp/home/labs/docs/static/flask.svg deleted file mode 100644 index 47228526..00000000 --- a/webapp/home/labs/docs/static/flask.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/webapp/home/labs/docs/templates/conclusion.html b/webapp/home/labs/docs/templates/conclusion.html deleted file mode 100644 index e69de29b..00000000 diff --git a/webapp/home/labs/docs/templates/footer.html b/webapp/home/labs/docs/templates/footer.html deleted file mode 100644 index 6e3dacb3..00000000 --- a/webapp/home/labs/docs/templates/footer.html +++ /dev/null @@ -1,11 +0,0 @@ -
- -
-

Here is a custom footer that I wrote for this page!

- -

- - Some smaller text here that nobody will ever read. Lorem ipsum dolor sit amet consectetur adipisicing elit. Nemo facilis voluptatibus unde, officiis placeat corrupti error est. Laborum optio doloremque minus nemo illum enim voluptatibus harum. Odit, voluptates tempora. Aperiam. - -

-
diff --git a/webapp/home/labs/docs/templates/intro.html b/webapp/home/labs/docs/templates/intro.html deleted file mode 100644 index aadaac70..00000000 --- a/webapp/home/labs/docs/templates/intro.html +++ /dev/null @@ -1,213 +0,0 @@ -
-

- Welcome to the Galaxy Australia Media Site! This endpoint is used to generate - "exported" Galaxy Lab landing pages from remote content hosted on GitHub. - You can use this endpoint to rapidly create your own Galaxy Lab pages by - pointing to your own remote content. -

- -
    -
  • See the content used to generate this documentation page - - here. - -
  • -
  • - See a full working example of an exported Galaxy Lab page - here. -
  • -
  • - See a minimal working example of a lab page - here. -
  • -
- -

- This custom introductory text was pulled down from GitHub and rendered in real time. - Updates to - - this text - - on the remote will be reflected on this page. Note that GitHub raw content is - cached for 300 seconds, so some updates may take a few minutes to appear on - this page. -

- -
- -
-
-

- -

-
-
-

-

    -
  • - The root of your site's content should be a YAML file - see - - base.yml - - for the content root of this page. -
  • -
  • - Request your page by pointing to your remote content with the content_root GET parameter - (take a look at URL for this page). - For example, we can explicitly request this page with: -
    - - - http://{{ HOSTNAME }}/lab/export?content_root=https://raw.githubusercontent.com/usegalaxy-au/galaxy-media-site/dev/webapp/home/labs/docs/base.yml - - -
  • -
  • - The web server will fetch your content from GitHub (or anywhere on the internet) and render it into this page. -
  • -
  • - Note that base.yml points to other files (YAML, HTML, CSS and images), which are located in the same remote directory (e.g. on GitHub). You can template the entire page with these files! -
  • -
  • - The most useful part of this machinery is the sections content, which populates the tool/workflow sections below. - See - data.yml - and - assembly.yml - for examples of how to structure this content in YAML format. -
  • -
-

-
-
-
- -
-

- -

-
-
-

-

    -
  1. - Copy our - - example content - - directory to your own github repository. -
  2. -
  3. - Build your Galaxy Lab's info, tools and workflows by editing the YAML and HTML files. - Custom CSS and JavaScript are possible too. -
  4. -
  5. - Request the site with the content_root GET parameter pointing to your remote content: -
    - - - http://{{ HOSTNAME }}/lab/export?content_root=https://raw.githubusercontent.com/myusername/myrepo/path/to/content/base.yml - - -
  6. -
  7. - If using GitHub to serve your content, make sure that your URL (as shown above) starts with - https://raw.githubusercontent.com! You can click on the "Raw" button on any file in - GitHub to get the correct URL. -
  8. -
-

-
-
-
- -
-

- -

-
-
-

- The webpage includes Bootstrap 5.1, Material icons, and - FontAwesome 5.15 and JQuery 3.6 so you can use any styling/functionality - defined there. This means you can have webforms, interactive elements, - and more. Check out the - - Genome Lab conclusion.html - - for an example of more complex usage including modals and webforms. Modals - (popups) are a great way to hide additional information until the user - requests it. - Try one now! -

-
-
-
-
-
- - - - - diff --git a/webapp/home/labs/genome/CONTRIBUTORS b/webapp/home/labs/genome/CONTRIBUTORS deleted file mode 100644 index bb026f69..00000000 --- a/webapp/home/labs/genome/CONTRIBUTORS +++ /dev/null @@ -1,3 +0,0 @@ -# If GitHub username, name and avatar will be fetched and displayed -AnnaSyme -neoformit diff --git a/webapp/home/labs/genome/annotation.yml b/webapp/home/labs/genome/annotation.yml deleted file mode 100644 index e693290a..00000000 --- a/webapp/home/labs/genome/annotation.yml +++ /dev/null @@ -1,361 +0,0 @@ -id: annotation -title: Genome annotation -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: MAKER - genome annotation pipeline - description_md: > -

- MAKER is able to annotate both prokaryotes and eukaryotes. It works by aligning as many evidences as possible along the genome sequence, and then reconciling all these signals to determine probable gene structures. -

The evidences can be transcript or protein sequences from the same (or closely related) organism. These sequences can come from public databases (like NR or GenBank) or from your own experimental data (transcriptome assembly from an RNASeq experiment for example). MAKER is also able to take into account repeated elements. -

- inputs: - - label: Genome assembly - datatypes: - - fasta - - label: Protein evidence (optional) - datatypes: - - fasta - button_link: "{{ galaxy_base_url }}/tool_runner?tool_id=toolshed.g2.bx.psu.edu%2Frepos%2Fiuc%2Fmaker%2Fmaker" - - title_md: Funannotate predict - predicted gene annotations - description_md: > -

- Funannotate predict performs a comprehensive whole genome gene prediction. Uses AUGUSTUS, GeneMark, Snap, GlimmerHMM, BUSCO, EVidence Modeler, tbl2asn, tRNAScan-SE, Exonerate, minimap2. This approach differs from Maker as it does not need to train ab initio predictors. -

- inputs: - - datatypes: - - fasta - label: Genome assembly (soft-masked) - - datatypes: - - bam - label: Mapped RNA evidence (optional) - - datatypes: - - fasta - label: Protein evidence (optional) - button_link: "{{ galaxy_base_url }}/tool_runner?tool_id=toolshed.g2.bx.psu.edu%2Frepos%2Fiuc%2Ffunannotate_predict%2Ffunannotate_predict" - - title_md: RepeatMasker - screen DNA sequences for interspersed repeats and low complexity regions - description_md: > -

- RepeatMasker is a program that screens DNA for repeated elements such as tandem repeats, transposons, SINEs and LINEs. Galaxy AU has installed the full and curated DFam screening databases, or a custom database can be provided in fasta format. Additional reference data can be downloaded from RepBase. -

- inputs: - - datatypes: - - fasta - label: Genome assembly - button_link: "{{ galaxy_base_url }}/tool_runner?tool_id=toolshed.g2.bx.psu.edu%2Frepos%2Fbgruening%2Frepeat_masker%2Frepeatmasker_wrapper" - - title_md: InterProScan - Scans InterPro database and assigns functional annotations - description_md: > -

- Interproscan is a batch tool to query the InterPro database. It provides annotations based on multiple searches of profile and other functional databases. -

- inputs: - - datatypes: - - fasta - label: Genome assembly - button_link: "{{ galaxy_base_url }}/tool_runner?tool_id=toolshed.g2.bx.psu.edu%2Frepos%2Fbgruening%2Finterproscan%2Finterproscan" - - title_md: Funannotate compare - compare several annotations - description_md: > -

- Funannotate compare compares several annotations and outputs a GFF3 file with the best gene models. It can be used to compare the results of different gene predictors, or to compare the results of a gene predictor with a reference annotation. -

- inputs: - - datatypes: - - fasta - label: Genome assemblies to compare - button_link: "{{ galaxy_base_url }}/tool_runner?tool_id=toolshed.g2.bx.psu.edu%2Frepos%2Fiuc%2Ffunannotate_compare%2Ffunannotate_compare" - - title_md: JBrowse - Genome browser to visualize annotations - description_md: '' - inputs: - - datatypes: - - fasta - label: Genome assembly - - datatypes: - - gff - - gff3 - - bed - label: Annotations - - datatypes: - - bam - label: Mapped RNAseq data (optional) - button_link: "{{ galaxy_base_url }}/tool_runner?tool_id=toolshed.g2.bx.psu.edu%2Frepos%2Fiuc%2Fjbrowse%2Fjbrowse" - - title_md: Prokka - Genome annotation, prokaryotes only - description_md: '' - inputs: - - datatypes: - - fasta - label: Genome assembly - button_link: "{{ galaxy_base_url }}/tool_runner?tool_id=toolshed.g2.bx.psu.edu%2Frepos%2Fcrs4%2Fprokka%2Fprokka" - - - title_md: FGenesH - Genome annotation - description_md: > -

- Annotate an assembled genome and output a GFF3 file. There are several modules that do different things - search for FGENESH in the tool panel to see them. -

-

- Note: you must - - apply for access - - to this tool before use. -

- inputs: - - datatypes: - - fasta - label: Genome assembly - - datatypes: - - fasta - label: Repeat-masked (hard) genome assembly - button_link: "{{ galaxy_base_url }}/tool_runner?tool_id=fgenesh_annotate&version=latest" - - - 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. - Learn more. - content: - subsections: - - id: general - title: General use - content: - - title_md: Annotation with Maker - description_md: > -

- Annotates a genome using multiple rounds of Maker, including gene prediction using SNAP and Augustus.

Tools: maker snap augustus busco jbrowse -

- inputs: - - label: Genome assembly - datatypes: - - fasta - - label: RNAseq Illumina reads - datatypes: - - fastq - - label: Proteins - datatypes: - - fasta - button_link: "{{ galaxy_base_url }}/u/anna/w/genome-annotation-with-maker" - view_link: '' - view_tip: '' - button_tip: Run in Galaxy AU - - title_md: Annotation with Funannotate - description_md: > -

- Annotates a genome using Funannotate, includes RNAseq data with RNAstar, and protein predictions from EggNOG.

Tools: RNAstar funannotate eggnog busco jbrowse aegean parseval -

- inputs: - - label: Genome assembly (soft-masked) - datatypes: - - fasta - - label: RNAseq Illumina reads - datatypes: - - fastq - - label: Alternative annotation - datatypes: - - gff3 - - label: Alternative annotation - datatypes: - - gbk - button_link: "{{ galaxy_base_url }}/u/anna/w/annotation-funannotate" - view_link: '' - view_tip: '' - button_tip: Run in Galaxy AU - - - id: tsi_transcripts - title: Transcript alignment - content: - - title_md: About these workflows - description_md: > -

- This How-to-Guide will describe the steps required to align transcript data to your genome on the Galaxy Australia platform, using multiple workflows. The outputs from these workflows can then be used as inputs into the next annotation workflow using FgenesH++. -

- - title_md: Repeat masking - description_md: > -

- Mask repeats in the genome. -

- inputs: - - datatypes: - - fasta - label: Assembled genome genome.fasta - button_link: "{{ galaxy_base_url }}/workflows/trs_import?trs_server=workflowhub.eu&run_form=true&trs_id=875" - view_link: https://workflowhub.eu/workflows/875 - view_tip: View in WorkflowHub - button_tip: Import to Galaxy Australia - - - title_md: QC and trimming of RNAseq - description_md: > -

- Trim and merge RNAseq reads. -

- inputs: - - datatypes: - - fastqsanger.gz - label: "For each tissue: RNAseq R1 files in a collection R1.fastqsanger.gz; RNAseq R2 files in a collection R2.fastqsanger.gz" - button_link: "{{ galaxy_base_url }}/workflows/trs_import?trs_server=workflowhub.eu&run_form=true&trs_id=876" - view_link: https://workflowhub.eu/workflows/876 - view_tip: View in WorkflowHub - button_tip: Import to Galaxy Australia - - - title_md: Find transcripts - description_md: > -

- Align RNAseq to genome to find transcripts. -

- inputs: - - datatypes: - - fasta - label: Masked genome masked_genome.fasta - - fastqsanger.gz - label: "For each tissue: Trimmed and merged RNAseq R1 files R1.fastqsanger.gz; Trimmed and merged RNAseq R2 files R2.fastqsanger.gz" - button_link: "{{ galaxy_base_url }}/workflows/trs_import?trs_server=workflowhub.eu&run_form=true&trs_id=877" - view_link: https://workflowhub.eu/workflows/877 - view_tip: View in WorkflowHub - button_tip: Import to Galaxy Australia - - - title_md: Combine transcripts - description_md: > -

- Merge transcriptomes from different tissues, and filter out non-coding sequences. -

- inputs: - - datatypes: - - fasta - label: Masked genome masked_genome.fasta - - gtf - label: Multiple transcriptomes in a collection transcriptome.gtf - - fasta.gz - label: Coding and non-coding sequences from NCBI coding_seqs.fna.gz non-coding_seqs.fna.gz - button_link: "{{ galaxy_base_url }}/workflows/trs_import?trs_server=workflowhub.eu&run_form=true&trs_id=878" - view_link: https://workflowhub.eu/workflows/878 - view_tip: View in WorkflowHub - button_tip: Import to Galaxy Australia - - - title_md: Extract transcripts - description_md: > -

- Extract longest transcripts. -

- inputs: - - datatypes: - - fasta - label: Merged transcriptomes merged_transcriptomes.fasta - button_link: "{{ galaxy_base_url }}/workflows/trs_import?trs_server=workflowhub.eu&run_form=true&trs_id=879" - view_link: https://workflowhub.eu/workflows/879 - view_tip: View in WorkflowHub - button_tip: Import to Galaxy Australia - - - - title_md: Convert formats - description_md: > -

- Convert formats for FgenesH++ -

- inputs: - - datatypes: - - fasta - label: Transdecoder nucleotides transdecoder_nucleotides.fasta - label: Transdecoder peptides transdecoder_peptides.fasta - button_link: "{{ galaxy_base_url }}/workflows/trs_import?trs_server=workflowhub.eu&run_form=true&trs_id=880" - view_link: https://workflowhub.eu/workflows/880 - view_tip: View in WorkflowHub - button_tip: Import to Galaxy Australia - - - id: tsi_annotation - title: Annotation with FgenesH++ - content: - - title_md: About these workflows - description_md: > -

- This How-to-Guide will describe the steps required to annotate your genome on the Galaxy Australia platform, using multiple workflows. -

- - title_md: Annotation with FgenesH++ - description_md: > - Annotate the genome using outputs from the TSI transcriptome workflows. -

- Note: you must - - apply for access - - to this tool before use. -

- inputs: - - datatypes: - - fasta - label: Assembled genome - - datatypes: - - fasta - label: Masked genome - - datatypes: - - fasta - label: > - Outputs from TSI convert formats workflow - (*.cdna, - *.pro, - *.dat) - button_link: "{{ galaxy_base_url }}/workflows/trs_import?trs_server=workflowhub.eu&run_form=true&trs_id=881" - view_link: https://workflowhub.eu/workflows/881 - view_tip: View in WorkflowHub - button_tip: Import to Galaxy Australia - - - id: help - title: Help - content: - - title_md: What is genome annotation? - description_md: > -

- These slides from the Galaxy training network explain the process of genome annotation in detail. You can use the and keys to navigate through the slides. -

- - title_md: Genome annotation overview - description_md: > -

- The flowchart below shows how you might use your input data (in green) with different Galaxy tools (in blue) to annotate a genome assembly. For example, one pathway would be taking an assembled genome, plus information about repeats, and data from RNA-seq, to run in the Maker pipeline. The annotatations can then be viewed in JBrowse. -

- Genome annotation flowchart -

- A graphical representation of genome annotation -

- - title_md: Can I use Fgenesh++ for annotation? - description_md: > -

- Fgenesh++ is a bioinformatics pipeline for automatic prediction of genes in eukaryotic genomes. It is presently not installed in Galaxy Australia, but the Australian Biocommons and partners have licensed the software and made it available via commandline. Australian researchers can apply for access through the Australian BioCommons. -

- button_md: Apply - button_link: https://www.biocommons.org.au/fgenesh-plus-plus - button_tip: Apply for access to Fgenesh++ - - title_md: Can I use Apollo to share and edit the annotated genome? - description_md: > -

- Apollo is web-browser accessible system that lets you conduct real-time collaborative curation and editing of genome annotations. -

-

- The Australian BioCommons and our partners at QCIF and Pawsey provide a hosted Apollo Portal service where your genome assembly and supporting evidence files can be hosted. All system administration is taken care of, so you and your team can focus on the annotation curation itself. -

-

- This Galaxy tutorial provides a complete walkthrough of the process of refining eukaryotic genome annotations with Apollo. -

- button_md: More info - button_link: https://support.biocommons.org.au/support/solutions/articles/6000244843-apollo-for-collaborative-curation-and-editing - - title_md: Tutorials - description_md: > -

- Genome annotation with Maker -

-

- Genome annotation of eukaryotes is a little more complicated than for prokaryotes: eukaryotic genomes are usually larger than prokaryotes, with more genes. The sequences determining the beginning and the end of a gene are generally less conserved than the prokaryotic ones. Many genes also contain introns, and the limits of these introns (acceptor and donor sites) are not highly conserved. This Galaxy tutorial uses MAKER to annotate the genome of a small eukaryote: Schizosaccharomyces pombe (a yeast). -

-
-

- Genome annotation with Funannotate -

-

- This Galaxy tutorial provides a complete walkthrough of the process of annotation with Funannotate, including the preparation of RNAseq data, structural annotation, functional annotation, visualisation, and comparing annotations. -

- - title_md: Galaxy Australia support - description_md: > -

- Any user of Galaxy Australia can request support through an online form. -

- button_md: Request support - button_link: /request/support diff --git a/webapp/home/labs/genome/assembly.yml b/webapp/home/labs/genome/assembly.yml deleted file mode 100644 index 7609262f..00000000 --- a/webapp/home/labs/genome/assembly.yml +++ /dev/null @@ -1,411 +0,0 @@ -id: assembly -title: Genome assembly -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: Hifiasm - assembly with PacBio HiFi data - description_md: > -

- A haplotype-resolved assembler for PacBio HiFi reads. -

- inputs: - - datatypes: - - fasta - button_link: "{{ galaxy_base_url }}/tool_runner?tool_id=toolshed.g2.bx.psu.edu%2Frepos%2Fbgruening%2Fhifiasm%2Fhifiasm" - - title_md: Flye - assembly with PacBio or Nanopore data - description_md: > -

- de novo assembly of single-molecule sequencing reads, designed for a wide range of datasets, from small bacterial projects to large mammalian-scale assemblies. -

- inputs: - - datatypes: - - fasta - - fastq - button_link: "{{ galaxy_base_url }}/tool_runner?tool_id=toolshed.g2.bx.psu.edu%2Frepos%2Fbgruening%2Fflye%2Fflye" - - title_md: Unicycler - assembly with Illumina, PacBio or Nanopore data - bacteria only - description_md: > -

- Hybrid assembly pipeline for bacterial genomes, uses both Illumina reads and long reads (PacBio or Nanopore). -

- inputs: - - datatypes: - - fastq - button_link: "{{ galaxy_base_url }}/tool_runner?tool_id=toolshed.g2.bx.psu.edu%2Frepos%2Fiuc%2Funicycler%2Funicycler" - - title_md: YAHS - scaffold assembly with HiC data - description_md: > -

- YAHS is a scaffolding tool based on a computational method that exploits the genomic proximity information in Hi-C data sets for long-range scaffolding of de novo genome assemblies. Inputs are the primary assembly (or haplotype 1), and HiC reads mapped to the assembly. See this tutorial to learn how to create a suitable BAM file. -

- inputs: - - label: Primary assembly or Haplotype 1 genome.fasta - datatypes: - - fasta - - label: HiC reads mapped to assembly mapped_reads.bam - datatypes: - - bam - button_link: "{{ galaxy_base_url }}/tool_runner?tool_id=toolshed.g2.bx.psu.edu%2Frepos%2Fiuc%2yahs" - - title_md: Quast - assess genome assembly quality - description_md: > -

- QUAST = QUality ASsessment Tool. The tool evaluates genome assemblies by computing various metrics. If you have one or multiple genome assemblies, you can assess their quality with Quast. It works with or without reference genome. -

- inputs: - - datatypes: - - fasta - button_link: "{{ galaxy_base_url }}/tool_runner?tool_id=toolshed.g2.bx.psu.edu%2Frepos%2Fiuc%2Fquast%2Fquast" - - title_md: Busco - assess genome assembly quality - description_md: > -

- BUSCO: assessing genome assembly and annotation completeness with Benchmarking Universal Single-Copy Orthologs. The tool attempts to provide a quantitative assessment of the completeness in terms of the expected gene content of a genome assembly, transcriptome, or annotated gene set. -

- inputs: - - datatypes: - - fasta - button_link: "{{ galaxy_base_url }}/tool_runner?tool_id=toolshed.g2.bx.psu.edu%2Frepos%2Fiuc%2Fbusco%2Fbusco" - - title_md: MitoHiFi - assemble mitochondrial genomes - description_md: > -

- Assemble mitochondrial genomes from PacBio HiFi reads. Run first to find a related mitogenome, then run to assemble the genome. Inputs are PacBio HiFi reads in fasta or fastq format, and a related mitogenome in both fasta and genbank formats. -

- inputs: - - datatypes: - - fasta - - fastq - - genbank - button_link: "{{ galaxy_base_url }}/tool_runner?tool_id=toolshed.g2.bx.psu.edu%2Frepos%2Fbgruening%2Fmitohifi%2Fmitohfi" - - - 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. - Learn more. - content: - subsections: - - id: pacbio - title: TSI assembly workflows - PacBio HiFi data - content: - - title_md: About these workflows - description_md: > -

- This How-to-Guide will describe the steps required to assemble your genome on the Galaxy Australia platform, using multiple workflows. There is also a guide about the Genome Assessment workflow, and the HiC Scaffolding workflow. -

- - title_md: BAM to FASTQ + QC v1.0 - description_md: > -

- Convert a BAM file to FASTQ format to perform QC analysis (required if your data is in BAM format). -

- inputs: - - datatypes: - - bam - label: PacBio subreads.bam - button_link: "{{ galaxy_base_url }}/workflows/trs_import?trs_server=workflowhub.eu&run_form=true&trs_id=220" - view_link: https://workflowhub.eu/workflows/220 - view_tip: View in WorkflowHub - button_tip: Import to Galaxy Australia - - title_md: PacBio HiFi genome assembly using hifiasm v2.1 - description_md: > -

- Assemble a genome using PacBio HiFi reads. -

- inputs: - - datatypes: - - fastqsanger - label: HiFi reads - button_link: "{{ galaxy_base_url }}/workflows/trs_import?trs_server=workflowhub.eu&run_form=true&trs_id=221" - view_link: https://workflowhub.eu/workflows/221 - view_tip: View in WorkflowHub - button_tip: Import to Galaxy Australia - - title_md: Purge duplicates from hifiasm assembly v1.0 - description_md: > -

- Optional workflow to purge duplicates from the contig assembly. -

- inputs: - - datatypes: - - fastqsanger - label: HiFi reads - - datatypes: - - fasta - label: Primary assembly contigs - button_link: "{{ galaxy_base_url }}/workflows/trs_import?trs_server=workflowhub.eu&run_form=true&trs_id=237" - view_link: https://workflowhub.eu/workflows/237 - view_tip: View in WorkflowHub - button_tip: Import to Galaxy Australia - - title_md: Genome assessment post-assembly - description_md: > -

- Evaluate the quality of your genome assembly with a comprehensive report including FASTA stats, BUSCO, QUAST, Meryl and Merqury. -

- inputs: - - datatypes: - - fasta - label: Primary assembly contigs - button_link: "{{ galaxy_base_url }}/workflows/trs_import?trs_server=workflowhub.eu&run_form=true&trs_id=403" - view_link: https://workflowhub.eu/workflows/403 - view_tip: View in WorkflowHub - button_tip: Import to Galaxy Australia - - title_md: Optional HiC scaffolding workflow - description_md: > -

- If you have HiC data, scaffold your assembly using YAHS. -

- inputs: - - datatypes: - - fasta - label: Primary or Hap1 assembly - - datatypes: - - fastqsanger.gz - label: HiC forward reads, HiC reverse reads - button_link: "{{ galaxy_base_url }}/workflows/trs_import?trs_server=workflowhub.eu&run_form=true&trs_id=1054" - view_link: https://workflowhub.eu/workflows/1054 - view_tip: View in WorkflowHub - button_tip: Import to Galaxy Australia - - - id: nanopore - title: General assembly workflows - Nanopore and Illumina data - content: - - title_md: About these workflows - description_md: > -

- This tutorial describes the steps required to assemble a genome on Galaxy with Nanopore and Illumina data. -

- - title_md: Flye assembly with Nanopore data - description_md: > -

- Assemble Nanopore long reads. This workflow can be run alone or as part of a combined workflow for large genome assembly. -

- inputs: - - datatypes: - - fastqsanger - label: Long reads (may be raw, filtered and/or corrected) - button_link: "{{ galaxy_base_url }}/workflows/trs_import?trs_server=workflowhub.eu&run_form=true&trs_id=225" - view_link: https://workflowhub.eu/workflows/225 - view_tip: View in WorkflowHub - button_tip: Import to Galaxy Australia - - title_md: Assembly polishing - description_md: > -

- Polishes (corrects) an assembly, using long reads (Racon and Medaka) and short reads (Racon). -

- inputs: - - datatypes: - - fasta - label: Assembly to polish - - datatypes: - - fastq - label: Long reads (those used in assembly) - - datatypes: - - fastq - label: Short reads to be used for polishing (R1 only) - button_link: "{{ galaxy_base_url }}/workflows/trs_import?trs_server=workflowhub.eu&run_form=true&trs_id=226" - view_link: https://workflowhub.eu/workflows/226 - view_tip: View in WorkflowHub - button_tip: Import to Galaxy Australia - - title_md: Assess genome quality - description_md: > -

- Assesses the quality of the genome assembly. Generates statistics, determines if expected genes are present and align contigs to a reference genome. -

- inputs: - - datatypes: - - fasta - label: Polished assembly - - datatypes: - - fasta - label: Reference genome assembly (e.g. related species) - button_link: "{{ galaxy_base_url }}/workflows/trs_import?trs_server=workflowhub.eu&run_form=true&trs_id=229" - view_link: https://workflowhub.eu/workflows/229 - view_tip: View in WorkflowHub - button_tip: Import to Galaxy Australia - - id: hic - title: VGP assembly workflows - PacBio HiFi and (optional) HiC data - content: - - title_md: About these workflows - description_md: > -

- These workflows have been developed as part of the global Vertebrate Genome Project (VGP). A guide to using these in Galaxy Australia can be found here. A complete guide to the individual workflows and sample results can be found here. There are many different ways that these workflows can be used in practice - for a comprehensive example, check out this Galaxy tutorial. -

- - title_md: Kmer profiling - description_md: > -

- This workflow produces a Meryl database and Genomescope outputs that will be used to determine parameters for following workflows, and assess the quality of genome assemblies. Specifically, it provides information about the genomic complexity, such as the genome size and levels of heterozygosity and repeat content, as well about the data quality. -

- inputs: - - datatypes: - - fastq - label: PacBio HiFi reads - button_link: "{{ galaxy_base_url }}/workflows/trs_import?trs_server=dockstore.org&trs_id=%23workflow/github.com/iwc-workflows/kmer-profiling-hifi-VGP1/main" - view_link: https://dockstore.org/workflows/github.com/iwc-workflows/kmer-profiling-hifi-VGP1/main:main - view_tip: View in WorkflowHub - button_tip: Import to Galaxy Australia - - title_md: Hifi assembly and HiC phasing - description_md: > -

- This workflow uses hifiasm (HiC mode) to generate HiC-phased haplotypes (hap1 and hap2). This is in contrast to its default mode, which generates primary and alternate pseudohaplotype assemblies. This workflow includes three tools for evaluating assembly quality: gfastats, BUSCO and Merqury. -

-

- Note: if you have multiple input files for each HiC set, they need to be concatenated. The forward set needs to be concatenated in the same order as reverse set. -

- inputs: - - datatypes: - - fasta - label: PacBio HiFi reads - - datatypes: - - fastq - label: PacBio HiC reads (forward) - - datatypes: - - fastq - label: PacBio HiC reads (reverse) - - datatypes: - - meryldb - label: Meryl kmer database - - datatypes: - - txt - label: GenomeScope genome profile summary - button_link: "{{ galaxy_base_url }}/workflows/trs_import?trs_server=dockstore.org&trs_id=%23workflow/github.com/iwc-workflows/Assembly-Hifi-HiC-phasing-VGP4/main" - view_link: https://dockstore.org/workflows/github.com/iwc-workflows/Assembly-Hifi-HiC-phasing-VGP4/main:main - view_tip: View in WorkflowHub - button_tip: Import to Galaxy Australia - - - title_md: Hifi assembly without HiC data - description_md: > -

- This workflow uses hifiasm to generate primary and alternate pseudohaplotype assemblies. This workflow includes three tools for evaluating assembly quality: gfastats, BUSCO and Merqury. -

- inputs: - - datatypes: - - fasta - label: PacBio HiFi reads - - datatypes: - - meryldb - label: Meryl kmer database - - datatypes: - - txt - label: GenomeScope genome profile summary - button_link: "{{ galaxy_base_url }}/workflows/trs_import?trs_server=dockstore.org&trs_id=%23workflow/github.com/iwc-workflows/Assembly-Hifi-only-VGP3/main" - view_link: https://dockstore.org/workflows/github.com/iwc-workflows/Assembly-Hifi-only-VGP3/main:main - view_tip: View in Dockstore - button_tip: Import to Galaxy Australia - - - title_md: HiC scaffolding - description_md: > -

- This workflow scaffolds the assembly contigs using information from HiC data. -

- inputs: - - datatypes: - - gfa - label: Assembly of haplotype 1 - - datatypes: - - fastq - label: HiC forward reads - - datatypes: - - fastq - label: HiC reverse reads - button_link: "{{ galaxy_base_url }}/workflows/trs_import?trs_server=dockstore.org&trs_id=%23workflow/github.com/iwc-workflows/Scaffolding-HiC-VGP8/main" - view_link: https://dockstore.org/workflows/github.com/iwc-workflows/Scaffolding-HiC-VGP8/main:main - view_tip: View in WorkflowHub - button_tip: Import to Galaxy Australia - - title_md: Decontamination - description_md: > -

- This workflow identifies and removes contaminants from the assembly. -

- inputs: - - datatypes: - - fasta - label: Assembly - button_link: "{{ galaxy_base_url }}/workflows/trs_import?trs_server=dockstore.org&trs_id=%23workflow/github.com/iwc-workflows/Assembly-decontamination-VGP9/main:v0.1" - view_link: https://dockstore.org/workflows/github.com/iwc-workflows/Assembly-decontamination-VGP9/main:v0.1 - view_tip: View in WorkflowHub - button_tip: Import to Galaxy Australia - - - id: help - title: Help - content: - - title_md: Can I use Galaxy Australia to assemble a large genome? - description_md: > -

- Yes. Galaxy Australia has assembly tools for small prokaryote genomes as well as larger eukaryote genomes. We are continually adding new tools and optimising them for large genome assemblies - this means adding enough computer processing power to run data-intensive tools, as well as configuring aspects such as parallelisation. -

-

- Please contact us if: -

-
    -
  • you need to increase your data storage limit
  • -
  • there is a tool you wish to request
  • -
  • a tool appears to be broken or running slowly
  • -
- button_md: Request support - button_link: /request - - title_md: How can I learn about genome assembly? - description_md: > -
    -
  • See the tutorials in this Help section. They cover different approaches to genome assembly.
  • -
  • Read the methods in scientific papers about genome assembly, particularly those about genomes with similar characteristics to those in your project
  • -
  • See the Workflows section for examples of different approaches to genome assembly - these cover different sequencing data types, and a variety of tools.
  • -
- - title_md: Genome assembly overview - description_md: > -

- Genome assembly can be a very involved process. A typical genome assembly procedure might look like: -

-
    -
  • Data QC - check the quality and characteristics of your sequencing reads.
  • -
  • Kmer counting - to determine genome characteristics such as ploidy and size.
  • -
  • Data preparation - trimming and filtering sequencing reads if required.
  • -
  • Assembly - for large genomes, this is usually done with long sequencing reads from PacBio or Nanopore.
  • -
  • Polishing - the assembly may be polished (corrected) with long and/or short (Illumina) reads.
  • -
  • Scaffolding - the assembly contigs may be joined together with other sequencing data such as HiC.
  • -
  • Assessment - at any stage, the assembly can be assessed for number of contigs, number of base pairs, whether expected genes are present, and many other metrics.
  • -
  • Annotation - identify features on the genome assembly such as gene names and locations.
  • -
- Genome assembly flowchart -

- A graphical representation of genome assembly -

- - title_md: Which tools should I use? - description_md: > -

- There is no best set of tools to recommend - new tools are developed constantly, sequencing technology improves rapidly, and many genomes have never been sequenced before and thus their characteristics and quirks are unknown. The "Tools" tab in this section includes a list of commonly-used tools that could be a good starting point. You will find other tools in recent publications or used in workflows. -

-

- You can also search for tools in Galaxy's tool panel. If they aren't installed on Galaxy Australia, you can request installation of a tool. -

-

- We recommend testing a tool on a small data set first and seeing if the results make sense, before running on your full data set. -

- - title_md: Tutorials - description_md: > -

- Find 15+ Galaxy training tutorials here. -

-

- Introduction to genome assembly and annotation (slides) -

-

- Vertebrate genome assembly pipeline (tutorial) -

-

- Nanopore and illumina genome assembly (tutorial) -

-

- Share workflows and results with workflow reports (tutorial) -

- - title_md: How can I assess the quality of my genome assembly? - description_md: > -

- Once a genome has been assembled, it is important to assess the quality of the assembly, and in the first instance, this quality control (QC) can be achieved using the workflow described here. -

- button_md: Workflow tutorial - button_link: https://australianbiocommons.github.io/how-to-guides/genome_assembly/assembly_qc - - title_md: Galaxy Australia support - description_md: > -

- Any user of Galaxy Australia can request support through an online form. -

- button_md: Request support - button_link: /request/support diff --git a/webapp/home/labs/genome/base.yml b/webapp/home/labs/genome/base.yml deleted file mode 100644 index 232de7a9..00000000 --- a/webapp/home/labs/genome/base.yml +++ /dev/null @@ -1,36 +0,0 @@ -# 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 diff --git a/webapp/home/labs/genome/data.yml b/webapp/home/labs/genome/data.yml deleted file mode 100644 index 79ba2c2b..00000000 --- a/webapp/home/labs/genome/data.yml +++ /dev/null @@ -1,160 +0,0 @@ -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: FastQC - sequence quality reports - description_md: > -

- Before using your sequencing data, it's important to ensure that - the data quality is sufficient for your analysis. -

- 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: FastP - sequence quality reports, trimming & filtering - description_md: > -

- Faster run than FastQC, this tool can also trim reads and filter by quality. -

- inputs: - - datatypes: - - fastq - button_link: "{{ galaxy_base_url }}/tool_runner?tool_id=toolshed.g2.bx.psu.edu%2Frepos%2Fiuc%2Ffastp%2Ffastp" - - title_md: NanoPlot - visualize Oxford Nanopore data - description_md: > -

- A plotting suite for Oxford Nanopore sequencing data and alignments. -

- 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: GenomeScope - estimate genome size - description_md: > -

- A set of metrics and graphs to visualize genome size and complexity prior to assembly. -

- inputs: - - datatypes: - - tabular - label: Output from Meryl or Jellyfish histo - button_link: "{{ galaxy_base_url }}/tool_runner?tool_id=toolshed.g2.bx.psu.edu%2Frepos%2Fiuc%2Fgenomescope%2Fgenomescope" - - title_md: Meryl - count kmers - description_md: > -

- Prepare kmer count histogram for input to GenomeScope. -

- 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. - Learn more. - content: - - title_md: Data QC - description_md: > -

- Report statistics from sequencing reads.

Tools: nanoplot fastqc multiqc -

- 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: > -

- Estimates genome size and heterozygosity based on counts of kmers.

Tools: meryl genomescope -

- 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: > -

- Trims and filters raw sequence reads according to specified settings.

Tools: fastp -

- 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: > -

- 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. -

- 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: > -

- We recommend subsampling large data sets to test tools and workflows. A useful tool is seqtk_seq, setting the parameter at "Sample fraction of sequences". -

- - title_md: How can I import data from the BPA portal? - description_md: > -

- 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. -

- 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: > -

- No, do not upload personal or sensitive, such as human health or clinical data. Please see our Data Privacy page for definitions of sensitive and health-related information. -

-

- Please also make sure you have read our Terms of Service, which covers hosting and analysis of research data. -

- - title_md: Is my data private? - description_md: > -

- Please read our Privacy Policy for information on your personal data and any data that you upload. -

- - title_md: How can I increase my storage quota? - description_md: > -

- 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. -

- button_md: Request - button_link: /request/quota - - title_md: "Tutorial: Quality Control" - description_md: > -

- 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 FastQC, NanoPlot and PycoQC. -

- 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: > -

- 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. -

- 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: > -

- Any user of Galaxy Australia can request support through an online form. -

- button_md: Request support - button_link: /request/support diff --git a/webapp/home/labs/genome/static/annotation-overview.png b/webapp/home/labs/genome/static/annotation-overview.png deleted file mode 100644 index 0bdeaa80..00000000 Binary files a/webapp/home/labs/genome/static/annotation-overview.png and /dev/null differ diff --git a/webapp/home/labs/genome/static/assembly-overview.png b/webapp/home/labs/genome/static/assembly-overview.png deleted file mode 100644 index 61cf705c..00000000 Binary files a/webapp/home/labs/genome/static/assembly-overview.png and /dev/null differ diff --git a/webapp/home/labs/genome/static/custom.css b/webapp/home/labs/genome/static/custom.css deleted file mode 100644 index e69de29b..00000000 diff --git a/webapp/home/labs/genome/static/logo.png b/webapp/home/labs/genome/static/logo.png deleted file mode 100644 index ea8b9ffa..00000000 Binary files a/webapp/home/labs/genome/static/logo.png and /dev/null differ diff --git a/webapp/home/labs/genome/templates/conclusion.html b/webapp/home/labs/genome/templates/conclusion.html deleted file mode 100644 index 13e7d771..00000000 --- a/webapp/home/labs/genome/templates/conclusion.html +++ /dev/null @@ -1,163 +0,0 @@ -
-

What's happening in {{ nationality }} genomics research?

- -
-
-

What do you think of the {{ lab_name }}?

- -
- - - - - - - - diff --git a/webapp/home/labs/genome/templates/footer.html b/webapp/home/labs/genome/templates/footer.html deleted file mode 100644 index 172d3c74..00000000 --- a/webapp/home/labs/genome/templates/footer.html +++ /dev/null @@ -1,10 +0,0 @@ - - diff --git a/webapp/home/labs/genome/templates/intro.html b/webapp/home/labs/genome/templates/intro.html deleted file mode 100644 index e2ea1c74..00000000 --- a/webapp/home/labs/genome/templates/intro.html +++ /dev/null @@ -1,40 +0,0 @@ -
-

- Welcome to the Galaxy {{ site_name }} {{ lab_name }}. Get quick access to tools, workflows and tutorials for genome assembly and annotation. -
- - What is this page? - -

- - -
diff --git a/webapp/home/labs/proteomics/CONTRIBUTORS b/webapp/home/labs/proteomics/CONTRIBUTORS deleted file mode 100644 index a690e999..00000000 --- a/webapp/home/labs/proteomics/CONTRIBUTORS +++ /dev/null @@ -1,3 +0,0 @@ -# If GitHub username, name and avatar will be fetched and displayed -supernord -neoformit diff --git a/webapp/home/labs/proteomics/base.yml b/webapp/home/labs/proteomics/base.yml deleted file mode 100644 index 14625c6d..00000000 --- a/webapp/home/labs/proteomics/base.yml +++ /dev/null @@ -1,38 +0,0 @@ -# Test this locally with: -# http://127.0.0.1:8000/lab/export?content_root=http://localhost:8000/static/home/labs/proteomics/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/proteomics/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: Proteomics Lab -nationality: Australian -galaxy_base_url: https://proteomics.usegalaxy.org.au # Use for rendering tool/workflow URLs. Trailing '/' will be removed. -subdomain: proteomics -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: - - sections/data.yml - - sections/conversion_modification.yml - - sections/database_searching.yml - - sections/dda_standardised_tools.yml - - sections/dia_standardised_tools.yml - - sections/dda_tmt.yml diff --git a/webapp/home/labs/proteomics/sections/conversion_modification.yml b/webapp/home/labs/proteomics/sections/conversion_modification.yml deleted file mode 100644 index 6a074920..00000000 --- a/webapp/home/labs/proteomics/sections/conversion_modification.yml +++ /dev/null @@ -1,49 +0,0 @@ -id: conversion_modification -title: MS file conversion -tabs: - - id: tools - title: Tools - heading_md: > - Some example tools are listed here: you can also search for more in the full tool panel to the left. - content: - - title_md: "msconvert" - description_md: > -

- Convert and/or filter mass spectrometry files. -

- inputs: - - datatypes: - - thermo.raw - - mzML - - mzXML - - raw - - wiff - - wiff.tar - - agilentbrukeryep.d.tar - - agilentmasshunter.d.tar - - brukerbaf.d.tar - - brukertdf.d.tar - - watersmasslynx.raw.tar - label: Input MS data - outputs: - - datatypes: - - mz5 - - mzML - - mzXML - - mgf - - ms2 - label: Output MS data - button_link: "{{ galaxy_base_url }}/root?tool_id=toolshed.g2.bx.psu.edu/repos/galaxyp/msconvert/msconvert/" - - title_md: "Thermo RAW file converter" - description_md: > -

- Thermo RAW file converter. -

- inputs: - - datatypes: - - thermo.raw - label: Thermo RAW file - button_link: "{{ galaxy_base_url }}/root?tool_id=toolshed.g2.bx.psu.edu/repos/galaxyp/thermo_raw_file_converter/thermo_raw_file_converter/" - # - id: help - # title: Help - # content: [] diff --git a/webapp/home/labs/proteomics/sections/data.yml b/webapp/home/labs/proteomics/sections/data.yml deleted file mode 100644 index b162e648..00000000 --- a/webapp/home/labs/proteomics/sections/data.yml +++ /dev/null @@ -1,55 +0,0 @@ -id: data -title: Data import -tabs: - - id: tools - title: Tools - heading_md: "Some example tools are listed here: you can also 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" - - id: help - title: Help - content: - - title_md: "Can I upload sensitive data?" - description_md: | -

- No, do not upload personal or sensitive, such as human health or clinical data. - Please see our - Data Privacy - page for definitions of sensitive and health-related information. -

-

- Please also make sure you have read our - Terms of Service, - which covers hosting and analysis of research data. -

- - title_md: "Is my data private?" - description_md: | -

- Please read our - Privacy Policy - for information on your personal data and any data that you upload. -

- - title_md: "How can I increase my storage quota?" - description_md: | -

- 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. -

- button_link: "/request/quota" - button_md: "Request" - - title_md: "Tutorial: Introduction to proteomics, protein identification, quantification and statistical modelling" - description_md: | -

- This practical aims to familiarize you with Galaxy for Proteomics, including theory, methods and software examples. -

- button_link: "https://training.galaxyproject.org/training-material/topics/proteomics/tutorials/introduction/slides.html#1" - button_md: "Tutorial" - - title_md: "Galaxy Australia support" - description_md: | -

- Any user of Galaxy Australia can request support through an - online form. -

- button_link: "/request/support" - button_md: "Request support" diff --git a/webapp/home/labs/proteomics/sections/database_searching.yml b/webapp/home/labs/proteomics/sections/database_searching.yml deleted file mode 100644 index fb36ab0c..00000000 --- a/webapp/home/labs/proteomics/sections/database_searching.yml +++ /dev/null @@ -1,78 +0,0 @@ -id: database_searching -title: Database searching -tabs: - - id: tools - title: Tools - heading_md: > - Some example tools are listed here: you can also search for more in the full tool panel to the left. - content: - - title_md: "DecoyDatabase" - description_md: > -

- Create decoy sequence database from forward sequence database. -

- inputs: - - datatypes: - - fasta - label: Input FASTA file(s), each containing a database - button_link: "{{ galaxy_base_url }}/root?tool_id=toolshed.g2.bx.psu.edu/repos/galaxyp/openms_decoydatabase/DecoyDatabase/" - - title_md: "MaxQuant" - description_md: > -

- MaxQuant is a quantitative proteomics software package designed for analyzing large mass-spectrometric data sets. -

- inputs: - - datatypes: - - thermo.raw - - mzML - - mzXML - label: Mass spectrometry data sets - - datatypes: - - tabular - label: Experimental design template - button_link: "{{ galaxy_base_url }}/root?tool_id=toolshed.g2.bx.psu.edu/repos/galaxyp/maxquant/maxquant/" - - title_md: "Morpheus" - description_md: > -

- Database search algorithm for high-resolution tandem mass spectra. -

- inputs: - - datatypes: - - mzML - label: Indexed mzML - - datatypes: - - fasta - - uniprotxml - label: "MS Protein Search Database: UniProt Xml or Fasta" - button_link: "{{ galaxy_base_url }}/root?tool_id=toolshed.g2.bx.psu.edu/repos/galaxyp/morpheus/morpheus/" - - id: help - title: Help - content: - - title_md: "Introduction to proteomics, protein identification, quantification and statistical modelling" - description_md: > -

- Start here if you are new to proteomic analysis in Galaxy. -

- button_link: "https://usegalaxy.org.au/training-material/topics/proteomics/tutorials/introduction/slides.html" - button_md: "Tutorial" - - title_md: "Label-free data analysis using MaxQuant" - description_md: > -

- Learn how to use MaxQuant for the analysis of label-free shotgun (DDA) data. -

- button_link: "https://proteomics.usegalaxy.org.au/training-material/topics/proteomics/tutorials/maxquant-label-free/tutorial.html" - button_md: "Tutorial" - - title_md: "Peptide and Protein ID using OpenMS tools" - description_md: > -

- Learn how to identify proteins from LC-MS/MS raw files. -

- button_link: "https://usegalaxy.org.au/training-material/topics/proteomics/tutorials/protein-id-oms/tutorial.html" - button_md: "Tutorial" - - title_md: "Galaxy Australia support" - description_md: > -

- Any user of Galaxy Australia can request support through an online form. -

- button_link: "/request/support" - button_md: "Request support" \ No newline at end of file diff --git a/webapp/home/labs/proteomics/sections/dda_standardised_tools.yml b/webapp/home/labs/proteomics/sections/dda_standardised_tools.yml deleted file mode 100644 index d66139c7..00000000 --- a/webapp/home/labs/proteomics/sections/dda_standardised_tools.yml +++ /dev/null @@ -1,71 +0,0 @@ -id: dda_standardised_tools -title: DDA Standardised Tools -tabs: - - id: tools - title: Tools - heading_md: > - Some example tools are listed here: you can also search for more in the full tool panel to the left. - content: - - title_md: "MaxQuant" - description_md: > -

- MaxQuant is a quantitative proteomics software package designed for analyzing large mass-spectrometric data sets. -

- inputs: - - datatypes: - - thermo.raw - - mzML - - mzXML - label: MS spectra (input file) - - datatypes: - - tabular - label: Experimental design template - button_link: "{{ galaxy_base_url }}/root?tool_id=toolshed.g2.bx.psu.edu/repos/galaxyp/maxquant/maxquant/" - - title_md: "MSstats" - description_md: > -

- Statistical relative protein significance analysis in DDA, SRM and DIA Mass Spectrometry. -

- inputs: - - datatypes: - - tabular - - csv - label: Either the 10-column MSstats format or the outputs of spectral processing tools such as MaxQuant, OpenSWATH. - button_link: "{{ galaxy_base_url }}/root?tool_id=toolshed.g2.bx.psu.edu/repos/galaxyp/msstats/msstats/" - - title_md: "LFQ Analyst" - description_md: > -

- Analyze and Visualize Label-Free Proteomics output from MaxQuant. -

- inputs: - - datatypes: - - txt - label: Protein groups (MaxQuant output) - - datatypes: - - txt - label: Experimental Design Matrix (MaxQuant output) - button_link: "{{ galaxy_base_url }}/root?tool_id=interactive_tool_lfqanalyst_2" - - id: help - title: Help - content: - - title_md: "LFQ-Analyst: Manual" - description_md: > -

- A detailed user manual for LFQ-Analyst. -

- button_link: "https://analyst-suite.monash-proteomics.cloud.edu.au/apps/lfq-analyst/LFQ-Analyst_manual.pdf" - button_md: "Manual" - - title_md: "MaxQuant and MSstats for the analysis of label-free data" - description_md: > -

- Learn how to use MaxQuant and MSstats for the analysis of label-free shotgun (DDA) data. -

- button_link: "https://training.galaxyproject.org/training-material/topics/proteomics/tutorials/maxquant-msstats-dda-lfq/tutorial.html" - button_md: "Tutorial" - - title_md: "Galaxy Australia support" - description_md: > -

- Any user of Galaxy Australia can request support through an online form. -

- button_link: "/request/support" - button_md: "Request support" diff --git a/webapp/home/labs/proteomics/sections/dda_tmt.yml b/webapp/home/labs/proteomics/sections/dda_tmt.yml deleted file mode 100644 index ae8bd0b8..00000000 --- a/webapp/home/labs/proteomics/sections/dda_tmt.yml +++ /dev/null @@ -1,60 +0,0 @@ -id: dda_tmt -title: DDA TMT -tabs: - - id: tools - title: Tools - heading_md: > - Some example tools are listed here: you can also search for more in the full tool panel to the left. - content: - - title_md: "MaxQuant" - description_md: > -

- MaxQuant is a quantitative proteomics software package designed for analyzing large mass-spectrometric data sets. -

- inputs: - - datatypes: - - thermo.raw - - mzML - - mzXML - label: MS spectra (input file) - - datatypes: - - tabular - label: Experimental design template - button_link: "{{ galaxy_base_url }}/root?tool_id=toolshed.g2.bx.psu.edu/repos/galaxyp/maxquant/maxquant/" - - title_md: "TMT Analyst" - description_md: > -

- Analyze and Visualize Label-Free Proteomics output from MaxQuant. -

- inputs: - - datatypes: - - txt - label: Protein groups (MaxQuant output) - - datatypes: - - txt - label: Experimental Design Matrix (MaxQuant output) - button_link: "{{ galaxy_base_url }}/root?tool_id=interactive_tool_tmtanalyst" - - id: help - title: Help - content: - - title_md: "TMT-Analyst: Manual" - description_md: > -

- A detailed user manual for TMT-Analyst. -

- button_link: "https://analyst-suites.org/apps/tmt-analyst/TMT-Analyst-manual.pdf" - button_md: "Manual" - - title_md: "MaxQuant and MSstats for the analysis of TMT data" - description_md: > -

- Learn how to use MaxQuant and MSstats for the analysis of TMT labelled shotgun (DDA) data. -

- button_link: "https://training.galaxyproject.org/training-material/topics/proteomics/tutorials/maxquant-msstats-tmt/tutorial.html" - button_md: "Tutorial" - - title_md: "Galaxy Australia support" - description_md: > -

- Any user of Galaxy Australia can request support through an online form. -

- button_link: "/request/support" - button_md: "Request support" diff --git a/webapp/home/labs/proteomics/sections/dia_standardised_tools.yml b/webapp/home/labs/proteomics/sections/dia_standardised_tools.yml deleted file mode 100644 index 825e07f5..00000000 --- a/webapp/home/labs/proteomics/sections/dia_standardised_tools.yml +++ /dev/null @@ -1,43 +0,0 @@ -id: dia_standardised_tools -title: DIA Standardised Tools -tabs: - - id: tools - title: Tools - heading_md: > - Some example tools are listed here: you can also search for more in the full tool panel to the left. - content: - - title_md: "MSstats" - description_md: > -

- Statistical relative protein significance analysis in DDA, SRM and DIA Mass Spectrometry. -

- inputs: - - datatypes: - - tabular - - csv - label: Either the 10-column MSstats format or the outputs of spectral processing tools such as MaxQuant, OpenSWATH. - button_link: "{{ galaxy_base_url }}/root?tool_id=toolshed.g2.bx.psu.edu/repos/galaxyp/msstats/msstats/" - - id: help - title: Help - content: - - title_md: "Galaxy Australia support" - description_md: > -

- Any user of Galaxy Australia can request support through an online form. -

- button_link: "/request/support" - button_md: "Request support" - - title_md: "DIA Analysis using OpenSwathWorkflow" - description_md: > -

- Learn how to analyse HEK-Ecoli spike-in DIA data in Galaxy, understand DIA data principles and characteristics, and use OpenSwathworkflow to analyze HEK-Ecoli spike-in DIA data. -

- button_link: "https://usegalaxy.org.au/training-material/topics/proteomics/tutorials/DIA_Analysis_OSW/tutorial.html" - button_md: "Tutorial" - - title_md: "Library Generation for DIA Analysis" - description_md: > -

- Learn how to generate a spectral library from data dependent acquisition (DDA) MS data, understand DIA data principles and characteristics, and optimize and refine a spectral library for the analysis of DIA data. -

- button_link: "https://usegalaxy.org.au/training-material/topics/proteomics/tutorials/DIA_lib_OSW/tutorial.html" - button_md: "Tutorial" diff --git a/webapp/home/labs/proteomics/static/custom.css b/webapp/home/labs/proteomics/static/custom.css deleted file mode 100644 index cfd8f237..00000000 --- a/webapp/home/labs/proteomics/static/custom.css +++ /dev/null @@ -1,21 +0,0 @@ -#whatIsThisPage { - position: absolute; - top: 135px; - right: calc(50vw - 500px); -} - -@media (max-width: 1070px) { - #whatIsThisPage { - right: 2rem; - } -} -@media (max-width: 992px) { - #whatIsThisPage { - top: 95px; - } -} -@media (max-width: 730px) { - #whatIsThisPage { - top: 2rem; - } -} diff --git a/webapp/home/labs/proteomics/static/logo.png b/webapp/home/labs/proteomics/static/logo.png deleted file mode 100644 index f90d01be..00000000 Binary files a/webapp/home/labs/proteomics/static/logo.png and /dev/null differ diff --git a/webapp/home/labs/proteomics/templates/conclusion.html b/webapp/home/labs/proteomics/templates/conclusion.html deleted file mode 100644 index c097223b..00000000 --- a/webapp/home/labs/proteomics/templates/conclusion.html +++ /dev/null @@ -1 +0,0 @@ -{% include 'home/snippets/header-cards.html' %} diff --git a/webapp/home/labs/proteomics/templates/footer.html b/webapp/home/labs/proteomics/templates/footer.html deleted file mode 100644 index 259d18e6..00000000 --- a/webapp/home/labs/proteomics/templates/footer.html +++ /dev/null @@ -1,9 +0,0 @@ - - diff --git a/webapp/home/labs/proteomics/templates/intro.html b/webapp/home/labs/proteomics/templates/intro.html deleted file mode 100644 index 41a4c0d1..00000000 --- a/webapp/home/labs/proteomics/templates/intro.html +++ /dev/null @@ -1,155 +0,0 @@ -
- - What is this page? - -

- Welcome to the Galaxy Australia Proteomics Lab. Get quick access to the - tools, workflows and tutorials you need to get started with proteomics on - Galaxy. -

- -

- This page is currently under development in consultation with the - - Australian Proteomics Bioinformatics community. -

-
- -
- -
- -
- -
- - - - - - diff --git a/webapp/home/labs/simple/base.yml b/webapp/home/labs/simple/base.yml deleted file mode 100644 index 2abb00f6..00000000 --- a/webapp/home/labs/simple/base.yml +++ /dev/null @@ -1,24 +0,0 @@ -# Default spec for an exported subsite landing page - -# You can test with: /lab/export?content_root=https://raw.githubusercontent.com/usegalaxy-au/galaxy-media-site/dev/webapp/home/labs/docs/base.yml - -site_name: Archaeology -lab_name: Archaeology Lab -nationality: Egyptian -galaxy_base_url: https://galaxy-archaeology.org -subdomain: archaeology -root_domain: galaxy-archaeology.org - -# These files need to be accessible on the internet, relative to the content_root URL! -# ----------------------------------------------------------------------------- -# Custom content relative to this file URL -header_logo: static/pillar.svg -custom_css: static/custom.css -intro_md: templates/intro.md -footer_md: templates/footer.md -conclusion_md: templates/conclusion.md - -# Data to be rendered into sections/tabs/accordion elements: -sections: - - section_1.yml - - section_2.yml diff --git a/webapp/home/labs/simple/section_1.yml b/webapp/home/labs/simple/section_1.yml deleted file mode 100644 index e19ca7f0..00000000 --- a/webapp/home/labs/simple/section_1.yml +++ /dev/null @@ -1,100 +0,0 @@ -id: section_1 -title: Example section -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: - - # Accordion item schema: - # title_md: # inline MD accepted e.g. *italics*, **bold**, `code` - # description_md: - # inputs: - # - datatypes: # tool input 1 - two accepted datatypes - # - - # - - # label: - # - datatypes: # tool input 2 - one accepted datatype - # - - # label: - # button_link: - # button_md: - # button_tip: - # view_link: - # view_md: - # view_tip: - - - button_link: "{{ galaxy_base_url }}/tool_runner?tool_id=upload1" - 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=toolshed.g2.bx.psu.edu%2Frepos%2Fdevteam%2Ffastqc%2Ffastqc" - title_md: FastQC - sequence quality reports - description_md: > - Before using your sequencing data, it's important to ensure that - the data quality is sufficient for your analysis. - inputs: - - label: Sequencing data for analysis - datatypes: - - fasta - - fastq - - bam - - sam - - - 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. - - Learn more - . - content: - - button_link: "{{ galaxy_base_url }}/workflows/trs_import?trs_server=workflowhub.eu&run_form=true&trs_id=222" - button_tip: Import to Galaxy AU - title_md: Data QC - view_link: https://workflowhub.eu/workflows/222 - view_tip: View in WorkflowHub - description_md: | -

- Report statistics from sequencing reads. -

- Tools: - nanoplot - fastqc - multiqc -

- - button_link: "{{ galaxy_base_url }}/workflows/trs_import?trs_server=workflowhub.eu&run_form=true&trs_id=223" - button_tip: Import to Galaxy AU - description_md: | -

- Estimates genome size and heterozygosity based on counts of kmers. -

- Tools: - meryl - genomescope -

- title_md: Kmer counting to estimate genome size - view_link: https://workflowhub.eu/workflows/223 - view_tip: View in WorkflowHub - - - id: help - title: Help - content: - - button_md: More info - button_link: https://training.galaxyproject.org/training-material/topics/galaxy-interface/ - description_md: | -

- 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. -

- title_md: How can I import my genomics data? - - description_md: | -

- We recommend subsampling large data sets to test tools and workflows. - A useful tool is - seqtk_seq, - setting the parameter at "Sample fraction of sequences" -

- title_md: How can I subsample my data? diff --git a/webapp/home/labs/simple/section_2.yml b/webapp/home/labs/simple/section_2.yml deleted file mode 100644 index fd07ac64..00000000 --- a/webapp/home/labs/simple/section_2.yml +++ /dev/null @@ -1,132 +0,0 @@ -id: section_2 -title: Example section with subsections -tabs: - - id: tools - title: Tools - heading_md: | - The tools in this section have been divided into subsections to make it - easier for users to find the tools they need. This must replace the - entire value of the `content` key i.e. you can't mix - subsections with standalone items. - content: - - # Content can be split into subsections, each with a title. - # This must replace the entire value of the `content` key i.e. you can't - # mix subsections with standalone items: - subsections: - - id: subsection_1 - title: This is my first subsection - content: - - # Accordion item schema: - # title_md: # inline MD accepted e.g. *italics*, **bold**, `code` - # description_md: - # inputs: - # - datatypes: # tool input 1 - two accepted datatypes - # - - # - - # label: - # - datatypes: # tool input 2 - one accepted datatype - # - - # label: - # button_link: - # button_md: - # button_tip: - # view_link: - # view_md: - # view_tip: - - - title_md: "`Hifiasm` - assembly with PacBio HiFi data" - button_link: "{{ galaxy_base_url }}/tool_runner?tool_id=toolshed.g2.bx.psu.edu%2Frepos%2Fbgruening%2Fhifiasm%2Fhifiasm" - description_md: A haplotype-resolved assembler for PacBio HiFi reads. - inputs: - - label: PacBio reads - datatypes: - - fasta - - fastq - - - id: subsection_2 - title: Another subsection - content: - - title_md: "`Flye` - assembly with PacBio or Nanopore data" - button_link: "{{ galaxy_base_url }}/tool_runner?tool_id=toolshed.g2.bx.psu.edu%2Frepos%2Fbgruening%2Fflye%2Fflye" - description_md: > - *de novo* assembly of single-molecule sequencing reads, designed - for a wide range of datasets, from small bacterial projects to - large mammalian-scale assemblies. - inputs: - - label: Single-molecule sequencing reads - datatypes: - - fasta - - fastq - - - 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. - [Learn more](https://galaxyproject.org/learn/advanced-workflow/). - content: - subsections: - - id: pacbio - title: Assembly with PacBio HiFi data - content: - - description_md: > - This - [How-to-Guide](https://australianbiocommons.github.io/how-to-guides/genome_assembly/hifi_assembly) - will describe the steps required to assemble your genome on the Galaxy Australia platform, - using multiple workflows. - title_md: About these workflows - - button_link: "{{ galaxy_base_url }}/workflows/trs_import?trs_server=workflowhub.eu&run_form=true&trs_id=220" - button_tip: Import to Galaxy Australia - description_md: > - Convert a BAM file to FASTQ format to perform QC analysis (required if your data is in BAM format). - inputs: - - label: PacBio `subreads.bam` - datatypes: - - bam - title_md: BAM to FASTQ + QC v1.0 - view_link: https://workflowhub.eu/workflows/220 - view_tip: View in WorkflowHub - - id: nanopore - title: Assembly with Nanopore data and polishing with Illumina data - content: - - description_md: > - This - [tutorial](https://training.galaxyproject.org/training-material/topics/assembly/tutorials/largegenome/tutorial.html) - describes the steps required to assemble a genome on Galaxy with Nanopore and Illumina data. - title_md: About these workflows - - button_link: "{{ galaxy_base_url }}/workflows/trs_import?trs_server=workflowhub.eu&run_form=true&trs_id=225" - button_tip: Import to Galaxy Australia - description_md: > - Assemble Nanopore long reads. This workflow can be run alone or as part of a combined workflow for large genome assembly. - inputs: - - label: Long reads (may be raw, filtered and/or corrected) - datatypes: - - fastqsanger - title_md: Flye assembly with Nanopore data - view_link: https://workflowhub.eu/workflows/225 - view_tip: View in WorkflowHub - - - id: help - title: Help - content: - - button_md: Request support - button_link: /request - description_md: > - Yes. Galaxy Australia has assembly tools for small prokaryote genomes as well as larger eukaryote genomes. - We are continually adding new tools and optimising them for large genome assemblies - this means adding enough computer processing power to run data-intensive tools, as well as configuring - aspects such as parallelisation. - - - **Please contact us if** - - you need to increase your data storage limit - - there is a tool you wish to request - - a tool appears to be broken or running slowly - title_md: Can I use Galaxy Australia to assemble a large genome? - - description_md: > - - See the tutorials in this Help section. They cover different approaches to genome assembly - - Read the methods in scientific papers about genome assembly, particularly those about genomes with similar characteristics to those in your project - - See the Workflows section for examples of different approaches to genome assembly - these cover different sequencing data types, and a variety of tools. - title_md: How can I learn about genome assembly? diff --git a/webapp/home/labs/simple/static/custom.css b/webapp/home/labs/simple/static/custom.css deleted file mode 100644 index 7b11903b..00000000 --- a/webapp/home/labs/simple/static/custom.css +++ /dev/null @@ -1,6 +0,0 @@ -#header-logo { - width: unset; -} -li { - margin-bottom: .5rem; -} diff --git a/webapp/home/labs/simple/static/pillar.svg b/webapp/home/labs/simple/static/pillar.svg deleted file mode 100644 index d298956a..00000000 --- a/webapp/home/labs/simple/static/pillar.svg +++ /dev/null @@ -1,18 +0,0 @@ - - - - diff --git a/webapp/home/labs/simple/templates/conclusion.md b/webapp/home/labs/simple/templates/conclusion.md deleted file mode 100644 index ba6c4c93..00000000 --- a/webapp/home/labs/simple/templates/conclusion.md +++ /dev/null @@ -1,4 +0,0 @@ -## Contributors - -- [John Doe](https://github.com/johndoe) -- [Jane Doe](https://github.com/janedoe) diff --git a/webapp/home/labs/simple/templates/footer.md b/webapp/home/labs/simple/templates/footer.md deleted file mode 100644 index 9e1b2ec7..00000000 --- a/webapp/home/labs/simple/templates/footer.md +++ /dev/null @@ -1,6 +0,0 @@ -
- - - - Some smaller text here that nobody will ever read. Lorem ipsum dolor sit amet consectetur adipisicing elit. Nemo facilis voluptatibus unde, officiis placeat corrupti error est. Laborum optio doloremque minus nemo illum enim voluptatibus harum. Odit, voluptates tempora. Aperiam. - diff --git a/webapp/home/labs/simple/templates/intro.md b/webapp/home/labs/simple/templates/intro.md deleted file mode 100644 index afea05b4..00000000 --- a/webapp/home/labs/simple/templates/intro.md +++ /dev/null @@ -1,13 +0,0 @@ - -##### This is an example of a simple Galaxy Lab page, you can check out the [code on GitHub](https://github.com/usegalaxy-au/galaxy-media-site/tree/dev/webapp/home/labs/simple) -
- -Welcome to **Galaxy {{ site_name }}**! -
-
- -![generic archaeology image](https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcR4m6WeuZ4-B7rXmWyimaFdN3UlPrmSrpQBhA&s) - - -If you get excited about unearthing skeletal remains, cracking open fossils and -studying their ancient DNA, you've come to the right place! diff --git a/webapp/home/migrations/0044_remove_coverimage_subsites_remove_notice_subsites_and_more.py b/webapp/home/migrations/0044_remove_coverimage_subsites_remove_notice_subsites_and_more.py new file mode 100644 index 00000000..8166cd5f --- /dev/null +++ b/webapp/home/migrations/0044_remove_coverimage_subsites_remove_notice_subsites_and_more.py @@ -0,0 +1,24 @@ +# Generated by Django 4.2.16 on 2024-11-11 06:34 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('home', '0043_alter_coverimage_auto_full_width'), + ] + + operations = [ + migrations.RemoveField( + model_name='coverimage', + name='subsites', + ), + migrations.RemoveField( + model_name='notice', + name='subsites', + ), + migrations.DeleteModel( + name='Subsite', + ), + ] diff --git a/webapp/home/models.py b/webapp/home/models.py index 571ecd77..976afe78 100644 --- a/webapp/home/models.py +++ b/webapp/home/models.py @@ -39,24 +39,6 @@ def __str__(self): return f"{self.first_name} {self.last_name} <{self.email}>" -class Subsite(models.Model): - """Galaxy subsite which will consume a custom landing page. - - The migration for this model creates a default 'main' subsite. - """ - - name = models.CharField(max_length=30, unique=True, help_text=( - "This field should match the subdomain name. e.g." - " for a 'genome.usegalaxy.org' subsite, the name should be 'genome'." - " This also determines the URL as: '/landing/'. The" - " HTML template for this landing page must be created manually." - )) - - def __str__(self): - """Represent self as string.""" - return self.name - - class Notice(models.Model): """A site notice to be displayed on the home/landing pages. @@ -128,21 +110,12 @@ class Notice(models.Model): " notices are enabled (i.e. lowest value shown first)" ), ) - subsites = models.ManyToManyField( - Subsite, - help_text=( - "Select which subdomain sites should display the notice." - ), - default=default_subsite, - ) @classmethod - def get_notices_by_type(cls, request, subsite=None): + def get_notices_by_type(cls, request): """Return dictionary of notices by type for given user.""" - subsite_name = subsite or 'main' notices = cls.objects.filter( enabled=True, - subsites__name=subsite_name, ) if not request.user.is_staff: notices = notices.filter(is_published=True) @@ -229,13 +202,6 @@ class CoverImage(models.Model): " Use this to review content before release to public users." ), ) - subsites = models.ManyToManyField( - Subsite, - help_text=( - "Select which subdomain sites should display the notice." - ), - default=default_subsite, - ) @property def link_is_internal(self): @@ -243,12 +209,10 @@ def link_is_internal(self): return self.link_url.startswith('/') @classmethod - def get_random(cls, request, subsite=None): + def get_random(cls, request): """Return a random cover image.""" - subsite_name = subsite or 'main' images = cls.objects.filter( enabled=True, - subsites__name=subsite_name, ) if not request.user.is_staff: images = images.filter(is_published=True) diff --git a/webapp/home/static/home/labs b/webapp/home/static/home/labs deleted file mode 120000 index 77a5a16f..00000000 --- a/webapp/home/static/home/labs +++ /dev/null @@ -1 +0,0 @@ -../../labs/ \ No newline at end of file diff --git a/webapp/home/subdomains/DEPRECATED b/webapp/home/subdomains/DEPRECATED deleted file mode 100644 index 2d08d639..00000000 --- a/webapp/home/subdomains/DEPRECATED +++ /dev/null @@ -1,4 +0,0 @@ -This module is deprecated - use exported labs from here on. - -- For lab webpage content see: ./webapp/home/labs/ -- For exported labs code, see: ./webapp/home/lab_export.py diff --git a/webapp/home/subdomains/__init__.py b/webapp/home/subdomains/__init__.py deleted file mode 100644 index 12646659..00000000 --- a/webapp/home/subdomains/__init__.py +++ /dev/null @@ -1 +0,0 @@ -from . import genome, proteomics diff --git a/webapp/home/subdomains/genome/__init__.py b/webapp/home/subdomains/genome/__init__.py deleted file mode 100644 index 8af98563..00000000 --- a/webapp/home/subdomains/genome/__init__.py +++ /dev/null @@ -1,3 +0,0 @@ -"""Content for genome subdomain page.""" - -from .sections import sections diff --git a/webapp/home/subdomains/genome/content/__init__.py b/webapp/home/subdomains/genome/content/__init__.py deleted file mode 100644 index b20ce600..00000000 --- a/webapp/home/subdomains/genome/content/__init__.py +++ /dev/null @@ -1 +0,0 @@ -from . import data, assembly, annotation diff --git a/webapp/home/subdomains/genome/content/annotation.py b/webapp/home/subdomains/genome/content/annotation.py deleted file mode 100644 index fd2d4ad3..00000000 --- a/webapp/home/subdomains/genome/content/annotation.py +++ /dev/null @@ -1,304 +0,0 @@ -"""Content for annotation section.""" - -from .data import galaxy_au_support_item - -tools = [ - # { # Accordion item schema: - # "title_md": '', - # "description_md": """""", - # "inputs": [ - # { - # 'datatypes': [''], - # 'label': '', - # }, - # ], - # "button_link": "", - # "button_md": "", - # "button_tip": "", - # "view_link": "", - # "view_md": "", - # "view_tip": "", - # }, - { - "title_md": 'MAKER - genome annotation pipeline', - "description_md": """ -

- MAKER is able to annotate both prokaryotes and eukaryotes. It works by aligning as many evidences as possible along the genome sequence, and then reconciliating all these signals to determine probable gene structures. -

- The evidences can be transcript or protein sequences from the same (or closely related) organism. These sequences can come from public databases (like NR or GenBank) or from your own experimental data (transcriptome assembly from an RNASeq experiment for example). MAKER is also able to take into account repeated elements. -

""", - "inputs": [ - { - 'datatypes': ['fasta'], - 'label': 'Genome assembly', - }, - { - 'datatypes': ['fasta'], - 'label': 'Protein evidence (optional)', - }, - ], - "button_link": "{{ galaxy_base_url }}/tool_runner?tool_id=toolshed.g2.bx.psu.edu%2Frepos%2Fiuc%2Fmaker%2Fmaker", - }, - { - "title_md": 'Funannotate predict - predicted gene annotations', - "description_md": """ -

- Funannotate predict performs a comprehensive whole genome gene prediction. Uses AUGUSTUS, GeneMark, Snap, GlimmerHMM, BUSCO, EVidence Modeler, tbl2asn, tRNAScan-SE, Exonerate, minimap2. This approach differs from Maker as it does not need to train ab initio predictors -

""", - "inputs": [ - { - 'datatypes': ['fasta'], - 'label': 'Genome assembly (soft-masked)', - }, - { - 'datatypes': ['bam'], - 'label': 'Mapped RNA evidence (optional)', - }, - { - 'datatypes': ['fasta'], - 'label': 'Protein evidence (optional)', - }, - ], - "button_link": "{{ galaxy_base_url }}/tool_runner?tool_id=toolshed.g2.bx.psu.edu%2Frepos%2Fiuc%2Ffunannotate_predict%2Ffunannotate_predict", - }, - { - "title_md": 'RepeatMasker - screen DNA sequences for interspersed repeats and low complexity regions', - "description_md": """ -

- RepeatMasker is a program that screens DNA for repeated elements such as tandem repeats, transposons, SINEs and LINEs. Galaxy AU has installed the full and curated DFam screening databases, or a custom database can be provided in fasta format. Additional reference data can be downloaded from - - RepBase. -

""", - "inputs": [ - { - 'datatypes': ['fasta'], - 'label': 'Genome assembly', - }, - ], - "button_link": "{{ galaxy_base_url }}/tool_runner?tool_id=toolshed.g2.bx.psu.edu%2Frepos%2Fbgruening%2Frepeat_masker%2Frepeatmasker_wrapper", - }, - { - "title_md": 'InterProScan - Scans InterPro database and assigns functional annotations', - "description_md": """ -

- Interproscan is a batch tool to query the InterPro database. It provides annotations based on multiple searches of profile and other functional databases. -

""", - "inputs": [ - { - 'datatypes': ['fasta'], - 'label': 'Genome assembly', - }, - ], - "button_link": "{{ galaxy_base_url }}/tool_runner?tool_id=toolshed.g2.bx.psu.edu%2Frepos%2Fbgruening%2Finterproscan%2Finterproscan", - }, - { - "title_md": 'Funannotate compare - compare several annotations', - "description_md": """ -

- Funannotate compare compares several annotations and outputs a GFF3 file with the best gene models. It can be used to compare the results of different gene predictors, or to compare the results of a gene predictor with a reference annotation. -

""", - "inputs": [ - { - 'datatypes': ['fasta'], - 'label': 'Genome assemblies to compare', - }, - ], - "button_link": "{{ galaxy_base_url }}/tool_runner?tool_id=toolshed.g2.bx.psu.edu%2Frepos%2Fiuc%2Ffunannotate_compare%2Ffunannotate_compare", - }, - { - "title_md": 'JBrowse - Genome browser to visualize annotations', - "description_md": "", - "inputs": [ - { - 'datatypes': ['fasta'], - 'label': 'Genome assembly', - }, - { - 'datatypes': ['gff', 'gff3', 'bed'], - 'label': 'Annotations', - }, - { - 'datatypes': ['bam'], - 'label': 'Mapped RNAseq data (optional)', - }, - ], - "button_link": "{{ galaxy_base_url }}/tool_runner?tool_id=toolshed.g2.bx.psu.edu%2Frepos%2Fiuc%2Fjbrowse%2Fjbrowse", - }, - { - "title_md": 'Prokka - Genome annotation, prokaryotes only', - "description_md": "", - "inputs": [ - { - 'datatypes': ['fasta'], - 'label': 'Genome assembly', - }, - ], - "button_link": "{{ galaxy_base_url }}/tool_runner?tool_id=toolshed.g2.bx.psu.edu%2Frepos%2Fcrs4%2Fprokka%2Fprokka", - }, -] - -workflows = [ - { - "title_md": 'Annotation with Maker', - "description_md": """ -

- Annotates a genome using multiple rounds of Maker, including gene prediction using SNAP and Augustus. -
-
- Tools: - maker - snap - augustus - busco - jbrowse -

""", - "inputs": [ - { - 'datatypes': ['fasta'], - 'label': 'Genome assembly', - }, - { - 'datatypes': ['fastq'], - 'label': 'RNAseq Illumina reads', - }, - { - 'datatypes': ['fasta'], - 'label': 'Proteins', - }, - ], - "button_link": "{{ galaxy_base_url }}/u/anna/w/genome-annotation-with-maker", - "button_tip": "Run in Galaxy AU", - }, - { - "title_md": 'Annotation with Funannotate', - "description_md": """ -

- Annotates a genome using Funannotate, includes RNAseq data with RNAstar, and protein predictions from EggNOG. -
-
- Tools: - RNAstar - funannotate - eggnog - busco - jbrowse - aegean parseval -

""", - "inputs": [ - { - 'datatypes': ['fasta'], - 'label': 'Genome assembly (soft-masked)', - }, - { - 'datatypes': ['fastq'], - 'label': 'RNAseq Illumina reads', - }, - { - 'datatypes': ['gff3'], - 'label': 'Alternative annotation', - }, - { - 'datatypes': ['gbk'], - 'label': 'Alternative annotation', - }, - ], - "button_link": "{{ galaxy_base_url }}/u/anna/w/annotation-funannotate", - "button_tip": "Run in Galaxy AU", - }, -] - -help = [ - { - "title_md": 'What is genome annotation?', - "description_md": """ -

- These - - slides - - from the Galaxy training network explain the process of genome annotation in detail. You can use the and keys to navigate through the slides. -

""", - }, - { - "title_md": 'Genome annotation overview', - "description_md": """ -

The flowchart below shows how you might use your input data (in green) with different Galaxy tools (in blue) to annotate a genome assembly. For example, one pathway would be taking an assembled genome, plus information about repeats, and data from RNA-seq, to run in the Maker pipeline. The annotatations can then be viewed in JBrowse.

- Genome annotation flowchart -

A graphical representation of genome annotation

""", - }, - { - "title_md": 'Can I use Fgenesh++ for annotation?', - "description_md": """ -

- - Fgenesh++ - - is a bioinformatics pipeline for automatic prediction of genes in eukaryotic genomes. It is presently not installed in Galaxy Australia, but the Australian Biocommons and partners have licensed the software and made it available via commandline. Australian researchers can apply for access through the Australian BioCommons. -

- """, - 'button_md': 'Apply', - 'button_link': 'https://www.biocommons.org.au/fgenesh-plus-plus', - 'button_tip': 'Apply for access to Fgenesh++', - }, - { - "title_md": 'Can I use Apollo to share and edit the annotated genome?', - "description_md": """ -

- Apollo is web-browser accessible system that lets you conduct real-time collaborative curation and editing of genome annotations. -

-

- The Australian BioCommons and our partners at QCIF and Pawsey provide a hosted - - Apollo Portal service - - where your genome assembly and supporting evidence files can be hosted. All system administration is taken care of, so you and your team can focus on the annotation curation itself. -

- -

- This - - Galaxy tutorial - - provides a complete walkthrough of the process of refining eukaryotic genome annotations with Apollo. -

- """, - "button_link": "https://support.biocommons.org.au/support/solutions/articles/6000244843-apollo-for-collaborative-curation-and-editing", - "button_md": "More info", - }, - { - "title_md": 'Tutorials', - "description_md": """ -

Genome annotation with Maker

-

- Genome annotation of eukaryotes is a little more complicated than for prokaryotes: eukaryotic genomes are usually larger than prokaryotes, with more genes. The sequences determining the beginning and the end of a gene are generally less conserved than the prokaryotic ones. Many genes also contain introns, and the limits of these introns (acceptor and donor sites) are not highly conserved. This - - Galaxy tutorial - - uses MAKER to annotate the genome of a small eukaryote: Schizosaccharomyces pombe (a yeast). -

- -
- -

Genome annotation with Funannotate

-

- This - - Galaxy tutorial - - provides a complete walkthrough of the process of annotation with Funannotate, including the preparation of RNAseq data, structural annotation, functional annotation, visualisation, and comparing annotations. -

- """, - }, - galaxy_au_support_item, -] diff --git a/webapp/home/subdomains/genome/content/assembly.py b/webapp/home/subdomains/genome/content/assembly.py deleted file mode 100644 index ada27eae..00000000 --- a/webapp/home/subdomains/genome/content/assembly.py +++ /dev/null @@ -1,534 +0,0 @@ -"""Content for assembly section.""" - -# flake8: noqa - -from .data import galaxy_au_support_item - -import_workflow_tip = "Import to Galaxy Australia" -view_workflow_tip = "View in WorkflowHub" - -tools = [ - # { # Accordion item schema: - # "title_md": '', - # "description_md": """""", - # "inputs": [ - # { - # 'datatypes': [''], - # 'label': '', - # }, - # ], - # "button_link": "", - # "button_md": "", - # "button_tip": "", - # "view_link": "", - # "view_md": "", - # "view_tip": "", - # }, - { - "title_md": 'Hifiasm - assembly with PacBio HiFi data', - "description_md": """ -

- A haplotype-resolved assembler for PacBio HiFi reads. -

""", - "inputs": [ - {'datatypes': ['fasta']}, - ], - "button_link": "{{ galaxy_base_url }}/tool_runner?tool_id=toolshed.g2.bx.psu.edu%2Frepos%2Fbgruening%2Fhifiasm%2Fhifiasm", - }, - { - "title_md": 'Flye - assembly with PacBio or Nanopore data', - "description_md": """ -

- de novo assembly of single-molecule sequencing reads, - designed for a wide range of datasets, from small bacterial - projects to large mammalian-scale assemblies. -

""", - "inputs": [ - {'datatypes': ['fasta']}, - {'datatypes': ['fastq']}, - ], - "button_link": "{{ galaxy_base_url }}/tool_runner?tool_id=toolshed.g2.bx.psu.edu%2Frepos%2Fbgruening%2Fflye%2Fflye", - }, - { - "title_md": 'Unicycler - assembly with Illumina, PacBio or Nanopore data - bacteria only', - "description_md": """ -

- Hybrid assembly pipeline for bacterial genomes, uses both Illumina reads and long reads (PacBio or Nanopore). -

""", - "inputs": [ - {'datatypes': ['fastq']}, - ], - "button_link": "{{ galaxy_base_url }}/tool_runner?tool_id=toolshed.g2.bx.psu.edu%2Frepos%2Fiuc%2Funicycler%2Funicycler", - }, - { - "title_md": 'Salsa - scaffold assembly with HiC data', - "description_md": """ -

- Salsa is a scaffolding tool based on a computational method that - exploits the genomic proximity information in Hi-C data sets - for long-range scaffolding of de novo genome assemblies. -

""", - "inputs": [ - {'datatypes': ['fasta']}, - ], - "button_link": "{{ galaxy_base_url }}/tool_runner?tool_id=toolshed.g2.bx.psu.edu%2Frepos%2Fiuc%2Fsalsa%2Fsalsa", - }, - { - "title_md": 'Quast - assess genome assembly quality', - "description_md": """ -

- QUAST = QUality ASsessment Tool. The tool evaluates genome assemblies by computing various metrics. If you have one or multiple genome assemblies, you can assess their quality with Quast. It works with or without reference genome -

""", - "inputs": [ - {'datatypes': ['fasta']}, - ], - "button_link": "{{ galaxy_base_url }}/tool_runner?tool_id=toolshed.g2.bx.psu.edu%2Frepos%2Fiuc%2Fquast%2Fquast", - }, - { - "title_md": 'Busco - assess genome assembly quality', - "description_md": """ -

- BUSCO: assessing genome assembly and annotation completeness with Benchmarking Universal Single-Copy Orthologs. The tool attempts to provide a quantitative assessment of the completeness in terms of the expected gene content of a genome assembly, transcriptome, or annotated gene set. -

""", - "inputs": [ - {'datatypes': ['fasta']}, - ], - "button_link": "{{ galaxy_base_url }}/tool_runner?tool_id=toolshed.g2.bx.psu.edu%2Frepos%2Fiuc%2Fbusco%2Fbusco", - }, -] - - -workflows_pacbio = [ - { - "title_md": 'About these workflows', - "description_md": """ -

- This - - How-to-Guide - - will describe the steps required to assemble your genome on the Galaxy Australia platform, using multiple workflows. -

""", - }, - { - "title_md": 'BAM to FASTQ + QC v1.0', - "description_md": """ -

- Convert a BAM file to FASTQ format to perform QC analysis - (required if your data is in BAM format). -

""", - "inputs": [ - { - 'datatypes': ['bam'], - 'label': 'PacBio subreads.bam', - }, - ], - "button_link": "{{ galaxy_base_url }}/workflows/trs_import?trs_server=workflowhub.eu&run_form=true&trs_id=220", - "button_tip": import_workflow_tip, - "view_link": "https://workflowhub.eu/workflows/220", - "view_tip": view_workflow_tip, - }, - { - "title_md": 'PacBio HiFi genome assembly using hifiasm v2.1', - "description_md": """ -

- Assemble a genome using PacBio HiFi reads. -

""", - "inputs": [ - { - 'datatypes': ['fastqsanger'], - 'label': 'HiFi reads', - }, - ], - "button_link": "{{ galaxy_base_url }}/workflows/trs_import?trs_server=workflowhub.eu&run_form=true&trs_id=221", - "button_tip": import_workflow_tip, - "view_link": "https://workflowhub.eu/workflows/221", - "view_tip": view_workflow_tip, - }, - { - "title_md": 'Purge duplicates from hifiasm assembly v1.0', - "description_md": """ -

- Optional workflow to purge duplicates from the contig assembly. -

""", - "inputs": [ - { - 'datatypes': ['fastqsanger'], - 'label': 'HiFi reads', - }, - { - 'datatypes': ['fasta'], - 'label': 'Primary assembly contigs', - }, - ], - "button_link": "{{ galaxy_base_url }}/workflows/trs_import?trs_server=workflowhub.eu&run_form=true&trs_id=237", - "button_tip": import_workflow_tip, - "view_link": "https://workflowhub.eu/workflows/237", - "view_tip": view_workflow_tip, - }, - { - "title_md": 'Genome assessment post-assembly', - "description_md": """ -

- Evaluate the quality of your genome assembly with a comprehensive report including FASTA stats, BUSCO, QUAST, Meryl and Merqury. -

""", - "inputs": [ - { - 'datatypes': ['fasta'], - 'label': 'Primary assembly contigs', - }, - ], - "button_link": "{{ galaxy_base_url }}/workflows/trs_import?trs_server=workflowhub.eu&run_form=true&trs_id=403", - "button_tip": import_workflow_tip, - "view_link": "https://workflowhub.eu/workflows/403", - "view_tip": view_workflow_tip, - }, -] - -workflows_nanopore = [ - { - "title_md": 'About these workflows', - "description_md": """ -

- This - - tutorial - - describes the steps required to assemble a genome on Galaxy with Nanopore and Illumina data. -

""", - }, - { - "title_md": 'Flye assembly with Nanopore data', - "description_md": """ -

- Assemble Nanopore long reads. This workflow can be run alone or as part of a combined workflow for large genome assembly. -

""", - "inputs": [ - { - 'datatypes': ['fastqsanger'], - 'label': 'Long reads (may be raw, filtered and/or corrected)', - }, - ], - "button_link": "{{ galaxy_base_url }}/workflows/trs_import?trs_server=workflowhub.eu&run_form=true&trs_id=225", - "button_tip": import_workflow_tip, - "view_link": "https://workflowhub.eu/workflows/225", - "view_tip": view_workflow_tip, - }, - { - "title_md": 'Assembly polishing', - "description_md": """ -

- Polishes (corrects) an assembly, using long reads (Racon and Medaka) and short reads (Racon). -

""", - "inputs": [ - { - 'datatypes': ['fasta'], - 'label': 'Assembly to polish', - }, - { - 'datatypes': ['fastq'], - 'label': 'Long reads (those used in assembly)', - }, - { - 'datatypes': ['fastq'], - 'label': 'Short reads to be used for polishing (R1 only)', - }, - ], - "button_link": "{{ galaxy_base_url }}/workflows/trs_import?trs_server=workflowhub.eu&run_form=true&trs_id=226", - "button_tip": import_workflow_tip, - "view_link": "https://workflowhub.eu/workflows/226", - "view_tip": view_workflow_tip, - }, - { - "title_md": 'Assess genome quality', - "description_md": """ -

- Assesses the quality of the genome assembly. Generates statistics, determines if expected genes are present and align contigs to a reference genome. -

""", - "inputs": [ - { - 'datatypes': ['fasta'], - 'label': 'Polished assembly', - }, - { - 'datatypes': ['fasta'], - 'label': 'Reference genome assembly (e.g. related species)', - }, - ], - "view_link": "https://workflowhub.eu/workflows/229", - "view_tip": view_workflow_tip, - "button_link": "{{ galaxy_base_url }}/workflows/trs_import?trs_server=workflowhub.eu&run_form=true&trs_id=229", - "button_tip": import_workflow_tip, - }, -] - -workflows_hic = [ - { - "title_md": 'About these workflows', - "description_md": """ -

- These workflows have been developed as part of the global Vertebrate Genome Project (VGP). - A guide to using these in Galaxy Australia can be found - here. - A complete guide to the individual workflows and sample results can be found - here. - There are many different ways that these workflows can be used in practice - for a comprehensive example, check out this - Galaxy tutorial. -

""", - }, - { - "title_md": 'Kmer profiling', - "description_md": """ -

- This workflow produces a Meryl database and Genomescope outputs that will be used to determine parameters for following workflows, and assess the quality of genome assemblies. Specifically, it provides information about the genomic complexity, such as the genome size and levels of heterozygosity and repeat content, as well about the data quality. -

""", - "inputs": [ - { - 'datatypes': ['fastq'], - 'label': 'PacBio HiFi reads', - }, - ], - "view_link": "https://dockstore.org/workflows/github.com/iwc-workflows/kmer-profiling-hifi-VGP1/main:main", - "view_tip": view_workflow_tip, - "button_link": "{{ galaxy_base_url }}/workflows/trs_import?trs_server=dockstore.org&trs_id=%23workflow/github.com/iwc-workflows/kmer-profiling-hifi-VGP1/main", - "button_tip": import_workflow_tip, - }, - { - "title_md": 'Hifi assembly and HiC phasing', - "description_md": """ -

- This workflow uses hifiasm (HiC mode) to generate HiC-phased haplotypes (hap1 and hap2). This is in contrast to its default mode, which generates primary and alternate pseudohaplotype assemblies. This workflow includes three tools for evaluating assembly quality: gfastats, BUSCO and Merqury. -

- -

- - Note: if you have multiple input files for each HiC set, they need to be concatenated. The forward set needs to be concatenated in the same order as reverse set. - -

""", - "inputs": [ - { - 'datatypes': ['fasta'], - 'label': 'PacBio HiFi reads', - }, - { - 'datatypes': ['fastq'], - 'label': 'PacBio HiC reads (forward)', - }, - { - 'datatypes': ['fastq'], - 'label': 'PacBio HiC reads (reverse)', - }, - { - 'datatypes': ['meryldb'], - 'label': ' kmer database', - }, - { - 'datatypes': ['txt'], - 'label': 'GenomeScope genome profile summary', - }, - ], - "view_link": "https://dockstore.org/workflows/github.com/iwc-workflows/Assembly-Hifi-HiC-phasing-VGP4/main:main", - "view_tip": view_workflow_tip, - "button_link": "{{ galaxy_base_url }}/workflows/trs_import?trs_server=dockstore.org&trs_id=%23workflow/github.com/iwc-workflows/Assembly-Hifi-HiC-phasing-VGP4/main", - "button_tip": import_workflow_tip, - }, - { - "title_md": 'HiC scaffolding', - "description_md": """ -

- This workflow scaffolds the assembly contigs using information from HiC data. -

""", - "inputs": [ - { - 'datatypes': ['gfa'], - 'label': 'Assembly of haplotype 1', - }, - { - 'datatypes': ['fastq'], - 'label': 'HiC forward reads', - }, - { - 'datatypes': ['fastq'], - 'label': 'HiC reverse reads', - }, - ], - "view_link": "https://dockstore.org/workflows/github.com/iwc-workflows/Scaffolding-HiC-VGP8/main:main", - "view_tip": view_workflow_tip, - "button_link": "{{ galaxy_base_url }}/workflows/trs_import?trs_server=dockstore.org&trs_id=%23workflow/github.com/iwc-workflows/Scaffolding-HiC-VGP8/main", - "button_tip": import_workflow_tip, - }, - { - "title_md": 'Decontamination', - "description_md": """ -

- This workflow identifies and removes contaminants from the assembly. -

""", - "inputs": [ - { - 'datatypes': ['fasta'], - 'label': 'Assembly', - }, - ], - "view_link": "https://dockstore.org/workflows/github.com/iwc-workflows/Assembly-decontamination-VGP9/main:v0.1", - "view_tip": view_workflow_tip, - "button_link": "{{ galaxy_base_url }}/workflows/trs_import?trs_server=dockstore.org&trs_id=%23workflow/github.com/iwc-workflows/Assembly-decontamination-VGP9/main", - "button_tip": import_workflow_tip, - }, -] - -workflows = { - 'subsections': [ - { - 'id': 'pacbio', - 'title': 'Assembly with PacBio HiFi data', - 'content': workflows_pacbio, - }, - { - 'id': 'nanopore', - 'title': 'Assembly with Nanopore data and polishing with Illumina data', - 'content': workflows_nanopore, - }, - { - 'id': 'hic', - 'title': 'Assembly with PacBio HiFi and HiC data', - 'content': workflows_hic, - }, - ] -} - - -help = [ - { - "title_md": 'Can I use Galaxy Australia to assemble a large genome?', - "description_md": """ -

- Yes. Galaxy Australia has assembly tools for small prokaryote genomes as well as larger eukaryote genomes. We are continually adding new tools and optimising them for large genome assemblies - this means adding enough computer processing power to run data-intensive tools, as well as configuring aspects such as parallelisation. -

-

- Please contact us if: -

-
    -
  • you need to increase your data storage limit
  • -
  • there is a tool you wish to request
  • -
  • a tool appears to be broken or running slowly
  • -
""", - "button_link": "/request", - "button_md": "Request support", - }, - { - "title_md": 'How can I learn about genome assembly?', - "description_md": """ -
    -
  • See the tutorials in this Help section. They cover different approaches to genome assembly. -
  • -
  • Read the methods in scientific papers about genome assembly, particularly those about genomes with similar characteristics to those in your project
  • -
  • See the Workflows section for examples of different approaches to genome assembly - these cover different sequencing data types, and a variety of tools.
  • -
""", - }, - { - "title_md": 'Genome assembly overview', - "description_md": """ -

Genome assembly can be a very involved process. A typical genome assembly procedure might look like:

-
    -
  • Data QC - check the quality and characteristics of your sequencing reads.
  • -
  • Kmer counting - to determine genome characteristics such as ploidy and size.
  • -
  • Data preparation - trimming and filtering sequencing reads if required.
  • -
  • Assembly - for large genomes, this is usually done with long sequencing reads from PacBio or Nanopore.
  • -
  • Polishing - the assembly may be polished (corrected) with long and/or short (Illumina) reads.
  • -
  • Scaffolding - the assembly contigs may be joined together with other sequencing data such as HiC.
  • -
  • Assessment - at any stage, the assembly can be assessed for number of contigs, number of base pairs, whether expected genes are present, and many other metrics.
  • -
  • Annotation - identify features on the genome assembly such as gene names and locations.
  • -
- Genome assembly flowchart -

A graphical representation of genome assembly

""", - }, - { - "title_md": 'Which tools should I use?', - "description_md": """ -

- There is no best set of tools to recommend - new tools are developed constantly, sequencing technology improves rapidly, and many genomes have never been sequenced before and thus their characteristics and quirks are unknown. The "Tools" tab in this section includes a list of commonly-used tools that could be a good starting point. You will find other tools in recent publications or used in workflows. -

-

- You can also search for tools in Galaxy's tool panel. If they aren't installed on Galaxy Australia, you can - request installation - of a tool. -

-

- We recommend testing a tool on a small data set first and seeing if the results make sense, before running on your full data set. -

- """, - }, - { - "title_md": 'Tutorials', - "description_md": """ -

- Find 15+ Galaxy training tutorials - here. -

- -

- - Introduction to genome assembly and annotation (slides) - -

- -

- - Vertebrate genome assembly pipeline (tutorial) - -

- -

- - Nanopore and illumina genome assembly (tutorial) - -

- -

- - Share workflows and results with workflow reports (tutorial) - -

- """, - }, - { - "title_md": 'How can I assess the quality of my genome assembly?', - "description_md": """ -

- Once a genome has been assembled, it is important to assess the quality of the assembly, and in the first instance, this quality control (QC) can be achieved using the workflow described here. -

- """, - "button_link": "https://australianbiocommons.github.io/how-to-guides/genome_assembly/assembly_qc", - "button_md": "Workflow tutorial", - }, - galaxy_au_support_item, -] diff --git a/webapp/home/subdomains/genome/content/data.py b/webapp/home/subdomains/genome/content/data.py deleted file mode 100644 index 6d979417..00000000 --- a/webapp/home/subdomains/genome/content/data.py +++ /dev/null @@ -1,216 +0,0 @@ -"""Content for data section - tools, workflows and help tabs.""" - -galaxy_au_support_item = { - "title_md": 'Galaxy Australia support', - "description_md": """

- Any user of Galaxy Australia can request support through an - online form. -

""", - "button_link": "/request/support", - "button_md": "Request support", -} - -tools = [ - # { # Accordion item schema: - # "title_md": '', - # "description_md": """""", - # "inputs": [ - # { - # 'datatypes': [''], - # 'label': '', - # }, - # ], - # "button_link": "", - # "button_md": "", - # "button_tip": "", - # "view_link": "", - # "view_md": "", - # "view_tip": "", - # }, - { - "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": 'FastQC - sequence quality reports', - "description_md": '

Before using your sequencing data, it's important first ensure that the data quality is sufficient for your analysis.

', - "inputs": [ - {'datatypes': ['fastq']}, - {'datatypes': ['bam']}, - {'datatypes': ['sam']}, - ], - "button_link": "{{ galaxy_base_url }}/tool_runner?tool_id=toolshed.g2.bx.psu.edu%2Frepos%2Fdevteam%2Ffastqc%2Ffastqc", - }, - { - "title_md": 'FastP - sequence quality reports, trimming & filtering', - "description_md": '

Faster run than FastQC, this tool can also trim reads and filter by quality.

', - "inputs": [ - {'datatypes': ['fastq']}, - ], - "button_link": "{{ galaxy_base_url }}/tool_runner?tool_id=toolshed.g2.bx.psu.edu%2Frepos%2Fiuc%2Ffastp%2Ffastp", - }, - { - "title_md": 'NanoPlot - visualize Oxford Nanopore data', - "description_md": '

A plotting suite for Oxford Nanopore sequencing data and alignments.

', - "inputs": [ - {'datatypes': ['fastq']}, - {'datatypes': ['fasta']}, - {'datatypes': ['vcf_bgzip']}, - ], - "button_link": "{{ galaxy_base_url }}/tool_runner?tool_id=toolshed.g2.bx.psu.edu%2Frepos%2Fiuc%2Fnanoplot%2Fnanoplot", - }, - { - "title_md": 'GenomeScope - estimate genome size', - "description_md": '

A set of metrics and graphs to visualize genome size and complexity prior to assembly.

', - "inputs": [ - { - "datatypes": ["tabular"], - "label": "Output from Meryl or Jellyfish histo", - }, - ], - "button_link": "{{ galaxy_base_url }}/tool_runner?tool_id=toolshed.g2.bx.psu.edu%2Frepos%2Fiuc%2Fgenomescope%2Fgenomescope", - }, - { - "title_md": 'Meryl - count kmers', - "description_md": '

Prepare kmer count histogram for input to GenomeScope.

', - "inputs": [ - {'datatypes': ['fastq']}, - {'datatypes': ['fasta']}, - ], - "button_link": "{{ galaxy_base_url }}/tool_runner?tool_id=toolshed.g2.bx.psu.edu%2Frepos%2Fiuc%2Fmeryl%2Fmeryl", - }, -] - - -workflows = [ - { - "title_md": 'Data QC', - "description_md": """ -

- Report statistics from sequencing reads. -
-
- Tools: - nanoplot - fastqc - multiqc -

""", - "button_link": "{{ galaxy_base_url }}/workflows/trs_import?trs_server=workflowhub.eu&run_form=true&trs_id=222", - "button_tip": "Import to Galaxy AU", - "view_link": "https://workflowhub.eu/workflows/222", - "view_tip": "View in WorkflowHub", - }, - { - "title_md": 'Kmer counting to estimate genome size', - "description_md": """ -

- Estimates genome size and heterozygosity based on counts of kmers. -
-
- Tools: - meryl - genomescope -

""", - "button_link": "{{ galaxy_base_url }}/workflows/trs_import?trs_server=workflowhub.eu&run_form=true&trs_id=223", - "button_tip": "Import to Galaxy AU", - "view_link": "https://workflowhub.eu/workflows/223", - "view_tip": "View in WorkflowHub", - }, - { - "title_md": 'Trim and filter reads', - "description_md": """ -

- Trims and filters raw sequence reads according to specified settings. -
-
- Tools: - fastp -

""", - "button_link": "{{ galaxy_base_url }}/workflows/trs_import?trs_server=workflowhub.eu&run_form=true&trs_id=224", - "button_tip": "Import to Galaxy AU", - "view_link": "https://workflowhub.eu/workflows/224", - "view_tip": "View in WorkflowHub", - }, -] - - -help = [ - { - "title_md": 'How can I import my genomics data?', - "description_md": """ -

- 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. -

""", - "button_link": "https://training.galaxyproject.org/training-material/topics/galaxy-interface/", - "button_md": "More info", - }, - { - "title_md": 'How can I subsample my data?', - "description_md": """ -

- We recommend subsampling large data sets to test tools and workflows. A useful tool is seqtk_seq, setting the parameter at "Sample fraction of sequences" -

""", - }, - { - "title_md": 'How can I import data from the BPA portal?', - "description_md": """ -

- 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. -

""", - "button_link": "https://australianbiocommons.github.io/how-to-guides/genome_assembly/hifi_assembly#in-depth-workflow-guide", - "button_md": "More info", - }, - { - "title_md": 'Can I upload sensitive data?', - "description_md": """ -

- No, do not upload personal or sensitive, such as human health or clinical data. - Please see our - Data Privacy - page for definitions of sensitive and health-related information. -

-

- Please also make sure you have read our - Terms of Service, - which covers hosting and analysis of research data. -

""", - }, - { - "title_md": 'Is my data private?', - "description_md": """ -

- Please read our - Privacy Policy - for information on your personal data and any data that you upload. -

""", - }, - { - "title_md": 'How can I increase my storage quota?', - "description_md": """ -

- 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. -

""", - "button_link": "/request/quota", - "button_md": "Request", - }, - { - "title_md": 'Tutorial: Quality Control', - "description_md": """ -

- 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 FastQC, NanoPlot and PycoQC. -

""", - "button_link": "https://training.galaxyproject.org/training-material/topics/sequence-analysis/tutorials/quality-control/tutorial.html", - "button_md": "Tutorial", - }, - { - "title_md": 'Tutorial: introduction to Genomics and Galaxy', - "description_md": """ -

- 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. -

""", - "button_link": "https://training.galaxyproject.org/training-material/topics/introduction/tutorials/galaxy-intro-strands/tutorial.html", - "button_md": "Tutorial", - }, - galaxy_au_support_item, -] diff --git a/webapp/home/subdomains/genome/sections.py b/webapp/home/subdomains/genome/sections.py deleted file mode 100644 index 85a370bb..00000000 --- a/webapp/home/subdomains/genome/sections.py +++ /dev/null @@ -1,83 +0,0 @@ -"""Content for landing page is modularize in Python code and imported from this -file. -""" - -from . import content - -workflow_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. -Learn more. -""" - -tools_heading_md = """Common tools are listed here, or search for more in the full tool panel to the left.""" - -sections = [ - { - "id": "data", - "title": "Data import and preparation", - "tabs": [ - { - "id": "tools", - "title": "Tools", - "heading_md": tools_heading_md, - "content": content.data.tools, - }, - { - "id": "workflows", - "title": "Workflows", - "heading_md": workflow_heading_md, - "content": content.data.workflows, - }, - { - "id": "help", - "title": "Help", - "content": content.data.help, - }, - ], - }, - { - "id": "assembly", - "title": "Genome assembly", - "tabs": [ - { - "id": "tools", - "title": "Tools", - "heading_md": tools_heading_md, - "content": content.assembly.tools, - }, - { - "id": "workflows", - "title": "Workflows", - "heading_md": workflow_heading_md, - "content": content.assembly.workflows, - }, - { - "id": "help", - "title": "Help", - "content": content.assembly.help, - }, - ], - }, - { - "id": "annotation", - "title": "Genome annotation", - "tabs": [ - { - "id": "tools", - "title": "Tools", - "heading_md": tools_heading_md, - "content": content.annotation.tools, - }, - { - "id": "workflows", - "title": "Workflows", - "heading_md": workflow_heading_md, - "content": content.annotation.workflows, - }, - { - "id": "help", - "title": "Help", - "content": content.annotation.help, - }, - ], - }, -] diff --git a/webapp/home/subdomains/proteomics/__init__.py b/webapp/home/subdomains/proteomics/__init__.py deleted file mode 100644 index 50e41a9c..00000000 --- a/webapp/home/subdomains/proteomics/__init__.py +++ /dev/null @@ -1,3 +0,0 @@ -"""Content for proteomics subdomain page.""" - -from .sections import sections diff --git a/webapp/home/subdomains/proteomics/content/__init__.py b/webapp/home/subdomains/proteomics/content/__init__.py deleted file mode 100644 index 43e063b6..00000000 --- a/webapp/home/subdomains/proteomics/content/__init__.py +++ /dev/null @@ -1,6 +0,0 @@ -from . import ( - database_searching, - dda_standardised_tools, - dia_standardised_tools, - dda_tmt, -) diff --git a/webapp/home/subdomains/proteomics/content/data.py b/webapp/home/subdomains/proteomics/content/data.py deleted file mode 100644 index 2a1b1478..00000000 --- a/webapp/home/subdomains/proteomics/content/data.py +++ /dev/null @@ -1,82 +0,0 @@ -"""Content for data section - tools, workflows and help tabs.""" - -galaxy_au_support_item = { - "title_md": 'Galaxy Australia support', - "description_md": """

- Any user of Galaxy Australia can request support through an - online form. -

""", - "button_link": "/request/support", - "button_md": "Request support", -} - -tools = [ - # { # Accordion item schema: - # "title_md": '', - # "description_md": """""", - # "inputs": [ - # { - # 'datatypes': [''], - # 'label': '', - # }, - # ], - # "button_link": "", - # "button_md": "", - # "button_tip": "", - # "view_link": "", - # "view_md": "", - # "view_tip": "", - # }, - { - "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', - } -] - - -help = [ - { - "title_md": 'Can I upload sensitive data?', - "description_md": """ -

- No, do not upload personal or sensitive, such as human health or clinical data. - Please see our - Data Privacy - page for definitions of sensitive and health-related information. -

-

- Please also make sure you have read our - Terms of Service, - which covers hosting and analysis of research data. -

""", - }, - { - "title_md": 'Is my data private?', - "description_md": """ -

- Please read our - Privacy Policy - for information on your personal data and any data that you upload. -

""", - }, - { - "title_md": 'How can I increase my storage quota?', - "description_md": """ -

- 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. -

""", - "button_link": "/request/quota", - "button_md": "Request", - }, - { - "title_md": 'Tutorial: Introduction to proteomics, protein identification, quantification and statistical modelling', - "description_md": """ -

- This practical aims to familiarize you with Galaxy for Proteomics, including theory, methods and software examples. -

""", - "button_link": "https://training.galaxyproject.org/training-material/topics/proteomics/tutorials/introduction/slides.html#1", - "button_md": "Tutorial", - }, - galaxy_au_support_item, -] diff --git a/webapp/home/subdomains/proteomics/content/database_searching.py b/webapp/home/subdomains/proteomics/content/database_searching.py deleted file mode 100644 index 70e15b26..00000000 --- a/webapp/home/subdomains/proteomics/content/database_searching.py +++ /dev/null @@ -1,73 +0,0 @@ -"""Content for data section - tools, workflows and help tabs.""" - -galaxy_au_support_item = { - "title_md": 'Galaxy Australia support', - "description_md": """

- Any user of Galaxy Australia can request support through an - online form. -

""", - "button_link": "/request/support", - "button_md": "Request support", -} - -tools = [ - # { # Accordion item schema: - # "title_md": '', - # "description_md": """""", - # "inputs": [ - # { - # 'datatypes': [''], - # 'label': '', - # }, - # ], - # "button_link": "", - # "button_md": "", - # "button_tip": "", - # "view_link": "", - # "view_md": "", - # "view_tip": "", - # }, - { - "title_md": 'DecoyDatabase', - "description_md": '

Create decoy sequence database from forward sequence database.

', - "inputs": [ - { - 'datatypes': ['fasta'], - 'label': 'Input FASTA file(s), each containing a database', - } - ], - "button_link": "{{ galaxy_base_url }}/root?tool_id=toolshed.g2.bx.psu.edu/repos/galaxyp/openms_decoydatabase/DecoyDatabase/", - }, - { - "title_md": 'MaxQuant', - "description_md": '

MaxQuant is a quantitative proteomics software package designed for analyzing large mass-spectrometric data sets.

', - "inputs": [ - { - 'datatypes': ['thermo.raw', 'mzML', 'mzXML'], - 'label': 'Mass spectrometry data sets' - }, - { - 'datatypes': ['tabular'], - 'label': 'Experimental design template', - }, - ], - "button_link": "{{ galaxy_base_url }}/root?tool_id=toolshed.g2.bx.psu.edu/repos/galaxyp/maxquant/maxquant/", - }, - { - "title_md": 'Morpheus', - "description_md": '

Database search algorithm for high-resolution tandem mass spectra.

', - "inputs": [ - { - 'datatypes': ['mzML'], - 'label': 'Indexed mzML', - }, - { - 'datatypes': ['fasta', 'uniprotxml'], - 'label': 'MS Protein Search Database: UniProt Xml or Fasta', - }, - ], - "button_link": "https://proteomics.usegalaxy.org.au/root?tool_id=toolshed.g2.bx.psu.edu/repos/galaxyp/morpheus/morpheus/", - } -] - -help = [] # Todo diff --git a/webapp/home/subdomains/proteomics/content/dda_standardised_tools.py b/webapp/home/subdomains/proteomics/content/dda_standardised_tools.py deleted file mode 100644 index 1a2f416e..00000000 --- a/webapp/home/subdomains/proteomics/content/dda_standardised_tools.py +++ /dev/null @@ -1,99 +0,0 @@ -"""Content for data section - tools, workflows and help tabs.""" - -galaxy_au_support_item = { - "title_md": 'Galaxy Australia support', - "description_md": """

- Any user of Galaxy Australia can request support through an - online form. -

""", - "button_link": "/request/support", - "button_md": "Request support", -} - -tools = [ - # { # Accordion item schema: - # "title_md": '', - # "description_md": """""", - # "inputs": [ - # { - # 'datatypes': [''], - # 'label': '', - # }, - # ], - # "button_link": "", - # "button_md": "", - # "button_tip": "", - # "view_link": "", - # "view_md": "", - # "view_tip": "", - # }, - { - "title_md": 'MaxQuant', - "description_md": '

MaxQuant is a quantitative proteomics software package designed for analyzing large mass-spectrometric data sets.

', - "inputs": [ - { - 'datatypes': [ - 'thermo.raw', - 'mzML', - 'mzXML', - ], - 'label': 'MS spectra (input file)', - }, - { - 'datatypes': ['tabular'], - 'label': 'Experimental design template', - }, - ], - "button_link": "https://usegalaxy.org.au/root?tool_id=toolshed.g2.bx.psu.edu/repos/galaxyp/maxquant/maxquant/", - }, - { - "title_md": 'MSstats', - "description_md": '

Statistical relative protein significance analysis in DDA, SRM and DIA Mass Spectrometry.

', - "inputs": [ - { - 'datatypes': ['tabular', 'csv'], - 'label': 'Either the 10-column MSstats format or the outputs of spectral processing tools such as MaxQuant, OpenSWATH.', - } - ], - "button_link": "https://usegalaxy.org.au/root?tool_id=toolshed.g2.bx.psu.edu/repos/galaxyp/msstats/msstats/", - }, - { - "title_md": 'LFQ Analyst', - "description_md": '

Analyze and Visualize Label-Free Proteomics output from MaxQuant.

', - "inputs": [ - { - 'datatypes': ['txt'], - 'label': 'Protein groups (MaxQuant output)', - }, - { - 'datatypes': ['txt'], - 'label': 'Experimental Design Matrix (MaxQuant output)', - } - ], - "button_link": "https://usegalaxy.org.au/root?tool_id=interactive_tool_lfqanalyst_2", - } -] - - -help = [ - { - "title_md": 'LFQ-Analyst: Manual', - "description_md": """ -

- A detailed user manual for LFQ-Analyst. -

""", - "button_link": "https://analyst-suite.monash-proteomics.cloud.edu.au/apps/lfq-analyst/LFQ-Analyst_manual.pdf", - "button_md": "Manual", - }, - { - "title_md": 'MaxQuant and MSstats for the analysis of label-free data', - "description_md": """ -

- Learn how to use MaxQuant and MSstats for the analysis of label-free shotgun (DDA) data. -

""", - "button_link": "https://training.galaxyproject.org/training-material/topics/proteomics/tutorials/maxquant-msstats-dda-lfq/tutorial.html", - "button_md": "Tutorial", - }, - galaxy_au_support_item, -] - diff --git a/webapp/home/subdomains/proteomics/content/dda_tmt.py b/webapp/home/subdomains/proteomics/content/dda_tmt.py deleted file mode 100644 index 9be9c548..00000000 --- a/webapp/home/subdomains/proteomics/content/dda_tmt.py +++ /dev/null @@ -1,87 +0,0 @@ -"""Content for data section - tools, workflows and help tabs.""" - -galaxy_au_support_item = { - "title_md": 'Galaxy Australia support', - "description_md": """

- Any user of Galaxy Australia can request support through an - online form. -

""", - "button_link": "/request/support", - "button_md": "Request support", -} - -tools = [ - # { # Accordion item schema: - # "title_md": '', - # "description_md": """""", - # "inputs": [ - # { - # 'datatypes': [''], - # 'label': '', - # }, - # ], - # "button_link": "", - # "button_md": "", - # "button_tip": "", - # "view_link": "", - # "view_md": "", - # "view_tip": "", - # }, - { - "title_md": 'MaxQuant', - "description_md": '

MaxQuant is a quantitative proteomics software package designed for analyzing large mass-spectrometric data sets.

', - "inputs": [ - { - 'datatypes': [ - 'thermo.raw', - 'mzML', - 'mzXML', - ], - 'label': 'MS spectra (input file)', - }, - { - 'datatypes': ['tabular'], - 'label': 'Experimental design template', - }, - ], - "button_link": "https://usegalaxy.org.au/root?tool_id=toolshed.g2.bx.psu.edu/repos/galaxyp/maxquant/maxquant/", - }, - { - "title_md": 'TMT Analyst', - "description_md": '

Analyze and Visualize Label-Free Proteomics output from MaxQuant.

', - "inputs": [ - { - 'datatypes': ['txt'], - 'label': 'Protein groups (MaxQuant output)', - }, - { - 'datatypes': ['txt'], - 'label': 'Experimental Design Matrix (MaxQuant output)', - } - ], - "button_link": "https://usegalaxy.org.au/root?tool_id=interactive_tool_tmtanalyst", - } -] - - -help = [ - { - "title_md": 'TMT-Analyst: Manual', - "description_md": """ -

- A detailed user manual for TMT-Analyst. -

""", - "button_link": "https://analyst-suites.org/apps/tmt-analyst/TMT-Analyst-manual.pdf", - "button_md": "Manual", - }, - { - "title_md": 'MaxQuant and MSstats for the analysis of TMT data', - "description_md": """ -

- Learn how to use MaxQuant and MSstats for the analysis of TMT labelled shotgun (DDA) data. -

""", - "button_link": "https://training.galaxyproject.org/training-material/topics/proteomics/tutorials/maxquant-msstats-tmt/tutorial.html", - "button_md": "Tutorial", - }, - galaxy_au_support_item, -] diff --git a/webapp/home/subdomains/proteomics/content/dia_standardised_tools.py b/webapp/home/subdomains/proteomics/content/dia_standardised_tools.py deleted file mode 100644 index 5b332bac..00000000 --- a/webapp/home/subdomains/proteomics/content/dia_standardised_tools.py +++ /dev/null @@ -1,44 +0,0 @@ -"""Content for data section - tools, workflows and help tabs.""" - -galaxy_au_support_item = { - "title_md": 'Galaxy Australia support', - "description_md": """

- Any user of Galaxy Australia can request support through an - online form. -

""", - "button_link": "/request/support", - "button_md": "Request support", -} - -tools = [ - # { # Accordion item schema: - # "title_md": '', - # "description_md": """""", - # "inputs": [ - # { - # 'datatypes': [''], - # 'label': '', - # }, - # ], - # "button_link": "", - # "button_md": "", - # "button_tip": "", - # "view_link": "", - # "view_md": "", - # "view_tip": "", - # }, - { - "title_md": 'MSstats', - "description_md": '

Statistical relative protein significance analysis in DDA, SRM and DIA Mass Spectrometry.

', - "inputs": [ - { - 'datatypes': ['tabular', 'csv'], - 'label': 'Either the 10-column MSstats format or the outputs of spectral processing tools such as MaxQuant, OpenSWATH.', - } - ], - "button_link": "https://usegalaxy.org.au/root?tool_id=toolshed.g2.bx.psu.edu/repos/galaxyp/msstats/msstats/", - } -] - - -help = [] diff --git a/webapp/home/subdomains/proteomics/sections.py b/webapp/home/subdomains/proteomics/sections.py deleted file mode 100644 index 4e48d346..00000000 --- a/webapp/home/subdomains/proteomics/sections.py +++ /dev/null @@ -1,78 +0,0 @@ -"""Content for landing page is modularize in Python code and imported from this -file. -""" - -from . import content - -tools_heading_md = """Some example tools are listed here: you can also search for more in the full tool panel to the left.""" - -sections = [ - { - "id": "database", - "title": "Database searching", - "tabs": [ - { - "id": "tools", - "title": "Tools", - "heading_md": tools_heading_md, - "content": content.database_searching.tools, - }, - { - "id": "help", - "title": "Help", - "content": content.database_searching.help, - }, - ], - }, - { - "id": "dda_standardised_tools", - "title": "Data dependent acquisition (DDA) standardised tools", - "tabs": [ - { - "id": "tools", - "title": "Tools", - "heading_md": tools_heading_md, - "content": content.dda_standardised_tools.tools, - }, - { - "id": "help", - "title": "Help", - "content": content.dda_standardised_tools.help, - }, - ], - }, - { - "id": "dia_standardised_tools", - "title": "Data independent acquisition (DIA) standardised tools", - "tabs": [ - { - "id": "tools", - "title": "Tools", - "heading_md": tools_heading_md, - "content": content.dia_standardised_tools.tools, - }, - { - "id": "help", - "title": "Help", - "content": content.dia_standardised_tools.help, - }, - ], - }, - { - "id": "dda_tmt", - "title": "DDA tandem mass tags (TMT)", - "tabs": [ - { - "id": "tools", - "title": "Tools", - "heading_md": tools_heading_md, - "content": content.dda_tmt.tools, - }, - { - "id": "help", - "title": "Help", - "content": content.dda_tmt.help, - }, - ], - } -] diff --git a/webapp/home/subdomains/python_to_yml.py b/webapp/home/subdomains/python_to_yml.py deleted file mode 100644 index 4d6fad81..00000000 --- a/webapp/home/subdomains/python_to_yml.py +++ /dev/null @@ -1,68 +0,0 @@ -"""Parse content encoded in Python as write to YAML file. - -genome.sections -genome.content.data -genome.content.assembly -genome.content.annotation - -""" - -import re -import yaml -import genome -from pathlib import Path - - -class LiteralUnicode(str): - pass - - -def literal_unicode_representer(dumper, data): - return dumper.represent_scalar(u'tag:yaml.org,2002:str', data, style='|') - - -def format_section(section): - """Find HTML items and strip whitespace from them.""" - new_section = section.copy() - for tab_ix, tab in enumerate(section['tabs']): - if isinstance(tab['content'], list): - for ix, item in enumerate(tab['content']): - for k, v in item.items(): - if 'html' in k: - new_section['tabs'][tab_ix]['content'][ix][k] = ( - strip_html_whitespace(v) - ) - else: - # content is in subsections - for subsection_ix, subsection in enumerate( - tab['content']['subsections'] - ): - for ix, item in enumerate(subsection['content']): - for k, v in item.items(): - if 'html' in k: - new_section[ - 'tabs'][tab_ix]['content']['subsections'][ - subsection_ix]['content'][ix][k] = ( - strip_html_whitespace(v) - ) - return new_section - - -def strip_html_whitespace(html): - """Remove whitespace from HTML string. - - Replace multiple spaces with single space. - """ - return re.sub( - r'\s+', ' ', - html.replace('\n', '').replace('\\', ''), - ).strip() - - -# yaml.add_representer(LiteralUnicode, literal_unicode_representer) - -for section in genome.sections: - section = format_section(section) - fname = Path(__file__).parent / f"{section['id']}.yml" - with open(fname, 'w') as f: - yaml.dump(section, f) diff --git a/webapp/home/templates/home/header-export.html b/webapp/home/templates/home/header-export.html deleted file mode 100644 index f4730bd4..00000000 --- a/webapp/home/templates/home/header-export.html +++ /dev/null @@ -1,66 +0,0 @@ - - - -{% load static %} - - - {% include 'home/snippets/head.html' %} - {% if title %}{{ title }}{% else %}Galaxy - data analysis for everyone{% endif %} - {% include 'home/snippets/imports.html' %} - {% include 'home/snippets/posthog.html' %} - - {% block head %} - {% endblock %} - - - - - - - {% block content %} - {% endblock %} - - {% block script %} - {% endblock %} - - - - diff --git a/webapp/home/templates/home/labs-deprecated.html b/webapp/home/templates/home/labs-deprecated.html new file mode 100644 index 00000000..289facfd --- /dev/null +++ b/webapp/home/templates/home/labs-deprecated.html @@ -0,0 +1,13 @@ +{% extends 'home/header.html' %} + +{% load static %} + + +{% block content %} +
+
+ Galaxy Labs are now deprecated in the Media Site, in favour of the new Labs + Engine, available at https://labs.usegalaxy.org.au/. +
+
+{% endblock %} diff --git a/webapp/home/templates/home/subdomains/components/accordion.html b/webapp/home/templates/home/subdomains/components/accordion.html deleted file mode 100644 index 77cb4adf..00000000 --- a/webapp/home/templates/home/subdomains/components/accordion.html +++ /dev/null @@ -1,78 +0,0 @@ -{% load markdown %} - -
- {% for item in content %} -
-

- -

-
-
-
-
- {{ item.description_md|markdown }} - {% if item.inputs %} - {% include 'home/subdomains/components/inputs.html' with inputs=item.inputs %} - {% endif %} -
- - -
-
-
-
- {% endfor %} -
diff --git a/webapp/home/templates/home/subdomains/components/contributors.html b/webapp/home/templates/home/subdomains/components/contributors.html deleted file mode 100644 index d644b82c..00000000 --- a/webapp/home/templates/home/subdomains/components/contributors.html +++ /dev/null @@ -1,29 +0,0 @@ -
-

Contributors

-
- {% for user in contributors %} - -
- {% if user.avatar_url %} - Github avatar for {{ user.login }} - {% else %} - - {% endif %} -
-
- {% endfor %} -
-
diff --git a/webapp/home/templates/home/subdomains/components/feedback-modal.html b/webapp/home/templates/home/subdomains/components/feedback-modal.html deleted file mode 100644 index 8e091806..00000000 --- a/webapp/home/templates/home/subdomains/components/feedback-modal.html +++ /dev/null @@ -1,135 +0,0 @@ - - -{% load static %} - - - - diff --git a/webapp/home/templates/home/subdomains/components/feedback.html b/webapp/home/templates/home/subdomains/components/feedback.html deleted file mode 100644 index 1e217f7b..00000000 --- a/webapp/home/templates/home/subdomains/components/feedback.html +++ /dev/null @@ -1,117 +0,0 @@ - - -{% load static %} - - diff --git a/webapp/home/templates/home/subdomains/components/genome-community-modal.html b/webapp/home/templates/home/subdomains/components/genome-community-modal.html deleted file mode 100644 index d1ef1148..00000000 --- a/webapp/home/templates/home/subdomains/components/genome-community-modal.html +++ /dev/null @@ -1,20 +0,0 @@ - diff --git a/webapp/home/templates/home/subdomains/components/gtn-modal.html b/webapp/home/templates/home/subdomains/components/gtn-modal.html deleted file mode 100644 index 037d2b92..00000000 --- a/webapp/home/templates/home/subdomains/components/gtn-modal.html +++ /dev/null @@ -1,33 +0,0 @@ - diff --git a/webapp/home/templates/home/subdomains/components/info-modal.html b/webapp/home/templates/home/subdomains/components/info-modal.html deleted file mode 100644 index 5a00369f..00000000 --- a/webapp/home/templates/home/subdomains/components/info-modal.html +++ /dev/null @@ -1,29 +0,0 @@ -{% load static %} - - diff --git a/webapp/home/templates/home/subdomains/components/inputs.html b/webapp/home/templates/home/subdomains/components/inputs.html deleted file mode 100644 index 6806687c..00000000 --- a/webapp/home/templates/home/subdomains/components/inputs.html +++ /dev/null @@ -1,16 +0,0 @@ -{% load markdown %} - -

Input data:

- - {% for input in inputs %} - - - - - {% endfor %} -
- {% for datatype in input.datatypes %} - {% if forloop.counter0 %}
{% endif %} - {{ datatype }} - {% endfor %} -
{{ input.label|inline_markdown }}
diff --git a/webapp/home/templates/home/subdomains/components/proteomics-community-modal.html b/webapp/home/templates/home/subdomains/components/proteomics-community-modal.html deleted file mode 100644 index a5c4682b..00000000 --- a/webapp/home/templates/home/subdomains/components/proteomics-community-modal.html +++ /dev/null @@ -1,19 +0,0 @@ - diff --git a/webapp/home/templates/home/subdomains/components/section.html b/webapp/home/templates/home/subdomains/components/section.html deleted file mode 100644 index ed138194..00000000 --- a/webapp/home/templates/home/subdomains/components/section.html +++ /dev/null @@ -1,54 +0,0 @@ -{% load markdown %} - -
-

{{ section.title }}

- -
- - -
- {% for tab in section.tabs %} -
-
- {% if tab.heading_md %} -

- {{ tab.heading_md|inline_markdown }} -

- {% endif %} - - {% if tab.content.subsections %} - {% for subsection in tab.content.subsections %} -

{{ subsection.title }}

- {% include 'home/subdomains/components/accordion.html' with content=subsection.content tab_id=tab.id accordion_id=subsection.id %} - {% endfor %} - {% else %} - {% include 'home/subdomains/components/accordion.html' with content=tab.content tab_id=tab.id %} - {% endif %} -
-
- {% endfor %} -
-
-
diff --git a/webapp/home/templates/home/subdomains/export-error.html b/webapp/home/templates/home/subdomains/export-error.html deleted file mode 100644 index a933170b..00000000 --- a/webapp/home/templates/home/subdomains/export-error.html +++ /dev/null @@ -1,109 +0,0 @@ -{% extends 'home/header.html' %} - -{% block head %} -{% endblock %} - - -{% block content %} -
- -

Galaxy Lab build error

- - {% if exc.title %} -

{{ exc.title }}

- {% endif %} - - {% if exc.url %} -

- Source URL: {{ exc.url }} -

- {% endif %} - -
- {% if not exc.errors %} -

Error message:

-
{{ exc.message }}
- {% else %} -

YAML schema violations:

- - {% for error in exc.errors %} - {% if forloop.counter0 %}
{% endif %} -
-

- Location: {{ error.location }} -

-
{{ error.message }}
- - {% if error.help %} -
-
-

- -

-
-
- - - - - - - {% for id, field in error.help.schema.items %} - - - - - - {% endfor %} -
Field IDPermitted typesRequired
{{ id }} - {% if field.type %} - {{ field.type }} - {% else %} - {% for type in field.anyOf %} - {% if forloop.counter0 %}
{% endif %} - {{ type.type }} - {% endfor %} - {% endif %} -
- {% if id in error.help.required_fields %} - Yes - {% endif %} -
-
-
-
-
- {% endif %} - -
-
-

- -

-
-
-
{{ error.input }}
-
-
-
-
-
- {% endfor %} - - {% endif %} -
- -
-{% endblock %} - - -{% block script %} -{% endblock %} - - -{% block onload %} -{% endblock %} diff --git a/webapp/home/templates/home/subdomains/exported.html b/webapp/home/templates/home/subdomains/exported.html deleted file mode 100644 index 1fa5bc2e..00000000 --- a/webapp/home/templates/home/subdomains/exported.html +++ /dev/null @@ -1,90 +0,0 @@ -{% extends extend_template %} -{% load markdown %} - -{% comment %} - This template renders a generic Galaxy Lab landing page based on externally - hosted content (e.g. sections, tools, workflows, etc). -{% endcomment %} - -{% load static %} - - -{% block head %} - - - - - - - - - -{% endblock %} - - -{% block content %} - -
- {% comment %} - - {% include 'home/subdomains/components/genome-community-modal.html' %} - {% include 'home/subdomains/components/info-modal.html' with subdomain='genome' site_name="Genome Lab" researchers="genomics" %} - {% include 'home/subdomains/components/feedback.html' with subdomain='genome' %} - {% endcomment %} - - {% include 'home/subdomains/components/gtn-modal.html' %} - - -
- {% if snippets.header_logo %} - - {% endif %} - {{ lab_name|upper }} -
- - {% if snippets.intro_md %} - {{ snippets.intro_md|safe }} - {% endif %} - - {% for section in sections %} - {% include 'home/subdomains/components/section.html' with section=section %} - {% endfor %} - - {% if snippets.conclusion_md %} - {{ snippets.conclusion_md|markdown }} - {% endif %} - - {% if contributors %} - {% include 'home/subdomains/components/contributors.html' %} - {% endif %} - -
- - -{% if feedback_email %} -{% include 'home/subdomains/components/feedback-modal.html' %} -{% endif %} - - -{% if snippets.footer_md %} -{{ snippets.footer_md|markdown }} -{% endif %} - -{% endblock %} - - -{% block script %} -{% endblock %} - - -{% block onload %} - // Ensure that links open in new tab - $('a').each( (i, item) => { - if (item.href && item.href.slice(0, 1) !== "/") { - item.target = '_blank'; - } - }); -{% endblock %} diff --git a/webapp/home/templatetags/markdown.py b/webapp/home/templatetags/markdown.py index 6ca784bd..bc9349ee 100644 --- a/webapp/home/templatetags/markdown.py +++ b/webapp/home/templatetags/markdown.py @@ -4,21 +4,11 @@ """ import markdown2 -import re -import requests from django import template -from django.http import Http404 from django.utils.safestring import mark_safe register = template.Library() -ICONS = { - 'run': 'play_arrow', - 'tutorial': 'school', - 'social': 'group', - 'help': 'help', -} - def render_markdown(md): if not md: @@ -33,17 +23,10 @@ def render_markdown(md): return html.strip(' \n') -def expand_tags(html): - if '{gtn modal}'): html = html[3:-4] - html = expand_tags(html) - return mark_safe(html) - - -@register.simple_tag() -def markdown_from_url(url): - """Fetch content from URL and render html from markdown string. - - This is intended to be used by exported Galaxy Labs, where a markdown url - comes from a remote source. - """ - res = requests.get(url) - if res.status_code >= 300: - raise Http404(f"URL {url} returned status code {res.status_code}") - body = res.text - - # Remove YAML header if present - liquid_md = ( - body.rsplit('---\n', 1)[1] - if '---\n' in body - else body - ) - # Remove any Liquid syntax {: ... } - md = re.sub(r'\{:.*\}', '', liquid_md) - - html = markdown2.markdown(md, extras={ - "tables": True, - "code-friendly": False, - "html-classes": { - 'table': 'table table-striped', - }, - }) - return mark_safe(html) - - -@register.filter() -def iconkey(key): - """Map icon keyword to material icons ID.""" - return ICONS.get(key, 'play_arrow') diff --git a/webapp/home/test/data/__init__.py b/webapp/home/test/data/__init__.py index d50302c7..74484bc4 100644 --- a/webapp/home/test/data/__init__.py +++ b/webapp/home/test/data/__init__.py @@ -1,2 +1 @@ from .notices import TEST_NOTICES -from .subsites import TEST_LABS, MOCK_REQUESTS, MOCK_LAB_BASE_URL diff --git a/webapp/home/test/data/notices.py b/webapp/home/test/data/notices.py index 6b90610d..30ae6eb8 100644 --- a/webapp/home/test/data/notices.py +++ b/webapp/home/test/data/notices.py @@ -1,7 +1,5 @@ """Data for test setup.""" -from .subsites import TEST_LABS - TEST_NOTICES = [ { "data": { @@ -12,9 +10,6 @@ "enabled": True, "is_published": True, }, - "relations": { - "subsites": [TEST_LABS[0]], - }, }, { "data": { @@ -24,14 +19,11 @@ "body": ( "# Test notice body 2\n\n" "Another arbitrary info notice." - " This one will also be displayed on a second subsite." + " This one used to be displayed on a second subsite." ), "enabled": True, "is_published": True, }, - "relations": { - "subsites": [TEST_LABS[0]], - }, }, { "data": { @@ -43,9 +35,6 @@ ), "enabled": True, }, - "relations": { - "subsites": [TEST_LABS[0]], - }, }, { "data": { @@ -59,8 +48,5 @@ "is_published": True, "static_display": True, }, - "relations": { - "subsites": [TEST_LABS[0]], - }, }, ] diff --git a/webapp/home/test/data/subsites.py b/webapp/home/test/data/subsites.py deleted file mode 100644 index 251d4d41..00000000 --- a/webapp/home/test/data/subsites.py +++ /dev/null @@ -1,64 +0,0 @@ -"""Data for test setup. - -TODO: this needs to be updated for new exported lab pages. -""" - -import os -import json -from pathlib import Path - -CONTENT_DIRS = ( - Path(__file__).parent.parent.parent - / 'static/home/labs/docs', - Path(__file__).parent.parent.parent - / 'static/home/labs/genome', - Path(__file__).parent.parent.parent - / 'static/home/labs/proteomics', -) -MOCK_LAB_BASE_URL = 'http://mockserver' - - -# Collect all the files from the lab's content dir and assign each -# file's content to a URL in the mock server. -MOCK_REQUESTS = {} -for content_dir in CONTENT_DIRS: - if not content_dir.exists(): - raise FileNotFoundError(f"Content directory not found: {content_dir}") - for root, dirs, files in os.walk(content_dir): - for file in files: - filepath = os.path.join(root, file) - with open(filepath) as f: - static_path = 'static/' + filepath.split('/static/', 1)[1] - url = f'{MOCK_LAB_BASE_URL}/{static_path}' - try: - MOCK_REQUESTS[url] = f.read() - except UnicodeDecodeError: - # Binary files not required for testing - pass - -MOCK_REQUESTS.update({ - 'https://api.github.com/users/neoformit': json.dumps({ - "login": "neoformit", - "avatar_url": - "https://img.freepik.com/premium-photo/penguin-snow_942736-63.jpg", - }), - 'https://api.github.com/users/AnnaSyme': json.dumps({ - "login": "AnnaSyme", - "avatar_url": - "https://img.freepik.com/premium-photo/penguin-snow_942736-63.jpg", - }), - 'https://api.github.com/users/supernord': json.dumps({ - "login": "supernord", - "avatar_url": - "https://img.freepik.com/premium-photo/penguin-snow_942736-63.jpg", - }), -}) - -TEST_LABS = [ - { - "name": "main", - }, - { - "name": "genome", - }, -] diff --git a/webapp/home/tests.py b/webapp/home/tests.py index 1143147d..b7435e18 100644 --- a/webapp/home/tests.py +++ b/webapp/home/tests.py @@ -1,17 +1,11 @@ import requests -import requests_mock from django.test import Client from django.core.files import File from django.core import mail from pathlib import Path -from .lab_export import ExportSubsiteContext -from .models import Notice, Subsite -from .test.data import ( - TEST_NOTICES, - MOCK_REQUESTS, - MOCK_LAB_BASE_URL, -) +from .models import Notice +from .test.data import TEST_NOTICES from events.models import Event, Supporter, Tag from events.test.data import TEST_EVENTS, TEST_SUPPORTERS, TEST_TAGS from news.models import News @@ -34,25 +28,6 @@ ] -# Galaxy Labs -TEST_LAB_NAME = 'Antarctica' -TEST_LAB_LAB_NAME = 'Galaxy Lab Pages'.upper() -TEST_LAB_NATIONALITY = 'Antarctican' -TEST_LAB_GALAXY_BASE_URL = 'https://galaxy-antarctica.org' -TEST_LAB_SECTION_TEXT = 'Example section' -TEST_LAB_ACCORDION_TEXT = ( - 'Report statistics from sequencing reads', - 'Assemble Nanopore long reads.', -) -TEST_LAB_CONTENT_URL = f'{MOCK_LAB_BASE_URL}/static/home/labs/docs/base.yml' -TEST_LAB_URL = f'/lab/export?content_root={TEST_LAB_CONTENT_URL}' - - -def test_lab_url_for(lab): - """Return the URL for the given lab name.""" - return TEST_LAB_URL.replace('docs', lab) - - class HomeTestCase(TestCase): def setUp(self) -> None: @@ -60,11 +35,7 @@ def setUp(self) -> None: super().setUp() self.client = Client() for notice in TEST_NOTICES: - subsites = notice['relations']['subsites'] notice = Notice.objects.create(**notice['data']) - for subsite in subsites: - subsite = Subsite.objects.get(name=subsite['name']) - notice.subsites.add(subsite) for tag in TEST_TAGS: Tag.objects.create(**tag) for supporter in TEST_SUPPORTERS: @@ -199,103 +170,6 @@ def test_utility_institution(self): assert not institution.is_institution_email('johndoe@gmail.edu.au') -class LabExportTestCase(TestCase): - """Test exported lab site building functionality.""" - - @requests_mock.Mocker() - def setUp(self, mock_request): - for url, text in MOCK_REQUESTS.items(): - mock_request.get(url, text=text, status_code=200) - self.context = ExportSubsiteContext(TEST_LAB_CONTENT_URL) - - @requests_mock.Mocker() - def test_exported_lab_docs(self, mock_request): - """Mock requests to localhost.""" - for url, text in MOCK_REQUESTS.items(): - mock_request.get(url, text=text, status_code=200) - response = self.client.get(TEST_LAB_URL) - self.assertEqual(response.status_code, 200) - self.assertContains(response, TEST_LAB_NAME) - self.assertContains(response, TEST_LAB_LAB_NAME) - self.assertContains(response, TEST_LAB_GALAXY_BASE_URL) - self.assertContains(response, TEST_LAB_SECTION_TEXT) - for text in TEST_LAB_ACCORDION_TEXT: - self.assertContains(response, text) - - @requests_mock.Mocker() - def test_genome_lab(self, mock_request): - """Mock requests to localhost.""" - for url, text in MOCK_REQUESTS.items(): - mock_request.get(url, text=text, status_code=200) - response = self.client.get(test_lab_url_for('genome')) - self.assertEqual(response.status_code, 200) - - @requests_mock.Mocker() - def test_proteomics_lab(self, mock_request): - """Mock requests to localhost.""" - for url, text in MOCK_REQUESTS.items(): - mock_request.get(url, text=text, status_code=200) - response = self.client.get(test_lab_url_for('proteomics')) - self.assertEqual(response.status_code, 200) - - def test_it_can_make_raw_url(self): - self.assertEqual( - self.context._make_raw('https://github.com/usegalaxy-au/' - 'galaxy-media-site/blob/dev/README.md'), - 'https://raw.githubusercontent.com/usegalaxy-au/' - 'galaxy-media-site/dev/README.md') - - def test_it_can_filter_sections_by_root_domain(self): - root_domain = 'antarctica.org' - self.context['root_domain'] = root_domain - self.context['sections'] = [ - {'id': 'section1'}, - { - 'id': 'section2', - 'exclude_from': [root_domain], - }, - { - 'id': 'section3', - 'content': [ - { - 'id': 'item1', - }, - { - 'id': 'item2', - 'exclude_from': [root_domain], - }, - { - 'id': 'item3', - 'exclude_from': ['other.domain.com'], - }, - { - 'id': 'item4', - 'exclude_from': [root_domain, 'other.domain.com'], - }, - ] - }, - ] - self.context._filter_sections() - self.assertEqual( - self.context['sections'], - [ - {'id': 'section1'}, - { - 'id': 'section3', - 'content': [ - { - 'id': 'item1', - }, - { - 'id': 'item3', - 'exclude_from': ['other.domain.com'], - }, - ] - }, - ], - ) - - class AccessRequestsTestCase(TestCase): def test_it_can_show_alphafold_access_form(self): diff --git a/webapp/home/views.py b/webapp/home/views.py index 5d94f673..e54f974c 100644 --- a/webapp/home/views.py +++ b/webapp/home/views.py @@ -6,21 +6,13 @@ from django.conf import settings from django.http import Http404 from django.shortcuts import get_object_or_404, render -from django.template import ( - RequestContext, - loader, - Template, - TemplateDoesNotExist, -) -from django.template.loader import get_template, render_to_string +from django.template import loader, TemplateDoesNotExist from events.models import Event from news.models import News from utils import aaf from utils import unsubscribe -from utils.exceptions import ResourceAccessError, SubsiteBuildError -from .lab_cache import LabCache -from .lab_export import ExportSubsiteContext +from utils.exceptions import ResourceAccessError from .models import CoverImage, Notice from .forms import ( ResourceRequestForm, @@ -29,7 +21,6 @@ ACCESS_FORMS, ) from . import pages_context -from . import subdomains logger = logging.getLogger('django') @@ -58,96 +49,17 @@ def index(request, landing=False): def landing(request, subdomain): """Show landing pages for *.usegalaxy.org.au subsites. - A support request form is passed to the template which can be submitted - with AJAX and processed by an API handler. + DEPRECATED: This view is deprecated in favour of labs.usegalaxy.org.au. """ - - template = f'home/subdomains/{subdomain}.html' - try: - get_template(template) - except TemplateDoesNotExist: - raise Http404 - - try: - sections = getattr(subdomains, subdomain).sections - except AttributeError as exc: - raise AttributeError( - f"{exc}\n\n" - f"No content files found for subdomain '{subdomain}'" - " at 'webapp/home/subdomains/{subdomain}/'") - - context = { - 'extend_template': 'home/header.html', - 'export': False, - 'name': subdomain, - 'site_name': settings.GALAXY_SITE_NAME, - 'nationality': 'Australian', - 'galaxy_base_url': settings.GALAXY_URL, - } - if request.GET.get('export'): - context = ExportSubsiteContext(request) - context.validate() - context.update({ - 'name': subdomain, - 'title': f'Galaxy - {subdomain.title()} Lab', - }) - if not context.get('sections'): - context['sections'] = sections - else: - context.update({ - 'sections': sections, - 'notices': Notice.get_notices_by_type(request, subsite=subdomain), - 'cover_image': CoverImage.get_random(request, subsite=subdomain), - 'form': SupportRequestForm(), - }) - - response = render(request, template, context) - response.content = response.content.replace( - b'{{ galaxy_base_url }}', - context['galaxy_base_url'].encode('utf-8')) - return response + return render(request, 'home/labs-deprecated.html') def export_lab(request): """Generic Galaxy Lab landing page build with externally hosted content. - These pages are built on the fly and can be requested by third parties on - an ad hoc basis, where the content would typically be hosted in a GitHub - repo with a YAML file root which is specified as a GET parameter. + DEPRECATED: This view is deprecated in favour of labs.usegalaxy.org.au. """ - - if response := LabCache.get(request): - return response - - template = 'home/subdomains/exported.html' - - try: - if request.GET.get('content_root'): - context = ExportSubsiteContext(request.GET.get('content_root')) - else: - context = ExportSubsiteContext( - settings.DEFAULT_EXPORTED_LAB_CONTENT_ROOT) - context['HOSTNAME'] = settings.HOSTNAME - context.validate() - except SubsiteBuildError as exc: - return render(request, 'home/subdomains/export-error.html', { - 'exc': exc, - }, status=400) - - # Multiple rounds of templating to render recursive template tags from - # remote data with embedded template tags - i = 0 - prev_template_str = '' - template_str = render_to_string(template, context, request) - while prev_template_str.strip('\n') != template_str.strip('\n') and i < 4: - prev_template_str = template_str - t = Template('{% load markdown %}\n\n' + template_str) - template_str = t.render(RequestContext(request, context)) - i += 1 - - response = LabCache.put(request, template_str) - - return response + return render(request, 'home/labs-deprecated.html') def notice(request, notice_id): diff --git a/webapp/utils/exceptions.py b/webapp/utils/exceptions.py index ece0c5ca..e0e7a8fb 100644 --- a/webapp/utils/exceptions.py +++ b/webapp/utils/exceptions.py @@ -1,80 +1,6 @@ """Custom exceptions.""" -import logging -from pprint import pformat -from home.lab_schema import ( - TabItem, - TabSubsection, - SectionTab, -) - -logger = logging.getLogger('django') - -LAB_SCHEMA_MODELS = { - 'TabItem': TabItem, - 'TabSubsection': TabSubsection, - 'SectionTab': SectionTab, -} - - -def _get_schema_help(loc): - """Resolve schema model from error location and render help data.""" - for item in loc[::]: - matched_keys = [k for k in LAB_SCHEMA_MODELS if k in str(item)] - if matched_keys: - return { - 'model_name': matched_keys[0], - 'schema': LAB_SCHEMA_MODELS[ - matched_keys[0] - ].model_json_schema()['properties'], - 'required_fields': LAB_SCHEMA_MODELS[ - matched_keys[0] - ].model_json_schema()['required'], - } - class ResourceAccessError(Exception): """Raised when a user attempts to access a resource they do not own.""" pass - - -class SubsiteBuildError(Exception): - """Raised when an error occurs during subsite build.""" - - def __init__(self, exc=None, url=None, section_id=None, source=''): - """Initialize the exception.""" - self.title = ( - f"Error parsing {source} content from file" - if source else None - ) - self.url = url - self.message = str(exc) - self.section_id = section_id - - msg = ( - 'Error processing exported lab content\n' - f'URL: {url}\n' - f'Errors:\n' - ) - - if hasattr(exc, 'errors'): - # It's a Pydantic error. Extract info for rendering individual - # messages - self.errors = [] - for error in exc.errors(): - err = { - 'message': error['msg'], - 'location': f"section[{self.section_id}] > " + ( - f'{error["loc"][0]} > ' - + ' > '.join(str(x) for x in error["loc"][1:]) - ), - 'input': pformat(error['input']), - 'help': _get_schema_help(error['loc']), - } - self.errors.append(err) - msg += pformat(self.errors) - else: - msg += str(exc) - - logger.warning(exc) - super().__init__(msg)