ohbm / hackathon2019

Website and projects for the OHBM Hackathon in Rome 2019
https://ohbm.github.io/hackathon2019
81 stars 61 forks source link

Multi-table PCA methods for group and individual functional connectivity #50

Open jennyrieck opened 5 years ago

jennyrieck commented 5 years ago

C-MARINeR

Jenny Rieck & Derek Beaton

Project Description

C-MARINeR is a focused sub-project MARINeR: Multivariate Analysis and Resampling Inference for Neuroimaging in R. The "C" stands generally for connectivity, but specifically and statistically: covariance or correlation. The C-MARINeR project aims to develop and distribute an R package and ShinyApp. Together, R + Shiny allows for ease of use and, hopefully, simpler exploration of such complex data, and quicker adoption of the techniques.

Background

CovSTATIS is the base method in C-MARINeR. CovSTATIS is effectively a multi-table PCA designed for covariance matrices. CovSTATIS allows for multiple connectivity (correlation or more generally covariance) matrices to be integrated into a single analysis. CovSTATIS produces component (a.k.a. factor) maps with respect to the compromise matrix (weighted average), and then projects each individual matrix back onto the components.

covstatis_outline

K+1CovSTATIS is a novel extension of CovSTATIS that allows us to use a "target" or reference matrix. For example, a theoretical resting state structure (a la Yeo/Schaffer maps). K+1CovSTATIS also produces component (a.k.a. factor) maps with respect to the compromise matrix (weighted average), except the compromise matrix is no longer a weighted average of all matrices, rather, it is a weighted average of all matrices with respect to a "target" matrix. Then each of those matrices are projected back onto the components.

Quests and missions

Overview

Our primary goal is to make a small package and ShinyApp to perform the same types of analyses we use for integrating and analyzing multiple connectivity matrices (across tasks, individuals, and groups). We want to make CovSTATIS and similar methods easily accessible.

Goals & tasks are split across multiple types, including development, design, testing, etc...

Main quests (ordered)

Hard mode

Side quests

Tools

Quests: R, various R packages, git/github, RStudio, Shiny, R Markdown

Side quests: HTML, CSS, Possibly Rcpp/RcppEigen/RcppArmadillo, LaTeX, R Markdown, graphic design

Skills

For the C-MARINeR project, there are many ways to contribute across a variety of skill levels and experience across domains.

How to participate

The “main quests” require at least moderate-to-high expertise and familiarity with R, Shiny, and/or principal components analysis. These tasks are the primary focus for us and where we will spend most (or all) of our time.

The “side quests” are meant to cover tasks beyond the primary requirements but still key parts of the project. These exist across generating data, writing documentation, design (graphic, interface), optimization, tests, and extensions. Some of these require at least familiarity with R, but many others can be done without programming experience, or even in other languages (i.e., translation of the project).

If you want to participate in any of the main or side quests, or even have ideas for additional tasks please reach out to us.

Milestones

Milestones for OHBM 2019 Hackathon are dependent on what is accomplished by the end of CAN/ACN BrainHackTO: 2019

Links and Materials

jovo commented 5 years ago

cool! we have some relevant theory for this work: https://arxiv.org/abs/1705.09355 as well as a python implementation: https://graspy.neurodata.io/tutorials/embedding/omnibus and an arxiv paper on the python package: https://arxiv.org/abs/1904.05329

derekbeaton commented 5 years ago

@TimVanMourik: are we able to label this as a Hackathon Project or are permissions to do that restricted?

TimVanMourik commented 5 years ago

Absolutely @derekbeaton!