BlueBrain / Deep-Atlas

Apache License 2.0
5 stars 1 forks source link

Make sure each stage (+ overall pipeline) reprodicible #18

Open jankrepl opened 2 years ago

jankrepl commented 2 years ago

Specifically, the stages that use antspy will probably need an environment variable to be set

jankrepl commented 2 years ago

I just tested reproducibility of nissl_to_ccfv3.py using this commit https://github.com/BlueBrain/Deep-Atlas/tree/6f6e44ac3c077f5372e442b75b2b0efad25d91af

If one does not provide any environment variables, the results are different. However, if one provides the following 2 environment variables the results are reproducible:

export ITK_GLOBAL_DEFAULT_NUMBER_OF_THREADS=1
export ANTS_RANDOM_SEED=1

However, one considerable downside of using just 1 thread is the execution time

2022-05-24 15:47:09,779 - INFO - nissl-to-ccfv3 - Loading volumes
2022-05-24 15:47:10,803 - INFO - nissl-to-ccfv3 - Start registration...
2022-05-24 15:47:10,803 - INFO - nissl-to-ccfv3 - Compute the registration...
2022-05-24 15:53:36,948 - INFO - nissl-to-ccfv3 - Apply transformation to Moving Volume...
2022-05-24 16:01:11,549 - INFO - nissl-to-ccfv3 - Apply transformation to Nissl Volume...
2022-05-24 16:01:39,928 - INFO - nissl-to-ccfv3 - Saving results...

It takes approximately 15 minutes which is 3 times slower than when we don't restrict the number of threads.