- Notifications
You must be signed in to change notification settings - Fork3
R client utilities for interacting with the neuPrint connectome analysis service
natverse/neuprintr
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
The goal ofneuprintr is to provide R client utilities for interactingwith the neuPrint connectome analysis service. neuPrint is set of toolsfor loading and analysing connectome data into a Neo4j database. You canfindneuprint onGithub. There is also a great python client available from PhilippSchlegel,neuprint-python ifthat’s your thing. neuPrint is currently being used for connectomeanalysis in aid of neuronal reconstruction efforts at Janelia ResearchCampus. The main focus is analysis of thehemibrain,densely reconstructed adult Drosophila brain dataset available athttps://neuprint.janelia.org/. For more information, have a lookhere. Using this R package inconcert with thenatverseecosystem is highly recommended.
To help you get to grips withneuprintr
, we have made a tutorial inclassic presentation form. This tutorial uses data from theJanelia FlyEM team’shemibrainproject. You can also see the vignettes in this package for the sameexamples and more.
<iframe src="https://www.slideshare.net/slideshow/embed_code/key/GcE2Blzz02nfhM" width="595" height="485" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" allowfullscreen></iframe>
# installif (!require("devtools")) install.packages("devtools")devtools::install_github("natverse/neuprintr")# uselibrary(neuprintr)
In order to useneuprintr you will need to be able to login to aneuPrint server and be able to access it underlying Neo4j database. Youmay need an authenticated accounted, or you may be able to register your@gmail
address without an authentication process. Navigate to aneuPrint website, e.g. https://neuprint.janelia.org, and hit ‘login’.Sign in using an@gmail
account. If you have authentication/the serveris public, you will now be able to see your access token by going to‘Account’:
To make life easier, you can then edit your.Renviron
file to containinformation about the neuPrint server you want to speak with, your tokenand the dataset hosted by that server, that you want to read. Aconvenient way to do this is to do
usethis::edit_r_environ()
and then edit the file that pops up, adding a section like
neuprint_server="https://neuprint.janelia.org"# nb this token is a dummyneuprint_token="asBatEsiOIJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6ImIsImxldmVsIjoicmVhZHdyaXRlIiwiaW1hZ2UtdXJsIjoiaHR0cHM7Ly9saDQuZ29vZ2xldXNlcmNvbnRlbnQuY29tLy1QeFVrTFZtbHdmcy9BQUFBQUFBQUFBDD9BQUFBQUFBQUFBQS9BQ0hpM3JleFZMeEI4Nl9FT1asb0dyMnV0QjJBcFJSZlI6MTczMjc1MjU2HH0.jhh1nMDBPl5A1HYKcszXM518NZeAhZG9jKy3hzVOWEU"
Make sure you have a blank line at the end of your.Renviron
file.Note that you can optionally specify a default dataset:
neuprint_dataset="hemibrain:v1.0"
if your neuPrint server has more than one dataset. For furtherinformation about neuprintr login, see the help forneuprint_login()
.
Finally you can also login on the command line once per session, likeso:
conn= neuprint_login(server="https://neuprint.janelia.org/",token="asBatEsiOIJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6ImIsImxldmVsIjoicmVhZHdyaXRlIiwiaW1hZ2UtdXJsIjoiaHR0cHM7Ly9saDQuZ29vZ2xldXNlcmNvbnRlbnQuY29tLy1QeFVrTFZtbHdmcy9BQUFBQUFBQUFBDD9BQUFBQUFBQUFBQS9BQ0hpM3JleFZMeEI4Nl9FT1asb0dyMnV0QjJBcFJSZlI6MTczMjc1MjU2HH0.jhh1nMDBPl5A1HYKcszXM518NZeAhZG9jKy3hzVOWEU")
This is also the approach that you would take if you were working withmore than two neuPrint servers.
Now we can have a look at what is available
# What data sets are available?neuprint_datasets()# What's the underlying databaseneuprint_database()# What are the regions of interrst in your default datasest (specified in R.environ, see ?neuprint_login)neuprint_ROIs()
Use the client to request data from neuprint. Theneuprint_fetch_custom
method will run an arbitrary cypher queryagainst the database. For information about the neuprint data model, seethe neuprint explorer web help:https://neuprint.janelia.org/help.
Some cyphers and other API endpoints have been explored by this package.Have a look a the functions, for example, that give you neuronskeletons, synapse locations, connectivity matrices, etc.
?neuprint_search?neuprint_get_adjacency_matrix?neuprint_ROI_connectivity?neuprint_get_synapses?neuprint_read_neurons
HemiBrain (hemibrain:v1.0) : from“A Connectome of the AdultDrosophila CentralBrain”(Xu, et al. 2020)
mushroombody (mb6) : from“A connectome of a learning and memorycenter in the adult Drosophilabrain” (Takemura, etal. 2017)
medulla7column (fib25) : from“Synaptic circuits and theirvariations within different columns in the visual system ofDrosophila” (Takemura,et al. 2015)
neuPrint comprises a set of tools for loading and analyzing connectomedata into a Neo4j database. Analyze and explore connectome data storedin Neo4j using the neuPrint ecosystem:neuPrintHTTP,neuPrintExplorer,Python API.
This package was created byAlexander ShakeelBates andGregory Jefferis withRomainFranconvillenow providing key contributions. You can cite a specific version of thispackage as:
citation(package="neuprintr")Tocitepackage'neuprintr'inpublicationsuse:AlexanderBates,GregoryJefferisandRomain Franconville (2021).neuprintr:RclientutilitiesforinteractingwiththeneuPrintconnectomeanalysisservice.https://natverse.org/neuprintr,https://github.com/natverse/neuprintr.ABibTeXentryforLaTeXusersis@Manual{,title= {neuprintr:RclientutilitiesforinteractingwiththeneuPrintconnectomeanalysisservice},author= {AlexanderBatesandGregoryJefferisandRomainFranconville},year= {2021},note= {https://natverse.org/neuprintr,https://github.com/natverse/neuprintr}, }
however we would appreciate if you would cite thenatverse journalarticle in whichneuprintr was first introduced. You can get fullcitation details for that as follows:
citation(package="natverse")Ifyouusethenatverse,pleaseciteour paper (Bates,Mantonetal,eLife2020).Youmayneedtociteadditionalpublicationsifyouusespecificpackagesthatimplementspecialisedalgorithmsorprovidedatasetsforreanalysis.Useacommandlike:citation(package="flycircuit")toseeifthereisaspecificcitationtouseforagivenpackageinadditiontothegeneralnatversepaper.BatesAS,MantonJD,JagannathanSR,CostaM,SchlegelP,RohlfingT,Jefferis GSXE (2020)."The natverse, a versatile toolbox for combiningand analysing neuroanatomical data."_Elife_,*9*.doi:10.7554/eLife.53350 (URL:https://doi.org/10.7554/eLife.53350),<URL:https://doi.org/10.7554/eLife.53350>.ABibTeXentryforLaTeXusersis@Article{Bates:2020aa,author= {AlexanderShakeelBatesandJamesD.MantonandSridharR.JagannathanandMartaCostaandPhilippSchlegelandTorstenRohlfingandGregoryS.X.E.Jefferis},journal= {Elife},month= {Apr},title= {Thenatverse,aversatiletoolboxforcombiningandanalysingneuroanatomicaldata},volume= {9},year= {2020},doi= {10.7554/eLife.53350},url= {https://doi.org/10.7554/eLife.53350}, }
About
R client utilities for interacting with the neuPrint connectome analysis service