From 2228599a11af2d0a0c9740b49e7458a880a2b4b1 Mon Sep 17 00:00:00 2001 From: Tom Close Date: Mon, 5 Aug 2024 15:19:14 +1000 Subject: [PATCH 01/10] added tutorial and fixed up some syntax to match pydra2app --- .gitignore | 2 +- .../edu/sydney/sydneyimaging/t1_preproc.yaml | 29 +- .../examples/bet.yaml | 44 +- .../examples/zip.yaml | 69 +- tests/test_bet.py | 26 +- tests/test_zip.py | 30 +- tutorial/ais-pipelines-tutorial.ipynb | 1407 +++++++++++++++++ 7 files changed, 1518 insertions(+), 89 deletions(-) create mode 100644 tutorial/ais-pipelines-tutorial.ipynb diff --git a/.gitignore b/.gitignore index ce9a353..9381399 100644 --- a/.gitignore +++ b/.gitignore @@ -22,7 +22,7 @@ test.log /docker-tests ~* /docs/source/_static/images/logo-square.png -/src/australianimagingservice_community/_version.py +/src/**/_version.py *.venv .mypy_cache .build* diff --git a/specs/australian-imaging-service-community/au/edu/sydney/sydneyimaging/t1_preproc.yaml b/specs/australian-imaging-service-community/au/edu/sydney/sydneyimaging/t1_preproc.yaml index 9fced27..61e55a4 100644 --- a/specs/australian-imaging-service-community/au/edu/sydney/sydneyimaging/t1_preproc.yaml +++ b/specs/australian-imaging-service-community/au/edu/sydney/sydneyimaging/t1_preproc.yaml @@ -1,5 +1,5 @@ -arcana_spec_version: 1.0 # the version of the specification format used for this file -title: 'Preprocess T1-weighted MRI' # Short name for the pipeline referenced in the UI +title: "Preprocess T1-weighted MRI" # Short name for the pipeline referenced in the UI +spec_version: 1.0 # the version of the specification format used for this file version: # The version of Ubuntu's zip we are using package: "1.0" @@ -24,18 +24,19 @@ packages: neurodocker: mrtrix3: 3.0.2 command: - task: australianimagingservice.community.au.edu.sydney.sydneyimaging.t1_preproc:t1_preproc # Use the generic "shell-cmd" task - row_frequency: session # the pipeline is desgined to run on imaging "sessions" as opposed to "subjects" or "projects" - inputs: # List the inputs that are presented to end-user in UI + task: australianimagingservice.community.au.edu.sydney.sydneyimaging.t1_preproc:t1_preproc # Use the generic "shell-cmd" task + row_frequency: session # the pipeline is desgined to run on imaging "sessions" as opposed to "subjects" or "projects" + inputs: # List the inputs that are presented to end-user in UI example_input: - datatype: medimage/dicom-series # MIME-type or "MIME-like" format - help: "Example Input" # description of field presented in UI - outputs: # List the outputs generated by the pipeline + datatype: medimage/dicom-series # MIME-type or "MIME-like" format + help: "Example Input" # description of field presented in UI + outputs: # List the outputs generated by the pipeline example_output: - datatype: medimage/nifti-gz-x # MIME-type or "MIME-like" format - help: Example Output # description of field presented in UI - parameters: # Parameters exposed to user to UI + datatype: medimage/nifti-gz-x # MIME-type or "MIME-like" format + help: Example Output # description of field presented in UI + parameters: # Parameters exposed to user to UI example_param: - datatype: field/integer # Format of the field - help: an example parameter # description of field presented in UI - default: 99 # Default value, filled in on the UI + datatype: field/integer # Format of the field + help: an example parameter # description of field presented in UI + default: 99 # Default value, filled in on the UI + diff --git a/specs/australian-imaging-service-community/examples/bet.yaml b/specs/australian-imaging-service-community/examples/bet.yaml index bdf97d3..6437ec1 100644 --- a/specs/australian-imaging-service-community/examples/bet.yaml +++ b/specs/australian-imaging-service-community/examples/bet.yaml @@ -1,5 +1,5 @@ -arcana_spec_version: 1.0 # the version of the specification format used for this file -title: 'Example BET pipeline' # Short name for the pipeline referenced in the UI +spec_version: 1.0 # the version of the specification format used for this file +title: "Example BET pipeline" # Short name for the pipeline referenced in the UI version: # Define a version for the pipeline in combination of the underlying package version (e.g. FSL) # and the "build" of the pipeline @@ -8,8 +8,8 @@ version: base_image: # Chose a NeuroDesk FSL container as the base name: vnmd/fsl_6.0.6.4 - package_manager: apt # It is not obvious from the base image what the package manager is - tag: '20230618' + package_manager: apt # It is not obvious from the base image what the package manager is + tag: "20230618" packages: # Install dependencies for DICOM->NIfTI conversion pip: @@ -22,29 +22,29 @@ authors: - name: Thomas G. Close email: thomas.close@sydney.edu.au docs: - info_url: https://fsl.fmrib.ox.ac.uk/fsl/fslwiki # Link to external documentation for underlying tool - description: | # Description of tool for auto-docs + info_url: https://fsl.fmrib.ox.ac.uk/fsl/fslwiki # Link to external documentation for underlying tool + description: | # Description of tool for auto-docs An example wrapping BET in a XNAT pipeline command: - task: arcana.common:shell_cmd # Use the generic "shell-cmd" task - row_frequency: session # the pipeline is desgined to run on imaging "sessions" as opposed to "subjects" or "projects" - inputs: # List the inputs that are presented to end-user in UI + task: shell # Use the generic "shell-cmd" task + row_frequency: session # the pipeline is desgined to run on imaging "sessions" as opposed to "subjects" or "projects" + inputs: # List the inputs that are presented to end-user in UI T1w: - datatype: medimage/nifti-gz # MIME-type or "MIME-like" format - help: "T1-weighted anatomical scan" # description of field presented in UI - configuration: # Additional configuration parameters that are passed to the arcana.common:shell_cmd task in the "inputs" dict - position: -2 # Position of field when printed to command line call. Negative numbers are indexed from the end backwards - argstr: '' # prefix for field when printed to command line + datatype: medimage/nifti-gz # MIME-type or "MIME-like" format + help: "T1-weighted anatomical scan" # description of field presented in UI + configuration: # Additional configuration parameters that are passed to the pydra2app.common:shell task in the "inputs" dict + position: -2 # Position of field when printed to command line call. Negative numbers are indexed from the end backwards + argstr: "" # prefix for field when printed to command line column_defaults: - datatype: medimage/dicom-series # the default - outputs: # List the outputs generated by the pipeline + datatype: medimage/dicom-series # the default + outputs: # List the outputs generated by the pipeline brain: - datatype: medimage/nifti-gz # MIME-type or "MIME-like" format - help: Brain-extracted data # description of field presented in UI - configuration: # Additional configuration parameters that are passed to the arcana.common:shell_cmd task in the "outputs" dict - position: -1 # Position of field when printed to command line call. Negative numbers are indexed from the end backwards - argstr: '' # prefix for field when printed to command line + datatype: medimage/nifti-gz # MIME-type or "MIME-like" format + help: Brain-extracted data # description of field presented in UI + configuration: # Additional configuration parameters that are passed to the pydra2app.common:shell task in the "outputs" dict + position: -1 # Position of field when printed to command line call. Negative numbers are indexed from the end backwards + argstr: "" # prefix for field when printed to command line parameters: {} - configuration: # Additional args passed to arcana.common:shell_cmd + configuration: # Additional args passed to pydra2app.common:shell name: bet executable: bet diff --git a/specs/australian-imaging-service-community/examples/zip.yaml b/specs/australian-imaging-service-community/examples/zip.yaml index daef1dd..036a0c8 100644 --- a/specs/australian-imaging-service-community/examples/zip.yaml +++ b/specs/australian-imaging-service-community/examples/zip.yaml @@ -1,5 +1,7 @@ -arcana_spec_version: 1.0 # the version of the specification format used for this file -title: 'Zip up a directory' # Short name for the pipeline referenced in the UI +# The version of the specification format used for this file +spec_version: 1.0 +# Short name for the pipeline referenced in the UI +title: "Zips up a file or directory" version: # The version of Ubuntu's zip we are using package: "3.0" @@ -21,34 +23,53 @@ docs: packages: # Install the zip command in the Ubuntu image system: - - zip + - zip command: - task: arcana.common:shell_cmd # Use the generic "shell-cmd" task - row_frequency: session # the pipeline is desgined to run on imaging "sessions" as opposed to "subjects" or "projects" - inputs: # List the inputs that are presented to end-user in UI + # Use the generic "shell-command" task + task: pydra2app.common:shell + # the pipeline is desgined to run on imaging "sessions" as opposed to "subjects" or "projects" + row_frequency: session + # List the inputs that are presented to end-user in UI + inputs: to_zip: - datatype: generic/fs-object # MIME-type or "MIME-like" format - help: "Input file-system object to zip" # description of field presented in UI - configuration: # Additional configuration args that are passed to the arcana.common:shell_cmd task as part of the "inputs" dict - argstr: '' # Position of field when printed to command line call. Negative numbers are indexed from the end backwards - position: -1 # prefix for field when printed to command line - outputs: # List the outputs generated by the pipeline + # MIME-type or "MIME-like" format, generic/fs-object corresponds a file or directory + datatype: generic/fs-object + # description of field presented in UI + help: "Input file-system object to zip" + # Additional config args that are passed to the shell task as part of the "inputs" dict + configuration: + # Position of field on command line call. Negative numbers are indexed backwards from the end + argstr: "" + # prefix for field when printed to command line + position: -1 + # List the outputs generated by the pipeline + outputs: zipped: - datatype: application/zip # MIME-type or "MIME-like" format - help: Zipped FS Object # description of field presented in UI + # MIME-type or "MIME-like" format + datatype: application/zip + # description of field presented in UI + help: Zipped file-system Object + # Additional config args that are passed to the shell task as part of the "outputs" dict configuration: - argstr: '' # Position of field when printed to command line call. Negative numbers are indexed from the end backwards - position: -2 # prefix for field when printed to command line - parameters: # Parameters exposed to user to UI + # Position of field on command line call. Negative numbers are indexed backwards from the end + argstr: "" + # prefix for field when printed to command line + position: -2 + # Parameters exposed to user to UI + parameters: compression: - datatype: field/integer # Format of the field - help: the level of compression applied # description of field presented in UI - default: 5 # Default value, filled in on the UI - configuration: # Additional configuration parameter args that are passed to the arcana.common:shell_cmd task in the "parameters" dict + # Format of the field + datatype: field/integer + # description of field presented in UI + help: the level of compression applied + # Default value, filled in on the UI + default: 5 + # Additional config args that are passed to the shell task in the "parameters" dict + configuration: # string template for field when printed to command line. "{field-name}" are # replaced by the value provided to the field name argstr: -{compression} - configuration: # Additional args passed to arcana.common:shell_cmd - name: zip_dir + # Additional args passed to shell + configuration: + # the command to run executable: zip - \ No newline at end of file diff --git a/tests/test_bet.py b/tests/test_bet.py index 10016ec..9970f39 100644 --- a/tests/test_bet.py +++ b/tests/test_bet.py @@ -1,11 +1,11 @@ - from pathlib import Path import tempfile from arcana.common import Clinical from fileformats.medimage import NiftiGz from arcana.common import DirTree from arcana.testing.data.blueprint import ( - TestDatasetBlueprint, FileSetEntryBlueprint as FileBP + TestDatasetBlueprint, + FileSetEntryBlueprint as FileBP, ) from arcana.core.deploy.command import ContainerCommand from medimages4tests.mri.neuro.t1w import get_image @@ -19,13 +19,13 @@ NiftiGz(get_image()).copy(source_dir, new_stem="t1w") bp = TestDatasetBlueprint( - hierarchy=["session"], - space=Clinical, - dim_lengths=[1, 1, 1], - entries=[ - FileBP(path="t1_weighted", datatype=NiftiGz, filenames=["t1w.nii.gz"]), - ], - ) + hierarchy=["session"], + space=Clinical, + dim_lengths=[1, 1, 1], + entries=[ + FileBP(path="t1_weighted", datatype=NiftiGz, filenames=["t1w.nii.gz"]), + ], +) work_dir = Path(tempfile.mkdtemp()) @@ -33,7 +33,7 @@ saved_dataset = bp.make_dataset(DirTree(), dataset_id, name="", source_data=source_dir) command_spec = ContainerCommand( - task="arcana.common:shell_cmd", + task="arcana.common:shell", row_frequency=Clinical.session, inputs=[ { @@ -43,7 +43,7 @@ "configuration": { "argstr": "", "position": -2, - } + }, }, ], outputs=[ @@ -54,12 +54,12 @@ "configuration": { "argstr": "", "position": -1, - } + }, } ], configuration={ "executable": "bet", - } + }, ) # Start generating the arguments for the CLI # Add source to loaded dataset diff --git a/tests/test_zip.py b/tests/test_zip.py index 842294a..329389b 100644 --- a/tests/test_zip.py +++ b/tests/test_zip.py @@ -1,4 +1,3 @@ - from pathlib import Path import tempfile import operator as op @@ -8,21 +7,22 @@ from arcana.common import DirTree from arcana.testing import TestDataSpace from arcana.testing.data.blueprint import ( - TestDatasetBlueprint, FileSetEntryBlueprint as FileBP + TestDatasetBlueprint, + FileSetEntryBlueprint as FileBP, ) from arcana.core.deploy.command import ContainerCommand bp = TestDatasetBlueprint( - hierarchy=[ - "abcd" - ], # e.g. XNAT where session ID is unique in project but final layer is organised by timepoint - space=TestDataSpace, - dim_lengths=[1, 1, 1, 1], - entries=[ - FileBP(path="dir1", datatype=Directory, filenames=["dir"]), - ], - ) + hierarchy=[ + "abcd" + ], # e.g. XNAT where session ID is unique in project but final layer is organised by timepoint + space=TestDataSpace, + dim_lengths=[1, 1, 1, 1], + entries=[ + FileBP(path="dir1", datatype=Directory, filenames=["dir"]), + ], +) work_dir = Path(tempfile.mkdtemp()) @@ -30,7 +30,7 @@ saved_dataset = bp.make_dataset(DirTree(), dataset_id, name="") command_spec = ContainerCommand( - task="arcana.common:shell_cmd", + task="arcana.common:shell", row_frequency=bp.space.default(), inputs=[ { @@ -40,7 +40,7 @@ "configuration": { "argstr": "", "position": -1, - } + }, }, ], outputs=[ @@ -51,7 +51,7 @@ "configuration": { "argstr": "", "position": -2, - } + }, } ], parameters=[ @@ -67,7 +67,7 @@ ], configuration={ "executable": "zip", - } + }, ) # Start generating the arguments for the CLI # Add source to loaded dataset diff --git a/tutorial/ais-pipelines-tutorial.ipynb b/tutorial/ais-pipelines-tutorial.ipynb new file mode 100644 index 0000000..d4a6950 --- /dev/null +++ b/tutorial/ais-pipelines-tutorial.ipynb @@ -0,0 +1,1407 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "7cce59cd", + "metadata": {}, + "source": [ + "# NIF ASM - AIS Pipelines Workshop" + ] + }, + { + "cell_type": "markdown", + "id": "5cf50801", + "metadata": {}, + "source": [ + "In this workshop you will learn how to design, deploy and run Australian Imaging Service pipelines\n", + "\n", + "##### Preparation\n", + "1. Generate a SSH to be used for GitHub login\n", + "1. Sign-in to GitHub and clone the community pipelines repository\n", + "1. Start up a test XNAT instance to test the pipelines\n", + "\n", + "##### Build and deploy your first pipelines\n", + "1. Explore the community pipelines repository\n", + "1. Build *Zip* pipeline from an existing example specification\n", + "1. Install, enable and launch the zip pipeline using the XNAT UI\n", + "1. Build *FSL BET* pipeline image\n", + "1. Install, enable and launch the BET pipeline using `pydra2app ext xnat *-command`\n", + "\n", + "##### Design a pipeline to run mri_synthstrip\n", + "1. Create a new Git branch\n", + "1. Write specification for *mri_synthstrip* command\n", + "1. Build *mri_synthstrip* pipeline\n", + "1. Install project-specific Freesurfer license\n", + "1. Test the *mri_synthstrip* pipeline\n", + "1. Create a test pull-request on GitHub\n", + "\n", + "##### Design your own pipeline (if you have one in mind)\n", + "\n", + "Design, build and test your own pipeline using the methods demonstrated in previous sections\n" + ] + }, + { + "cell_type": "markdown", + "id": "abb470f7", + "metadata": {}, + "source": [ + "## Preparation" + ] + }, + { + "cell_type": "markdown", + "id": "a750f068", + "metadata": {}, + "source": [ + "### Generate SSH key to be used for GitHub login" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "292bb7a9", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Generating public/private rsa key pair.\n", + "Your identification has been saved in /Users/tclose/dummy/.ssh/id_rsa.pub\n", + "Your public key has been saved in /Users/tclose/dummy/.ssh/id_rsa.pub.pub\n", + "The key fingerprint is:\n", + "SHA256:Mx521OTxxmmV3RCArwChN6Xc44Mm4FMoA27aknW8KkU tclose@AC02CK0RAMD6M\n", + "The key's randomart image is:\n", + "+---[RSA 3072]----+\n", + "|. ... .+.oo=|\n", + "|o o o.+ .+ + +o|\n", + "|ooE = =.o ..o * |\n", + "|oO + o +.o .o |\n", + "|+ = o o S... |\n", + "| o o o o *. |\n", + "|. . . |\n", + "| . |\n", + "| |\n", + "+----[SHA256]-----+\n" + ] + } + ], + "source": [ + "ssh-keygen -t rsa -N \"\" -f $HOME/dummy/.ssh/id_rsa.pub" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "id": "ca85f05f", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "bash: dummy: command not found\n" + ] + }, + { + "ename": "", + "evalue": "127", + "output_type": "error", + "traceback": [] + } + ], + "source": [ + "dummy cat $HOME/dummy/.ssh/id_rsa.pub" + ] + }, + { + "cell_type": "markdown", + "id": "dcae86db", + "metadata": {}, + "source": [ + "Copy this key including the '----START...' and '----END...' lines and paste it into your github SSH keys section (instructions below)" + ] + }, + { + "cell_type": "markdown", + "id": "8211d030", + "metadata": {}, + "source": [ + "### Sign-in to GitHub and clone the community pipelines repository" + ] + }, + { + "cell_type": "markdown", + "id": "d7b5528a", + "metadata": {}, + "source": [ + "Fork your own copy of the community pipelines repo\n", + "\n", + "1. Navigate to https://github.com\n", + "1. Create a GitHub user account (if you don't have one already)\n", + "1. Add the SSH key generated in the first step to your GitHub account under `Settings>SSH and GPG keys` (Settings are accessed by clicking your avatar in the top right hand corner)\n", + "1. Fork the https://github.com/Australian-Imaging-Service/pipelines-community into your GitHub user account" + ] + }, + { + "cell_type": "markdown", + "id": "e0e96a8c", + "metadata": {}, + "source": [ + "Set up git user on the virtual machine" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "73a67d27", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "bash: dummy: command not found\n", + "bash: dummy: command not found\n" + ] + }, + { + "ename": "", + "evalue": "127", + "output_type": "error", + "traceback": [] + } + ], + "source": [ + "dummy git config --global user.name \"Your Name\"\n", + "dummy git config --global user.email \"youremail@example.com\"" + ] + }, + { + "cell_type": "markdown", + "id": "a2628fc7", + "metadata": {}, + "source": [ + "Clone your copy of the pipelines community" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "c88af65c", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "bash: your-github-username: No such file or directory\n" + ] + }, + { + "ename": "", + "evalue": "1", + "output_type": "error", + "traceback": [] + } + ], + "source": [ + "mkdir -p ~/git\n", + "git clone git@github.com:/pipelines-community ~/git/pipelines-community" + ] + }, + { + "cell_type": "markdown", + "id": "8b77605a", + "metadata": {}, + "source": [ + "### Install the prerequite packages" + ] + }, + { + "cell_type": "markdown", + "id": "1d1bb269", + "metadata": {}, + "source": [ + "Install the packages via a Pip" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "id": "bb67958b", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[31mERROR: Could not open requirements file: [Errno 2] No such file or directory: './tutorial/requirements.txt'\u001b[0m\u001b[31m\n", + "\u001b[0m\n", + "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m23.3.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m24.2\u001b[0m\n", + "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpython3.10 -m pip install --upgrade pip\u001b[0m\n" + ] + }, + { + "ename": "", + "evalue": "1", + "output_type": "error", + "traceback": [] + } + ], + "source": [ + "pip install -r ./tutorial/requirements.txt" + ] + }, + { + "cell_type": "markdown", + "id": "296e2db7", + "metadata": {}, + "source": [ + "### Start up the Jupyter Notebook" + ] + }, + { + "cell_type": "markdown", + "id": "53e41a91", + "metadata": {}, + "source": [ + "Launch a \"live\" version of this notebook so you can run the command within it" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b9e59ec6", + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "jupyter notebook " + ] + }, + { + "cell_type": "markdown", + "id": "ef7fdcb3", + "metadata": {}, + "source": [ + "**NOTE:** You can now close the static version of this page and switch to the live version" + ] + }, + { + "cell_type": "markdown", + "id": "9f943cc5", + "metadata": {}, + "source": [ + "### Start up a test XNAT instance to test the pipelines" + ] + }, + { + "cell_type": "markdown", + "id": "155ad9ba", + "metadata": {}, + "source": [ + "Start a test XNAT on your machine/VM using the `xnat4tests` package" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "fefe84fb", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2024-08-05 08:23:39,577 - xnat4tests - INFO - Building xnat4tests in '/Users/tclose/.xnat4tests/build' directory\n", + "2024-08-05 08:23:39,822 - xnat4tests - INFO - Built xnat4tests successfully\n", + "2024-08-05 08:23:39,826 - xnat4tests - INFO - Did not find xnat4tests container, relaunching\n", + "2024-08-05 08:23:40,569 - xnat4tests - INFO - xnat4tests launched successfully\n", + "2024-08-05 08:23:40,569 - xnat4tests - INFO - Attempting to connect to http://localhost:8080\n", + "2024-08-05 08:23:40,569 - xnat4tests - INFO - Connecting to http://localhost:8080 as 'admin'\n", + "2024-08-05 08:23:45,573 - xnat4tests - INFO - Connecting to http://localhost:8080 as 'admin'\n", + "2024-08-05 08:23:50,584 - xnat4tests - INFO - Connecting to http://localhost:8080 as 'admin'\n", + "2024-08-05 08:25:10,375 - xnat4tests - INFO - Connecting to http://localhost:8080 as 'admin'\n", + "2024-08-05 08:25:15,535 - xnat4tests - INFO - Connecting to http://localhost:8080 as 'admin'\n", + "2024-08-05 08:25:16,506 - xnat4tests - INFO - Connected to http://localhost:8080 successfully\n", + "2024-08-05 08:25:16,555 - xnat4tests - INFO - Configuing docker server for container service\n" + ] + } + ], + "source": [ + "xnat4tests start" + ] + }, + { + "cell_type": "markdown", + "id": "500f569d", + "metadata": {}, + "source": [ + "It will take XNAT a couple of minutes to boot up. Once the frame above completes successfully you will be able to navigate to http://localhost:8080 and login with username=`admin`, password=`admin`.\n", + "\n", + "Now we will add some open-source data from OpenNeuro to our XNAT in order to test the pipelines we will build" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "56a8b6fb", + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2024-08-05 08:26:32,726 - xnat4tests - INFO - Connecting to http://localhost:8080 as 'admin'\n", + "2024-08-05 08:26:33,326 - xnat4tests - INFO - Connecting to http://localhost:8080 as 'admin'\n", + "2024-08-05 08:26:38,272 - xnat4tests - INFO - Connecting to http://localhost:8080 as 'admin'\n" + ] + } + ], + "source": [ + "xnat4tests add-data openneuro-t1w" + ] + }, + { + "cell_type": "markdown", + "id": "a3aafaa2", + "metadata": {}, + "source": [ + "## Build and deploy your first pipelines" + ] + }, + { + "cell_type": "markdown", + "id": "78fdb31d", + "metadata": {}, + "source": [ + "### Explore the community pipelines repository" + ] + }, + { + "cell_type": "markdown", + "id": "86d0bf23", + "metadata": {}, + "source": [ + "Examine the structure of the pipelines repository using the `tree` utility" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "7de3909f", + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[01;34m.\u001b[0m\n", + "├── \u001b[00mLICENSE\u001b[0m\n", + "├── \u001b[00mREADME.md\u001b[0m\n", + "└── \u001b[00mnif-asm-pipelines-workshop.ipynb\u001b[0m\n", + "\n", + "1 directory, 3 files\n" + ] + } + ], + "source": [ + "tree . --gitignore" + ] + }, + { + "cell_type": "markdown", + "id": "521d8ef7", + "metadata": {}, + "source": [ + "Examine the layout of the *Zip* pipelines specification" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "7fafd93b", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "# the version of the specification format used for this file\n", + "spec_version: 1.0\n", + "# Short name for the pipeline referenced in the UI\n", + "title: \"Zips up a file or directory\"\n", + "version:\n", + " # The version of Ubuntu's zip we are using\n", + " package: \"3.0\"\n", + "base_image:\n", + " # Pick a generic base image, in this case Ubuntu - Jammy (22.04LTS)\n", + " name: ubuntu\n", + " tag: jammy\n", + "authors:\n", + " # Authors of the pipeline. The first email will be considered to be the maintainer of\n", + " # the generated container images\n", + " - name: Thomas G. Close\n", + " email: thomas.close@sydney.edu.au\n", + "docs:\n", + " # Link to the external documentation for the tool\n", + " info_url: https://manpages.ubuntu.com/manpages/focal/man1/zip.1.html\n", + " # Description for auto-generated docss\n", + " description: |\n", + " This is a simple pipeline that zips up the given directory\n", + "packages:\n", + " # Install the zip command in the Ubuntu image\n", + " system:\n", + " - zip\n", + "command:\n", + " # Use the generic \"shell-cmd\" task\n", + " task: pydra2app.common:shell\n", + " # the pipeline is desgined to run on imaging \"sessions\" as opposed to \"subjects\" or \"projects\"\n", + " row_frequency: session\n", + " # List the inputs that are presented to end-user in UI\n", + " inputs:\n", + " to_zip:\n", + " # MIME-type or \"MIME-like\" format, generic/fs-object corresponds a file or directory\n", + " datatype: generic/fs-object\n", + " # description of field presented in UI\n", + " help: \"Input file-system object to zip\"\n", + " # Additional config args that are passed to the shell task as part of the \"inputs\" dict\n", + " configuration:\n", + " # Position of field on command line call. Negative numbers are indexed backwards from the end\n", + " argstr: \"\"\n", + " # prefix for field when printed to command line\n", + " position: -1\n", + " # List the outputs generated by the pipeline\n", + " outputs:\n", + " zipped:\n", + " # MIME-type or \"MIME-like\" format\n", + " datatype: application/zip\n", + " # description of field presented in UI\n", + " help: Zipped file-system Object\n", + " # Additional config args that are passed to the shell task as part of the \"outputs\" dict\n", + " configuration:\n", + " # Position of field on command line call. Negative numbers are indexed backwards from the end\n", + " argstr: \"\"\n", + " # prefix for field when printed to command line\n", + " position: -2\n", + " parameters: # Parameters exposed to user to UI\n", + " compression:\n", + " # Format of the field\n", + " datatype: field/integer\n", + " # description of field presented in UI\n", + " help: the level of compression applied\n", + " # Default value, filled in on the UI\n", + " default: 5\n", + " # Additional config args that are passed to the shell task in the \"parameters\" dict\n", + " configuration:\n", + " # string template for field when printed to command line. \"{field-name}\" are\n", + " # replaced by the value provided to the field name\n", + " argstr: -{compression}\n", + " # Additional args passed to pydra2app.common:shell\n", + " configuration:\n", + " # the command to run\n", + " executable: zip\n" + ] + } + ], + "source": [ + "cat australian-imaging-service-community/examples/zip.yaml" + ] + }, + { + "cell_type": "markdown", + "id": "9d6dd189", + "metadata": {}, + "source": [ + "Checkout the help for the `pydra2app make` command we will use to build the pipeline from the specification" + ] + }, + { + "cell_type": "markdown", + "id": "180e8f7d", + "metadata": {}, + "source": [ + "### Build *Zip* pipeline from an existing example specification" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "3a6a38f7", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Usage: pydra2app make-app [OPTIONS] SPEC_PATH TARGET\n", + "\n", + " Construct and build a dockerfile/apptainer-file for containing a pipeline\n", + "\n", + " SPEC_PATH is the file system path to the specification to build, or\n", + " directory containing multiple specifications\n", + "\n", + " TARGET is the type of image to build, e.g. pydra2app.xnat.deploy:XnatApp the\n", + " target should resolve to a class deriviing from pydra2app.core.App. If it is\n", + " located under the `pydra2app.deploy`, then that prefix can be dropped, e.g.\n", + " common:App\n", + "\n", + "Options:\n", + " --registry TEXT The Docker registry to deploy the pipeline\n", + " to\n", + " --build-dir PATH Specify the directory to build the Docker\n", + " image in. Defaults to `.build` in the\n", + " directory containing the YAML specification\n", + " --release \n", + " Name of the release for the package as a\n", + " whole (i.e. for all pipelines)\n", + " --tag-latest / --dont-tag-latest\n", + " whether to tag the release as the \"latest\"\n", + " or not\n", + " --save-manifest PATH File path at which to save the build\n", + " manifest\n", + " --logfile PATH Log output to file instead of stdout\n", + " --loglevel TEXT The level to display logs at\n", + " --use-local-packages / --dont-use-local-packages\n", + " Use locally installed Python packages,\n", + " instead of pulling them down from PyPI\n", + " --install-extras TEXT Install extras to use when installing\n", + " Pydra2App inside the container image.\n", + " Typically only used in tests to provide\n", + " 'test' extra\n", + " --use-test-config / --dont-use-test-config\n", + " Build the image so that it can be run in\n", + " Pydra2App's test configuration (only for\n", + " internal use)\n", + " --raise-errors / --log-errors Raise exceptions instead of logging failures\n", + " --generate-only / --build Just create the build directory and\n", + " dockerfile\n", + " --license \n", + " Licenses provided at build time to be stored\n", + " in the image (instead of downloaded at\n", + " runtime)\n", + " --license-to-download TEXT Specify licenses that are not provided at\n", + " runtime and instead downloaded from the data\n", + " store at runtime in order to satisfy their\n", + " conditions\n", + " --check-registry / --dont-check-registry\n", + " Check the registry to see if an existing\n", + " image with the same tag is present, and if\n", + " so whether the specification matches (and\n", + " can be skipped) or not (raise an error)\n", + " --push / --dont-push push built images to registry\n", + " --clean-up / --dont-clean-up Remove built images after they are pushed to\n", + " the registry\n", + " --spec-root PATH The root path to consider the specs to be\n", + " relative to, defaults to CWD\n", + " -s, --source-package PATH Path to a local Python package to be\n", + " included in the image. Needs to have a\n", + " package definition that can be built into a\n", + " source distribution and the name of the\n", + " directory needs to match that of the package\n", + " to be installed. Multiple packages can be\n", + " specified by repeating the option.\n", + " -e, --export-file \n", + " Path to be exported from the Docker build\n", + " directory for convenience. Multiple files\n", + " can be specified by repeating the option.\n", + " --help Show this message and exit.\n" + ] + } + ], + "source": [ + "pydra2app make --help" + ] + }, + { + "cell_type": "markdown", + "id": "e5f1977e", + "metadata": {}, + "source": [ + "Run the `pydra2app make` command to build the Zip pipeline from its specification\n", + "\n", + "Notes:\n", + "\n", + "* The name of the built image is taken from its relative file-system path, so we pass the `--spec-root` option to specify where this should start from\n", + "* The `--use-test-config` is required to be able to run the pipeline using the test XNAT repository, i.e. it is only used in development not production\n", + "* We export the generated `xnat_command.json` file from the build directory, so we can easily copy it into the XNAT UI in subsequent steps" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "1d824073", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "pyenv: pydra2app: command not found\n", + "\n", + "The `pydra2app' command exists in these Python versions:\n", + " 3.11.8/envs/frametree-test\n", + " frametree-test\n", + "\n", + "Note: See 'pyenv help global' for tips on allowing both\n", + " python2 and python3 to be found.\n" + ] + }, + { + "ename": "", + "evalue": "127", + "output_type": "error", + "traceback": [] + } + ], + "source": [ + "pydra2app make xnat \\\n", + "australian-imaging-service-community/examples/zip.yaml \\\n", + "--spec-root ./specs \\\n", + "--for-localhost \\\n", + "--export-file xnat_command.json ~/zip-xnat-command.json" + ] + }, + { + "cell_type": "markdown", + "id": "0c723085", + "metadata": {}, + "source": [ + "We can take a look at the *XNAT command JSON* that is generated by the make process. This is the specification that\n", + "tells XNAT how to run the pipeline within the image" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "fa298a80", + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{\n", + " \"name\": \"zip\",\n", + " \"description\": \"zip 3.0: Zips up a file or directory\",\n", + " \"label\": \"zip\",\n", + " \"schema-version\": \"1.0\",\n", + " \"image\": \"examples/zip:3.0\",\n", + " \"index\": \"docker.io\",\n", + " \"datatype\": \"docker\",\n", + " \"override-entrypoint\": true,\n", + " \"mounts\": [\n", + " {\n", + " \"name\": \"in\",\n", + " \"writable\": false,\n", + " \"path\": \"/input\"\n", + " },\n", + " {\n", + " \"name\": \"out\",\n", + " \"writable\": true,\n", + " \"path\": \"/output\"\n", + " },\n", + " {\n", + " \"name\": \"work\",\n", + " \"writable\": true,\n", + " \"path\": \"/work\"\n", + " }\n", + " ],\n", + " \"ports\": {},\n", + " \"inputs\": [\n", + " {\n", + " \"name\": \"to_zip\",\n", + " \"description\": \"Match resource (application/x-fs-object) [SCAN-TYPE]: Input file-system object to zip \",\n", + " \"type\": \"string\",\n", + " \"default-value\": \"\",\n", + " \"required\": false,\n", + " \"user-settable\": true,\n", + " \"replacement-key\": \"[TO_ZIP_INPUT]\"\n", + " },\n", + " {\n", + " \"name\": \"compression\",\n", + " \"description\": \"Parameter (): the level of compression applied\",\n", + " \"type\": \"number\",\n", + " \"default-value\": 5,\n", + " \"required\": false,\n", + " \"user-settable\": true,\n", + " \"replacement-key\": \"[COMPRESSION_PARAM]\"\n", + " },\n", + " {\n", + " \"name\": \"Pydra2App_flags\",\n", + " \"description\": \"Flags passed to `run-pydra2app-pipeline` command\",\n", + " \"type\": \"string\",\n", + " \"default-value\": \"--plugin serial --work /wl --dataset-name default --loglevel info --export-work /work\",\n", + " \"required\": false,\n", + " \"user-settable\": true,\n", + " \"replacement-key\": \"#PYDRA2APP_FLAGS#\"\n", + " },\n", + " {\n", + " \"name\": \"PROJECT_ID\",\n", + " \"description\": \"Project ID\",\n", + " \"type\": \"string\",\n", + " \"required\": true,\n", + " \"user-settable\": false,\n", + " \"replacement-key\": \"[PROJECT_ID]\"\n", + " },\n", + " {\n", + " \"name\": \"SESSION_LABEL\",\n", + " \"description\": \"Imaging session label\",\n", + " \"type\": \"string\",\n", + " \"required\": true,\n", + " \"user-settable\": false,\n", + " \"replacement-key\": \"[SESSION_LABEL]\"\n", + " },\n", + " {\n", + " \"name\": \"SUBJECT_LABEL\",\n", + " \"description\": \"Subject label\",\n", + " \"type\": \"string\",\n", + " \"required\": true,\n", + " \"user-settable\": false,\n", + " \"replacement-key\": \"[SUBJECT_LABEL]\"\n", + " }\n", + " ],\n", + " \"outputs\": [\n", + " {\n", + " \"name\": \"zipped\",\n", + " \"description\": \"zipped (application/zip)\",\n", + " \"required\": true,\n", + " \"mount\": \"out\",\n", + " \"path\": \"zipped.zip\",\n", + " \"glob\": null\n", + " }\n", + " ],\n", + " \"xnat\": [\n", + " {\n", + " \"name\": \"zip\",\n", + " \"description\": \"Zips up a file or directory\",\n", + " \"contexts\": [\n", + " \"xnat:imageSessionData\"\n", + " ],\n", + " \"external-inputs\": [\n", + " {\n", + " \"name\": \"SESSION\",\n", + " \"description\": \"Imaging session\",\n", + " \"type\": \"Session\",\n", + " \"source\": null,\n", + " \"default-value\": null,\n", + " \"required\": true,\n", + " \"replacement-key\": null,\n", + " \"sensitive\": null,\n", + " \"provides-value-for-command-input\": null,\n", + " \"provides-files-for-command-mount\": \"in\",\n", + " \"via-setup-command\": null,\n", + " \"user-settable\": false,\n", + " \"load-children\": true\n", + " }\n", + " ],\n", + " \"derived-inputs\": [\n", + " {\n", + " \"name\": \"__SESSION_LABEL__\",\n", + " \"type\": \"string\",\n", + " \"derived-from-wrapper-input\": \"SESSION\",\n", + " \"derived-from-xnat-object-property\": \"label\",\n", + " \"provides-value-for-command-input\": \"SESSION_LABEL\",\n", + " \"user-settable\": false\n", + " },\n", + " {\n", + " \"name\": \"__SUBJECT_ID__\",\n", + " \"type\": \"string\",\n", + " \"derived-from-wrapper-input\": \"SESSION\",\n", + " \"derived-from-xnat-object-property\": \"subject-id\",\n", + " \"provides-value-for-command-input\": \"SUBJECT_LABEL\",\n", + " \"user-settable\": false\n", + " },\n", + " {\n", + " \"name\": \"__PROJECT_ID__\",\n", + " \"type\": \"string\",\n", + " \"derived-from-wrapper-input\": \"SESSION\",\n", + " \"derived-from-xnat-object-property\": \"project-id\",\n", + " \"provides-value-for-command-input\": \"PROJECT_ID\",\n", + " \"user-settable\": false\n", + " }\n", + " ],\n", + " \"output-handlers\": [\n", + " {\n", + " \"name\": \"zipped-resource\",\n", + " \"accepts-command-output\": \"zipped\",\n", + " \"via-wrapup-command\": null,\n", + " \"as-a-child-of\": \"SESSION\",\n", + " \"type\": \"Resource\",\n", + " \"label\": \"zipped\",\n", + " \"format\": \"application/zip\"\n", + " }\n", + " ]\n", + " }\n", + " ],\n", + " \"command-line\": \"conda run --no-capture-output -n pydra2app pydra2app ext xnat cs-entrypoint xnat-cs//[PROJECT_ID] --input to_zip '[TO_ZIP_INPUT]' --output zipped 'zipped' --parameter compression '[COMPRESSION_PARAM]' --dataset-hierarchy subject,session --ids [SESSION_LABEL] #PYDRA2APP_FLAGS#\"\n", + "}\n" + ] + } + ], + "source": [ + "cat ~/zip-xnat-command.json" + ] + }, + { + "cell_type": "markdown", + "id": "84498233", + "metadata": {}, + "source": [ + "### Install, enable and launch the zip pipeline using the XNAT UI" + ] + }, + { + "attachments": { + "Screen%20Shot%202024-08-05%20at%2012.59.37%20pm.png": { + "image/png": "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ylvPHPtNAQpQgAIUoAAFKEABClCAAhSgAAW8RIABKC85UewmBShAAQpQgAIUoAAFKEABClCAAhTwVgEGoLz1zLHfFKAABShAAQpQgAIUoAAFKEABClDASwQYgPKSE8VuUoACFKAABShAAQpQgAIUoAAFKEABbxVgAMpbzxz7TQEKUIACFKAABShAAQpQgAIUoAAFvESAASgvOVHsJgUoQAEKUIACFKAABShAAQpQgAIU8FYBBqC89cyx3xSgAAUoQAEKUIACFKAABShAAQpQwEsEGIDykhPFblKAAhSgAAUoQAEKUIACFKAABShAAW8VYADKW88c+00BClCAAhSgAAUoQAEKUIACFKAABbxEgAEoLzlR7CYFKEABClCAAhSgAAUoQAEKUIACFPBWAQagvPXMsd8UoAAFKEABClCAAhSgAAUoQAEKUMBLBBiA8pITxW5SgAIUoAAFKEABClCAAhSgAAUoQAFvFWAAylvPHPtNAQpQgAIUoAAFKEABClCAAhSgAAW8RIABKC85UewmBShAAQpQgAIUoAAFKEABClCAAhTwVgEGoLz1zLHfFKAABShAAQpQgAIUoAAFKEABClDASwQYgPKSE8VuUoACFKAABShAAQpQgAIUoAAFKEABbxVgAMpbzxz7TQEKUIACFKAABShAAQpQgAIUoAAFvESAASgvOVHsJgUoQAEKUIACFKAABShAAQpQgAIU8FYBBqC89cyx3xSgAAUoQAEKUIACFKAABShAAQpQwEsEGIDykhPFblKAAhSgAAUoQAEKUIACFKAABShAAW8VYADKW88c+00BClCAAhSgAAUoQAEKUIACFKAABbxEILI39NPHx0cmTZ6iuxohQgRp37a1RIkSxWnX79+/LxN//EnPS5smjdSvV0e/PnP2rCxYuNjpOpEjRZJ48eJJqlQppUTx4hIzZgynyzmbeO/ePflr9Ro5eOiwHD58RBInTiw5c2SXvHnzyLtFCjtb5a1MO3v2nMxfuEiyZM4sNapXfSt9CK2dnj5zRhYu+k2yZ8sqVat84HK3z549k9Fjx0v06NGkTauWLpd9EzPv3LmjrzXHbf27bbts37FTHqjrN2/evPraiR8/nuNift4/ePBQRo0eI4ULFZSKFd7zMy8obw6p6/bP5Sv0KimSJ5ePP2oY4OrWZUsULyZF3y2il/117ny5cPGi0/Vi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NhEML9u4abMGn1CMfOiQgRI5ciRd7lkHifWOFIMPFKAABT4SgRgxYvgIPn0kh87DpAAFKEABCgSJADOggoSdO6UABYK7ADKXtmxc5/AwI5i6H7t2bLUtmzp9pkSJElkmTxonX5g7Jq1es1aXxY/vedckDMFDgXLUDXn+/IVEi/ZfzScUuGWdIxslJyhAAQpQgAIUoAAFKECBECrAAFQIvbA8LQpQIPAE4pk6Tz3GT5QZM2frHe4uXLioO8+TO5eXg0CwybqjkpcFfEEBClCAAhSgAAUoQAEKUCCECzAAFcIvME+PAhQIeIFSJUto8ew9e3+Tx4+f6HC7ggXya0HygN8790ABClCAAhSgAAUoQAEKUCD4CzAAFfyvEY+QAhQI5gJhwoQRBKHww0YBClCAAhSgAAUoQAEKUIACPgVYhNynCedQgAIUoAAFKEABClCAAhSgAAUoQAEK+KMAA1D+iMmuKEABClCAAhSgAAUoQAEKUIACFKAABXwKMADl04RzKEABClCAAhSgAAUoQAEKUIACFKAABfxRgAEof8RkVxSgAAUoQAEKUIACFKAABShAAQpQgAI+BRiA8mnCORSgAAUoQAEKUIACFKAABShAAQpQgAL+KMAAlD9isisKUIACFKAABShAAQpQgAIUoAAFKEABnwIMQPk04RwKUIACFKAABShAAQpQgAIUoAAFKEABfxRgAMofMdkVBShAAQpQgAIUoAAFKEABClCAAhSggE8BBqB8mnAOBShAAQpQgAIUoAAFKEABClCAAhSggD8KMADlj5jsigIUoAAFKEABClAgeApUrFhRQoUKpT/nz5/Xgzxz5oxtHpYH51arVi3bsVrngecVK1bI+PHjddnq1av1FKJFiyZZs2YNzqfDY6MABShAATcUCOuG58xTpgAFKEABClCAAhRwM4HXr1/bzvjXX3+V5MmTy44dO2zz7JfbZgajCev4mjRpIvHjx7cdWapUqSRmzJjStm1bPScsePDggW05JyhAAQpQgALBRYAZUMHlSvA4KEABClCAAhSgAAUCRWDTpk26ny1btvjYH7KjkG2EIA8yiRo0aCDPnj3T9ZBV1LhxY2nYsKEuw+tjx47pMlfbHT16VHLnzq3bIIBUuXJlKV68uG53584dqVOnji5Lnz69zJ0718cx2c/A9j169LD9pE2bVi5evCgrV66UW7du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KEABClCAAhSgAAUoEPIFGIAK+deYZ0gBClCAAhSgAAUoQAEKUIACFKAABYJUgAGoIOXnzilAAQpQgAIUoAAFKEABClCAAhSgQMgXYAAq5F9jniEFKEABClCAAhSgAAUoQAEKUIACFAhSAQaggpSfO6cABShAAQpQgAIUoAAFKEABClCAAiFfgAGokH+NeYYUoAAFKEABClCAAhSgAAUoQAEKUCBIBRiAClJ+7pwCFKAABShAAQpQgAIUoAAFKEABCoR8AQagQv415hlSgAIUoAAFKEABClCAAhSgAAUoQIEgFWAAKkj5uXMKUIACFKAABShAAQpQgAIUoAAFKBDyBRiACvnXmGdIAQpQgAIUoAAFKEABClCAAhSgAAWCVIABqCDl584pQAEKUIACFKAABShAAQpQgAIUoEDIF2AAKuRfY54hBShAAQpQgAIUoAAFKEABClCAAhQIUgEGoIKUnzunAAUoQAEKUIACFKAABShAAQpQgAIhX4ABqJB/jXmGFKAABShAAQpQgAIUoAAFKEABClAgSAUYgApSfu6cAhSgAAUoQAEKUIACFKAABShAAQqEfAEGoEL+NeYZUoACFKAABShAAQpQgAIUoAAFKECBIBVgACpI+blzClCAAhSgAAUoQAEKUIACFKAABSgQ8gUYgAr515hnSAEKUIACFKAABShAAQpQgAIUoAAFglSAAagg5efOKUABClCAAhSgAAUoQAEKUIACFKBAyBdgACrkX2OeIQUoQAEKUIACFKAABShAAQpQgAIUCFIBBqCClJ87pwAFKEABClCAAhSgAAUoQAEKUIACIV+AAaiQf415hhSgAAUoQAEKUIACFKAABShAAQpQIEgFGIAKUn7unAIUoAAFKEABClCAAhSgAAUoQAEKhHwBBqBC/jXmGVKAAhSgAAUoQAEKUIACFKAABShAgSAVYAAqSPm5cwpQgAIUoAAFKEABClCAAhSgAAUoEPIFGIAK+deYZ0gBClCAAhSgAAUoQAEKUIACFKAABYJUgAGoIOXnzilAAQpQgAIUoAAFKEABClCAAhSgQMgXYAAq5F9jniEFKEABClCAAhSgAAUoQAEKUIACFAhSAQaggpSfO6cABShAAQpQgAIUoAAFKEABClCAAiFfgAGokH+NeYYUoAAFKEABClCAAhSgAAUoQAEKUCBIBRiAClJ+7vz/7N0H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lAsBBBBAAAEEEEAAAQQQQAABBBBwiQABKJdUBNlAAAEEEEAAAQQQQAABBBBAAAEEvCpAAMqrNUu5EEAAAQQQQAABBBBAAAEEEEAAAZcIEIBySUWQDQQQQAABBBBAAAEEEEAAAQQQQMCrAgSgvFqzlAsBBBBAAAEEEEAAAQQQQAABBBBwiQABKJdUBNlAAAEEEEAAAQQQQAABBBBAAAEEvCpAAMqrNUu5EEAAAQQQQAABBBBAAAEEEEAAAZcIEIBySUWQDQQQQAABBBBAAAEEEEAAAQQQQMCrAgSgvFqzlAsBBBBAAAEEEEAAAQQQQAABBBBwiQABKJdUBNlAAAEEEEAAAQQQQAABBBBAAAEEvCpAAMqrNUu5EEAAAQQQQAABBBBAAAEEEEAAAZcIEIBySUWQDQQQQAABBBBAAAEEEEAAAQQQQMCrAgSgvFqzlAsBBBBAAAEEEEAA8bV40wAAQABJREFUAQQQQAABBBBwiQABKJdUBNlAAAEEEEAAAQQQQAABBBBAAAEEvCpAAMqrNUu5EEAAAQQQQAABBBBAAAEEEEAAAZcIEIBySUWQDQQQQAABBBBAAAEEEEAAAQQQQMCrAgSgvFqzlAsBBBBAAAEEEEAAAQQQQAABBBBwiQABKJdUBNlAAAEEEEAAAQQQQAABBBBAAAEEvCpAAMqrNUu5EEAAAQQQQAABBBBAAAEEEEAAAZcIEIBySUWQDQQQQAABBBBAAAEEEEAAAQQQQMCrAgSgvFqzlAsBBBBAAAEEEEAAAQQQQAABBBBwiQABKJdUBNlAAAEEEEAAAQQQQAABBBBAAAEEvCpAAMqrNUu5EEAAAQQQQAABBBBAAAEEEEAAAZcIEIBySUWQDQQQQAABBBBAAAEEEEAAAQQQQMCrAgSgvFqzlAsBBBBAAAEEEEAAAQQQQAABBBBwiQABKJdUBNlAAAEEEEAAAQQQQAABBBBAAAEEvCpAAMqrNUu5EEAAAQQQQAABBBBAAAEEEEAAAZcIEIBySUWQDQQQQAABBBBAAAEEEEAAAQQQQMCrAgSgvFqzlAsBBBBAAAEEEEAAAQQQQAABBBBwiQABKJdUBNlAAAEEEEAAAQQQQAABBBBAAAEEvCpAAMqrNUu5EEAAAQQQQAABBBBAAAEEEEAAAZcIEIBySUWQDQQQQAABBBBAAAEEEEAAAQQQQMCrAgSgvFqz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kAAJkAAJkAAJkAAJkEC4EIgaLrWwklciANcriDF79+7VwowpzFjEeMMyxBMcX/To0e3HCsENx8hP0AzACvzQT9BfmEiABEiABEiABEiABEiABEiABEjAnQhEUQ/3Nv8ed2qVf1uWL1/uhq0K/ybhFEGguXfvnp76+fmFfyPCuEZYPkE8iR07tq7p/v37XnusYYHS8IsTJw5FqLAAzDJJgARIgARIgARIgARIgAQilED16tUjtH5W/uoE6IL36gzDvARYtMAyCAkijRtrhqFmgWP09fW1H6ex+vLGYw01JBc7WvlhnokESIAESIAESIAESIAESIAESIAE3IkABSh3Ohsu2hI1alQtPnmzAIXDN+IJjtNbj9XFaQ71JsPNTENdEHckARIgARIgARIgARIgARIgARIggTAgQAEqDKCGVZFGXDDTsKrHHco1x2im7tAmtoEESIAESIAESIAESIAESIAESIAESCB0BNxagEqcOHHojop7kQAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJuA0BtxagQKlIkSJuA4sNIQESIAESIAESIAESIAESIAESIAESCBmBS5cuSdKkSUO2k8p969YtOXr0aIj34w7uSSCqezaLrSIBEiABEiABEiABEiABEiABEiABEiABEvAWAhSgvOVM8jhIgARIgARIgARIgARIgARIgARIgARIwE0JUIBy0xPDZpEACZAACZAACZAACZAACZAACZAACZCAtxCgAOUtZ5LHQQIkQAIkQAIkQAIkQAIkQAIkQAIkQAJuSoAClJueGDaLBEiABEiABEiABEiABEiABEiABEiABLyFAAUobzmTPA4SIAESIAESIAESIAESIAESIAESIAEScFMCvm7aLnuznj17Zp/nDAmQAAmQAAmQAAmQAAmQAAmQAAmQAAmQgOcRcHsB6vnz555HNQJafPv2HYkWPZrEihkzAmpnlSRAAiRAAiRAAiTgPQQePHggsWLFsh+Qn98zuXbtqiRPnty+jjMkQAIkQAIkQAIhI+D2LngQoPgJnMHOXbulbIXKUqBwMcmTr6DUrltf/j16VDN7+vSpjBk3QW7euuWSYXDzvep5WL58uct2vGr53D/wfuItbE6fPiNZc+SWGTNnO/Sl6TNnSctWbRzWReQxs697Zl+cN3+hVK9VN0L70YdNm8vPi38Jsg1Hjvwji37+n843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HyABEggvAq3bdtCWKtmyZpV1GzZod6vOajQ8JhKISAL8HQwdfQpQoePmTXu5vQCVTgWHYyIBEiABEiABEiABEiABEoh8BBBYet/+AzpIOeI75lFxgBAzjYkESMCzCGDQAApQnnXOwqK1jAEVFlRZJgmQAAmQAAmQAAmQAAmQwCsTQNgIDAKBjy0htpTbRhB55eNlASTgrQQgQDGRgNsLUPDxZSIBEiABEiABEiABEiABEiABEiABEiABEvBcAm4vQCFYGRMJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkIDnEnB7AQqjFTCRAAmQAAmQAAmQAAmQAAmQAAmQAAmQAAl4LgG3F6Dogue5nYstJwESIAESIAESIAESIAESIAESIAESIAEQcHsBii547KgkQAIkQAIkQAIkQAIkQAIkQAIkQAIk4NkE3F6AogWUZ3cwtp4ESIAESIAESIAESIAESIAESIAESIAEKECxD5AACZAACZAACZAACZAACZAACZAACZAACYQpAbcXoHbt2hWmAFg4CZAACZAACZAACZAACZAACZAACZBA2BGoUKFC2BXOkj2GgNsLUDVr1vQYmGwoCZAACZAACZAACZAACZAACZAACZCAI4EHDx44ruBSpCQQNVIeNQ+aBEiABEiABEiABEiABEiABEiABEiABEgg3AhQgAo31KyIBEiABEiABEiABEiABEiABEiABEiABCInAQpQkfO886hJgARIgARIgARIgARIgARIgARIgARIINwIUIAKN9SsiARIgARIgARIgARIgARIgARIgARIgAQiJwEKUJHzvPOoSYAESIAESIAESIAESIAESIAESIAESCDcCLj9KHghJbFz586Q7sL8JBBmBAoXLhxmZaNg9vcwxcvCQ0ggrPt7CJvD7CRAAiRAAiTgVQR43+dVp9PjD4b3fR5/CiPkALxOgALFSpUqRQhMVkoCVgKrV6+2LobZPPt7mKFlwSEgEF79PQRNYlYSIAESIAES8DoCvO/zulPqkQfE+z6PPG1u0Wi64LnFaWAjSIAESIAESIAESIAESIAESIAESIAESMB7CVCA8t5zyyMjARIgARIgARIgARIgARIgARIgARIgAbcgQAHKLU4DG0ECJEACJEACJEACJEACJEACJEACJEAC3kuAApT3nlseGQmQAAmQAAmQAAmQAAmQAAmQAAmQAAm4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IOWhSQjmDYsnE3/GlIFg5hCXhg0bFqR1EU4fxKzALJHu37+v60C74YqHOmFB5XzxRTnwq4bPtUlwZ0JeZ7clbIdVFcpAvUwBE4AbJYS+sEyRrb8HhyWsFGE+HlC/Dc7+Js+rfr9NOZFlGh79PbKw5HGSAAmQAAmQQEAEIuN9H55d8Kxk4nc6c3H1TIJtsIZyftZyLoPLIScQmvs+PGsG5N0TVO3wFoK3D1Lx4sWDys7tbk4g0llAvcr5wAXMmmBpFFrxCeXgIdma4DaEgHkQoBD7ybk+a14zDxHIBOMz66xTq6CEB/LA2otyrHlRBlzxAktwdWLybgLO/c8d+ntwiAfWx4OzrzXPqx6vtSzOkwAJkAAJkAAJkIA7E3DX+z7n5yVnhq6eSVxtcy6HyyRAAuFDgDGgwodzsGqBOg+ro6JFi2qz02DtxEwk4KEE2N899MSx2SRAAiRAAiRAAiQQQgK87wshMGYnAS8lQAsoNzqxcO3r1KmTG7WITSGBsCPA/h52bFkyCZAACZAACZAACbgTAd73udPZYFtIIOII0AIq4tizZhIgARIgARIgARIgARIgARIgARIgARKIFAQoQEWK08yDJAESIAESIAESIAESIAESIAESIAESIIGII0ABKuLYs2YSIAESIAESIAESIAESIAESIAESIAESiBQEKEBFitPMgyQBEiABEiABEiABEiABEiABEiABEiCBiCPglUHIV69eHXFEWTMJhDMB9vdwBs7qSIAESIAESIAESCCCCPC+L4LAs1oSIIHXQsDrBKjChQu/FjAshAQ8gQD7uyecJbaRBEiABEiABEiABF6dAO/7Xp0hSyABEohYAnTBi1j+rJ0ESIAESIAESIAESIAESIAESIAESIAEvJ4ABSivP8U8QBIgARIgARIgARIgARIgARIgARIgARKIWAIUoCKWP2snARIgARIgARIgARIgARIgARIgARIgAa8nQAHK608xD5AESIAESIAESIAESIAESIAESIAESIAEIpYABaiI5c/aSYAESIAESIAESIAESIAESIAESIAESMDrCbj9KHiHDx/2+pPAAyQBEiABEiABEiABEiABEiABEiABbyWQMWNGbz00HlcICLi9AJUmR/EQHA6zkgAJkAAJkAAJkAAJkAAJkAAJkAAJuBWBhxfcqjlsTMQQoAtexHBnrSRAAiRAAiRA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QCAcAQJQ4TjTCgIIIIAAAggggAACCCCAAAIIIBBZAQJQkd31dBwBBBBAAAEEEEAAAQQQQAABBBAIR4AAVDjOtIIAAggggAACCCCAAAIIIIAAAghEVoAAVGR3PR1HAAEEEEAAAQQQQAABBBBAAAEEwhEgABWOM60ggAACCCCAAAIIIIAAAggggAACkRUgABXZXU/HEUAAAQQQQAABBBBAAAEEEEAAgXAECECF40wrCCCAAAIIIIAAAggggAACCCCAQGQFCEBFdtfTcQQQQAABBBBAAAEEEEAAAQQQQCAcAQJQ4TjTCgIIIIAAAggggAACCCCAAAIIIBBZAQJQkd31dBwBBBBAAAEEEEAAAQQQQAABBBAIR4AAVDjOtIIAAggggAACCCCAAAIIIIAAAghEVoAAVGR3PR1HAAEEEEAAAQQQQAABBBBAAAEEwhEgABWOM60ggAACCCCAAAIIIIAAAggggAACkRUgABXZXU/HEUAAAQQQQAABBBBAAAEEEEAAgXAECECF40wrCCCAAAIIIIAAAggggAACCCCAQGQFCEBFdtfTcQQQQAABBBBAAAEEEEAAAQQQQCAcAQJQ4TjTCgIIIIAAAggggAACCCCAAAIIIBBZAQJQkd31dBwBBBBAAAEEEEAAAQQQQAABBBAIR4AAVDjOtIIAAggggAACCCCAAAIIIIAAAghEVoAAVGR3PR1HAAEEEEAAAQQQQAABBBBAAAEEwhEgABWOM60ggAACCCCAAAIIIIAAAggggAACkRUgABXZXU/HEUAAAQQQQAABBBBAAAEEEEAAgXAECECF40wrCCCAAAIIIIAAAggggAACCCCAQGQFCEBFdtfTcQQQQAABBBBAAAEEEEAAAQQQQCAcAQJQ4TjTCgIIIIAAAggggAACCCCAAAIIIBBZAQJQkd31dBwBBBBAAAEEEEAAAQQQQAABBBAIR4AAVDjOtIIAAggggAACCCCAAAIIIIAAAghEVoAAVGR3PR1HAAEEEEAAAQQQQAABBBBAAAEEwhEgABWOM60ggAACCCCAAAIIIIAAAggggAACkRUgABXZXU/HEUAAAQQQQAABBBBAAAEEEEAAgXAECECF40wrCCCAAAIIIIAAAggggAACCCCAQGQFCEBFdtfTcQQQQAABBBBAAAEEEEAAAQQQQCAcAQJQ4TjTCgIIIIAAAggggAACCCCAAAIIIBBZAQJQkd31dBwBBBBAAAEEEEAAAQQQQAABBBAIR4AAVDjOtIIAAggggAACCCCAAAIIIIAAAghEVoAAVGR3PR1HAAEEEEAAAQQQQAABBBBAAAEEwhEgABWOM60ggAACCCCAAAIIIIAAAggggAACkRUgABXZXU/HEUAAAQQQQAABBBBAAAEEEEAAgXAECECF40wrCCCAAAIIIIAAAggggAACCCCAQGQFCEBFdtfTcQQQQAABBBBAAAEEEEAAAQQQQCAcAQJQ4TjTCgIIIIAAAggggAACCCCAAAIIIBBZAQJQkd31dBwBBBBAAAEEEEAAAQQQQAABBBAIR4AAVDjOtIIAAggggAACCCCAAAIIIIAAAghEVoAAVGR3PR1HAAEEEEAAAQQQQAABBBBAAAEEwhEgABWOM60ggAACCCCAAAIIIIAAAggggAACkRUgABXZXU/HEUAAAQQQQAABBBBAAAEEEEAAgXAECECF40wrCCCAAAIIIIAAAggggAACCCCAQGQFCEBFdtfTcQQQQAABBBBAAAEEEEAAAQQQQCAcAQJQ4TjTCgIIIIAAAggggAACCCCAAAIIIBBZAQJQkd31dBwBBBBAAAEEEEAAAQQQQAABBBAIR4AAVDjOtIIAAggggAACCCCAAAIIIIAAAghEVoAAVGR3PR1HAAEEEEAAAQQQQAABBBBAAAEEwhEgABWOM60ggAACCCCAAAIIIIAAAggggAACkRUgABXZXU/HEUAAAQQQQAABBBBAAAEEEEAAgXAECECF40wrCCCAAAIIIIAAAggggAACCCCAQGQFCEBFdtfTcQQQQAABBBBAAAEEEEAAAQQQQCAcAQJQ4TjTCgIIIIAAAggggAACCCCAAAIIIBBZAQJQkd31dBwBBBBAAAEEEEAAAQQQQAABBBAIR4AAVDjOtIIAAggggAACCCCAAAIIIIAAAghEVoAAVGR3PR1HAAEEEEAAAQQQQAABBBBAAAEEwhEgABWOM60ggAACCCCAAAIIIIAAAggggAACkRUgABXZXU/HEUAAAQQQQAABBBBAAAEEEEAAgXAECECF40wrCCCAAAIIIIAAAggggAACCCCAQGQFCEBFdtfTcQQQQAABBBBAAAEEEEAAAQQQQCAcAQJQ4TjTCgIIIIAAAggggAACCCCAAAIIIBBZAQJQkd31dBwBBBBAAAEEEEAAAQQQQAABBBAIR4AAVDjOtIIAAggggAACCCCAAAIIIIAAAghEVoAAVGR3PR1HAAEEEEAAAQQQQAABBBBAAAEEwhEgABWOM60ggAACCCCAAAIIIIAAAggggAACkRUgABXZXU/HEUAAAQQQQAABBBBAAAEEEEAAgXAECECF40wrCCCAAAIIIIAAAggggAACCCCAQGQFCEBFdtfTcQQQQAABBBBAAAEEEEAAAQQQQCAcAQJQ4TjTCgIIIIAAAggggAACCCCAAAIIIBBZAQJQkd31dBwBBBBAAAEEEEAAAQQQQAABBBAIR4AAVDjOtIIAAggggAACCCCAAAIIIIAAAghEVoAAVGR3PR1HAAEEEEAAAQQQQAABBBBAAAEEwhEgABWOM60ggAACCCCAAAIIIIAAAggggAACkRUgABXZXU/HEUAAAQQQQAABBBBAAAEEEEAAgXAECECF40wrCCCAAAIIIIAAAggggAACCCCAQGQFCEBFdtfTcQQQQAABBBBAAAEEEEAAAQQQQCAcAQJQ4TjTCgIIIIAAAggggAACCCCAAAIIIBBZAQJQkd31dBwBBBBAAAEEEEAAAQQQQAABBBAIR4AAVDjOtIIAAggggAACCCCAAAIIIIAAAghEVoAAVGR3PR1HAAEEEEAAAQQQQAABBBBAAAEEwhEgABWOM60ggAACCCCAAAIIIIAAAggggAACkRUgABXZXU/HEUAAAQQQQAABBBBAAAEEEEAAgXAECECF40wrCCCAAAIIIIAAAggggAACCCCAQGQFCEBFdtfTcQQQQAABBBBAAAEEEEAAAQQQQCAcAQJQ4TjTCgIIIIAAAggggAACCCCAAAIIIBBZAQJQkd31dBwBBBBAAAEEEEAAAQQQQAABBBAIR4AAVDjOtIIAAggggAACCCCAAAIIIIAAAghEVoAAVGR3PR1HAAEEEEAAAQQQQAABBBBAAAEEwhEgABWOM60ggAACCCCAAAIIIIAAAggggAACkRUgABXZXU/HEUAAAQQQQAABBBBAAAEEEEAAgXAECECF40wrCCCAAAIIIIAAAggggAACCCCAQGQFCEBFdtfTcQQQQAABBBBAAAEEEEAAAQQQQCAcAQJQ4TjTCgIIIIAAAggggAACCCCAAAIIIBBZAQJQkd31dBwBBBBAAAEEEEAAAQQQQAABBBAIR4AAVDjOtIIAAggggAACCCCAAAIIIIAAAghEVoAAVGR3PR1HAAEEEEAAAQQQQAABBBBAAAEEwhEgABWOM60ggAACCCCAAAIIIIAAAggggAACkRUgABXZXU/HEUAAAQQQQAABBBBAAAEEEEAAgXAECECF40wrCCCAAAIIIIAAAggggAACCCCAQGQFCEBFdtfTcQQQQAABBBBAAAEEEEAAAQQQQCAcAQJQ4TjTCgIIIIAAAggggAACCCCAAAIIIBBZAQJQkd31dBwBBBBAAAEEEEAAAQQQQAABBBAIR4AAVDjOtIIAAggggAACCCCAAAIIIIAAAghEVoAAVGR3PR1HAAEEEEAAAQQQQAABBBBAAAEEwhEgABWOM60ggAACCCCAAAIIIIAAAggggAACkRUgABXZXU/HEUAAAQQQQAABBBBAAAEEEEAAgXAECECF40wrCCCAAAIIIIAAAggggAACCCCAQGQFCEBFdtfTcQQQQAABBBBAAAEEEEAAAQQQQCAcAQJQ4TjTCgIIIIAAAggggAACCCCAAAIIIBBZAQJQkd31dBwBBBBAAAEEEEAAAQQQQAABBBAIR4AAVDjOtIIAAggggAACCCCAAAIIIIAAAghEVoAAVGR3PR1HAAEEEEAAAQQQQAABBBBAAAEEwhEgABWOM60ggAACCCCAAAIIIIAAAggggAACkRUgABXZXU/HEUAAAQQQQAABBBBAAAEEEEAAgXAECECF40wrCCCAAAIIIIAAAggggAACCCCAQGQFCEBFdtfTcQQQQAABBBBAAAEEEEAAAQQQQCAcAQJQ4TjTCgIIIIAAAggggAACCCCAAAIIIBBZAQJQkd31dBwBBBBAAAEEEEAAAQQQQAABBBAIRyBnOM3seSszZszY85VZEwEEEEAAAQQQQAABBBBAAAEE9rvAkiVL9vs2sAH7VyDbdlf27ybQOgIIIIAAAggggAACCCCAAAIIIIBAVhZgCF5W3rv0DQEEEEAAAQQQQAABBBBAAAEEEMgEAgSgMsFOYBMQQAABBBBAAAEEEEAAAQQQQACBrCxAACor7136hgACCCCAAAIIIIAAAggggAACCGQCAQJQmWAnsAkIIIAAAggggAACCCCAAAIIIIBAVhYgAJWV9y59QwABBBBAAAEEEEAAAQQQQAABBDKBAAGoTLAT2AQEEEAAAQQQQAABBBBAAAEEEEAgKwsQgMrKe5e+IYAAAggggAACCCCAAAIIIIAAAplAgABUJtgJbAICCCCAAAIIIIAAAggggAACCCCQlQUIQGXlvUvfEEAAAQQQQAABBBBAAAEEEEAAgUwgQAAqE+wENgEBBBBAAAEEEEAAAQQQQAABBBDIygIEoLLy3qVvCCCAAAIIIIAAAggggAACCCCAQCYQIACVCXYCm4AAAggggAACCCCAAAIIIIAAAghkZQECUFl579I3BBBAAAEEEEAAAQQQQAABBBBAIBMIEIDKBDuBTUAAAQQQQAABBBBAAAEEEEAAAQSysgABqKy8d+kbAggggAumr5cAABM3SURBVAACCCCAAAIIIIAAAgggkAkEcnR3JRNsR8JNWL58hX04ZZqNGfu2bdyw0Y466kjLnTt3wnX29Ml169ZZnjx5LFu2bBmq4qf58+2jj6fbySedlOp6f/65zsZPmGgrV62yYsWKWvbsO2N/f//9t0376GP76utZVuDw/HbooYfG6ti+fbt9O2euTZ36kRUsVDDZc7GF3I1xb79r2bJns0KFCsU/nOx2ona0oNqZ9tFHdsQRRezggw9Otm7KO+nVpeU3b95sw0aMtFLHHGN58+ZNWYW//7///c+mT59hs+fMsWJFj/b2wYK723ctn149n376mU11fdNxU6Rw4aCJXf5u2vS3Tfpgsn33ww9WsECBZA7ant2t55vZ39q8776zxYuXxH5KFC9uOXLk8G3++NNPNn78RNvs+l/U9VvH219//eWPoUWLFlv8z88/L7Vjjy3l1wt+rV692kaNfsvKlj05Vmfw3L76m94xnla7H06Zan+47S1WtGhai/A4AggggAACCCCAAAIIIIBAFhfI5k6qt2fmPk7+cIq1veZ6H1ipXOlc+2TGp6aT73FjRttpp5bfq5u+eMkSq12nvs3++nPLlStXhup+/Y1R9kK/l2zK5Im7rPfGqDetU5eudu6559jKFStsxcpV9rbb/uOPP84HHS68uLpf58QyJ9jsb+fY68OHWLlyp9g///xjNWpe7pc/5+yzXBBuql3duqX1uP/eZG0oYHLNdTda78cetiaNGyV7Lrij4EZa7WiZxk2vdAGT7y1o5+EHH7AWVzYLVk/2N726goUffOgRe/nVATblgwl23HHHBg/H/ioIU79hUzvSBbwKu6DQ5198ac/2ecquqFN7t/uuyhLVo+dv79jZJk76wCpX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" + } + }, + "cell_type": "markdown", + "id": "ddcaf447", + "metadata": {}, + "source": [ + "##### Install the pipeline\n", + "1. Navigate to http://localhost:8080\n", + "1. Login with default XNAT credentials: username=`admin` password=`admin`\n", + "1. Click on the `Administer` menu item in top ribbon and select `Plugin Settings` from the drop-down menu\n", + "1. Select `Images & Commands` under the `Container Service` heading from the left-hand menu\n", + "1. Click the `New Command` button and copy and paste the command JSON generated by the build process in the dialog that opens (replacing the `{}` that is already there) and click `Save Command`\n", + "\n", + "##### Enable the pipeline globally\n", + "1. Select `Command Configurations` item from the left-hand menu under `Container Service`\n", + "1. Toggle the `Enabled` switch next to the Zip pipeline\n", + "\n", + "NB: This enables the pipeline globally, but users still cannot launch the pipeline at this stage. It still needs to be enabled for each project it is to be run on by a project owner.\n", + "\n", + "##### Enable the pipeline for a specific project\n", + "1. Navigate back to the home screen by clicking the XNAT logo in the top-left corner\n", + "1. Select the `OPENNEURO_T1W` project\n", + "1. Select `Project Settings` from the bottom of the right-hand actions menu\n", + "1. Select `Command configuration` from the left-hand menu\n", + "1. Toggle the `Enable` switch next to the Zip pipeline\n", + "\n", + "##### Launch the pipeline\n", + "1. Navigate back to project home by clicking the `OPENNEURO_T1W` breadcrumb\n", + "1. Select either one of the two subjects\n", + "1. Select the MR session\n", + "1. Click on the `Run containers` from the bottom of the right-hand side actions menu and select \"Zip up a file or directory\"\n", + "1. In the `To_zip` field of the dialog that opens up enter `t1w` to select the scan that is to be zipped and click `Run Container`\n", + "\n", + "##### Check the status of the pipeline\n", + "1. In the `History` panel click the `Reload` button and you should see the pipeline status\n", + "1. Select the \"eye\" image that appears to the right of the status when you hover over it to view details of the workflow status\n", + "1. If the workflow has failed (after a successful launch), you can view the output and error logs by clicking the `View StdOut.log` and `View StdErr.log` buttons at the bottom of the page.\n", + "1. (Advanced) to access the working directory of the command in order to debug anything that has gone wrong, look up the `container-host-path` of the `work` mount listed under `container mounts`\n", + "\n", + "\n", + "![View workflow status.png](attachment:Screen%20Shot%202024-08-05%20at%2012.59.37%20pm.png)\n", + "\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "id": "066e2361", + "metadata": {}, + "source": [ + "### Build FSL BET pipeline image" + ] + }, + { + "cell_type": "markdown", + "id": "42f982e3", + "metadata": {}, + "source": [ + "Build the example BET specification this time including the licence you just downloaded into the image (as this is permitted by the licence conditions)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "03db8871", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Usage: pydra2app [OPTIONS] COMMAND [ARGS]...\n", + "Try 'pydra2app --help' for help.\n", + "\n", + "Error: No such command 'make'.\n" + ] + }, + { + "ename": "", + "evalue": "2", + "output_type": "error", + "traceback": [] + } + ], + "source": [ + "pydra2app make xnat \\\n", + "australian-imaging-service-community/examples/bet.yaml \\\n", + "--spec-root ./specs \\\n", + "--for-localhost" + ] + }, + { + "cell_type": "markdown", + "id": "a9a122ff", + "metadata": {}, + "source": [ + "### Install, enable and launch the BET pipeline using pydra2app ext xnat *-command" + ] + }, + { + "cell_type": "markdown", + "id": "80933b50", + "metadata": {}, + "source": [ + "For convenience (primarily during testing), I have created a couple of commands to install and launch pipelines via the CLI" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "3c57c1fb", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Usage: pydra2app ext xnat [OPTIONS] COMMAND [ARGS]...\n", + "Try 'pydra2app ext xnat --help' for help.\n", + "\n", + "Error: No such command 'install-command'.\n" + ] + }, + { + "ename": "", + "evalue": "2", + "output_type": "error", + "traceback": [] + } + ], + "source": [ + "pydra2app ext xnat \\\n", + "install-command australian-image-service-community.examples.bet:1.0-1 \\\n", + "http://localhost:8080 \\\n", + "--enable \\\n", + "--enable-project OPENNEURO_T1W" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "cf75564c", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Usage: pydra2app ext xnat [OPTIONS] COMMAND [ARGS]...\n", + "Try 'pydra2app ext xnat --help' for help.\n", + "\n", + "Error: No such command 'launch-command'.\n" + ] + }, + { + "ename": "", + "evalue": "2", + "output_type": "error", + "traceback": [] + } + ], + "source": [ + "pydra2app ext xnat \\\n", + "launch-command australian-image-service-community.examples.bet:1.0-1 \\\n", + "http://localhost:8080 OPENNEURO_T1W subject01_MR01 \\\n", + "--input t1w t1w" + ] + }, + { + "cell_type": "markdown", + "id": "5b850362", + "metadata": {}, + "source": [ + "## Design a pipeline to run mri_synthstrip" + ] + }, + { + "cell_type": "markdown", + "id": "6ce5d0b8", + "metadata": {}, + "source": [ + "### Create a new Git branch" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "cc0399d9", + "metadata": {}, + "outputs": [], + "source": [ + "git checkout -b my-mri-synthstrip" + ] + }, + { + "cell_type": "markdown", + "id": "26d6902c", + "metadata": {}, + "source": [ + "### Write specification for *mri_synthstrip* command" + ] + }, + { + "cell_type": "markdown", + "id": "981bbfac", + "metadata": {}, + "source": [ + "Using the `pydra2app bootstrap` command we can generate a YAML specification for mri_synthstrip that we can edit later.\n", + "\n", + "**NOTE:** You will need change the `\"name-of-your-institution-goes-here\"` and `\"name-of-your-group-goes-here\"` placeholders to appropriate values" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "id": "17b98c06", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Usage: pydra2app [OPTIONS] COMMAND [ARGS]...\n", + "Try 'pydra2app --help' for help.\n", + "\n", + "Error: No such command 'bootstrap'.\n", + "bash: --base-image-name: command not found\n" + ] + }, + { + "ename": "", + "evalue": "127", + "output_type": "error", + "traceback": [] + } + ], + "source": [ + "export INSTITUTION_NAME=\"name-of-your-institution-goes-here\" # e.g. \"sydney\" for The University of Sydney\n", + "export GROUP_NAME=\"name-of-your-group-goes-here\" # e.g. \"sydneyimaging\" for Sydney Imaging\n", + "export AUTHORS_NAME=\"Your name goes here\"\n", + "export AUTHORS_EMAIL=\"your.email@goes.here\"\n", + "\n", + "pydra2app bootstrap \\\n", + "./specs/australian-image-service-community/au/edu/${INSITUTION_NAME}/${GROUP_NAME}/mri_synthstrip.yaml \\\n", + "--authors-name ${AUTHORS_NAME} \\\n", + "--authors-email ${AUTHORS_EMAIL} \\\n", + "--version 0.1\n", + "--base-image-name vnmd/freesurfer_7.1.1 \\\n", + "--packages-pip fileformats-medimage-extras \\\n", + "--packages-neurodocker dcm2niix v1.0.20201102 \\\n", + "--command-task shell \\\n", + "--inputs head \"datatype=medimage/nifti-gz,position=-2,argstr=''\" \\\n", + "--outputs brain \"datatype=medimage/nifti-gz,position=-1,argstr=''\" \\\n", + "--configuration executable mri_synthstrip \\\n", + "--version-package 7.1.1 \\\n", + "--title \"MRI SynthStrip: brain extraction pipeline\" \\\n", + "--licenses freesurfer \"destination=/opt/freesurfer/license.txt,info_url=https://surfer.nmr.mgh.harvard.edu/registration.html\"" + ] + }, + { + "cell_type": "markdown", + "id": "06916664", + "metadata": {}, + "source": [ + "You can view the generated YAML specification and make any edits that are required." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "e0451e1a", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "bash: name-of-your-institution-goes-here: No such file or directory\n" + ] + }, + { + "ename": "", + "evalue": "1", + "output_type": "error", + "traceback": [] + } + ], + "source": [ + "cat ./specs/australian-image-service-community/au/edu/${INSITUTION_NAME}/${GROUP_NAME}/mri_synthstrip.yaml" + ] + }, + { + "cell_type": "markdown", + "id": "c47caf9b", + "metadata": {}, + "source": [ + "### Build the `mri_synthstrip` pipeline" + ] + }, + { + "cell_type": "markdown", + "id": "1f8616c7", + "metadata": {}, + "source": [ + "Build the newly created pipeline specification" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "d6d655fd", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "bash: name-of-your-institution-goes-here: No such file or directory\n" + ] + }, + { + "ename": "", + "evalue": "1", + "output_type": "error", + "traceback": [] + } + ], + "source": [ + "pydra2app make xnat \\\n", + "./specs/australian-image-service-community/au/edu/${INSITUTION_NAME}/${GROUP_NAME}/mri_synthstrip.yaml \\\n", + "--spec-root ./specs \\\n", + "--for-localhost" + ] + }, + { + "cell_type": "markdown", + "id": "c454bd86", + "metadata": {}, + "source": [ + "### Install a project-specific Freesurfer licence using FrameTree\n", + "\n", + "Download the Freesurfer licence file from Discord or request your own at https://surfer.nmr.mgh.harvard.edu/registration.html\n", + "\n", + "First, create a local reference to the test XNAT server" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "1af18b4b", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Traceback (most recent call last):\n", + " File \"/Users/tclose/.pyenv/versions/frametree-test/bin/frametree\", line 8, in \n", + " sys.exit(cli())\n", + " ^^^^^\n", + " File \"/Users/tclose/.pyenv/versions/3.11.8/envs/frametree-test/lib/python3.11/site-packages/click/core.py\", line 1157, in __call__\n", + " return self.main(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/Users/tclose/.pyenv/versions/3.11.8/envs/frametree-test/lib/python3.11/site-packages/click/core.py\", line 1078, in main\n", + " rv = self.invoke(ctx)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"/Users/tclose/.pyenv/versions/3.11.8/envs/frametree-test/lib/python3.11/site-packages/click/core.py\", line 1688, in invoke\n", + " return _process_result(sub_ctx.command.invoke(sub_ctx))\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/Users/tclose/.pyenv/versions/3.11.8/envs/frametree-test/lib/python3.11/site-packages/click/core.py\", line 1688, in invoke\n", + " return _process_result(sub_ctx.command.invoke(sub_ctx))\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/Users/tclose/.pyenv/versions/3.11.8/envs/frametree-test/lib/python3.11/site-packages/click/core.py\", line 1434, in invoke\n", + " return ctx.invoke(self.callback, **ctx.params)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/Users/tclose/.pyenv/versions/3.11.8/envs/frametree-test/lib/python3.11/site-packages/click/core.py\", line 783, in invoke\n", + " return __callback(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/Users/tclose/git/workflows/frametree/frametree/core/cli/store.py\", line 84, in add\n", + " store_cls = ClassResolver(DataStore)(type)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/Users/tclose/git/workflows/frametree/frametree/core/serialize.py\", line 86, in __call__\n", + " klass = self.fromstr(class_str, subpkg=True, pkg=self.package)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/Users/tclose/git/workflows/frametree/frametree/core/serialize.py\", line 135, in fromstr\n", + " raise ValueError(\n", + "ValueError: Class location 'test-xnat' should contain a ':' unless it is in the builtins module\n" + ] + }, + { + "ename": "", + "evalue": "1", + "output_type": "error", + "traceback": [] + } + ], + "source": [ + "frametree store add xnat test-xnat --server http://localhost:8080 --user admin --password admin" + ] + }, + { + "cell_type": "markdown", + "id": "24db59c0", + "metadata": {}, + "source": [ + "Create a default dataset on the Open Neuro T1w project" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "id": "93fcea4c", + "metadata": {}, + "outputs": [], + "source": [ + "frametree dataset define test-xnat//OPENNEURO_T1W" + ] + }, + { + "cell_type": "markdown", + "id": "c0d492e4", + "metadata": {}, + "source": [ + "Install the freesurfer license into the OPENNEURO_T1W dataset" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "id": "50108c2d", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[38;2;0;255;0m100%\u001b[39m of 1.8 KiB |################################| 3.2 MiB/s Time: 0:00:00\n", + "/var/folders/mz/yn83q2fd3s758w1j75d2nnw80000gn/T/tmpfsd1l7oi/OPENNEURO_T1W/resources/__frametree__/files/_.json\n", + "INFO:frametree:Put freesurfer_LICENSE@ into dataset:None row via API access\n", + "INFO:frametree.core.cli.dataset:Successfully installed 'freesurfer' license for '' dataset on test-xnat store\n" + ] + } + ], + "source": [ + "frametree dataset install-license freesurfer ~/freesurfer-license.txt test-xnat//OPENNEURO_T1W" + ] + }, + { + "cell_type": "markdown", + "id": "1066677e", + "metadata": {}, + "source": [ + "### Test the new pipeline" + ] + }, + { + "cell_type": "markdown", + "id": "11a56e4e", + "metadata": {}, + "source": [ + "Install and launch your newly created pipeline" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a1a44525", + "metadata": {}, + "outputs": [], + "source": [ + "pydra2app ext xnat \\\n", + "install-command australian-image-service-community.${INSITUTION_NAME}.${GROUP_NAME}.mri_synthstrip:0.1 \\\n", + "http://localhost:8080 \\\n", + "--enable \\\n", + "--enable-project OPENNEURO_T1W\n", + "pydra2app ext xnat \\\n", + "launch-command australian-image-service-community.au.edu.${INSITUTION_NAME}.${GROUP_NAME}.mri_synthstrip:0.1 \\\n", + "http://localhost:8080 OPENNEURO_T1W subject01_MR01 \\\n", + "--input t1w t1w" + ] + }, + { + "cell_type": "markdown", + "id": "dba5c217", + "metadata": {}, + "source": [ + "### Create a test pull-request on GitHub\n", + "\n", + "1. Navigate to your fork of the AIS community pipelines repo, https://github.com/your-github-username/pipelines-community\n", + "1. Select \"Pull requests\" in the top ribbon\n", + "1. Click the \"New pull request\" button\n", + "1. Select \"base:main\" <- \"your-fork:my-mri-synthstrip\" from the drop-down lists\n", + "1. Click \"Create pull request\"\n", + "\n", + "This will then start the process for the pipeline to be accepted and deployed\n", + "\n", + "1. Maintainers of AIS Community Pipelines repository (i.e. Arkiev and myself) that you wish to add your pipeline to the community repository.\n", + "1. Repository maintainers (RM) will review your proposed pipeline for security issues\n", + "1. RM will potentially request some changes to your specification\n", + "1. RM accept your pipeline and merge your pull request\n", + "1. The pipeline is built using the continuous integration and deployment actions running on GitHub\n", + "1. AIS nodes periodically check for newly pipelines and pull them down and install them" + ] + }, + { + "cell_type": "markdown", + "id": "2f6c108d", + "metadata": {}, + "source": [ + "## Design your own pipeline\n", + "1. Create a new Git branch\n", + "1. Bootstrap your new specification\n", + "1. Build your specifcation\n", + "1. Test your specification\n", + "1. Create a pull-request on GitHub to add it to official repository" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "dba95bec", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Bash", + "language": "bash", + "name": "bash" + }, + "language_info": { + "codemirror_mode": "shell", + "file_extension": ".sh", + "mimetype": "text/x-sh", + "name": "bash" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} From 0fa1cbedccb64efdc87e2b85797c2f04492084c5 Mon Sep 17 00:00:00 2001 From: Tom Close Date: Mon, 5 Aug 2024 15:39:35 +1000 Subject: [PATCH 02/10] added tutorial --- .gitignore | 1 + tutorial/ais-pipelines-tutorial.ipynb | 12 +++++++----- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index 9381399..e2c9558 100644 --- a/.gitignore +++ b/.gitignore @@ -26,3 +26,4 @@ test.log *.venv .mypy_cache .build* +.ipynb_checkpoints diff --git a/tutorial/ais-pipelines-tutorial.ipynb b/tutorial/ais-pipelines-tutorial.ipynb index d4a6950..74562e1 100644 --- a/tutorial/ais-pipelines-tutorial.ipynb +++ b/tutorial/ais-pipelines-tutorial.ipynb @@ -19,6 +19,8 @@ "1. Generate a SSH to be used for GitHub login\n", "1. Sign-in to GitHub and clone the community pipelines repository\n", "1. Start up a test XNAT instance to test the pipelines\n", + "1. Install the prerequisite packages\n", + "1. Start-up a live version of this notebook\n", "\n", "##### Build and deploy your first pipelines\n", "1. Explore the community pipelines repository\n", @@ -278,7 +280,7 @@ }, "outputs": [], "source": [ - "jupyter notebook " + "jupyter notebook ./tutorials/ais-pipelines-tutorial.ipynb" ] }, { @@ -1359,12 +1361,12 @@ "\n", "This will then start the process for the pipeline to be accepted and deployed\n", "\n", - "1. Maintainers of AIS Community Pipelines repository (i.e. Arkiev and myself) that you wish to add your pipeline to the community repository.\n", - "1. Repository maintainers (RM) will review your proposed pipeline for security issues\n", + "1. Maintainers of AIS Community Pipelines repository (i.e. Arkiev and myself) will be notified that you wish to add your pipeline to the community repository.\n", + "1. The repository maintainers (RM) will review your proposed pipeline for security issues\n", "1. RM will potentially request some changes to your specification\n", "1. RM accept your pipeline and merge your pull request\n", "1. The pipeline is built using the continuous integration and deployment actions running on GitHub\n", - "1. AIS nodes periodically check for newly pipelines and pull them down and install them" + "1. Checks for newly pipelines are run periodically to pull the latest versions of the pipelines to your local node (although this is not setup at every node yet)" ] }, { @@ -1377,7 +1379,7 @@ "1. Bootstrap your new specification\n", "1. Build your specifcation\n", "1. Test your specification\n", - "1. Create a pull-request on GitHub to add it to official repository" + "1. Create a pull-request on GitHub to add your pipeline to the central repository, https://github.com/Australian-Imaging-Service/pipelines-community" ] }, { From ccadbe4138f729b817b852c5dbe81b73985b2e21 Mon Sep 17 00:00:00 2001 From: Tom Close Date: Tue, 6 Aug 2024 12:21:57 +1000 Subject: [PATCH 03/10] updated tutorial --- tests/test_build.py | 6 ++-- tutorial/ais-pipelines-tutorial.ipynb | 46 ++++++++++++++++++--------- 2 files changed, 34 insertions(+), 18 deletions(-) diff --git a/tests/test_build.py b/tests/test_build.py index eb9dfd1..bda5014 100644 --- a/tests/test_build.py +++ b/tests/test_build.py @@ -1,14 +1,14 @@ from pathlib import Path from click.testing import CliRunner -from arcana.core.cli.deploy import make_app -from arcana.core.utils.misc import show_cli_trace +from pydra2app.core.cli import make +from frametree.core.utils import show_cli_trace PKG_PATH = Path(__file__).parent.parent.absolute() runner = CliRunner() results = runner.invoke( - make_app, + make, [ f"{PKG_PATH}/australian-imaging-service-community/", "xnat:XnatApp", diff --git a/tutorial/ais-pipelines-tutorial.ipynb b/tutorial/ais-pipelines-tutorial.ipynb index 74562e1..e92b76b 100644 --- a/tutorial/ais-pipelines-tutorial.ipynb +++ b/tutorial/ais-pipelines-tutorial.ipynb @@ -5,7 +5,7 @@ "id": "7cce59cd", "metadata": {}, "source": [ - "# NIF ASM - AIS Pipelines Workshop" + "# AIS Pipelines Tutorial" ] }, { @@ -27,7 +27,7 @@ "1. Build *Zip* pipeline from an existing example specification\n", "1. Install, enable and launch the zip pipeline using the XNAT UI\n", "1. Build *FSL BET* pipeline image\n", - "1. Install, enable and launch the BET pipeline using `pydra2app ext xnat *-command`\n", + "1. Install, enable and launch the BET pipeline using `pydra2app ext xnat (install|launch)-command`s\n", "\n", "##### Design a pipeline to run mri_synthstrip\n", "1. Create a new Git branch\n", @@ -961,7 +961,7 @@ "id": "a9a122ff", "metadata": {}, "source": [ - "### Install, enable and launch the BET pipeline using pydra2app ext xnat *-command" + "### Install, enable and launch the BET pipeline using `pydra2app ext xnat (install|launch)-command`s" ] }, { @@ -972,6 +972,19 @@ "For convenience (primarily during testing), I have created a couple of commands to install and launch pipelines via the CLI" ] }, + { + "cell_type": "code", + "execution_count": null, + "id": "7cc01126", + "metadata": {}, + "outputs": [], + "source": [ + "pydra2app ext xnat save-token \\\n", + "--server http://localhost:8080 \\\n", + "--user admin \\\n", + "--password admin" + ] + }, { "cell_type": "code", "execution_count": 6, @@ -996,9 +1009,8 @@ } ], "source": [ - "pydra2app ext xnat \\\n", - "install-command australian-image-service-community.examples.bet:1.0-1 \\\n", - "http://localhost:8080 \\\n", + "pydra2app ext xnat install-command \\\n", + "australian-image-service-community.examples.bet:1.0-1 \\\n", "--enable \\\n", "--enable-project OPENNEURO_T1W" ] @@ -1027,9 +1039,10 @@ } ], "source": [ - "pydra2app ext xnat \\\n", - "launch-command australian-image-service-community.examples.bet:1.0-1 \\\n", - "http://localhost:8080 OPENNEURO_T1W subject01_MR01 \\\n", + "pydra2app ext xnat launch-command \\\n", + "bet \\\n", + "OPENNEURO_T1W \\\n", + "subject01_MR01 \\\n", "--input t1w t1w" ] }, @@ -1335,14 +1348,17 @@ "metadata": {}, "outputs": [], "source": [ - "pydra2app ext xnat \\\n", - "install-command australian-image-service-community.${INSITUTION_NAME}.${GROUP_NAME}.mri_synthstrip:0.1 \\\n", + "pydra2app ext xnat install-command \\\n", + "australian-image-service-community.${INSITUTION_NAME}.${GROUP_NAME}.mri_synthstrip:0.1 \\\n", "http://localhost:8080 \\\n", "--enable \\\n", "--enable-project OPENNEURO_T1W\n", - "pydra2app ext xnat \\\n", - "launch-command australian-image-service-community.au.edu.${INSITUTION_NAME}.${GROUP_NAME}.mri_synthstrip:0.1 \\\n", - "http://localhost:8080 OPENNEURO_T1W subject01_MR01 \\\n", + "\n", + "pydra2app ext xnat launch-command \\\n", + "australian-image-service-community.au.edu.${INSITUTION_NAME}.${GROUP_NAME}.mri_synthstrip:0.1 \\\n", + "http://localhost:8080 \\\n", + "OPENNEURO_T1W \\\n", + "subject01_MR01 \\\n", "--input t1w t1w" ] }, @@ -1375,7 +1391,7 @@ "metadata": {}, "source": [ "## Design your own pipeline\n", - "1. Create a new Git branch\n", + "1. Create a new Git branch (`git checkout main; git checkout -b my-own-pipeline`)\n", "1. Bootstrap your new specification\n", "1. Build your specifcation\n", "1. Test your specification\n", From 36d1292e7cb4a81a7c139b9bcf882a6f421ec580 Mon Sep 17 00:00:00 2001 From: Tom Close Date: Tue, 6 Aug 2024 15:50:23 +1000 Subject: [PATCH 04/10] added requirements files --- requirements.txt | 10 ++-------- tutorial/requirements.txt | 5 +++++ 2 files changed, 7 insertions(+), 8 deletions(-) create mode 100644 tutorial/requirements.txt diff --git a/requirements.txt b/requirements.txt index 5038a3e..5e7380a 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,8 +1,2 @@ -arcana >=0.10.11 -arcana-xnat >= 0.3.6 -fileformats >= 0.8.6 -fileformats-extras >= 0.2.1 -fileformats-datascience >= 0.1.0 -fileformats-datascience-extras >= 0.1.1 -fileformats-medimage >= 0.4.4 -fileformats-medimage-extras >= 0.1.5 +pydra2app-xnat >=0.51 + diff --git a/tutorial/requirements.txt b/tutorial/requirements.txt new file mode 100644 index 0000000..c23a3a8 --- /dev/null +++ b/tutorial/requirements.txt @@ -0,0 +1,5 @@ +pydra2app-xnat >=0.5 +xnat4tests +jupyter +bash_kernel + From f269dd13fe26281707b7af67bf42f6be1d1f7f4a Mon Sep 17 00:00:00 2001 From: Tom Close Date: Tue, 6 Aug 2024 18:56:43 +1000 Subject: [PATCH 05/10] added in tutorial content and configuration files --- tutorial/ais-pipelines-tutorial.ipynb | 519 +++++++------------------- tutorial/start-up-script.sh | 19 + tutorial/xnat4tests-config.yaml | 4 + 3 files changed, 168 insertions(+), 374 deletions(-) create mode 100644 tutorial/start-up-script.sh create mode 100644 tutorial/xnat4tests-config.yaml diff --git a/tutorial/ais-pipelines-tutorial.ipynb b/tutorial/ais-pipelines-tutorial.ipynb index e92b76b..0e06dfd 100644 --- a/tutorial/ais-pipelines-tutorial.ipynb +++ b/tutorial/ais-pipelines-tutorial.ipynb @@ -15,14 +15,8 @@ "source": [ "In this workshop you will learn how to design, deploy and run Australian Imaging Service pipelines\n", "\n", - "##### Preparation\n", - "1. Generate a SSH to be used for GitHub login\n", - "1. Sign-in to GitHub and clone the community pipelines repository\n", - "1. Start up a test XNAT instance to test the pipelines\n", - "1. Install the prerequisite packages\n", - "1. Start-up a live version of this notebook\n", - "\n", "##### Build and deploy your first pipelines\n", + "1. Start up a test XNAT instance to test the pipelines\n", "1. Explore the community pipelines repository\n", "1. Build *Zip* pipeline from an existing example specification\n", "1. Install, enable and launch the zip pipeline using the XNAT UI\n", @@ -39,333 +33,7 @@ "\n", "##### Design your own pipeline (if you have one in mind)\n", "\n", - "Design, build and test your own pipeline using the methods demonstrated in previous sections\n" - ] - }, - { - "cell_type": "markdown", - "id": "abb470f7", - "metadata": {}, - "source": [ - "## Preparation" - ] - }, - { - "cell_type": "markdown", - "id": "a750f068", - "metadata": {}, - "source": [ - "### Generate SSH key to be used for GitHub login" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "id": "292bb7a9", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Generating public/private rsa key pair.\n", - "Your identification has been saved in /Users/tclose/dummy/.ssh/id_rsa.pub\n", - "Your public key has been saved in /Users/tclose/dummy/.ssh/id_rsa.pub.pub\n", - "The key fingerprint is:\n", - "SHA256:Mx521OTxxmmV3RCArwChN6Xc44Mm4FMoA27aknW8KkU tclose@AC02CK0RAMD6M\n", - "The key's randomart image is:\n", - "+---[RSA 3072]----+\n", - "|. ... .+.oo=|\n", - "|o o o.+ .+ + +o|\n", - "|ooE = =.o ..o * |\n", - "|oO + o +.o .o |\n", - "|+ = o o S... |\n", - "| o o o o *. |\n", - "|. . . |\n", - "| . |\n", - "| |\n", - "+----[SHA256]-----+\n" - ] - } - ], - "source": [ - "ssh-keygen -t rsa -N \"\" -f $HOME/dummy/.ssh/id_rsa.pub" - ] - }, - { - "cell_type": "code", - "execution_count": 29, - "id": "ca85f05f", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "bash: dummy: command not found\n" - ] - }, - { - "ename": "", - "evalue": "127", - "output_type": "error", - "traceback": [] - } - ], - "source": [ - "dummy cat $HOME/dummy/.ssh/id_rsa.pub" - ] - }, - { - "cell_type": "markdown", - "id": "dcae86db", - "metadata": {}, - "source": [ - "Copy this key including the '----START...' and '----END...' lines and paste it into your github SSH keys section (instructions below)" - ] - }, - { - "cell_type": "markdown", - "id": "8211d030", - "metadata": {}, - "source": [ - "### Sign-in to GitHub and clone the community pipelines repository" - ] - }, - { - "cell_type": "markdown", - "id": "d7b5528a", - "metadata": {}, - "source": [ - "Fork your own copy of the community pipelines repo\n", - "\n", - "1. Navigate to https://github.com\n", - "1. Create a GitHub user account (if you don't have one already)\n", - "1. Add the SSH key generated in the first step to your GitHub account under `Settings>SSH and GPG keys` (Settings are accessed by clicking your avatar in the top right hand corner)\n", - "1. Fork the https://github.com/Australian-Imaging-Service/pipelines-community into your GitHub user account" - ] - }, - { - "cell_type": "markdown", - "id": "e0e96a8c", - "metadata": {}, - "source": [ - "Set up git user on the virtual machine" - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "id": "73a67d27", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "bash: dummy: command not found\n", - "bash: dummy: command not found\n" - ] - }, - { - "ename": "", - "evalue": "127", - "output_type": "error", - "traceback": [] - } - ], - "source": [ - "dummy git config --global user.name \"Your Name\"\n", - "dummy git config --global user.email \"youremail@example.com\"" - ] - }, - { - "cell_type": "markdown", - "id": "a2628fc7", - "metadata": {}, - "source": [ - "Clone your copy of the pipelines community" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "c88af65c", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "bash: your-github-username: No such file or directory\n" - ] - }, - { - "ename": "", - "evalue": "1", - "output_type": "error", - "traceback": [] - } - ], - "source": [ - "mkdir -p ~/git\n", - "git clone git@github.com:/pipelines-community ~/git/pipelines-community" - ] - }, - { - "cell_type": "markdown", - "id": "8b77605a", - "metadata": {}, - "source": [ - "### Install the prerequite packages" - ] - }, - { - "cell_type": "markdown", - "id": "1d1bb269", - "metadata": {}, - "source": [ - "Install the packages via a Pip" - ] - }, - { - "cell_type": "code", - "execution_count": 30, - "id": "bb67958b", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\u001b[31mERROR: Could not open requirements file: [Errno 2] No such file or directory: './tutorial/requirements.txt'\u001b[0m\u001b[31m\n", - "\u001b[0m\n", - "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m23.3.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m24.2\u001b[0m\n", - "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpython3.10 -m pip install --upgrade pip\u001b[0m\n" - ] - }, - { - "ename": "", - "evalue": "1", - "output_type": "error", - "traceback": [] - } - ], - "source": [ - "pip install -r ./tutorial/requirements.txt" - ] - }, - { - "cell_type": "markdown", - "id": "296e2db7", - "metadata": {}, - "source": [ - "### Start up the Jupyter Notebook" - ] - }, - { - "cell_type": "markdown", - "id": "53e41a91", - "metadata": {}, - "source": [ - "Launch a \"live\" version of this notebook so you can run the command within it" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "b9e59ec6", - "metadata": { - "scrolled": true - }, - "outputs": [], - "source": [ - "jupyter notebook ./tutorials/ais-pipelines-tutorial.ipynb" - ] - }, - { - "cell_type": "markdown", - "id": "ef7fdcb3", - "metadata": {}, - "source": [ - "**NOTE:** You can now close the static version of this page and switch to the live version" - ] - }, - { - "cell_type": "markdown", - "id": "9f943cc5", - "metadata": {}, - "source": [ - "### Start up a test XNAT instance to test the pipelines" - ] - }, - { - "cell_type": "markdown", - "id": "155ad9ba", - "metadata": {}, - "source": [ - "Start a test XNAT on your machine/VM using the `xnat4tests` package" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "fefe84fb", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2024-08-05 08:23:39,577 - xnat4tests - INFO - Building xnat4tests in '/Users/tclose/.xnat4tests/build' directory\n", - "2024-08-05 08:23:39,822 - xnat4tests - INFO - Built xnat4tests successfully\n", - "2024-08-05 08:23:39,826 - xnat4tests - INFO - Did not find xnat4tests container, relaunching\n", - "2024-08-05 08:23:40,569 - xnat4tests - INFO - xnat4tests launched successfully\n", - "2024-08-05 08:23:40,569 - xnat4tests - INFO - Attempting to connect to http://localhost:8080\n", - "2024-08-05 08:23:40,569 - xnat4tests - INFO - Connecting to http://localhost:8080 as 'admin'\n", - "2024-08-05 08:23:45,573 - xnat4tests - INFO - Connecting to http://localhost:8080 as 'admin'\n", - "2024-08-05 08:23:50,584 - xnat4tests - INFO - Connecting to http://localhost:8080 as 'admin'\n", - "2024-08-05 08:25:10,375 - xnat4tests - INFO - Connecting to http://localhost:8080 as 'admin'\n", - "2024-08-05 08:25:15,535 - xnat4tests - INFO - Connecting to http://localhost:8080 as 'admin'\n", - "2024-08-05 08:25:16,506 - xnat4tests - INFO - Connected to http://localhost:8080 successfully\n", - "2024-08-05 08:25:16,555 - xnat4tests - INFO - Configuing docker server for container service\n" - ] - } - ], - "source": [ - "xnat4tests start" - ] - }, - { - "cell_type": "markdown", - "id": "500f569d", - "metadata": {}, - "source": [ - "It will take XNAT a couple of minutes to boot up. Once the frame above completes successfully you will be able to navigate to http://localhost:8080 and login with username=`admin`, password=`admin`.\n", - "\n", - "Now we will add some open-source data from OpenNeuro to our XNAT in order to test the pipelines we will build" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "56a8b6fb", - "metadata": { - "scrolled": false - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2024-08-05 08:26:32,726 - xnat4tests - INFO - Connecting to http://localhost:8080 as 'admin'\n", - "2024-08-05 08:26:33,326 - xnat4tests - INFO - Connecting to http://localhost:8080 as 'admin'\n", - "2024-08-05 08:26:38,272 - xnat4tests - INFO - Connecting to http://localhost:8080 as 'admin'\n" - ] - } - ], - "source": [ - "xnat4tests add-data openneuro-t1w" + " Design, build and test your own pipeline using the methods demonstrated in previous sections\n" ] }, { @@ -394,11 +62,9 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 5, "id": "7de3909f", - "metadata": { - "scrolled": false - }, + "metadata": {}, "outputs": [ { "name": "stdout", @@ -407,13 +73,50 @@ "\u001b[01;34m.\u001b[0m\n", "├── \u001b[00mLICENSE\u001b[0m\n", "├── \u001b[00mREADME.md\u001b[0m\n", - "└── \u001b[00mnif-asm-pipelines-workshop.ipynb\u001b[0m\n", + "├── \u001b[00mcodecov.yml\u001b[0m\n", + "├── \u001b[01;34mdocs\u001b[0m\n", + "├── \u001b[00mrequirements.txt\u001b[0m\n", + "├── \u001b[01;34mspecs\u001b[0m\n", + "│   └── \u001b[01;34maustralian-imaging-service-community\u001b[0m\n", + "│   ├── \u001b[01;34mau\u001b[0m\n", + "│   │   └── \u001b[01;34medu\u001b[0m\n", + "│   │   └── \u001b[01;34msydney\u001b[0m\n", + "│   │   └── \u001b[01;34msydneyimaging\u001b[0m\n", + "│   │   └── \u001b[00mt1_preproc.yaml\u001b[0m\n", + "│   └── \u001b[01;34mexamples\u001b[0m\n", + "│   ├── \u001b[00mbet.yaml\u001b[0m\n", + "│   └── \u001b[00mzip.yaml\u001b[0m\n", + "├── \u001b[01;34msrc\u001b[0m\n", + "│   └── \u001b[01;34mau.edu.sydney.sydneyimaging\u001b[0m\n", + "│   ├── \u001b[00mREADME.md\u001b[0m\n", + "│   ├── \u001b[01;34maustralianimagingservice\u001b[0m\n", + "│   │   └── \u001b[01;34mcommunity\u001b[0m\n", + "│   │   └── \u001b[01;34mau\u001b[0m\n", + "│   │   └── \u001b[01;34medu\u001b[0m\n", + "│   │   └── \u001b[01;34msydney\u001b[0m\n", + "│   │   └── \u001b[01;34msydneyimaging\u001b[0m\n", + "│   │   ├── \u001b[00m__init__.py\u001b[0m\n", + "│   │   ├── \u001b[00mt1_preproc.py\u001b[0m\n", + "│   │   └── \u001b[01;34mtests\u001b[0m\n", + "│   │   └── \u001b[00mtest_t1_preproc.py\u001b[0m\n", + "│   └── \u001b[00mpyproject.toml\u001b[0m\n", + "├── \u001b[01;34mtests\u001b[0m\n", + "│   ├── \u001b[00mtest_bet.py\u001b[0m\n", + "│   ├── \u001b[00mtest_build.py\u001b[0m\n", + "│   ├── \u001b[00mtest_docs.py\u001b[0m\n", + "│   └── \u001b[00mtest_zip.py\u001b[0m\n", + "└── \u001b[01;34mtutorial\u001b[0m\n", + " ├── \u001b[00mais-pipelines-tutorial.ipynb\u001b[0m\n", + " ├── \u001b[00mrequirements.txt\u001b[0m\n", + " ├── \u001b[00mstart-up-script.sh\u001b[0m\n", + " └── \u001b[00mxnat4tests-config.yaml\u001b[0m\n", "\n", - "1 directory, 3 files\n" + "20 directories, 20 files\n" ] } ], "source": [ + "cd ~/git/pipelines-community\n", "tree . --gitignore" ] }, @@ -427,7 +130,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 6, "id": "7fafd93b", "metadata": {}, "outputs": [ @@ -435,7 +138,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "# the version of the specification format used for this file\n", + "# The version of the specification format used for this file\n", "spec_version: 1.0\n", "# Short name for the pipeline referenced in the UI\n", "title: \"Zips up a file or directory\"\n", @@ -462,7 +165,7 @@ " system:\n", " - zip\n", "command:\n", - " # Use the generic \"shell-cmd\" task\n", + " # Use the generic \"shell-command\" task\n", " task: pydra2app.common:shell\n", " # the pipeline is desgined to run on imaging \"sessions\" as opposed to \"subjects\" or \"projects\"\n", " row_frequency: session\n", @@ -492,7 +195,8 @@ " argstr: \"\"\n", " # prefix for field when printed to command line\n", " position: -2\n", - " parameters: # Parameters exposed to user to UI\n", + " # Parameters exposed to user to UI\n", + " parameters:\n", " compression:\n", " # Format of the field\n", " datatype: field/integer\n", @@ -505,7 +209,7 @@ " # string template for field when printed to command line. \"{field-name}\" are\n", " # replaced by the value provided to the field name\n", " argstr: -{compression}\n", - " # Additional args passed to pydra2app.common:shell\n", + " # Additional args passed to shell\n", " configuration:\n", " # the command to run\n", " executable: zip\n" @@ -513,15 +217,84 @@ } ], "source": [ - "cat australian-imaging-service-community/examples/zip.yaml" + "cat specs/australian-imaging-service-community/examples/zip.yaml" ] }, { "cell_type": "markdown", - "id": "9d6dd189", + "id": "9f943cc5", "metadata": {}, "source": [ - "Checkout the help for the `pydra2app make` command we will use to build the pipeline from the specification" + "### Start up a test XNAT instance to test the pipelines" + ] + }, + { + "cell_type": "markdown", + "id": "155ad9ba", + "metadata": {}, + "source": [ + "Start a test XNAT on your machine/VM using the `xnat4tests` package" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "fefe84fb", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2024-08-06 18:12:25,419 - xnat4tests - INFO - Building xnat4tests in '/Users/tclose/.xnat4tests/build' directory\n", + "2024-08-06 18:14:05,134 - xnat4tests - INFO - Built xnat4tests successfully\n", + "2024-08-06 18:14:05,141 - xnat4tests - INFO - Did not find xnat4tests container, relaunching\n", + "2024-08-06 18:14:05,629 - xnat4tests - INFO - xnat4tests launched successfully\n", + "2024-08-06 18:14:05,629 - xnat4tests - INFO - Attempting to connect to http://localhost:8080\n", + "2024-08-06 18:14:05,629 - xnat4tests - INFO - Connecting to http://localhost:8080 as 'admin'\n", + "2024-08-06 18:14:10,638 - xnat4tests - INFO - Connecting to http://localhost:8080 as 'admin'\n", + "2024-08-06 18:14:15,647 - xnat4tests - INFO - Connecting to http://localhost:8080 as 'admin'\n", + "2024-08-06 18:15:45,805 - xnat4tests - INFO - Connected to http://localhost:8080 successfully\n", + "2024-08-06 18:15:45,878 - xnat4tests - INFO - Configuing docker server for container service\n" + ] + } + ], + "source": [ + "xnat4tests -c ~/git/pipelines-community/tutorial/xnat4tests-config.yaml start" + ] + }, + { + "cell_type": "markdown", + "id": "500f569d", + "metadata": {}, + "source": [ + "It will take XNAT a couple of minutes to boot up. Once the frame above completes successfully you will be able to navigate to http://localhost:8080 and login with username=`admin`, password=`admin`.\n", + "\n", + "Now we will add some open-source data from OpenNeuro to our XNAT in order to test the pipelines we will build" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "56a8b6fb", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2024-08-06 18:18:26,382 - xnat4tests - INFO - Connecting to http://localhost:8080 as 'admin'\n", + "2024-08-06 18:18:27,331 - xnat4tests - INFO - Connecting to http://localhost:8080 as 'admin'\n", + "2024-08-06 18:18:33,253 - xnat4tests - INFO - Connecting to http://localhost:8080 as 'admin'\n", + "2024-08-06 18:18:37,026 - xnat4tests - INFO - Connecting to http://localhost:8080 as 'admin'\n", + "2024-08-06 18:18:37,778 - xnat4tests - INFO - Connecting to http://localhost:8080 as 'admin'\n", + "2024-08-06 18:18:40,868 - xnat4tests - INFO - Connecting to http://localhost:8080 as 'admin'\n" + ] + } + ], + "source": [ + "xnat4tests -c ~/git/pipelines-community/tutorial/xnat4tests-config.yaml add-data simple-dir\n", + "xnat4tests -c ~/git/pipelines-community/tutorial/xnat4tests-config.yaml add-data openneuro-t1w" ] }, { @@ -532,6 +305,14 @@ "### Build *Zip* pipeline from an existing example specification" ] }, + { + "cell_type": "markdown", + "id": "9d6dd189", + "metadata": {}, + "source": [ + "Checkout the help for the `pydra2app make` command we will use to build the pipeline from the specification" + ] + }, { "cell_type": "code", "execution_count": 8, @@ -542,18 +323,20 @@ "name": "stdout", "output_type": "stream", "text": [ - "Usage: pydra2app make-app [OPTIONS] SPEC_PATH TARGET\n", + "Usage: pydra2app make [OPTIONS] TARGET SPEC_PATH\n", + "\n", + " Construct and build a docker image containing a pipeline to be run on data\n", + " stored in a data repository or structure (e.g. XNAT Container Service\n", + " Pipeline or BIDS App)\n", "\n", - " Construct and build a dockerfile/apptainer-file for containing a pipeline\n", + " TARGET is the type of image to build. For standard images just the pydra2app\n", + " sub-package is required (e.g. 'xnat' or 'common'). However, specific App\n", + " subclasses can be specified using : format,\n", + " e.g. pydra2app.xnat:XnatApp\n", "\n", " SPEC_PATH is the file system path to the specification to build, or\n", " directory containing multiple specifications\n", "\n", - " TARGET is the type of image to build, e.g. pydra2app.xnat.deploy:XnatApp the\n", - " target should resolve to a class deriviing from pydra2app.core.App. If it is\n", - " located under the `pydra2app.deploy`, then that prefix can be dropped, e.g.\n", - " common:App\n", - "\n", "Options:\n", " --registry TEXT The Docker registry to deploy the pipeline\n", " to\n", @@ -637,7 +420,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 14, "id": "1d824073", "metadata": {}, "outputs": [ @@ -645,26 +428,16 @@ "name": "stdout", "output_type": "stream", "text": [ - "pyenv: pydra2app: command not found\n", - "\n", - "The `pydra2app' command exists in these Python versions:\n", - " 3.11.8/envs/frametree-test\n", - " frametree-test\n", - "\n", - "Note: See 'pyenv help global' for tips on allowing both\n", - " python2 and python3 to be found.\n" + "INFO - Dockerfile for 'australian-imaging-service-community/examples.zip:3.0' generated at specs/australian-imaging-service-community/examples/.build-zip/Dockerfile\n", + "INFO - Successfully built docker image australian-imaging-service-community/examples.zip:3.0\n", + "australian-imaging-service-community/examples.zip:3.0\n", + "INFO - Successfully built australian-imaging-service-community/examples.zip:3.0 pipeline\n" ] - }, - { - "ename": "", - "evalue": "127", - "output_type": "error", - "traceback": [] } ], "source": [ "pydra2app make xnat \\\n", - "australian-imaging-service-community/examples/zip.yaml \\\n", + "./specs/australian-imaging-service-community/examples/zip.yaml \\\n", "--spec-root ./specs \\\n", "--for-localhost \\\n", "--export-file xnat_command.json ~/zip-xnat-command.json" @@ -683,9 +456,7 @@ "cell_type": "code", "execution_count": 11, "id": "fa298a80", - "metadata": { - "scrolled": false - }, + "metadata": {}, "outputs": [ { "name": "stdout", diff --git a/tutorial/start-up-script.sh b/tutorial/start-up-script.sh new file mode 100644 index 0000000..1994fba --- /dev/null +++ b/tutorial/start-up-script.sh @@ -0,0 +1,19 @@ +#!/usr/bin/env bash + +# Clone the pipelines-community repository +mkdir -p ~/git +if [ ! -d ~/git/pipelines-community ]; then + git clone git@github.com:Australian-Imaging-Service/pipelines-community.git ~/git/pipelines-community +fi +pushd ~/git/pipelines-community + +# Update the pipelines-community repository +git pull + +# Install the pipelines-community repository +pip install -r ./tutorial/requirements.txt + +# Pre-build the XNAT docker image to save time +xnat4tests -c ./tutorial/xnat4tests-config.yaml start --with-data openneuro-t1w +xnat4tests -c ./tutorial/xnat4tests-config.yaml stop +popd \ No newline at end of file diff --git a/tutorial/xnat4tests-config.yaml b/tutorial/xnat4tests-config.yaml new file mode 100644 index 0000000..2e7c6a2 --- /dev/null +++ b/tutorial/xnat4tests-config.yaml @@ -0,0 +1,4 @@ +build_args: + xnat_cs_plugin_version: 3.4.3 + xnat_version: 1.8.10.1 +xnat_root_dir: /Users/tclose/xnat4tests-root # /home/ubuntu/xnat4tests-root From 0e6a766d7dd27c2c0a992371e4dacbcc6fc8b012 Mon Sep 17 00:00:00 2001 From: Tom Close Date: Tue, 6 Aug 2024 22:41:22 +1000 Subject: [PATCH 06/10] Getting tutorial to work --- .../edu/sydney/sydneyimaging/t1_preproc.yaml | 2 +- .../examples/bet.yaml | 8 +- .../examples/zip.yaml | 4 +- tutorial/ais-pipelines-tutorial.ipynb | 110 +++++++++--------- tutorial/start-up-script.sh | 5 +- 5 files changed, 65 insertions(+), 64 deletions(-) diff --git a/specs/australian-imaging-service-community/au/edu/sydney/sydneyimaging/t1_preproc.yaml b/specs/australian-imaging-service-community/au/edu/sydney/sydneyimaging/t1_preproc.yaml index 61e55a4..268e2cc 100644 --- a/specs/australian-imaging-service-community/au/edu/sydney/sydneyimaging/t1_preproc.yaml +++ b/specs/australian-imaging-service-community/au/edu/sydney/sydneyimaging/t1_preproc.yaml @@ -1,5 +1,5 @@ title: "Preprocess T1-weighted MRI" # Short name for the pipeline referenced in the UI -spec_version: 1.0 # the version of the specification format used for this file +schema_version: 1.0 # the version of the specification format used for this file version: # The version of Ubuntu's zip we are using package: "1.0" diff --git a/specs/australian-imaging-service-community/examples/bet.yaml b/specs/australian-imaging-service-community/examples/bet.yaml index 6437ec1..638e01c 100644 --- a/specs/australian-imaging-service-community/examples/bet.yaml +++ b/specs/australian-imaging-service-community/examples/bet.yaml @@ -1,4 +1,4 @@ -spec_version: 1.0 # the version of the specification format used for this file +schema_version: 1.0 # the version of the specification format used for this file title: "Example BET pipeline" # Short name for the pipeline referenced in the UI version: # Define a version for the pipeline in combination of the underlying package version (e.g. FSL) @@ -26,17 +26,15 @@ docs: description: | # Description of tool for auto-docs An example wrapping BET in a XNAT pipeline command: - task: shell # Use the generic "shell-cmd" task + task: common:shell # Use the generic "shell-cmd" task row_frequency: session # the pipeline is desgined to run on imaging "sessions" as opposed to "subjects" or "projects" inputs: # List the inputs that are presented to end-user in UI - T1w: + t1w: datatype: medimage/nifti-gz # MIME-type or "MIME-like" format help: "T1-weighted anatomical scan" # description of field presented in UI configuration: # Additional configuration parameters that are passed to the pydra2app.common:shell task in the "inputs" dict position: -2 # Position of field when printed to command line call. Negative numbers are indexed from the end backwards argstr: "" # prefix for field when printed to command line - column_defaults: - datatype: medimage/dicom-series # the default outputs: # List the outputs generated by the pipeline brain: datatype: medimage/nifti-gz # MIME-type or "MIME-like" format diff --git a/specs/australian-imaging-service-community/examples/zip.yaml b/specs/australian-imaging-service-community/examples/zip.yaml index 036a0c8..a9b13e3 100644 --- a/specs/australian-imaging-service-community/examples/zip.yaml +++ b/specs/australian-imaging-service-community/examples/zip.yaml @@ -1,5 +1,5 @@ # The version of the specification format used for this file -spec_version: 1.0 +schema_version: 1.0 # Short name for the pipeline referenced in the UI title: "Zips up a file or directory" version: @@ -26,7 +26,7 @@ packages: - zip command: # Use the generic "shell-command" task - task: pydra2app.common:shell + task: common:shell # the pipeline is desgined to run on imaging "sessions" as opposed to "subjects" or "projects" row_frequency: session # List the inputs that are presented to end-user in UI diff --git a/tutorial/ais-pipelines-tutorial.ipynb b/tutorial/ais-pipelines-tutorial.ipynb index 0e06dfd..b2d0491 100644 --- a/tutorial/ais-pipelines-tutorial.ipynb +++ b/tutorial/ais-pipelines-tutorial.ipynb @@ -420,7 +420,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 18, "id": "1d824073", "metadata": {}, "outputs": [ @@ -428,6 +428,8 @@ "name": "stdout", "output_type": "stream", "text": [ + "INFO - Building sdist...\n", + "INFO - Building sdist...\n", "INFO - Dockerfile for 'australian-imaging-service-community/examples.zip:3.0' generated at specs/australian-imaging-service-community/examples/.build-zip/Dockerfile\n", "INFO - Successfully built docker image australian-imaging-service-community/examples.zip:3.0\n", "australian-imaging-service-community/examples.zip:3.0\n", @@ -440,7 +442,8 @@ "./specs/australian-imaging-service-community/examples/zip.yaml \\\n", "--spec-root ./specs \\\n", "--for-localhost \\\n", - "--export-file xnat_command.json ~/zip-xnat-command.json" + "--export-file xnat_command.json ~/zip-xnat-command.json \\\n", + "--use-local-packages" ] }, { @@ -448,13 +451,18 @@ "id": "0c723085", "metadata": {}, "source": [ + "**NOTES:**\n", + "* `--spec-root` the name and organisation given to the generated image is based on the file path to the specification file, the spec root specifies where this path should be relative to (if not provided it is the current working directory\n", + "* `--for-localhost` is required when running the containers on a test XNAT server installed on the localhost\n", + "* `--export-file` exports generated files from the build directory to a location they can be accessed more conveniently\n", + "\n", "We can take a look at the *XNAT command JSON* that is generated by the make process. This is the specification that\n", "tells XNAT how to run the pipeline within the image" ] }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 19, "id": "fa298a80", "metadata": {}, "outputs": [ @@ -463,11 +471,11 @@ "output_type": "stream", "text": [ "{\n", - " \"name\": \"zip\",\n", - " \"description\": \"zip 3.0: Zips up a file or directory\",\n", - " \"label\": \"zip\",\n", + " \"name\": \"examples.zip\",\n", + " \"description\": \"examples.zip 3.0: Zips up a file or directory\",\n", + " \"label\": \"examples.zip\",\n", " \"schema-version\": \"1.0\",\n", - " \"image\": \"examples/zip:3.0\",\n", + " \"image\": \"australian-imaging-service-community/examples.zip:3.0\",\n", " \"index\": \"docker.io\",\n", " \"datatype\": \"docker\",\n", " \"override-entrypoint\": true,\n", @@ -554,7 +562,7 @@ " ],\n", " \"xnat\": [\n", " {\n", - " \"name\": \"zip\",\n", + " \"name\": \"examples.zip\",\n", " \"description\": \"Zips up a file or directory\",\n", " \"contexts\": [\n", " \"xnat:imageSessionData\"\n", @@ -657,23 +665,24 @@ "\n", "##### Enable the pipeline for a specific project\n", "1. Navigate back to the home screen by clicking the XNAT logo in the top-left corner\n", - "1. Select the `OPENNEURO_T1W` project\n", + "1. Select the `SIMPLE_DIR` project\n", "1. Select `Project Settings` from the bottom of the right-hand actions menu\n", - "1. Select `Command configuration` from the left-hand menu\n", - "1. Toggle the `Enable` switch next to the Zip pipeline\n", + "1. Select `Configure Commands` from the left-hand menu\n", + "1. Toggle the `Enabled` switch next to the Zip pipeline\n", "\n", "##### Launch the pipeline\n", - "1. Navigate back to project home by clicking the `OPENNEURO_T1W` breadcrumb\n", + "1. Navigate back to project home by clicking the `SIMPLE_DIR` breadcrumb\n", "1. Select either one of the two subjects\n", "1. Select the MR session\n", "1. Click on the `Run containers` from the bottom of the right-hand side actions menu and select \"Zip up a file or directory\"\n", - "1. In the `To_zip` field of the dialog that opens up enter `t1w` to select the scan that is to be zipped and click `Run Container`\n", + "1. In the `To_zip` field of the dialog that opens up enter `a-directory` to select the scan that is to be zipped and click `Run Container`\n", "\n", "##### Check the status of the pipeline\n", "1. In the `History` panel click the `Reload` button and you should see the pipeline status\n", "1. Select the \"eye\" image that appears to the right of the status when you hover over it to view details of the workflow status\n", "1. If the workflow has failed (after a successful launch), you can view the output and error logs by clicking the `View StdOut.log` and `View StdErr.log` buttons at the bottom of the page.\n", - "1. (Advanced) to access the working directory of the command in order to debug anything that has gone wrong, look up the `container-host-path` of the `work` mount listed under `container mounts`\n", + "1. (Advanced) to access the working directory of the command in order to debug anything that has gone wrong, look up the `container-host-path` of the `work` mount listed under `container mounts` (see image below)\n", + "1. Select `Manage Files` from the right-hand side Actions menu to view the generated zip file\n", "\n", "\n", "![View workflow status.png](attachment:Screen%20Shot%202024-08-05%20at%2012.59.37%20pm.png)\n", @@ -699,7 +708,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 32, "id": "03db8871", "metadata": {}, "outputs": [ @@ -707,24 +716,21 @@ "name": "stdout", "output_type": "stream", "text": [ - "Usage: pydra2app [OPTIONS] COMMAND [ARGS]...\n", - "Try 'pydra2app --help' for help.\n", - "\n", - "Error: No such command 'make'.\n" + "INFO - Building sdist...\n", + "INFO - Building sdist...\n", + "INFO - Dockerfile for 'australian-imaging-service-community/examples.bet:6.0.6.4-1' generated at specs/australian-imaging-service-community/examples/.build-bet/Dockerfile\n", + "INFO - Successfully built docker image australian-imaging-service-community/examples.bet:6.0.6.4-1\n", + "australian-imaging-service-community/examples.bet:6.0.6.4-1\n", + "INFO - Successfully built australian-imaging-service-community/examples.bet:6.0.6.4-1 pipeline\n" ] - }, - { - "ename": "", - "evalue": "2", - "output_type": "error", - "traceback": [] } ], "source": [ "pydra2app make xnat \\\n", - "australian-imaging-service-community/examples/bet.yaml \\\n", + "./specs/australian-imaging-service-community/examples/bet.yaml \\\n", "--spec-root ./specs \\\n", - "--for-localhost" + "--for-localhost \\\n", + "--use-local-packages" ] }, { @@ -745,10 +751,18 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 27, "id": "7cc01126", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saved alias/token for 'http://localhost:8080' XNAT in '/Users/tclose/.pydra2app_xnat_user_token.json' file, please ensure the file is secure\n" + ] + } + ], "source": [ "pydra2app ext xnat save-token \\\n", "--server http://localhost:8080 \\\n", @@ -758,7 +772,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 37, "id": "3c57c1fb", "metadata": {}, "outputs": [ @@ -766,29 +780,23 @@ "name": "stdout", "output_type": "stream", "text": [ - "Usage: pydra2app ext xnat [OPTIONS] COMMAND [ARGS]...\n", - "Try 'pydra2app ext xnat --help' for help.\n", - "\n", - "Error: No such command 'install-command'.\n" + "Reading existing alias/token pair from '/Users/tclose/.pydra2app_xnat_user_token.json\n", + "INFO - Deleted existing command 'examples.bet'\n", + "Successfully installed the 'australian-imaging-service-community/examples.bet:6.0.6.4-1' pipeline on 'http://localhost:8080'\n" ] - }, - { - "ename": "", - "evalue": "2", - "output_type": "error", - "traceback": [] } ], "source": [ "pydra2app ext xnat install-command \\\n", - "australian-image-service-community.examples.bet:1.0-1 \\\n", + "australian-imaging-service-community/examples.bet:6.0.6.4-1 \\\n", "--enable \\\n", - "--enable-project OPENNEURO_T1W" + "--enable-project OPENNEURO_T1W \\\n", + "--replace-existing" ] }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "id": "cf75564c", "metadata": {}, "outputs": [ @@ -796,22 +804,13 @@ "name": "stdout", "output_type": "stream", "text": [ - "Usage: pydra2app ext xnat [OPTIONS] COMMAND [ARGS]...\n", - "Try 'pydra2app ext xnat --help' for help.\n", - "\n", - "Error: No such command 'launch-command'.\n" + "Reading existing alias/token pair from '/Users/tclose/.pydra2app_xnat_user_token.json\n" ] - }, - { - "ename": "", - "evalue": "2", - "output_type": "error", - "traceback": [] } ], "source": [ "pydra2app ext xnat launch-command \\\n", - "bet \\\n", + "examples.bet \\\n", "OPENNEURO_T1W \\\n", "subject01_MR01 \\\n", "--input t1w t1w" @@ -1123,7 +1122,8 @@ "australian-image-service-community.${INSITUTION_NAME}.${GROUP_NAME}.mri_synthstrip:0.1 \\\n", "http://localhost:8080 \\\n", "--enable \\\n", - "--enable-project OPENNEURO_T1W\n", + "--enable-project OPENNEURO_T1W \\\n", + "--replace-existing\n", "\n", "pydra2app ext xnat launch-command \\\n", "australian-image-service-community.au.edu.${INSITUTION_NAME}.${GROUP_NAME}.mri_synthstrip:0.1 \\\n", diff --git a/tutorial/start-up-script.sh b/tutorial/start-up-script.sh index 1994fba..fe941cc 100644 --- a/tutorial/start-up-script.sh +++ b/tutorial/start-up-script.sh @@ -13,7 +13,10 @@ git pull # Install the pipelines-community repository pip install -r ./tutorial/requirements.txt -# Pre-build the XNAT docker image to save time +# Pre-build/pull the required XNAT docker images to save time xnat4tests -c ./tutorial/xnat4tests-config.yaml start --with-data openneuro-t1w xnat4tests -c ./tutorial/xnat4tests-config.yaml stop +pydra2app make xnat ./specs/australian-imaging-service-community/examples/zip.yaml --spec-root ./specs --for-localhost +pydra2app make xnat ./specs/australian-imaging-service-community/examples/bet.yaml --spec-root ./specs --for-localhost +docker pull vnmd/freesurfer_7.1.1 popd \ No newline at end of file From ca960357b811f1ddeb12c0d737e490074df1da75 Mon Sep 17 00:00:00 2001 From: Tom Close Date: Wed, 7 Aug 2024 04:40:57 +1000 Subject: [PATCH 07/10] adding back in preparation section --- tutorial/ais-pipelines-tutorial.ipynb | 48 +++++++++++++++++---------- 1 file changed, 31 insertions(+), 17 deletions(-) diff --git a/tutorial/ais-pipelines-tutorial.ipynb b/tutorial/ais-pipelines-tutorial.ipynb index b2d0491..a02a62d 100644 --- a/tutorial/ais-pipelines-tutorial.ipynb +++ b/tutorial/ais-pipelines-tutorial.ipynb @@ -15,9 +15,14 @@ "source": [ "In this workshop you will learn how to design, deploy and run Australian Imaging Service pipelines\n", "\n", - "##### Build and deploy your first pipelines\n", - "1. Start up a test XNAT instance to test the pipelines\n", + "##### Preparation\n", "1. Explore the community pipelines repository\n", + "1. View the SSH public key\n", + "1. Start up a test XNAT instance to test the pipelines\n", + "1. Add the SSH public key to your GitHub account\n", + "\n", + "##### Build and deploy your first pipelines\n", + "\n", "1. Build *Zip* pipeline from an existing example specification\n", "1. Install, enable and launch the zip pipeline using the XNAT UI\n", "1. Build *FSL BET* pipeline image\n", @@ -38,10 +43,10 @@ }, { "cell_type": "markdown", - "id": "a3aafaa2", + "id": "138b2936-bc0a-4f98-bfe6-46183ddd2198", "metadata": {}, "source": [ - "## Build and deploy your first pipelines" + "## Preparation" ] }, { @@ -297,6 +302,14 @@ "xnat4tests -c ~/git/pipelines-community/tutorial/xnat4tests-config.yaml add-data openneuro-t1w" ] }, + { + "cell_type": "markdown", + "id": "a3aafaa2", + "metadata": {}, + "source": [ + "## Build and deploy your first pipelines" + ] + }, { "cell_type": "markdown", "id": "180e8f7d", @@ -796,7 +809,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 42, "id": "cf75564c", "metadata": {}, "outputs": [ @@ -804,7 +817,8 @@ "name": "stdout", "output_type": "stream", "text": [ - "Reading existing alias/token pair from '/Users/tclose/.pydra2app_xnat_user_token.json\n" + "Reading existing alias/token pair from '/Users/tclose/.pydra2app_xnat_user_token.json\n", + "Successfully launched the 'examples.bet' pipeline on 'subject01_MR01' session in 'OPENNEURO_T1W' project on 'http://localhost:8080'\n" ] } ], @@ -821,7 +835,7 @@ "id": "5b850362", "metadata": {}, "source": [ - "## Design a pipeline to run mri_synthstrip" + "## Design a pipeline to run mri_convert" ] }, { @@ -839,7 +853,7 @@ "metadata": {}, "outputs": [], "source": [ - "git checkout -b my-mri-synthstrip" + "git checkout -b my-mri-convert" ] }, { @@ -847,7 +861,7 @@ "id": "26d6902c", "metadata": {}, "source": [ - "### Write specification for *mri_synthstrip* command" + "### Write specification for *mri_convert* command" ] }, { @@ -891,7 +905,7 @@ "export AUTHORS_EMAIL=\"your.email@goes.here\"\n", "\n", "pydra2app bootstrap \\\n", - "./specs/australian-image-service-community/au/edu/${INSITUTION_NAME}/${GROUP_NAME}/mri_synthstrip.yaml \\\n", + "./specs/australian-image-service-community/au/edu/${INSITUTION_NAME}/${GROUP_NAME}/mri_convert.yaml \\\n", "--authors-name ${AUTHORS_NAME} \\\n", "--authors-email ${AUTHORS_EMAIL} \\\n", "--version 0.1\n", @@ -901,9 +915,9 @@ "--command-task shell \\\n", "--inputs head \"datatype=medimage/nifti-gz,position=-2,argstr=''\" \\\n", "--outputs brain \"datatype=medimage/nifti-gz,position=-1,argstr=''\" \\\n", - "--configuration executable mri_synthstrip \\\n", + "--configuration executable mri_convert \\\n", "--version-package 7.1.1 \\\n", - "--title \"MRI SynthStrip: brain extraction pipeline\" \\\n", + "--title \"MRI Convert\" \\\n", "--licenses freesurfer \"destination=/opt/freesurfer/license.txt,info_url=https://surfer.nmr.mgh.harvard.edu/registration.html\"" ] }, @@ -936,7 +950,7 @@ } ], "source": [ - "cat ./specs/australian-image-service-community/au/edu/${INSITUTION_NAME}/${GROUP_NAME}/mri_synthstrip.yaml" + "cat ./specs/australian-image-service-community/au/edu/${INSITUTION_NAME}/${GROUP_NAME}/mri_convert.yaml" ] }, { @@ -944,7 +958,7 @@ "id": "c47caf9b", "metadata": {}, "source": [ - "### Build the `mri_synthstrip` pipeline" + "### Build the `mri_convert` pipeline" ] }, { @@ -977,7 +991,7 @@ ], "source": [ "pydra2app make xnat \\\n", - "./specs/australian-image-service-community/au/edu/${INSITUTION_NAME}/${GROUP_NAME}/mri_synthstrip.yaml \\\n", + "./specs/australian-image-service-community/au/edu/${INSITUTION_NAME}/${GROUP_NAME}/mri_convert.yaml \\\n", "--spec-root ./specs \\\n", "--for-localhost" ] @@ -1119,14 +1133,14 @@ "outputs": [], "source": [ "pydra2app ext xnat install-command \\\n", - "australian-image-service-community.${INSITUTION_NAME}.${GROUP_NAME}.mri_synthstrip:0.1 \\\n", + "australian-image-service-community.${INSITUTION_NAME}.${GROUP_NAME}.mri_convert:0.1 \\\n", "http://localhost:8080 \\\n", "--enable \\\n", "--enable-project OPENNEURO_T1W \\\n", "--replace-existing\n", "\n", "pydra2app ext xnat launch-command \\\n", - "australian-image-service-community.au.edu.${INSITUTION_NAME}.${GROUP_NAME}.mri_synthstrip:0.1 \\\n", + "australian-image-service-community.au.edu.${INSITUTION_NAME}.${GROUP_NAME}.mri_convert:0.1 \\\n", "http://localhost:8080 \\\n", "OPENNEURO_T1W \\\n", "subject01_MR01 \\\n", From a6de993cfa71fc4b9283d2207a62cf3e61531527 Mon Sep 17 00:00:00 2001 From: Tom Close Date: Wed, 7 Aug 2024 05:14:14 +1000 Subject: [PATCH 08/10] readded preparation section to tutorial --- tutorial/ais-pipelines-tutorial.ipynb | 87 +++++++++++++++++++++++++-- tutorial/start-up-script.sh | 4 +- 2 files changed, 84 insertions(+), 7 deletions(-) diff --git a/tutorial/ais-pipelines-tutorial.ipynb b/tutorial/ais-pipelines-tutorial.ipynb index a02a62d..b043d61 100644 --- a/tutorial/ais-pipelines-tutorial.ipynb +++ b/tutorial/ais-pipelines-tutorial.ipynb @@ -17,9 +17,8 @@ "\n", "##### Preparation\n", "1. Explore the community pipelines repository\n", - "1. View the SSH public key\n", "1. Start up a test XNAT instance to test the pipelines\n", - "1. Add the SSH public key to your GitHub account\n", + "1. Set up your Git/GitHub\n", "\n", "##### Build and deploy your first pipelines\n", "\n", @@ -233,6 +232,24 @@ "### Start up a test XNAT instance to test the pipelines" ] }, + { + "cell_type": "markdown", + "id": "7173a999-9968-493e-94ff-a95f922dd5b7", + "metadata": {}, + "source": [ + "View the public key here so we can use it in subsequent steps while we wait for the test XNAT to start up" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5d3cde9f-ade9-4336-912f-e3f3673ee38d", + "metadata": {}, + "outputs": [], + "source": [ + "cat $HOME/.ssh/id_rsa.pub" + ] + }, { "cell_type": "markdown", "id": "155ad9ba", @@ -302,6 +319,65 @@ "xnat4tests -c ~/git/pipelines-community/tutorial/xnat4tests-config.yaml add-data openneuro-t1w" ] }, + { + "cell_type": "markdown", + "id": "48c963ec-b6be-46d0-8a3b-e0ce584e3df1", + "metadata": {}, + "source": [ + "### Set up your Git/GitHub" + ] + }, + { + "cell_type": "markdown", + "id": "03e833e5-abd6-4087-b290-5fdd35b9a37c", + "metadata": {}, + "source": [ + "Fork your own copy of the community pipelines repo\n", + "\n", + "1. Navigate to https://github.com\n", + "1. Create a GitHub user account (if you don't have one already)\n", + "1. Add the SSH key generated in the first step to your GitHub account under `Settings>SSH and GPG keys` (Settings are accessed by clicking your avatar in the top right hand corner)\n", + "1. Fork the https://github.com/Australian-Imaging-Service/pipelines-community into your GitHub user account" + ] + }, + { + "cell_type": "markdown", + "id": "526c4c67-2d47-494e-ba26-6bd632c95896", + "metadata": {}, + "source": [ + "Set the origin of the repository to your fork" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "id": "2f910886-c303-4bb8-8efb-55c8d39ea126", + "metadata": {}, + "outputs": [], + "source": [ + "git remote rename origin upstream\n", + "git remote add origin git@github.com:\"\"/pipelines-community.git" + ] + }, + { + "cell_type": "markdown", + "id": "e4042467-5d45-4180-9b15-1c6348424d29", + "metadata": {}, + "source": [ + "Configure your local Git user" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6c891a9d-d20d-4d75-9a71-addd70adc7d1", + "metadata": {}, + "outputs": [], + "source": [ + "git config --global user.name \"Your Name\"\n", + "git config --global user.email \"youremail@example.com\"" + ] + }, { "cell_type": "markdown", "id": "a3aafaa2", @@ -426,8 +502,8 @@ "\n", "Notes:\n", "\n", - "* The name of the built image is taken from its relative file-system path, so we pass the `--spec-root` option to specify where this should start from\n", - "* The `--use-test-config` is required to be able to run the pipeline using the test XNAT repository, i.e. it is only used in development not production\n", + "* The name of the built image is taken from its relative file-system path, so we pass the `--spec-root` option to specify where this path should start from\n", + "* The `--for-localhost` is required to be able to run the pipeline using the test XNAT repository, i.e. it is only used in development not production\n", "* We export the generated `xnat_command.json` file from the build directory, so we can easily copy it into the XNAT UI in subsequent steps" ] }, @@ -455,8 +531,7 @@ "./specs/australian-imaging-service-community/examples/zip.yaml \\\n", "--spec-root ./specs \\\n", "--for-localhost \\\n", - "--export-file xnat_command.json ~/zip-xnat-command.json \\\n", - "--use-local-packages" + "--export-file xnat_command.json ~/zip-xnat-command.json" ] }, { diff --git a/tutorial/start-up-script.sh b/tutorial/start-up-script.sh index fe941cc..145fde1 100644 --- a/tutorial/start-up-script.sh +++ b/tutorial/start-up-script.sh @@ -1,9 +1,11 @@ #!/usr/bin/env bash +ssh-keygen -t rsa -N "" -f $HOME/.ssh/id_rsa.pub + # Clone the pipelines-community repository mkdir -p ~/git if [ ! -d ~/git/pipelines-community ]; then - git clone git@github.com:Australian-Imaging-Service/pipelines-community.git ~/git/pipelines-community + git clone https://github.com/Australian-Imaging-Service/pipelines-community.git ~/git/pipelines-community fi pushd ~/git/pipelines-community From e6aff421f310a4cfcf9e55be584ee5cc198864bd Mon Sep 17 00:00:00 2001 From: Tom Close Date: Wed, 7 Aug 2024 05:20:26 +1000 Subject: [PATCH 09/10] added specification for Freesurfer's mri_convert --- tutorial/ais-pipelines-tutorial.ipynb | 39 ++++++++++++++++++++++----- 1 file changed, 32 insertions(+), 7 deletions(-) diff --git a/tutorial/ais-pipelines-tutorial.ipynb b/tutorial/ais-pipelines-tutorial.ipynb index b043d61..57643f4 100644 --- a/tutorial/ais-pipelines-tutorial.ipynb +++ b/tutorial/ais-pipelines-tutorial.ipynb @@ -27,12 +27,12 @@ "1. Build *FSL BET* pipeline image\n", "1. Install, enable and launch the BET pipeline using `pydra2app ext xnat (install|launch)-command`s\n", "\n", - "##### Design a pipeline to run mri_synthstrip\n", + "##### Design a pipeline to run mri_convert\n", "1. Create a new Git branch\n", - "1. Write specification for *mri_synthstrip* command\n", - "1. Build *mri_synthstrip* pipeline\n", + "1. Generate specification for *mri_convert* command\n", + "1. Build *mri_convert* pipeline\n", "1. Install project-specific Freesurfer license\n", - "1. Test the *mri_synthstrip* pipeline\n", + "1. Test the *mri_convert* pipeline\n", "1. Create a test pull-request on GitHub\n", "\n", "##### Design your own pipeline (if you have one in mind)\n", @@ -359,6 +359,24 @@ "git remote add origin git@github.com:\"\"/pipelines-community.git" ] }, + { + "cell_type": "markdown", + "id": "d20e62f0-b04c-42fa-841a-5a3ea2554ee0", + "metadata": {}, + "source": [ + "Update the repository with the latest changes" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9ea96efe-5e97-4189-812e-2db76f1301fe", + "metadata": {}, + "outputs": [], + "source": [ + "git pull upstream" + ] + }, { "cell_type": "markdown", "id": "e4042467-5d45-4180-9b15-1c6348424d29", @@ -817,8 +835,7 @@ "pydra2app make xnat \\\n", "./specs/australian-imaging-service-community/examples/bet.yaml \\\n", "--spec-root ./specs \\\n", - "--for-localhost \\\n", - "--use-local-packages" + "--for-localhost" ] }, { @@ -936,7 +953,7 @@ "id": "26d6902c", "metadata": {}, "source": [ - "### Write specification for *mri_convert* command" + "### Generate specification for *mri_convert* command" ] }, { @@ -1222,6 +1239,14 @@ "--input t1w t1w" ] }, + { + "cell_type": "markdown", + "id": "779803ec-756d-4369-b763-3e1a90045fbc", + "metadata": {}, + "source": [ + "##" + ] + }, { "cell_type": "markdown", "id": "dba5c217", From 5967586214b23d70dad11abd9cd27f78d3b8aa75 Mon Sep 17 00:00:00 2001 From: Tom Close Date: Wed, 7 Aug 2024 06:09:09 +1000 Subject: [PATCH 10/10] fixed up imports --- tests/test_bet.py | 8 ++-- tests/test_zip.py | 8 ++-- tutorial/ais-pipelines-tutorial.ipynb | 58 ++++++++++++++++++++++++--- 3 files changed, 60 insertions(+), 14 deletions(-) diff --git a/tests/test_bet.py b/tests/test_bet.py index 9970f39..9309148 100644 --- a/tests/test_bet.py +++ b/tests/test_bet.py @@ -1,13 +1,13 @@ from pathlib import Path import tempfile -from arcana.common import Clinical +from frametree.common import Clinical from fileformats.medimage import NiftiGz -from arcana.common import DirTree +from frametree.common import DirTree from arcana.testing.data.blueprint import ( TestDatasetBlueprint, FileSetEntryBlueprint as FileBP, ) -from arcana.core.deploy.command import ContainerCommand +from pydra2app.core.command import ContainerCommand from medimages4tests.mri.neuro.t1w import get_image @@ -33,7 +33,7 @@ saved_dataset = bp.make_dataset(DirTree(), dataset_id, name="", source_data=source_dir) command_spec = ContainerCommand( - task="arcana.common:shell", + task="common:shell", row_frequency=Clinical.session, inputs=[ { diff --git a/tests/test_zip.py b/tests/test_zip.py index 329389b..56e48b4 100644 --- a/tests/test_zip.py +++ b/tests/test_zip.py @@ -4,13 +4,13 @@ import functools from fileformats.generic import Directory from fileformats.application import Zip -from arcana.common import DirTree -from arcana.testing import TestDataSpace -from arcana.testing.data.blueprint import ( +from frametree.common import DirTree +from frametree.testing import TestDataSpace +from frametree.testing.blueprint import ( TestDatasetBlueprint, FileSetEntryBlueprint as FileBP, ) -from arcana.core.deploy.command import ContainerCommand +from pydra2app.core.command import ContainerCommand bp = TestDatasetBlueprint( diff --git a/tutorial/ais-pipelines-tutorial.ipynb b/tutorial/ais-pipelines-tutorial.ipynb index 57643f4..834af7f 100644 --- a/tutorial/ais-pipelines-tutorial.ipynb +++ b/tutorial/ais-pipelines-tutorial.ipynb @@ -1244,7 +1244,35 @@ "id": "779803ec-756d-4369-b763-3e1a90045fbc", "metadata": {}, "source": [ - "##" + "### Create a test pull-request on GitHub" + ] + }, + { + "cell_type": "markdown", + "id": "2ecf3933-1360-42a4-acf1-eacefea46502", + "metadata": {}, + "source": [ + "Commit and your changes" + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "id": "686d7741-a77e-43da-b175-237f3ba9bef5", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[detached HEAD e6aff42] added specification for Freesurfer's mri_convert\n", + " 1 file changed, 32 insertions(+), 7 deletions(-)\n" + ] + } + ], + "source": [ + "git commit -am\"added specification for Freesurfer's mri_convert\"\n", + "git push" ] }, { @@ -1252,12 +1280,12 @@ "id": "dba5c217", "metadata": {}, "source": [ - "### Create a test pull-request on GitHub\n", + "Create the pull-request on GitHub\n", "\n", "1. Navigate to your fork of the AIS community pipelines repo, https://github.com/your-github-username/pipelines-community\n", "1. Select \"Pull requests\" in the top ribbon\n", "1. Click the \"New pull request\" button\n", - "1. Select \"base:main\" <- \"your-fork:my-mri-synthstrip\" from the drop-down lists\n", + "1. Select \"base:main\" <- \"your-fork:my-mri-convert\" from the drop-down lists\n", "1. Click \"Create pull request\"\n", "\n", "This will then start the process for the pipeline to be accepted and deployed\n", @@ -1276,8 +1304,26 @@ "metadata": {}, "source": [ "## Design your own pipeline\n", - "1. Create a new Git branch (`git checkout main; git checkout -b my-own-pipeline`)\n", - "1. Bootstrap your new specification\n", + "1. Create and switch to a new Git branch (you will notice that your mri-convert changes will disappear)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3fea2b35-755c-4bef-94b0-4434b40e5abb", + "metadata": {}, + "outputs": [], + "source": [ + "git checkout main\n", + "git checkout -b my-own-pipeline" + ] + }, + { + "cell_type": "markdown", + "id": "030a88e8-dd59-4de3-8411-58b042135109", + "metadata": {}, + "source": [ + "2. Bootstrap your new specification\n", "1. Build your specifcation\n", "1. Test your specification\n", "1. Create a pull-request on GitHub to add your pipeline to the central repository, https://github.com/Australian-Imaging-Service/pipelines-community" @@ -1286,7 +1332,7 @@ { "cell_type": "code", "execution_count": null, - "id": "dba95bec", + "id": "8672c17e-186a-409f-846f-220844c7eeb3", "metadata": {}, "outputs": [], "source": []