natverse / neuprintr

R client utilities for interacting with the neuPrint connectome analysis service
http://natverse.org/neuprintr
3 stars 3 forks source link

error trying to save "hemibrain" mesh #170

Closed slbonanno closed 11 months ago

slbonanno commented 11 months ago

Hi,

I'm able to save meshes for plotting i.e. PVLP.mesh <- neuprint_ROI_mesh(roi="PVLP(R)")

However if I try for the hemibrain, it doesn't work:

hemibrain.mesh <- neuprint_ROI_mesh(roi="hemibrain")

Error in neuprint_check_roi(rois = roi, dataset = dataset, conn = conn, : Regions of interest provided that are not demarcated in dataset hemibrain:v1.2.1 for server https://neuprint.janelia.org. Please call neuprint_ROIs(superLevel = NULL) to see the available ROIs.

When I run: neuprint_ROIs(superLevel = NULL)

I can see "hemibrain" as an option

jefferis commented 11 months ago

Thanks for the message and sorry you've run into trouble. I'm afraid that although hemibrain is a valid ROI there does not seem to be a mesh associated with this ROI for the dataset. If I bypass the valid ROI check and just go ahead and request the mesh I see this:

Response [https://neuprint.janelia.org/api/roimeshes/mesh/hemibrain:v1.2.1/hemibrain]
  Date: 2023-08-16 02:14
  Status: 400
  Content-Type: application/json; charset=UTF-8
  Size: 42 B
{"error":"Key \"hemibrain\" not found\n"}

So the error message is half right/half wrong: there is no hemibrain mesh to download, but it is giving the wrong code to list the available meshes. The list of available ROIs with meshes is slightly more complicated to establish and we use this internally:

> possible.rois = neuprintr::neuprint_ROIs(fromNeuronFields = TRUE, superLevel = NULL)
> possible.rois
  [1] "a'1(R)"            "a'2(R)"            "a'3(R)"           
  [4] "a'L(L)"            "a'L(R)"            "a1(R)"            
  [7] "a2(R)"             "a3(R)"             "AB(L)"            
 [10] "AB(R)"             "AL-D(L)"           "AL-D(R)"          
 [13] "AL-DA1(R)"         "AL-DA2(L)"         "AL-DA2(R)"        
 [16] "AL-DA3(L)"         "AL-DA3(R)"         "AL-DA4l(R)"       
 [19] "AL-DA4m(L)"        "AL-DA4m(R)"        "AL-DC1(L)"        
 [22] "AL-DC1(R)"         "AL-DC2(L)"         "AL-DC2(R)"        
 [25] "AL-DC3(R)"         "AL-DC4(L)"         "AL-DC4(R)"        
 [28] "AL-DL1(R)"         "AL-DL2d(R)"        "AL-DL2v(R)"       
 [31] "AL-DL3(R)"         "AL-DL4(L)"         "AL-DL4(R)"        
 [34] "AL-DL5(L)"         "AL-DL5(R)"         "AL-DM1(L)"        
 [37] "AL-DM1(R)"         "AL-DM2(L)"         "AL-DM2(R)"        
 [40] "AL-DM3(L)"         "AL-DM3(R)"         "AL-DM4(L)"        
 [43] "AL-DM4(R)"         "AL-DM5(L)"         "AL-DM5(R)"        
 [46] "AL-DM6(L)"         "AL-DM6(R)"         "AL-DP1l(R)"       
 [49] "AL-DP1m(L)"        "AL-DP1m(R)"        "AL-V(R)"          
 [52] "AL-VA1d(R)"        "AL-VA1v(R)"        "AL-VA2(R)"        
 [55] "AL-VA3(R)"         "AL-VA4(R)"         "AL-VA5(R)"        
 [58] "AL-VA6(L)"         "AL-VA6(R)"         "AL-VA7l(R)"       
 [61] "AL-VA7m(R)"        "AL-VC1(R)"         "AL-VC2(R)"        
 [64] "AL-VC3l(R)"        "AL-VC3m(R)"        "AL-VC4(R)"        
 [67] "AL-VC5(R)"         "AL-VL1(R)"         "AL-VL2a(R)"       
 [70] "AL-VL2p(R)"        "AL-VM1(R)"         "AL-VM2(R)"        
 [73] "AL-VM3(R)"         "AL-VM4(R)"         "AL-VM5d(R)"       
 [76] "AL-VM5v(R)"        "AL-VM7d(L)"        "AL-VM7d(R)"       
 [79] "AL-VM7v(L)"        "AL-VM7v(R)"        "AL-VP1d(R)"       
 [82] "AL-VP1l(R)"        "AL-VP1m(R)"        "AL-VP2(R)"        
 [85] "AL-VP3(R)"         "AL-VP4(R)"         "AL-VP5(R)"        
 [88] "aL(L)"             "AL(L)"             "aL(R)"            
 [91] "AL(R)"             "AME(R)"            "AMMC"             
 [94] "AOT(R)"            "AOTU(R)"           "ATL(L)"           
 [97] "ATL(R)"            "AVLP(R)"           "b'1(R)"           
[100] "b'2(R)"            "b'L(L)"            "b'L(R)"           
[103] "b1(R)"             "b2(R)"             "bL(L)"            
[106] "bL(R)"             "BU(L)"             "BU(R)"            
[109] "CA(L)"             "CA(R)"             "CAN(R)"           
[112] "CRE(-ROB,-RUB)(R)" "CRE(-RUB)(L)"      "CRE(L)"           
[115] "CRE(R)"            "CX"                "dACA(R)"          
[118] "EB"                "EBr1"              "EBr2r4"           
[121] "EBr3am"            "EBr3d"             "EBr3pw"           
[124] "EBr5"              "EBr6"              "EPA(L)"           
[127] "EPA(R)"            "FB"                "FB-column3"       
[130] "FBl1"              "FBl2"              "FBl3"             
[133] "FBl4"              "FBl5"              "FBl6"             
[136] "FBl7"              "FBl8"              "FBl9"             
[139] "FLA(R)"            "g1(R)"             "g2(R)"            
[142] "g3(R)"             "g4(R)"             "g5(R)"            
[145] "GA(R)"             "GC"                "GF(R)"            
[148] "gL(L)"             "gL(R)"             "GNG"              
[151] "GOR(L)"            "GOR(R)"            "IB"               
[154] "ICL(L)"            "ICL(R)"            "INP"              
[157] "IPS(R)"            "lACA(R)"           "LAL(-GA)(R)"      
[160] "LAL(L)"            "LAL(R)"            "LH(R)"            
[163] "LO(R)"             "LOP(R)"            "LX(L)"            
[166] "LX(R)"             "mALT(L)"           "mALT(R)"          
[169] "MB(+ACA)(R)"       "MB(L)"             "MB(R)"            
[172] "ME(R)"             "mito"              "NO"               
[175] "NO(L)"             "NO(R)"             "NO1(L)"           
[178] "NO1(R)"            "NO2(L)"            "NO2(R)"           
[181] "NO3(L)"            "NO3(R)"            "notes"            
[184] "OL(R)"             "PB"                "PB(L1)"           
[187] "PB(L2)"            "PB(L3)"            "PB(L4)"           
[190] "PB(L5)"            "PB(L6)"            "PB(L7)"           
[193] "PB(L8)"            "PB(L9)"            "PB(R1)"           
[196] "PB(R2)"            "PB(R3)"            "PB(R4)"           
[199] "PB(R5)"            "PB(R6)"            "PB(R7)"           
[202] "PB(R8)"            "PB(R9)"            "PED(R)"           
[205] "PENP"              "PLP(R)"            "POC"              
[208] "PRW"               "PVLP(R)"           "ROB(R)"           
[211] "RUB(L)"            "RUB(R)"            "SAD"              
[214] "SAD(-AMMC)"        "SCL(L)"            "SCL(R)"           
[217] "SIP(L)"            "SIP(R)"            "SLP(R)"           
[220] "SMP(L)"            "SMP(R)"            "SNP(L)"           
[223] "SNP(R)"            "SPS(L)"            "SPS(R)"           
[226] "vACA(R)"           "VES(L)"            "VES(R)"           
[229] "VLNP(R)"           "VMNP"              "WED(R)"

I am not sure why the hemibrain mesh is not available but you could ask over at https://groups.google.com/g/neuprint. Finally to get a hemibrain mesh right now, you can use the hemibrain.surf or hemibrain_microns.surf object bundled with the hemibrainr package.

slbonanno commented 10 months ago

Hello, Thank you for your response, it was very helpful! I was able to get the hemibrain mesh using hemibrain.surf Thank you also for pointing out the google groups for neurprint, I have joined and will look there for help from now on. Many thanks again, Shivan

On Tue, Aug 15, 2023 at 7:33 PM Gregory Jefferis @.***> wrote:

Thanks for the message and sorry you've run into trouble. I'm afraid that although hemibrain is a valid ROI there does not seem to be a mesh associated with this ROI for the dataset. If I bypass the valid ROI check and just go ahead and request the mesh I see this:

Response [https://neuprint.janelia.org/api/roimeshes/mesh/hemibrain:v1.2.1/hemibrain] Date: 2023-08-16 02:14 Status: 400 Content-Type: application/json; charset=UTF-8 Size: 42 B {"error":"Key \"hemibrain\" not found\n"}

So the error message is half right/half wrong: there is no hemibrain mesh to download, but it is giving the wrong code to list the available meshes. The list of available ROIs with meshes is slightly more complicated to establish and we use this internally:

possible.rois = neuprintr::neuprint_ROIs(fromNeuronFields = TRUE, superLevel = NULL) possible.rois [1] "a'1(R)" "a'2(R)" "a'3(R)" [4] "a'L(L)" "a'L(R)" "a1(R)" [7] "a2(R)" "a3(R)" "AB(L)" [10] "AB(R)" "AL-D(L)" "AL-D(R)" [13] "AL-DA1(R)" "AL-DA2(L)" "AL-DA2(R)" [16] "AL-DA3(L)" "AL-DA3(R)" "AL-DA4l(R)" [19] "AL-DA4m(L)" "AL-DA4m(R)" "AL-DC1(L)" [22] "AL-DC1(R)" "AL-DC2(L)" "AL-DC2(R)" [25] "AL-DC3(R)" "AL-DC4(L)" "AL-DC4(R)" [28] "AL-DL1(R)" "AL-DL2d(R)" "AL-DL2v(R)" [31] "AL-DL3(R)" "AL-DL4(L)" "AL-DL4(R)" [34] "AL-DL5(L)" "AL-DL5(R)" "AL-DM1(L)" [37] "AL-DM1(R)" "AL-DM2(L)" "AL-DM2(R)" [40] "AL-DM3(L)" "AL-DM3(R)" "AL-DM4(L)" [43] "AL-DM4(R)" "AL-DM5(L)" "AL-DM5(R)" [46] "AL-DM6(L)" "AL-DM6(R)" "AL-DP1l(R)" [49] "AL-DP1m(L)" "AL-DP1m(R)" "AL-V(R)" [52] "AL-VA1d(R)" "AL-VA1v(R)" "AL-VA2(R)" [55] "AL-VA3(R)" "AL-VA4(R)" "AL-VA5(R)" [58] "AL-VA6(L)" "AL-VA6(R)" "AL-VA7l(R)" [61] "AL-VA7m(R)" "AL-VC1(R)" "AL-VC2(R)" [64] "AL-VC3l(R)" "AL-VC3m(R)" "AL-VC4(R)" [67] "AL-VC5(R)" "AL-VL1(R)" "AL-VL2a(R)" [70] "AL-VL2p(R)" "AL-VM1(R)" "AL-VM2(R)" [73] "AL-VM3(R)" "AL-VM4(R)" "AL-VM5d(R)" [76] "AL-VM5v(R)" "AL-VM7d(L)" "AL-VM7d(R)" [79] "AL-VM7v(L)" "AL-VM7v(R)" "AL-VP1d(R)" [82] "AL-VP1l(R)" "AL-VP1m(R)" "AL-VP2(R)" [85] "AL-VP3(R)" "AL-VP4(R)" "AL-VP5(R)" [88] "aL(L)" "AL(L)" "aL(R)" [91] "AL(R)" "AME(R)" "AMMC" [94] "AOT(R)" "AOTU(R)" "ATL(L)" [97] "ATL(R)" "AVLP(R)" "b'1(R)" [100] "b'2(R)" "b'L(L)" "b'L(R)" [103] "b1(R)" "b2(R)" "bL(L)" [106] "bL(R)" "BU(L)" "BU(R)" [109] "CA(L)" "CA(R)" "CAN(R)" [112] "CRE(-ROB,-RUB)(R)" "CRE(-RUB)(L)" "CRE(L)" [115] "CRE(R)" "CX" "dACA(R)" [118] "EB" "EBr1" "EBr2r4" [121] "EBr3am" "EBr3d" "EBr3pw" [124] "EBr5" "EBr6" "EPA(L)" [127] "EPA(R)" "FB" "FB-column3" [130] "FBl1" "FBl2" "FBl3" [133] "FBl4" "FBl5" "FBl6" [136] "FBl7" "FBl8" "FBl9" [139] "FLA(R)" "g1(R)" "g2(R)" [142] "g3(R)" "g4(R)" "g5(R)" [145] "GA(R)" "GC" "GF(R)" [148] "gL(L)" "gL(R)" "GNG" [151] "GOR(L)" "GOR(R)" "IB" [154] "ICL(L)" "ICL(R)" "INP" [157] "IPS(R)" "lACA(R)" "LAL(-GA)(R)" [160] "LAL(L)" "LAL(R)" "LH(R)" [163] "LO(R)" "LOP(R)" "LX(L)" [166] "LX(R)" "mALT(L)" "mALT(R)" [169] "MB(+ACA)(R)" "MB(L)" "MB(R)" [172] "ME(R)" "mito" "NO" [175] "NO(L)" "NO(R)" "NO1(L)" [178] "NO1(R)" "NO2(L)" "NO2(R)" [181] "NO3(L)" "NO3(R)" "notes" [184] "OL(R)" "PB" "PB(L1)" [187] "PB(L2)" "PB(L3)" "PB(L4)" [190] "PB(L5)" "PB(L6)" "PB(L7)" [193] "PB(L8)" "PB(L9)" "PB(R1)" [196] "PB(R2)" "PB(R3)" "PB(R4)" [199] "PB(R5)" "PB(R6)" "PB(R7)" [202] "PB(R8)" "PB(R9)" "PED(R)" [205] "PENP" "PLP(R)" "POC" [208] "PRW" "PVLP(R)" "ROB(R)" [211] "RUB(L)" "RUB(R)" "SAD" [214] "SAD(-AMMC)" "SCL(L)" "SCL(R)" [217] "SIP(L)" "SIP(R)" "SLP(R)" [220] "SMP(L)" "SMP(R)" "SNP(L)" [223] "SNP(R)" "SPS(L)" "SPS(R)" [226] "vACA(R)" "VES(L)" "VES(R)" [229] "VLNP(R)" "VMNP" "WED(R)"

I am not sure why the hemibrain mesh is not available but you could ask over at https://groups.google.com/g/neuprint. Finally to get a hemibrain mesh right now, you can use the hemibrain.surf http://natverse.org/hemibrainr/reference/hemibrain.surf.html or hemibrain_microns.surf object bundled with the hemibrainr package http://natverse.org/hemibrainr/index.html.

— Reply to this email directly, view it on GitHub https://github.com/natverse/neuprintr/issues/170#issuecomment-1679875674, or unsubscribe https://github.com/notifications/unsubscribe-auth/ATRVABMUVDTQFL7K2V45PY3XVQWQ5ANCNFSM6AAAAAA3PEX6CY . You are receiving this because you authored the thread.Message ID: @.***>

jefferis commented 10 months ago

Great. Glad that worked out, Shivan. Note that the neuprint google group is for users of the neuprint API and interactive website both available at https://neuprint.janelia.org/.