diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 00000000..e69de29b diff --git a/404.html b/404.html new file mode 100644 index 00000000..c0a3e823 --- /dev/null +++ b/404.html @@ -0,0 +1,1583 @@ + + + + +
+ + + + + + + + + + + + + + +Neurobagel's annotation tool takes BIDS-style phenotypic data and corresponding data description files and gives users the ability to annotate their data using the Neurobagel data model for preparation to inject that modeled data into Neurobagel's graph database for federated querying.
+The annotation tool is a Vue application, developed in JavaScript using a variety of tools including Nuxt, Cypress, and BootstrapVue.
+The demo version of the annotation tool is hosted at https://annotate.neurobagel.org/.
+# First, clone the repository at https://github.com/neurobagel/annotation_tool
+
+# Install dependencies
+$ npm install
+
+# Serve with hot reload at localhost:3000
+$ npm run dev
+
+# Build for production and launch server
+$ npm run build
+$ npm run start
+
+# Generate static project
+$ npm run generate
+
To deploy the static build on GH pages, run
+npm run generate
+npm run deploy
+
See the Nuxt documentation for more details.
+use node v16.x LTS!
++The Annotation Tool is built with the Nuxt framework and currently depends on Nuxt2. +Nuxt2 does not support node versions beyond the v16 LTS (see e.g. this Github issue). +If you want to run the tool locally, make sure you are using node v16.x. +A good way to manage different node versions is to use the node version manager tool.
++
+There are two means of moving forward to the next step in the annotation tool's workflow: (1) the navbar at the top right of the screen which features the page names, and (2) the next page buttons on the bottom right of each page.
+ +However, special criteria for each page need to be be met in order to move forward. Instructions are offered above the next page button while those conditions are still as of yet unmet. (These are denoted below under Next page criteria.) After having done so, the next page's name in the navbar will turn from gray to green, and the next page button will turn from gray to green as well.
+The Home page is where you can upload data tables and dictionaries either for a brand new annotation or to continue a previous annotation session.
+ +participants.tsv
.)While the annotation tool does not transform data with annotations, it will link the columns found in the uploaded tsv file to categories Neurobagel's metadata schema. Which columns the tool links is up to you on the next page: the categorization page.
+Next page criteria: A participants.tsv
file must be uploaded to proceed to categorization of that dataset's columns
The Categorization page is where you link the columns in your data table to the categories found in Neurobagel's metadata schema. Current categories include 'Subject ID', 'Age', 'Sex' and 'Diagnosis'. Aside from the 'Subject ID' which is a special case, categories represent different data types, 'Sex' and 'Diagnosis' are categorical while 'Age' is continuous.
+ +participants.tsv
in the table on the right. (Its description from your participants.json
- if uploaded - will be seen here as well.) This will paint the column's table row with the same color as the category you have selected. This column is now linked to that category and you will be able to annotate its values on the annotation page.Next page criteria: A column must be annotated as holding a 'Subject ID', and at least one other column must be linked with one of the other categories
+The Annotation page is where you can annotate the values in your uploaded participants.tsv
. The Neurobagel categories which you have linked columns to on the previous Categorization page are listed as tabs on the left.
'N/A'
, empty string, etc.)All values for columns categorized as Age
can be annotated here with a set of continuous value transformations. Clicking on the dropdown will allow you to select a transformation. Current transformations available include bounded
, euro
, float
, int
, and iso8601
. The raw values from the column are shown and when a transformation type is selected a preview of how that transformation would alter each raw value is shown.
All values for columns categorized as either Sex
or Diagnosis
can be annotated here with labels that come from Neurobagel and the controlled vocabularies it utilizes to help form the Neurobagel metadata model. Clicking on the drop down on each raw value row will allow you to select an appropriate Neurobagel label for this value.
Any continuous or categorical value can be marked as 'missing' via the adjacent Mark as missing
button. This will remove the value from the annotatable values and place it in the Missing values
section on the page. This can be undone for any value by clicking the Not Missing
button in this section of the page.
Data table columns can also be unlinked (e.g. un-categorized) on the Annotation page in this section of the page labeled Review the annotated columns
. This will stop the column from being annotated and have any annotations made for its values removed. The change is also reflected on the previous Categorization page.
Next page criteria: At least one annotation must be made from any of the categorized columns
+Click the download annotated data button to download what we refer to an 'annotated' data dictionary that is a Neurobagel-enhanced BIDS-style data dictionary. This file will include any entries in the original data dictionary that you uploaded on the home page.
+ + + + + + + + + + + + + + + + +Neurobagel has two flavours of APIs that can be deployed: node API and federation API.
+Neurobagel's query tool provides a GUI for querying one or more Neurobagel graphs by sending requests to a Neurobagel federation API instance. +However, HTTP requests can also be sent directly to any publicly accessible Neurobagel API (node or federation).
+In addition to supporting independent local/institutional deployments (i.e., instances) of the Neurobagel API, which can interface with a local or restricted graph, +Neurobagel also hosts its own public instances of a node API and a federation API.
+https://api.neurobagel.org/ is a public, Neurobagel-hosted node API that interfaces with Neurobagel's own running graph instance containing harmonized datasets from the OpenNeuro platform.
+Cohort queries of a specific Neurobagel graph database can be submitted via direct requests to the corresponding node API using the /query
endpoint, e.g. https://api.neurobagel.org/query
.
+Specific query parameters are defined using key-value pairs in the URL following /query
.
Example: "I want to query for only female participants in the OpenNeuro graph."
+The URL for such a query would be https://api.neurobagel.org/query?sex=snomed:248152002
, where snomed:248152002
is a controlled term from the SNOMED CT vocabulary corresponding to female sex.
# To query for female participants in the graph
+
+curl -X 'GET' \
+ 'https://api.neurobagel.org/query?sex=snomed:248152002' \
+ -H 'accept: application/json'
+
+# or
+curl -L https://api.neurobagel.org/query?sex=snomed:248152002
+
Avoid trailing slashes in API endpoint URLs
+Neurobagel APIs have strict requirements regarding trailing slashes.
+When sending curl
requests to an instance of a Neurobagel API, ensure that you do not include trailing slashes in endpoint URLs.
+For example, requests to https://api.neurobagel.org/query
will work, but https://api.neurobagel.org/query/
will not.
Interactive documentation for a Neurobagel API (provided by Swagger UI) is available at the /docs
endpoint (e.g., https://api.neurobagel.org/docs) and can also be used to run queries against the graph.
Note
+For convenience, navigating to https://api.neurobagel.org/ in the browser will automatically redirect you to the docs.
+To send a request to the API from the docs interface, expand the query
endpoint tab with the icon to view the parameters that can be set,
+and click "Try it out" and then "Execute" to execute a query.
Note
+Due to limitations of Swagger UI in displaying very large HTTP response bodies,
+queries with very few parameters sent using the interactive docs UI may be very slow or time out.
+If this is the case, try using a curl
request or the query tool instead.