From 02361ce005ecb63e20deb5c08542cc5dd501a2cf Mon Sep 17 00:00:00 2001 From: Robert Allaway Date: Tue, 7 May 2024 15:49:27 -0500 Subject: [PATCH 01/11] add ge MRI --- modules/Assay/Platform.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/modules/Assay/Platform.yaml b/modules/Assay/Platform.yaml index 1300e916..d577fca4 100644 --- a/modules/Assay/Platform.yaml +++ b/modules/Assay/Platform.yaml @@ -190,6 +190,9 @@ enums: Philips Achieva 3T: description: Complete 3T MRI system, it offers an extremely broad clinical reach from routine head, spine and musculoskeletal imaging to the most advanced exams. source: https://clinicalimagingsystems.com/product/philips-achieva-3-0t-mri-scanner/ + GE Premier 3t: + description: The GE Premier 3T is an advanced MRI scanner that offers high-resolution imaging capabilities and a 70 cm wide bore for patient comfort + source: ChatGPT (May 7 2024) Zeno Electronic Walkway: description: System for gait analysis. source: https://pubmed.ncbi.nlm.nih.gov/29286982/ From c1198d4c6157c6739db8845d1a7c441f1bffe5bf Mon Sep 17 00:00:00 2001 From: "nf-osi[bot]" Date: Tue, 7 May 2024 20:50:18 +0000 Subject: [PATCH 02/11] Rebuild NF.jsonld, json --- NF.jsonld | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/NF.jsonld b/NF.jsonld index 64919e89..99c3417f 100644 --- a/NF.jsonld +++ b/NF.jsonld @@ -6071,6 +6071,8 @@ "@id" : "bts:LeicaS9Stereomicroscope" }, { "@id" : "bts:PhilipsAchieva3T" + }, { + "@id" : "bts:GEPremier3t" }, { "@id" : "bts:ZenoElectronicWalkway" }, { @@ -12622,6 +12624,17 @@ }, "sms:displayName" : "bed narrowPeak", "sms:required" : "sms:false" + }, { + "@id" : "bts:GEPremier3t", + "@type" : "rdfs:Class", + "rdfs:comment" : "TBD", + "rdfs:label" : "GEPremier3t", + "rdfs:subClassOf" : [ ], + "schema:isPartOf" : { + "@id" : "http://schema.biothings.io/" + }, + "sms:displayName" : "GE Premier 3t", + "sms:required" : "sms:false" }, { "@id" : "bts:bash", "@type" : "rdfs:Class", From 39d337c26c7a30c4696025409c59c29a2cf9c139 Mon Sep 17 00:00:00 2001 From: Robert Allaway Date: Tue, 7 May 2024 15:53:45 -0500 Subject: [PATCH 03/11] fix caps --- modules/Assay/Platform.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/Assay/Platform.yaml b/modules/Assay/Platform.yaml index d577fca4..7213ee78 100644 --- a/modules/Assay/Platform.yaml +++ b/modules/Assay/Platform.yaml @@ -190,7 +190,7 @@ enums: Philips Achieva 3T: description: Complete 3T MRI system, it offers an extremely broad clinical reach from routine head, spine and musculoskeletal imaging to the most advanced exams. source: https://clinicalimagingsystems.com/product/philips-achieva-3-0t-mri-scanner/ - GE Premier 3t: + GE Premier 3T: description: The GE Premier 3T is an advanced MRI scanner that offers high-resolution imaging capabilities and a 70 cm wide bore for patient comfort source: ChatGPT (May 7 2024) Zeno Electronic Walkway: From 7ebd64adb1d8909931fe0aaa1844a78e1fab0b97 Mon Sep 17 00:00:00 2001 From: "nf-osi[bot]" Date: Tue, 7 May 2024 20:54:28 +0000 Subject: [PATCH 04/11] Rebuild NF.jsonld, json --- NF.jsonld | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/NF.jsonld b/NF.jsonld index 99c3417f..997f0302 100644 --- a/NF.jsonld +++ b/NF.jsonld @@ -6072,7 +6072,7 @@ }, { "@id" : "bts:PhilipsAchieva3T" }, { - "@id" : "bts:GEPremier3t" + "@id" : "bts:GEPremier3T" }, { "@id" : "bts:ZenoElectronicWalkway" }, { @@ -12624,17 +12624,6 @@ }, "sms:displayName" : "bed narrowPeak", "sms:required" : "sms:false" - }, { - "@id" : "bts:GEPremier3t", - "@type" : "rdfs:Class", - "rdfs:comment" : "TBD", - "rdfs:label" : "GEPremier3t", - "rdfs:subClassOf" : [ ], - "schema:isPartOf" : { - "@id" : "http://schema.biothings.io/" - }, - "sms:displayName" : "GE Premier 3t", - "sms:required" : "sms:false" }, { "@id" : "bts:bash", "@type" : "rdfs:Class", @@ -14923,6 +14912,17 @@ }, "sms:displayName" : "University of Colorado Boulder", "sms:required" : "sms:false" + }, { + "@id" : "bts:GEPremier3T", + "@type" : "rdfs:Class", + "rdfs:comment" : "TBD", + "rdfs:label" : "GEPremier3T", + "rdfs:subClassOf" : [ ], + "schema:isPartOf" : { + "@id" : "http://schema.biothings.io/" + }, + "sms:displayName" : "GE Premier 3T", + "sms:required" : "sms:false" }, { "@id" : "bts:UniversityofTexasSouthwesternMedicalCenter", "@type" : "rdfs:Class", From 8e0c51a0a77a7326a4917c9ccacc29d3e3f8766c Mon Sep 17 00:00:00 2001 From: Robert Allaway Date: Tue, 7 May 2024 15:58:03 -0500 Subject: [PATCH 05/11] Add Noonan Syndrome --- modules/Sample/Diagnosis.yaml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/modules/Sample/Diagnosis.yaml b/modules/Sample/Diagnosis.yaml index f1878a5f..4376c837 100644 --- a/modules/Sample/Diagnosis.yaml +++ b/modules/Sample/Diagnosis.yaml @@ -12,7 +12,7 @@ enums: # meaning: https://www.ebi.ac.uk/ols/ontologies/cco/terms?iri=http%3A%2F%2Fidentifiers.org%2Fomim%2F101000 Schwannomatosis: description: A rare genetic disorder characterized by the presence of multiple schwannomas. - meaning: https://www.ebi.ac.uk/ols/ontologies/ncit/terms?iri=http%3A%2F%2Fpurl.obolibrary.org%2Fobo%2FNCIT_C6557 + meaning: http://purl.obolibrary.org/obo/NCIT_C6557 NF2-related schwannomatosis: description: Previously known as Neurofibromatosis type 2. SMARCB1-related schwannomatosis: @@ -26,6 +26,9 @@ enums: Most schwannomas originate from the eighth cranial nerve, whereas neurofibromas more commonly arise along the spinal nerve roots. notes: - Not in NCIT as of 2023-06-07 + Noonan Syndrome: + description: A rare, highly variable, multisystemic disorder mainly characterized by short stature, distinctive facial features, congenital heart defects, cardiomyopathy and an increased risk to develop tumors in childhood. + meaning: http://www.orpha.net/ORDO/Orphanet_648 Not Applicable: AgeGroupEnum: From e13fc05d28a63875b46d0e6f9312d839f7669071 Mon Sep 17 00:00:00 2001 From: "nf-osi[bot]" Date: Tue, 7 May 2024 20:59:07 +0000 Subject: [PATCH 06/11] Rebuild NF.jsonld, json --- NF.jsonld | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/NF.jsonld b/NF.jsonld index 997f0302..97ed417c 100644 --- a/NF.jsonld +++ b/NF.jsonld @@ -1093,6 +1093,8 @@ "@id" : "bts:Schwannomatosis-NEC" }, { "@id" : "bts:SporadicSchwannoma" + }, { + "@id" : "bts:NoonanSyndrome" }, { "@id" : "bts:NotApplicable" } ], @@ -10061,6 +10063,17 @@ }, "sms:displayName" : "icNF97.2b", "sms:required" : "sms:false" + }, { + "@id" : "bts:NoonanSyndrome", + "@type" : "rdfs:Class", + "rdfs:comment" : "TBD", + "rdfs:label" : "NoonanSyndrome", + "rdfs:subClassOf" : [ ], + "schema:isPartOf" : { + "@id" : "http://schema.biothings.io/" + }, + "sms:displayName" : "Noonan Syndrome", + "sms:required" : "sms:false" }, { "@id" : "bts:plink", "@type" : "rdfs:Class", From 76a44643d1a052a76793e002e0f319b6cde3d904 Mon Sep 17 00:00:00 2001 From: Robert Allaway Date: Tue, 7 May 2024 16:18:17 -0500 Subject: [PATCH 07/11] Add diagnosis as list eligible --- modules/props.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modules/props.yaml b/modules/props.yaml index 9efcb1c4..3fa5fbe6 100644 --- a/modules/props.yaml +++ b/modules/props.yaml @@ -340,6 +340,8 @@ slots: range: string required: false diagnosis: + annotations: + validationRules: list like description: Diagnosis for the individual given signs and symptoms. Use the most specific diagnosis term that applies. range: DiagnosisEnum required: true From 9b479f20dd663feec1c7779c22d59f9d19a9d12a Mon Sep 17 00:00:00 2001 From: "nf-osi[bot]" Date: Tue, 7 May 2024 21:18:57 +0000 Subject: [PATCH 08/11] Rebuild NF.jsonld, json --- NF.jsonld | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/NF.jsonld b/NF.jsonld index 97ed417c..d173d1c3 100644 --- a/NF.jsonld +++ b/NF.jsonld @@ -1074,7 +1074,7 @@ "@id" : "http://schema.biothings.io/" }, "sms:required" : "sms:true", - "sms:validationRules" : [ ], + "sms:validationRules" : [ "list like" ], "schema:rangeIncludes" : [ { "@id" : "bts:Neurofibromatosistype1" }, { From 6283ab34a0952622924dcaae6698f6cac3161c48 Mon Sep 17 00:00:00 2001 From: Robert Allaway Date: Fri, 10 May 2024 10:21:58 -0500 Subject: [PATCH 09/11] add suggestions from code review --- modules/props.yaml | 2 -- 1 file changed, 2 deletions(-) diff --git a/modules/props.yaml b/modules/props.yaml index 3fa5fbe6..9efcb1c4 100644 --- a/modules/props.yaml +++ b/modules/props.yaml @@ -340,8 +340,6 @@ slots: range: string required: false diagnosis: - annotations: - validationRules: list like description: Diagnosis for the individual given signs and symptoms. Use the most specific diagnosis term that applies. range: DiagnosisEnum required: true From 623984e5366f624a398008dce29d15ea336f8549 Mon Sep 17 00:00:00 2001 From: "nf-osi[bot]" Date: Fri, 10 May 2024 15:22:41 +0000 Subject: [PATCH 10/11] Rebuild NF.jsonld, json --- NF.jsonld | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/NF.jsonld b/NF.jsonld index d173d1c3..97ed417c 100644 --- a/NF.jsonld +++ b/NF.jsonld @@ -1074,7 +1074,7 @@ "@id" : "http://schema.biothings.io/" }, "sms:required" : "sms:true", - "sms:validationRules" : [ "list like" ], + "sms:validationRules" : [ ], "schema:rangeIncludes" : [ { "@id" : "bts:Neurofibromatosistype1" }, { From 6f7d2ce1000dda6021fcf9c9b683d6e4e5d91efc Mon Sep 17 00:00:00 2001 From: Robert Allaway Date: Tue, 28 May 2024 09:10:50 -0500 Subject: [PATCH 11/11] Update main-ci.yml --- .github/workflows/main-ci.yml | 42 ++++++++++++++++++++++++++--------- 1 file changed, 31 insertions(+), 11 deletions(-) diff --git a/.github/workflows/main-ci.yml b/.github/workflows/main-ci.yml index 95f91c41..134b74f7 100644 --- a/.github/workflows/main-ci.yml +++ b/.github/workflows/main-ci.yml @@ -10,10 +10,12 @@ on: workflow_dispatch: +env: + SCHEMATIC_VERSION: 24.5.1 jobs: build: - runs-on: ubuntu-22.04 + runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 @@ -22,6 +24,10 @@ jobs: persist-credentials: false # otherwise, the token used is the GITHUB_TOKEN, instead of your personal access token. fetch-depth: 0 # otherwise, there would be errors pushing refs to the destination repository + - name: Get skip flags + id: check_skip_flags + run: echo "HEAD_COMMIT_MESSAGE=$(git show -s --format=%s)" >> "$GITHUB_OUTPUT" + - name: Setup custom build tools and make jsonld shell: bash run: | @@ -37,6 +43,18 @@ jobs: make Superdataset make PortalDataset make PortalStudy + + # Set up supported python. + - uses: actions/setup-python@v5 + with: + python-version: '3.10.12' + + - name: Setup schematic and do another convert pass + id: schematic-convert + run: | + pip install schematicpy==${{ env.SCHEMATIC_VERSION }} ipython==8.18.1 + pip show schematicpy + schematic schema convert NF.jsonld - name: Commit files if there are changes run: | @@ -56,6 +74,7 @@ jobs: with: github_token: ${{ secrets.GITHUB_TOKEN }} branch: ${{ github.event.pull_request.head.ref }} + # Additionally test PRs @@ -67,9 +86,11 @@ jobs: SCHEMATIC_SERVICE_ACCT_CREDS: ${{ secrets.SCHEMATIC_SERVICE_ACCT_CREDS }} permissions: pull-requests: write - strategy: - matrix: - schematic-version: [24.4.1] # cannot actually do parallel/concurrent testing and need to do sequential because of API rate limits + if: ${{ !contains(needs.check_skip_flags.outputs.HEAD_COMMIT_MESSAGE, '[skip tests]') }} + # strategy: + # matrix: + # cannot actually do parallel/concurrent testing because of API rate limits, + # so we currently only test with one schematic version because it takes much too long with sequential steps: - uses: actions/checkout@v4 @@ -83,10 +104,9 @@ jobs: - name: Setup schematic id: setup-schematic - run: pip install schematicpy==${{ matrix.schematic-version }} ipython==8.18.1 - - - name: Sanity-check successful installation and version - run: pip show schematicpy + run: | + pip install schematicpy==${{ env.SCHEMATIC_VERSION }} ipython==8.18.1 + pip show schematicpy - name: Test generate working-directory: tests/generate @@ -113,18 +133,18 @@ jobs: - name: Create test suite report working-directory: tests continue-on-error: true - run: docker run -v $(pwd):/tests -e SCHEMATIC=${{ matrix.schematic-version }} rocker/tidyverse R -e "rmarkdown::render('tests/test-suite-report.Rmd')" + run: docker run -v $(pwd):/tests -e SCHEMATIC=${{ env.SCHEMATIC_VERSION }} rocker/tidyverse R -e "rmarkdown::render('tests/test-suite-report.Rmd')" - name: Report on test suite as PR comment uses: mshick/add-pr-comment@v2 with: - message-id: test-suite-report-${{ matrix.schematic-version }} + message-id: test-suite-report-${{ env.SCHEMATIC_VERSION }} message-path: | tests/test-suite-report.md - name: Upload test artifacts uses: actions/upload-artifact@v4 with: - name: test-logs-${{ matrix.schematic-version }} + name: test-logs-${{ env.SCHEMATIC_VERSION }} path: tests/**/logs