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

Should we use NIDM-Results? #7

Closed
tsalo opened this issue Mar 24, 2018 · 8 comments
Closed

Should we use NIDM-Results? #7

tsalo opened this issue Mar 24, 2018 · 8 comments
Labels
question Further information is requested

Comments

@tsalo
Copy link
Member

tsalo commented Mar 24, 2018

NIDM-Results objects contain all of the information we could need from contrasts for NiMARE, plus the tools for parsing those objects (i.e., PyNIDM) seem pretty useful. I don’t know how stable the specification or the tools are (it looks like both are under constant development), but it seems like we could build the NiMARE database/dataset classes around the NIDM-Results objects.

I also don’t know whether it's possible or not to build the Results objects with partial information (e.g., just coordinates and metadata), but NeuroVault supports them and we could request that Brainspell output its database in that format as well. That should make it easier to download and merge everything, not to mention it would automatically link SE and contrast images for IBMAs (which has been something that's been vexing me).

@chrisgorgo
Copy link
Contributor

I think it would be interesting to explore this. Indeed NIDM-Results format allows to store both contrast images and error maps. The downside is that it uses technologies with a bit of a steep learning curve.

@tsalo
Copy link
Member Author

tsalo commented Mar 26, 2018

Yeah... after looking at the different repositories incf-nidash has out there in a little more depth, I couldn't find anything for reading in NIDM-Results folders. Maybe I'm missing something, but it's hard to figure out what each library can do with the current documentation.

@tsalo
Copy link
Member Author

tsalo commented Apr 1, 2018

I wrote a very simple notebook here to read in a folder containing a collection of NIDM-Results packs (in this case the 21 pain studies collection from NeuroVault) and convert it to a NiMARE-compatible json file. It might be useful jumping-off point for a future version of the NeuroVaultExtractor we plan to implement in NiMARE.

@chrisgorgo
Copy link
Contributor

AFAIK NIDM-Results does not make any guarantees about file naming conventions. To get the necessary files you need to parse the .ttl file: https://www.neurovault.org/collections/1425/pain_01.nidm.ttl

@cmaumet might know about python functions to help with parsing ttl. There is also some code in NV for this https://github.com/NeuroVault/NeuroVault/blob/c2975e35bec13dc36d694ac9894b57935b83627b/neurovault/apps/statmaps/nidm_results.py

@tsalo
Copy link
Member Author

tsalo commented Apr 1, 2018

Oh... darn. Thanks for the heads up, though, and the NeuroVault code looks like it could be very helpful. I hadn't come across it before.

@cmaumet
Copy link

cmaumet commented Apr 3, 2018

Hi @tsalo! I am sorry your experience with NIDM has not been great so far.

  • Our Python library to read/write NIDM-Results packs is nidmresults. (But you were right, eventually this code should live in pyNIDM). I am currently updating this library to ease reading of NIDM-Results pack.
  • The other solution is to write queries, that's the approach we used for the NIDM-Results paper: e.g. image_based_meta_analysis.py#L43-L94.

Can I get back to you when I have a first version of the reading implemented in the nidmresults library? I would love to get feedback!

More generally, if you have recommendations on how we could make the overall NIDM documentation more welcoming that would be very much appreciated. The most updated info is located in the README of the nidm-specs repository: https://github.com/incf-nidash/nidm-specs.

Thank you!

@chrisfilo: thanks a lot for pinging me!

@tsalo
Copy link
Member Author

tsalo commented Apr 4, 2018

Hi @cmaumet. Thank you so much. NIDM is extremely cool, it just seems to have a steep learning curve. I am planning to become more familiar with the specifications and tools, so I would be happy to provide feedback on whatever stumbling blocks I encounter in the documentation as I learn.

I didn't realize nidmresults was meant to read the Results packs as well as write them, but that's great to hear. I can definitely wait until the reading functionality in nidmresults is ready, and will be excited to use it in NiMARE when that happens.

@tsalo tsalo added the question Further information is requested label May 25, 2018
@tsalo
Copy link
Member Author

tsalo commented Aug 1, 2020

I've pushed this to neurostuff/pyNIMADS#1. This way we can still work on a NIMADS module prior to splitting it off into its own package, but we don't need to support NIDM-Results until it is its own package.

@tsalo tsalo closed this as completed Aug 1, 2020
tsalo added a commit that referenced this issue Jan 26, 2021
* Full coordinate shuffle-based empirical null.

* Cleanup.

* Switch empirical with full empirical.

* Run black.

* Add n_cores to MKDA methods.

* Fix null call.

* Update tests.

* Switch to analytic nulls in examples.

* Use analytic null for decoding test.

* Fix test. Very annoying.

* Change MKDA default null_method to analytic.

* Reduce test burden for empirical null.

* Improve histogram generation for KDA

This is *not* compatible with continuous kernels like ALE. I may push a workaround for those later.

* Support continuous kernels with KDA.

* Reformat.

* refactor tests to included reduced_empirical and test sensitivity/specificity separately (#7)

Co-authored-by: James Kent <jamesdkent21@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests

3 participants