COINSTAC
COINSTAC: Collaborative Informatics and Neuroimaging Suite Toolkit for Anonymous Computation - Published in JOSS (2020)
Science Score: 59.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 4 DOI reference(s) in README -
✓Academic publication links
Links to: frontiersin.org, joss.theoj.org, zenodo.org -
✓Committers with academic emails
7 of 29 committers (24.1%) from academic institutions -
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (15.4%) to scientific vocabulary
Keywords
Keywords from Contributors
Scientific Fields
Repository
Collaborative Informatics and Neuroimaging Suite Toolkit for Anonymous Computation
Basic Info
Statistics
- Stars: 50
- Watchers: 19
- Forks: 19
- Open Issues: 205
- Releases: 71
Topics
Metadata Files
README.md
Collaborative Informatics and Neuroimaging Suite Toolkit for Anonymous Computation (COINSTAC)
A federated learning solution by your friends at the Center for Translational Research in Neuroimaging and Data Science (TReNDS).
For more extensive documentation for Researchers, Computation Authors and Developers our documentation wiki can be found here
Table of Contents
Introduction
COINSTAC is software to foster collaborative research, removing large barriers to traditional data-centric collaboration approaches. It enables groups of users to run common analyses on their own machines over their own datasets with ease. The results of these analyses are synchronized to the cloud, and undergo aggregate analyses processes using all contributor data. Federated (decentralized) pipelines allow for distributed, iterative, and feature rich analyses to be run, opening new and exciting capabilities for collaborative computation. It also offers data anonymity through differentially private algorithms, so members do not need to fear PHI traceback.
Let's do research!
Deep Dive
For a deep dive, you can read the projects paper, COINSTAC: A Privacy Enabled Model and Prototype for Leveraging and Processing Decentralized Brain Imaging Data on Frontiers in Neuroscience.
We also curate a list of conference and journal papers on methods and studies related to federated learning and COINSTAC.
Quick Start Guide
If you want to run COINSTAC as an end user
- Download the latest release for your operating system.
- You can download sample data of volumes of regions of interest in the brain, in a format typically produced by FreeSurfer, which can be used in a federated regression.
- You can also download sample neuroimages (structural MRI preprocessed with voxel-based morphometry (VBM)), which can be used in a federated regression.
For more guidance, please see these detailed instructions on how to install and run COINSTAC.
Description
The Problem
You want to do research, and you want to include data from around the world. Unfortunately, orchestrating such an event is anything but trivial.
Coordinating data-driven research can be difficult. Who's going to collect all of the files? Who is going to actually "run" all of the data?
Ensuring privacy can be difficult. Can I trust other people or institutions with my research participants' data? Am I even allowed to share it?
Large datasets can be expensive to transfer. When file sets are in the GB and TB range, network transfers are not immediately trivial or even practical.
Valuable research data may often not be shared due to privacy or IRB constraints.
"Smart bullies" have demonstrated ability to extract personal information from various aggregated, anonymized datasets. How can we share data without revealing confidential information?
Bottom line--collaborative group research requires a great deal of coordination. Human and business factors can hamper research from happening at a pace that we are able to handle! Constraints may even forbid group research to occur at all.
The Solution
Let's remove these barriers. The best usage of research data is to apply it everywhere it can be useful. Our strategy enables otherwise "locked-down data" to become useful again.
COINSTAC removes the barriers to collaborative analysis by:
- decentralizing analyses and computation
- each user performs analyses/pipelines/etc all on their own computers. Bits and pieces of each users' output may be sent to a central compute node
- a central compute node performs a complimentary component of the group analysis, generally a Machine Learning algorithm. This node may trigger adjusted computations on users' machines, generally in effort to improve a model, which the research is trying to predict!
- not synchronizing full datasets. instead, synchronizing only resultant analysis metrics
- as previously discussed, central compute nodes aggregate these metrics, and attempt to draw conclusions from the contributor swarm
- because machine learning algorithms can be designed to model outcomes via artifacts of your analysis Pipelines, we keep your data safely and conveniently on your own machine, untouched.
- applying differential privacy strategies to truly anonymize private data, whilst still permitting collaboration.
You may wonder why we haven't been doing this before! Us too. Let's get started!
For Developers and Contributors
If you are a developer or scientist and want to design a decentralized computation, please see:
- The algorithm development guide for how to build and test your own
Decentralized Computation.
- The algorithm development guide for how to build and test your own
If you would like to run your own COINSTAC remote server or contribute to development, please see the setup instructions.
Reminder: if you just want to use COINSTAC, please see the Quick Start Guide.
We would love for you to contribute to development. Please see our contribution guidelines.
Developer documentation and system design information may be found over in our technical docs.
Security
- If you have questions regarding security, please read our security overview.
Releases
Binary releases for several platforms can be found here, under each version's assets tab.
Acknowledgements
COINSTAC is supported by the following grants: - NSF 1631838/1631819, 1453432, 1539067 - NIH 1R01DA040487, R01MH121246, R01MH121246-02S1, R01DA049238, R01MH120482
License
MIT. See LICENSE for details.
Owner
- Name: Center for Translational Research in Neuroimaging and Data Science
- Login: trendscenter
- Kind: organization
- Email: info@trendscenter.org
- Location: 55 Park Pl NE, Atlanta, GA 30303
- Website: www.trendscenter.org
- Twitter: CenterTrends
- Repositories: 184
- Profile: https://github.com/trendscenter
GitHub Events
Total
- Create event: 27
- Release event: 10
- Issues event: 18
- Watch event: 1
- Delete event: 23
- Member event: 1
- Issue comment event: 15
- Push event: 65
- Pull request review event: 3
- Pull request event: 43
Last Year
- Create event: 27
- Release event: 10
- Issues event: 18
- Watch event: 1
- Delete event: 23
- Member event: 1
- Issue comment event: 15
- Push event: 65
- Pull request review event: 3
- Pull request event: 43
Committers
Last synced: 8 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| Ross Kelly | r****y@m****g | 1,141 |
| Cory Reed | c****d@m****g | 553 |
| kalitopix | k****x@g****m | 360 |
| Eduardo Rocha | e****g@g****m | 349 |
| Javier Romero | j****o@g****m | 295 |
| Dylan Martin | d****n@g****m | 276 |
| dependabot[bot] | 4****] | 251 |
| tkah | t****k@u****u | 234 |
| cdaringe | c****r@g****m | 43 |
| Alex Ramirez | a****z@M****l | 30 |
| Eric Verner | e****r@g****u | 29 |
| Torran Kahleck | t****k@t****u | 21 |
| Bharath | b****i@m****g | 13 |
| Eduardo Rocha | e****a@c****z | 8 |
| BluntBSE | 3****E | 6 |
| spanta28 | s****a@g****u | 4 |
| Javier Romero | j****o@M****l | 4 |
| hvgazula | h****a@u****u | 2 |
| Xin You | r****u@g****m | 2 |
| Aashis Khanal | s****s@g****m | 2 |
| Torran Kahleck | t****k@T****l | 2 |
| dlandis | d****s@m****g | 2 |
| pprae | p****e@i****m | 2 |
| everner-ds | e****r@d****m | 1 |
| Ross Kelly | r****y@m****u | 1 |
| root | r****t@c****g | 1 |
| Jason A. Staph | j****h@s****s | 1 |
| Chris Filo Gorgolewski | k****i@g****m | 1 |
| Anand Sarwate | a****e@r****u | 1 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 4 months ago
All Time
- Total issues: 169
- Total pull requests: 242
- Average time to close issues: 3 months
- Average time to close pull requests: about 1 month
- Total issue authors: 8
- Total pull request authors: 5
- Average comments per issue: 1.56
- Average comments per pull request: 0.21
- Merged pull requests: 204
- Bot issues: 0
- Bot pull requests: 136
Past Year
- Issues: 15
- Pull requests: 55
- Average time to close issues: 15 days
- Average time to close pull requests: 15 days
- Issue authors: 3
- Pull request authors: 3
- Average comments per issue: 0.2
- Average comments per pull request: 0.33
- Merged pull requests: 35
- Bot issues: 0
- Bot pull requests: 33
Top Authors
Issue Authors
- spanta28 (62)
- praeducer (39)
- rssk (38)
- kalitopix (10)
- dylanmartin (10)
- pixelsaurus (5)
- hvgazula (1)
- eminSerin (1)
- dependabot[bot] (1)
Pull Request Authors
- dependabot[bot] (195)
- kalitopix (84)
- rssk (27)
- pixelsaurus (10)
- dylanmartin (6)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 1
-
Total downloads:
- pypi 20 last-month
- Total docker downloads: 326
- Total dependent packages: 0
- Total dependent repositories: 6
- Total versions: 10
- Total maintainers: 2
pypi.org: coinstac
Python utility library for coinstac
- Homepage: https://github.com/trendscenter/coinstac/coinstac-utilities/coinstac-python
- Documentation: https://coinstac.readthedocs.io/
- License: MIT
-
Latest release: 0.3.4
published almost 2 years ago
Rankings
Dependencies
- actions/checkout v3 composite
- actions/setup-node v3 composite
- peaceiris/actions-gh-pages v3 composite
- coinstacteam/coinstac-api latest
- coinstacteam/coinstac-server latest
- eclipse-mosquitto 1.6.15
- mongo latest
- coinstacteam/coinstac-api latest
- coinstacteam/coinstac-desktop-app ci
- coinstacteam/coinstac-server latest
- eclipse-mosquitto 1.6.15
- mongo latest
- mongo latest
- coinstacteam/coinstac-base latest build
- coinstacteam/coinstac-base latest build
- coinstacteam/coinstac-base latest build
- python 3.10 build
- coinstacteam/coinstac-base latest build
- coinstacteam/coinstac-base latest build
- coinstacteam/coinstac-python-base-stream latest build
- coinstacteam/coinstac-base latest build
- 1129 dependencies
- @docusaurus/module-type-aliases 2.2.0 development
- @docusaurus/core 3.0.0
- @docusaurus/preset-classic 3.0.0
- @mdx-js/react ^1.6.22
- clsx ^1.2.1
- prism-react-renderer ^1.3.5
- react ^17.0.2
- react-dom ^17.0.2
- 1153 dependencies
- 486 dependencies
- babel-eslint ^10.1.0 development
- concurrently ^5.1.0 development
- cross-spawn ^4.0.2 development
- eslint ^5.16.0 development
- eslint-config-airbnb ^17.1.0 development
- eslint-plugin-import ^2.14.0 development
- eslint-plugin-jsx-a11y ^6.1.2 development
- eslint-plugin-react ^7.11.1 development
- eslint-plugin-simple-import-sort ^12.0.0 development
- fs-extra ^0.30.0 development
- github-markdown-css ^2.10.0 development
- lerna ^2.8.0 development
- marked ^4.0.10 development
- minami ^1.2.3 development
- minimist ^1.2.5 development
- pre-commit ^1.2.2 development
- swig-templates ^2.0.3
- 538 dependencies
- ava ^4.3.3 development
- cross-env ^7.0.2 development
- graphql-tag ^2.10.3 development
- nyc ^15.1.0 development
- sinon ^9.0.2 development
- trace ^3.1.1 development
- uuid ^7.0.3 development
- ws ^7.3.0 development
- @hapi/hapi ^20.2.1
- @hapi/jwt ^2.1.0
- @sendgrid/mail ^7.7.0
- apollo-server-hapi ^2.25.3
- aws-sdk ^2.1150.0
- axios ^1.6.0
- boom ^5.2.0
- form-data ^4.0.0
- github-api ^3.4.0
- graphql ^15.5.0
- graphql-subscriptions ^1.2.1
- graphql-type-json ^0.1.4
- jsonwebtoken ^9.0.0
- lodash ^4.17.15
- migrate ^1.7.0
- mongodb ^3.5.7
- subscriptions-transport-ws ^0.11.0
- 367 dependencies
- ava ^4.3.3 development
- nyc ^15.0.1 development
- sinon ^9.0.2 development
- archiver ^5.3.1
- axios ^1.6.0
- coinstac-container-manager ^6.8.17
- coinstac-pipeline ^6.8.17
- convict ^6.2.1
- csv-parse ^4.4.3
- form-data ^4.0.0
- lodash ^4.17.10
- mkdirp ^0.5.1
- ncp ^2.0.0
- nes ^10.0.2
- winston ^3.2.1
- @hapi/accept 5.0.2
- @hapi/address 4.1.0
- @hapi/ammo 5.0.1
- @hapi/b64 5.0.0
- @hapi/boom 9.1.2
- @hapi/bounce 2.0.0
- @hapi/bourne 2.0.0
- @hapi/call 8.0.1
- @hapi/catbox 11.1.1
- @hapi/catbox-memory 5.0.1
- @hapi/content 5.0.2
- @hapi/cryptiles 5.1.0
- @hapi/file 2.0.0
- @hapi/formula 2.0.0
- @hapi/hapi 19.2.0
- @hapi/heavy 7.0.1
- @hapi/hoek 9.2.0
- @hapi/iron 6.0.0
- @hapi/joi 17.1.1
- @hapi/mimos 5.0.0
- @hapi/nigel 4.0.2
- @hapi/pez 5.0.3
- @hapi/pinpoint 2.0.0
- @hapi/podium 4.1.3
- @hapi/shot 5.0.5
- @hapi/somever 3.0.1
- @hapi/statehood 7.0.3
- @hapi/subtext 7.0.3
- @hapi/teamwork 5.1.0
- @hapi/teamwork 4.0.0
- @hapi/topo 5.0.0
- @hapi/validate 1.1.3
- @hapi/vise 4.0.0
- @hapi/wreck 17.1.0
- async-limiter 1.0.1
- asynckit 0.4.0
- axios 1.6.0
- b64 4.1.2
- boom 7.3.0
- bounce 1.2.3
- call 5.0.3
- combined-stream 1.0.8
- cryptiles 4.1.3
- delayed-stream 1.0.0
- follow-redirects 1.15.6
- form-data 4.0.0
- hoek 6.1.3
- iron 5.0.6
- isemail 3.2.0
- joi 14.3.1
- mime-db 1.52.0
- mime-types 2.1.35
- nes 10.0.2
- proxy-from-env 1.1.0
- punycode 2.1.1
- teamwork 3.2.0
- topo 3.0.3
- ws 6.2.2
- @hapi/hapi ^19.1.1
- axios ^1.6.0
- coinstac-container-manager ^6.8.17
- coinstac-graphql-schema ^6.8.6
- coinstac-pipeline ^6.8.17
- nes ^10.0.2
- @hapi/hoek 9.1.1
- @hapi/topo 5.0.0
- @sideway/address 4.1.1
- @sideway/formula 3.0.1
- @sideway/pinpoint 2.0.0
- joi 17.4.0
- coinstac-container-manager ^6.8.17
- joi ^17.3.0
- 375 dependencies
- ava ^4.3.3 development
- get-stdin ^6.0.0 development
- nyc ^15.0.1 development
- sinon ^9.0.2 development
- trace ^3.1.0 development
- debug ^4.3.2
- dockerode ^2.5.5
- lodash ^4.17.10
- portscanner ^2.2.0
- request-stream ^1.2.2
- socket.io ^4.4.0
- socket.io-stream ^0.9.1
- util ^0.10.4
- winston ^3.2.1
- ws ^7.2.3
- 1396 dependencies
- @babel/cli ^7.16.0 development
- @babel/core ^7.16.0 development
- @babel/plugin-transform-runtime ^7.16.4 development
- @babel/preset-env ^7.16.4 development
- @babel/preset-react ^7.16.0 development
- @electron/notarize ^2.3.0 development
- @istanbuljs/nyc-config-babel ^3.0.0 development
- app-builder-bin ^3.5.13 development
- babel-loader ^8.2.5 development
- babel-plugin-istanbul ^6.1.1 development
- chai ^4.1.2 development
- chai-as-promised ^7.1.1 development
- cross-env ^7.0.3 development
- css-loader ^6.7.1 development
- electron ^18.0.3 development
- electron-builder ^24.13.3 development
- electron-debug ^3.1.0 development
- eslint ^8.56.0 development
- eslint-plugin-simple-import-sort ^12.0.0 development
- file-loader ^6.2.0 development
- jsdoc ^3.5.5 development
- mocha ^9.1.3 development
- ncp ^2.0.0 development
- node-sass ^9.0.0 development
- nyc ^15.1.0 development
- playwright ^1.21 development
- react-hot-loader ^4.13.0 development
- rimraf ^2.6.2 development
- sass-loader ^16.0.3 development
- stack-chain ^2.0.0 development
- style-loader ^3.3.1 development
- tape ^4.9.0 development
- url-loader ^4.1.1 development
- webpack ^5.74.0 development
- webpack-cli ^4.10.0 development
- webpack-dev-server ^4.11.1 development
- @apollo/client ^3.3.20
- @apollo/react-hoc ^4.0.0
- @material-ui/core ^4.11.0
- @material-ui/icons ^4.9.1
- @material-ui/lab ^4.0.0-alpha.57
- add-graphql-subscriptions ^1.0.1
- app-module-path ^2.2.0
- axios ^1.6.0
- bitap ^1.0.1
- classnames ^2.2.5
- coinstac-client-core ^6.8.17
- coinstac-common ^6.8.17
- coinstac-container-manager ^6.8.17
- coinstac-graphql-schema ^6.8.6
- coinstac-pipeline ^6.8.17
- commander ^2.15.1
- convict ^6.2.1
- core-js ^3.19.1
- csv-reader ^1.0.6
- d3 ^7.6.1
- deep-parse-json ^1.0.1
- electron-default-menu ^1.0.1
- electron-store ^8.0.1
- electron-updater ^6.3.0
- form-data ^4.0.0
- formik ^2.2.9
- fuse.js ^6.6.2
- graphql ^15.5.0
- gunzip-maybe ^1.4.2
- immutability-helper ^2.7.0
- ipc-promise ^0.1.4
- js-yaml ^4.1.0
- jsoneditor ^9.10.5
- jsoneditor-react ^3.1.2
- lodash ^4.17.10
- memoize-one ^5.0.0
- mkdirp ^0.5.1
- moment ^2.22.2
- pdfkit ^0.13.0
- prop-types ^15.6.1
- rasterizehtml ^1.3.0
- react ^16.8.0
- react-avatar ^3.10.0
- react-bootstrap ^0.31.5
- react-dnd ^2.6.0
- react-dnd-html5-backend ^2.6.0
- react-dom ^16.8.0
- react-dragula ^1.1.17
- react-dropzone ^10.2.1
- react-faux-dom ^4.1.0
- react-joyride ^2.3.1
- react-json-editor-ajrm ^2.5.13
- react-json-view ^1.19.1
- react-material-ui-form-validator ^2.1.4
- react-mde ^10.2.1
- react-merge-refs ^1.1.0
- react-number-format ^4.3.1
- react-redux ^7.2.6
- react-router ^3.2.1
- react-router-bootstrap ^0.23.3
- react-router-redux ^4.0.8
- react-select ^3.1.0
- react-virtualized-auto-sizer ^1.0.5
- react-window ^1.8.6
- read-last-lines ^1.4.0
- redux ^4.1.2
- redux-persist ^6.0.0
- redux-persist-electron-storage ^2.1.0
- redux-promise ^0.5.3
- redux-thunk ^2.3.0
- regenerator-runtime ^0.13.9
- serialize-error ^2.1.0
- sha-1 ^0.1.1
- shortid ^2.2.8
- showdown ^1.9.1
- subscriptions-transport-ws ^0.11.0
- tail ^1.2.3
- tar-fs ^2.1.1
- uuid ^8.3.2
- winston ^3.4.0
- yup ^1.0.2
- 389 dependencies
- ava ^5.0.1 development
- get-stdin ^6.0.0 development
- nyc ^14.1.1 development
- request-stream ^1.2.2 development
- socket.io ^4.8.1 development
- socket.io-client ^2.2.0 development
- socket.io-stream ^0.9.1 development
- unzipper ^0.10.3 development
- clarify ^2.1.0
- trace ^3.1.0
- winston ^3.0.0
- ws ^7.5.10
- 450 dependencies
- ava ^4.3.3 development
- clarify ^2.1.0 development
- nyc ^15.1.0 development
- trace ^3.1.0 development
- archiver ^3.1.1
- coinstac-container-manager ^6.8.17
- debug ^4.2.0
- decompress ^4.2.0
- express ^4.17.1
- form-data ^2.5.0
- lodash ^4.17.10
- merge2 ^1.4.1
- mkdirp ^0.5.1
- mqtt ^4.1.0
- multer ^1.4.2
- mv ^2.1.1
- rimraf ^3.0.2
- tar-fs ^2.1.0
- uuid ^8.3.2
- winston ^3.2.1
- 200 dependencies
- ava ^4.3.3 development
- @hapi/hapi ^20.2.1
- axios ^1.6.0
- chalk 4.1.2
- coinstac-container-manager ^6.8.17
- coinstac-graphql-schema ^6.8.6
- coinstac-pipeline ^6.8.17
- commander ^6.1.0
- 268 dependencies
- nyc ^13.0.1 development
- aedes ^0.42.1
- axios ^1.6.0
- coinstac-common ^6.8.17
- coinstac-container-manager ^6.8.17
- coinstac-pipeline ^6.8.17
- commander ^2.15.1
- convict ^6.2.2
- csv-parse ^5.0.4
- exit-hook ^2.2.0
- glob ^7.1.2
- json-parse-even-better-errors ^2.3.1
- lodash ^4.17.10
- portscanner ^2.2.0
- terminal-kit ^2.5.1
- winston ^3.0.0
- @apollo/client 3.6.6
- @colors/colors 1.5.0
- @dabh/diagnostics 2.0.3
- @graphql-typed-document-node/core 3.1.1
- @wry/context 0.6.1
- @wry/equality 0.5.2
- @wry/trie 0.3.1
- async 3.2.5
- asynckit 0.4.0
- axios 1.6.0
- backo2 1.0.2
- color 3.2.1
- color-convert 1.9.3
- color-name 1.1.3
- color-string 1.9.1
- colorspace 1.1.4
- combined-stream 1.0.8
- cross-fetch 3.1.5
- csv-reader 1.0.8
- delayed-stream 1.0.0
- enabled 2.0.0
- eventemitter3 3.1.2
- fecha 4.2.3
- fn.name 1.1.0
- follow-redirects 1.15.6
- form-data 4.0.0
- graphql 15.8.0
- graphql-tag 2.12.6
- hoist-non-react-statics 3.3.2
- inherits 2.0.4
- is-arrayish 0.3.2
- is-stream 2.0.1
- iterall 1.3.0
- js-tokens 4.0.0
- kuler 2.0.0
- lodash 4.17.21
- logform 2.4.0
- loose-envify 1.4.0
- mime-db 1.52.0
- mime-types 2.1.35
- mkdirp 1.0.4
- ms 2.1.2
- node-fetch 2.6.7
- object-assign 4.1.1
- one-time 1.0.0
- optimism 0.16.1
- prop-types 15.8.1
- proxy-from-env 1.1.0
- react-is 16.13.1
- readable-stream 3.6.0
- safe-buffer 5.2.1
- safe-stable-stringify 2.3.1
- simple-swizzle 0.2.2
- stack-trace 0.0.10
- string_decoder 1.3.0
- subscriptions-transport-ws 0.11.0
- symbol-observable 1.2.0
- symbol-observable 4.0.0
- text-hex 1.0.0
- tr46 0.0.3
- triple-beam 1.3.0
- ts-invariant 0.10.3
- tslib 2.4.0
- util-deprecate 1.0.2
- webidl-conversions 3.0.1
- whatwg-url 5.0.0
- winston 3.7.2
- winston-transport 4.5.0
- ws 7.5.8
- zen-observable 0.8.15
- zen-observable-ts 1.2.5
- @apollo/client ^3.3.20
- axios ^1.6.0
- coinstac-client-core ^6.8.17
- coinstac-graphql-schema ^6.8.6
- cross-fetch ^3.0.6
- csv-reader ^1.0.7
- graphql ^15.5.0
- lodash ^4.17.21
- mkdirp ^1.0.4
- subscriptions-transport-ws ^0.11.0
- winston ^3.3.3
- ws ^7.5.4
- coinstac >=0.3.1 test
- asyncio *
- websockets *
- asyncio *
- websockets *
- asyncio *
- websockets *