aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bh20sequploader/bh20seq-schema.yml45
-rw-r--r--bh20sequploader/rdf-mappings.ttl0
-rw-r--r--example/metadata.yaml5
-rw-r--r--example/minimal_example.yaml6
-rw-r--r--paper/paper.bib16
-rw-r--r--paper/paper.md174
6 files changed, 206 insertions, 40 deletions
diff --git a/bh20sequploader/bh20seq-schema.yml b/bh20sequploader/bh20seq-schema.yml
index 8a22db1..81a7f22 100644
--- a/bh20sequploader/bh20seq-schema.yml
+++ b/bh20sequploader/bh20seq-schema.yml
@@ -13,41 +13,52 @@ $graph:
type: record
fields:
host_species:
+ ## autocomplete # NCBITAXON
+ doc: Host species as defined in NCBITaxon (e.g. http://purl.obolibrary.org/obo/NCBITaxon_9606 for Homo sapiens)
type: string
jsonldPredicate:
_id: http://www.ebi.ac.uk/efo/EFO_0000532
host_id:
+ doc: Identifer for the host. If you submit multiple samples from the same host, use the same host_id for those samples
type: string
jsonldPredicate:
_id: http://semanticscience.org/resource/SIO_000115
host_common_name:
+ doc: Text label for the host species (e.g. homo sapiens)
type: string?
jsonldPredicate:
_id: http://purl.obolibrary.org/obo/NOMEN_0000037
host_sex:
+ doc: Sex of the host as define in NCIT, IRI expected (http://purl.obolibrary.org/obo/C20197 (Male), http://purl.obolibrary.org/obo/NCIT_C27993 (Female) or unkown (http://purl.obolibrary.org/obo/NCIT_C17998))
type: string
jsonldPredicate:
_id: http://purl.obolibrary.org/obo/PATO_0000047
host_age:
+ doc: Age of the host as number (e.g. 50)
type: int?
jsonldPredicate:
_id: http://purl.obolibrary.org/obo/PATO_0000011
host_age_unit:
+ doc: Unit of host age.... this field is unstable as of now (might be removed)
type: string?
jsonldPredicate:
_id: http://purl.obolibrary.org/obo/UO_0000036
host_health_status:
+ doc: A condition or state at a particular time
type: string?
jsonldPredicate: http://purl.obolibrary.org/obo/NCIT_C25688
host_treatment:
+ doc: Process in which the act is intended to modify or alter
type: string?
jsonldPredicate:
_id: http://www.ebi.ac.uk/efo/EFO_0000727
host_vaccination:
+ doc: Field is unstable
type: string?
jsonldPredicate:
_id: http://purl.obolibrary.org/obo/VO_0000001
additional_host_information:
+ doc: Field for additional host information
type: string?
jsonldPredicate:
_id: http://semanticscience.org/resource/SIO_001167
@@ -56,38 +67,47 @@ $graph:
type: record
fields:
collector_name:
+ doc: Name of the person that took the sample
type: string
jsonldPredicate:
_id: http://purl.obolibrary.org/obo/OBI_0001895
collecting_institution:
+ doc: Institute that was responsible of sampeling
type: string
jsonldPredicate:
_id: http://semanticscience.org/resource/SIO_001167
specimen_source:
+ doc: A specimen that derives from an anatomical part or substance arising from an organism, e.g. tissue, organ
type: string?
jsonldPredicate:
_id: http://purl.obolibrary.org/obo/OBI_0001479
collection_date:
+ doc: Date when the sample was taken
type: string?
jsonldPredicate:
_id: http://ncicb.nci.nih.gov/xml/owl/EVS/Thesaurus.owl#C25164
collection_location:
+ doc: Geographical location where the sample was collected as Gazetteer (https://www.ebi.ac.uk/ols/ontologies/gaz) reference, e.g. http://purl.obolibrary.org/obo/GAZ_00002845 (China)
type: string?
jsonldPredicate:
_id: http://purl.obolibrary.org/obo/GAZ_00000448
sample_storage_conditions:
+ doc: Information aboout storage of a specified type, e.g. frozen specimen, paraffin, fresh ....
type: string?
jsonldPredicate:
_id: http://purl.obolibrary.org/obo/OBI_0001472
additional_collection_information:
+ doc: Add additional comment about the circumstances that a sample was taken
type: string?
jsonldPredicate:
_id: http://semanticscience.org/resource/SIO_001167
sample_id:
+ doc: Id of the sample as defined by the submitter
type: string
jsonldPredicate:
_id: http://semanticscience.org/resource/SIO_000115
source_database_accession:
+ doc: If data is deposit at a public resource (e.g. Genbank, ENA) enter the Accession Id here
type: string?
jsonldPredicate:
_id: http://edamontology.org/data_2091
@@ -96,10 +116,12 @@ $graph:
type: record
fields:
virus_species:
+ doc: The name of a taxon from the NCBI taxonomy database
type: string?
jsonldPredicate:
_id: http://edamontology.org/data_1875
virus_strain:
+ doc: Name of the virus strain
type: string?
jsonldPredicate:
_id: http://semanticscience.org/resource/SIO_010055
@@ -108,14 +130,17 @@ $graph:
type: record
fields:
sample_sequencing_technology:
+ doc: Technology that was used to sequence this sample (e.g Sanger, Nanopor MiniION)
type: string
jsonldPredicate:
_id: http://purl.obolibrary.org/obo/OBI_0600047
sequence_assembly_method:
+ doc: Protocol which provides instructions on the alignment of sequencing reads to reference genome
type: string?
jsonldPredicate:
_id: http://www.ebi.ac.uk/efo/EFO_0002699
sequencing_coverage:
+ doc: Sequence coverage defined as the average number of reads representing a given nucleotide (e.g. 100x)
type: string?
jsonldPredicate:
_id: http://purl.obolibrary.org/obo/FLU_0000848
@@ -124,22 +149,22 @@ $graph:
type: record
fields:
submitter_name:
+ doc: Name of the submitter
type: string
jsonldPredicate:
_id: http://semanticscience.org/resource/SIO_000116
- submitter_date:
- type: string
- jsonldPredicate:
- _id: http://purl.obolibrary.org/obo/NCIT_C94162
submitter_address:
+ doc: Address of the submitter
type: string?
jsonldPredicate:
_id: http://semanticscience.org/resource/SIO_000172
originating_lab:
+ doc: Name of the laboratory that took the sample
type: string
jsonldPredicate:
_id: http://purl.obolibrary.org/obo/NCIT_C37984
lab_address:
+ doc: Address of the laboratory where the sample was taken
type: string?
jsonldPredicate:
_id: http://purl.obolibrary.org/obo/OBI_0600047
@@ -152,10 +177,17 @@ $graph:
jsonldPredicate:
_id: http://www.ebi.ac.uk/efo/EFO_0001741
authors:
+ doc: Name of the author(s)
type: string?
jsonldPredicate:
_id: http://purl.obolibrary.org/obo/NCIT_C42781
- submitter_id:
+ publication:
+ doc: Reference to publication of this sample (e.g. DOI, pubmed ID, ...)
+ type: string?
+ jsonldPredicate:
+ _id: http://purl.obolibrary.org/obo/NCIT_C19026
+ submitter_orchid:
+ doc: ORCHID of the submitter
type: string?
jsonldPredicate:
_id: http://semanticscience.org/resource/SIO_000115
@@ -171,7 +203,8 @@ $graph:
submitter: submitterSchema
id:
doc: The subject (eg the fasta/fastq file) that the metadata describes
- type: string?
+ type: string
jsonldPredicate:
_id: "@id"
_type: "@id"
+ noLinkCheck: true
diff --git a/bh20sequploader/rdf-mappings.ttl b/bh20sequploader/rdf-mappings.ttl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/bh20sequploader/rdf-mappings.ttl
diff --git a/example/metadata.yaml b/example/metadata.yaml
index c780921..d9e8e92 100644
--- a/example/metadata.yaml
+++ b/example/metadata.yaml
@@ -1,3 +1,5 @@
+id: placeholder
+
host:
host_id: XX1
host_species: string
@@ -36,5 +38,4 @@ submitter:
provider_sample_id: string
submitter_sample_id: string
authors: testAuthor
- submitter_id: X12
- submitter_date: Subdate
+ submitter_orchid: X12
diff --git a/example/minimal_example.yaml b/example/minimal_example.yaml
index f312ab7..160d1d4 100644
--- a/example/minimal_example.yaml
+++ b/example/minimal_example.yaml
@@ -1,8 +1,9 @@
-submission: publicSequenceResource
+id: placeholder
host:
host_id: XX
host_species: string
+ host_sex: string
sample:
sample_id: XXX
@@ -14,5 +15,4 @@ technology:
submitter:
submitter_name: tester
- originating_lab: testLab
- submitter_date: Subdate \ No newline at end of file
+ originating_lab: testLab \ No newline at end of file
diff --git a/paper/paper.bib b/paper/paper.bib
index e69de29..bcb9c0b 100644
--- a/paper/paper.bib
+++ b/paper/paper.bib
@@ -0,0 +1,16 @@
+@book{CWL,
+title = "Common Workflow Language, v1.0",
+abstract = "The Common Workflow Language (CWL) is an informal, multi-vendor working group consisting of various organizations and individuals that have an interest in portability of data analysis workflows. Our goal is to create specifications that enable data scientists to describe analysis tools and workflows that are powerful, easy to use, portable, and support reproducibility.CWL builds on technologies such as JSON-LD and Avro for data modeling and Docker for portable runtime environments. CWL is designed to express workflows for data-intensive science, such as Bioinformatics, Medical Imaging, Chemistry, Physics, and Astronomy.This is v1.0 of the CWL tool and workflow specification, released on 2016-07-08",
+keywords = "cwl, workflow, specification",
+author = "Brad Chapman and John Chilton and Michael Heuer and Andrey Kartashov and Dan Leehr and Herv{\'e} M{\'e}nager and Maya Nedeljkovich and Matt Scales and Stian Soiland-Reyes and Luka Stojanovic",
+editor = "Peter Amstutz and Crusoe, {Michael R.} and Nebojša Tijanić",
+note = "Specification, product of the Common Workflow Language working group. http://www.commonwl.org/v1.0/",
+year = "2016",
+month = "7",
+day = "8",
+doi = "10.6084/m9.figshare.3115156.v2",
+language = "English",
+publisher = "figshare",
+address = "United States",
+
+} \ No newline at end of file
diff --git a/paper/paper.md b/paper/paper.md
index caa9903..7bd18c8 100644
--- a/paper/paper.md
+++ b/paper/paper.md
@@ -1,8 +1,9 @@
---
-title: 'Public Sequence Resource for COVID-19'
+title: 'CPSR: COVID-19 Public Sequence Resource'
+title_short: 'CPSR: COVID-19 Public Sequence Resource'
tags:
- Sequencing
- - COVID
+ - COVID-19
authors:
- name: Pjotr Prins
orcid: 0000-0002-8021-9162
@@ -19,22 +20,42 @@ authors:
- name: Erik Garrison
orcid: 0000
affiliation: 5
- - name: Michael Crusoe
- orcid: 0000
- affiliation: 6
+ - name: Michael R. Crusoe
+ orcid: 0000-0002-2961-9670
+ affiliation: 6, 2
- name: Rutger Vos
orcid: 0000
affiliation: 7
- - Michael Heuer
- orcid: 0000
+ - name: Michael Heuer
+ orcid: 0000-0002-9052-6000
affiliation: 8
-
+ - name: Adam M Novak
+ orcid: 0000-0001-5828-047X
+ affiliation: 5
+ - name: Alex Kanitz
+ orcid: 0000
+ affiliation: 10
+ - name: Jerven Bolleman
+ orcid: 0000
+ affiliation: 11
+ - name: Joep de Ligt
+ orcid: 0000
+ affiliation: 12
affiliations:
- name: Department of Genetics, Genomics and Informatics, The University of Tennessee Health Science Center, Memphis, TN, USA.
index: 1
- name: Curii, Boston, USA
index: 2
+ - name: UC Santa Cruz Genomics Institute, University of California, Santa Cruz, CA 95064, USA.
+ index: 5
+ - name: Department of Computer Science, Faculty of Sciences, Vrije Universiteit Amsterdam, The Netherlands
+ index: 6
+ - name: RISE Lab, University of California Berkeley, Berkeley, CA, USA.
+ index: 8
date: 11 April 2020
+event: COVID2020
+group: Public Sequence Uploader
+authors_short: Pjotr Prins & Peter Amstutz \emph{et al.}
bibliography: paper.bib
---
@@ -49,13 +70,48 @@ pasting above link (or yours) with
https://github.com/biohackrxiv/bhxiv-gen-pdf
+Note that author order will change!
+
-->
# Introduction
-As part of the one week COVID-19 Biohackathion 2020, we formed a
-working group on creating a public sequence resource for Corona virus.
-
+As part of the COVID-19 Biohackathion 2020 we formed a working
+group to create a COVID-19 Public Sequence Resource (CPSR) for
+Corona virus sequences. The general idea was to create a
+repository that has a low barrier to entry for uploading sequence
+data using best practices. I.e., data published with a creative
+commons 4.0 (CC-4.0) license with metadata using state-of-the art
+standards and, perhaps most importantly, providing standardized
+workflows that get triggered on upload, so that results are
+immediately available in standardized data formats.
+
+Existing data repositories for viral data include GISAID, EBI ENA
+and NCBI. These repositories allow for free sharing of data, but
+do not add value in terms of running immediate
+computations. Also, GISAID, at this point, has the most complete
+collection of genetic sequence data of influenza viruses and
+related clinical and epidemiological data through its
+database. But, due to a restricted license, data submitted to
+GISAID can not be used for online web services and on-the-fly
+computation. In addition GISAID registration which can take weeks
+and, painfully, forces users to download sequences one at a time
+to do any type of analysis. In our opinion this does not fit a
+pandemic scenario where fast turnaround times are key and data
+analysis has to be agile.
+
+We managed to create a useful sequence uploader utility within
+one week by leveraging existing technologies, such as the Arvados
+Cloud platform [@Arvados], the Common Workflow Langauge (CWL)
+[@CWL], Docker images built with Debian packages, and the many
+free and open source software packages that are available for
+bioinformatics.
+
+The source code for the CLI uploader and web uploader can be
+found [here](https://github.com/arvados/bh20-seq-resource)
+(FIXME: we'll have a full page). The CWL workflow definitions can
+be found [here](https://github.com/hpobio-lab/viral-analysis) and
+on CWL hub (FIXME).
<!--
@@ -73,38 +129,98 @@ working group on creating a public sequence resource for Corona virus.
## Cloud computing backend
-Peter, Pjotr, MichaelC
+The development of CPSR was accelerated by using the Arvados
+Cloud platform. Arvados is an open source platform for managing,
+processing, and sharing genomic and other large scientific and
+biomedical data. The Arvados instance was deployed on Amazon AWS
+for testing and development and a project was created that
+allows for uploading data.
-## A command-line sequence uploader
+## Sequence uploader
-Peter, Pjotr
+We wrote a Python-based uploader that authenticates with Arvados
+using a token. Data gets validated for being a FASTA sequence,
+FASTQ raw data and/or metadata in the form of JSON LD that gets
+validated against a schema. The uploader can be used
+from a command line or using a simple web interface.
-## Metadata uploader
+## Creating a Pangenome
-With Thomas
+### FASTA to GFA workflow
-## FASTA to GFA workflow
+The first workflow (1) we implemented was a FASTA to Graphical
+Fragment Assembly (GFA) Format conversion. When someone uploads a
+sequence in FASTA format it gets combined with all known viral
+sequences in our storage to generate a pangenome or variation
+graph (VG). The full pangenome is made available as a
+downloadable GFA file together with a visualisation (Figure 1).
-Michael Heuer
+### FASTQ to GFA workflow
-## BAM to GFA workflow
+In the next step we introduced a workflow (2) that takes raw
+sequence data in fastq format and converts that into FASTA.
+This FASTA file, in turn, gets fed to workflow (1) to generate
+the pangenome.
-Tazro & Erik
+## Creating linked data workflow
-## Phylogeny app
+We created a workflow (3) that takes GFA and turns that into
+RDF. Together with the metadata at upload time a single RDF
+resource is compiled that can be linked against external
+resources such as Uniprot and Wikidata. The generated RDF file
+can be hosted in any triple store and queried using SPARQL.
-With Rutger
+## Creating a Phylogeny workflow
-## RDF app
+WIP
-Jerven?
-
-## EBI app
-
-?
+## Other workflows?
# Discussion
-Future work...
+CPSR is a data repository with computational pipelines that will
+persist during pandemics. Unlike other data repositories for
+Sars-COV-2 we created a repository that immediately computes the
+pangenome of all available data and presents that in useful
+formats for futher analysis, including visualisations, GFA and
+RDF. Code and data are available and written using best practises
+and state-of-the-art standards. CPSR can be deployed by anyone,
+anywhere.
+
+CPSR is designed to abide by FAIR data principles (expand...)
+
+CPSR is primed with viral data coming from repositories that have
+no sharing restrictions. The metadata includes relevant
+attribution to uploaders. Some institutes have already committed
+to uploading their data to CPSR first so as to warrant sharing
+for computation.
+
+CPSR is currently running on an Arvados cluster in the cloud. To
+ascertain the service remains running we will source money from
+project during pandemics. The workflows are written in CWL which
+means they can be deployed on any infrastructure that runs
+CWL. One of the advantages of the CC-4.0 license is that we make
+available all uploaded sequence and meta data, as well as
+results, online to anyone. So the data can be mirrored by any
+party. This guarantees the data will live on.
+
+<!-- Future work... -->
+
+We aim to add more workflows to CPSR, for example to prepare
+sequence data for submitting in other public repositories, such
+as EBI ENA and GISAID. This will allow researchers to share data
+in multiple systems without pain, circumventing current sharing
+restrictions.
+
+# Acknowledgements
+
+We thank the COVID-19 BioHackathon 2020 and ELIXIR for creating a
+unique event that triggered many collaborations. We thank Curii
+Corporation for their financial support for creating and running
+Arvados instances. We thank Amazon AWS for their financial
+support to run COVID-19 workflows. We also want to thank the
+other working groups in the BioHackathon who generously
+contributed onthologies, workflows and software.
+
# References