From a0f3e85bd08cde1574611dd4f4f75d754804f2f0 Mon Sep 17 00:00:00 2001 From: Kyle O'Connell Date: Tue, 5 Dec 2023 14:18:13 -0500 Subject: [PATCH 1/7] added link check workflow --- .github/workflows/check_links.yml | 28 ++++++++++++++++++++++++++++ .markdown-link-check.json | 23 +++++++++++++++++++++++ 2 files changed, 51 insertions(+) create mode 100644 .github/workflows/check_links.yml create mode 100644 .markdown-link-check.json diff --git a/.github/workflows/check_links.yml b/.github/workflows/check_links.yml new file mode 100644 index 0000000..5b3d487 --- /dev/null +++ b/.github/workflows/check_links.yml @@ -0,0 +1,28 @@ +name: Check Links + +on: + push: + branches: + - '*' + pull_request: + branches: + - '*' +jobs: + check-links: + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v2 + + - name: Set up Node.js + uses: actions/setup-node@v3 + with: + node-version: 16 + + - name: Install dependencies + run: | + npm install -g markdown-link-check + + - name: Check links in Markdown files + run: find . -name '*.md' -print0 | xargs -0 -n1 markdown-link-check -q -c .markdown-link-check.json diff --git a/.markdown-link-check.json b/.markdown-link-check.json new file mode 100644 index 0000000..f83ac18 --- /dev/null +++ b/.markdown-link-check.json @@ -0,0 +1,23 @@ +{ + "ignorePatterns": [ + { + "pattern": "^#" + }, + ], + "replacementPatterns": [ + { + "pattern": "^/docs", + "replacement": "https://github.com/STRIDES/NIHCloudLabAzure/tree/main/docs" + }, + { + "pattern": "^/tutorials", + "replacement": "https://github.com/STRIDES/NIHCloudLabAzure/tree/main/tutorials" + } + + ], + "timeout": "20s", + "retryOn429": true, + "retryCount": 5, + "fallbackRetryDelay": "30s", + "aliveStatusCodes": [200, 206] +} \ No newline at end of file From b37ba295ff1583a10360600e7183a5b481e95f94 Mon Sep 17 00:00:00 2001 From: Kyle O'Connell Date: Tue, 5 Dec 2023 14:19:01 -0500 Subject: [PATCH 2/7] added link check workflow --- .markdown-link-check.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.markdown-link-check.json b/.markdown-link-check.json index f83ac18..7146ab9 100644 --- a/.markdown-link-check.json +++ b/.markdown-link-check.json @@ -2,7 +2,7 @@ "ignorePatterns": [ { "pattern": "^#" - }, + } ], "replacementPatterns": [ { From 580f17e452ab1375d01a90938d556cbaf35f4021 Mon Sep 17 00:00:00 2001 From: Kyle O'Connell Date: Tue, 5 Dec 2023 14:28:10 -0500 Subject: [PATCH 3/7] updated --- docs/Using_The_Azure_Price_Calculator.md | 16 ++++++++-------- tutorials/README.md | 2 +- tutorials/notebooks/Azure_Open_AI/README.md | 2 +- .../notebooks/SpleenLiverSegmentation/README.md | 6 ++++-- 4 files changed, 14 insertions(+), 12 deletions(-) diff --git a/docs/Using_The_Azure_Price_Calculator.md b/docs/Using_The_Azure_Price_Calculator.md index 67f2f4a..0318fb1 100644 --- a/docs/Using_The_Azure_Price_Calculator.md +++ b/docs/Using_The_Azure_Price_Calculator.md @@ -59,12 +59,12 @@ Products are available but probably not used in Azure Cloud lab. ### Containers The Containers tab displays tiles showing the options for Azure based containers. -![Screenshot of Container Products](/docs/images/(9_container_products.png) +![Screenshot of Container Products](/docs/images/9_container_products.png) ### Databases The Databases tab displays tiles listing your Azure database options. -![Screenshot of Database Products](/docs/images/(10_db_products.png) +![Screenshot of Database Products](/docs/images/10_db_products.png) ### Analytics This tab displays the available Azure based analytic tools. @@ -74,17 +74,17 @@ This tab displays the available Azure based analytic tools. ### AI + machine learning The AI + machine learning tab displays tiles of of available products related to the title. -![Screenshot of AIML Products](/docs/images/(12_AI_products.png) +![Screenshot of AIML Products](/docs/images/12_AI_products.png) ### Internet of Things The IOT tab displays products related to IOT operations plus some analytics and machine learning products. -![Screenshot of AIML Products](/docs/images/(13_IOT_products.png) +![Screenshot of AIML Products](/docs/images/13_IOT_products.png) ### Integration This tab displays tiles of products relating to integrating with operations outside of the Azure Cloud. -![Screenshot of Integration Products](/docs/images/(14_integration_products.png) +![Screenshot of Integration Products](/docs/images/14_integration_products.png) ### Identity Products are available but probably not used in Azure Cloud lab. @@ -115,15 +115,15 @@ Products aavailable but probably not used in Azure Cloud lab. The Examples tab is exactly what it describes. It shows you six examples of figuring the total cost of various products that you would need for your projects. If we choose Real-time analysis we are presented with a project drawing with a listing of the products that will be used. -![Screenshot of RealTimeAnaltyics](/docs/images/(15_RT_Analytics.png) +![Screenshot of RealTimeAnaltyics](/docs/images/15_RT_Analytics.png) If you click the Add to Estimate button you will then see a breakdown of each item's cost. Please note the number of instances and the default number of hours used to generate the estimate. -![Screenshot of RealTimeAnaltyics](/docs/images/(16_get_estimate.png) +![Screenshot of RealTimeAnaltyics](/docs/images/16_get_estimate.png) Now, if we do the same steps with the example above as we did under calculating costs by removing items and reducing hours. We can then bring the costs down to something that is under the Cloud Lab monthly budget. -![Screenshot of RealTimeAnaltyics](/docs/images/(17_revise_estimate.png) +![Screenshot of RealTimeAnaltyics](/docs/images/17_revise_estimate.png) ## Saved Estimates Tab Just what it implies. You will find any previously saved estimates under this tab. diff --git a/tutorials/README.md b/tutorials/README.md index 8669d71..5e7c359 100644 --- a/tutorials/README.md +++ b/tutorials/README.md @@ -71,7 +71,7 @@ Single-cell RNA sequencing (scRNA-seq) is a technique that enables the analysis ## **Long Read Sequence Analysis** Long read DNA sequence analysis involves analyzing sequencing reads typically longer than 10 thousand base pairs (bp) in length, compared with short read sequencing where reads are about 150 bp in length. -Oxford Nanopore has a pretty complete offering of notebook tutorials for handling long read data to do a variety of things including variant calling, RNAseq, Sars-Cov-2 analysis and much more. Access the notebooks [here](https://labs.epi2me.io/nbindex/) and on [GitHub](https://github.com/epi2me-labs/tutorials/tree/master/tutorials). These notebooks expect you are running locally and accessing the epi2me notebook server. To run them in Cloud Lab, skip the first cell that connects to the server and then the rest of the notebook should run correctly, with a few tweaks. Oxford Nanopore also offers a host of [Nextflow workflows](https://labs.epi2me.io/wfindex/) that will allow you to run a variety of long read pipelines. +Oxford Nanopore has a pretty complete offering of notebook tutorials for handling long read data to do a variety of things including variant calling, RNAseq, Sars-Cov-2 analysis and much more. Access the notebooks [here](https://labs.epi2me.io/nbindex/) and on [GitHub](https://github.com/epi2me-labs). These notebooks expect you are running locally and accessing the epi2me notebook server. To run them in Cloud Lab, skip the first cell that connects to the server and then the rest of the notebook should run correctly, with a few tweaks. Oxford Nanopore also offers a host of [Nextflow workflows](https://labs.epi2me.io/wfindex/) that will allow you to run a variety of long read pipelines. ## **Open Data** These publicly available datasets can save you time on data discovery and preparation by being curated and ready to use in your workflows. diff --git a/tutorials/notebooks/Azure_Open_AI/README.md b/tutorials/notebooks/Azure_Open_AI/README.md index e0ecb32..7aa867d 100644 --- a/tutorials/notebooks/Azure_Open_AI/README.md +++ b/tutorials/notebooks/Azure_Open_AI/README.md @@ -70,7 +70,7 @@ Now we will look at [adding and querying over your own data](#Upload-your-own-da If you have not already (A) Navigate to the Chat Playground. Here we will walk through the various options available to you. First, you can specify a `System Message` which tells the model what context with which to respond to inquiries. To modify this, (B) select `System message`, then (B) input a [System Message](https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/system-message#define-the-models-profile-capabilities-and-limitations-for-your-scenario) in the prompt box, then (D) click **Save**. -On the next tab over, you can (A) add your own data, which we dive into in the [next section](Upload-your-own-data-and-query-over-it). In the middle of the page is where you actually interact with the model (B) through the chat prompts. Always (C) clear the chat after each session. +On the next tab over, you can (A) add your own data, which we dive into in the [next section](#Upload-your-own-data-and-query-over-it). In the middle of the page is where you actually interact with the model (B) through the chat prompts. Always (C) clear the chat after each session. ![add your own data](/docs/images/18_add_custom_data.png) diff --git a/tutorials/notebooks/SpleenLiverSegmentation/README.md b/tutorials/notebooks/SpleenLiverSegmentation/README.md index 0e1c4a3..976552f 100644 --- a/tutorials/notebooks/SpleenLiverSegmentation/README.md +++ b/tutorials/notebooks/SpleenLiverSegmentation/README.md @@ -1,14 +1,16 @@ # Spleen Segmentation with Liver Example using NVIDIA Models and MONAI _We have put together a training example that segments the Spleen in 3D CT Images. At the end is an example of combining both the Spleen model and the Liver model._ +*Nvidia has changed some of the models used in this tutorial and it may crash, if you have issues, try commenting out the liver model, we are working on a patch* + ## Introduction Two pre-trained models from NVIDIA are used in this training, a Spleen model and Liver. The Spleen model is additionally retrained on the medical decathlon spleen dataset: [http://medicaldecathlon.com/](http://medicaldecathlon.com/) Data is not necessary to be downloaded to run the notebook. The notebook downloads the data during it's run. The notebook uses the Python package [MONAI](https://monai.io/), the Medical Open Network for Artificial Intelligence. -- Spleen Model - [clara_pt_spleen_ct_segmentation_V2](https://catalog.ngc.nvidia.com/orgs/nvidia/teams/med/models/clara_pt_spleen_ct_segmentation) -- Liver Model - [clara_pt_liver_and_tumor_ct_segmentation_V1](https://catalog.ngc.nvidia.com/orgs/nvidia/teams/med/models/clara_pt_liver_and_tumor_ct_segmentation) +- Spleen Model - [clara_pt_spleen_ct_segmentation_V2](https://catalog.ngc.nvidia.com/orgs/nvidia/teams/monaitoolkit/models/monai_spleen_ct_segmentation) +- Liver Model - [clara_pt_liver_and_tumor_ct_segmentation_V1]() ## Outcomes After following along with this notebook the user will be familiar with: From ffcc85df21bddcb0ef6dc2b186ffbabc73996a6f Mon Sep 17 00:00:00 2001 From: Kyle O'Connell Date: Tue, 5 Dec 2023 14:34:56 -0500 Subject: [PATCH 4/7] fixed additional links --- .markdown-link-check.json | 3 +++ docs/Using_The_Azure_Price_Calculator.md | 2 +- docs/billing_and_cost_management.md | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/.markdown-link-check.json b/.markdown-link-check.json index 7146ab9..009cdb1 100644 --- a/.markdown-link-check.json +++ b/.markdown-link-check.json @@ -2,6 +2,9 @@ "ignorePatterns": [ { "pattern": "^#" + }, + { + "pattern": "^https://platform.openai.com/docs/guides/prompt-engineering" } ], "replacementPatterns": [ diff --git a/docs/Using_The_Azure_Price_Calculator.md b/docs/Using_The_Azure_Price_Calculator.md index 0318fb1..5136067 100644 --- a/docs/Using_The_Azure_Price_Calculator.md +++ b/docs/Using_The_Azure_Price_Calculator.md @@ -69,7 +69,7 @@ The Databases tab displays tiles listing your Azure database options. ### Analytics This tab displays the available Azure based analytic tools. -![Screenshot of Analytics Products](/docs/images/(11_analytics_products.png) +![Screenshot of Analytics Products](/docs/images/11_analytics_products.png) ### AI + machine learning The AI + machine learning tab displays tiles of of available products related to the title. diff --git a/docs/billing_and_cost_management.md b/docs/billing_and_cost_management.md index 7e09983..782dc3a 100644 --- a/docs/billing_and_cost_management.md +++ b/docs/billing_and_cost_management.md @@ -65,7 +65,7 @@ You can add a tag to pretty much any resource but let's look at a few examples. The left panel on the subscription home screen lists your options for managing costs within your subscription. Overview gives you a snapshot of your current and predicted future spending rates. - ![Billing Dashboard](/docs/images/1_billing_dashboard_image) + ![Billing Dashboard](/docs/images/1_billing_dashboard_image.png) Under **Cost Management** there are three tools to help you manage costs, Cost analysis, Cost alerts, and Budgets. Additionally there is one tool called Advisor recommendations to help you configure your Subscription, and resources, in the most cost effective manners. From d933c35e294a563506eb6b366bee878737ff19c2 Mon Sep 17 00:00:00 2001 From: Kyle O'Connell Date: Tue, 5 Dec 2023 14:37:30 -0500 Subject: [PATCH 5/7] added one more url to the ignore json --- .markdown-link-check.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.markdown-link-check.json b/.markdown-link-check.json index 009cdb1..b394a03 100644 --- a/.markdown-link-check.json +++ b/.markdown-link-check.json @@ -4,7 +4,7 @@ "pattern": "^#" }, { - "pattern": "^https://platform.openai.com/docs/guides/prompt-engineering" + "pattern": "^https://platform.openai.com/docs/guides/" } ], "replacementPatterns": [ From 193b8da8286b50e4cb9f55463f6b2a56de0d3e20 Mon Sep 17 00:00:00 2001 From: Kyle O'Connell Date: Tue, 5 Dec 2023 14:47:03 -0500 Subject: [PATCH 6/7] adding notebook checking --- .github/workflows/check-jupyter.yml | 36 +++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 .github/workflows/check-jupyter.yml diff --git a/.github/workflows/check-jupyter.yml b/.github/workflows/check-jupyter.yml new file mode 100644 index 0000000..d5de22c --- /dev/null +++ b/.github/workflows/check-jupyter.yml @@ -0,0 +1,36 @@ +name: Test Notebooks + +on: + push: + branches: + - main + +jobs: + test-notebooks: + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v2 + + - name: Set up Python + uses: actions/setup-python@v3 + with: + python-version: 3.8 + + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install jupyter nbformat nbconvert + + - name: Execute Notebooks + run: | + find tutorials/notebooks/* -name '*.ipynb' -exec jupyter nbconvert --to notebook --execute {} + + + - name: Check for errors + run: | + if [ $? -ne 0 ]; then + echo "Notebook execution failed." + exit 1 + fi + From af25c8816b84ca41a7bcf0768736fc42a427e681 Mon Sep 17 00:00:00 2001 From: Kyle O'Connell Date: Tue, 5 Dec 2023 14:49:09 -0500 Subject: [PATCH 7/7] enabled jupyter check on pr --- .github/workflows/check-jupyter.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/check-jupyter.yml b/.github/workflows/check-jupyter.yml index d5de22c..2725efb 100644 --- a/.github/workflows/check-jupyter.yml +++ b/.github/workflows/check-jupyter.yml @@ -3,7 +3,10 @@ name: Test Notebooks on: push: branches: - - main + - '*' + pull_request: + branches: + - '*' jobs: test-notebooks: