diff --git a/src/scilpy/cli/tests/test_tractogram_segment_connections_from_labels.py b/src/scilpy/cli/tests/test_tractogram_segment_connections_from_labels.py index dad3c7211..80052dca6 100644 --- a/src/scilpy/cli/tests/test_tractogram_segment_connections_from_labels.py +++ b/src/scilpy/cli/tests/test_tractogram_segment_connections_from_labels.py @@ -6,6 +6,7 @@ from scilpy import SCILPY_HOME from scilpy.io.fetcher import fetch_data, get_testing_files_dict +from scilpy.io.streamlines import load_tractogram_with_reference # If they already exist, this only takes 5 seconds (check md5sum) fetch_data(get_testing_files_dict(), keys=['connectivity.zip']) @@ -31,3 +32,8 @@ def test_execution_connectivity(script_runner, monkeypatch): '--save_final', '--out_dir', os.path.join(tmp_dir.name, 'out_bundles')]) assert ret.success + # Ensure self-connections (i, i) are not duplicated (raw 314, not 628) + sft_9_9 = load_tractogram_with_reference( + None, None, + os.path.join(tmp_dir.name, 'out_bundles', 'final_connections', '9_9.trk')) + assert len(sft_9_9) == 314 diff --git a/src/scilpy/tractanalysis/connectivity_segmentation.py b/src/scilpy/tractanalysis/connectivity_segmentation.py index b4d35d588..6227f3732 100644 --- a/src/scilpy/tractanalysis/connectivity_segmentation.py +++ b/src/scilpy/tractanalysis/connectivity_segmentation.py @@ -212,7 +212,7 @@ def construct_hdf5_from_connectivity( pair_info = [] if out_label in con_info[in_label]: pair_info.extend(con_info[in_label][out_label]) - if in_label in con_info[out_label]: + if in_label != out_label and in_label in con_info[out_label]: pair_info.extend(con_info[out_label][in_label]) if len(pair_info) == 0: logging.debug("No streamlines found for this connection: not "