When running meld-graph via singularity/apptainer, I would suggest to add the flags --cleanenv --containall to disable automatic configuration of host environment variable and mounting of the home dir ~
Without, I had a case where the conda environment inside the container would run into conflicts with that of the host system, causing errors like this:
ckronlage@luna:/p/epilepsy/epi_lesion_detection/meld_graph> apptainer exec meld_graph.sif /bin/bash -c "cd /app && source \$FREESURFER_HOME/FreeSurferEnv.sh && python scripts/new_patient_pipeline/new_pt_pipeline.py -id sub-00001"
Setting MELD_DATA_PATH to /data
Setting BASE_PATH to /data/output/preprocessed_surf_data
Setting EXPERIMENT_PATH to /data/models
Setting FS_SUBJECTS_PATH to /data/output/fs_outputs
Setting BASE_PATH to /data/meld_params
Traceback (most recent call last):
File "/app/scripts/new_patient_pipeline/new_pt_pipeline.py", line 8, in <module>
from scripts.new_patient_pipeline.run_script_segmentation import run_script_segmentation
File "/app/scripts/new_patient_pipeline/run_script_segmentation.py", line 28, in <module>
from meld_graph.tools_pipeline import get_m, create_demographic_file, get_anat_files
File "/app/meld_graph/tools_pipeline.py", line 6, in <module>
import bids.layout
File "/opt/conda/envs/meld_graph/lib/python3.9/site-packages/bids/__init__.py", line 2, in <module>
from .layout import BIDSLayout, BIDSLayoutIndexer
File "/opt/conda/envs/meld_graph/lib/python3.9/site-packages/bids/layout/__init__.py", line 1, in <module>
from .layout import BIDSLayout, Query
File "/opt/conda/envs/meld_graph/lib/python3.9/site-packages/bids/layout/layout.py", line 14, in <module>
import sqlalchemy as sa
File "/opt/conda/envs/meld_graph/lib/python3.9/site-packages/sqlalchemy/__init__.py", line 12, in <module>
from . import util as _util
File "/opt/conda/envs/meld_graph/lib/python3.9/site-packages/sqlalchemy/util/__init__.py", line 14, in <module>
from ._collections import coerce_generator_arg as coerce_generator_arg
File "/opt/conda/envs/meld_graph/lib/python3.9/site-packages/sqlalchemy/util/_collections.py", line 39, in <module>
from .typing import is_non_string_iterable
File "/opt/conda/envs/meld_graph/lib/python3.9/site-packages/sqlalchemy/util/typing.py", line 42, in <module>
from typing_extensions import (
ImportError: cannot import name 'dataclass_transform' from 'typing_extensions' (/home/ckronlage/.local/lib/python3.9/site-packages/typing_extensions.py)
When running meld-graph via singularity/apptainer, I would suggest to add the flags
--cleanenv --containallto disable automatic configuration of host environment variable and mounting of the home dir ~Without, I had a case where the conda environment inside the container would run into conflicts with that of the host system, causing errors like this: