The Data Curator App is an R Shiny app that serves as the frontend to the schematic Python package. It allows data contributors to easily annotate, validate and submit their metadata.
Follow the steps below to make sure the Data Curator App is fully setup to work with the schematic:
-
Clone this repo (front-end) with one single branch (i.e., shiny-server-main):
git clone --single-branch --branch shiny-server-main https://github.com/Sage-Bionetworks/data_curator.git
-
Create and modify the configuration file:
cp example_config.yaml config.yaml chmod 400 config.yaml
CLIENT_ID
andCLIENT_SECRET
: how to obtain OAuth CredentialAPP_URL
: the redirection url to your appCONDA_NAME
: conda environment name
-
Create and activate the conda environment:
export CONDA_NAME=$(tail -n1 config.yaml | cut -f2 -d':' | tr -d \''"') conda env create -f environment.yml -n $CONDA_NAME conda activate $CONDA_NAME
-
Install required R pacakges dependencies:
R -e "renv::restore()"
-
Clone the schematic (backend) as a folder
schematic
inside thedata_curator
folder:git clone --single-branch --branch develop https://github.com/Sage-Bionetworks/schematic.git
-
Install the latest release of the
schematic
viapip
:python -m pip install schematicpy
For development and test with the latest update from
schematic
, install theschematic
viapoetry
:cd schematic poetry build pip install dist/schematicpy-*-py3-none-any.whl
-
Set up the
schematic
configuration. To do so, follow the instructions on theschematic
repository README
Use the app configuration file www/config.json
to adapt this app to your DCC.
manifest schemas
: defines the list of schemas displayed under the "Choose a Metadata Template Type:" dropdown in the application.display_name
: The display name for the dropdown. (e.g. scRNA-seq Level 1)schema_name
: The name of the manifest in the JSON-LD schema (e.g. ScRNA-seqLevel1)type
: The type of manifest. As currently configured inapp.R
, will only display manifests of type assay.
main_fileview
: The Synapse ID of a fileview that is scoped to all files, folders, & projects in your community. (e.g. syn20446927)community
: the abbreviated name of the community or project. (e.g. HTAN)
This utilizes a Synapse Authentication (OAuth) client (code motivated by ShinyOAuthExample and app.R. Each application is required to have its own OAuth client as these clients cannot be shared between one another. View instructions here to learn how to request a client. Once you obtain the CLIENT_ID
and CLIENT_SECRET
make sure to add it to the configuration yaml file.
Main contributors and developers: