Skip to content

Conversation

@akhanf
Copy link
Member

@akhanf akhanf commented Jun 5, 2025

Trying out pixi here..
Their build process isn't quite developed yet, but I am thinking it still might be preferred over other options (poetry, uv), since it can handle conda dependencies.

They do also have a way to pack-up and distribute as a tar file or as an installer -- this could be a nice way of distributing hippunfold or snakebids apps in general.. https://pixi.sh/latest/deployment/pixi_pack/

Also, I couldn't get a console script defined so I've made use of pixi tasks instead..

akhanf and others added 30 commits June 3, 2025 12:39
run_inference was only accepting a single input image, this makes it
accept a list of images too, and makes it so --force-nnunet-model T1T2w grabs both T1w and T2w as inputs.
Minor update to docs, bypassing review
* Add dsegtissue to hippunfold-quick
* Need the hemi argument if the dsegtissue modality is speicfied
* removed unused autotop container & unused resources, conda_env wrapper and remaining container directives

---------

Co-authored-by: Jordan DeKraker <[email protected]>
Co-authored-by: Dhananjhay <[email protected]>
Co-authored-by: Ali Khan <[email protected]>
* avoid the remove-rule by using temp() for all

this can work now since a bugfix in snakemake v9.3.0, which retains
files that are included as targets

* linting
* setup CI for conda recipe

* add workflow_dispatch for manually triggering the workflow

* trigger workflow for PR

* fix conda setup

* fix path to recipe

* update sha256sum dynamically and checkout dev-v2.0.0 branch

* pull latest commit from dev-v2.0.0

* replace boilerplate with org name

* update 256sum regex

* update 256sum regex

* add secrets and capture build path

* remove yes flag

* stop installing conda-build

* install conda build and replace conda with mamba

* change miniconda version from 2 to 3

* switch to miniforge for base bootstapping

* use mambabuild instead of condabuild

* cache conda build cache

* remove debugging step and hardencode the path to build folder

* replace conda with boa

* pull boa from conda-forge

* replace boa with conda

* redirect stderr to /dev/null

* use build ro find package path

* stop triggering the workflow on pr
was causing slurm submission to fail
I removed this in a clean-up PR, but it is actually needed..
Moved it to another location now..
* remove unused unfold_mesh_ref for clarity

* fix for warping unfold surf to unfoldreg

- was using the wrong reference (ie 3d unfold ref vol instead of 2d)
- have tested that this works now for the unfoldreg workflow, but should
  confirm that the analogous rule in atlas creation is also working
properly..
- also made cosmetic change to move refvol slice to warps instead of
  anat (the 3d refvol is already in warps) - is a temp() file so no big
deal..
- already had a rule to add metadata, so just needed to change the
  filename to ensure that rule is run
…erroneously (#497)

* fix for expand in two rules, was expanding over multiple subjects
* add test case for multiple subjects
…ectivity (#494)

* give warning or error depending on internet connectivity

if atlas repo exists, will just warn that updating will be skipped. if
it doesn't exist, will error out..

* fix for pulling updated atlases
imposes the original gm mask, using the surf-vol labels + dentate with a
nearest voxel approach to fill in the gaps
the destination variable wasn't being populated so the argument had no
effect
* no coords masking; instead remove outersurf by removing the largest connected component of outside (invalid) vertices
* improved robustness for holes in mesh
note: reducing the voxel size for laminar_coords_res usually fixes any residual holes
- uses -5 to +5 as soft limits, only applied to native thickness,
curvature, gyrification
- fixes unfoldreg failures when extreme values exist
akhanf and others added 9 commits August 18, 2025 10:34
Additional step in postproc_boundary_vertices for spatial consistency of each label, by keeping the largest connected component, and relabelling smaller components based on their neighbours.
pinned pygraphviz was creating issues..
* update hole fill radius
* paint holes a different color when calculating boundary vertices

also reports info on the holes in the log output
should fix any remaining solver issues (cause by holes or other
unnoticeable mesh defects)
@Dhananjhay Dhananjhay marked this pull request as ready for review August 18, 2025 14:54
@jordandekraker
Copy link
Collaborator

This worked like a charm for me! So fast, and the docs look solid.

My only question is whather we should remove the conda install instructions & just use this, or keep both. @akhanf any thoughts on that?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants