Skip to content

Commit e8bbc72

Browse files
authored
Merge pull request #358 from cosanlab/align_bug
Fixed minor bug in Brain_Data.align when using SRM
2 parents 98f49c4 + 99d0f22 commit e8bbc72

File tree

2 files changed

+6
-6
lines changed

2 files changed

+6
-6
lines changed

nltools/data/brain_data.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1839,9 +1839,9 @@ def align(self, target, method='procrustes', axis=0, *args, **kwargs):
18391839
U, _, V = np.linalg.svd(A, full_matrices=False)
18401840

18411841
out['transformation_matrix'] = source
1842-
out['transformation_matrix'].data = U.dot(V)
1842+
out['transformation_matrix'].data = U.dot(V).T
18431843

1844-
out['transformed'] = data1.dot(out['transformation_matrix'].data)
1844+
out['transformed'] = data1.dot(out['transformation_matrix'].data.T)
18451845
out['common_model'] = target
18461846
elif method == 'procrustes':
18471847
_, transformed, out['disparity'], tf_mtx, out['scale'] = procrustes(data2, data1)

nltools/tests/test_brain_data.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -479,15 +479,15 @@ def test_hyperalignment():
479479
assert d1.shape() == bout['transformed'].shape
480480
assert d1.shape() == bout['common_model'].shape
481481
assert d1.shape()[1] == bout['transformation_matrix'].shape()[0]
482-
btransformed = np.dot(d1.data, bout['transformation_matrix'].data)
482+
btransformed = np.dot(d1.data, bout['transformation_matrix'].data.T)
483483
np.testing.assert_almost_equal(0, np.sum(bout['transformed'].data - btransformed))
484484

485485
# Test probabilistic brain_data
486486
bout = d1.align(out['common_model'], method='probabilistic_srm')
487487
assert d1.shape() == bout['transformed'].shape
488488
assert d1.shape() == bout['common_model'].shape
489489
assert d1.shape()[1] == bout['transformation_matrix'].shape()[0]
490-
btransformed = np.dot(d1.data, bout['transformation_matrix'].data)
490+
btransformed = np.dot(d1.data, bout['transformation_matrix'].data.T)
491491
np.testing.assert_almost_equal(0, np.sum(bout['transformed'].data-btransformed))
492492

493493
# Test procrustes brain_data
@@ -520,15 +520,15 @@ def test_hyperalignment():
520520
assert d1.shape() == bout['transformed'].shape
521521
assert d1.shape() == bout['common_model'].shape
522522
assert d1.shape()[0] == bout['transformation_matrix'].shape()[0]
523-
btransformed = np.dot(d1.data.T, bout['transformation_matrix'].data)
523+
btransformed = np.dot(d1.data.T, bout['transformation_matrix'].data.T)
524524
np.testing.assert_almost_equal(0, np.sum(bout['transformed'].data-btransformed.T))
525525

526526
out = align(data, method='probabilistic_srm', axis=1)
527527
bout = d1.align(out['common_model'], method='probabilistic_srm', axis=1)
528528
assert d1.shape() == bout['transformed'].shape
529529
assert d1.shape() == bout['common_model'].shape
530530
assert d1.shape()[0] == bout['transformation_matrix'].shape()[0]
531-
btransformed = np.dot(d1.data.T, bout['transformation_matrix'].data)
531+
btransformed = np.dot(d1.data.T, bout['transformation_matrix'].data.T)
532532
np.testing.assert_almost_equal(0, np.sum(bout['transformed'].data-btransformed.T))
533533

534534
out = align(data, method='procrustes', axis=1)

0 commit comments

Comments
 (0)