diff --git a/data/probefiles/A1x32-Poly3-6mm-50.prb b/data/probefiles/A1x32-Poly3-6mm-50.prb new file mode 100644 index 0000000..2954853 --- /dev/null +++ b/data/probefiles/A1x32-Poly3-6mm-50.prb @@ -0,0 +1,212 @@ +# neuronexus sites correspond to the following channels (array indices) +# + +# (3) (30) +# | \ / | +# (2)-(17)-(31) +# | / \ | +# (1)-(16)-(32) +# | \ / | +# (4)-(18)-(29) +# | / \ | +# (5)-(15)-(28) +# | \ / | +# (6)-(19)-(27) +# | / \ | +# (7)-(14)-(26) +# | \ / | +# (8)-(20)-(25) +# | / \ | +# (9)-(13)-(24) +# | \ / | +# (10)-(21)-(23) +# | / \ | +# (11)-(12)-(22) + +# site:channel +# s = {1: 0, +# 2: 1, +# 3: 2, +# 4: 3, +# 5: 4, +# 6: 5, +# 7: 6, +# 8: 7, +# 9: 8, +# 10: 9, +# 11: 10, +# 12: 11, +# 13: 12, +# 14: 13, +# 15: 14, +# 16: 15, +# 17: 16, +# 18: 17, +# 19: 18, +# 20: 19, +# 21: 20, +# 22: 21, +# 23: 22, +# 24: 23, +# 25: 24, +# 26: 25, +# 27: 26, +# 28: 27, +# 29: 28, +# 30: 29, +# 31: 30, +# 32: 31, +# } +s = {11: 0, + 12: 1, + 22: 2, + 10: 3, + 21: 4, + 23: 5, + 9: 6, + 13: 7, + 24: 8, + 8: 9, + 20: 10, + 25: 11, + 7: 12, + 14: 13, + 26: 14, + 6: 15, + 19: 16, + 27: 17, + 5: 18, + 15: 19, + 28: 20, + 4: 21, + 18: 22, + 29: 23, + 1: 24, + 16: 25, + 32: 26, + 2: 27, + 17: 28, + 31: 29, + 3: 30, + 30: 31, + } + +channel_groups = { + # Shank index. + 0: + { + # List of channels to keep for spike detection. + 'channels': s.values(), + + # Adjacency graph. Dead channels will be automatically discarded + # by considering the corresponding subgraph. + 'graph': [ + (s[3],s[2]), # column 0 + (s[2],s[1]), + (s[1],s[4]), + (s[4],s[5]), + (s[5],s[6]), + (s[6],s[7]), + (s[7],s[8]), + (s[8],s[9]), + (s[9],s[10]), + (s[10],s[11]), + (s[17],s[16]), # column 1 + (s[16],s[18]), + (s[18],s[15]), + (s[15],s[19]), + (s[19],s[14]), + (s[14],s[20]), + (s[20],s[13]), + (s[13],s[21]), + (s[21],s[12]), + (s[30],s[31]), # column 2 + (s[31],s[32]), + (s[32],s[29]), + (s[29],s[28]), + (s[28],s[27]), + (s[27],s[26]), + (s[26],s[25]), + (s[25],s[24]), + (s[24],s[23]), + (s[23],s[22]), + (s[2],s[17]), # row 0 + (s[17],s[31]), + (s[1],s[16]), # row 1 + (s[16],s[32]), + (s[4],s[18]), # row 2 + (s[18],s[29]), + (s[5],s[15]), # row 3 + (s[15],s[28]), + (s[6],s[19]), # row 4 + (s[19],s[27]), + (s[7],s[14]), # row 5 + (s[14],s[26]), + (s[8],s[20]), # row 6 + (s[20],s[25]), + (s[9],s[13]), # row 7 + (s[13],s[24]), + (s[10],s[21]), # row 8 + (s[21],s[23]), + (s[11],s[12]), # row 9 + (s[12],s[22]), + (s[17],s[3]), # star 0 + (s[17],s[30]), + (s[17],s[32]), + (s[17],s[1]), + (s[18],s[1]), # star 1 + (s[18],s[32]), + (s[18],s[28]), + (s[18],s[5]), + (s[19],s[5]), # star 2 + (s[19],s[28]), + (s[19],s[26]), + (s[19],s[7]), + (s[20],s[7]), # star 3 + (s[20],s[26]), + (s[20],s[24]), + (s[20],s[9]), + (s[21],s[9]), # star 4 + (s[21],s[24]), + (s[21],s[22]), + (s[21],s[11]), + ], + + # 2D positions of the channels, only for visualization purposes + # in KlustaViewa. The unit doesn't matter. + 'geometry': { + s[3]: (0,500), # column 0 + s[2]: (0,450), + s[1]: (0,400), + s[4]: (0,350), + s[5]: (0,300), + s[6]: (0,250), + s[7]: (0,200), + s[8]: (0,150), + s[9]: (0,100), + s[10]: (0,50), + s[11]: (0,0), + s[17]: (50,450), # column 1 + s[16]: (50,400), + s[18]: (50,350), + s[15]: (50,300), + s[19]: (50,250), + s[14]: (50,200), + s[20]: (50,150), + s[13]: (50,100), + s[21]: (50,50), + s[12]: (50,0), + s[30]: (100,500), # column 2 + s[31]: (100,450), + s[32]: (100,400), + s[29]: (100,350), + s[28]: (100,300), + s[27]: (100,250), + s[26]: (100,200), + s[25]: (100,150), + s[23]: (100,100), + s[23]: (100,50), + s[22]: (100,0), + } + } +} diff --git a/data/probefiles/Neuronexus_A1x16.prb b/data/probefiles/Neuronexus_A1x16.prb new file mode 100644 index 0000000..e0c7ce2 --- /dev/null +++ b/data/probefiles/Neuronexus_A1x16.prb @@ -0,0 +1,91 @@ +# Neuronexus A1x16-5mm50 probe + +# neuronexus sites correspond to the following channels (array indices) + +# site:channel +# s = {1: 0, +# 2: 1, +# 3: 2, +# 4: 3, +# 5: 4, +# 6: 5, +# 7: 6, +# 8: 7, +# 9: 8, +# 10: 9, +# 11: 10, +# 12: 11, +# 13: 12, +# 14: 13, +# 15: 14, +# 16: 15, +# } +s = {1: 4, + 2: 6, + 3: 2, + 4: 10, + 5: 8, + 6: 0, + 7: 12, + 8: 14, + 9: 15, + 10: 13, + 11: 1, + 12: 9, + 13: 11, + 14: 3, + 15: 7, + 16: 5, + } + + +channel_groups = { + # Shank index. + 0: + { + # List of channels to keep for spike detection. + 'channels': s.values(), + + # Adjacency graph. Dead channels will be automatically discarded + # by considering the corresponding subgraph. + 'graph': [ + (s[6], s[11]), + (s[11], s[3]), + (s[3], s[14]), + (s[14], s[10]), + (s[10], s[8]), + (s[8], s[2]), + (s[2], s[15]), + (s[15], s[5]), + (s[5], s[12]), + (s[12], s[4]), + (s[4], s[13]), + (s[13], s[7]), + (s[7], s[10]), + (s[10], s[8]), + (s[8], s[9]), + ], + + # 2D positions of the channels, in microns. + # NOTE: For visualization purposes + # in KlustaViewa, the unit doesn't matter. + 'geometry': { + s[6]: (0, 0), + s[11]: (0, 50), + s[3]: (0, 100), + s[14]: (0, 150), + s[1]: (0, 200), + s[16]: (0, 250), + s[2]: (0, 300), + s[15]: (0, 350), + s[5]: (0, 400), + s[12]: (0, 450), + s[4]: (0, 500), + s[13]: (0, 550), + s[7]: (0, 600), + s[10]: (0, 650), + s[8]: (0, 700), + s[9]: (0, 750), + } + } +}