{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":20361729,"defaultBranch":"master","name":"spinalcordtoolbox","ownerLogin":"spinalcordtoolbox","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2014-05-31T18:01:05.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/65422525?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1716839951.0","currentOid":""},"activityList":{"items":[{"before":null,"after":"5f45dbdeef165c5ca928e336f30678bcf2e21839","ref":"refs/heads/jn/4394-improve-lesion_-f_documentation","pushedAt":"2024-05-27T19:59:11.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"joshuacwnewton","name":"Joshua Newton","path":"/joshuacwnewton","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/16181459?s=80&v=4"},"commit":{"message":"`sct_analyze_lesion`: Rewrite the `-f` help for clarification","shortMessageHtmlLink":"sct_analyze_lesion: Rewrite the -f help for clarification"}},{"before":null,"after":"722b778ff5c39f4b7b7169a56a256c559a864b0f","ref":"refs/heads/jn/4491-fix-lesion-qc","pushedAt":"2024-05-27T16:49:28.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"joshuacwnewton","name":"Joshua Newton","path":"/joshuacwnewton","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/16181459?s=80&v=4"},"commit":{"message":"`image.py :: check_image_kind`: Add missing [0, 1] for softsegs\n\nThe docstring mentions:\n\n> - 'softseg': Nonbinary segmentation in the range [0, 1], where 0 and 1 are the majority of values\n\nHowever we are not actually checking for this requirement in code.","shortMessageHtmlLink":"image.py :: check_image_kind: Add missing [0, 1] for softsegs"}},{"before":"12ca09d757231b881e8f0a8d7041c9346ac9198e","after":"9444c58ccc5480c6a1489d7cf187089027f4441c","ref":"refs/heads/jv/compute_midsagittal_tissue_bridges","pushedAt":"2024-05-26T21:09:20.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"valosekj","name":"Jan Valosek","path":"/valosekj","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/39456460?s=80&v=4"},"commit":{"message":"clarify comment","shortMessageHtmlLink":"clarify comment"}},{"before":"990acd523c20f62e30ecbaf72e2f9e041cea8ae5","after":"12ca09d757231b881e8f0a8d7041c9346ac9198e","ref":"refs/heads/jv/compute_midsagittal_tissue_bridges","pushedAt":"2024-05-26T20:43:35.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"valosekj","name":"Jan Valosek","path":"/valosekj","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/39456460?s=80&v=4"},"commit":{"message":"Add tissue bridges to parser help","shortMessageHtmlLink":"Add tissue bridges to parser help"}},{"before":"909ac08161324fe0275393da3317a65bf136bb93","after":"990acd523c20f62e30ecbaf72e2f9e041cea8ae5","ref":"refs/heads/jv/compute_midsagittal_tissue_bridges","pushedAt":"2024-05-26T15:49:53.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"valosekj","name":"Jan Valosek","path":"/valosekj","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/39456460?s=80&v=4"},"commit":{"message":"typo fix\n\nCo-authored-by: Naga Karthik Enamundram <53445351+naga-karthik@users.noreply.github.com>","shortMessageHtmlLink":"typo fix"}},{"before":"98b4946e279a8b7dfff9d7db63c92b5f0d7c0071","after":"b265cbf64af41b8d7d673b746c0a725fbaa37887","ref":"refs/heads/jn/4370-lazy-load-imports","pushedAt":"2024-05-24T23:19:53.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"joshuacwnewton","name":"Joshua Newton","path":"/joshuacwnewton","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/16181459?s=80&v=4"},"commit":{"message":"Use Tensorflow's `LazyLoader` class to lazy-load slowest imports\n\nSee extended comment in `lazy_loader.py` for justification for replacing `lazy_import` with\n`LazyLoader`.","shortMessageHtmlLink":"Use Tensorflow's LazyLoader class to lazy-load slowest imports"}},{"before":"e949b207df648c1819200d103abd89b3d13ba1c3","after":"98b4946e279a8b7dfff9d7db63c92b5f0d7c0071","ref":"refs/heads/jn/4370-lazy-load-imports","pushedAt":"2024-05-24T22:57:58.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"joshuacwnewton","name":"Joshua Newton","path":"/joshuacwnewton","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/16181459?s=80&v=4"},"commit":{"message":"Use Tensorflow's `LazyLoader` class to lazy-load slowest imports\n\nSee extended comment in `lazy_loader.py` for justification for replacing `lazy_import` with\n`LazyLoader`.","shortMessageHtmlLink":"Use Tensorflow's LazyLoader class to lazy-load slowest imports"}},{"before":"967905f3a08a53a5c99f91ff61cb088fca527a2f","after":"e949b207df648c1819200d103abd89b3d13ba1c3","ref":"refs/heads/jn/4370-lazy-load-imports","pushedAt":"2024-05-24T22:34:33.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"joshuacwnewton","name":"Joshua Newton","path":"/joshuacwnewton","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/16181459?s=80&v=4"},"commit":{"message":"Use Tensorflow's `LazyLoader` class to lazy-load slowest imports\n\nSee extended comment in `lazy_loader.py` for justification for replacing `lazy_import` with\n`LazyLoader`.","shortMessageHtmlLink":"Use Tensorflow's LazyLoader class to lazy-load slowest imports"}},{"before":"55c7a8b27c2d37c739dc02a41d8303b2755e2c5d","after":"967905f3a08a53a5c99f91ff61cb088fca527a2f","ref":"refs/heads/jn/4370-lazy-load-imports","pushedAt":"2024-05-22T23:24:35.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"joshuacwnewton","name":"Joshua Newton","path":"/joshuacwnewton","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/16181459?s=80&v=4"},"commit":{"message":"`sct_compute_flow`: Add missing `caller_module_name param`","shortMessageHtmlLink":"sct_compute_flow: Add missing caller_module_name param"}},{"before":"12810de17ddb17eae114713711943ee70b0f4f21","after":"55c7a8b27c2d37c739dc02a41d8303b2755e2c5d","ref":"refs/heads/jn/4370-lazy-load-imports","pushedAt":"2024-05-22T21:27:54.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"joshuacwnewton","name":"Joshua Newton","path":"/joshuacwnewton","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/16181459?s=80&v=4"},"commit":{"message":"`test_utils_shell.py`: Don't test against `prog`\n\nI need to debug further why this test is now failing...","shortMessageHtmlLink":"test_utils_shell.py: Don't test against prog"}},{"before":null,"after":"12810de17ddb17eae114713711943ee70b0f4f21","ref":"refs/heads/jn/4370-lazy-load-imports","pushedAt":"2024-05-22T20:18:53.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"joshuacwnewton","name":"Joshua Newton","path":"/joshuacwnewton","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/16181459?s=80&v=4"},"commit":{"message":"Lazy import the slowest packages\n\n- torch\n- nilearn\n- sklearn\n- voxelmorph\n- scipy\n- dipy\n- matplotlib\n- pandas","shortMessageHtmlLink":"Lazy import the slowest packages"}},{"before":null,"after":"909ac08161324fe0275393da3317a65bf136bb93","ref":"refs/heads/jv/compute_midsagittal_tissue_bridges","pushedAt":"2024-05-22T20:09:41.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"valosekj","name":"Jan Valosek","path":"/valosekj","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/39456460?s=80&v=4"},"commit":{"message":"Compute midsagittal tissue bridges","shortMessageHtmlLink":"Compute midsagittal tissue bridges"}},{"before":"1ddcff3de103575b529d02be02f67573a10959c1","after":"ad37a583d32e073b0d08e23f89e47d9db211d59f","ref":"refs/heads/jn/4410-allow-sct_download_data-failures-during-install-script","pushedAt":"2024-05-22T16:49:28.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"joshuacwnewton","name":"Joshua Newton","path":"/joshuacwnewton","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/16181459?s=80&v=4"},"commit":{"message":"`install_sct`: Switch to using `sct_download_data -d default`","shortMessageHtmlLink":"install_sct: Switch to using sct_download_data -d default"}},{"before":"ca4202747f334a1e72a77a367b27a68c23a2b1b2","after":null,"ref":"refs/heads/jn/35-empty-sct_extract_metric-entries","pushedAt":"2024-05-22T15:04:48.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"joshuacwnewton","name":"Joshua Newton","path":"/joshuacwnewton","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/16181459?s=80&v=4"}},{"before":"ca6ad4523e48fc45b6f46e399cee8f21e06e3492","after":"a7a3f8dd021b6b7f8d2b9fa2680002ed4b1c5f2c","ref":"refs/heads/master","pushedAt":"2024-05-22T15:04:47.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"joshuacwnewton","name":"Joshua Newton","path":"/joshuacwnewton","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/16181459?s=80&v=4"},"commit":{"message":"Skip empty slicegroups to avoid creating blank rows in output metric CSV file (#4487)\n\n## Description\r\n\r\nFor data where an image is [split into multiple\r\nchunks](https://github.com/sct-pipeline/spine-park/issues/10#issuecomment-2113482362),\r\nyou may want to call the same `sct_extract_metric` command on multiple\r\nchunks spanning a range of vertlevels (e.g. `-vert 1:12`). But, not all\r\nchunks will contain all of the specified levels.\r\n\r\nFor this case, there is a bug where an `agg_metric` entry will be\r\ncreated for the slicegroup \"`()`\", i.e. a group containing no slices.\r\nThis will result in an empty row containing no data.\r\n\r\nThis PR adds a test that reproduces the condition and fails. As soon as\r\nthe empty slicegroup row is removed, the test will pass.\r\n\r\n## Linked issues\r\n\r\nFixes https://github.com/sct-pipeline/spine-park/issues/35.\r\n\r\n---------\r\n\r\nCo-authored-by: Mathieu Guay-Paquet ","shortMessageHtmlLink":"Skip empty slicegroups to avoid creating blank rows in output metric …"}},{"before":"9cafa7fa6fa379fe7dfb4e4fc039471c3e1b4fcb","after":"dd2656ec77b66048bed7b54b086a17a179e5196f","ref":"refs/heads/jn/1447-sct_maths-sequential-operations","pushedAt":"2024-05-22T15:00:00.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"joshuacwnewton","name":"Joshua Newton","path":"/joshuacwnewton","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/16181459?s=80&v=4"},"commit":{"message":"`sct_maths`: Group `shape` and `dim` arguments with dilate/erode\n\nThis avoids us having to pass `arguments` to `apply_array_operation`, but I feel like I'd much\nrather remove `-shape` and `-dim` entirely, and instead have these values passed directly to\n`-dilate` and `-erode`. This would allow us to specify multiple different values for shape/dim, one\nper call to `-dilate`/`-erode`. As it stands, these values are \"global\", which is a bit of a hindrance\nfor the user.","shortMessageHtmlLink":"sct_maths: Group shape and dim arguments with dilate/erode"}},{"before":"3a14078fd6f16c6bd02f5c69eb26682f9c53dfec","after":"ca4202747f334a1e72a77a367b27a68c23a2b1b2","ref":"refs/heads/jn/35-empty-sct_extract_metric-entries","pushedAt":"2024-05-21T20:16:12.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"mguaypaq","name":"Mathieu Guay-Paquet","path":"/mguaypaq","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/928742?s=80&v=4"},"commit":{"message":"Merge branch 'master' into jn/35-empty-sct_extract_metric-entries","shortMessageHtmlLink":"Merge branch 'master' into jn/35-empty-sct_extract_metric-entries"}},{"before":"81c7cc3d1790733f9b4f398667056014f6a6bc8b","after":null,"ref":"refs/heads/mgp/update-slicer-url","pushedAt":"2024-05-21T16:11:41.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"mguaypaq","name":"Mathieu Guay-Paquet","path":"/mguaypaq","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/928742?s=80&v=4"}},{"before":"e5525085b7d8531416a7fee304d8a71714d540ba","after":"ca6ad4523e48fc45b6f46e399cee8f21e06e3492","ref":"refs/heads/master","pushedAt":"2024-05-21T16:11:40.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"mguaypaq","name":"Mathieu Guay-Paquet","path":"/mguaypaq","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/928742?s=80&v=4"},"commit":{"message":"Update url to slicer documentation (#4486)\n\nThe old url has a big banner at the top of the page, claiming that this\r\nnew url contains the latest version. A quick look confirms that the\r\ncontent is essentially the same.\r\n\r\nI noticed this when checking the daily broken url results:\r\n\r\nhttps://github.com/spinalcordtoolbox/spinalcordtoolbox/actions/runs/9050554894/job/24866074154","shortMessageHtmlLink":"Update url to slicer documentation (#4486)"}},{"before":"744bc90fffe9a878e3947d431cb631409627ea9e","after":"1ddcff3de103575b529d02be02f67573a10959c1","ref":"refs/heads/jn/4410-allow-sct_download_data-failures-during-install-script","pushedAt":"2024-05-17T19:25:02.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"joshuacwnewton","name":"Joshua Newton","path":"/joshuacwnewton","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/16181459?s=80&v=4"},"commit":{"message":"`install_sct.bat`: Remove escaping from quoted strings","shortMessageHtmlLink":"install_sct.bat: Remove escaping from quoted strings"}},{"before":"7e7a620eb9c3888468589ea11a7d0170462e677c","after":"744bc90fffe9a878e3947d431cb631409627ea9e","ref":"refs/heads/jn/4410-allow-sct_download_data-failures-during-install-script","pushedAt":"2024-05-17T19:16:19.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"joshuacwnewton","name":"Joshua Newton","path":"/joshuacwnewton","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/16181459?s=80&v=4"},"commit":{"message":"`install_sct.bat`: Fix path to python executable","shortMessageHtmlLink":"install_sct.bat: Fix path to python executable"}},{"before":"f15d56528c120381f7dcf6fe362be9a20e9dbb11","after":"7e7a620eb9c3888468589ea11a7d0170462e677c","ref":"refs/heads/jn/4410-allow-sct_download_data-failures-during-install-script","pushedAt":"2024-05-17T19:06:33.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"joshuacwnewton","name":"Joshua Newton","path":"/joshuacwnewton","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/16181459?s=80&v=4"},"commit":{"message":"`sct_check_dependencies`: Add check for data dependencies","shortMessageHtmlLink":"sct_check_dependencies: Add check for data dependencies"}},{"before":"0e5060dc8d45ebe0ceadca4f34daa9d19900f2c7","after":"9cafa7fa6fa379fe7dfb4e4fc039471c3e1b4fcb","ref":"refs/heads/jn/1447-sct_maths-sequential-operations","pushedAt":"2024-05-17T15:29:57.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"joshuacwnewton","name":"Joshua Newton","path":"/joshuacwnewton","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/16181459?s=80&v=4"},"commit":{"message":"`sct_maths`: Iterate over array operations sequentially","shortMessageHtmlLink":"sct_maths: Iterate over array operations sequentially"}},{"before":"283eb7f3ecd3927667e2ab79f55624d956e8b444","after":"3a14078fd6f16c6bd02f5c69eb26682f9c53dfec","ref":"refs/heads/jn/35-empty-sct_extract_metric-entries","pushedAt":"2024-05-17T14:57:41.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"joshuacwnewton","name":"Joshua Newton","path":"/joshuacwnewton","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/16181459?s=80&v=4"},"commit":{"message":"`aggregate_slicewise.py`: De-duplicate agg_metric initialization\n\nThis is a slight tidy up as a follow-up to the comment in the previous commit.","shortMessageHtmlLink":"aggregate_slicewise.py: De-duplicate agg_metric initialization"}},{"before":"51a9a56738061586bf4dd3056b78df306ca0317f","after":"283eb7f3ecd3927667e2ab79f55624d956e8b444","ref":"refs/heads/jn/35-empty-sct_extract_metric-entries","pushedAt":"2024-05-17T14:49:27.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"joshuacwnewton","name":"Joshua Newton","path":"/joshuacwnewton","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/16181459?s=80&v=4"},"commit":{"message":"`test_sct_extract_metric`: Add failing test for OOB -vert values\n\nFor data where an image is split into multiple chunks, you may want to call the same command\non multiple chunks spanning a range of vertlevels (e.g. -vert 1:12). But, not all chunks will\nspan all levels.\n\nIn this case, there is a bug where a table entry will be created for the slicegroup \"()\", i.e.\na group containing no slices. This is a useless row containing no data.\n\nThis commit adds a test that reproduces the condition and fails. As soon as the empty slicegroup\nrow is removed, the test will pass.","shortMessageHtmlLink":"test_sct_extract_metric: Add failing test for OOB -vert values"}},{"before":null,"after":"51a9a56738061586bf4dd3056b78df306ca0317f","ref":"refs/heads/jn/35-empty-sct_extract_metric-entries","pushedAt":"2024-05-17T14:40:25.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"joshuacwnewton","name":"Joshua Newton","path":"/joshuacwnewton","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/16181459?s=80&v=4"},"commit":{"message":"`test_sct_extract_metric`: Add failing test for OOB -vert values\n\nFor data where an image is split into multiple chunks, you may want to call the same command\non multiple chunks spanning a range of vertlevels (e.g. -vert 1:12). But, not all chunks will\nspan all levels.\n\nIn this case, there is a bug where a table entry will be created for the slicegroup \"()\", i.e.\na group containing no slices. This is a useless row containing no data.\n\nThis commit adds a test that reproduces the condition and fails. As soon as the empty slicegroup\nrow is removed, the test will pass.","shortMessageHtmlLink":"test_sct_extract_metric: Add failing test for OOB -vert values"}},{"before":null,"after":"81c7cc3d1790733f9b4f398667056014f6a6bc8b","ref":"refs/heads/mgp/update-slicer-url","pushedAt":"2024-05-16T19:10:07.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"mguaypaq","name":"Mathieu Guay-Paquet","path":"/mguaypaq","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/928742?s=80&v=4"},"commit":{"message":"Update url to slicer documentation\n\nThe old url has a big banner at the top of the page, claiming that this\nnew url contains the latest version. A quick look confirms that the content\nis essentially the same.","shortMessageHtmlLink":"Update url to slicer documentation"}},{"before":"77f7c8c3818489f33bdfaae512295991755ed612","after":"0e5060dc8d45ebe0ceadca4f34daa9d19900f2c7","ref":"refs/heads/jn/1447-sct_maths-sequential-operations","pushedAt":"2024-05-15T18:37:04.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"joshuacwnewton","name":"Joshua Newton","path":"/joshuacwnewton","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/16181459?s=80&v=4"},"commit":{"message":"`sct_maths`: Iterate over array operations sequentially","shortMessageHtmlLink":"sct_maths: Iterate over array operations sequentially"}},{"before":"1bb3ffbf1669e3b62418d936b09b8ab8cf26f56d","after":"77f7c8c3818489f33bdfaae512295991755ed612","ref":"refs/heads/jn/1447-sct_maths-sequential-operations","pushedAt":"2024-05-15T18:36:40.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"joshuacwnewton","name":"Joshua Newton","path":"/joshuacwnewton","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/16181459?s=80&v=4"},"commit":{"message":"`sct_maths`: Iterate over array operations sequentially","shortMessageHtmlLink":"sct_maths: Iterate over array operations sequentially"}},{"before":"e5023e6839e5874508fc5db63f7ce95519f73ffd","after":"1bb3ffbf1669e3b62418d936b09b8ab8cf26f56d","ref":"refs/heads/jn/1447-sct_maths-sequential-operations","pushedAt":"2024-05-15T18:35:51.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"joshuacwnewton","name":"Joshua Newton","path":"/joshuacwnewton","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/16181459?s=80&v=4"},"commit":{"message":"`sct_maths`: Iterate over array operations sequentially","shortMessageHtmlLink":"sct_maths: Iterate over array operations sequentially"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEVTM2owA","startCursor":null,"endCursor":null}},"title":"Activity · spinalcordtoolbox/spinalcordtoolbox"}