Skip to content

Releases: neurobagel/api

v0.2.1

16 Apr 20:20
Compare
Choose a tag to compare

🐛 Bug Fixes

  • [FIX] Address performance issues in SPARQL query #308 (@surchs)
  • [FIX] Disable timeout for request to graph #305 (@alyssadai)

Authors: 2

v0.2.0

11 Apr 19:37
Compare
Choose a tag to compare

🎉 This release contains work from a new contributor! 🎉

Thank you, Abdul Samad Siddiqui (@samadpls), for all your work!

Release Notes

[MNT] Release new data model (#300)

We have updated the Neurobagel data model to allow users to specify phenotypic information at the session level (neurobagel/planning#83). This release updates the node API so it can understand the new graph data.


💥 Breaking Changes

  • [REF] Make session count names clearer in query response #282 (@alyssadai)
  • [ENH] Support queries of session-level phenotypic attributes #264 (@alyssadai)

🚀 Enhancements

  • [ENH] Added root endpoint with welcome message and API docs link #286 (@samadpls)
  • [MNT] Release new data model #300 (@surchs)
  • Delete .github/workflows/add_pr2project.yml #244 (@surchs)

📝 Documentation

  • [DOC] Added warning about quoting in .env file for Docker commands #284 (@samadpls)
  • [DOC] Add sample default SPARQL query to repo #277 (@alyssadai)

🧪 Tests

🔩 Dependency Updates

  • Bumped fastapi, starlette, and typing_extensions #295 (@rmanaem)

Authors: 4

v0.1.1

07 Dec 20:00
70d92cb
Compare
Choose a tag to compare

Summary

This release introduces new API endpoints which return:

  • queryable Neurobagel variables/attributes
  • available instances of a specific Neurobagel attribute in the linked graph
  • all term IDs and associated human-readable labels of concepts from the vocabulary used for a given Neurobagel attribute

The release also introduces:

  • greater configurability of API and graph server parameters via environment variables
  • a helper shell script for automatically uploading graph-ready data (JSONLD/TTL) to an existing graph database
  • returning sizes of matching datasets in the API response for a subject query

What's Changed

New or improved features ✨

  • [ENH] Increase configurability of API/graph server parameters by @alyssadai in #146
  • [ENH] Add environment variable for allowed origins for CORS by @alyssadai in #151
  • [ENH] Add query tool to docker compose by @surchs in #154
  • [FEAT] Add script to upload data to graph by @alyssadai in #156
  • [ENH] Implemented endpoint for returning available termURLs by @rmanaem in #183
  • [ENH] Add Neurobagel vocab graph file by @alyssadai in #184
  • [ENH] Update aggregate response body by @alyssadai in #193
  • [ENH] Add endpoint returning queryable attributes + refine existing endpoint for attribute instances by @alyssadai in #194
  • [ENH] Update add_data_to_graph.sh to also upload TTL files by @alyssadai in #196
  • [ENH] Add endpoint that returns term ID-label mappings for vocab of a given attribute (nb:Assessment) by @alyssadai in #201
  • [ENH] Make data upload script backend responsive by @alyssadai in #205
  • [ENH] Return human-readable labels (if available) as well as term IDs from /attributes/{data_element_URI} by @alyssadai in #218
  • [ENH] Changed the favicon to neurobagel logo by @rmanaem in #222
  • [ENH] Return dataset sizes in query response by @alyssadai in #223
  • [ENH] Add support for endpoint that will return nb:Diagnosis options from SNOMED by @alyssadai in #228

Data model-related updates ⚙️

  • [MNT] Add NCIT namespace and update healthy control term by @alyssadai in #181
  • [FIX] Make session optional in SPARQL query template by @alyssadai in #229

Documentation updates 📜

  • [REF] Remove environment variable table from README by @alyssadai in #168
  • [DOC] Generalized environment variables' table by @rmanaem in #198
  • [DOC] Add link to official docs by @surchs in #219

Bug fixes 🛠️

  • [FIX] Fix typo in .template-env by @alyssadai in #149
  • [FIX] Remove yaml list key for API_QUERY_URL by @surchs in #164
  • [FIX] Properly expose NB_GRAPH_PORT_HOST to API container by @alyssadai in #167
  • [FIX] Removed the nested variable for API_QUERY_URL env var by @rmanaem in #177
  • [FIX] Properly expose NB_GRAPH_PORT to API container by @rmanaem in #191
  • [FIX] Remove --no-progress-meter by @surchs in #227
  • [FIX] Copy vocab/ directory into container filesystem in Dockerfile by @alyssadai in #231
  • [FIX] Filtered out null imaging modalities by @rmanaem in #233
  • [FIX] Remove query tool config by @surchs in #238

Other changes 🧹

  • [MNT] Added docker-pre-commit pre-commit hook by @rmanaem in #178
  • [REF] Refactor httpx.post call to Stardog and context creation by @alyssadai in #195
  • [MNT] Removed session_file_path from aggregate results by @rmanaem in #214
  • [REF] Organize related tests into modules and refactor setting of toy credentials by @alyssadai in #220
  • [REF] Refactor dataset size request into separate function by @alyssadai in #235
  • [CI] Renamed ci workflow to build_docker and image tag from latest to nightly by @rmanaem in #242
  • [CI] Add workflow for building image on release by @alyssadai in #243

New Contributors

Full Changelog: v0.1.0...v0.1.1

v0.1.0

27 Jun 20:47
86bea64
Compare
Choose a tag to compare

Initial release of the Neurobagel API, which interfaces with Stardog graph stores containing Neurobagel-harmonized data via SPARQL queries.

Overview

This release brings major additions to API functionality as well as automated testing setup including:

  • A query endpoint for GET operations that formulate a SPARQL query to the graph based on query parameters
  • Processing, validation, and tests of basic query parameters for:
    • Age
    • Sex
    • Diagnosis
    • Healthy control status
    • Assessment tool
    • Number of sessions
    • Image modality
  • A pydantic data model for responses to queries from the linked graph
  • Modes for returning dataset-aggregated vs subject-level query results
  • Environment variable configurability in terms of the graph the API communicates with and the query result mode
  • Dockerfile + docker-compose spec and usage instructions

What's new

  • Setting up bagelapi + adding GET route by @alyssadai in #17
  • Set up test workflow by @rmanaem in #24
  • Implement query parameters for age by @alyssadai in #28
  • Implemented image modality query parameter by @rmanaem in #39
  • Implement query parameters for diagnosis and is_control by @alyssadai in #41
  • Implemented minimum number of imaging sessions query parameter by @rmanaem in #46
  • Implement query parameter for assessment by @alyssadai in #57
  • Updated the API to return subject file paths and modalities and updated test workflow file by @rmanaem in #61
  • Change variable storing graph DB IP address to an environment variable by @alyssadai in #71
  • Implement error catching for httpx.ConnectTimeout when not connected to McGill network by @alyssadai in #77
  • Add Dockerfile and instructions for deploying API using official Docker image by @alyssadai in #79
  • Add docker-compose specification and instructions by @alyssadai in #90
  • Make graph database name configurable as an environment variable by @alyssadai in #93
  • Return (or not) subject-level attributes in query results based on env var by @alyssadai in #99
  • [ENH] Updated API to return new subject level results by @rmanaem in #125
  • [FIX] Return list instead of only first term for subject-level assessment by @alyssadai in #133

New Contributors

Full Changelog: https://github.com/neurobagel/api/commits/v0.1.0