diff --git a/CHANGELOG.md b/CHANGELOG.md index 4612940bc..23e896033 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -34,7 +34,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Fixed * Fixed `POST`queries for `g_variant` (w/ examples) - * Removed 'json' references inside the yaml version (PR [#43] (https://github.com/ga4gh-beacon/beacon-v2/pull/43)) + * Removed 'json' references inside the yaml version (PR [#43](https://github.com/ga4gh-beacon/beacon-v2/pull/43)) + * added missing `type: object` to `ResultsetInstance` (PR [#82](https://github.com/ga4gh-beacon/beacon-v2/pull/82)) ### Deprecated diff --git a/README.md b/README.md index e54f57934..48e72a7cd 100644 --- a/README.md +++ b/README.md @@ -28,7 +28,29 @@ As with other schema projects, here we separate between the schema source files There is a set of tools in [`/bin`](./bin/) to facilitate the conversion. ATM, after editing `...yaml` schema files somewhere in the `/src` tree, a (local) run of `bin/yamlerRunner.sh` - which re-generates the `....json` files in the `/json` tree) has to be performed before pushing changes. -### Changes +### Changelog + +## 2.1.0 + +*Released, July, 19, 2024* + +* Relocated TypedQuantity required to proper level of the schema for complexValue +* Added end and start entities for ageRange and iso8601duration for age +* Filtering terms scopes changed from string to array of strings + +## 2.0.1 + +*Released July, 16, 2024* + +* Replaced ENSGLOSSARY for SO ontology family in documentation examples +* Moved CURIE to beaconCommonComponents +* Created filtering terms entity +* Removed validation directories +* Several fixes to entity types, typos and other non-breaking changes + +## 2.0.0 + +*Released June, 21, 2022* * change notes with respect to the repository & documentation are now in [docs.genomebeacons.org](https://docs.genomebeacons.org/changes-todo/) * NOTE: on 2022-06-20 the previous development repositories have been archived: diff --git a/docs/variant-queries.md b/docs/variant-queries.md index 698ccc016..9ffc7e393 100644 --- a/docs/variant-queries.md +++ b/docs/variant-queries.md @@ -374,18 +374,19 @@ values to underlying genomic variations had not been precisely defined. This table is maintained in parallel with the [hCNV community documentation](https://cnvar.org/resources/CNV-annotation-standards/#cnv-term-use-comparison-in-computational-fileschema-formats). -| [EFO](https://www.ebi.ac.uk/efo/EFO_0030063) | Beacon | [VCF](https://samtools.github.io/hts-specs/) | SO | GA4GH [VRS](https://vrs.ga4gh.org/en/latest/terms_and_model.html#relativecopynumber) ⇒
[VRS proposal](https://github.com/ga4gh/vrs/issues/404)[^1] | Notes | +| [EFO](http://www.ebi.ac.uk/efo/EFO_0030063) | Beacon | [VCF](https://samtools.github.io/hts-specs/) | SO | GA4GH [VRS](https://vrs.ga4gh.org/en/latest/terms_and_model.html#copynumberchange)[^1] | Notes | | ------------------------------------------- | ------------------------------------------------------------------------------ | -------------------------------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | ----- | -| [`EFO:0030070`](https://www.ebi.ac.uk/efo/EFO_0030070) copy number gain | `DUP`[^2] or
[`EFO:0030070`](https://www.ebi.ac.uk/efo/EFO_0030070) | `DUP`
`SVCLAIM=D`[^3] | [`SO:0001742`](https://www.sequenceontology.org/browser/current_release/term/SO:0001742) copy_number_gain | [`low-level gain`](https://vrs.ga4gh.org/en/latest/terms_and_model.html#relativecopynumber) (implicit) ⇒ [`EFO:0030070`](https://www.ebi.ac.uk/efo/EFO_0030070) copy number gain | a sequence alteration whereby the copy number of a given genomic region is greater than the reference sequence | -| [`EFO:0030071`](https://www.ebi.ac.uk/efo/EFO_0030071) low-level copy number gain| `DUP`[^2] or
[`EFO:0030071`](https://www.ebi.ac.uk/efo/EFO_0030071) | `DUP`
`SVCLAIM=D`[^3] | [`SO:0001742`](https://www.sequenceontology.org/browser/current_release/term/SO:0001742) copy_number_gain | [`low-level gain`](https://vrs.ga4gh.org/en/latest/terms_and_model.html#relativecopynumber) ⇒ [`EFO:0030071`](https://www.ebi.ac.uk/efo/EFO_0030071) low-level copy number gain | | -| [`EFO:0030072`](https://www.ebi.ac.uk/efo/EFO_0030072) high-level copy number gain | `DUP`[^2] or
[`EFO:0030072`](https://www.ebi.ac.uk/efo/EFO_0030072) | `DUP`
`SVCLAIM=D`[^3] | [`SO:0001742`](https://www.sequenceontology.org/browser/current_release/term/SO:0001742) copy_number_gain | [`high-level gain`](https://vrs.ga4gh.org/en/latest/terms_and_model.html#relativecopynumber) ⇒ [`EFO:0030072`](https://www.ebi.ac.uk/efo/EFO_0030072) high-level copy number gain | commonly but not consistently used for >=5 copies on a bi-allelic genome region | -| [`EFO:0030073`](https://www.ebi.ac.uk/efo/EFO_0030073) focal genome amplification | `DUP`[^2] or
[`EFO:0030073`](https://www.ebi.ac.uk/efo/EFO_0030073) | `DUP`
`SVCLAIM=D`[^3] | [`SO:0001742`](https://www.sequenceontology.org/browser/current_release/term/SO:0001742) copy_number_gain | [`high-level gain`](https://vrs.ga4gh.org/en/latest/terms_and_model.html#relativecopynumber) ⇒ [`EFO:0030073`](https://www.ebi.ac.uk/efo/EFO_0030073) focal genome amplification | commonly but not consistently used for >=5 copies on a bi-allelic genome region, of limited size (operationally max. 1-5Mb) | -| [`EFO:0030067`](https://www.ebi.ac.uk/efo/EFO_0030067) copy number loss | `DEL`[^2] or
[`EFO:0030067`](https://www.ebi.ac.uk/efo/EFO_0030067) | `DEL`
`SVCLAIM=D`[^3] | [`SO:0001743`](https://www.sequenceontology.org/browser/current_release/term/SO:0001743) copy_number_loss | [`partial loss`](https://vrs.ga4gh.org/en/latest/terms_and_model.html#relativecopynumber) (implicit) ⇒ [`EFO:0030067`](https://www.ebi.ac.uk/efo/EFO_0030067) copy number loss | a sequence alteration whereby the copy number of a given genomic region is smaller than the reference sequence | -| [`EFO:0030068`](https://www.ebi.ac.uk/efo/EFO_0030068) low-level copy number loss | `DEL`[^2] or
[`EFO:0030068`](https://www.ebi.ac.uk/efo/EFO_0030068) | `DEL`
`SVCLAIM=D`[^3] | [`SO:0001743`](https://www.sequenceontology.org/browser/current_release/term/SO:0001743) copy_number_loss | [`partial loss`](https://vrs.ga4gh.org/en/latest/terms_and_model.html#relativecopynumber) ⇒ [`EFO:0030068`](https://www.ebi.ac.uk/efo/EFO_0030068) low-level copy number loss | | -| [`EFO:0020073`](https://www.ebi.ac.uk/efo/EFO_0020073) high-level copy number loss | `DEL`[^2] or
[`EFO:0020073`](https://github.com/EBISPOT/efo/issues/1941) | `DEL`
`SVCLAIM=D`[^3] | [`SO:0001743`](https://www.sequenceontology.org/browser/current_release/term/SO:0001743) copy_number_loss | [`partial loss`](https://vrs.ga4gh.org/en/latest/terms_and_model.html#relativecopynumber) ⇒ [`EFO:0020073`](https://github.com/EBISPOT/efo/issues/1941) high-level copy number loss | a loss of several copies; also used in cases where a complete genomic deletion cannot be asserted | -| [`EFO:0030069`](https://www.ebi.ac.uk/efo/EFO_0030069) complete genomic deletion | `DEL`[^2] or
[`EFO:0030069`](https://www.ebi.ac.uk/efo/EFO_0030069) | `DEL`
`SVCLAIM=D`[^3] | [`SO:0001743`](https://www.sequenceontology.org/browser/current_release/term/SO:0001743) copy_number_loss | [`complete loss`](https://vrs.ga4gh.org/en/latest/terms_and_model.html#relativecopynumber) ⇒ [`EFO:0030069`](https://www.ebi.ac.uk/efo/EFO_0030069) complete genomic deletion | complete genomic deletion (e.g. homozygous deletion on a bi-allelic genome region) | - -##### Last updated 2023-03-22 by @mbaudis (EFO:0020073) +| [`EFO:0030070`](http://www.ebi.ac.uk/efo/EFO_0030070) copy number gain | `DUP`[^2] or
[`EFO:0030070`](http://www.ebi.ac.uk/efo/EFO_0030070) | `DUP`
`SVCLAIM=D`[^3] | [`SO:0001742`](http://www.sequenceontology.org/browser/current_release/term/SO:0001742) copy_number_gain | [`EFO:0030070`](http://www.ebi.ac.uk/efo/EFO_0030070) gain | a sequence alteration whereby the copy number of a given genomic region is greater than the reference sequence | +| [`EFO:0030071`](http://www.ebi.ac.uk/efo/EFO_0030071) low-level copy number gain| `DUP`[^2] or
[`EFO:0030071`](http://www.ebi.ac.uk/efo/EFO_0030071) | `DUP`
`SVCLAIM=D`[^3] | [`SO:0001742`](http://www.sequenceontology.org/browser/current_release/term/SO:0001742) copy_number_gain | [`EFO:0030071`](http://www.ebi.ac.uk/efo/EFO_0030071) low-level gain | | +| [`EFO:0030072`](http://www.ebi.ac.uk/efo/EFO_0030072) high-level copy number gain | `DUP`[^2] or
[`EFO:0030072`](http://www.ebi.ac.uk/efo/EFO_0030072) | `DUP`
`SVCLAIM=D`[^3] | [`SO:0001742`](http://www.sequenceontology.org/browser/current_release/term/SO:0001742) copy_number_gain | [`EFO:0030072`](http://www.ebi.ac.uk/efo/EFO_0030072) high-level gain | commonly but not consistently used for >=5 copies on a bi-allelic genome region | +| [`EFO:0030073`](http://www.ebi.ac.uk/efo/EFO_0030073) focal genome amplification | `DUP`[^2] or
[`EFO:0030073`](http://www.ebi.ac.uk/efo/EFO_0030073) | `DUP`
`SVCLAIM=D`[^3] | [`SO:0001742`](http://www.sequenceontology.org/browser/current_release/term/SO:0001742) copy_number_gain | [`EFO:0030072`](http://www.ebi.ac.uk/efo/EFO_0030072) high-level gain[^4] | commonly but not consistently used for >=5 copies on a bi-allelic genome region, of limited size (operationally max. 1-5Mb) | +| [`EFO:0030067`](http://www.ebi.ac.uk/efo/EFO_0030067) copy number loss | `DEL`[^2] or
[`EFO:0030067`](http://www.ebi.ac.uk/efo/EFO_0030067) | `DEL`
`SVCLAIM=D`[^3] | [`SO:0001743`](http://www.sequenceontology.org/browser/current_release/term/SO:0001743) copy_number_loss | [`EFO:0030067`](http://www.ebi.ac.uk/efo/EFO_0030067) loss | a sequence alteration whereby the copy number of a given genomic region is smaller than the reference sequence | +| [`EFO:0030068`](http://www.ebi.ac.uk/efo/EFO_0030068) low-level copy number loss | `DEL`[^2] or
[`EFO:0030068`](http://www.ebi.ac.uk/efo/EFO_0030068) | `DEL`
`SVCLAIM=D`[^3] | [`SO:0001743`](http://www.sequenceontology.org/browser/current_release/term/SO:0001743) copy_number_loss | [`EFO:0030068`](http://www.ebi.ac.uk/efo/EFO_0030068) low-level loss | | +| [`EFO:0020073`](http://www.ebi.ac.uk/efo/EFO_0020073) high-level copy number loss | `DEL`[^2] or
[`EFO:0020073`](https://github.com/EBISPOT/efo/issues/1941) | `DEL`
`SVCLAIM=D`[^3] | [`SO:0001743`](http://www.sequenceontology.org/browser/current_release/term/SO:0001743) copy_number_loss | [`EFO:0020073`](https://github.com/EBISPOT/efo/issues/1941) high-level loss | a loss of several copies; also used in cases where a complete genomic deletion cannot be asserted | +| [`EFO:0030069`](http://www.ebi.ac.uk/efo/EFO_0030069) complete genomic deletion | `DEL`[^2] or
[`EFO:0030069`](http://www.ebi.ac.uk/efo/EFO_0030069) | `DEL`
`SVCLAIM=D`[^3] | [`SO:0001743`](http://www.sequenceontology.org/browser/current_release/term/SO:0001743) copy_number_loss | [`EFO:0030069`](http://www.ebi.ac.uk/efo/EFO_0030069) complete genomic loss | complete genomic deletion (e.g. homozygous deletion on a bi-allelic genome region) | + + +##### Last updated 2023-07-13 to align with 2023-03-22 hCNV documentation (VRS 1.3 adjustment) by @mbaudis ##### updated 2023-03-20 by @mbaudis (VRS proposal) ## Query Parameter Change Log @@ -417,17 +418,17 @@ recommended for query forms and `alternateBases` -[^1]: The VRS annotations refer to the status at v1.2 (2022). The GA4GH VRS team -is currently (Spring 2023) preparing an updated specification which will introduce -the new class `CopyNumberChange` ([discussion...](https://github.com/ga4gh/vrs/issues/404#issuecomment-1472599849)) with the use of the EFO terms (including a new term -for `high level deletion (EFO:0020073)` in the April 2023 EFO release). +[^1]: The VRS annotations refer to the status from v1.3 (2022) when +the new class `CopyNumberChange` ([discussion...](https://github.com/ga4gh/vrs/issues/404#issuecomment-1472599849)) +with the use of the EFO terms. [^2]: While the use of VCF derived (`DUP`, `DEL`) values had been introduced with beacon v1, usage of these terms has always been a _recommendation_ rather than an integral part of the API. We now encourage the support of more specific terms (particularly EFO) -by Beacon developers. As example, the Progentix Beacon API [uses EFO terms](https://progenetix.org/search/) but +by Beacon developers. As example, the Progentix Beacon API [uses EFO terms](http://progenetix.org/search/) but provides an internal term expansion for legacy `DUP`, `DEL` support. [^3]: VCFv4.4 introduces an `SVCLAIM` field to disambiguate between _in situ_ events (such as tandem duplications; known _adjacency_/ _break junction_: `SVCLAIM=J`) and events where e.g. only the change in _abundance_ / _read depth_ (`SVCLAIM=D`) has been determined. Both **J** and **D** flags can be combined. +[^4]: VRS did not adopt the "amplification" term due to possible inconsistencies diff --git a/framework/json/common/beaconCommonComponents.json b/framework/json/common/beaconCommonComponents.json index 728c35267..a6b922664 100644 --- a/framework/json/common/beaconCommonComponents.json +++ b/framework/json/common/beaconCommonComponents.json @@ -76,11 +76,10 @@ }, "Granularity": { "default": "boolean", - "description": "Level of detail of the response:\n* `boolean`: returns true/false' responses * `count`: adds the total number of positive results found * `aggregated`: returns summary, aggregated or distribution like responses * `record`: returns details for every row. In cases where a Beacon prefers to return records with fewer than allattributes, different strategies have to be considered w/o adding them to the current design, e.g.:\n - keeping non-mandatory attributes empty\n - Beacon to provide a minimal record definition", + "description": "Level of detail of the response:\n* `boolean`: returns true/false' responses * `count`: adds the total number of positive results found * `record`: returns details for every row. In cases where a Beacon prefers to return records with fewer than allattributes, different strategies have to be considered w/o adding them to the current design, e.g.:\n - keeping non-mandatory attributes empty\n - Beacon to provide a minimal record definition", "enum": [ "boolean", "count", - "aggregated", "record" ], "type": "string" @@ -111,15 +110,19 @@ }, "HandoverType": { "$ref": "./ontologyTerm.json", - "description": "Handover type, as an Ontology_term object with CURIE syntax for the `id` value. Use `CUSTOM` for the `id` when no ontology is available.", + "description": "Handover type, as an Ontology_term object with CURIE syntax for the `id` value. Use \"CUSTOM:123455\" CURIE-style `id` when no ontology is available.", "examples": [ { - "id": "EFO:0004157", - "label": "BAM format" + "id": "EDAM:2572", + "label": "BAM" }, { - "id": "CUSTOM", - "label": "download genomic variants in .pgxseg file format" + "id": "EDAM:3016", + "label": "VCF" + }, + { + "id": "CUSTOM:pgxseg", + "label": "genomic variants in .pgxseg file format" } ] }, diff --git a/framework/json/common/validation/beaconCommonComponents.json b/framework/json/common/validation/beaconCommonComponents.json deleted file mode 100644 index 99bb55603..000000000 --- a/framework/json/common/validation/beaconCommonComponents.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "$schema": "https://json-schema.org/draft/2020-12/schema", - "additionalProperties": false, - "properties": { - "$schema": { - "description": "Added here to allow the example to comply with the 'additionalProperties:true' restriction.", - "type": "string" - }, - "apiVersion": { - "$ref": "../beaconCommonComponents.json#/definitions/ApiVersion" - }, - "beaconError": { - "$ref": "../beaconCommonComponents.json#/definitions/BeaconError" - }, - "beaconId": { - "$ref": "../beaconCommonComponents.json#/definitions/BeaconId" - }, - "exists": { - "$ref": "../beaconCommonComponents.json#/definitions/Exists" - }, - "filters": { - "$ref": "../beaconCommonComponents.json#/definitions/Filters" - }, - "handover": { - "$ref": "../beaconCommonComponents.json#/definitions/Handover" - }, - "handoverType": { - "$ref": "../beaconCommonComponents.json#/definitions/HandoverType" - }, - "includeResultsetResponses": { - "$ref": "../beaconCommonComponents.json#/definitions/IncludeResultsetResponses" - }, - "info": { - "$ref": "../beaconCommonComponents.json#/definitions/Info" - }, - "listOfHandovers": { - "$ref": "../beaconCommonComponents.json#/definitions/ListOfHandovers" - }, - "listOfSchemas": { - "$ref": "../beaconCommonComponents.json#/definitions/ListOfSchemas" - }, - "numTotalResults": { - "$ref": "../beaconCommonComponents.json#/definitions/NumTotalResults" - }, - "pagination": { - "$ref": "../beaconCommonComponents.json#/definitions/Pagination" - }, - "schemasPerEntity": { - "$ref": "../beaconCommonComponents.json#/definitions/SchemasPerEntity" - } - }, - "title": "Schema for validating Beacon Common Components examples", - "type": "object" -} \ No newline at end of file diff --git a/framework/json/configuration/beaconMapSchema.json b/framework/json/configuration/beaconMapSchema.json index b5335e28b..47fec6701 100644 --- a/framework/json/configuration/beaconMapSchema.json +++ b/framework/json/configuration/beaconMapSchema.json @@ -18,7 +18,7 @@ }, "filteringTermsUrl": { "description": "Optional. Returns the list of filtering terms that could be applied to this entry type. It is added here for convenience of the Beacon clients, so they don't need to parse the OpenAPI endpoints definition to get that endpoint. Also, in very simple Beacons, that endpoint could be the one of the few implemented, together with \u00b4rootUrl` and \u00b4singleEntryUrl`, in which case the whole map of endpoints is found in the current Map.", - "format": "uri", + "format": "uri-template", "type": "string" }, "openAPIEndpointsDefinition": { @@ -32,7 +32,7 @@ }, "singleEntryUrl": { "description": "Optional, but recommended. Returns only one instance of this entry, identified by an `id`. It is added here for convenience of the Beacon clients, so they don't need to parse the OpenAPI endpoints definition to get that base endpoint. Also, in very simple Beacons, that endpoint could be the only one implemented, together with \u00b4rootUrl`, in which case the whole map of endpoints is found in the current Map.", - "format": "uri", + "format": "uri-template", "type": "string" } }, @@ -50,7 +50,7 @@ }, "url": { "description": "Endpoint URL", - "format": "uri", + "format": "uri-template", "type": "string" } }, diff --git a/framework/json/configuration/entryTypeDefinition.json b/framework/json/configuration/entryTypeDefinition.json index 434bebcf6..27d425770 100644 --- a/framework/json/configuration/entryTypeDefinition.json +++ b/framework/json/configuration/entryTypeDefinition.json @@ -1,14 +1,13 @@ { - "$comment": "TO DO: The tagged parts should reference to `common/ontologizedElement.json`. But that configuration fails to validate. Further investigation is required, but should not affect the resulting schema.", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": true, - "description": "Definition of an element or entry type including the Beacon v2 required and suggested attributes. This schema purpose is to describe each type of entities included in a Beacon, hence Beacon clients could have some metadata about such entities.\n\nThe `id` attribute is the key that should be used in other parts of the Beacon Model to allow Beacon clients to identify the different parts (e.g. endpoints, filteringTerms, request parameters, etc.) that fully describe an entry type.", + "description": "Definition of an element or scope of the element, to describe each type of entry type included in a beacon. The `id` attribute is the key that should be used in other parts of the data model to allow Beacon clients to identify the different parts (e.g. endpoints, filtering terms, request parameters, etc.) that are relvant for an entry type.", "properties": { "$schema": { "$ref": "../common/beaconCommonComponents.json#/definitions/$schema" }, "aCollectionOf": { - "description": "If the entry type is a collection of other entry types, (e.g. a Dataset is a collection of Records), then this attribute must list the entry types that could be included. One collection type could be defined as included more than one entry type (e.g. a Dataset could include Individuals or Genomic Variants), in such cases the entries are alternative, meaning that a given instance of this entry type could be of only one of the types (e.g. a given Dataset contains Individuals, while another Dataset could contain Genomic Variants, but not both at once).", + "description": "If the entry type is a collection of other entities, (e.g. a Dataset is a collection of Records), then this attribute must list the entities that can be included. One _collection_ can include more than one entry type (e.g. a Dataset in teh Beacon cdefault model could include Individuals, Biosamples, GenomicVariations, Analyses amnd Runs). In such cases in each individual response (e.g. `resultSetsResponse` of collections of type \"dataset\") will contain entries of a single entry type (e.g. biosamples) even if a dataset may contain records of multiple types.", "includedConcepts": { "$ref": "../common/basicElement.json", "type": "array" @@ -30,13 +29,17 @@ "type": "string" }, "filteringTerms": { - "$comment": "TO DO: Double-check the proper way of referencing a path or relative path. 'format: uri' is throwing validation errors for relative file paths", - "description": "Reference to the file with the list of filtering terms that could be used to filter this concept in this instance of Beacon. The referenced file could be used to populate the `filteringTerms`endpoint. Having it independently should allow for updating the list of accepted filtering terms when it is necessary.", + "$comment": "TO DO: Evaluate switch this to `url` or a more specific way for allowing URLs and local file paths (is this necessary?).", + "description": "Reference to the list of filtering terms that could be used to filter records of this entry type in this beacon.", "type": "string" }, "id": { - "$comments": "++++++ THIS IS THE START OF THE ontologized element ++++++", - "description": "A (unique) identifier of the element.", + "description": "A unique identifier of the element.", + "examples": [ + "biosample", + "individual", + "dataset" + ], "type": "string" }, "name": { @@ -47,8 +50,17 @@ "$ref": "../common/beaconCommonComponents.json#/definitions/NonFilteredQueriesAllowed" }, "ontologyTermForThisType": { - "$comments": "++++++ THIS IS THE END OF THE ontologized element ++++++", - "$ref": "../common/ontologyTerm.json" + "$ref": "../common/ontologyTerm.json", + "examples": [ + { + "id": "EFO:0000542", + "label": "individual" + }, + { + "id": "OBI:0000747", + "label": "material sample" + } + ] }, "partOfSpecification": { "description": "This is label to group together entry types that are part of the same specification.", @@ -59,7 +71,6 @@ "required": [ "id", "name", - "ontologyTermForThisType", "partOfSpecification", "defaultSchema" ], diff --git a/framework/json/requests/validation/filteringTerms.json b/framework/json/requests/validation/filteringTerms.json deleted file mode 100644 index e4d51516e..000000000 --- a/framework/json/requests/validation/filteringTerms.json +++ /dev/null @@ -1,109 +0,0 @@ -{ - "$schema": "https://json-schema.org/draft/2020-12/schema", - "additionalProperties": false, - "definitions": { - "AlphanumericFilter": { - "description": "Filter results based on operators and values applied to alphanumeric fields.", - "properties": { - "id": { - "description": "Field identfier to be queried.", - "example": "age", - "type": "string" - }, - "operator": { - "default": "=", - "description": "Defines how the value relates to the field `id`.", - "enum": [ - "=", - "<", - ">", - "!", - ">=", - "<=" - ], - "example": ">", - "type": "string" - }, - "value": { - "description": "Alphanumeric search term to be used within the query which can contain wildcard characters (%) to denote any number of unknown characters. Values can be assocatied with units if applicable.", - "example": "P70Y", - "type": "string" - } - }, - "required": [ - "id", - "operator", - "value" - ], - "type": "object" - }, - "CustomFilter": { - "description": "Filter results to include records that contain a custom term defined by this Beacon.", - "properties": { - "id": { - "description": "Custom filter terms should contain a unique identifier.", - "example": "demographic.ethnicity:asian", - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - "OntologyFilter": { - "description": "Filter results to include records that contain a specific ontology term.", - "properties": { - "id": { - "description": "Term ID to be queried, using CURIE syntax where possible.", - "example": "HP:0002664", - "type": "string" - }, - "includeDescendantTerms": { - "default": true, - "description": "Define if the Beacon should implement the ontology hierarchy, thus query the descendant terms of `id`.", - "type": "boolean" - }, - "similarity": { - "default": "exact", - "description": "Allow the Beacon to return results which do not match the filter exactly, but do match to a certain degree of similarity. The Beacon defines the semantic similarity model implemented and how to apply the thresholds of 'high', 'medium' and 'low' similarity.", - "enum": [ - "exact", - "high", - "medium", - "low" - ], - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - } - }, - "description": "Rules for selecting records based upon the field values those records contain. Filters are seperated by the logical AND operator.", - "properties": { - "$schema": { - "description": "Added here to allow the example to comply with the 'additionalProperties:true' restriction.", - "type": "string" - }, - "filters": { - "items": { - "anyOf": [ - { - "$ref": "#/definitions/OntologyFilter" - }, - { - "$ref": "#/definitions/AlphanumericFilter" - }, - { - "$ref": "#/definitions/CustomFilter" - } - ] - }, - "type": "array" - } - }, - "title": "Filtering Term Element" -} \ No newline at end of file diff --git a/framework/json/responses/sections/beaconResultsets.json b/framework/json/responses/sections/beaconResultsets.json index 6ddeb3a88..a54e43030 100644 --- a/framework/json/responses/sections/beaconResultsets.json +++ b/framework/json/responses/sections/beaconResultsets.json @@ -44,7 +44,8 @@ "exists", "resultsCount", "results" - ] + ], + "type": "object" } }, "description": "Sets of results to be returned as query response.", diff --git a/framework/src/common/beaconCommonComponents.yaml b/framework/src/common/beaconCommonComponents.yaml index c0044ed5c..f8f479fa5 100644 --- a/framework/src/common/beaconCommonComponents.yaml +++ b/framework/src/common/beaconCommonComponents.yaml @@ -137,7 +137,6 @@ definitions: * `boolean`: returns true/false' responses * `count`: adds the total number of positive results found - * `aggregated`: returns summary, aggregated or distribution like responses * `record`: returns details for every row. In cases where a Beacon prefers to return records with fewer than allattributes, different strategies have to be considered w/o adding them to the current design, e.g.: @@ -147,7 +146,6 @@ definitions: enum: - boolean - count - - aggregated - record default: boolean TestMode: @@ -265,11 +263,13 @@ definitions: example: https://api.mygenomeservice.org/Handover/9dcc48d7-fc88-11e8-9110-b0c592dbf8c0/ HandoverType: description: >- - Handover type, as an Ontology_term object with CURIE syntax for the `id` value. - Use `CUSTOM` for the `id` when no ontology is available. + Handover type, as an Ontology_term object with CURIE syntax for the `id` + value. Use "CUSTOM:123455" CURIE-style `id` when no ontology is available. $ref: ./ontologyTerm.yaml examples: - - id: EFO:0004157 - label: BAM format - - id: CUSTOM - label: download genomic variants in .pgxseg file format + - id: EDAM:2572 + label: BAM + - id: EDAM:3016 + label: VCF + - id: CUSTOM:pgxseg + label: genomic variants in .pgxseg file format diff --git a/framework/src/common/validation/beaconCommonComponents.yaml b/framework/src/common/validation/beaconCommonComponents.yaml deleted file mode 100644 index ac0b6d9f3..000000000 --- a/framework/src/common/validation/beaconCommonComponents.yaml +++ /dev/null @@ -1,37 +0,0 @@ -$schema: https://json-schema.org/draft/2020-12/schema -title: Schema for validating Beacon Common Components examples -type: object -properties: - $schema: - type: string - description: Added here to allow the example to comply with the 'additionalProperties:true' - restriction. - beaconId: - $ref: ../beaconCommonComponents.yaml#/definitions/BeaconId - apiVersion: - $ref: ../beaconCommonComponents.yaml#/definitions/ApiVersion - beaconError: - $ref: ../beaconCommonComponents.yaml#/definitions/BeaconError - listOfSchemas: - $ref: ../beaconCommonComponents.yaml#/definitions/ListOfSchemas - schemasPerEntity: - $ref: ../beaconCommonComponents.yaml#/definitions/SchemasPerEntity - pagination: - $ref: ../beaconCommonComponents.yaml#/definitions/Pagination - includeResultsetResponses: - $ref: ../beaconCommonComponents.yaml#/definitions/IncludeResultsetResponses - filters: - $ref: ../beaconCommonComponents.yaml#/definitions/Filters - exists: - $ref: ../beaconCommonComponents.yaml#/definitions/Exists - numTotalResults: - $ref: ../beaconCommonComponents.yaml#/definitions/NumTotalResults - info: - $ref: ../beaconCommonComponents.yaml#/definitions/Info - handover: - $ref: ../beaconCommonComponents.yaml#/definitions/Handover - handoverType: - $ref: ../beaconCommonComponents.yaml#/definitions/HandoverType - listOfHandovers: - $ref: ../beaconCommonComponents.yaml#/definitions/ListOfHandovers -additionalProperties: false diff --git a/framework/src/configuration/beaconMapSchema.yaml b/framework/src/configuration/beaconMapSchema.yaml index ce1cff2c2..83170dab6 100644 --- a/framework/src/configuration/beaconMapSchema.yaml +++ b/framework/src/configuration/beaconMapSchema.yaml @@ -46,7 +46,7 @@ definitions: be the only one implemented, together with ´rootUrl`, in which case the whole map of endpoints is found in the current Map. type: string - format: uri + format: uri-template filteringTermsUrl: description: Optional. Returns the list of filtering terms that could be applied to this entry type. It is added here for convenience of the Beacon clients, @@ -55,7 +55,7 @@ definitions: the few implemented, together with ´rootUrl` and ´singleEntryUrl`, in which case the whole map of endpoints is found in the current Map. type: string - format: uri + format: uri-template endpoints: description: Optional. A list describing additional endpoints implemented by this Beacon instance for that entry type. Additional details on the endpoint @@ -74,7 +74,7 @@ definitions: url: description: Endpoint URL type: string - format: uri + format: uri-template returnedEntryType: description: Which entry type is returned by querying this endpoint. It MUST match one of the entry types defined in the Beacon configuration file (`beaconConfiguration.json`). diff --git a/framework/src/configuration/entryTypeDefinition.yaml b/framework/src/configuration/entryTypeDefinition.yaml index 99f3ef974..61916df7e 100644 --- a/framework/src/configuration/entryTypeDefinition.yaml +++ b/framework/src/configuration/entryTypeDefinition.yaml @@ -1,23 +1,22 @@ $schema: https://json-schema.org/draft/2020-12/schema title: '' -description: "Definition of an element or entry type including the Beacon v2 required\ - \ and suggested attributes. This schema purpose is to describe each type of entities\ - \ included in a Beacon, hence Beacon clients could have some metadata about such\ - \ entities.\n\nThe `id` attribute is the key that should be used in other parts\ - \ of the Beacon Model to allow Beacon clients to identify the different parts (e.g.\ - \ endpoints, filteringTerms, request parameters, etc.) that fully describe an entry\ - \ type." +description: >- + Definition of an element or scope of the element, to describe each type of entry type included + in a beacon. + The `id` attribute is the key that should be used in other parts of the data model + to allow Beacon clients to identify the different parts (e.g. endpoints, filtering + terms, request parameters, etc.) that are relvant for an entry type. type: object -$comment: 'TO DO: The tagged parts should reference to `common/ontologizedElement.json`. - But that configuration fails to validate. Further investigation is required, but - should not affect the resulting schema.' properties: $schema: $ref: ../common/beaconCommonComponents.yaml#/definitions/$schema id: - $comments: ++++++ THIS IS THE START OF THE ontologized element ++++++ type: string - description: A (unique) identifier of the element. + description: A unique identifier of the element. + examples: + - biosample + - individual + - dataset name: type: string description: A distinctive name for the element. @@ -26,7 +25,11 @@ properties: description: A textual description for the element. ontologyTermForThisType: $ref: ../common/ontologyTerm.yaml - $comments: ++++++ THIS IS THE END OF THE ontologized element ++++++ + examples: + - id: EFO:0000542 + label: individual + - id: OBI:0000747 + label: material sample partOfSpecification: description: This is label to group together entry types that are part of the same specification. @@ -42,31 +45,31 @@ properties: items: $ref: ../common/referenceToAnSchema.yaml aCollectionOf: - description: If the entry type is a collection of other entry types, (e.g. a Dataset - is a collection of Records), then this attribute must list the entry types that - could be included. One collection type could be defined as included more than - one entry type (e.g. a Dataset could include Individuals or Genomic Variants), - in such cases the entries are alternative, meaning that a given instance of - this entry type could be of only one of the types (e.g. a given Dataset contains - Individuals, while another Dataset could contain Genomic Variants, but not both - at once). + description: >- + If the entry type is a collection of other entities, (e.g. a Dataset + is a collection of Records), then this attribute must list the entities that + can be included. One _collection_ can include more than one entry type + (e.g. a Dataset in teh Beacon cdefault model could include Individuals, Biosamples, + GenomicVariations, Analyses amnd Runs). In such cases in each individual + response (e.g. `resultSetsResponse` of collections of type "dataset") will + contain entries of a single entry type (e.g. biosamples) even if a dataset + may contain records of multiple types. includedConcepts: type: array $ref: ../common/basicElement.yaml filteringTerms: - description: Reference to the file with the list of filtering terms that could - be used to filter this concept in this instance of Beacon. The referenced file - could be used to populate the `filteringTerms`endpoint. Having it independently - should allow for updating the list of accepted filtering terms when it is necessary. + description: >- + Reference to the list of filtering terms that could be used to filter records + of this entry type in this beacon. type: string - $comment: "TO DO: Double-check the proper way of referencing a path or relative\ - \ path. 'format: uri' is throwing validation errors for relative file paths" + $comment: >- + TO DO: Evaluate switch this to `url` or a more specific way for allowing + URLs and local file paths (is this necessary?). nonFilteredQueriesAllowed: $ref: ../common/beaconCommonComponents.yaml#/definitions/NonFilteredQueriesAllowed required: - id - name - - ontologyTermForThisType - partOfSpecification - defaultSchema additionalProperties: true diff --git a/framework/src/requests/validation/filteringTerms.yaml b/framework/src/requests/validation/filteringTerms.yaml deleted file mode 100644 index 6fa00be82..000000000 --- a/framework/src/requests/validation/filteringTerms.yaml +++ /dev/null @@ -1,88 +0,0 @@ -$schema: https://json-schema.org/draft/2020-12/schema -title: Filtering Term Element -description: Rules for selecting records based upon the field values those records - contain. Filters are seperated by the logical AND operator. -properties: - $schema: - type: string - description: Added here to allow the example to comply with the 'additionalProperties:true' - restriction. - filters: - type: array - items: - anyOf: - - $ref: '#/definitions/OntologyFilter' - - $ref: '#/definitions/AlphanumericFilter' - - $ref: '#/definitions/CustomFilter' -definitions: - OntologyFilter: - type: object - description: Filter results to include records that contain a specific ontology - term. - required: - - id - properties: - id: - type: string - description: Term ID to be queried, using CURIE syntax where possible. - example: HP:0002664 - includeDescendantTerms: - type: boolean - default: true - description: Define if the Beacon should implement the ontology hierarchy, - thus query the descendant terms of `id`. - similarity: - type: string - enum: - - exact - - high - - medium - - low - default: exact - description: Allow the Beacon to return results which do not match the filter - exactly, but do match to a certain degree of similarity. The Beacon defines - the semantic similarity model implemented and how to apply the thresholds - of 'high', 'medium' and 'low' similarity. - AlphanumericFilter: - description: Filter results based on operators and values applied to alphanumeric - fields. - type: object - required: - - id - - operator - - value - properties: - id: - type: string - description: Field identfier to be queried. - example: age - operator: - type: string - enum: - - '=' - - < - - '>' - - '!' - - '>=' - - <= - description: Defines how the value relates to the field `id`. - default: '=' - example: '>' - value: - type: string - description: Alphanumeric search term to be used within the query which can - contain wildcard characters (%) to denote any number of unknown characters. Values - can be assocatied with units if applicable. - example: P70Y - CustomFilter: - type: object - description: Filter results to include records that contain a custom term defined - by this Beacon. - required: - - id - properties: - id: - type: string - description: Custom filter terms should contain a unique identifier. - example: demographic.ethnicity:asian -additionalProperties: false diff --git a/framework/src/responses/sections/beaconResultsets.yaml b/framework/src/responses/sections/beaconResultsets.yaml index 246ef8277..09835db13 100644 --- a/framework/src/responses/sections/beaconResultsets.yaml +++ b/framework/src/responses/sections/beaconResultsets.yaml @@ -15,6 +15,7 @@ required: additionalProperties: true definitions: ResultsetInstance: + type: object properties: id: description: id of the resultset diff --git a/models/json/beacon-v2-default-model/beaconMap.json b/models/json/beacon-v2-default-model/beaconMap.json index 4c9a12a78..a7681a24f 100644 --- a/models/json/beacon-v2-default-model/beaconMap.json +++ b/models/json/beacon-v2-default-model/beaconMap.json @@ -1,9 +1,9 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", "endpointSets": { - "analysis": { + "analysisEndpoints": { "endpoints": { - "genomicVariant": { + "genomicVariantLookup": { "returnedEntryType": "genomicVariant", "url": "https://exampleBeacons.org/analyses/{id}/g_variants" } @@ -13,17 +13,17 @@ "rootUrl": "https://exampleBeacons.org/analyses", "singleEntryUrl": "https://exampleBeacons.org/analyses/{id}" }, - "biosample": { + "biosampleEndpoints": { "endpoints": { - "analysis": { + "analysisLookup": { "returnedEntryType": "analysis", "url": "https://exampleBeacons.org/biosamples/{id}/analyses" }, - "genomicVariant": { + "genomicVariantLookup": { "returnedEntryType": "genomicVariant", "url": "https://exampleBeacons.org/biosamples/{id}/g_variants" }, - "run": { + "runLookup": { "returnedEntryType": "run", "url": "https://exampleBeacons.org/biosamples/{id}/runs" } @@ -33,25 +33,25 @@ "rootUrl": "https://exampleBeacons.org/biosamples", "singleEntryUrl": "https://exampleBeacons.org/biosamples/{id}" }, - "cohort": { + "cohortEndpoints": { "endpoints": { - "analyses": { + "analysisLookup": { "returnedEntryType": "analysis", "url": "https://exampleBeacons.org/cohorts/{id}/analyses" }, - "biosample": { + "biosampleLookup": { "returnedEntryType": "biosample", "url": "https://exampleBeacons.org/cohorts/{id}/biosamples" }, - "genomicVariant": { + "genomicVariantLookup": { "returnedEntryType": "genomicVariant", "url": "https://exampleBeacons.org/cohorts/{id}/g_variants" }, - "individual": { + "individualLookup": { "returnedEntryType": "individual", "url": "https://exampleBeacons.org/cohorts/{id}/individuals" }, - "runs": { + "runLookup": { "returnedEntryType": "run", "url": "https://exampleBeacons.org/cohorts/{id}/runs" } @@ -62,25 +62,25 @@ "rootUrl": "https://exampleBeacons.org/cohorts", "singleEntryUrl": "https://exampleBeacons.org/cohorts/{id}" }, - "dataset": { + "datasetEndpoints": { "endpoints": { - "analyses": { + "analysisLookup": { "returnedEntryType": "analysis", "url": "https://exampleBeacons.org/datasets/{id}/analyses" }, - "biosample": { + "biosampleLookup": { "returnedEntryType": "biosample", "url": "https://exampleBeacons.org/datasets/{id}/biosamples" }, - "genomicVariant": { + "genomicVariantLookup": { "returnedEntryType": "genomicVariant", "url": "https://exampleBeacons.org/datasets/{id}/g_variants" }, - "individual": { + "individualLookup": { "returnedEntryType": "individual", "url": "https://exampleBeacons.org/datasets/{id}/individuals" }, - "runs": { + "runLookup": { "returnedEntryType": "run", "url": "https://exampleBeacons.org/datasets/{id}/runs" } @@ -91,21 +91,21 @@ "rootUrl": "https://exampleBeacons.org/datasets", "singleEntryUrl": "https://exampleBeacons.org/datasets/{id}" }, - "genomicVariant": { + "genomicVariantEndpoints": { "endpoints": { - "analyses": { + "analysisLookup": { "returnedEntryType": "analysis", "url": "https://exampleBeacons.org/g_variants/{id}/analyses" }, - "biosample": { + "biosampleLookup": { "returnedEntryType": "biosample", "url": "https://exampleBeacons.org/g_variants/{id}/biosamples" }, - "individual": { + "individualLookup": { "returnedEntryType": "individual", "url": "https://exampleBeacons.org/g_variants/{id}/individuals" }, - "runs": { + "runLookup": { "returnedEntryType": "run", "url": "https://exampleBeacons.org/g_variants/{id}/runs" } @@ -115,21 +115,21 @@ "rootUrl": "https://exampleBeacons.org/g_variants", "singleEntryUrl": "https://exampleBeacons.org/g_variants/{id}" }, - "individual": { + "individualEndpoints": { "endpoints": { - "analyses": { + "analysisLookup": { "returnedEntryType": "analysis", "url": "https://exampleBeacons.org/individuals/{id}/analyses" }, - "biosample": { + "biosampleLookup": { "returnedEntryType": "biosample", "url": "https://exampleBeacons.org/individuals/{id}/biosamples" }, - "genomicVariant": { + "genomicVariantLookup": { "returnedEntryType": "genomicVariant", "url": "https://exampleBeacons.org/individuals/{id}/g_variants" }, - "runs": { + "runLookup": { "returnedEntryType": "run", "url": "https://exampleBeacons.org/individuals/{id}/runs" } @@ -140,13 +140,13 @@ "rootUrl": "https://exampleBeacons.org/individuals", "singleEntryUrl": "https://exampleBeacons.org/individuals/{id}" }, - "run": { + "runEndpoints": { "endpoints": { - "analysis": { + "analysisLookup": { "returnedEntryType": "analysis", "url": "https://exampleBeacons.org/runs/{id}/analyses" }, - "genomicVariant": { + "genomicVariantLookup": { "returnedEntryType": "genomicVariant", "url": "https://exampleBeacons.org/runs/{id}/g_variants" } diff --git a/models/json/beacon-v2-default-model/common/disease.json b/models/json/beacon-v2-default-model/common/disease.json index 5da7a797d..d50bbfdfa 100644 --- a/models/json/beacon-v2-default-model/common/disease.json +++ b/models/json/beacon-v2-default-model/common/disease.json @@ -6,30 +6,22 @@ "$ref": "./timeElement.json", "examples": [ { - "ageGroup": { - "id": "NCIT:C49685", - "label": "Adult 18-65 Years Old" - } + "id": "NCIT:C49685", + "label": "Adult 18-65 Years Old" }, { - "age": { - "iso8601duration": "P32Y6M1D" - } + "iso8601duration": "P32Y6M1D" }, { - "ageRange": { - "end": { - "iso8601duration": "P59Y" - }, - "start": { - "iso8601duration": "P18Y" - } + "end": { + "iso8601duration": "P59Y" + }, + "start": { + "iso8601duration": "P18Y" } }, { - "age": { - "iso8601duration": "P2M4D" - } + "iso8601duration": "P2M4D" } ] }, diff --git a/models/json/beacon-v2-default-model/genomicVariations/requestParameters.json b/models/json/beacon-v2-default-model/genomicVariations/requestParameters.json index 48381aaf7..e469211f4 100644 --- a/models/json/beacon-v2-default-model/genomicVariations/requestParameters.json +++ b/models/json/beacon-v2-default-model/genomicVariations/requestParameters.json @@ -17,14 +17,14 @@ "$ref": "./requestParametersComponents.json#/definitions/Assembly" }, "end": { - "description": "Precise or bracketing the end of the variants of interest: * (0-based, exclusive) - see `start` * for bracket queries, provide 2 values (e.g. [111,222]).\"", + "description": "Precise or bracketing the end of the variants of interest: * (0-based, exclusive) - see `start` * for bracket queries, provide 2 values (e.g. [111,222]).", "items": { "format": "int64", "minimum": 1, "type": "integer" }, "maxItems": 2, - "minItems": 0, + "minItems": 1, "type": "array" }, "geneId": { @@ -52,7 +52,7 @@ "$ref": "./requestParametersComponents.json#/definitions/RefSeqId" }, "start": { - "description": "Precise or fuzzy start coordinate position(s), allele locus (0-based, inclusive). * `start` only:\n - for single positions, e.g. the start of a specified sequence\n alteration where the size is given through the specified `alternateBases`\n - typical use are queries for SNV and small InDels\n - the use of `start` without an `end` parameter requires the use of\n `alternateBases`\n* `start` and `end`:\n - for searching any variant falling fully or partially within the range\n between `start` and `end` (a.k.a. \"range query\")\n - additional use of `variantType` OR `alternateBases` can limit the\n scope of the query\n - by convention, partial overlaps of variants with the indicated genomic\n range are accepted; for specific overlap requirements the 4-parameter\n \"Bracket Queries\" should be employed\n* 2 values in both `start` and `end` for constructing a \"Bracket Query\":\n - can be used to match any contiguous genomic interval, e.g. for querying\n imprecise positions\n - identifies all structural variants starting between `start[0]` and `start[1]`,\n and ending between `end[0]` <-> `end[1]`\n - single or double sided precise matches can be achieved by setting\n `start[1]=start[0]+1` and `end[1]=end[0]+1`", + "description": "Precise or fuzzy start coordinate position(s), allele locus (0-based, inclusive). * `start` only:\n - for single positions, e.g. the start of a specified sequence\nalteration where the size is given through the specified `alternateBases`\n - typical use are queries for SNV and small InDels\n - the use of `start` without an `end` parameter requires the use of\n`alternateBases`\n* 1 value each in both `start` and `end`:\n - for searching any variant falling fully or partially within the range\n between `start` and `end` (a.k.a. \"range query\")\n - additional use of `variantType` OR `alternateBases` can limit the\n scope of the query\n - by convention, partial overlaps of variants with the indicated genomic\n range are accepted; for specific overlap requirements the 4-parameter\n \"Bracket Queries\" should be employed\n* 2 values in both `start` and `end` for constructing a \"Bracket Query\":\n - can be used to match any contiguous genomic interval, e.g. for querying\n imprecise positions\n - identifies all structural variants starting between `start[0]` and `start[1]`,\n and ending between `end[0]` <-> `end[1]`\n - single or double sided precise matches can be achieved by setting\n `start[1]=start[0]+1` and `end[1]=end[0]+1`", "items": { "format": "int64", "minimum": 0, @@ -87,4 +87,4 @@ }, "type": "object" } -} \ No newline at end of file +} diff --git a/models/src/beacon-v2-default-model/beaconMap.yaml b/models/src/beacon-v2-default-model/beaconMap.yaml index 3da0cd2a4..823d60f74 100644 --- a/models/src/beacon-v2-default-model/beaconMap.yaml +++ b/models/src/beacon-v2-default-model/beaconMap.yaml @@ -1,119 +1,119 @@ $schema: https://json-schema.org/draft/2020-12/schema endpointSets: - dataset: + datasetEndpoints: entryType: dataset openAPIEndpointsDefinition: https://exampleBeacons.org/datasets/endpoints.json rootUrl: https://exampleBeacons.org/datasets singleEntryUrl: https://exampleBeacons.org/datasets/{id} filteringTermsUrl: https://exampleBeacons.org/datasets/{id}/filtering_terms endpoints: - genomicVariant: + genomicVariantLookup: returnedEntryType: genomicVariant url: https://exampleBeacons.org/datasets/{id}/g_variants - biosample: + biosampleLookup: returnedEntryType: biosample url: https://exampleBeacons.org/datasets/{id}/biosamples - individual: + individualLookup: returnedEntryType: individual url: https://exampleBeacons.org/datasets/{id}/individuals - runs: + runLookup: returnedEntryType: run url: https://exampleBeacons.org/datasets/{id}/runs - analyses: + analysisLookup: returnedEntryType: analysis url: https://exampleBeacons.org/datasets/{id}/analyses - cohort: + cohortEndpoints: entryType: cohort openAPIEndpointsDefinition: https://exampleBeacons.org/cohorts/endpoints.json rootUrl: https://exampleBeacons.org/cohorts singleEntryUrl: https://exampleBeacons.org/cohorts/{id} filteringTermsUrl: https://exampleBeacons.org/cohorts/{id}/filtering_terms endpoints: - individual: + individualLookup: returnedEntryType: individual url: https://exampleBeacons.org/cohorts/{id}/individuals - genomicVariant: + genomicVariantLookup: returnedEntryType: genomicVariant url: https://exampleBeacons.org/cohorts/{id}/g_variants - biosample: + biosampleLookup: returnedEntryType: biosample url: https://exampleBeacons.org/cohorts/{id}/biosamples - runs: + runLookup: returnedEntryType: run url: https://exampleBeacons.org/cohorts/{id}/runs - analyses: + analysisLookup: returnedEntryType: analysis url: https://exampleBeacons.org/cohorts/{id}/analyses - genomicVariant: + genomicVariantEndpoints: entryType: genomicVariant openAPIEndpointsDefinition: https://exampleBeacons.org/genomicVariations/endpoints.json rootUrl: https://exampleBeacons.org/g_variants singleEntryUrl: https://exampleBeacons.org/g_variants/{id} endpoints: - biosample: + biosampleLookup: returnedEntryType: biosample url: https://exampleBeacons.org/g_variants/{id}/biosamples - individual: + individualLookup: returnedEntryType: individual url: https://exampleBeacons.org/g_variants/{id}/individuals - runs: + runLookup: returnedEntryType: run url: https://exampleBeacons.org/g_variants/{id}/runs - analyses: + analysisLookup: returnedEntryType: analysis url: https://exampleBeacons.org/g_variants/{id}/analyses - individual: + individualEndpoints: entryType: individual openAPIEndpointsDefinition: https://exampleBeacons.org/individuals/endpoints.json rootUrl: https://exampleBeacons.org/individuals singleEntryUrl: https://exampleBeacons.org/individuals/{id} filteringTermsUrl: https://exampleBeacons.org/individuals/{id}/filtering_terms endpoints: - genomicVariant: + genomicVariantLookup: returnedEntryType: genomicVariant url: https://exampleBeacons.org/individuals/{id}/g_variants - biosample: + biosampleLookup: returnedEntryType: biosample url: https://exampleBeacons.org/individuals/{id}/biosamples - runs: + runLookup: returnedEntryType: run url: https://exampleBeacons.org/individuals/{id}/runs - analyses: + analysisLookup: returnedEntryType: analysis url: https://exampleBeacons.org/individuals/{id}/analyses - biosample: + biosampleEndpoints: entryType: biosample openAPIEndpointsDefinition: https://exampleBeacons.org/biosamples/endpoints.json rootUrl: https://exampleBeacons.org/biosamples singleEntryUrl: https://exampleBeacons.org/biosamples/{id} endpoints: - run: + runLookup: returnedEntryType: run url: https://exampleBeacons.org/biosamples/{id}/runs - analysis: + analysisLookup: returnedEntryType: analysis url: https://exampleBeacons.org/biosamples/{id}/analyses - genomicVariant: + genomicVariantLookup: returnedEntryType: genomicVariant url: https://exampleBeacons.org/biosamples/{id}/g_variants - run: + runEndpoints: entryType: run openAPIEndpointsDefinition: https://exampleBeacons.org/runs/endpoints.json rootUrl: https://exampleBeacons.org/runs singleEntryUrl: https://exampleBeacons.org/runs/{id} endpoints: - analysis: + analysisLookup: returnedEntryType: analysis url: https://exampleBeacons.org/runs/{id}/analyses - genomicVariant: + genomicVariantLookup: returnedEntryType: genomicVariant url: https://exampleBeacons.org/runs/{id}/g_variants - analysis: + analysisEndpoints: entryType: analysis openAPIEndpointsDefinition: https://exampleBeacons.org/analyses/endpoints.json rootUrl: https://exampleBeacons.org/analyses singleEntryUrl: https://exampleBeacons.org/analyses/{id} endpoints: - genomicVariant: + genomicVariantLookup: returnedEntryType: genomicVariant url: https://exampleBeacons.org/analyses/{id}/g_variants diff --git a/models/src/beacon-v2-default-model/common/disease.yaml b/models/src/beacon-v2-default-model/common/disease.yaml index a4f5f5719..c6472dad6 100644 --- a/models/src/beacon-v2-default-model/common/disease.yaml +++ b/models/src/beacon-v2-default-model/common/disease.yaml @@ -20,18 +20,14 @@ properties: ageOfOnset: $ref: ./timeElement.yaml examples: - - ageGroup: - id: NCIT:C49685 - label: Adult 18-65 Years Old - - age: - iso8601duration: P32Y6M1D - - ageRange: - start: - iso8601duration: P18Y - end: - iso8601duration: P59Y - - age: - iso8601duration: P2M4D + - id: NCIT:C49685 + label: Adult 18-65 Years Old + - iso8601duration: P32Y6M1D + - start: + iso8601duration: P18Y + end: + iso8601duration: P59Y + - iso8601duration: P2M4D stage: description: 'Ontology term from Ontology for General Medical Science (OGMS), e.g. acute onset (OGMS:0000119). Provenance: GA4GH Phenopackets v2 `Disease.disease_stage`' diff --git a/models/src/beacon-v2-default-model/genomicVariations/requestParameters.yaml b/models/src/beacon-v2-default-model/genomicVariations/requestParameters.yaml index 37c5b9e48..112bdb2ab 100644 --- a/models/src/beacon-v2-default-model/genomicVariations/requestParameters.yaml +++ b/models/src/beacon-v2-default-model/genomicVariations/requestParameters.yaml @@ -16,7 +16,7 @@ g_variant: - typical use are queries for SNV and small InDels - the use of `start` without an `end` parameter requires the use of `alternateBases` - * `start` and `end`: + * 1 value in both `start` and `end`: - for searching any variant falling fully or partially within the range between `start` and `end` (a.k.a. "range query") - additional use of `variantType` OR `alternateBases` can limit the @@ -48,7 +48,7 @@ g_variant: type: integer format: int64 minimum: 1 - minItems: 0 + minItems: 1 maxItems: 2 referenceBases: $ref: ./requestParametersComponents.yaml#/definitions/ReferenceBases