-
Notifications
You must be signed in to change notification settings - Fork 2
Home
A web-based platform to manage biodiversity genomics metadata
This project aims to provide a user-friendly web-platform to show, coordinate and manage biodiversity genomic metadata.
This project is built with the following stack:
To launch this application locally you must have docker-compose installed!
Follow this instructions to install it: install docker-compose
This app is composed by 4 docker containers that are built and launched via a docker-compose file.
The Front-end container compile the Vue3 SPA with Vite and serve the SPA via NGINX, it also contains a user authenticated Content Management System, where authenticated users can perform CRUD operations agains the database. IMPORTANT: right now it works only on Firefox Browser.
The Back-end container consists in a uWSGI/Flask web server that communicates with the NGINX proxy present in the front-end container. This container is the one that manages the client requests from the front-end container, query the database and return the JSON response to the front-end container.
The database container is a MongoDB image
The cronjob container is optional as it is necessary only to run scheduled jobs.
The scheduled jobs can perform the following tasks:
- Download the metadata already published in INSDC, either under a bioproject accession umbrella or via specific attributes (ex. biosamples).
- Parse, map and integrate data from any other source.
This project consumes different externals APIs to retrieve taxonomic and genomic informations about species, therefore changes in these APIs might break the species creation. Please open an issue if this is the case.
Here is a list of the APIs consumed:
The admin area allows to manage all the data present in the database:
-
Reads, Biosamples and Assemblies published in INSDC can be manually imported via form by their respective accession number. These data cannot be further modified, from the CMS, but can be deleted.
-
Organisms(taxons) can be imported by their NCBI taxonomic identifier, or will be automatically imported when other related metadata (Samples, reads or assemblies) are created. Data such as urls of images, vernacular names, key-value metadata and related publications can be added via form.THIS
-
Samples metadata can be imported locally via a spreadsheet file (.xlsx), through a form it will be necessary to declare the column names for the taxon identifier, the scientific name and the unique identifier of the sample. This feature can be useful to manage sample metadata before submission to INSDC. Column names containing "ORCID" will not be imported
-
Annotations can be added from an imported assembly (link to download the annotation + metadata)
-
GoaT reports compliant with THIS format, can be uploaded.
The app provides a genome browser (JBrowse2: https://jbrowse.org/jb2/ ) to visualize genomic annotations related to an imported chromosome-level assembly.
Annotation (the gff must be sorted): genes.gff.gz genes.gff.gz.tbi
To generate the files above follow this steps:
gt gff3 -sortlines -tidy -retainids genes.gff3 > genes.sorted.gff3
bgzip genes.gff
tabix genes.gff.gz
Files can be uploaded or if stored in other servers (supporting range requests:206), for instance AWS, the link to their location can be provided instead.
In case the chromosome/sequence name contained in the annotation differ to the chromosome/sequence of the genome assembly a tab-separated text file can be provided, more info HERE For more informations visit: https://jbrowse.org/jb2/docs/
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Distributed under the MIT License. See LICENSE.txt
for more information.
Emilio Righi - emilio.righi@crg.eu