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

NF: Added alignment of datasets based on STATIS with tests #362

Open
wants to merge 10 commits into
base: master
Choose a base branch
from

Conversation

swaroopgj
Copy link
Member

I implemented simple alignment based on STATIS in the lines of Hyperalignment based on [0].
It also computes similarity of representations across subjects and each subject's contribution to compromise similarity matrix.
I also added unittest for basic functionality similar to hyperalignment.
This could be extended to include bootstrapped permutations to produce MDS-like plots with confidence ellipses as shown in [0].

[0] Abdi, H., Williams, L.J., Valentin, D., & Bennani-Dosse, M. (2012). STATIS and DISTATIS: Optimum multi-table principal component analysis and three way metric multidimensional scaling. Wiley Interdisciplinary Reviews: Computational Statistics, 4, 124-167.

:return:
"""
if type(dss) == list:
print("Processing each of %d list items as tables"%(len(dss)))
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can this be a debug statement?

@nno
Copy link
Contributor

nno commented Sep 9, 2015

Thanks @swaroopgj, this looks very nice. I've added a few minor comments.

@swaroopgj
Copy link
Member Author

Added more tests and incorporated suggestions by @nno

and other stuff within helper functions for statis
@@ -347,6 +347,7 @@ def _set_max_count(self, value):
"needed for current refactoring carried out in tent/flexds")

debug.register('BM', "Benchmark")
debug.register('STATIS', "Static algorithm")
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

typo: Stati[s]

@yarikoptic
Copy link
Member

also list this as new feature in the ChangeLog please

@swaroopgj
Copy link
Member Author

Made changes as suggested by @yarikoptic

@nno
Copy link
Contributor

nno commented Oct 27, 2015

Thanks @swaroopgj.
However, the coverage has decreased substantially (7.6%), more than I would expect based on the amount of code added (with tests!). At the moment I don't have time to look into this, but it seems that is is not due to your changes; something else might be going on. Before we merge it would be good to figure out why the coverage has gone down by so much. @yarikoptic @Hanke, any ideas on this?

@yarikoptic
Copy link
Member

Seems to be some fluke unrelated to these changes... Didn't look into details though to figure it out

On October 26, 2015 8:30:48 PM EDT, "Nikolaas N. Oosterhof" notifications@github.com wrote:

Thanks @swaroopgj.
However, the coverage has decreased substantially (7.6%), more than I
would expect based on the amount of code added (with tests!). At the
moment I don't have time to look into this, but it seems that is is not
due to your changes; something else might be going on. Before we merge
it would be good to figure out why the coverage has gone down by so
much. @yarikoptic @Hanke, any ideas on this?


Reply to this email directly or view it on GitHub:
#362 (comment)

@yarikoptic
Copy link
Member

Was about to merge but then -- is this really the Statis or an alignment based on Statis (and thus better be StatisAlignment or smth like that)? also add it to suite.py

@swaroopgj
Copy link
Member Author

It returns mappers for alignment. However, it does pretty much what is in the STATIS paper except plotting the results. The way I envisioned is that it returns mappers, but the object can be used to plot by storing required matrices. Clearly, more work needs to be added for that ;)

Quoting my initial PR description:
"This could be extended to include bootstrapped permutations to produce MDS-like plots with confidence ellipses as shown in [0]."

@yarikoptic yarikoptic modified the milestone: 2.4.2 Nov 19, 2015
@yarikoptic yarikoptic modified the milestones: 2.4.2, Release 2.6.1 Aug 23, 2016
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.

None yet

3 participants