# -*- coding: utf-8 -*-
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: spikesorter.proto
"""Generated protocol buffer code."""
from google.protobuf.internal import enum_type_wrapper
from google.protobuf import descriptor as _descriptor
from google.protobuf import descriptor_pool as _descriptor_pool
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
# @@protoc_insertion_point(imports)

_sym_db = _symbol_database.Default()


from . import common_pb2 as common__pb2
from . import biointerface_pb2 as biointerface__pb2


DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x11spikesorter.proto\x12\x06\x61llego\x1a\x0c\x63ommon.proto\x1a\x12\x62iointerface.proto\"\x84\x02\n\x18SpikeSorterLaunchRequest\x12\x11\n\tdsourceID\x18\x01 \x01(\t\x12&\n\x06source\x18\x02 \x01(\x0b\x32\x16.allego.FileDescriptor\x12\x1b\n\x13maxNumSiteNeighbors\x18\x04 \x01(\x05\x12\x18\n\x10neighborRadiusUm\x18\x05 \x01(\x01\x12/\n\x07variant\x18\x06 \x03(\x0b\x32\x1e.allego.SpikeSorterVariantSpec\x12%\n\x04mode\x18\x07 \x01(\x0e\x32\x17.allego.SpikeSorterMode\x12\x0c\n\x04seed\x18\x08 \x01(\x03\x12\x10\n\x08isAutoOn\x18\t \x01(\x08\"\x8a\x01\n\x19SpikeSorterCommandRequest\x12\x15\n\rspikeSorterID\x18\x01 \x02(\t\x12\'\n\x03\x63md\x18\x02 \x02(\x0e\x32\x1a.allego.SpikeSorterCommand\x12-\n\x06subCmd\x18\x03 \x02(\x0e\x32\x1d.allego.SpikeSorterSubCommand\"\xc1\x01\n\x10SpikeSorterState\x12+\n\x03sys\x18\x01 \x02(\x0e\x32\x1e.allego.SpikeSorterStateSystem\x12\x14\n\x0c\x66racComplete\x18\x02 \x02(\x01\x12\x0b\n\x03msg\x18\x03 \x01(\t\x12\x12\n\nlaunchTime\x18\x04 \x01(\t\x12\x16\n\x0einitializeTime\x18\x05 \x01(\t\x12\x18\n\x10sessionStartTime\x18\x06 \x01(\t\x12\x17\n\x0fsessionStopTime\x18\x07 \x01(\t\"\x81\x01\n\x0cSpkSortIOreq\x12#\n\x04type\x18\x01 \x02(\x0e\x32\x15.allego.SpkSortIOtype\x12\'\n\x06target\x18\x02 \x02(\x0e\x32\x17.allego.SpkSortIOtarget\x12#\n\x04mode\x18\x03 \x02(\x0e\x32\x15.allego.SpkSortIOmode\"i\n\x16SpikeSorterGetIDsReply\x12\x15\n\rspikeSorterID\x18\x01 \x03(\t\x12+\n\nsorterType\x18\x02 \x03(\x0e\x32\x17.allego.SpikeSorterType\x12\x0b\n\x03msg\x18\x03 \x01(\t\"\xa1\x01\n\x1fSpikeSorterGetRasterDataRequest\x12\x15\n\rspikeSorterID\x18\x01 \x02(\t\x12\x12\n\nntvChanIdx\x18\x02 \x03(\x05\x12\x12\n\ntimeWindow\x18\x03 \x02(\x01\x12\x17\n\x0fplotWidthPoints\x18\x04 \x02(\x01\x12\x13\n\x0b\x63omponentID\x18\x05 \x02(\t\x12\x11\n\ttimeRange\x18\x06 \x03(\x01\"\xaa\x01\n\x1aSpikeSorterRasterDataReply\x12<\n\x18spikeTimestampsByChannel\x18\x02 \x03(\x0b\x32\x1a.allego.SpikeTimestampData\x12\x11\n\ttimeRange\x18\x03 \x03(\x01\x12\x16\n\x0etimeStampRange\x18\x04 \x03(\x03\x12\x10\n\x08GPIOData\x18\x05 \x02(\x0c\x12\x11\n\tGPIOShape\x18\x06 \x03(\x05\"3\n\x1aSpikeSorterStandardRequest\x12\x15\n\rspikeSorterID\x18\x01 \x02(\t\"N\n\x1eSpikeSorterGetDashboardRequest\x12\x15\n\rspikeSorterID\x18\x01 \x02(\t\x12\x15\n\risForceUpdate\x18\x02 \x02(\x08\"\x86\x03\n\x12SpikeSorterDynamic\x12\x11\n\tisEnabled\x18\x01 \x01(\x08\x12\x43\n\x0fupdatePeriodSec\x18\x02 \x01(\x0b\x32*.allego.SpikeSorterDynamic.UpdatePeriodSec\x12\x35\n\x08\x63riteria\x18\x03 \x01(\x0b\x32#.allego.SpikeSorterDynamic.Criteria\x1a\xa0\x01\n\x08\x43riteria\x12\x31\n\x06\x64\x65tect\x18\x01 \x01(\x0e\x32!.allego.SpikeSorterCriterionLevel\x12\x30\n\x05train\x18\x02 \x01(\x0e\x32!.allego.SpikeSorterCriterionLevel\x12/\n\x04sort\x18\x03 \x01(\x0e\x32!.allego.SpikeSorterCriterionLevel\x1a>\n\x0fUpdatePeriodSec\x12\x0e\n\x06\x64\x65tect\x18\x01 \x01(\x01\x12\r\n\x05train\x18\x02 \x01(\x01\x12\x0c\n\x04sort\x18\x03 \x01(\x01\"\xc5\x01\n\x1cSpikeSorterSetDynamicRequest\x12\x15\n\rspikeSorterID\x18\x01 \x02(\t\x12\x42\n\x07variant\x18\x02 \x03(\x0b\x32\x31.allego.SpikeSorterSetDynamicRequest.VariantEntry\x1aJ\n\x0cVariantEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12)\n\x05value\x18\x02 \x01(\x0b\x32\x1a.allego.SpikeSorterDynamic:\x02\x38\x01\"\xd8\x01\n\x1aSpikeSorterGetDynamicReply\x12\x15\n\rspikeSorterID\x18\x01 \x02(\t\x12\x15\n\rrootVariantID\x18\x02 \x02(\t\x12@\n\x07variant\x18\x03 \x03(\x0b\x32/.allego.SpikeSorterGetDynamicReply.VariantEntry\x1aJ\n\x0cVariantEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12)\n\x05value\x18\x02 \x01(\x0b\x32\x1a.allego.SpikeSorterDynamic:\x02\x38\x01\"l\n\x1fGetSpikeSorterParamCommandReply\x12\x15\n\rspikeSorterID\x18\x01 \x02(\t\x12\x32\n\x03rec\x18\x02 \x03(\x0b\x32%.allego.SpikeSorterParamCommandRecord\"3\n\x12\x43lusterMapOutliers\x12\x0c\n\x04mild\x18\x01 \x03(\x01\x12\x0f\n\x07\x65xtreme\x18\x02 \x03(\x01\"9\n\x13\x43lusterMapQuartiles\x12\n\n\x02q1\x18\x01 \x02(\x01\x12\n\n\x02q2\x18\x02 \x02(\x01\x12\n\n\x02q3\x18\x03 \x02(\x01\"\x83\x01\n\x0f\x43lusterMapStats\x12\x16\n\x0e\x63\x65ntroidCenter\x18\x01 \x03(\x01\x12\x12\n\ncentroidSd\x18\x02 \x03(\x01\x12\x16\n\x0e\x63\x65ntroidSdNorm\x18\x03 \x02(\x01\x12\x19\n\x11intraCentroidDist\x18\x04 \x03(\x01\x12\x11\n\tnumSpikes\x18\x05 \x02(\x03\"f\n\x10\x43lusterMapRecord\x12\r\n\x05label\x18\x01 \x02(\x05\x12&\n\x05stats\x18\x03 \x02(\x0b\x32\x17.allego.ClusterMapStats\x12\x1b\n\x13numSpikesTrainCache\x18\x04 \x02(\x03\"\xa8\x01\n\x13SpikeSortSiteStatus\x12\x12\n\nntvChanIdx\x18\x01 \x02(\x05\x12\x15\n\rorderedLabels\x18\x02 \x03(\x05\x12)\n\x07\x63luster\x18\x03 \x03(\x0b\x32\x18.allego.ClusterMapRecord\x12\x11\n\tnumSpikes\x18\x04 \x03(\x03\x12\x0c\n\x04zeta\x18\x05 \x03(\x01\x12\x1a\n\x12\x61ggregateSpikeRate\x18\x06 \x02(\x01\"\x8f\x01\n\x14SpikeSortPhaseStatus\x12\x11\n\ttimeRange\x18\x01 \x03(\x01\x12\x12\n\nchunkIndex\x18\x02 \x02(\x03\x12\x14\n\x0cupdatePeriod\x18\x03 \x02(\x01\x12\x0c\n\x04\x62\x65ta\x18\x04 \x02(\x01\x12\x12\n\nisComplete\x18\x05 \x02(\x08\x12\x18\n\x10\x66ractionComplete\x18\x06 \x02(\x01\"*\n\x13SpikeSortNbrIdxList\x12\x13\n\x0bntvChanIdxs\x18\x01 \x03(\x05\"\xf2\x02\n\x16SpikeSorterStatusReply\x12\'\n\x05state\x18\x01 \x02(\x0b\x32\x18.allego.SpikeSorterState\x12\x16\n\x0e\x62iointerfaceID\x18\x03 \x02(\t\x12\x14\n\x0c\x64\x61tasourceID\x18\x04 \x02(\t\x12\x10\n\x08sampFreq\x18\x05 \x02(\x01\x12\x19\n\x11\x65nabledNtvChanIdx\x18\x06 \x03(\x05\x12+\n\x05phase\x18\x07 \x03(\x0b\x32\x1c.allego.SpikeSortPhaseStatus\x12\x30\n\x0b\x65nabledSite\x18\x08 \x03(\x0b\x32\x1b.allego.SpikeSortSiteStatus\x12\x12\n\nprobeYield\x18\t \x02(\x01\x12\x11\n\tsortStats\x18\n \x03(\x01\x12\x1b\n\x13\x64\x61tasourceTimeRange\x18\x0c \x03(\x01\x12\x1d\n\x15\x62iointerfaceTimeRange\x18\r \x03(\x01\x12\x12\n\nnumNeurons\x18\x0f \x02(\x03\"R\n\x1eSpikeSorterStatusVariantsReply\x12\x30\n\x08variants\x18\x01 \x03(\x0b\x32\x1e.allego.SpikeSorterStatusReply\"\xfd\x02\n\x19SpikeSorterClassifierSpec\x12\r\n\x05\x61lpha\x18\x01 \x02(\x01\x12\x11\n\talphaBias\x18\x02 \x02(\x01\x12\x16\n\x0e\x64imOutputLayer\x18\x03 \x02(\x05\x12\x16\n\x0e\x65rrorTolerance\x18\x04 \x02(\x01\x12\x19\n\x11hiddenLayerFactor\x18\x05 \x02(\x01\x12\n\n\x02iD\x18\x06 \x02(\t\x12\x16\n\x0einitBiasStdDev\x18\x07 \x02(\x01\x12\x18\n\x10initWeightStdDev\x18\x08 \x02(\x01\x12\x11\n\tisMasking\x18\t \x02(\x08\x12\x10\n\x08l1lambda\x18\n \x02(\x01\x12\x15\n\rminibatchSize\x18\x0b \x02(\x05\x12\x15\n\rmaxNumSamples\x18\x0c \x02(\x05\x12\x11\n\tnumEpochs\x18\r \x02(\x05\x12\x19\n\x11numSamplesTestMSE\x18\x0e \x02(\x05\x12\x1b\n\x13numConcurrentModels\x18\x0f \x02(\x05\x12\x17\n\x0flabelNoiseLevel\x18\x10 \x02(\x01\"u\n\x16SpikeSorterVariantSpec\x12\n\n\x02iD\x18\x01 \x02(\t\x12\x14\n\x0csiteConfigID\x18\x02 \x02(\t\x12\x39\n\x0e\x63lassifierSpec\x18\x03 \x02(\x0b\x32!.allego.SpikeSorterClassifierSpec\"\xcc\x01\n\x0fSpikeSorterSpec\x12\x15\n\rspikeSorterID\x18\x01 \x02(\t\x12\x14\n\x0c\x64\x61tasourceID\x18\x02 \x02(\t\x12\x16\n\x0e\x62iointerfaceID\x18\x03 \x02(\t\x12\x1b\n\x13maxNumSiteNeighbors\x18\x04 \x02(\x05\x12\x18\n\x10neighborRadiusUm\x18\x05 \x02(\x01\x12/\n\x07variant\x18\x06 \x03(\x0b\x32\x1e.allego.SpikeSorterVariantSpec\x12\x0c\n\x04seed\x18\x08 \x02(\x03\"\xc2\x01\n\x19SpikeSorterGetConfigReply\x12%\n\x04spec\x18\x01 \x02(\x0b\x32\x17.allego.SpikeSorterSpec\x12\x16\n\x0e\x61IupdatePeriod\x18\x02 \x02(\x01\x12\x19\n\x11orderedVariantIDs\x18\x03 \x03(\t\x12\x15\n\rrootVariantID\x18\x04 \x02(\t\x12\x34\n\x0csorterStatus\x18\x06 \x03(\x0b\x32\x1e.allego.SpikeSorterStatusReply\"\x90\x02\n\x15SpikeSorterVizRequest\x12\x15\n\rspikeSorterID\x18\x01 \x02(\t\x12\x11\n\tvariantID\x18\x02 \x02(\t\x12\x12\n\nntvChanIdx\x18\x03 \x03(\x05\x12\x13\n\x0bspikeLabels\x18\x04 \x03(\x05\x12\x34\n\x07vizType\x18\x05 \x02(\x0e\x32#.allego.SpikeSorterVizRequest.VType\x12\x14\n\x0cisYAutoScale\x18\x06 \x02(\x08\x12\x0c\n\x04yLim\x18\x07 \x03(\x01\x12\x0e\n\x06\x66igDir\x18\x08 \x02(\t\x12\x11\n\tnumSpikes\x18\t \x02(\x05\"\'\n\x05VType\x12\x1e\n\x1aVIZ_SPIKESORT_TRAIN_SPIKES\x10\x00\"\xc2\x05\n\x1cSpikeSorterGetDashboardReply\x12\"\n\x0c\x65nabledPorts\x18\x01 \x03(\x0e\x32\x0c.allego.Port\x12\x37\n\x07general\x18\x02 \x02(\x0b\x32&.allego.SpikeSorterDashboardGeneralRec\x12\x33\n\tsiteStats\x18\x03 \x02(\x0b\x32 .allego.IndicoDashboardSiteStats\x12\x46\n\tportStats\x18\x04 \x03(\x0b\x32\x33.allego.SpikeSorterGetDashboardReply.PortStatsEntry\x12\x46\n\tsitePanel\x18\x05 \x03(\x0b\x32\x33.allego.SpikeSorterGetDashboardReply.SitePanelEntry\x12J\n\x0bneuronPanel\x18\x06 \x03(\x0b\x32\x35.allego.SpikeSorterGetDashboardReply.NeuronPanelEntry\x12*\n\x02\x61I\x18\x07 \x01(\x0b\x32\x1e.allego.SpikeSorterDashboardAI\x1aR\n\x0ePortStatsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12/\n\x05value\x18\x02 \x01(\x0b\x32 .allego.IndicoDashboardPortStats:\x02\x38\x01\x1aW\n\x0eSitePanelEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x34\n\x05value\x18\x02 \x01(\x0b\x32%.allego.IndicoDashboardSiteIndicators:\x02\x38\x01\x1a[\n\x10NeuronPanelEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x36\n\x05value\x18\x02 \x01(\x0b\x32\'.allego.IndicoDashboardNeuronIndicators:\x02\x38\x01\"\x93\x03\n\x1eSpikeSorterDashboardGeneralRec\x12\'\n\x05state\x18\x01 \x02(\x0b\x32\x18.allego.SpikeSorterState\x12+\n\nsorterType\x18\x02 \x02(\x0e\x32\x17.allego.SpikeSorterType\x12\x10\n\x08sorterID\x18\x03 \x02(\t\x12\x14\n\x0c\x64\x61tasourceID\x18\x04 \x02(\t\x12\x11\n\ttimeRange\x18\x05 \x03(\x01\x12\x15\n\rnumTotalSites\x18\x06 \x02(\x03\x12\x17\n\x0fnumEnabledSites\x18\x07 \x02(\x03\x12\x16\n\x0enumActiveSites\x18\x08 \x02(\x03\x12\x12\n\nnumNeurons\x18\t \x02(\x03\x12\x12\n\nprobeYield\x18\n \x02(\x01\x12\x11\n\tsiteYield\x18\x0b \x02(\x01\x12\x1a\n\x12numSpikesProcessed\x18\x0c \x02(\x03\x12\x18\n\x10numSpikesLabeled\x18\r \x02(\x03\x12\x16\n\x0esortEfficiency\x18\x0e \x02(\x01\x12\x0f\n\x07sinkUID\x18\x0f \x01(\t\"\xd5\x01\n\x16SpikeSorterDashboardAI\x12\x0c\n\x04\x62\x65ta\x18\x01 \x02(\x01\x12\"\n\x1a\x65stimatedReaderCompleteSec\x18\x02 \x02(\x01\x12\x1a\n\x12interSessionDurSec\x18\x03 \x02(\x01\x12\x19\n\x11interSessionStart\x18\x04 \x02(\t\x12\x15\n\rsessionDurSec\x18\x05 \x02(\x01\x12\x14\n\x0csessionStart\x18\x06 \x02(\t\x12\x12\n\nsessionIdx\x18\x07 \x02(\x03\x12\x11\n\tstartTime\x18\x08 \x02(\t\"_\n\x18IndicoDashboardSiteStats\x12\x0b\n\x03snr\x18\x01 \x03(\x01\x12\r\n\x05noise\x18\x02 \x03(\x01\x12\x13\n\x0bneuronYield\x18\x03 \x03(\x01\x12\x12\n\nnumNeurons\x18\x04 \x02(\x03\"\x90\x01\n\x18IndicoDashboardPortStats\x12\x0b\n\x03snr\x18\x01 \x03(\x01\x12\r\n\x05noise\x18\x02 \x03(\x01\x12\x13\n\x0bneuronYield\x18\x03 \x03(\x01\x12\x16\n\x0esortEfficiency\x18\x04 \x02(\x01\x12\x17\n\x0fnumEnabledSites\x18\x05 \x02(\x03\x12\x12\n\nnumNeurons\x18\x06 \x02(\x03\"\xd9\x01\n\x1dIndicoDashboardSiteIndicators\x12\x12\n\nntvChanIdx\x18\x01 \x03(\x05\x12\x0b\n\x03snr\x18\x02 \x03(\x01\x12\r\n\x05noise\x18\x03 \x03(\x01\x12\x13\n\x0bneuronYield\x18\x04 \x03(\x01\x12\x16\n\x0esortEfficiency\x18\x05 \x03(\x01\x12\x11\n\tspikeRate\x18\x06 \x03(\x01\x12\x11\n\tposProbeX\x18\x07 \x03(\x01\x12\x11\n\tposProbeY\x18\x08 \x03(\x01\x12\x11\n\tposProbeZ\x18\t \x03(\x01\x12\x0f\n\x07siteNum\x18\n \x03(\x05\"\xb1\x01\n\x1fIndicoDashboardNeuronIndicators\x12\x10\n\x08neuronID\x18\x01 \x03(\t\x12\x0b\n\x03snr\x18\x02 \x03(\x01\x12\x11\n\tspikeRate\x18\x03 \x03(\x01\x12\x11\n\tposProbeX\x18\x04 \x03(\x01\x12\x11\n\tposProbeY\x18\x05 \x03(\x01\x12\x11\n\tposProbeZ\x18\x06 \x03(\x01\x12\x0f\n\x07siteNum\x18\x07 \x03(\x05\x12\x12\n\nspikeLabel\x18\x08 \x03(\x05\"\xa7\x02\n\x1cSpikeSorterDashboardSiteDesc\x12\x1a\n\x04port\x18\x01 \x02(\x0e\x32\x0c.allego.Port\x12\x12\n\nntvChanIdx\x18\x02 \x02(\x05\x12\x10\n\x08posProbe\x18\x03 \x03(\x01\x12\x10\n\x08posBrain\x18\x04 \x03(\x01\x12\x0e\n\x06snrMax\x18\x05 \x02(\x01\x12\x0e\n\x06snrMin\x18\x06 \x02(\x01\x12\x12\n\nnoiseLevel\x18\x07 \x02(\x01\x12\x12\n\nnumNeurons\x18\x08 \x02(\x03\x12/\n\rindicoCluster\x18\n \x03(\x0b\x32\x18.allego.ClusterMapRecord\x12\x1c\n\x14pileWaveformMinValue\x18\r \x02(\x02\x12\x1c\n\x14pileWaveformMaxValue\x18\x0e \x02(\x02\"\xd2\x01\n\x1eSpikeSorterDashboardNeuronDesc\x12\x1a\n\x04port\x18\x01 \x02(\x0e\x32\x0c.allego.Port\x12&\n\x04\x64\x65sc\x18\x02 \x02(\x0b\x32\x18.allego.NeuronDescriptor\x12\x0b\n\x03snr\x18\x05 \x02(\x01\x12\x0f\n\x07IsihMax\x18\x06 \x02(\x01\x12\x15\n\rIsihArgmaxSec\x18\x07 \x02(\x01\x12\x15\n\rIsihArgmaxIdx\x18\x08 \x02(\x03\x12\x10\n\x08IsihMean\x18\t \x02(\x01\x12\x0e\n\x06IsihSd\x18\n \x02(\x01\"\xfa\x01\n SpikeSorterDashboardNeuronDetail\x12&\n\x04\x64\x65sc\x18\x01 \x02(\x0b\x32\x18.allego.NeuronDescriptor\x12\x18\n\x10templateWaveform\x18\x02 \x03(\x02\x12\x1a\n\x12templateSdWaveform\x18\x03 \x03(\x02\x12\x18\n\x10pileWaveformData\x18\x04 \x03(\x02\x12\x1e\n\x16numSamplesPileWaveform\x18\x05 \x02(\x05\x12\x18\n\x10numPileWaveforms\x18\x06 \x02(\x05\x12$\n\x04isih\x18\x0b \x02(\x0b\x32\x16.allego.NeuronHistData\"\xa9\x01\n\x1eSpikeSorterDashboardSiteDetail\x12\x32\n\x04\x64\x65sc\x18\x01 \x02(\x0b\x32$.allego.SpikeSorterDashboardSiteDesc\x12\x19\n\x11orderedSpikeLabel\x18\x02 \x03(\x05\x12\x38\n\x06neuron\x18\x03 \x03(\x0b\x32(.allego.SpikeSorterDashboardNeuronDetail*\x80\x01\n\x0fSpikeSorterType\x12\x0f\n\x0bSORTER_NULL\x10\x00\x12\x15\n\x11SORTER_VEX_STREAM\x10\x01\x12\x18\n\x14SORTER_SPIKES_STREAM\x10\x02\x12\x13\n\x0fSORTER_VEX_FILE\x10\x03\x12\x16\n\x12SORTER_SPIKES_FILE\x10\x04*\xb0\x01\n\x12SpikeSorterCommand\x12\x11\n\rSORTER_CMD_ON\x10\x00\x12\x12\n\x0eSORTER_CMD_OFF\x10\x01\x12\x19\n\x15SORTER_CMD_CLEAR_SORT\x10\x02\x12\x15\n\x11SORTER_CMD_REBASE\x10\x04\x12\x13\n\x0fSORTER_CMD_INIT\x10\x07\x12\x17\n\x13SORTER_CMD_LOCALIZE\x10\x08\x12\x13\n\x0fSORTER_CMD_SORT\x10\t*/\n\x15SpikeSorterSubCommand\x12\x16\n\x12SORTER_SUBCMD_NULL\x10\x00*@\n\x0fSpikeSorterMode\x12\x16\n\x12SORTER_MODE_STREAM\x10\x00\x12\x15\n\x11SORTER_MODE_BATCH\x10\x01*I\n\x16SpikeSorterStateSystem\x12\n\n\x06SYS_ON\x10\x00\x12\x0b\n\x07SYS_OFF\x10\x01\x12\x16\n\x12SYS_NOT_CONFIGURED\x10\x02*f\n\rSpkSortIOtype\x12\x17\n\x13SPK_SORT_IO_NETWORK\x10\x00\x12\x17\n\x13SPK_SORT_IO_TRAINER\x10\x01\x12#\n\x1fSPK_SORT_IO_NETWORK_AND_TRAINER\x10\x02*>\n\x0fSpkSortIOtarget\x12\x14\n\x10SPK_SORT_IO_FSYS\x10\x00\x12\x15\n\x11SPK_SORT_IO_CLOUD\x10\x01*;\n\rSpkSortIOmode\x12\x14\n\x10SPK_SORT_IO_SAVE\x10\x00\x12\x14\n\x10SPK_SORT_IO_LOAD\x10\x01*u\n\x19SpikeSorterCriterionLevel\x12\x10\n\x0cSORTER_LEAST\x10\x00\x12\x0f\n\x0bSORTER_LESS\x10\x01\x12\x13\n\x0fSORTER_BALANCED\x10\x02\x12\x0f\n\x0bSORTER_MORE\x10\x03\x12\x0f\n\x0bSORTER_MOST\x10\x04*}\n\x07SS_STAT\x12\x08\n\x04MEAN\x10\x00\x12\x06\n\x02SD\x10\x01\x12\x08\n\x04MODE\x10\x02\x12\x07\n\x03MIN\x10\x03\x12\x07\n\x03MAX\x10\x04\x12\x0e\n\nMODE_COUNT\x10\x05\x12\n\n\x06MEDIAN\x10\x06\x12\x07\n\x03Q25\x10\x07\x12\x07\n\x03Q75\x10\x08\x12\x08\n\x04SKEW\x10\t\x12\x0c\n\x08KURTOSIS\x10\nB\x15Z\x13internal/radix/grpc')

_SPIKESORTERTYPE = DESCRIPTOR.enum_types_by_name['SpikeSorterType']
SpikeSorterType = enum_type_wrapper.EnumTypeWrapper(_SPIKESORTERTYPE)
_SPIKESORTERCOMMAND = DESCRIPTOR.enum_types_by_name['SpikeSorterCommand']
SpikeSorterCommand = enum_type_wrapper.EnumTypeWrapper(_SPIKESORTERCOMMAND)
_SPIKESORTERSUBCOMMAND = DESCRIPTOR.enum_types_by_name['SpikeSorterSubCommand']
SpikeSorterSubCommand = enum_type_wrapper.EnumTypeWrapper(_SPIKESORTERSUBCOMMAND)
_SPIKESORTERMODE = DESCRIPTOR.enum_types_by_name['SpikeSorterMode']
SpikeSorterMode = enum_type_wrapper.EnumTypeWrapper(_SPIKESORTERMODE)
_SPIKESORTERSTATESYSTEM = DESCRIPTOR.enum_types_by_name['SpikeSorterStateSystem']
SpikeSorterStateSystem = enum_type_wrapper.EnumTypeWrapper(_SPIKESORTERSTATESYSTEM)
_SPKSORTIOTYPE = DESCRIPTOR.enum_types_by_name['SpkSortIOtype']
SpkSortIOtype = enum_type_wrapper.EnumTypeWrapper(_SPKSORTIOTYPE)
_SPKSORTIOTARGET = DESCRIPTOR.enum_types_by_name['SpkSortIOtarget']
SpkSortIOtarget = enum_type_wrapper.EnumTypeWrapper(_SPKSORTIOTARGET)
_SPKSORTIOMODE = DESCRIPTOR.enum_types_by_name['SpkSortIOmode']
SpkSortIOmode = enum_type_wrapper.EnumTypeWrapper(_SPKSORTIOMODE)
_SPIKESORTERCRITERIONLEVEL = DESCRIPTOR.enum_types_by_name['SpikeSorterCriterionLevel']
SpikeSorterCriterionLevel = enum_type_wrapper.EnumTypeWrapper(_SPIKESORTERCRITERIONLEVEL)
_SS_STAT = DESCRIPTOR.enum_types_by_name['SS_STAT']
SS_STAT = enum_type_wrapper.EnumTypeWrapper(_SS_STAT)
SORTER_NULL = 0
SORTER_VEX_STREAM = 1
SORTER_SPIKES_STREAM = 2
SORTER_VEX_FILE = 3
SORTER_SPIKES_FILE = 4
SORTER_CMD_ON = 0
SORTER_CMD_OFF = 1
SORTER_CMD_CLEAR_SORT = 2
SORTER_CMD_REBASE = 4
SORTER_CMD_INIT = 7
SORTER_CMD_LOCALIZE = 8
SORTER_CMD_SORT = 9
SORTER_SUBCMD_NULL = 0
SORTER_MODE_STREAM = 0
SORTER_MODE_BATCH = 1
SYS_ON = 0
SYS_OFF = 1
SYS_NOT_CONFIGURED = 2
SPK_SORT_IO_NETWORK = 0
SPK_SORT_IO_TRAINER = 1
SPK_SORT_IO_NETWORK_AND_TRAINER = 2
SPK_SORT_IO_FSYS = 0
SPK_SORT_IO_CLOUD = 1
SPK_SORT_IO_SAVE = 0
SPK_SORT_IO_LOAD = 1
SORTER_LEAST = 0
SORTER_LESS = 1
SORTER_BALANCED = 2
SORTER_MORE = 3
SORTER_MOST = 4
MEAN = 0
SD = 1
MODE = 2
MIN = 3
MAX = 4
MODE_COUNT = 5
MEDIAN = 6
Q25 = 7
Q75 = 8
SKEW = 9
KURTOSIS = 10


_SPIKESORTERLAUNCHREQUEST = DESCRIPTOR.message_types_by_name['SpikeSorterLaunchRequest']
_SPIKESORTERCOMMANDREQUEST = DESCRIPTOR.message_types_by_name['SpikeSorterCommandRequest']
_SPIKESORTERSTATE = DESCRIPTOR.message_types_by_name['SpikeSorterState']
_SPKSORTIOREQ = DESCRIPTOR.message_types_by_name['SpkSortIOreq']
_SPIKESORTERGETIDSREPLY = DESCRIPTOR.message_types_by_name['SpikeSorterGetIDsReply']
_SPIKESORTERGETRASTERDATAREQUEST = DESCRIPTOR.message_types_by_name['SpikeSorterGetRasterDataRequest']
_SPIKESORTERRASTERDATAREPLY = DESCRIPTOR.message_types_by_name['SpikeSorterRasterDataReply']
_SPIKESORTERSTANDARDREQUEST = DESCRIPTOR.message_types_by_name['SpikeSorterStandardRequest']
_SPIKESORTERGETDASHBOARDREQUEST = DESCRIPTOR.message_types_by_name['SpikeSorterGetDashboardRequest']
_SPIKESORTERDYNAMIC = DESCRIPTOR.message_types_by_name['SpikeSorterDynamic']
_SPIKESORTERDYNAMIC_CRITERIA = _SPIKESORTERDYNAMIC.nested_types_by_name['Criteria']
_SPIKESORTERDYNAMIC_UPDATEPERIODSEC = _SPIKESORTERDYNAMIC.nested_types_by_name['UpdatePeriodSec']
_SPIKESORTERSETDYNAMICREQUEST = DESCRIPTOR.message_types_by_name['SpikeSorterSetDynamicRequest']
_SPIKESORTERSETDYNAMICREQUEST_VARIANTENTRY = _SPIKESORTERSETDYNAMICREQUEST.nested_types_by_name['VariantEntry']
_SPIKESORTERGETDYNAMICREPLY = DESCRIPTOR.message_types_by_name['SpikeSorterGetDynamicReply']
_SPIKESORTERGETDYNAMICREPLY_VARIANTENTRY = _SPIKESORTERGETDYNAMICREPLY.nested_types_by_name['VariantEntry']
_GETSPIKESORTERPARAMCOMMANDREPLY = DESCRIPTOR.message_types_by_name['GetSpikeSorterParamCommandReply']
_CLUSTERMAPOUTLIERS = DESCRIPTOR.message_types_by_name['ClusterMapOutliers']
_CLUSTERMAPQUARTILES = DESCRIPTOR.message_types_by_name['ClusterMapQuartiles']
_CLUSTERMAPSTATS = DESCRIPTOR.message_types_by_name['ClusterMapStats']
_CLUSTERMAPRECORD = DESCRIPTOR.message_types_by_name['ClusterMapRecord']
_SPIKESORTSITESTATUS = DESCRIPTOR.message_types_by_name['SpikeSortSiteStatus']
_SPIKESORTPHASESTATUS = DESCRIPTOR.message_types_by_name['SpikeSortPhaseStatus']
_SPIKESORTNBRIDXLIST = DESCRIPTOR.message_types_by_name['SpikeSortNbrIdxList']
_SPIKESORTERSTATUSREPLY = DESCRIPTOR.message_types_by_name['SpikeSorterStatusReply']
_SPIKESORTERSTATUSVARIANTSREPLY = DESCRIPTOR.message_types_by_name['SpikeSorterStatusVariantsReply']
_SPIKESORTERCLASSIFIERSPEC = DESCRIPTOR.message_types_by_name['SpikeSorterClassifierSpec']
_SPIKESORTERVARIANTSPEC = DESCRIPTOR.message_types_by_name['SpikeSorterVariantSpec']
_SPIKESORTERSPEC = DESCRIPTOR.message_types_by_name['SpikeSorterSpec']
_SPIKESORTERGETCONFIGREPLY = DESCRIPTOR.message_types_by_name['SpikeSorterGetConfigReply']
_SPIKESORTERVIZREQUEST = DESCRIPTOR.message_types_by_name['SpikeSorterVizRequest']
_SPIKESORTERGETDASHBOARDREPLY = DESCRIPTOR.message_types_by_name['SpikeSorterGetDashboardReply']
_SPIKESORTERGETDASHBOARDREPLY_PORTSTATSENTRY = _SPIKESORTERGETDASHBOARDREPLY.nested_types_by_name['PortStatsEntry']
_SPIKESORTERGETDASHBOARDREPLY_SITEPANELENTRY = _SPIKESORTERGETDASHBOARDREPLY.nested_types_by_name['SitePanelEntry']
_SPIKESORTERGETDASHBOARDREPLY_NEURONPANELENTRY = _SPIKESORTERGETDASHBOARDREPLY.nested_types_by_name['NeuronPanelEntry']
_SPIKESORTERDASHBOARDGENERALREC = DESCRIPTOR.message_types_by_name['SpikeSorterDashboardGeneralRec']
_SPIKESORTERDASHBOARDAI = DESCRIPTOR.message_types_by_name['SpikeSorterDashboardAI']
_INDICODASHBOARDSITESTATS = DESCRIPTOR.message_types_by_name['IndicoDashboardSiteStats']
_INDICODASHBOARDPORTSTATS = DESCRIPTOR.message_types_by_name['IndicoDashboardPortStats']
_INDICODASHBOARDSITEINDICATORS = DESCRIPTOR.message_types_by_name['IndicoDashboardSiteIndicators']
_INDICODASHBOARDNEURONINDICATORS = DESCRIPTOR.message_types_by_name['IndicoDashboardNeuronIndicators']
_SPIKESORTERDASHBOARDSITEDESC = DESCRIPTOR.message_types_by_name['SpikeSorterDashboardSiteDesc']
_SPIKESORTERDASHBOARDNEURONDESC = DESCRIPTOR.message_types_by_name['SpikeSorterDashboardNeuronDesc']
_SPIKESORTERDASHBOARDNEURONDETAIL = DESCRIPTOR.message_types_by_name['SpikeSorterDashboardNeuronDetail']
_SPIKESORTERDASHBOARDSITEDETAIL = DESCRIPTOR.message_types_by_name['SpikeSorterDashboardSiteDetail']
_SPIKESORTERVIZREQUEST_VTYPE = _SPIKESORTERVIZREQUEST.enum_types_by_name['VType']
SpikeSorterLaunchRequest = _reflection.GeneratedProtocolMessageType('SpikeSorterLaunchRequest', (_message.Message,), {
  'DESCRIPTOR' : _SPIKESORTERLAUNCHREQUEST,
  '__module__' : 'spikesorter_pb2'
  # @@protoc_insertion_point(class_scope:allego.SpikeSorterLaunchRequest)
  })
_sym_db.RegisterMessage(SpikeSorterLaunchRequest)

SpikeSorterCommandRequest = _reflection.GeneratedProtocolMessageType('SpikeSorterCommandRequest', (_message.Message,), {
  'DESCRIPTOR' : _SPIKESORTERCOMMANDREQUEST,
  '__module__' : 'spikesorter_pb2'
  # @@protoc_insertion_point(class_scope:allego.SpikeSorterCommandRequest)
  })
_sym_db.RegisterMessage(SpikeSorterCommandRequest)

SpikeSorterState = _reflection.GeneratedProtocolMessageType('SpikeSorterState', (_message.Message,), {
  'DESCRIPTOR' : _SPIKESORTERSTATE,
  '__module__' : 'spikesorter_pb2'
  # @@protoc_insertion_point(class_scope:allego.SpikeSorterState)
  })
_sym_db.RegisterMessage(SpikeSorterState)

SpkSortIOreq = _reflection.GeneratedProtocolMessageType('SpkSortIOreq', (_message.Message,), {
  'DESCRIPTOR' : _SPKSORTIOREQ,
  '__module__' : 'spikesorter_pb2'
  # @@protoc_insertion_point(class_scope:allego.SpkSortIOreq)
  })
_sym_db.RegisterMessage(SpkSortIOreq)

SpikeSorterGetIDsReply = _reflection.GeneratedProtocolMessageType('SpikeSorterGetIDsReply', (_message.Message,), {
  'DESCRIPTOR' : _SPIKESORTERGETIDSREPLY,
  '__module__' : 'spikesorter_pb2'
  # @@protoc_insertion_point(class_scope:allego.SpikeSorterGetIDsReply)
  })
_sym_db.RegisterMessage(SpikeSorterGetIDsReply)

SpikeSorterGetRasterDataRequest = _reflection.GeneratedProtocolMessageType('SpikeSorterGetRasterDataRequest', (_message.Message,), {
  'DESCRIPTOR' : _SPIKESORTERGETRASTERDATAREQUEST,
  '__module__' : 'spikesorter_pb2'
  # @@protoc_insertion_point(class_scope:allego.SpikeSorterGetRasterDataRequest)
  })
_sym_db.RegisterMessage(SpikeSorterGetRasterDataRequest)

SpikeSorterRasterDataReply = _reflection.GeneratedProtocolMessageType('SpikeSorterRasterDataReply', (_message.Message,), {
  'DESCRIPTOR' : _SPIKESORTERRASTERDATAREPLY,
  '__module__' : 'spikesorter_pb2'
  # @@protoc_insertion_point(class_scope:allego.SpikeSorterRasterDataReply)
  })
_sym_db.RegisterMessage(SpikeSorterRasterDataReply)

SpikeSorterStandardRequest = _reflection.GeneratedProtocolMessageType('SpikeSorterStandardRequest', (_message.Message,), {
  'DESCRIPTOR' : _SPIKESORTERSTANDARDREQUEST,
  '__module__' : 'spikesorter_pb2'
  # @@protoc_insertion_point(class_scope:allego.SpikeSorterStandardRequest)
  })
_sym_db.RegisterMessage(SpikeSorterStandardRequest)

SpikeSorterGetDashboardRequest = _reflection.GeneratedProtocolMessageType('SpikeSorterGetDashboardRequest', (_message.Message,), {
  'DESCRIPTOR' : _SPIKESORTERGETDASHBOARDREQUEST,
  '__module__' : 'spikesorter_pb2'
  # @@protoc_insertion_point(class_scope:allego.SpikeSorterGetDashboardRequest)
  })
_sym_db.RegisterMessage(SpikeSorterGetDashboardRequest)

SpikeSorterDynamic = _reflection.GeneratedProtocolMessageType('SpikeSorterDynamic', (_message.Message,), {

  'Criteria' : _reflection.GeneratedProtocolMessageType('Criteria', (_message.Message,), {
    'DESCRIPTOR' : _SPIKESORTERDYNAMIC_CRITERIA,
    '__module__' : 'spikesorter_pb2'
    # @@protoc_insertion_point(class_scope:allego.SpikeSorterDynamic.Criteria)
    })
  ,

  'UpdatePeriodSec' : _reflection.GeneratedProtocolMessageType('UpdatePeriodSec', (_message.Message,), {
    'DESCRIPTOR' : _SPIKESORTERDYNAMIC_UPDATEPERIODSEC,
    '__module__' : 'spikesorter_pb2'
    # @@protoc_insertion_point(class_scope:allego.SpikeSorterDynamic.UpdatePeriodSec)
    })
  ,
  'DESCRIPTOR' : _SPIKESORTERDYNAMIC,
  '__module__' : 'spikesorter_pb2'
  # @@protoc_insertion_point(class_scope:allego.SpikeSorterDynamic)
  })
_sym_db.RegisterMessage(SpikeSorterDynamic)
_sym_db.RegisterMessage(SpikeSorterDynamic.Criteria)
_sym_db.RegisterMessage(SpikeSorterDynamic.UpdatePeriodSec)

SpikeSorterSetDynamicRequest = _reflection.GeneratedProtocolMessageType('SpikeSorterSetDynamicRequest', (_message.Message,), {

  'VariantEntry' : _reflection.GeneratedProtocolMessageType('VariantEntry', (_message.Message,), {
    'DESCRIPTOR' : _SPIKESORTERSETDYNAMICREQUEST_VARIANTENTRY,
    '__module__' : 'spikesorter_pb2'
    # @@protoc_insertion_point(class_scope:allego.SpikeSorterSetDynamicRequest.VariantEntry)
    })
  ,
  'DESCRIPTOR' : _SPIKESORTERSETDYNAMICREQUEST,
  '__module__' : 'spikesorter_pb2'
  # @@protoc_insertion_point(class_scope:allego.SpikeSorterSetDynamicRequest)
  })
_sym_db.RegisterMessage(SpikeSorterSetDynamicRequest)
_sym_db.RegisterMessage(SpikeSorterSetDynamicRequest.VariantEntry)

SpikeSorterGetDynamicReply = _reflection.GeneratedProtocolMessageType('SpikeSorterGetDynamicReply', (_message.Message,), {

  'VariantEntry' : _reflection.GeneratedProtocolMessageType('VariantEntry', (_message.Message,), {
    'DESCRIPTOR' : _SPIKESORTERGETDYNAMICREPLY_VARIANTENTRY,
    '__module__' : 'spikesorter_pb2'
    # @@protoc_insertion_point(class_scope:allego.SpikeSorterGetDynamicReply.VariantEntry)
    })
  ,
  'DESCRIPTOR' : _SPIKESORTERGETDYNAMICREPLY,
  '__module__' : 'spikesorter_pb2'
  # @@protoc_insertion_point(class_scope:allego.SpikeSorterGetDynamicReply)
  })
_sym_db.RegisterMessage(SpikeSorterGetDynamicReply)
_sym_db.RegisterMessage(SpikeSorterGetDynamicReply.VariantEntry)

GetSpikeSorterParamCommandReply = _reflection.GeneratedProtocolMessageType('GetSpikeSorterParamCommandReply', (_message.Message,), {
  'DESCRIPTOR' : _GETSPIKESORTERPARAMCOMMANDREPLY,
  '__module__' : 'spikesorter_pb2'
  # @@protoc_insertion_point(class_scope:allego.GetSpikeSorterParamCommandReply)
  })
_sym_db.RegisterMessage(GetSpikeSorterParamCommandReply)

ClusterMapOutliers = _reflection.GeneratedProtocolMessageType('ClusterMapOutliers', (_message.Message,), {
  'DESCRIPTOR' : _CLUSTERMAPOUTLIERS,
  '__module__' : 'spikesorter_pb2'
  # @@protoc_insertion_point(class_scope:allego.ClusterMapOutliers)
  })
_sym_db.RegisterMessage(ClusterMapOutliers)

ClusterMapQuartiles = _reflection.GeneratedProtocolMessageType('ClusterMapQuartiles', (_message.Message,), {
  'DESCRIPTOR' : _CLUSTERMAPQUARTILES,
  '__module__' : 'spikesorter_pb2'
  # @@protoc_insertion_point(class_scope:allego.ClusterMapQuartiles)
  })
_sym_db.RegisterMessage(ClusterMapQuartiles)

ClusterMapStats = _reflection.GeneratedProtocolMessageType('ClusterMapStats', (_message.Message,), {
  'DESCRIPTOR' : _CLUSTERMAPSTATS,
  '__module__' : 'spikesorter_pb2'
  # @@protoc_insertion_point(class_scope:allego.ClusterMapStats)
  })
_sym_db.RegisterMessage(ClusterMapStats)

ClusterMapRecord = _reflection.GeneratedProtocolMessageType('ClusterMapRecord', (_message.Message,), {
  'DESCRIPTOR' : _CLUSTERMAPRECORD,
  '__module__' : 'spikesorter_pb2'
  # @@protoc_insertion_point(class_scope:allego.ClusterMapRecord)
  })
_sym_db.RegisterMessage(ClusterMapRecord)

SpikeSortSiteStatus = _reflection.GeneratedProtocolMessageType('SpikeSortSiteStatus', (_message.Message,), {
  'DESCRIPTOR' : _SPIKESORTSITESTATUS,
  '__module__' : 'spikesorter_pb2'
  # @@protoc_insertion_point(class_scope:allego.SpikeSortSiteStatus)
  })
_sym_db.RegisterMessage(SpikeSortSiteStatus)

SpikeSortPhaseStatus = _reflection.GeneratedProtocolMessageType('SpikeSortPhaseStatus', (_message.Message,), {
  'DESCRIPTOR' : _SPIKESORTPHASESTATUS,
  '__module__' : 'spikesorter_pb2'
  # @@protoc_insertion_point(class_scope:allego.SpikeSortPhaseStatus)
  })
_sym_db.RegisterMessage(SpikeSortPhaseStatus)

SpikeSortNbrIdxList = _reflection.GeneratedProtocolMessageType('SpikeSortNbrIdxList', (_message.Message,), {
  'DESCRIPTOR' : _SPIKESORTNBRIDXLIST,
  '__module__' : 'spikesorter_pb2'
  # @@protoc_insertion_point(class_scope:allego.SpikeSortNbrIdxList)
  })
_sym_db.RegisterMessage(SpikeSortNbrIdxList)

SpikeSorterStatusReply = _reflection.GeneratedProtocolMessageType('SpikeSorterStatusReply', (_message.Message,), {
  'DESCRIPTOR' : _SPIKESORTERSTATUSREPLY,
  '__module__' : 'spikesorter_pb2'
  # @@protoc_insertion_point(class_scope:allego.SpikeSorterStatusReply)
  })
_sym_db.RegisterMessage(SpikeSorterStatusReply)

SpikeSorterStatusVariantsReply = _reflection.GeneratedProtocolMessageType('SpikeSorterStatusVariantsReply', (_message.Message,), {
  'DESCRIPTOR' : _SPIKESORTERSTATUSVARIANTSREPLY,
  '__module__' : 'spikesorter_pb2'
  # @@protoc_insertion_point(class_scope:allego.SpikeSorterStatusVariantsReply)
  })
_sym_db.RegisterMessage(SpikeSorterStatusVariantsReply)

SpikeSorterClassifierSpec = _reflection.GeneratedProtocolMessageType('SpikeSorterClassifierSpec', (_message.Message,), {
  'DESCRIPTOR' : _SPIKESORTERCLASSIFIERSPEC,
  '__module__' : 'spikesorter_pb2'
  # @@protoc_insertion_point(class_scope:allego.SpikeSorterClassifierSpec)
  })
_sym_db.RegisterMessage(SpikeSorterClassifierSpec)

SpikeSorterVariantSpec = _reflection.GeneratedProtocolMessageType('SpikeSorterVariantSpec', (_message.Message,), {
  'DESCRIPTOR' : _SPIKESORTERVARIANTSPEC,
  '__module__' : 'spikesorter_pb2'
  # @@protoc_insertion_point(class_scope:allego.SpikeSorterVariantSpec)
  })
_sym_db.RegisterMessage(SpikeSorterVariantSpec)

SpikeSorterSpec = _reflection.GeneratedProtocolMessageType('SpikeSorterSpec', (_message.Message,), {
  'DESCRIPTOR' : _SPIKESORTERSPEC,
  '__module__' : 'spikesorter_pb2'
  # @@protoc_insertion_point(class_scope:allego.SpikeSorterSpec)
  })
_sym_db.RegisterMessage(SpikeSorterSpec)

SpikeSorterGetConfigReply = _reflection.GeneratedProtocolMessageType('SpikeSorterGetConfigReply', (_message.Message,), {
  'DESCRIPTOR' : _SPIKESORTERGETCONFIGREPLY,
  '__module__' : 'spikesorter_pb2'
  # @@protoc_insertion_point(class_scope:allego.SpikeSorterGetConfigReply)
  })
_sym_db.RegisterMessage(SpikeSorterGetConfigReply)

SpikeSorterVizRequest = _reflection.GeneratedProtocolMessageType('SpikeSorterVizRequest', (_message.Message,), {
  'DESCRIPTOR' : _SPIKESORTERVIZREQUEST,
  '__module__' : 'spikesorter_pb2'
  # @@protoc_insertion_point(class_scope:allego.SpikeSorterVizRequest)
  })
_sym_db.RegisterMessage(SpikeSorterVizRequest)

SpikeSorterGetDashboardReply = _reflection.GeneratedProtocolMessageType('SpikeSorterGetDashboardReply', (_message.Message,), {

  'PortStatsEntry' : _reflection.GeneratedProtocolMessageType('PortStatsEntry', (_message.Message,), {
    'DESCRIPTOR' : _SPIKESORTERGETDASHBOARDREPLY_PORTSTATSENTRY,
    '__module__' : 'spikesorter_pb2'
    # @@protoc_insertion_point(class_scope:allego.SpikeSorterGetDashboardReply.PortStatsEntry)
    })
  ,

  'SitePanelEntry' : _reflection.GeneratedProtocolMessageType('SitePanelEntry', (_message.Message,), {
    'DESCRIPTOR' : _SPIKESORTERGETDASHBOARDREPLY_SITEPANELENTRY,
    '__module__' : 'spikesorter_pb2'
    # @@protoc_insertion_point(class_scope:allego.SpikeSorterGetDashboardReply.SitePanelEntry)
    })
  ,

  'NeuronPanelEntry' : _reflection.GeneratedProtocolMessageType('NeuronPanelEntry', (_message.Message,), {
    'DESCRIPTOR' : _SPIKESORTERGETDASHBOARDREPLY_NEURONPANELENTRY,
    '__module__' : 'spikesorter_pb2'
    # @@protoc_insertion_point(class_scope:allego.SpikeSorterGetDashboardReply.NeuronPanelEntry)
    })
  ,
  'DESCRIPTOR' : _SPIKESORTERGETDASHBOARDREPLY,
  '__module__' : 'spikesorter_pb2'
  # @@protoc_insertion_point(class_scope:allego.SpikeSorterGetDashboardReply)
  })
_sym_db.RegisterMessage(SpikeSorterGetDashboardReply)
_sym_db.RegisterMessage(SpikeSorterGetDashboardReply.PortStatsEntry)
_sym_db.RegisterMessage(SpikeSorterGetDashboardReply.SitePanelEntry)
_sym_db.RegisterMessage(SpikeSorterGetDashboardReply.NeuronPanelEntry)

SpikeSorterDashboardGeneralRec = _reflection.GeneratedProtocolMessageType('SpikeSorterDashboardGeneralRec', (_message.Message,), {
  'DESCRIPTOR' : _SPIKESORTERDASHBOARDGENERALREC,
  '__module__' : 'spikesorter_pb2'
  # @@protoc_insertion_point(class_scope:allego.SpikeSorterDashboardGeneralRec)
  })
_sym_db.RegisterMessage(SpikeSorterDashboardGeneralRec)

SpikeSorterDashboardAI = _reflection.GeneratedProtocolMessageType('SpikeSorterDashboardAI', (_message.Message,), {
  'DESCRIPTOR' : _SPIKESORTERDASHBOARDAI,
  '__module__' : 'spikesorter_pb2'
  # @@protoc_insertion_point(class_scope:allego.SpikeSorterDashboardAI)
  })
_sym_db.RegisterMessage(SpikeSorterDashboardAI)

IndicoDashboardSiteStats = _reflection.GeneratedProtocolMessageType('IndicoDashboardSiteStats', (_message.Message,), {
  'DESCRIPTOR' : _INDICODASHBOARDSITESTATS,
  '__module__' : 'spikesorter_pb2'
  # @@protoc_insertion_point(class_scope:allego.IndicoDashboardSiteStats)
  })
_sym_db.RegisterMessage(IndicoDashboardSiteStats)

IndicoDashboardPortStats = _reflection.GeneratedProtocolMessageType('IndicoDashboardPortStats', (_message.Message,), {
  'DESCRIPTOR' : _INDICODASHBOARDPORTSTATS,
  '__module__' : 'spikesorter_pb2'
  # @@protoc_insertion_point(class_scope:allego.IndicoDashboardPortStats)
  })
_sym_db.RegisterMessage(IndicoDashboardPortStats)

IndicoDashboardSiteIndicators = _reflection.GeneratedProtocolMessageType('IndicoDashboardSiteIndicators', (_message.Message,), {
  'DESCRIPTOR' : _INDICODASHBOARDSITEINDICATORS,
  '__module__' : 'spikesorter_pb2'
  # @@protoc_insertion_point(class_scope:allego.IndicoDashboardSiteIndicators)
  })
_sym_db.RegisterMessage(IndicoDashboardSiteIndicators)

IndicoDashboardNeuronIndicators = _reflection.GeneratedProtocolMessageType('IndicoDashboardNeuronIndicators', (_message.Message,), {
  'DESCRIPTOR' : _INDICODASHBOARDNEURONINDICATORS,
  '__module__' : 'spikesorter_pb2'
  # @@protoc_insertion_point(class_scope:allego.IndicoDashboardNeuronIndicators)
  })
_sym_db.RegisterMessage(IndicoDashboardNeuronIndicators)

SpikeSorterDashboardSiteDesc = _reflection.GeneratedProtocolMessageType('SpikeSorterDashboardSiteDesc', (_message.Message,), {
  'DESCRIPTOR' : _SPIKESORTERDASHBOARDSITEDESC,
  '__module__' : 'spikesorter_pb2'
  # @@protoc_insertion_point(class_scope:allego.SpikeSorterDashboardSiteDesc)
  })
_sym_db.RegisterMessage(SpikeSorterDashboardSiteDesc)

SpikeSorterDashboardNeuronDesc = _reflection.GeneratedProtocolMessageType('SpikeSorterDashboardNeuronDesc', (_message.Message,), {
  'DESCRIPTOR' : _SPIKESORTERDASHBOARDNEURONDESC,
  '__module__' : 'spikesorter_pb2'
  # @@protoc_insertion_point(class_scope:allego.SpikeSorterDashboardNeuronDesc)
  })
_sym_db.RegisterMessage(SpikeSorterDashboardNeuronDesc)

SpikeSorterDashboardNeuronDetail = _reflection.GeneratedProtocolMessageType('SpikeSorterDashboardNeuronDetail', (_message.Message,), {
  'DESCRIPTOR' : _SPIKESORTERDASHBOARDNEURONDETAIL,
  '__module__' : 'spikesorter_pb2'
  # @@protoc_insertion_point(class_scope:allego.SpikeSorterDashboardNeuronDetail)
  })
_sym_db.RegisterMessage(SpikeSorterDashboardNeuronDetail)

SpikeSorterDashboardSiteDetail = _reflection.GeneratedProtocolMessageType('SpikeSorterDashboardSiteDetail', (_message.Message,), {
  'DESCRIPTOR' : _SPIKESORTERDASHBOARDSITEDETAIL,
  '__module__' : 'spikesorter_pb2'
  # @@protoc_insertion_point(class_scope:allego.SpikeSorterDashboardSiteDetail)
  })
_sym_db.RegisterMessage(SpikeSorterDashboardSiteDetail)

if _descriptor._USE_C_DESCRIPTORS == False:

  DESCRIPTOR._options = None
  DESCRIPTOR._serialized_options = b'Z\023internal/radix/grpc'
  _SPIKESORTERSETDYNAMICREQUEST_VARIANTENTRY._options = None
  _SPIKESORTERSETDYNAMICREQUEST_VARIANTENTRY._serialized_options = b'8\001'
  _SPIKESORTERGETDYNAMICREPLY_VARIANTENTRY._options = None
  _SPIKESORTERGETDYNAMICREPLY_VARIANTENTRY._serialized_options = b'8\001'
  _SPIKESORTERGETDASHBOARDREPLY_PORTSTATSENTRY._options = None
  _SPIKESORTERGETDASHBOARDREPLY_PORTSTATSENTRY._serialized_options = b'8\001'
  _SPIKESORTERGETDASHBOARDREPLY_SITEPANELENTRY._options = None
  _SPIKESORTERGETDASHBOARDREPLY_SITEPANELENTRY._serialized_options = b'8\001'
  _SPIKESORTERGETDASHBOARDREPLY_NEURONPANELENTRY._options = None
  _SPIKESORTERGETDASHBOARDREPLY_NEURONPANELENTRY._serialized_options = b'8\001'
  _SPIKESORTERTYPE._serialized_start=7556
  _SPIKESORTERTYPE._serialized_end=7684
  _SPIKESORTERCOMMAND._serialized_start=7687
  _SPIKESORTERCOMMAND._serialized_end=7863
  _SPIKESORTERSUBCOMMAND._serialized_start=7865
  _SPIKESORTERSUBCOMMAND._serialized_end=7912
  _SPIKESORTERMODE._serialized_start=7914
  _SPIKESORTERMODE._serialized_end=7978
  _SPIKESORTERSTATESYSTEM._serialized_start=7980
  _SPIKESORTERSTATESYSTEM._serialized_end=8053
  _SPKSORTIOTYPE._serialized_start=8055
  _SPKSORTIOTYPE._serialized_end=8157
  _SPKSORTIOTARGET._serialized_start=8159
  _SPKSORTIOTARGET._serialized_end=8221
  _SPKSORTIOMODE._serialized_start=8223
  _SPKSORTIOMODE._serialized_end=8282
  _SPIKESORTERCRITERIONLEVEL._serialized_start=8284
  _SPIKESORTERCRITERIONLEVEL._serialized_end=8401
  _SS_STAT._serialized_start=8403
  _SS_STAT._serialized_end=8528
  _SPIKESORTERLAUNCHREQUEST._serialized_start=64
  _SPIKESORTERLAUNCHREQUEST._serialized_end=324
  _SPIKESORTERCOMMANDREQUEST._serialized_start=327
  _SPIKESORTERCOMMANDREQUEST._serialized_end=465
  _SPIKESORTERSTATE._serialized_start=468
  _SPIKESORTERSTATE._serialized_end=661
  _SPKSORTIOREQ._serialized_start=664
  _SPKSORTIOREQ._serialized_end=793
  _SPIKESORTERGETIDSREPLY._serialized_start=795
  _SPIKESORTERGETIDSREPLY._serialized_end=900
  _SPIKESORTERGETRASTERDATAREQUEST._serialized_start=903
  _SPIKESORTERGETRASTERDATAREQUEST._serialized_end=1064
  _SPIKESORTERRASTERDATAREPLY._serialized_start=1067
  _SPIKESORTERRASTERDATAREPLY._serialized_end=1237
  _SPIKESORTERSTANDARDREQUEST._serialized_start=1239
  _SPIKESORTERSTANDARDREQUEST._serialized_end=1290
  _SPIKESORTERGETDASHBOARDREQUEST._serialized_start=1292
  _SPIKESORTERGETDASHBOARDREQUEST._serialized_end=1370
  _SPIKESORTERDYNAMIC._serialized_start=1373
  _SPIKESORTERDYNAMIC._serialized_end=1763
  _SPIKESORTERDYNAMIC_CRITERIA._serialized_start=1539
  _SPIKESORTERDYNAMIC_CRITERIA._serialized_end=1699
  _SPIKESORTERDYNAMIC_UPDATEPERIODSEC._serialized_start=1701
  _SPIKESORTERDYNAMIC_UPDATEPERIODSEC._serialized_end=1763
  _SPIKESORTERSETDYNAMICREQUEST._serialized_start=1766
  _SPIKESORTERSETDYNAMICREQUEST._serialized_end=1963
  _SPIKESORTERSETDYNAMICREQUEST_VARIANTENTRY._serialized_start=1889
  _SPIKESORTERSETDYNAMICREQUEST_VARIANTENTRY._serialized_end=1963
  _SPIKESORTERGETDYNAMICREPLY._serialized_start=1966
  _SPIKESORTERGETDYNAMICREPLY._serialized_end=2182
  _SPIKESORTERGETDYNAMICREPLY_VARIANTENTRY._serialized_start=1889
  _SPIKESORTERGETDYNAMICREPLY_VARIANTENTRY._serialized_end=1963
  _GETSPIKESORTERPARAMCOMMANDREPLY._serialized_start=2184
  _GETSPIKESORTERPARAMCOMMANDREPLY._serialized_end=2292
  _CLUSTERMAPOUTLIERS._serialized_start=2294
  _CLUSTERMAPOUTLIERS._serialized_end=2345
  _CLUSTERMAPQUARTILES._serialized_start=2347
  _CLUSTERMAPQUARTILES._serialized_end=2404
  _CLUSTERMAPSTATS._serialized_start=2407
  _CLUSTERMAPSTATS._serialized_end=2538
  _CLUSTERMAPRECORD._serialized_start=2540
  _CLUSTERMAPRECORD._serialized_end=2642
  _SPIKESORTSITESTATUS._serialized_start=2645
  _SPIKESORTSITESTATUS._serialized_end=2813
  _SPIKESORTPHASESTATUS._serialized_start=2816
  _SPIKESORTPHASESTATUS._serialized_end=2959
  _SPIKESORTNBRIDXLIST._serialized_start=2961
  _SPIKESORTNBRIDXLIST._serialized_end=3003
  _SPIKESORTERSTATUSREPLY._serialized_start=3006
  _SPIKESORTERSTATUSREPLY._serialized_end=3376
  _SPIKESORTERSTATUSVARIANTSREPLY._serialized_start=3378
  _SPIKESORTERSTATUSVARIANTSREPLY._serialized_end=3460
  _SPIKESORTERCLASSIFIERSPEC._serialized_start=3463
  _SPIKESORTERCLASSIFIERSPEC._serialized_end=3844
  _SPIKESORTERVARIANTSPEC._serialized_start=3846
  _SPIKESORTERVARIANTSPEC._serialized_end=3963
  _SPIKESORTERSPEC._serialized_start=3966
  _SPIKESORTERSPEC._serialized_end=4170
  _SPIKESORTERGETCONFIGREPLY._serialized_start=4173
  _SPIKESORTERGETCONFIGREPLY._serialized_end=4367
  _SPIKESORTERVIZREQUEST._serialized_start=4370
  _SPIKESORTERVIZREQUEST._serialized_end=4642
  _SPIKESORTERVIZREQUEST_VTYPE._serialized_start=4603
  _SPIKESORTERVIZREQUEST_VTYPE._serialized_end=4642
  _SPIKESORTERGETDASHBOARDREPLY._serialized_start=4645
  _SPIKESORTERGETDASHBOARDREPLY._serialized_end=5351
  _SPIKESORTERGETDASHBOARDREPLY_PORTSTATSENTRY._serialized_start=5087
  _SPIKESORTERGETDASHBOARDREPLY_PORTSTATSENTRY._serialized_end=5169
  _SPIKESORTERGETDASHBOARDREPLY_SITEPANELENTRY._serialized_start=5171
  _SPIKESORTERGETDASHBOARDREPLY_SITEPANELENTRY._serialized_end=5258
  _SPIKESORTERGETDASHBOARDREPLY_NEURONPANELENTRY._serialized_start=5260
  _SPIKESORTERGETDASHBOARDREPLY_NEURONPANELENTRY._serialized_end=5351
  _SPIKESORTERDASHBOARDGENERALREC._serialized_start=5354
  _SPIKESORTERDASHBOARDGENERALREC._serialized_end=5757
  _SPIKESORTERDASHBOARDAI._serialized_start=5760
  _SPIKESORTERDASHBOARDAI._serialized_end=5973
  _INDICODASHBOARDSITESTATS._serialized_start=5975
  _INDICODASHBOARDSITESTATS._serialized_end=6070
  _INDICODASHBOARDPORTSTATS._serialized_start=6073
  _INDICODASHBOARDPORTSTATS._serialized_end=6217
  _INDICODASHBOARDSITEINDICATORS._serialized_start=6220
  _INDICODASHBOARDSITEINDICATORS._serialized_end=6437
  _INDICODASHBOARDNEURONINDICATORS._serialized_start=6440
  _INDICODASHBOARDNEURONINDICATORS._serialized_end=6617
  _SPIKESORTERDASHBOARDSITEDESC._serialized_start=6620
  _SPIKESORTERDASHBOARDSITEDESC._serialized_end=6915
  _SPIKESORTERDASHBOARDNEURONDESC._serialized_start=6918
  _SPIKESORTERDASHBOARDNEURONDESC._serialized_end=7128
  _SPIKESORTERDASHBOARDNEURONDETAIL._serialized_start=7131
  _SPIKESORTERDASHBOARDNEURONDETAIL._serialized_end=7381
  _SPIKESORTERDASHBOARDSITEDETAIL._serialized_start=7384
  _SPIKESORTERDASHBOARDSITEDETAIL._serialized_end=7553
# @@protoc_insertion_point(module_scope)
