Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Compile with shared ITK/VTK to reduce wheel size #346

Closed
wants to merge 1 commit into from

Conversation

aganders3
Copy link

Hello - after some old packages were removed from PyPI I did a little digging to see if I could shrink the antspyx wheels. I was able to reduce the final wheel size from ~300 MB to ~51 MB. The key was configuring cmake to build shared libs for ITK (and VTK, though I don't think this mattered), which also required changing the configs for symbol visibility. I then built using cibuildwheel which calls auditwheel repair to copy the resulting libs into a directory (antspyx.libs) in the wheel and modify RPATH in any libs as necessary. Surprisingly (to me) the unzipped size is about the same or even slightly bigger (extra symbols remaining?).

To run the build yourself, check out this branch and run:

% cibuildwheel --config-file ./cibuildwheel.toml --platform linux

(this will produce manylinux wheels for cp36, 37, 38, and 39)

There is probably a bit more optimization possible here:

  • don't purge all build artifacts after each build
  • use strip to remove debug symbols (my initial attempt broke the wheel, but being more selective may work)
  • configure macOS/Windows builds
  • configure CI

See below for test output (installed and run in the officeal python:3.7 Docker image) and a comparison of the final wheel contents.

Test output after install

root@1cc6f232efeb:/tests# ./run_tests.sh
/tests /tests
Running core tests
./usr/local/lib/python3.7/site-packages/ants/core/ants_image.py:479: RuntimeWarning:

invalid value encountered in true_divide

test_core_ants_image.py:284: RuntimeWarning:

invalid value encountered in true_divide

........./usr/local/lib/python3.7/site-packages/ants/core/ants_image.py:490: RuntimeWarning:

overflow encountered in power

test_core_ants_image.py:303: RuntimeWarning:

overflow encountered in power

...........................
----------------------------------------------------------------------
Ran 37 tests in 45.732s

OK
........
----------------------------------------------------------------------
Ran 8 tests in 11.877s

OK
........................
----------------------------------------------------------------------
Ran 24 tests in 3.522s

OK
...
----------------------------------------------------------------------
Ran 3 tests in 0.430s

OK
..........
----------------------------------------------------------------------
Ran 10 tests in 9.935s

OK
Running learn tests
...
----------------------------------------------------------------------
Ran 3 tests in 3.880s

OK
Running registation tests
..0.19174804
0.12775715
0.12255058
.0.1808648
0.15313405
0.13266608
0.26388648
0.21303006
0.19183911
....Starting affine interface registration test
..Starting long registration interface test
Similarity
SyNBoldAff
SyNOnly
SyNCC
TVMSQC
TVMSQ
SyN
SyNLessAggro
Rigid
ElasticSyN
SyNAggro
TRSAA
Translation
DenseRigid
SyNBold
SyNabp
BOLDAffine
BOLDRigid
SyNRA
AffineFast
Affine
QuickRigid
Finished long registration interface test
..All_Command_lines_OK
Using single precision for computations.
=============================================================================
The composite transform comprises the following transforms (in order):
  1. Center of mass alignment using fixed image: 0x562764a63c90 and moving image: 0x562764a63c70 (type = Euler2DTransform)
=============================================================================
  Reading mask(s).
    Registration stage 0
      No fixed mask
      No moving mask
  number of levels = 3
  fixed image: 0x562764a63c90
  moving image: 0x562764a63c70
  fixed image: 0x56276442efc0
  moving image: 0x562763f26360
  fixed image: 0x56276442efc0
  moving image: 0x562763f26360
Dimension = 2
Number of stages = 1
Use Histogram Matching true
Winsorize image intensities false
Lower quantile = 0
Upper quantile = 1
Stage 1 State
   Image metric = Mattes
     Fixed image = Image (0x562764a007f0)
  RTTI typeinfo:   itk::Image<float, 2u>
  Reference Count: 2
  Modified Time: 18469007
  Debug: Off
  Object Name:
  Observers:
    none
  Source: (none)
  Source output name: (none)
  Release Data: Off
  Data Released: False
  Global Release Data: Off
  PipelineMTime: 0
  UpdateMTime: 18468983
  RealTimeStamp: 0 seconds
  LargestPossibleRegion:
    Dimension: 2
    Index: [0, 0]
    Size: [256, 256]
  BufferedRegion:
    Dimension: 2
    Index: [0, 0]
    Size: [256, 256]
  RequestedRegion:
    Dimension: 2
    Index: [0, 0]
    Size: [256, 256]
  Spacing: [1, 1]
  Origin: [0, 0]
  Direction:
1 0
0 1

  IndexToPointMatrix:
1 0
0 1

  PointToIndexMatrix:
1 0
0 1

  Inverse Direction:
1 0
0 1

  PixelContainer:
    ImportImageContainer (0x56276405aa10)
      RTTI typeinfo:   itk::ImportImageContainer<unsigned long, float>
      Reference Count: 1
      Modified Time: 18468981
      Debug: Off
      Object Name:
      Observers:
        none
      Pointer: 0x562764d3a8c0
      Container manages memory: true
      Size: 65536
      Capacity: 65536

     Moving image = Image (0x5627643ba0b0)
  RTTI typeinfo:   itk::Image<float, 2u>
  Reference Count: 2
  Modified Time: 18469008
  Debug: Off
  Object Name:
  Observers:
    none
  Source: (none)
  Source output name: (none)
  Release Data: Off
  Data Released: False
  Global Release Data: Off
  PipelineMTime: 0
  UpdateMTime: 18469005
  RealTimeStamp: 0 seconds
  LargestPossibleRegion:
    Dimension: 2
    Index: [0, 0]
    Size: [256, 256]
  BufferedRegion:
    Dimension: 2
    Index: [0, 0]
    Size: [256, 256]
  RequestedRegion:
    Dimension: 2
    Index: [0, 0]
    Size: [256, 256]
  Spacing: [1, 1]
  Origin: [0, 0]
  Direction:
1 0
0 1

  IndexToPointMatrix:
1 0
0 1

  PointToIndexMatrix:
1 0
0 1

  Inverse Direction:
1 0
0 1

  PixelContainer:
    ImportImageContainer (0x562764ca8290)
      RTTI typeinfo:   itk::ImportImageContainer<unsigned long, float>
      Reference Count: 1
      Modified Time: 18469003
      Debug: Off
      Object Name:
      Observers:
        none
      Pointer: 0x562764d7a8d0
      Container manages memory: true
      Size: 65536
      Capacity: 65536

     Weighting = 1
     Sampling strategy = none
     Number of bins = 32
     Radius = 4
     Sampling percentage  = 1
   Transform = SyN
     Gradient step = 0.2
     Update field sigma (voxel space) = 3
     Total field sigma (voxel space) = 0
     Update field time sigma = 0
     Total field time sigma  = 0
     Number of time indices = 0
     Number of time point samples = 0
Registration using 1 total stages.

Stage 0
  iterations = 40x20x0
  convergence threshold = 1e-07
  convergence window size = 8
  number of levels = 3
  using the Mattes MI metric (number of bins = 32, weight = 1)
  preprocessing:  histogram matching the images
  using the Demons metric (weight = 1)
  preprocessing:  histogram matching the images
  using the CC metric (radius = 1, weight = 2)
  preprocessing:  histogram matching the images
  Shrink factors (level 1 out of 3): [4, 4]
  Shrink factors (level 2 out of 3): [2, 2]
  Shrink factors (level 3 out of 3): [1, 1]
  smoothing sigmas per level: [2, 1, 0]
  Using default NONE metricSamplingStrategy

*** Running SyN registration (varianceForUpdateField = 3, varianceForTotalField = 0) ***

XXDIAGNOSTIC,Iteration,metricValue,convergenceValue,ITERATION_TIME_INDEX,SINCE_LAST
 1DIAGNOSTIC,     1, -7.094768285751e-01, inf, 5.5489e-02, 5.5484e-02,
 1DIAGNOSTIC,     2, -7.452822327614e-01, inf, 9.7155e-02, 4.1666e-02,
 1DIAGNOSTIC,     3, -7.804611921310e-01, inf, 1.3948e-01, 4.2320e-02,
 1DIAGNOSTIC,     4, -8.131859302521e-01, inf, 1.8419e-01, 4.4718e-02,
 1DIAGNOSTIC,     5, -8.384947776794e-01, inf, 2.3016e-01, 4.5970e-02,
 1DIAGNOSTIC,     6, -8.559163212776e-01, inf, 2.7030e-01, 4.0140e-02,
 1DIAGNOSTIC,     7, -8.726806640625e-01, inf, 3.1070e-01, 4.0398e-02,
 1DIAGNOSTIC,     8, -8.857007622719e-01, 1.781510561705e-02, 3.5780e-01, 4.7101e-02,
 1DIAGNOSTIC,     9, -8.931248188019e-01, 1.293498929590e-02, 4.0237e-01, 4.4572e-02,
 1DIAGNOSTIC,    10, -9.017965793610e-01, 9.219976142049e-03, 4.4938e-01, 4.7001e-02,
 1DIAGNOSTIC,    11, -9.069300889969e-01, 6.487628445029e-03, 4.9627e-01, 4.6894e-02,
 1DIAGNOSTIC,    12, -9.144486188889e-01, 4.730704706162e-03, 5.4725e-01, 5.0985e-02,
 1DIAGNOSTIC,    13, -9.214051961899e-01, 3.624958451837e-03, 5.9251e-01, 4.5252e-02,
 1DIAGNOSTIC,    14, -9.232493638992e-01, 2.741091651842e-03, 6.3740e-01, 4.4896e-02,
 1DIAGNOSTIC,    15, -9.260140657425e-01, 2.126717474312e-03, 6.8516e-01, 4.7759e-02,
 1DIAGNOSTIC,    16, -9.285178780556e-01, 1.683920156211e-03, 6.9871e-01, 1.3552e-02,
 1DIAGNOSTIC,    17, -9.288795590401e-01, 1.238100579940e-03, 7.4754e-01, 4.8826e-02,
 1DIAGNOSTIC,    18, -9.278711080551e-01, 8.420256199315e-04, 7.9462e-01, 4.7084e-02,
 1DIAGNOSTIC,    19, -9.290444850922e-01, 5.025824648328e-04, 8.4357e-01, 4.8949e-02,
 1DIAGNOSTIC,    20, -9.280127286911e-01, 2.529128978495e-04, 8.9313e-01, 4.9560e-02,
 1DIAGNOSTIC,    21, -9.283567070961e-01, 1.319591247011e-04, 9.4018e-01, 4.7050e-02,
 1DIAGNOSTIC,    22, -9.295458793640e-01, 5.865417188033e-05, 9.9037e-01, 5.0184e-02,
 1DIAGNOSTIC,    23, -9.298964738846e-01, 3.610842759372e-05, 1.0400e+00, 4.9602e-02,
 1DIAGNOSTIC,    24, -9.297755360603e-01, 5.010432505514e-05, 1.0879e+00, 4.7925e-02,
 1DIAGNOSTIC,    25, -9.296480417252e-01, 6.034512989572e-05, 1.1373e+00, 4.9366e-02,
 1DIAGNOSTIC,    26, -9.299656748772e-01, 4.958057616022e-05, 1.1847e+00, 4.7477e-02,
 1DIAGNOSTIC,    27, -9.328428506851e-01, 9.174687147606e-05, 1.2303e+00, 4.5541e-02,
 1DIAGNOSTIC,    28, -9.302343130112e-01, 6.630360439885e-05, 1.2746e+00, 4.4306e-02,
 1DIAGNOSTIC,    29, -9.328865408897e-01, 7.511176954722e-05, 1.3180e+00, 4.3459e-02,
 1DIAGNOSTIC,    30, -9.330023527145e-01, 8.787133992882e-05, 1.3631e+00, 4.5072e-02,
 1DIAGNOSTIC,    31, -9.336123466492e-01, 9.901649173116e-05, 1.4079e+00, 4.4762e-02,
 1DIAGNOSTIC,    32, -9.326332807541e-01, 8.253210398834e-05, 1.4541e+00, 4.6195e-02,
 1DIAGNOSTIC,    33, -9.329857826233e-01, 5.811451410409e-05, 1.5052e+00, 5.1114e-02,
 1DIAGNOSTIC,    34, -9.326282739639e-01, 2.468198181305e-05, 1.5493e+00, 4.4077e-02,
 1DIAGNOSTIC,    35, -9.312992095947e-01, 8.191099368560e-06, 1.5942e+00, 4.4960e-02,
 1DIAGNOSTIC,    36, -9.327377080917e-01, -2.106719512085e-05, 1.6386e+00, 4.4344e-02,
XXDIAGNOSTIC,Iteration,metricValue,convergenceValue,ITERATION_TIME_INDEX,SINCE_LAST
 1DIAGNOSTIC,     1, -8.091835975647e-01, inf, 1.7207e+00, 8.2104e-02,
 1DIAGNOSTIC,     2, -8.267697095871e-01, inf, 1.7714e+00, 5.0686e-02,
 1DIAGNOSTIC,     3, -8.435548543930e-01, inf, 1.8192e+00, 4.7803e-02,
 1DIAGNOSTIC,     4, -8.539028167725e-01, inf, 1.8730e+00, 5.3805e-02,
 1DIAGNOSTIC,     5, -8.627756834030e-01, inf, 1.9255e+00, 5.2538e-02,
 1DIAGNOSTIC,     6, -8.699707984924e-01, inf, 1.9751e+00, 4.9571e-02,
 1DIAGNOSTIC,     7, -8.752191066742e-01, inf, 2.0493e+00, 7.4204e-02,
 1DIAGNOSTIC,     8, -8.801509141922e-01, 6.587078329176e-03, 2.1310e+00, 8.1748e-02,
 1DIAGNOSTIC,     9, -8.844894170761e-01, 4.632842727005e-03, 2.1768e+00, 4.5801e-02,
 1DIAGNOSTIC,    10, -8.872686624527e-01, 3.271606983617e-03, 2.2314e+00, 5.4552e-02,
 1DIAGNOSTIC,    11, -8.899288177490e-01, 2.430945169181e-03, 2.2900e+00, 5.8616e-02,
 1DIAGNOSTIC,    12, -8.897299766541e-01, 1.737083657645e-03, 2.3468e+00, 5.6835e-02,
 1DIAGNOSTIC,    13, -8.922611474991e-01, 1.263190293685e-03, 2.4079e+00, 6.1095e-02,
 1DIAGNOSTIC,    14, -8.915022015572e-01, 8.642197353765e-04, 2.4781e+00, 7.0188e-02,
 1DIAGNOSTIC,    15, -8.937164545059e-01, 5.986249307171e-04, 2.5325e+00, 5.4404e-02,
 1DIAGNOSTIC,    16, -8.939468264580e-01, 4.103929386474e-04, 2.5946e+00, 6.2051e-02,
 1DIAGNOSTIC,    17, -8.955245018005e-01, 3.261145902798e-04, 2.6522e+00, 5.7634e-02,
 1DIAGNOSTIC,    18, -8.947955369949e-01, 2.494752989151e-04, 2.7143e+00, 6.2078e-02,
 1DIAGNOSTIC,    19, -8.966089487076e-01, 2.409342268948e-04, 2.7723e+00, 5.8029e-02,
 1DIAGNOSTIC,    20, -8.953372836113e-01, 1.671438512858e-04, 2.8347e+00, 6.2354e-02,
  Elapsed time (stage 0): 2.89229


Total elapsed time: 2.89295
....Using single precision for computations.
Input scalar image: 0x562763a41050
Reference image: 0x56276442efa0
=============================================================================
The composite transform comprises the following transforms (in order):
  1. identity (type = MatrixOffsetTransformBase)
=============================================================================
Default pixel value: 0
Interpolation type: LinearInterpolateImageFunction
Output warped image: 0x562764314b60
..
----------------------------------------------------------------------
Ran 17 tests in 273.888s

OK
Running segmentation tests
.. Otsu Thresh with 3 thresholds
 Otsu Thresh with 3 thresholds
 Otsu Thresh with 3 thresholds
 Otsu Thresh with 3 thresholds
 Otsu Thresh with 3 thresholds
.....
----------------------------------------------------------------------
Ran 7 tests in 20.944s

OK
Running utils tests
....................................True
.False
False
......
----------------------------------------------------------------------
Ran 43 tests in 31.822s

OK
Running bug tests
.
----------------------------------------------------------------------
Ran 1 test in 0.476s

OK
/tests

Contents of wheel with shared ITK libs

~/src/oss/ANTsPy/wheelhouse on  shared-itk [?] via 🐍 v3.10.0 (.venv)
❯ unzip -l antspyx-0.3.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Archive:  antspyx-0.3.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
  Length      Date    Time    Name
---------  ---------- -----   ----
        0  04-05-2022 03:16   antspyx.libs/
        0  04-05-2022 03:16   ants/
        0  04-05-2022 03:16   antspyx-0.3.2.dist-info/
   534824  04-05-2022 03:18   antspyx.libs/libitktiff-5-676c3f9f.3.so.1
   404096  04-05-2022 03:16   antspyx.libs/libitkgdcmopenjp2-5-21100300.3.so.1
   101104  04-05-2022 03:18   antspyx.libs/libITKRegistrationMethodsv4-5-5768b011.3.so.1
   295912  04-05-2022 03:18   antspyx.libs/libITKIOTransformMatlab-5-2e6a88da.3.so.1
   248312  04-05-2022 03:18   antspyx.libs/libITKIOLSM-5-bd6bdcb3.3.so.1
   584016  04-05-2022 03:16   antspyx.libs/libitksys-5-9387fd6e.3.so.1
  1132200  04-05-2022 03:18   antspyx.libs/libITKOptimizers-5-825fe76b.3.so.1
    72976  04-05-2022 03:18   antspyx.libs/libITKPolynomials-5-7acf0399.3.so.1
   531888  04-05-2022 03:18   antspyx.libs/libitkminc2-5-b55b2e59.3.so.1
   276232  04-05-2022 03:18   antspyx.libs/libITKIOMeshBYU-5-af5ee9b7.3.so.1
  2846352  04-05-2022 03:18   antspyx.libs/libitkgdcmDICT-5-602b02a3.3.so.1
    67856  04-05-2022 03:18   antspyx.libs/libITKMesh-5-33e82eca.3.so.1
   140952  04-05-2022 03:18   antspyx.libs/libITKIOCSV-5-5d35fb7f.3.so.1
   812224  04-05-2022 03:18   antspyx.libs/libITKSpatialObjects-5-e8152a73.3.so.1
  1680448  04-05-2022 03:18   antspyx.libs/libitkvnl_algo-5-e6ce72e1.3.so.1
    17216  04-05-2022 03:16   antspyx.libs/libITKSmoothing-5-141064e8.3.so.1
    41456  04-05-2022 03:18   antspyx.libs/libitkNetlibSlatec-5-e614f7e3.3.so.1
   313424  04-05-2022 03:16   antspyx.libs/libitkjpeg-5-3bbeee3a.3.so.1
   759176  04-05-2022 03:18   antspyx.libs/libITKIOTransformBase-5-121f2389.3.so.1
    21512  04-05-2022 03:16   antspyx.libs/libITKDenoising-5-00f91b7d.3.so.1
  1208520  04-05-2022 03:18   antspyx.libs/libITKIOMeshVTK-5-09a0899c.3.so.1
  1322152  04-05-2022 03:18   antspyx.libs/libitkgdcmDSED-5-e6ec6a7b.3.so.1
  6527496  04-05-2022 03:18   antspyx.libs/libITKFFT-5-ea8e03b8.3.so.1
    70848  04-05-2022 03:18   antspyx.libs/libITKRegionGrowing-5-c45e7396.3.so.1
   169280  04-05-2022 03:18   antspyx.libs/libITKWatersheds-5-29b97520.3.so.1
   327920  04-05-2022 03:18   antspyx.libs/libITKIOXML-5-3a1e8b08.3.so.1
   234104  04-05-2022 03:18   antspyx.libs/libITKIOMeshBase-5-6fec2de6.3.so.1
   154920  04-05-2022 03:18   antspyx.libs/libITKKLMRegionGrowing-5-e9d012cc.3.so.1
   219712  04-05-2022 03:18   antspyx.libs/libITKIOGIPL-5-b7f79d5a.3.so.1
  5013840  04-05-2022 03:18   antspyx.libs/libitkhdf5-shared-5-cfd06ae4.3.so.1
    21656  04-05-2022 03:16   antspyx.libs/libitkvcl-5-bb700565.3.so.1
   340272  04-05-2022 03:18   antspyx.libs/libITKNrrdIO-5-ca003690.3.so.1
    83336  04-05-2022 03:18   antspyx.libs/libITKPDEDeformableRegistration-5-551d8f54.3.so.1
    70848  04-05-2022 03:18   antspyx.libs/libITKMathematicalMorphology-5-7a3f72c7.3.so.1
   469696  04-05-2022 03:18   antspyx.libs/libITKIOMeshGifti-5-69409b91.3.so.1
    62656  04-05-2022 03:18   antspyx.libs/libITKQuadEdgeMeshFiltering-5-67af6c32.3.so.1
    37408  04-05-2022 03:18   antspyx.libs/libITKVNLInstantiation-5-9c5f799d.3.so.1
   403272  04-05-2022 03:18   antspyx.libs/libITKIONIFTI-5-4f0ac868.3.so.1
   246520  04-05-2022 03:16   antspyx.libs/libitkgdcmjpeg8-5-c066f1af.3.so.1
   291936  04-05-2022 03:18   antspyx.libs/libITKIOIPL-5-b8ad9712.3.so.1
   211336  04-05-2022 03:18   antspyx.libs/libITKIOSiemens-5-228a2bc0.3.so.1
   382056  04-05-2022 03:18   antspyx.libs/libITKIOMeshFreeSurfer-5-4e372563.3.so.1
   174872  04-05-2022 03:18   antspyx.libs/libITKniftiio-5-671cd6c6.3.so.1
   109576  04-05-2022 03:16   antspyx.libs/libitkgdcmCommon-5-49c20d24.3.so.1
   238448  04-05-2022 03:16   antspyx.libs/libitkgdcmjpeg12-5-4d714595.3.so.1
   977144  04-05-2022 03:18   antspyx.libs/libITKMetaIO-5-8bf156dd.3.so.1
   237648  04-05-2022 03:16   antspyx.libs/libitkopenjpeg-5-1a34806f.3.so.1
   228368  04-05-2022 03:18   antspyx.libs/libITKIOJPEG-5-d06d0bfe.3.so.1
   282640  04-05-2022 03:18   antspyx.libs/libITKIOJPEG2000-5-42f282e4.3.so.1
    75000  04-05-2022 03:18   antspyx.libs/libITKConvolution-5-091f396c.3.so.1
   309880  04-05-2022 03:18   antspyx.libs/libITKIOGE-5-6163aea1.3.so.1
    68240  04-05-2022 03:18   antspyx.libs/libITKQuadEdgeMesh-5-2c5b682d.3.so.1
   215824  04-05-2022 03:18   antspyx.libs/libITKIOBMP-5-9aaf95d2.3.so.1
   221408  04-05-2022 03:18   antspyx.libs/libITKgiftiio-5-cc59ef32.3.so.1
    29128  04-05-2022 03:18   antspyx.libs/libITKznz-5-488075b2.3.so.1
   691296  04-05-2022 03:18   antspyx.libs/libITKIOHDF5-5-daaa54a0.3.so.1
   404136  04-05-2022 03:18   antspyx.libs/libITKIOMeta-5-7d3e013b.3.so.1
   207944  04-05-2022 03:18   antspyx.libs/libITKIOBioRad-5-d193602d.3.so.1
   324472  04-05-2022 03:18   antspyx.libs/libITKIONRRD-5-a59385d5.3.so.1
   187360  04-05-2022 03:16   antspyx.libs/libpng15-ce838cd1.so.15.13.0
   220464  04-05-2022 03:18   antspyx.libs/libITKIOStimulate-5-78e40c98.3.so.1
   339512  04-05-2022 03:18   antspyx.libs/libITKIOBruker-5-f2fcb35b.3.so.1
   669152  04-05-2022 03:18   antspyx.libs/libITKIOGDCM-5-989e05ac.3.so.1
   375760  04-05-2022 03:18   antspyx.libs/libITKIOMINC-5-c6454c1a.3.so.1
    62552  04-05-2022 03:18   antspyx.libs/libITKImageFeature-5-7b832af5.3.so.1
   624232  04-05-2022 03:16   antspyx.libs/libitkgdcmcharls-5-473d5561.3.so.1
   154120  04-05-2022 03:16   antspyx.libs/libitkzlib-5-8d51c88c.3.so.1.2.11.zlib-ng
   132136  04-05-2022 03:18   antspyx.libs/libitkgdcmIOD-5-870e3d40.3.so.1
    80408  04-05-2022 03:18   antspyx.libs/libITKBiasCorrection-5-47fce04b.3.so.1
   422288  04-05-2022 03:18   antspyx.libs/libITKIOTransformHDF5-5-7be9b192.3.so.1
    85864  04-05-2022 03:16   antspyx.libs/libitkdouble-conversion-5-61107de3.3.so.1
 26420368  04-05-2022 03:18   antspyx.libs/libITKTestKernel-5-748bf3ac.3.so.1
   225248  04-05-2022 03:16   antspyx.libs/libITKEXPAT-5-1151843b.3.so.1
    59744  04-05-2022 03:18   antspyx.libs/libITKTransform-5-dd17e93c.3.so.1
 16244608  04-05-2022 03:18   antspyx.libs/libITKTransformFactory-5-4de6fc0d.3.so.1
   565344  04-05-2022 03:18   antspyx.libs/libITKOptimizersv4-5-db98c968.3.so.1
   245128  04-05-2022 03:18   antspyx.libs/libitkMGHIO-5-8f2e6e10.3.so.1
 17373256  04-05-2022 03:18   antspyx.libs/libitkvnl-5-e8086a45.3.so.1
   297400  04-05-2022 03:18   antspyx.libs/libITKIOMRC-5-06d7de70.3.so.1
    70864  04-05-2022 03:18   antspyx.libs/libitkAdaptiveDenoising-5-294cf63d.3.so.1
    83320  04-05-2022 03:18   antspyx.libs/libITKDeformableMesh-5-8ad25a88.3.so.1
    70856  04-05-2022 03:18   antspyx.libs/libITKMarkovRandomFieldsClassifiers-5-cc3df7c8.3.so.1
   184904  04-05-2022 03:18   antspyx.libs/libITKPath-5-5fccea1d.3.so.1
    21504  04-05-2022 03:16   antspyx.libs/libITKFastMarching-5-fd67f682.3.so.1
    21264  04-05-2022 03:16   antspyx.libs/libitkgdcmuuid-5-117fa7ed.3.so.1
   334072  04-05-2022 03:18   antspyx.libs/libITKIOTransformInsightLegacy-5-a76ca6b1.3.so.1
    33488  04-05-2022 03:16   antspyx.libs/libitklbfgs-5-3edcb43b.3.so.1
    17216  04-05-2022 03:16   antspyx.libs/libITKColormap-5-f97d9f44.3.so.1
   828128  04-05-2022 03:18   antspyx.libs/libITKIOSpatialObjects-5-4ceb105d.3.so.1
  1266800  04-05-2022 03:18   antspyx.libs/libITKReview-5-1d7e8309.3.so.1
  3514912  04-05-2022 03:18   antspyx.libs/libITKCommon-5-54ad3d37.3.so.1
  1161040  04-05-2022 03:16   antspyx.libs/libitkv3p_netlib-5-4b54c378.3.so.1
    17256  04-05-2022 03:16   antspyx.libs/libITKDiffusionTensorImage-5-a34c123e.3.so.1
   331440  04-05-2022 03:18   antspyx.libs/libITKStatistics-5-a16b04cd.3.so.1
   305776  04-05-2022 03:18   antspyx.libs/libITKIOMeshOBJ-5-55a0b54c.3.so.1
   238448  04-05-2022 03:16   antspyx.libs/libitkgdcmjpeg16-5-2b4df9be.3.so.1
   303640  04-05-2022 03:18   antspyx.libs/libITKIOVTK-5-c91247dc.3.so.1
   236584  04-05-2022 03:18   antspyx.libs/libITKIOPNG-5-c368b6c6.3.so.1
   856720  04-05-2022 03:18   antspyx.libs/libitkhdf5_cpp-shared-5-25b86089.3.so.1
    75208  04-05-2022 03:18   antspyx.libs/libITKLabelMap-5-8820f3fa.3.so.1
   322008  04-05-2022 03:18   antspyx.libs/libITKIOMeshOFF-5-3fb02870.3.so.1
   139208  04-05-2022 03:18   antspyx.libs/libITKVTK-5-8f97fa3a.3.so.1
   400680  04-05-2022 03:18   antspyx.libs/libITKIOTIFF-5-d178402b.3.so.1
  3897784  04-05-2022 03:18   antspyx.libs/libitkgdcmMSFF-5-f7a8c9e7.3.so.1
   454672  04-05-2022 03:18   antspyx.libs/libITKIOImageBase-5-105668d8.3.so.1
        0  04-05-2022 03:16   ants/learn/
        0  04-05-2022 03:16   ants/utils/
        0  04-05-2022 03:16   ants/lib/
        0  04-05-2022 03:16   ants/contrib/
        0  04-05-2022 03:16   ants/segmentation/
        0  04-05-2022 03:16   ants/viz/
        0  04-05-2022 03:16   ants/core/
        0  04-05-2022 03:16   ants/registration/
       22  04-05-2022 03:16   ants/version.py
      221  04-05-2022 03:16   ants/__init__.py
       29  04-05-2022 03:16   ants/learn/__init__.py
    13566  04-05-2022 03:16   ants/learn/decomposition.py
     1007  04-05-2022 03:16   ants/utils/hausdorff_distance.py
     2490  04-05-2022 03:16   ants/utils/label_image_centroids.py
     3400  04-05-2022 03:16   ants/utils/ndimage_to_list.py
     2321  04-05-2022 03:16   ants/utils/denoise_image.py
     4863  04-05-2022 03:16   ants/utils/impute.py
     2480  04-05-2022 03:16   ants/utils/smooth_image.py
     4161  04-05-2022 03:16   ants/utils/morphology.py
     2435  04-05-2022 03:16   ants/utils/ants_integrate_velocity_field.py
     1624  04-05-2022 03:16   ants/utils/histogram_match_image.py
     6473  04-05-2022 03:16   ants/utils/get_neighborhood.py
     1397  04-05-2022 03:16   ants/utils/image_to_cluster_images.py
     1023  04-05-2022 03:16   ants/utils/label_stats.py
     8235  04-05-2022 03:16   ants/utils/fit_bspline_object_to_scattered_data.py
     1162  04-05-2022 03:16   ants/utils/label_overlap_measures.py
     7974  04-05-2022 03:16   ants/utils/invariant_image_similarity.py
     2517  04-05-2022 03:16   ants/utils/channels.py
     1500  04-05-2022 03:16   ants/utils/get_centroids.py
     1903  04-05-2022 03:16   ants/utils/labels_to_matrix.py
     1572  04-05-2022 03:16   ants/utils/convert_nibabel.py
     1248  04-05-2022 03:16   ants/utils/__init__.py
     5923  04-05-2022 03:16   ants/utils/iMath.py
     8429  04-05-2022 03:16   ants/utils/fit_bspline_displacement_field.py
     1436  04-05-2022 03:16   ants/utils/label_clusters.py
     3976  04-05-2022 03:16   ants/utils/multi_label_morphology.py
     1875  04-05-2022 03:16   ants/utils/weingarten_image_curvature.py
      819  04-05-2022 03:16   ants/utils/slice_image.py
     2609  04-05-2022 03:16   ants/utils/get_mask.py
     1536  04-05-2022 03:16   ants/utils/mask_image.py
    13623  04-05-2022 03:16   ants/utils/quantile.py
     4392  04-05-2022 03:16   ants/utils/crop_image.py
     9863  04-05-2022 03:16   ants/utils/bias_correction.py
     2969  04-05-2022 03:16   ants/utils/get_ants_data.py
     2364  04-05-2022 03:16   ants/utils/process_args.py
     4171  04-05-2022 03:16   ants/utils/scalar_rgb_vector.py
     2500  04-05-2022 03:16   ants/utils/pad_image.py
     1609  04-05-2022 03:16   ants/utils/threshold_image.py
     3368  04-05-2022 03:16   ants/utils/simulate_displacement_field.py
     1716  04-05-2022 03:16   ants/utils/image_similarity.py
     1377  04-05-2022 03:16   ants/utils/mni2tal.py
     3211  04-05-2022 03:16   ants/utils/add_noise_to_image.py
  4020280  04-05-2022 03:16   ants/lib/antsImageAugment.cpython-37m-x86_64-linux-gnu.so
  2131496  04-05-2022 03:18   ants/lib/reflectionMatrix.cpython-37m-x86_64-linux-gnu.so
  1353136  04-05-2022 03:16   ants/lib/antsImageHeaderInfo.cpython-37m-x86_64-linux-gnu.so
  4966256  04-05-2022 03:16   ants/lib/antsJointFusion.cpython-37m-x86_64-linux-gnu.so
  3232312  04-05-2022 03:16   ants/lib/antsImage.cpython-37m-x86_64-linux-gnu.so
  5588928  04-05-2022 03:16   ants/lib/antsAffineInitializer.cpython-37m-x86_64-linux-gnu.so
  3825976  04-05-2022 03:18   ants/lib/simulateDisplacementField.cpython-37m-x86_64-linux-gnu.so
  2689488  04-05-2022 03:18   ants/lib/fitBsplineDisplacementFieldToScatteredData.cpython-37m-x86_64-linux-gnu.so
  3811008  04-05-2022 03:16   ants/lib/antsImageMutualInformation.cpython-37m-x86_64-linux-gnu.so
  7149608  04-05-2022 03:16   ants/lib/KellyKapowski.cpython-37m-x86_64-linux-gnu.so
  9609984  04-05-2022 03:18   ants/lib/iMath.cpython-37m-x86_64-linux-gnu.so
740405184  04-05-2022 03:18   ants/lib/antsRegistration.cpython-37m-x86_64-linux-gnu.so
  1749624  04-05-2022 03:18   ants/lib/fsl2antstransform.cpython-37m-x86_64-linux-gnu.so
  2451408  04-05-2022 03:18   ants/lib/labelOverlapMeasures.cpython-37m-x86_64-linux-gnu.so
  3727360  04-05-2022 03:18   ants/lib/fitBsplineObjectToScatteredData.cpython-37m-x86_64-linux-gnu.so
  1576536  04-05-2022 03:18   ants/lib/reorientImage.cpython-37m-x86_64-linux-gnu.so
  3302592  04-05-2022 03:18   ants/lib/hausdorffDistance.cpython-37m-x86_64-linux-gnu.so
  1369472  04-05-2022 03:16   ants/lib/antsImageUtils.cpython-37m-x86_64-linux-gnu.so
  2385968  04-05-2022 03:18   ants/lib/labelStats.cpython-37m-x86_64-linux-gnu.so
  7334992  04-05-2022 03:18   ants/lib/antsTransform.cpython-37m-x86_64-linux-gnu.so
  2459672  04-05-2022 03:18   ants/lib/padImage.cpython-37m-x86_64-linux-gnu.so
  2331872  04-05-2022 03:18   ants/lib/sliceImage.cpython-37m-x86_64-linux-gnu.so
  2684680  04-05-2022 03:16   ants/lib/antiAlias.cpython-37m-x86_64-linux-gnu.so
  1999536  04-05-2022 03:16   ants/lib/antsImageClone.cpython-37m-x86_64-linux-gnu.so
     2349  04-05-2022 03:16   ants/lib/__init__.py
  2410568  04-05-2022 03:16   ants/lib/addNoiseToImage.cpython-37m-x86_64-linux-gnu.so
  2896464  04-05-2022 03:18   ants/lib/integrateVelocityField.cpython-37m-x86_64-linux-gnu.so
  2770168  04-05-2022 03:18   ants/lib/rgbToVector.cpython-37m-x86_64-linux-gnu.so
  4149472  04-05-2022 03:16   ants/lib/ThresholdImage.cpython-37m-x86_64-linux-gnu.so
  3684768  04-05-2022 03:18   ants/lib/sccaner.cpython-37m-x86_64-linux-gnu.so
  2096816  04-05-2022 03:18   ants/lib/getNeighborhoodMatrix.cpython-37m-x86_64-linux-gnu.so
  4504056  04-05-2022 03:16   ants/lib/antsImageToImageMetric.cpython-37m-x86_64-linux-gnu.so
  5340592  04-05-2022 03:16   ants/lib/DenoiseImage.cpython-37m-x86_64-linux-gnu.so
  8911048  04-05-2022 03:16   ants/lib/Atropos.cpython-37m-x86_64-linux-gnu.so
  3323088  04-05-2022 03:16   ants/lib/CreateJacobianDeterminantImage.cpython-37m-x86_64-linux-gnu.so
  3291664  04-05-2022 03:16   ants/lib/TileImages.cpython-37m-x86_64-linux-gnu.so
  2768288  04-05-2022 03:18   ants/lib/cropImage.cpython-37m-x86_64-linux-gnu.so
  1970912  04-05-2022 03:18   ants/lib/mergeChannels.cpython-37m-x86_64-linux-gnu.so
  8867168  04-05-2022 03:16   ants/lib/ResampleImage.cpython-37m-x86_64-linux-gnu.so
  2652712  04-05-2022 03:16   ants/lib/SmoothImage.cpython-37m-x86_64-linux-gnu.so
  2690464  04-05-2022 03:18   ants/lib/weingartenImageCurvature.cpython-37m-x86_64-linux-gnu.so
 15239160  04-05-2022 03:16   ants/lib/antsApplyTransforms.cpython-37m-x86_64-linux-gnu.so
  2685320  04-05-2022 03:18   ants/lib/fitBsplineDisplacementField.cpython-37m-x86_64-linux-gnu.so
  4132840  04-05-2022 03:16   ants/lib/LabelGeometryMeasures.cpython-37m-x86_64-linux-gnu.so
  6283760  04-05-2022 03:16   ants/lib/antsApplyTransformsToPoints.cpython-37m-x86_64-linux-gnu.so
  3980880  04-05-2022 03:18   ants/lib/readImage.cpython-37m-x86_64-linux-gnu.so
  6521816  04-05-2022 03:16   ants/lib/N3BiasFieldCorrection.cpython-37m-x86_64-linux-gnu.so
  2403552  04-05-2022 03:18   ants/lib/readTransform.cpython-37m-x86_64-linux-gnu.so
  2303216  04-05-2022 03:18   ants/lib/reorientImage2.cpython-37m-x86_64-linux-gnu.so
  2583528  04-05-2022 03:18   ants/lib/histogramMatchImage.cpython-37m-x86_64-linux-gnu.so
  5702128  04-05-2022 03:16   ants/lib/N4BiasFieldCorrection.cpython-37m-x86_64-linux-gnu.so
  3949336  04-05-2022 03:16   ants/lib/LabelClustersUniquely.cpython-37m-x86_64-linux-gnu.so
  4449560  04-05-2022 03:16   ants/lib/CreateTiledMosaic.cpython-37m-x86_64-linux-gnu.so
  3060384  04-05-2022 03:16   ants/lib/ConvertScalarImageToRGB.cpython-37m-x86_64-linux-gnu.so
        0  04-05-2022 03:16   ants/contrib/sampling/
        0  04-05-2022 03:16   ants/contrib/bids/
        0  04-05-2022 03:16   ants/contrib/sklearn_interface/
       59  04-05-2022 03:16   ants/contrib/__init__.py
    21671  04-05-2022 03:16   ants/contrib/sampling/affine2d.py
    24051  04-05-2022 03:16   ants/contrib/sampling/affine3d.py
    24297  04-05-2022 03:16   ants/contrib/sampling/transforms.py
       75  04-05-2022 03:16   ants/contrib/sampling/__init__.py
       22  04-05-2022 03:16   ants/contrib/bids/__init__.py
     3032  04-05-2022 03:16   ants/contrib/bids/cohort.py
       37  04-05-2022 03:16   ants/contrib/sklearn_interface/__init__.py
     5900  04-05-2022 03:16   ants/contrib/sklearn_interface/sklearn_registration.py
     2134  04-05-2022 03:16   ants/segmentation/prior_based_segmentation.py
      968  04-05-2022 03:16   ants/segmentation/otsu.py
     1955  04-05-2022 03:16   ants/segmentation/kelly_kapowski.py
     1421  04-05-2022 03:16   ants/segmentation/label_geometry_measures.py
      401  04-05-2022 03:16   ants/segmentation/__init__.py
     1101  04-05-2022 03:16   ants/segmentation/anti_alias.py
     6278  04-05-2022 03:16   ants/segmentation/functional_lung_segmentation.py
     1247  04-05-2022 03:16   ants/segmentation/kmeans.py
    18925  04-05-2022 03:16   ants/segmentation/joint_label_fusion.py
     5106  04-05-2022 03:16   ants/segmentation/fuzzy_spatial_cmeans_segmentation.py
     5204  04-05-2022 03:16   ants/segmentation/atropos.py
     4152  04-05-2022 03:16   ants/viz/create_tiled_mosaic.py
    26238  04-05-2022 03:16   ants/viz/volume.py
      139  04-05-2022 03:16   ants/viz/__init__.py
    31219  04-05-2022 03:16   ants/viz/surface.py
    87442  04-05-2022 03:16   ants/viz/plot.py
     5503  04-05-2022 03:16   ants/viz/render_surface_function.py
     3155  04-05-2022 03:16   ants/core/ants_metric_io.py
    33118  04-05-2022 03:16   ants/core/ants_image.py
    17883  04-05-2022 03:16   ants/core/ants_image_io.py
      177  04-05-2022 03:16   ants/core/__init__.py
    14318  04-05-2022 03:16   ants/core/ants_transform.py
     9158  04-05-2022 03:16   ants/core/ants_transform_io.py
     4438  04-05-2022 03:16   ants/core/ants_metric.py
     3143  04-05-2022 03:16   ants/registration/build_template.py
     1376  04-05-2022 03:16   ants/registration/symmetrize_image.py
      452  04-05-2022 03:16   ants/registration/__init__.py
     3991  04-05-2022 03:16   ants/registration/create_warped_grid.py
     5955  04-05-2022 03:16   ants/registration/resample_image.py
     1024  04-05-2022 03:16   ants/registration/metrics.py
     1533  04-05-2022 03:16   ants/registration/reflect_image.py
     3033  04-05-2022 03:16   ants/registration/reorient_image.py
    63183  04-05-2022 03:16   ants/registration/interface.py
     1750  04-05-2022 03:16   ants/registration/make_points_image.py
     1708  04-05-2022 03:16   ants/registration/create_jacobian_determinant_image.py
     1359  04-05-2022 03:16   ants/registration/fsl2antstransform.py
     2581  04-05-2022 03:16   ants/registration/landmark_transforms.py
    12151  04-05-2022 03:16   ants/registration/apply_transforms.py
     2116  04-05-2022 03:16   ants/registration/affine_initializer.py
    11357  04-05-2022 03:16   antspyx-0.3.2.dist-info/LICENSE
        5  04-05-2022 03:16   antspyx-0.3.2.dist-info/top_level.txt
     5830  04-05-2022 03:16   antspyx-0.3.2.dist-info/METADATA
    26150  04-05-2022 03:19   antspyx-0.3.2.dist-info/RECORD
      150  04-05-2022 03:18   antspyx-0.3.2.dist-info/WHEEL
---------                     -------
1061965225                     270 files

Contents of wheel with static ITK libs

~/src/oss/ANTsPy/wheelhouse on  shared-itk [?] via 🐍 v3.10.0 (.venv)
❯ unzip -l pypi/antspyx-0.3.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Archive:  pypi/antspyx-0.3.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
  Length      Date    Time    Name
---------  ---------- -----   ----
        0  03-19-2022 15:50   antspyx.libs/
        0  03-19-2022 15:50   ants/
        0  03-19-2022 15:50   antspyx-0.3.2.dist-info/
  1097008  03-19-2022 15:50   antspyx.libs/libpng16-2aa3e9dc.so.16.38.0
        0  03-19-2022 15:50   ants/core/
        0  03-19-2022 15:50   ants/learn/
        0  03-19-2022 15:50   ants/registration/
        0  03-19-2022 15:50   ants/lib/
        0  03-19-2022 15:50   ants/contrib/
        0  03-19-2022 15:50   ants/utils/
        0  03-19-2022 15:50   ants/viz/
        0  03-19-2022 15:50   ants/segmentation/
      221  03-19-2022 15:50   ants/__init__.py
       22  03-19-2022 15:50   ants/version.py
      177  03-19-2022 15:50   ants/core/__init__.py
     3155  03-19-2022 15:50   ants/core/ants_metric_io.py
     9158  03-19-2022 15:50   ants/core/ants_transform_io.py
     4438  03-19-2022 15:50   ants/core/ants_metric.py
    17883  03-19-2022 15:50   ants/core/ants_image_io.py
    33118  03-19-2022 15:50   ants/core/ants_image.py
    14318  03-19-2022 15:50   ants/core/ants_transform.py
       29  03-19-2022 15:50   ants/learn/__init__.py
    13566  03-19-2022 15:50   ants/learn/decomposition.py
     1024  03-19-2022 15:50   ants/registration/metrics.py
      452  03-19-2022 15:50   ants/registration/__init__.py
     3991  03-19-2022 15:50   ants/registration/create_warped_grid.py
    12151  03-19-2022 15:50   ants/registration/apply_transforms.py
     1376  03-19-2022 15:50   ants/registration/symmetrize_image.py
     2116  03-19-2022 15:50   ants/registration/affine_initializer.py
    63183  03-19-2022 15:50   ants/registration/interface.py
     1750  03-19-2022 15:50   ants/registration/make_points_image.py
     1359  03-19-2022 15:50   ants/registration/fsl2antstransform.py
     5955  03-19-2022 15:50   ants/registration/resample_image.py
     2581  03-19-2022 15:50   ants/registration/landmark_transforms.py
     1533  03-19-2022 15:50   ants/registration/reflect_image.py
     3143  03-19-2022 15:50   ants/registration/build_template.py
     1708  03-19-2022 15:50   ants/registration/create_jacobian_determinant_image.py
     3033  03-19-2022 15:50   ants/registration/reorient_image.py
 22203752  03-19-2022 15:50   ants/lib/iMath.cpython-37m-x86_64-linux-gnu.so
 23191664  03-19-2022 15:50   ants/lib/antsApplyTransformsToPoints.cpython-37m-x86_64-linux-gnu.so
 17816992  03-19-2022 15:50   ants/lib/antsImageToImageMetric.cpython-37m-x86_64-linux-gnu.so
 17123448  03-19-2022 15:50   ants/lib/antsImageMutualInformation.cpython-37m-x86_64-linux-gnu.so
     2349  03-19-2022 15:50   ants/lib/__init__.py
 15874536  03-19-2022 15:50   ants/lib/antsImage.cpython-37m-x86_64-linux-gnu.so
 25136848  03-19-2022 15:50   ants/lib/antsTransform.cpython-37m-x86_64-linux-gnu.so
 15222824  03-19-2022 15:50   ants/lib/antiAlias.cpython-37m-x86_64-linux-gnu.so
 15128744  03-19-2022 15:50   ants/lib/integrateVelocityField.cpython-37m-x86_64-linux-gnu.so
 14870576  03-19-2022 15:50   ants/lib/reorientImage2.cpython-37m-x86_64-linux-gnu.so
 15112368  03-19-2022 15:50   ants/lib/weingartenImageCurvature.cpython-37m-x86_64-linux-gnu.so
 21786152  03-19-2022 15:50   ants/lib/reorientImage.cpython-37m-x86_64-linux-gnu.so
 18115624  03-19-2022 15:50   ants/lib/KellyKapowski.cpython-37m-x86_64-linux-gnu.so
 15788896  03-19-2022 15:50   ants/lib/CreateTiledMosaic.cpython-37m-x86_64-linux-gnu.so
 16067008  03-19-2022 15:50   ants/lib/ThresholdImage.cpython-37m-x86_64-linux-gnu.so
 14442816  03-19-2022 15:50   ants/lib/antsImageUtils.cpython-37m-x86_64-linux-gnu.so
 15136976  03-19-2022 15:50   ants/lib/SmoothImage.cpython-37m-x86_64-linux-gnu.so
 15329408  03-19-2022 15:50   ants/lib/rgbToVector.cpython-37m-x86_64-linux-gnu.so
 21728936  03-19-2022 15:50   ants/lib/fsl2antstransform.cpython-37m-x86_64-linux-gnu.so
 16858448  03-19-2022 15:50   ants/lib/N4BiasFieldCorrection.cpython-37m-x86_64-linux-gnu.so
 15776168  03-19-2022 15:50   ants/lib/sccaner.cpython-37m-x86_64-linux-gnu.so
 14414072  03-19-2022 15:50   ants/lib/antsImageHeaderInfo.cpython-37m-x86_64-linux-gnu.so
 14923936  03-19-2022 15:50   ants/lib/labelStats.cpython-37m-x86_64-linux-gnu.so
 15153376  03-19-2022 15:50   ants/lib/cropImage.cpython-37m-x86_64-linux-gnu.so
 17780056  03-19-2022 15:50   ants/lib/N3BiasFieldCorrection.cpython-37m-x86_64-linux-gnu.so
 22022488  03-19-2022 15:50   ants/lib/ResampleImage.cpython-37m-x86_64-linux-gnu.so
 15468872  03-19-2022 15:50   ants/lib/CreateJacobianDeterminantImage.cpython-37m-x86_64-linux-gnu.so
 21970544  03-19-2022 15:50   ants/lib/reflectionMatrix.cpython-37m-x86_64-linux-gnu.so
 15735128  03-19-2022 15:50   ants/lib/LabelClustersUniquely.cpython-37m-x86_64-linux-gnu.so
 14993560  03-19-2022 15:50   ants/lib/labelOverlapMeasures.cpython-37m-x86_64-linux-gnu.so
 15362456  03-19-2022 15:50   ants/lib/TileImages.cpython-37m-x86_64-linux-gnu.so
 14891120  03-19-2022 15:50   ants/lib/sliceImage.cpython-37m-x86_64-linux-gnu.so
 20757672  03-19-2022 15:50   ants/lib/Atropos.cpython-37m-x86_64-linux-gnu.so
 15182112  03-19-2022 15:50   ants/lib/fitBsplineDisplacementFieldToScatteredData.cpython-37m-x86_64-linux-gnu.so
 15005864  03-19-2022 15:50   ants/lib/histogramMatchImage.cpython-37m-x86_64-linux-gnu.so
 31879536  03-19-2022 15:50   ants/lib/antsApplyTransforms.cpython-37m-x86_64-linux-gnu.so
 16025872  03-19-2022 15:50   ants/lib/fitBsplineObjectToScatteredData.cpython-37m-x86_64-linux-gnu.so
 17427728  03-19-2022 15:50   ants/lib/DenoiseImage.cpython-37m-x86_64-linux-gnu.so
 15186192  03-19-2022 15:50   ants/lib/fitBsplineDisplacementField.cpython-37m-x86_64-linux-gnu.so
 23655224  03-19-2022 15:50   ants/lib/antsAffineInitializer.cpython-37m-x86_64-linux-gnu.so
 22847336  03-19-2022 15:50   ants/lib/LabelGeometryMeasures.cpython-37m-x86_64-linux-gnu.so
 14960744  03-19-2022 15:50   ants/lib/addNoiseToImage.cpython-37m-x86_64-linux-gnu.so
 14993600  03-19-2022 15:50   ants/lib/padImage.cpython-37m-x86_64-linux-gnu.so
 16329992  03-19-2022 15:50   ants/lib/antsJointFusion.cpython-37m-x86_64-linux-gnu.so
 16099560  03-19-2022 15:50   ants/lib/simulateDisplacementField.cpython-37m-x86_64-linux-gnu.so
 16337112  03-19-2022 15:50   ants/lib/readImage.cpython-37m-x86_64-linux-gnu.so
 15464584  03-19-2022 15:50   ants/lib/hausdorffDistance.cpython-37m-x86_64-linux-gnu.so
 14963072  03-19-2022 15:50   ants/lib/getNeighborhoodMatrix.cpython-37m-x86_64-linux-gnu.so
 15022184  03-19-2022 15:50   ants/lib/mergeChannels.cpython-37m-x86_64-linux-gnu.so
 69498312  03-19-2022 15:50   ants/lib/antsRegistration.cpython-37m-x86_64-linux-gnu.so
 18221288  03-19-2022 15:50   ants/lib/antsImageAugment.cpython-37m-x86_64-linux-gnu.so
 21778136  03-19-2022 15:50   ants/lib/readTransform.cpython-37m-x86_64-linux-gnu.so
 15054896  03-19-2022 15:50   ants/lib/antsImageClone.cpython-37m-x86_64-linux-gnu.so
        0  03-19-2022 15:50   ants/contrib/sklearn_interface/
        0  03-19-2022 15:50   ants/contrib/bids/
        0  03-19-2022 15:50   ants/contrib/sampling/
       59  03-19-2022 15:50   ants/contrib/__init__.py
       37  03-19-2022 15:50   ants/contrib/sklearn_interface/__init__.py
     5900  03-19-2022 15:50   ants/contrib/sklearn_interface/sklearn_registration.py
       22  03-19-2022 15:50   ants/contrib/bids/__init__.py
     3032  03-19-2022 15:50   ants/contrib/bids/cohort.py
       75  03-19-2022 15:50   ants/contrib/sampling/__init__.py
    24051  03-19-2022 15:50   ants/contrib/sampling/affine3d.py
    24297  03-19-2022 15:50   ants/contrib/sampling/transforms.py
    21671  03-19-2022 15:50   ants/contrib/sampling/affine2d.py
     3368  03-19-2022 15:50   ants/utils/simulate_displacement_field.py
     1248  03-19-2022 15:50   ants/utils/__init__.py
     1500  03-19-2022 15:50   ants/utils/get_centroids.py
     7974  03-19-2022 15:50   ants/utils/invariant_image_similarity.py
     1397  03-19-2022 15:50   ants/utils/image_to_cluster_images.py
     4171  03-19-2022 15:50   ants/utils/scalar_rgb_vector.py
     1716  03-19-2022 15:50   ants/utils/image_similarity.py
     2435  03-19-2022 15:50   ants/utils/ants_integrate_velocity_field.py
      819  03-19-2022 15:50   ants/utils/slice_image.py
     8429  03-19-2022 15:50   ants/utils/fit_bspline_displacement_field.py
     1007  03-19-2022 15:50   ants/utils/hausdorff_distance.py
     1436  03-19-2022 15:50   ants/utils/label_clusters.py
     1162  03-19-2022 15:50   ants/utils/label_overlap_measures.py
     4161  03-19-2022 15:50   ants/utils/morphology.py
     2517  03-19-2022 15:50   ants/utils/channels.py
     1903  03-19-2022 15:50   ants/utils/labels_to_matrix.py
     3976  03-19-2022 15:50   ants/utils/multi_label_morphology.py
     1875  03-19-2022 15:50   ants/utils/weingarten_image_curvature.py
     4392  03-19-2022 15:50   ants/utils/crop_image.py
     1609  03-19-2022 15:50   ants/utils/threshold_image.py
     2480  03-19-2022 15:50   ants/utils/smooth_image.py
     1624  03-19-2022 15:50   ants/utils/histogram_match_image.py
     1377  03-19-2022 15:50   ants/utils/mni2tal.py
     1572  03-19-2022 15:50   ants/utils/convert_nibabel.py
     2490  03-19-2022 15:50   ants/utils/label_image_centroids.py
     8235  03-19-2022 15:50   ants/utils/fit_bspline_object_to_scattered_data.py
     1536  03-19-2022 15:50   ants/utils/mask_image.py
     2500  03-19-2022 15:50   ants/utils/pad_image.py
     3211  03-19-2022 15:50   ants/utils/add_noise_to_image.py
     2969  03-19-2022 15:50   ants/utils/get_ants_data.py
     6473  03-19-2022 15:50   ants/utils/get_neighborhood.py
     1023  03-19-2022 15:50   ants/utils/label_stats.py
     9863  03-19-2022 15:50   ants/utils/bias_correction.py
    13623  03-19-2022 15:50   ants/utils/quantile.py
     2364  03-19-2022 15:50   ants/utils/process_args.py
     4863  03-19-2022 15:50   ants/utils/impute.py
     2609  03-19-2022 15:50   ants/utils/get_mask.py
     3400  03-19-2022 15:50   ants/utils/ndimage_to_list.py
     5923  03-19-2022 15:50   ants/utils/iMath.py
     2321  03-19-2022 15:50   ants/utils/denoise_image.py
      139  03-19-2022 15:50   ants/viz/__init__.py
     4152  03-19-2022 15:50   ants/viz/create_tiled_mosaic.py
    26238  03-19-2022 15:50   ants/viz/volume.py
    31219  03-19-2022 15:50   ants/viz/surface.py
     5503  03-19-2022 15:50   ants/viz/render_surface_function.py
    87442  03-19-2022 15:50   ants/viz/plot.py
      401  03-19-2022 15:50   ants/segmentation/__init__.py
    18925  03-19-2022 15:50   ants/segmentation/joint_label_fusion.py
     1247  03-19-2022 15:50   ants/segmentation/kmeans.py
     1421  03-19-2022 15:50   ants/segmentation/label_geometry_measures.py
      968  03-19-2022 15:50   ants/segmentation/otsu.py
     1955  03-19-2022 15:50   ants/segmentation/kelly_kapowski.py
     2134  03-19-2022 15:50   ants/segmentation/prior_based_segmentation.py
     1101  03-19-2022 15:50   ants/segmentation/anti_alias.py
     6278  03-19-2022 15:50   ants/segmentation/functional_lung_segmentation.py
     5204  03-19-2022 15:50   ants/segmentation/atropos.py
     5106  03-19-2022 15:50   ants/segmentation/fuzzy_spatial_cmeans_segmentation.py
    14981  03-19-2022 15:50   antspyx-0.3.2.dist-info/RECORD
      150  03-19-2022 15:50   antspyx-0.3.2.dist-info/WHEEL
     5830  03-19-2022 15:50   antspyx-0.3.2.dist-info/METADATA
        5  03-19-2022 15:50   antspyx-0.3.2.dist-info/top_level.txt
    11357  03-19-2022 15:50   antspyx-0.3.2.dist-info/LICENSE
---------                     -------
963868056                     165 files

@aganders3
Copy link
Author

aganders3 commented Apr 5, 2022

I can't seem to attach a wheel (or a zip of a wheel) to this post, so here is a link:
http://files.aga3.xyz/antspyx-0.3.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

@ntustison
Copy link
Member

I defer to @stnava for pushing this along but thanks for this @aganders3 .

@stnava
Copy link
Member

stnava commented Apr 9, 2022

hi - thx for this - I would like to see more evidence that this strategy leads to wheels that are truly portable. unfortunately, I don't have time right now to check that myself - hopefully next week.

@aganders3
Copy link
Author

I've tested this working in our environment but unfortunately the large uncompressed size negates the benefit on our end (installed in a Docker image). I'm going to keep investing as time allows because the huge compression ratio does not seem right.

@aganders3
Copy link
Author

Okay I spent another chunk of time on this today and I think the large inflated size comes from some issue in patchelf which is used by auditwheel. I created pypa/auditwheel#376 which at least mitigates the issue, as I'm not sure if or when the root cause will (or can) be fixed in patchelf.

In any case here is the link to the version I am using internally; this wheel is now ~50 MB compressed and ~200 MB uncompressed: http://files.aga3.xyz/antspyx-0.3.2%2Bhri.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Hopefully this turns out to be as portable as your current wheels and can benefit all the ANTsPy users!

@aganders3
Copy link
Author

I know this is quite old, but is there any interest in moving this along? I'm no longer at the job this was relevant for, but I still think it's a good idea.

The good news is that since I proposed this my other change has been released in auditwheel so it should be much smoother to implement and test. Otherwise I'm happy to close this and let it be a reference in case someone would like to pick it up in the future.

@cookpa
Copy link
Member

cookpa commented Jul 16, 2024

Thanks for bringing this up @aganders3 , the wheels are much smaller now after @ncullen93's Herculean feat of porting ANTsPy to nanobind, but they haven't been updated on PyPI.

I think we would need to delete the 0.3.8 release to make space, after which we could tag a new release. I may need some help if the automated push fails, but could have a go later in the week

@ncullen93
Copy link
Member

Once I am back from vacation, I will also take a closer look at the wheels - specifically for pypi.

@aganders3 aganders3 closed this Oct 17, 2024
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.

5 participants