From 119576628591b1f7cac055a1a4d9fa939dbde298 Mon Sep 17 00:00:00 2001 From: MinKNOW bot Date: Wed, 31 Jul 2024 11:45:51 +0000 Subject: [PATCH] Version 6.0.4 bump --- dev-requirements.txt | 4 +- proto/minknow_api/acquisition.proto | 12 + .../minknow_api/analysis_configuration.proto | 106 +- proto/minknow_api/analysis_workflows.proto | 38 + proto/minknow_api/basecaller.proto | 19 +- proto/minknow_api/data.proto | 45 +- proto/minknow_api/device.proto | 34 + proto/minknow_api/instance.proto | 12 +- proto/minknow_api/manager.proto | 125 +- proto/minknow_api/protocol.proto | 254 ++- proto/minknow_api/statistics.proto | 10 +- python/minknow_api/__init__.py | 14 +- python/minknow_api/_support.py | 4 +- python/minknow_api/_version.py | 2 +- python/minknow_api/acquisition_pb2.py | 783 ++++----- .../minknow_api/analysis_configuration_pb2.py | 1434 +++++++++-------- .../analysis_configuration_service.py | 42 +- python/minknow_api/analysis_workflows_pb2.py | 47 + .../analysis_workflows_pb2_grpc.py | 66 + .../minknow_api/analysis_workflows_service.py | 104 ++ python/minknow_api/basecaller_pb2.py | 542 ++++--- python/minknow_api/basecaller_service.py | 13 +- python/minknow_api/ca.crt | 60 +- python/minknow_api/data_pb2.py | 783 ++++----- python/minknow_api/data_pb2_grpc.py | 37 +- python/minknow_api/data_service.py | 64 +- python/minknow_api/device.py | 7 +- python/minknow_api/device_pb2.py | 1065 ++++++------ python/minknow_api/examples/export_to_csv.py | 6 +- .../examples/extract_run_statistics.py | 15 +- .../minknow_api/examples/load_sample_sheet.py | 35 - .../examples/run_after_protocol.py | 11 +- python/minknow_api/examples/start_protocol.py | 21 +- python/minknow_api/instance_pb2.py | 251 ++- python/minknow_api/keystore_pb2.py | 50 +- python/minknow_api/log_pb2.py | 20 +- python/minknow_api/manager.py | 8 +- python/minknow_api/manager_pb2.py | 1062 ++++++------ python/minknow_api/manager_pb2_grpc.py | 42 +- python/minknow_api/manager_service.py | 50 +- python/minknow_api/minion_device_pb2.py | 38 +- python/minknow_api/promethion_device_pb2.py | 236 +-- python/minknow_api/protocol_pb2.py | 995 ++++++------ python/minknow_api/protocol_pb2_grpc.py | 53 + python/minknow_api/protocol_service.py | 83 + python/minknow_api/report_data_pb2.py | 4 +- python/minknow_api/run_until_pb2.py | 74 +- python/minknow_api/statistics_pb2.py | 739 ++++----- python/minknow_api/testutils.py | 1 + python/minknow_api/tools/any_helpers.py | 1 - python/minknow_api/tools/protocols.py | 34 +- .../conflicting_barcoding_columns.csv | 2 +- .../sample_sheets/bad_records/fip_barcode.csv | 2 - .../bad_records/rapid_barcode.csv | 2 - .../sample_sheets/good/lampore_barcoding.csv | 3 - .../test_extract_run_statistics.py | 12 +- .../example_tests/test_load_sample_sheet.py | 37 +- .../test/example_tests/test_start_protocol.py | 18 +- .../testutils_tests/test_bidirectional_rpc.py | 4 +- 59 files changed, 5402 insertions(+), 4233 deletions(-) create mode 100644 proto/minknow_api/analysis_workflows.proto create mode 100644 python/minknow_api/analysis_workflows_pb2.py create mode 100644 python/minknow_api/analysis_workflows_pb2_grpc.py create mode 100644 python/minknow_api/analysis_workflows_service.py delete mode 100644 python/test/example_tests/sample_sheets/bad_records/fip_barcode.csv delete mode 100644 python/test/example_tests/sample_sheets/bad_records/rapid_barcode.csv delete mode 100644 python/test/example_tests/sample_sheets/good/lampore_barcoding.csv diff --git a/dev-requirements.txt b/dev-requirements.txt index e4b0f74..ed8f9a0 100644 --- a/dev-requirements.txt +++ b/dev-requirements.txt @@ -1,6 +1,6 @@ cryptography~=39.0 -grpcio==1.41.0 -grpcio-tools==1.41.0 +grpcio==1.60.0 +grpcio-tools==1.60.0 minknow-api-service-plugin pre-commit pytest diff --git a/proto/minknow_api/acquisition.proto b/proto/minknow_api/acquisition.proto index 1a07984..f472b04 100644 --- a/proto/minknow_api/acquisition.proto +++ b/proto/minknow_api/acquisition.proto @@ -665,6 +665,9 @@ message AcquisitionConfigSummary { bool basecalling_enabled = 1; // Basecalling configuration filename (if basecalling enabled) string basecalling_config_filename = 16; + // Basecalling model version (empty if basecalling not enabled) + // Since 6.0 + string basecalling_model_version = 24; // Was the experiment a duplex basecalling experiment (false if basecalling is disabled) bool duplex_enabled = 23; @@ -682,8 +685,12 @@ message AcquisitionConfigSummary { // Is lamp enabled for the run + // + // DEPRECATED 6.0: Lamp support has been removed and this value will always be false. bool lamp_enabled = 15; // The LAMP kit used (if LAMP enabled) + // + // DEPRECATED 6.0: Lamp support has been removed and this value will always be empty. string lamp_kit = 20; // Root directory reads were written to for the run. @@ -878,6 +885,11 @@ message AcquisitionRunInfo { // describing the current finishing state. FinishingState finishing_state = 10; + // Progress through the current finishing state, ranges from 0 - 1. + // + // This will increase from 0 -> 1 for each individual finishing state, then reset. + float finishing_state_percent_complete = 17; + // The reason the acquisition period was ended. AcquisitionStopReason stop_reason = 3; diff --git a/proto/minknow_api/analysis_configuration.proto b/proto/minknow_api/analysis_configuration.proto index cd05601..d178f05 100644 --- a/proto/minknow_api/analysis_configuration.proto +++ b/proto/minknow_api/analysis_configuration.proto @@ -311,6 +311,12 @@ message ReadFilters { // If set to zero (the default), this test is not applied (as though it had been set to a value // longer than any possible read). uint32 event_count_max = 4; + + // Control whether reads unblocked using from `DataService::get_live_reads()` should be filtered. + // + // When set to true, reads which are unblocked by `get_live_reads` are filtered and therefore not basecalled. + // When set to false, reads that are unblocked by `get_live_reads` will not be filtered and therefore will be basecalled. + bool skip_rejected_reads = 5; } message ReadClassificationParams { @@ -406,6 +412,25 @@ message ReadClassificationParams { // for other classification strategies. // google.protobuf.UInt32Value selected_classifications_chunks_required = 10; + + // this parameter controls whether (or not) we merge data for all selected classifications into a single + // data point before deciding whether to output a read. + // For instance, if 2 classifications are selected and classification A is 20% of the read, and classification B + // is 20% of the read then: + // When merge_selected_classifications is set to true, the overall selected classification proportion would amount + // to 40% of the read and that value would used when deciding whether or not to output the read. + // When merge_selected_classifications is set to false, each selected classification would be considered + // separately at the decision stage. Defaults to false. + // Note that when multiple classifications are selected by the user and the threshold criteria are met, then the + // most recent classification (of all selected classifications) will be used as the read overall classification. + // + google.protobuf.BoolValue merge_selected_classifications = 11; + + // Limit on how long a read may be in seconds before minknow forces the selected decision and either + // selects or vetoes the complete read. + // + // If unspecified a default value is used. + google.protobuf.UInt64Value max_read_length_before_selected_decision_seconds = 12; } message ChannelStates { @@ -670,7 +695,7 @@ message BarcodingConfiguration // If no barcoding kits are supplied, barcoding is disabled. repeated string barcoding_kits = 1; - // Whether Guppy should trim barcodes + // Whether the basecaller should trim barcodes // If not specified, this value defaults to false (not triming barcodes) // If barcoding is not enabled (e.g., because no barcoding kits are specified), // this parameter has no effect. @@ -679,31 +704,18 @@ message BarcodingConfiguration // Barcode is only classified if a barcode above `min_score` is present at both ends of the basecalled read. bool require_barcodes_both_ends = 3; - // Search for barcodes through the entire length of the read. - // - // If a barcode is found in the middle of a read the read is marked as unclassified. - bool detect_mid_strand_barcodes = 4; - - // Minimum alignment score to consider a valid barcode. - // - // Maximum value is 100, defaults to 60. - google.protobuf.FloatValue min_score = 5; - - // Minimum score to consider a valid barcode (overrides min_score for rear barcodes). - // - // Maximum value is 100, defaults to min_score if not specified. - google.protobuf.FloatValue min_score_rear = 6; - // Minimum score to consider a valid mid barcode (only valid if detect_mid_strand_barcodes is specified). - // - // Maximum value is 100, defaults to 60. - google.protobuf.FloatValue min_score_mid = 7; - - // The minimum score required for the barcode mask to be detected. - // - // Maximum value is 100, defaults to 40. - google.protobuf.FloatValue min_score_mask = 8; - + reserved "detect_mid_strand_barcodes"; + reserved 4; + reserved "min_score"; + reserved 5; + reserved "min_score_rear"; + reserved 6; + reserved "min_score_mid"; + reserved 7; + reserved "min_score_mask"; + reserved 8; + // If set, barcodes that aren't in barcode user data list will be ignored // // Since 5.6 @@ -716,7 +728,7 @@ message AlignmentConfiguration { // Provide an index to align reads against once basecalled. // - // Any acceptable reference format to guppy can be passed here: + // Any acceptable reference format to the basecaller can be passed here: // - fasta reference file // - minimap index file repeated string reference_files = 1; @@ -726,7 +738,7 @@ message AlignmentConfiguration // Note: alignment_index must be provided for this argument to be valid. string bed_file = 2; - // Minimum coverage for guppy to accept an alignment. + // Minimum coverage for the basecaller to accept an alignment. // // If not specified a default value is used. // @@ -748,6 +760,8 @@ message AlignmentConfiguration } // Since 4.1 +// +// DEPRECATED 6.0: Lamp support has been removed and all of these options will be ignored. message LampConfiguration { // Set the lamp kit being used. @@ -785,15 +799,15 @@ message BasecallerConfiguration google.protobuf.UInt64Value max_bases = 3; } - // Choose if guppy is enabled or disabled. + // Choose if the basecaller is enabled or disabled. // // If set to false then no basecalling will take place, and the rest of the config is ignored. bool enable = 2; - // The Guppy cfg file with all the settings. + // The basecaller cfg file with all the settings. // // Filename can be absolute, or a basename (eg dna_r9.4_450bps.cfg) - // which guppy should locate (see guppy application config entry: "data_path") + // which the basecaller should locate (see basecaller application config entry: "data_path") string config_filename = 1; // Enable or disable pass/fail filtering based on alignment. When enabled, reads which @@ -848,17 +862,19 @@ message BasecallerConfiguration // If no configuration is specified lamp is disabled. // // Since 4.1 + // + // DEPRECATED 6.0: Lamp support has been removed and this option will be ignored. LampConfiguration lamp_configuration = 7; - // Enable read splitting in guppy. + // Enable read splitting in the basecaller. // // Since 4.5 // // Note: Since 5.9 this option has no effect, the basecaller is responsible for deciding when read splitting should be enabled. bool enable_read_splitting = 8; - // Override score to use for guppy read splitting. If not specified a default value - // is used from guppy. + // Override score to use for the basecaller read splitting. If not specified a default value + // is used from the basecaller. // // Since 4.5 // @@ -873,7 +889,13 @@ message SetBasecallerConfigurationRequest message SetBasecallerConfigurationResponse{} -message GetBasecallerConfigurationRequest{} +message GetBasecallerConfigurationRequest +{ + // The unique identifier assigned to this acquisition run. + // + // Since 6.0 + string run_id = 1; +} message GetPoreTypeConfigurationRequest {} @@ -940,7 +962,6 @@ message SetPoreTypeConfigurationResponse {} // - read_classification: The classification applied to the completed read (eg. strand). // - batch_number: The batch number of this read, evaluated based on the destination file. // - read_id: Unique read id for each read, formatted as a hash. -// - read_number: The read number (unique per channel, incrementing number assigned to each read by MinKNOW). // - channel_name: The name of the channel which produced the read. // - read_start_time: Read start time formatted in rfc3339 format. // - basecall_status: Basecalling output status (derived from WriterDefaults section in analysis config). @@ -1026,12 +1047,12 @@ message WriterConfiguration { // Stored under /Analyses/Basecall_1D_*/BaseCalled_(template|complement)/Fastq ChannelConfiguration fastq = 3; - // Trace table received from Guppy + // Trace table received from the basecaller // // Stored under /Analyses/Basecall_1D_*/BaseCalled_template/Trace ChannelConfiguration trace_table = 11; - // Move table received from Guppy + // Move table received from the basecaller // // Stored under /Analyses/Basecall_1D_*/BaseCalled_template/Move ChannelConfiguration move_table = 12; @@ -1059,7 +1080,7 @@ message WriterConfiguration { // The pattern used to find a fastq header. // - // default: {read_id} runid={run_id} read={read_number} ch={channel_name} start_time={read_start_time} + // default: {read_id} runid={run_id} ch={channel_name} start_time={read_start_time} // Where each {xxx} section is replaced with an attribute from the minknow state // when the fastq is generated. string fastq_header_pattern = 9; @@ -1108,7 +1129,7 @@ message WriterConfiguration { // The pattern used to find a fastq header. // - // default: {read_id} runid={run_id} read={read_number} ch={channel_name} start_time={read_start_time} + // default: {read_id} runid={run_id} ch={channel_name} start_time={read_start_time} // Where each {xxx} section is replaced with an attribute from the minknow state // when the fastq is generated. string header_pattern = 3; @@ -1489,7 +1510,12 @@ message WriterConfiguration { message SetWriterConfigurationResponse { } -message GetWriterConfigurationRequest { +message GetWriterConfigurationRequest +{ + // The unique identifier assigned to this acquisition run. + // + // Since 6.0 + string run_id = 1; } message GetReadClassificationsRequest {} diff --git a/proto/minknow_api/analysis_workflows.proto b/proto/minknow_api/analysis_workflows.proto new file mode 100644 index 0000000..6f68d6b --- /dev/null +++ b/proto/minknow_api/analysis_workflows.proto @@ -0,0 +1,38 @@ +syntax="proto3"; + +package minknow_api.analysis_workflows; + +option java_package = "com.nanoporetech.minknow_api"; +option objc_class_prefix = "MKAPI"; + +import "minknow_api/rpc_options.proto"; + +service AnalysisWorkflowsService { + rpc proxy (ProxyRequest) returns (stream ProxyResponse) { + option (experimental) = true; + } +} + +message ProxyRequest { + // with parameters but without the endpoint e.g. for API /workflows/{id}/start: + // "/workflows/ae088129-8767-460f-8795-7c04771dc42f/start" + // "/workflows/epi2me-labs/wf-alignment/v1.2.8/start" + string api = 1; + + enum Method { + GET = 0; + POST = 1; + PUT = 2; + DELETE = 3; + } + + Method method = 2; + + map headers = 4; + string request_body = 3; +} + +message ProxyResponse { + uint32 status_code = 1; + string response_body = 2; +} diff --git a/proto/minknow_api/basecaller.proto b/proto/minknow_api/basecaller.proto index a46ec0f..41e17a6 100644 --- a/proto/minknow_api/basecaller.proto +++ b/proto/minknow_api/basecaller.proto @@ -8,6 +8,7 @@ option objc_class_prefix = "MKAPI"; import "google/protobuf/timestamp.proto"; import "google/protobuf/wrappers.proto"; import "minknow_api/analysis_configuration.proto"; +import "minknow_api/analysis_workflows.proto"; import "minknow_api/protocol_settings.proto"; import "minknow_api/rpc_options.proto"; @@ -201,13 +202,13 @@ message StartBasecallingRequest { // Options to control alignment performed once basecalling reads is complete. analysis_configuration.AlignmentConfiguration alignment_configuration = 11; - // Enable read splitting in guppy + // Enable read splitting in the basecaller // // Note: Since 5.9 this option has no effect, the basecaller is responsible for deciding when read splitting should be enabled. bool enable_read_splitting = 13; - // Override score to use for guppy read splitting. If not specified a default value - // is used from guppy. + // Override score to use for the basecaller read splitting. If not specified a default value + // is used from the basecaller. // // Note: Since 5.9 this option has no effect, the basecaller is responsible for deciding when read splitting should be enabled. google.protobuf.FloatValue min_score_read_splitting = 14; @@ -235,6 +236,8 @@ message StartBarcodingRequest { string output_reads_directory = 2; // Enable gzip compression of output FASTQ files. + // + // DEPRECATED: This option does not have any effect - the offline barcoding no longer has the ability to compress fastq output. bool compress_fastq = 4; // Recursively find fast5 files to basecall in the `input_reads_directories`. @@ -246,6 +249,13 @@ message StartBarcodingRequest { // Options to control barcoding performed once basecalling reads is complete. analysis_configuration.BarcodingConfiguration barcoding_configuration = 10; + enum OutputFormat { + BAM = 0; + FASTQ = 1; + } + + // The type of file format to use for the output, default is BAM. + OutputFormat output_format = 12; } message StartBarcodingResponse { @@ -313,6 +323,9 @@ message StartRequest { basecaller.StartBarcodingRequest start_barcoding_request = 3; basecaller.StartAlignmentRequest start_alignment_request = 4; basecaller.StartPostProcessingProtocolRequest start_post_processing_protocol_request = 5; + + // Since 5.8 + analysis_workflows.ProxyRequest proxy_request = 6; } } diff --git a/proto/minknow_api/data.proto b/proto/minknow_api/data.proto index c794693..994faff 100644 --- a/proto/minknow_api/data.proto +++ b/proto/minknow_api/data.proto @@ -172,7 +172,7 @@ service DataService { // // GetLiveReadsRequest stream: // Sent by the user, provides MinKNOW with actions to take on current reads, actions - // taken are sumarised and sent back to the user in the GetLiveReadsResponse stream. + // taken are summarised and sent back to the user in the GetLiveReadsResponse stream. // GetLiveReadsResponse stream: // Sent to the user, contains a stream of ongoing sequencing information, sent as // regularly as possible, with information on reads in progress, and feedback on actions @@ -192,6 +192,12 @@ service DataService { option idempotency_level = NO_SIDE_EFFECTS; } + // Record information about adaptive-sampling for telemetry. This is optional + // and will not change how adaptive sampling works. + rpc record_adaptive_sampling_information(RecordAdaptiveSamplingInformationRequest) returns (RecordAdaptiveSamplingInformationResponse) { + option idempotency_level = IDEMPOTENT; + } + // Collects statistics about read (chunk) lengths and signal, split by channel, channel // configuration and read (chunk) classification. rpc get_read_statistics (GetReadStatisticsRequest) returns (GetReadStatisticsResponse) { @@ -534,8 +540,9 @@ message GetLiveReadsRequest { // If the read requested is no longer in progress, the action fails. oneof read { string id = 3; - uint32 number = 4; } + // removed since 6.0 + reserved 4; oneof action { // Unblock a read and skip further data from this read. @@ -566,6 +573,9 @@ message GetLiveReadsRequest { // Maximum read length MinKNOW will attempt to unblock // reads beyond this length will not be unblocked when Action's request, // instead minknow will skip any further data from the read. + // NOTE that read length metrics are tracked from the receipt of the first StreamSetup message, + // so reads from the first batch sent could be longer than the `max_unblock_read_length_xxx` + // values unless the first StreamSetup is sent close to the experiment start time. oneof max_unblock_read_length { // Maximum read length MinKNOW will attempt to unblock (in samples). // @@ -605,16 +615,16 @@ message GetLiveReadsRequest { } } +// NOTE that the read metrics below are tracked from the receipt of the first StreamSetup message. +// It is advised that the first StreamSetup be sent close to the experiment start time for +// maximum accuracy. message GetLiveReadsResponse { message ReadData { // The id of this read, this id is unique for every read ever produced. string id = 1; - // The minknow assigned number of this read - // - // Read numbers always increment throughout the experiment, and are unique per channel - - // however they are not necessarily contiguous. - uint32 number = 2; + // removed since 6.0 + reserved 2; // Absolute start point of this read uint64 start_sample = 3; @@ -694,6 +704,27 @@ message ResetChannelStatesRequest message ResetChannelStatesResponse {} +message RecordAdaptiveSamplingInformationRequest { + enum Objective { + OTHER = 0; + BARCODE_BALANCE = 1; + ENRICH = 2; + DEPLETE = 3; + } + + oneof information { + // The reason for applying the adaptive sampling technique. This must be recorded during + // the acquisition period in which adaptive sampling is applied. + Objective objective = 1; + + // The reason why the adaptive sampling script ended. This string will be truncated to + // 80 characters. + string end_reason = 2; + } +} + +message RecordAdaptiveSamplingInformationResponse {} + message GetReadStatisticsRequest { // List of channels required, indexed from 1. repeated uint32 channels = 1; diff --git a/proto/minknow_api/device.proto b/proto/minknow_api/device.proto index 2262025..081b3fa 100644 --- a/proto/minknow_api/device.proto +++ b/proto/minknow_api/device.proto @@ -384,6 +384,7 @@ message GetDeviceInfoResponse { TRAXION = 5; P2_SOLO = 6; MINION_MK1D = 7; + P2_INTEGRATED = 8; } // A unique identifier for the device. @@ -632,6 +633,31 @@ message GetFlowCellInfoResponse { // set by calls to register_flow_cell_barcodes() on this flow cell. // Since 5.6 repeated uint32 barcodes = 18; + + // The partner the flow cell was produced for. + // + // Some partner companies have flow cells produced specifically for them. If + // so, it will be indicated by this field. Most flow cells will have this + // either unset or set to "ONT". + // + // If this field is set, it will be exactly three characters. + // + // Since 6.0 + string flow_cell_partner = 19; + + // True if the flow cell is a Configuration Test Cell (CTC). + // + // Note that this is currently set if and only if the cell's + // product ID starts with 'CTC'. + // Detection of CTCs constructed from repurposed standard flow cells + // will be implemented later. + // + // False negatives are to be expected- that is, for all cases where + // this field is 'true', the flow cell is definitely a CTC. + // In cases where it is 'false', the flow cell _may_ be a CTC. + // + // Since 6.0 + bool is_ctc = 20; } message StreamFlowCellInfoRequest {} @@ -932,6 +958,14 @@ message GetTemperatureResponse // // Since 1.15 google.protobuf.FloatValue target_temperature = 3; + + // Starting temperature value + // + // Since 6.0 + oneof starting_temperature { + google.protobuf.FloatValue minion_starting_temperature = 4; + google.protobuf.FloatValue promethion_starting_temperature = 5; + } } message StreamTemperatureRequest { diff --git a/proto/minknow_api/instance.proto b/proto/minknow_api/instance.proto index c673302..831028c 100644 --- a/proto/minknow_api/instance.proto +++ b/proto/minknow_api/instance.proto @@ -180,15 +180,19 @@ message GetVersionInfoResponse { // Since 4.1 InstallationType installation_type = 6; - // Version of guppy MinKNOW was packaged against. + // Version of the basecaller MinKNOW was packaged against. // // Since 5.0 - string guppy_build_version = 7; + // This field has been updated since 6.0 + reserved 7; // guppy_build_version + string basecaller_build_version = 9; - // Version of guppy MinKNOW running with. + // Version of the basecaller MinKNOW is running with. // // Since 5.0 - string guppy_connected_version = 8; + // This field has been updated since 6.0 + reserved 8; // guppy_connected_version + string basecaller_connected_version = 10; } message GetOutputDirectoriesRequest { diff --git a/proto/minknow_api/manager.proto b/proto/minknow_api/manager.proto index 2926299..351bf35 100644 --- a/proto/minknow_api/manager.proto +++ b/proto/minknow_api/manager.proto @@ -73,7 +73,7 @@ service ManagerService { option idempotency_level = NO_SIDE_EFFECTS; } - // Get information about Guppy, including the port to connect to it on. + // Get information about the basecaller, including the port to connect to it on. // // Since 4.1 rpc get_guppy_info (GetGuppyInfoRequest) returns (GetGuppyInfoResponse) { @@ -85,7 +85,7 @@ service ManagerService { // - Protocols version (i.e. Bream-4 version) // - Configuration version (i.e. Wanda version) // - Distribution version - // - Guppy version + // - Basecaller version // // This RPC can be called without providing any authentication tokens. // @@ -167,6 +167,8 @@ service ManagerService { // Get info about all available lamp kits // // Since 4.1 + // + // DEPRECATED 6.0: Lamp support has been removed and this response will always be empty. rpc get_lamp_kit_info(GetLampKitInfoRequest) returns (GetLampKitInfoResponse) { option idempotency_level = NO_SIDE_EFFECTS; } @@ -358,6 +360,12 @@ service ManagerService { option (experimental) = true; } + // Forcibly halt and restart any MinKNOW-related device administration services, such as Mooneye. + // + // Since 6.0 + rpc restart_device_admin_service(RestartDeviceAdminRequest) returns (RestartDeviceAdminResponse) { + option idempotency_level = IDEMPOTENT; + } } message DescribeHostRequest { @@ -453,11 +461,29 @@ message DescribeHostResponse { // // This may be due to a runtime issue and attempts are being made to recover BASECALLING_UNAVAILABLE_ATTEMPTING_RECOVERY = 3; - }; - // Whether the device can currently provide basecalling - // - // - BasecallingAvailability can_basecall = 6; + }; + + // Whether the device can currently provide basecalling + BasecallingAvailability can_basecall = 6; + + // Details about the hardware on which basecalling may be run. + message BasecallerSubstrate { + // If false, this indicates that CPU basecalling is selected. + // In this case, the 'gpus' field should be omitted or empty. + bool is_gpu = 1; + + // Provides human-readable strings describing the GPUs available for use by the basecaller. + // Note that even if 'is_gpu' is true, this may be empty if no further details are available. + // This field being empty _does not_ imply that CPU basecalling is in use. + repeated string gpus = 2; + } + + // Information about the hardware being used right now by the basecaller. + BasecallerSubstrate current_basecalling_hardware = 7; + + // If more than one possible basecalling hardware selection can be made, this field provides the details of those options. + // Typically this will be a list of 'unused' GPUs. + repeated BasecallerSubstrate available_basecalling_hardware = 8; } message GetBasecallerFeaturesRequest {} @@ -559,6 +585,7 @@ message FlowCellPosition { // Since 4.4 STATE_NEEDS_ASSOCIATION = 6; }; + // The state of the flow cell position. // // If the state is not `STATE_RUNNING` or `STATE_INITIALISING`, the flow cell position can be @@ -644,6 +671,42 @@ message FlowCellPosition { // // Since 5.3 string parent_name = 12; + + // Firmware is updating on the device and it should not be unplugged. + // + // If the state is INITIALISING, this flag may be set to true to indicate that the device's + // persistent memory is being reprogrammed with new firmware. When this is the case, the device + // should not be unplugged, as there is a small chance this will cause the device to be rendered + // ununsable. + // + // It is not set for devices that do not come with firmware pre-loaded and have to have it + // loaded every time they are plugged in (like the MinION Mk1B), as unplugging these devices + // during firmware loading is fine. + bool firmware_is_updating = 13; + + // Indicates the progress_percent field is being used. See that field for more information. + bool has_progress = 14; + + // Indicates progress through the current state. + // + // This is currently only used for long-running INITIALISING states, such as when firmware is + // being updated. If it is being used, has_progress will be true (which indicates it is + // sensible to display a progress bar even if progress_percent is currently 0). + // + // This field will always have values between 0 and 100 (inclusive), and the value will increase + // over time. It is intended for displaying a progress bar or similar. + uint32 progress_percent = 15; + + // Indicates roughly how much time is remaining in this state. + // + // If has_progress is true and this is non-zero, it will contain an estimate of how much time is + // left in this state. Currently it is only used for long-running INITIALISING states. + // + // If no ETA can be calculated, this will be zero. + // + // Note that it is always an estimate - it is recommended to round larger values, like "about 2 + // minutes remaining". + uint32 progress_eta_seconds = 16; } message FlowCellPositionsRequest { @@ -721,15 +784,15 @@ message GetGuppyInfoRequest {} message GetGuppyInfoResponse { oneof connection_type { - // The port Guppy is listening on. + // The port the basecaller is listening on. uint32 port = 1; - // The path to an ipc file Guppy is using. - // Use "ipc://" for a guppy connection string. + // The path to an ipc file the basecaller is using. + // Use "ipc://" for a basecaller connection string. string ipc_path = 3; } - // The Guppy server version. + // The basecaller server version. string version = 2; } @@ -838,6 +901,7 @@ message GetBarcodeKitInfoRequest{} message GetBarcodeKitInfoResponse{ message BarcodeKitInfo{ + // DEPRECATED 6.0: Dual barcoding support has been removed and this value will always false. bool is_dual = 2; bool is_both_ends = 3; } @@ -846,8 +910,10 @@ message GetBarcodeKitInfoResponse{ map barcode_kit_info = 1; } -message GetLampKitInfoRequest{} +// DEPRECATED 6.0: Lamp support has been removed. +message GetLampKitInfoRequest{} // +// DEPRECATED 6.0: Lamp support has been removed and this response will always be empty. message GetLampKitInfoResponse{ // Lamp kit names repeated string lamp_kits = 2; @@ -864,6 +930,8 @@ message GetBarcodeKeysRequest{ // Name of lamp kit to obtain barcode names for. // // Fails with INVALID_ARGUMENT if the requested `lamp_kit_name` is unavailable. + // + // DEPRECATED 6.0: Lamp support has been removed and this option will be ignored. string lamp_kit_name = 2; } @@ -872,6 +940,8 @@ message GetBarcodeKeysResponse { repeated string barcode_keys = 1; // Returned lamp barcode ids. + // + // DEPRECATED 6.0: Lamp support has been removed and this value will always be empty. repeated string lamp_keys = 2; // Combined barcode and lamp keys. @@ -886,6 +956,9 @@ message GetBarcodeKeysResponse { // - barcode02_lamp01 // - barcode02_lamp02 // - barcode02_lamp03 + // + // DEPRECATED 6.0: Lamp support has been removed and this value will always be the same + // as barcode_keys. repeated string combined_keys = 3; } @@ -972,6 +1045,8 @@ message GetSequencingKitsResponse { bool includes_barcoding = 3; // Whether the kit can be used for LamPORE diagnostics. + // + // DEPRECATED 6.0: Lamp support has been removed and this value will always be false. bool lamp_kit = 16; // Whether there is a "control" protocol available for this kit. @@ -1094,10 +1169,22 @@ message GetAlignmentReferenceInformationResponse { // Does the reference file fit within the recommended live usage memory size? // - // This uses an estimate of how much memory a reference may use when running in guppy + // This uses an estimate of how much memory a reference may use when running in the basecaller // and compares to the amount of memory in the sequencer. It does not account for // whether the reference will run in real time. bool recommended_live_usage = 3; + + // True if adaptive sampling is recommended + // based on reference file size in bases, and device type + // + // Since 6.0 + bool recommended_adaptive_sampling_usage = 4; + + // The maximum limit for adaptive sampling number of bases + // based on device type + // + // Since 6.0 + uint64 max_recommended_adaptive_sampling_bases = 5; } message AssociationDeviceCodeRequest { @@ -1281,12 +1368,6 @@ message ListSettingsForProtocolResponse { protocol_settings.ProtocolSetting basecall_model = 4; protocol_settings.ProtocolSetting trim_barcodes_enabled = 5; protocol_settings.ProtocolSetting require_barcodes_both_ends = 6; - protocol_settings.ProtocolSetting detect_mid_strand_barcodes = 7; - protocol_settings.ProtocolSetting override_mid_barcoding_score = 8; - protocol_settings.ProtocolSetting override_rear_barcoding_score = 9; - protocol_settings.ProtocolSetting min_barcoding_score = 10; - protocol_settings.ProtocolSetting min_barcoding_score_rear = 11; - protocol_settings.ProtocolSetting min_barcoding_score_mid = 12; protocol_settings.ProtocolSetting alignment_enabled = 13; protocol_settings.ProtocolSetting alignment_ref_file = 14; protocol_settings.ProtocolSetting alignment_bed_file_enabled = 15; @@ -1381,3 +1462,9 @@ message SetFeaturesRequest { message SetFeaturesResponse { } + +message RestartDeviceAdminRequest { +} + +message RestartDeviceAdminResponse { +} diff --git a/proto/minknow_api/protocol.proto b/proto/minknow_api/protocol.proto index c4807b5..f38b02c 100644 --- a/proto/minknow_api/protocol.proto +++ b/proto/minknow_api/protocol.proto @@ -6,6 +6,7 @@ option java_package = "com.nanoporetech.minknow_api"; option objc_class_prefix = "MKAPI"; import "minknow_api/acquisition.proto"; +import "minknow_api/analysis_workflows.proto"; import "minknow_api/basecaller.proto"; import "minknow_api/device.proto"; import "minknow_api/protocol_settings.proto"; @@ -192,6 +193,30 @@ service ProtocolService { option idempotency_level = IDEMPOTENT; } + // Set the hardware check result + // + // Should be called to set the status to `Started` at the start of any hardware check script + // Should be called again to set the final status when a hardware check script finishes + // + // If a script finishes, and the hardware check status is `Started`, then MinKNOW will set the + // status to `Failed: ScriptError`. (The hardware check script should have updated the status + // when the hardware check finished; failure to do so indicates that the script failed). + // + // The call will fail with `INVALID_ARGUMENT` if: + // - HardwareCheckStatus is NOT `Failed`, and `HardwareCheckFailureReason` is NOT `NoError` + // - HardwareCheckStatus is `Failed` and `HardwareCheckFailureReason` is `NoError` + // - HardwareCheckStatus is not a valid value (None, Started, Succeeded or Failed) + // - The supplied `protocol_run_id` does not correspond to an existing protocol + // + // The call will fail with `FAILED_PRECONDITION` if: + // - The supplied `protocol_run_id` does not correspond to an in-progress protocol + // - Hardware check status are not moved through in order: + // None -> Started -> Succeeded/Failed + // + rpc set_hardware_check_result(SetHardwareCheckResultRequest) returns (SetHardwareCheckResultResponse) { + option idempotency_level = IDEMPOTENT; + } + // Associated a post processing analysis process, and schedule it to run once the protocol is complete. // // If the protocol is already complete, the post processing analysis is executed immediately. @@ -257,19 +282,18 @@ message BarcodeUserData { positive_control_2 = 5; } - // Barcode name the user data applies to, eg: "barcode02". - // - // Acts as the external barcode name `barcode_name_internal` is - // also set for dual barcoding + // Barcode name the user data applies to, eg: "barcode02". // - // Acts as the rapid barcode name in lampore barcoding if `lamp_barcode_id` - // is set + // Acts as the external barcode name `barcode_name_internal` is + // also set for dual barcoding string barcode_name = 1; // The internal barcode name if using dual barcode string barcode_name_internal = 5; // Lamp barcode id the user data applies to, eg: "FIP04" + // + // DEPRECATED 6.0: Lamp support has been removed and this value will always be empty. string lamp_barcode_id = 2; // User defined string alias for the barcode. @@ -346,7 +370,22 @@ message OffloadLocationInfo { string offload_location_path = 2; } +message AnalysisWorkflowRequest { + enum When { + // Start the analysis workflow at the end of the protocol + PROTOCOL_END = 0; + } + + // The workflow request to start + analysis_workflows.ProxyRequest proxy_request = 1; + + // When to start the request + When when = 2; +} + message StartProtocolRequest { + reserved 6; // passenger_info + // The identifier of the protocol, as provided by list_protocols(). string identifier = 1 [(rpc_required) = true]; @@ -366,6 +405,9 @@ message StartProtocolRequest { // // Since 5.3 acquisition.TargetRunUntilCriteria target_run_until_criteria = 5; + + // Workflow request that should be started when the protocol is started + AnalysisWorkflowRequest analysis_workflow_request = 7; } message StartProtocolResponse { @@ -525,13 +567,13 @@ enum ProtocolState { // Setting basecall settings failed (Bad config etc) PROTOCOL_FINISHED_WITH_ERROR_BASECALL_SETTINGS = 21; // Exit with code 21 - + // OND requires us to reach temperature and fail if not PROTOCOL_FINISHED_WITH_ERROR_TEMPERATURE_REQUIRED = 22; // Exit with code 22 // The protocol was terminated due to insufficient disk space PROTOCOL_FINISHED_WITH_ERROR_NO_DISK_SPACE = 23; // Exit with code 23 - + // The protocol was terminated due to a high temperature issue // Since 5.9 PROTOCOL_FINISHED_WITH_ERROR_TEMPERATURE_HIGH = 25; // Exit with code 25 @@ -540,6 +582,14 @@ enum ProtocolState { // communications with the basecaller // Since 5.9 PROTOCOL_FINISHED_WITH_ERROR_BASECALLER_COMMUNICATION = 26; // Exit with code 26 + + // There is no flowecll available to run acquisition. + // Since 6.0 + PROTOCOL_FINISHED_WITH_NO_FLOWCELL_FOR_ACQUISITION = 27; // Exit with code 27 + + // The basecaller did not respond to a request before timeout. + // Since 6.0 + PROTOCOL_FINISHED_WITH_ERROR_BASECALLER_UNAVAILABLE = 28; // Exit with code 24 } enum ProtocolPhase { @@ -586,7 +636,7 @@ message RequestOrigin { // 'User' based changes will typically come from calls made by the UI // such as 'stop_protocol' message User { - // If available then provide any identity information MinKNOW + // If available then provide any identity information MinKNOW // has about the client that made the RPC request string identity = 1; } @@ -627,6 +677,19 @@ message AssociatedPostProcessingAnalysis { // Start request for analysis basecaller.StartRequest start_request = 2; + + enum State { + // Analysis request queued for starting later + QUEUED = 0; + + // Workflow successfully started + STARTED = 1; + + // Trying to start the workflow resulted in an error + FAILED_TO_START = 2; + } + + State state = 3; } message PlatformQcResult { @@ -640,6 +703,44 @@ message PlatformQcResult { uint32 total_pore_count = 3; } +message HardwareCheckResult { + enum HardwareCheckStatus { + // Not a hardware check protocol + None = 0; + + // Hardware check has been started, but has not yet completed + Started = 1; + + // Hardware check succeeded + Succeeded = 2; + + // Hardware check failed + // See HardwareCheckFailureReason for the reason + Failed = 3; + } + + HardwareCheckStatus status = 1; + + enum HardwareCheckFailureReason { + // Not a hardware check protocol, or + // Hardware check has not failed + NoError = 0; + + // Hardware check failed for a reason that is not otherwise specified + Unknown = 1; + + // The hardware check script failed, and was unable to set the HardwareCheckFailureReason + // to a more specific value + ScriptError = 2; + } + + // `failure_reason` is guaranteed to be: + // - `NoError` if `status` is NOT `Failed` + // - NOT `NoError` if `status` is `Failed` + // + HardwareCheckFailureReason failure_reason = 2; +} + message ExternalOffload { // The `id`s associated with active external data offloads associated with the protocol // The offload status can be queried using `mooneye.offload_manager.watch_offloads()`` @@ -660,7 +761,7 @@ message GetVersionInfoResponse { // What minknow version is installed. Split into major, minor and patch versions // Also includes the full version as a string, which contain the major, minor and patch numbers // as well as if the version is pre-release version (-pre), whether it is a release candidate (-rc#) - // or whether it is a variant version (i.e. for conferences) (-variant). For non-release builds it also + // or whether it is a variant version (i.e. for conferences) (-variant). For non-release builds it also // includes the hash of the commit it is based on, and whether the working copy is different from that has (-dirty) MinknowVersion minknow = 1; @@ -725,15 +826,81 @@ message GetVersionInfoResponse { // Since 4.1 InstallationType installation_type = 6; - // Version of guppy MinKNOW was packaged against. + // Version of the basecaller MinKNOW was packaged against. // // Since 5.0 - string guppy_build_version = 7; + // This field has been updated since 6.0 + reserved 7; // guppy_build_version + string basecaller_build_version = 9; - // Version of guppy MinKNOW running with. + // Version of the basecaller MinKNOW is running with. // // Since 5.0 - string guppy_connected_version = 8; + // This field has been updated since 6.0 + reserved 8; // guppy_connected_version + string basecaller_connected_version = 10; +} + +message AnalysisWorkflowInfo { + // The request that started the analysis workflow + AnalysisWorkflowRequest request = 1; + + // The workflow id of the started analysis workflow. + // + // May be empty if the workflow was unable to start + string workflow_id = 2; + + // Human-readable name of the workflow. + string workflow_name = 3; + + // What version the analysis workflow is running + string workflow_version = 4; + + enum Status { + // The default state if nothing has been set. Typically will never be set + UNKNOWN = 0; + + // When a workflow is waiting to start + // + // This can be due to waiting for sequencing (including basecalling) to + // finish or waiting for more resources on the system to free up so that the + // workflow can run without issues + QUEUED = 6; + + // When the analysis workflow has been started and is currently running + RUNNING = 1; + + // The workflow has completed successfully + // + // NB: This just means that the workflow ran to completion, and doesn't reflect the + // final result of the workflow + COMPLETED = 2; + + // The workflow was stopped prematurely by the user + STOPPED_BY_USER = 3; + + // The workflow was stopped due to an error that the workflow could not recover from + STOPPED_WITH_ERROR = 4; + + // The workflow failed to start entirely + // + // This can happen if MinKNOW fails to make a connection to the analysis workflow server + FAILED_TO_START = 5; + } + + // Current status of the workflow. + Status workflow_status = 5; + + // If 'workflow_status' is STOPPED_WITH_ERROR, then this field will be populated with + // a human readable error message describing why the workflow was stopped. + // + // For any other status, it is empty. + string workflow_stop_reason = 6; + + // The main report(s) for the analysis workflow + // + // Indicates that the report(s) are able to be retrieved from the Reception server + repeated string report_names = 7; } message ProtocolRunInfo { @@ -749,6 +916,11 @@ message ProtocolRunInfo { // The arguments passed to start_protocol(). repeated string args = 3; + // Any settings changed from the defaults specified in the protocol's .toml file. + // + // These settings were passed as part of begin_protocol() + map settings = 25; + // Output location for protocol data (eg. reads). // // If data offload is being used, this is the offload source directory. Any files written to @@ -865,15 +1037,22 @@ message ProtocolRunInfo { // List of scheduled post processing analysis tasks repeated AssociatedPostProcessingAnalysis associated_post_processing_analysis = 15; - // Platform QC result. Set by bream by calling `set_platform_qc_result()`. + // The analysis workflow (if any) associated with the protocol + AnalysisWorkflowInfo analysis_workflow = 27; + + // Platform QC result. Set by bream by calling `set_platform_qc_result()`. // Possible to not be set (e.g. not a pqc run) PlatformQcResult pqc_result = 20; + // Hardware check result. Set by bream calling `set_hardware_check_result()`. + // Not set if not a hardware check protocol + HardwareCheckResult hardware_check_result = 26; + // Contains information about external data offloads associated with this protocol // // Since 5.0 ExternalOffload external_offload = 21; - + // For storing version numbers to output to run report // // Since 5.6 @@ -894,6 +1073,15 @@ message FilteringInfo { // the fields within PlatformQcFilter PlatformQcFilter pqc_filter = 1; + message HardwareCheckFilter {} + + // Filter by runs that have hardware check results + // + // Initialising this message means that only runs with a hardware check result will be + // returned + // + HardwareCheckFilter hardware_check_filter = 4; + // Filter runs by a specific protocol_group_id optional string protocol_group_id = 2; @@ -975,14 +1163,14 @@ message AddEpi2meWorkflowRequest { message AddEpi2meWorkflowResponse { } - + // timestamp for the last activity for experiment ordering // since 5.6 message ProtocolGroupIdInfo { string protocol_group_id = 1; - + // Most recent start time for the protocol group id - // + // google.protobuf.Timestamp start_time = 2; } @@ -996,18 +1184,18 @@ message ListProtocolGroupIdsResponse { // // deprecated and replaced by string protocol_group_id // in message ProtocolGroupIdInfo - // + // // string data is guaranteed to be ordered by most recent // start time, since 5.6 - // + // repeated string protocol_group_ids = 1; - + // A list of the most recent start time for each // protocol group id on this instance of minknow. - // + // // guaranteed to be ordered by most recent start time // since 5.6 - // + // repeated ProtocolGroupIdInfo protocol_group_ids_info = 2; } @@ -1028,6 +1216,8 @@ message BeginPlatformQcResponse { } message BeginProtocolRequest { + reserved 7; // passenger_info + oneof protocol_identifier { // Specify the protocol with a string containing all the protocol's identifying components, eg: // "sequencing/sequencing_MIN106_DNA:FLO-MIN106:SQK-RPB004" @@ -1054,6 +1244,9 @@ message BeginProtocolRequest { // Any settings changed from the defaults specified in the protocol's .toml file. map settings = 4; + + // Workflow request that should be started when the protocol is started + AnalysisWorkflowRequest analysis_workflow_request = 8; } message BeginProtocolResponse { @@ -1072,6 +1265,17 @@ message SetPlatformQcResultResponse { } +message SetHardwareCheckResultRequest { + // The protocol_run_id that was given when the hardware check run was started + string protocol_run_id = 1; + + HardwareCheckResult result = 2; +} + +message SetHardwareCheckResultResponse { + +} + message AssociatePostProcessingAnalysisRequest { // Protocol id to associate analysis with: string run_id = 1; @@ -1173,7 +1377,7 @@ message GenerateRunReportResponse { // (note the api to return this data may stream back several sections). string input_data = 4; - // If include_input_data was set, how many further characters of input data remain + // If include_input_data was set, how many further characters of input data remain // after this message (excluding of this message). int32 remaining_input_length = 5; } \ No newline at end of file diff --git a/proto/minknow_api/statistics.proto b/proto/minknow_api/statistics.proto index 9e8794d..4c94b78 100644 --- a/proto/minknow_api/statistics.proto +++ b/proto/minknow_api/statistics.proto @@ -816,6 +816,8 @@ message AcquisitionOutputKey { // - Specify "classified" for all data which has a lamp barcode. // // If unspecified all lamp barcodes are returned. + // + // DEPRECATED 6.0: Lamp support has been removed and this option will always be ignored. string lamp_barcode_id = 4; // Only return data for the given lamp target. @@ -826,9 +828,11 @@ message AcquisitionOutputKey { // Using barcode terms here as lamp is part of barcoding pipeline // // If unspecified all lamp target are returned. + // + // DEPRECATED 6.0: Lamp support has been removed and this option will always be ignored. string lamp_target_id = 5; - // The barcode alias corresponding to the `barcode_name` and `lamp_barcode_id` + // The barcode alias corresponding to the `barcode_name` string barcode_alias = 6; // Only return data for the given ReadEndReason. @@ -857,11 +861,15 @@ message AcquisitionOutputSplit { // Split data for each lamp barcode id. // // Lamp barcodes are defined by the active lamp kit. + // + // DEPRECATED 6.0: Lamp support has been removed and this option will always be ignored. bool lamp_barcode_id = 4; // Split data for each lamp targets id. // // Lamp targets are defined by the active lamp kit. + // + // DEPRECATED 6.0: Lamp support has been removed and this option will always be ignored. bool lamp_target_id = 5; // Split returned data by read_end_reason diff --git a/python/minknow_api/__init__.py b/python/minknow_api/__init__.py index e9fefa2..f537284 100644 --- a/python/minknow_api/__init__.py +++ b/python/minknow_api/__init__.py @@ -32,6 +32,10 @@ analysis_configuration Configure data acquisition. See `analysis_configuration_service.AnalysisConfigurationService` for a description of the available methods. +analysis_workflows + Provides a way to manage anaylsis workflows that are ran after (or potentially during) + a protocol run. See `analysis_workflows_service.AnalysisWorkflowsService` for a description of + the available methods. data Stream acquisition data. Note that this is for data directly produced during acquisition, rather than statistics about acquired data. See `data_service.DataService` for a description of the @@ -85,7 +89,7 @@ import sys import threading import warnings -from datetime import datetime, timedelta +import datetime from typing import Any, Dict, Optional, Tuple, Union import grpc @@ -116,6 +120,7 @@ _services = { "acquisition": ["AcquisitionService"], "analysis_configuration": ["AnalysisConfigurationService"], + "analysis_workflows": ["AnalysisWorkflowsService"], "data": ["DataService"], "device": ["DeviceService"], "instance": ["InstanceService"], @@ -211,7 +216,7 @@ def _refresh_local_token(self) -> None: # actually expires self.expires_at = pyrfc3339.parse( token_json["expires"] - ) - timedelta(seconds=120) + ) - datetime.timedelta(seconds=120) logger.debug( "Found local auth token %s[...], expires at %s", self.token[:8], @@ -225,7 +230,10 @@ def _refresh_local_token(self) -> None: def __call__(self, context, callback): metadata = None if self.token: - now = datetime.utcnow().replace(tzinfo=pytz.UTC) + try: + now = datetime.datetime.now(datetime.UTC) + except AttributeError: + now = datetime.datetime.utcnow().replace(tzinfo=pytz.UTC) if now >= self.expires_at: self._refresh_local_token() diff --git a/python/minknow_api/_support.py b/python/minknow_api/_support.py index 5f62e9a..72f77eb 100644 --- a/python/minknow_api/_support.py +++ b/python/minknow_api/_support.py @@ -42,13 +42,13 @@ def __str__(self): return str(self._message) def __eq__(self, other): - if type(other) == MessageWrapper: + if isinstance(other, MessageWrapper): return self._message == other._message else: return self._message == other def __ne__(self, other): - if type(other) == MessageWrapper: + if isinstance(other, MessageWrapper): return self._message != other._message else: return self._message != other diff --git a/python/minknow_api/_version.py b/python/minknow_api/_version.py index 9af9785..ea0f379 100644 --- a/python/minknow_api/_version.py +++ b/python/minknow_api/_version.py @@ -1 +1 @@ -__version__ = '5.9.5' \ No newline at end of file +__version__ = '6.0.4' \ No newline at end of file diff --git a/python/minknow_api/acquisition_pb2.py b/python/minknow_api/acquisition_pb2.py index d63bf5e..13d8038 100644 --- a/python/minknow_api/acquisition_pb2.py +++ b/python/minknow_api/acquisition_pb2.py @@ -17,7 +17,7 @@ from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1dminknow_api/acquisition.proto\x12\x17minknow_api.acquisition\x1a\x1bminknow_api/run_until.proto\x1a\x1dminknow_api/rpc_options.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xd3\x03\n\x0cStartRequest\x12\"\n\x1a\x64ont_wait_for_device_ready\x18\x02 \x01(\x08\x12\x38\n\x0fgenerate_report\x18\x03 \x01(\x0e\x32\x1f.minknow_api.acquisition.Option\x12\x45\n\x1csend_sequencing_read_metrics\x18\x04 \x01(\x0e\x32\x1f.minknow_api.acquisition.Option\x12\x41\n\x18send_basecalling_metrics\x18\x05 \x01(\x0e\x32\x1f.minknow_api.acquisition.Option\x12\x31\n\x07purpose\x18\x06 \x01(\x0e\x32 .minknow_api.acquisition.Purpose\x12\x31\n\x08\x61nalysis\x18\x07 \x01(\x0e\x32\x1f.minknow_api.acquisition.Option\x12\x34\n\x0b\x66ile_output\x18\x08 \x01(\x0e\x32\x1f.minknow_api.acquisition.Option\x12?\n\x16generate_final_summary\x18\t \x01(\x0e\x32\x1f.minknow_api.acquisition.Option\"\x1f\n\rStartResponse\x12\x0e\n\x06run_id\x18\x01 \x01(\t\"\xe0\x01\n\x0bStopRequest\x12L\n\x13\x64\x61ta_action_on_stop\x18\x01 \x01(\x0e\x32/.minknow_api.acquisition.StopRequest.DataAction\x12\x18\n\x10wait_until_ready\x18\x02 \x01(\x08\x12\x15\n\rkeep_power_on\x18\x03 \x01(\x08\"R\n\nDataAction\x12\x10\n\x0cSTOP_DEFAULT\x10\x00\x12\x16\n\x12STOP_KEEP_ALL_DATA\x10\x01\x12\x1a\n\x16STOP_FINISH_PROCESSING\x10\x02\"\x0e\n\x0cStopResponse\"+\n\x1bWatchForStatusChangeRequest\x12\x0c\n\x04stop\x18\x01 \x01(\x08\"V\n\x1cWatchForStatusChangeResponse\x12\x36\n\x06status\x18\x01 \x01(\x0e\x32&.minknow_api.acquisition.MinknowStatus\"\x16\n\x14\x43urrentStatusRequest\"O\n\x15\x43urrentStatusResponse\x12\x36\n\x06status\x18\x01 \x01(\x0e\x32&.minknow_api.acquisition.MinknowStatus\"\x14\n\x12GetProgressRequest\"\xa0\x01\n\x13GetProgressResponse\x12S\n\x0fraw_per_channel\x18\x01 \x01(\x0b\x32:.minknow_api.acquisition.GetProgressResponse.RawPerChannel\x1a\x34\n\rRawPerChannel\x12\x10\n\x08\x61\x63quired\x18\x01 \x01(\x04\x12\x11\n\tprocessed\x18\x02 \x01(\x04\".\n\x1cGetAcquisitionRunInfoRequest\x12\x0e\n\x06run_id\x18\x01 \x01(\t\"\xcb\x08\n\x17\x41\x63quisitionYieldSummary\x12\x12\n\nread_count\x18\x01 \x01(\x03\x12\x1b\n\x13\x66raction_basecalled\x18\x14 \x01(\x02\x12\x18\n\x10\x66raction_skipped\x18\x15 \x01(\x02\x12\"\n\x1a\x62\x61secalled_pass_read_count\x18\x03 \x01(\x03\x12\"\n\x1a\x62\x61secalled_fail_read_count\x18\x04 \x01(\x03\x12%\n\x1d\x62\x61secalled_skipped_read_count\x18\n \x01(\x03\x12\x1d\n\x15\x62\x61secalled_pass_bases\x18\x05 \x01(\x03\x12\x1d\n\x15\x62\x61secalled_fail_bases\x18\x12 \x01(\x03\x12m\n\x1b\x62\x61secalled_pass_reads_split\x18\x16 \x01(\x0b\x32H.minknow_api.acquisition.AcquisitionYieldSummary.TotalsPerDuplexCategory\x12m\n\x1b\x62\x61secalled_fail_reads_split\x18\x17 \x01(\x0b\x32H.minknow_api.acquisition.AcquisitionYieldSummary.TotalsPerDuplexCategory\x12m\n\x1b\x62\x61secalled_pass_bases_split\x18\x18 \x01(\x0b\x32H.minknow_api.acquisition.AcquisitionYieldSummary.TotalsPerDuplexCategory\x12m\n\x1b\x62\x61secalled_fail_bases_split\x18\x19 \x01(\x0b\x32H.minknow_api.acquisition.AcquisitionYieldSummary.TotalsPerDuplexCategory\x12\x1a\n\x12\x62\x61secalled_samples\x18\x06 \x01(\x03\x12\x1c\n\x14selected_raw_samples\x18\x07 \x01(\x03\x12\x17\n\x0fselected_events\x18\x08 \x01(\x03\x12 \n\x18\x65stimated_selected_bases\x18\t \x01(\x03\x12\x19\n\x11\x61lignment_matches\x18\x0e \x01(\x03\x12\x1c\n\x14\x61lignment_mismatches\x18\x0f \x01(\x03\x12\x1c\n\x14\x61lignment_insertions\x18\x10 \x01(\x03\x12\x1b\n\x13\x61lignment_deletions\x18\x11 \x01(\x03\x12\x1a\n\x12\x61lignment_coverage\x18\x13 \x01(\x02\x1aw\n\x17TotalsPerDuplexCategory\x12\x0f\n\x07simplex\x18\x01 \x01(\x03\x12\x17\n\x0f\x64uplex_template\x18\x02 \x01(\x03\x12\x19\n\x11\x64uplex_complement\x18\x03 \x01(\x03\x12\x17\n\x0f\x64uplex_combined\x18\x04 \x01(\x03\"\x96\x01\n\x18\x41\x63quisitionWriterSummary\x12\x1f\n\x17\x62ytes_to_write_produced\x18\x02 \x01(\x03\x12\x1d\n\x15\x62ytes_to_write_failed\x18\x03 \x01(\x03\x12 \n\x18\x62ytes_to_write_completed\x18\x04 \x01(\x03J\x04\x08\x01\x10\x02R\x12written_read_count\"\xb0\x03\n\x10\x43hannelStateInfo\x12?\n\x06groups\x18\x01 \x03(\x0b\x32/.minknow_api.acquisition.ChannelStateInfo.Group\x1a;\n\x05Style\x12\r\n\x05label\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x0e\n\x06\x63olour\x18\x03 \x01(\t\x1a~\n\x0c\x43hannelState\x12\n\n\x02id\x18\x01 \x01(\r\x12\x0c\n\x04name\x18\x02 \x01(\t\x12>\n\x05style\x18\x03 \x01(\x0b\x32/.minknow_api.acquisition.ChannelStateInfo.Style\x12\x14\n\x0cglobal_order\x18\x04 \x01(\r\x1a\x9d\x01\n\x05Group\x12\x0c\n\x04name\x18\x01 \x01(\t\x12>\n\x05style\x18\x02 \x01(\x0b\x32/.minknow_api.acquisition.ChannelStateInfo.Style\x12\x46\n\x06states\x18\x03 \x03(\x0b\x32\x36.minknow_api.acquisition.ChannelStateInfo.ChannelState\"\xb9\x05\n\x18\x41\x63quisitionConfigSummary\x12\x31\n\x07purpose\x18\x15 \x01(\x0e\x32 .minknow_api.acquisition.Purpose\x12\x1b\n\x13\x62\x61secalling_enabled\x18\x01 \x01(\x08\x12#\n\x1b\x62\x61secalling_config_filename\x18\x10 \x01(\t\x12\x16\n\x0e\x64uplex_enabled\x18\x17 \x01(\x08\x12\x19\n\x11\x62\x61rcoding_enabled\x18\r \x01(\x08\x12\x16\n\x0e\x62\x61rcoding_kits\x18\x11 \x03(\t\x12\x19\n\x11\x61lignment_enabled\x18\x0e \x01(\x08\x12!\n\x19\x61lignment_reference_files\x18\x12 \x03(\t\x12\x1a\n\x12\x61lignment_bed_file\x18\x13 \x01(\t\x12\x14\n\x0clamp_enabled\x18\x0f \x01(\x08\x12\x10\n\x08lamp_kit\x18\x14 \x01(\t\x12\x17\n\x0freads_directory\x18\x02 \x01(\t\x12\"\n\x1areads_fallback_directories\x18\x03 \x03(\t\x12\x1b\n\x13\x66\x61st5_reads_enabled\x18\x04 \x01(\x08\x12\x1b\n\x13\x66\x61stq_reads_enabled\x18\x05 \x01(\x08\x12\x1a\n\x12pod5_reads_enabled\x18\x16 \x01(\x08\x12\x16\n\x0e\x62ulk_file_path\x18\x07 \x01(\t\x12\x19\n\x11\x62ulk_file_enabled\x18\x08 \x01(\x08\x12\x45\n\x12\x63hannel_state_info\x18\t \x01(\x0b\x32).minknow_api.acquisition.ChannelStateInfo\x12\x1c\n\x14\x65vents_to_base_ratio\x18\n \x01(\x02\x12\x13\n\x0bsample_rate\x18\x0b \x01(\r\x12\x15\n\rchannel_count\x18\x0c \x01(\rJ\x04\x08\x06\x10\x07\"\xd6\x03\n\x0fMuxScanMetadata\x12\"\n\x1a\x61uto_mux_scan_period_hours\x18\x01 \x01(\x02\x12O\n\x0f\x63\x61tegory_groups\x18\x02 \x03(\x0b\x32\x36.minknow_api.acquisition.MuxScanMetadata.CategoryGroup\x1a;\n\x05Style\x12\r\n\x05label\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x0e\n\x06\x63olour\x18\x03 \x01(\t\x1am\n\x08\x43\x61tegory\x12\x0c\n\x04name\x18\x01 \x01(\t\x12=\n\x05style\x18\x02 \x01(\x0b\x32..minknow_api.acquisition.MuxScanMetadata.Style\x12\x14\n\x0cglobal_order\x18\x03 \x01(\r\x1a\xa1\x01\n\rCategoryGroup\x12\x0c\n\x04name\x18\x01 \x01(\t\x12=\n\x05style\x18\x02 \x01(\x0b\x32..minknow_api.acquisition.MuxScanMetadata.Style\x12\x43\n\x08\x63\x61tegory\x18\x03 \x03(\x0b\x32\x31.minknow_api.acquisition.MuxScanMetadata.Category\"\x9e\x01\n\rMuxScanResult\x12\x42\n\x06\x63ounts\x18\x01 \x03(\x0b\x32\x32.minknow_api.acquisition.MuxScanResult.CountsEntry\x12\x1a\n\x12mux_scan_timestamp\x18\x02 \x01(\x04\x1a-\n\x0b\x43ountsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\r:\x02\x38\x01\"\x93\x03\n\tBreamInfo\x12\x43\n\x11mux_scan_metadata\x18\x01 \x01(\x0b\x32(.minknow_api.acquisition.MuxScanMetadata\x12@\n\x10mux_scan_results\x18\x02 \x03(\x0b\x32&.minknow_api.acquisition.MuxScanResult\x12L\n\x1atarget_translocation_speed\x18\x03 \x01(\x0b\x32(.minknow_api.acquisition.BreamInfo.Range\x12@\n\x0etarget_q_score\x18\x04 \x01(\x0b\x32(.minknow_api.acquisition.BreamInfo.Range\x12\x44\n\x12target_temperature\x18\x05 \x01(\x0b\x32(.minknow_api.acquisition.BreamInfo.Range\x1a)\n\x05Range\x12\x0f\n\x07minimum\x18\x01 \x01(\x01\x12\x0f\n\x07maximum\x18\x02 \x01(\x01\"\x95\x01\n\x16TargetRunUntilCriteria\x12=\n\x0epause_criteria\x18\x01 \x01(\x0b\x32%.minknow_api.run_until.CriteriaValues\x12<\n\rstop_criteria\x18\x02 \x01(\x0b\x32%.minknow_api.run_until.CriteriaValues\"\xd1\x07\n\x12\x41\x63quisitionRunInfo\x12\x0e\n\x06run_id\x18\x01 \x01(\t\x12<\n\rstartup_state\x18\x0c \x01(\x0e\x32%.minknow_api.acquisition.StartupState\x12?\n\x1bstartup_state_estimated_end\x18\r \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x30\n(startup_state_estimated_percent_complete\x18\x0e \x01(\x02\x12\x38\n\x05state\x18\x02 \x01(\x0e\x32).minknow_api.acquisition.AcquisitionState\x12@\n\x0f\x66inishing_state\x18\n \x01(\x0e\x32\'.minknow_api.acquisition.FinishingState\x12\x43\n\x0bstop_reason\x18\x03 \x01(\x0e\x32..minknow_api.acquisition.AcquisitionStopReason\x12.\n\nstart_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x38\n\x14\x64\x61ta_read_start_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x36\n\x12\x64\x61ta_read_end_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12,\n\x08\x65nd_time\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12G\n\ryield_summary\x18\x08 \x01(\x0b\x32\x30.minknow_api.acquisition.AcquisitionYieldSummary\x12I\n\x0e\x63onfig_summary\x18\t \x01(\x0b\x32\x31.minknow_api.acquisition.AcquisitionConfigSummary\x12I\n\x0ewriter_summary\x18\x0b \x01(\x0b\x32\x31.minknow_api.acquisition.AcquisitionWriterSummary\x12\x36\n\nbream_info\x18\x0f \x01(\x0b\x32\".minknow_api.acquisition.BreamInfo\x12R\n\x19target_run_until_criteria\x18\x10 \x01(\x0b\x32/.minknow_api.acquisition.TargetRunUntilCriteria\"\x1c\n\x1aListAcquisitionRunsRequest\".\n\x1bListAcquisitionRunsResponse\x12\x0f\n\x07run_ids\x18\x01 \x03(\t\"!\n\x1fGetCurrentAcquisitionRunRequest\"#\n!WatchCurrentAcquisitionRunRequest\"\xdf\x02\n\x16SetSignalReaderRequest\x12V\n\x06reader\x18\x01 \x01(\x0e\x32@.minknow_api.acquisition.SetSignalReaderRequest.SignalReaderTypeB\x04\x88\xb5\x18\x01\x12\x12\n\nhdf_source\x18\x02 \x01(\t\x12P\n\x08hdf_mode\x18\x03 \x01(\x0e\x32>.minknow_api.acquisition.SetSignalReaderRequest.SourceFileMode\x12 \n\x18sample_rate_scale_factor\x18\x04 \x01(\x02\"(\n\x10SignalReaderType\x12\x08\n\x04HDF5\x10\x00\x12\n\n\x06\x44\x45VICE\x10\x01\";\n\x0eSourceFileMode\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0e\n\nSINGLE_RUN\x10\x01\x12\x08\n\x04LOOP\x10\x02\"\x19\n\x17SetSignalReaderResponse\"g\n\x13SetBreamInfoRequest\x12\x30\n\x04info\x18\x01 \x01(\x0b\x32\".minknow_api.acquisition.BreamInfo\x12\x1e\n\x16overwrite_unset_fields\x18\x02 \x01(\x08\"\x16\n\x14SetBreamInfoResponse\"\x1d\n\x1b\x41ppendMuxScanResultResponse*Y\n\rMinknowStatus\x12\x10\n\x0c\x45RROR_STATUS\x10\x00\x12\t\n\x05READY\x10\x01\x12\x0c\n\x08STARTING\x10\x02\x12\x0e\n\nPROCESSING\x10\x03\x12\r\n\tFINISHING\x10\x04**\n\x06Option\x12\x08\n\x04\x41UTO\x10\x00\x12\x0b\n\x07\x44ISABLE\x10\x01\x12\t\n\x05\x46ORCE\x10\x02*=\n\x07Purpose\x12\x11\n\rOTHER_PURPOSE\x10\x00\x12\x0e\n\nSEQUENCING\x10\x02\x12\x0f\n\x0b\x43\x41LIBRATION\x10\x03*{\n\x10\x41\x63quisitionState\x12\x18\n\x14\x41\x43QUISITION_STARTING\x10\x00\x12\x17\n\x13\x41\x43QUISITION_RUNNING\x10\x01\x12\x19\n\x15\x41\x43QUISITION_FINISHING\x10\x02\x12\x19\n\x15\x41\x43QUISITION_COMPLETED\x10\x03*\xb2\x02\n\x15\x41\x63quisitionStopReason\x12\x13\n\x0fSTOPPED_NOT_SET\x10\x00\x12\x1a\n\x16STOPPED_USER_REQUESTED\x10\x01\x12\x19\n\x15STOPPED_NO_DISK_SPACE\x10\x02\x12&\n\"STOPPED_DEVICE_STOPPED_ACQUISITION\x10\x03\x12 \n\x1cSTOPPED_STARTING_ANOTHER_RUN\x10\x04\x12\x1a\n\x16STOPPED_PROTOCOL_ENDED\x10\x05\x12\x18\n\x14STOPPED_DEVICE_ERROR\x10\x06\x12\x1b\n\x17STOPPED_BAD_TEMPERATURE\x10\x07\x12\x14\n\x10STOPPED_SHUTDOWN\x10\x08\x12\x1a\n\x16STOPPED_INTERNAL_ERROR\x10\t*\x96\x02\n\x0cStartupState\x12\x13\n\x0fSTARTUP_UNKNOWN\x10\x00\x12\x1d\n\x19STARTUP_BUILDING_PIPELINE\x10\x02\x12#\n\x1fSTARTUP_INITIALISING_BASECALLER\x10\x03\x12-\n)STARTUP_INITIALISING_BASECALLER_ALIGNMENT\x10\x04\x12%\n!STARTUP_INITIALISING_DATA_WRITERS\x10\x05\x12\x32\n.STARTUP_INITIALISING_INTERMEDIATE_DATA_STORAGE\x10\x06\x12#\n\x1fSTARTUP_INITIALISING_STATISTICS\x10\x07*\x8b\x01\n\x0e\x46inishingState\x12\x15\n\x11\x46INISHING_UNKNOWN\x10\x00\x12&\n\"FINISHING_PROCESSING_DEVICE_SIGNAL\x10\x01\x12\x1f\n\x1b\x46INISHING_BASECALLING_READS\x10\x02\x12\x19\n\x15\x46INISHING_SAVING_DATA\x10\x03\x32\xd4\x0b\n\x12\x41\x63quisitionService\x12X\n\x05start\x12%.minknow_api.acquisition.StartRequest\x1a&.minknow_api.acquisition.StartResponse\"\x00\x12U\n\x04stop\x12$.minknow_api.acquisition.StopRequest\x1a%.minknow_api.acquisition.StopResponse\"\x00\x12\x8f\x01\n\x17watch_for_status_change\x12\x34.minknow_api.acquisition.WatchForStatusChangeRequest\x1a\x35.minknow_api.acquisition.WatchForStatusChangeResponse\"\x03\x90\x02\x01(\x01\x30\x01\x12\x8f\x01\n\x1dwatch_current_acquisition_run\x12:.minknow_api.acquisition.WatchCurrentAcquisitionRunRequest\x1a+.minknow_api.acquisition.AcquisitionRunInfo\"\x03\x90\x02\x01\x30\x01\x12t\n\x0e\x63urrent_status\x12-.minknow_api.acquisition.CurrentStatusRequest\x1a..minknow_api.acquisition.CurrentStatusResponse\"\x03\x90\x02\x01\x12n\n\x0cget_progress\x12+.minknow_api.acquisition.GetProgressRequest\x1a,.minknow_api.acquisition.GetProgressResponse\"\x03\x90\x02\x01\x12\x7f\n\x14get_acquisition_info\x12\x35.minknow_api.acquisition.GetAcquisitionRunInfoRequest\x1a+.minknow_api.acquisition.AcquisitionRunInfo\"\x03\x90\x02\x01\x12\x87\x01\n\x15list_acquisition_runs\x12\x33.minknow_api.acquisition.ListAcquisitionRunsRequest\x1a\x34.minknow_api.acquisition.ListAcquisitionRunsResponse\"\x03\x90\x02\x01\x12\x89\x01\n\x1bget_current_acquisition_run\x12\x38.minknow_api.acquisition.GetCurrentAcquisitionRunRequest\x1a+.minknow_api.acquisition.AcquisitionRunInfo\"\x03\x90\x02\x01\x12{\n\x11set_signal_reader\x12/.minknow_api.acquisition.SetSignalReaderRequest\x1a\x30.minknow_api.acquisition.SetSignalReaderResponse\"\x03\x90\x02\x02\x12r\n\x0eset_bream_info\x12,.minknow_api.acquisition.SetBreamInfoRequest\x1a-.minknow_api.acquisition.SetBreamInfoResponse\"\x03\x90\x02\x02\x12{\n\x16\x61ppend_mux_scan_result\x12&.minknow_api.acquisition.MuxScanResult\x1a\x34.minknow_api.acquisition.AppendMuxScanResultResponse\"\x03\x90\x02\x02\x42&\n\x1c\x63om.nanoporetech.minknow_api\xa2\x02\x05MKAPIb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1dminknow_api/acquisition.proto\x12\x17minknow_api.acquisition\x1a\x1bminknow_api/run_until.proto\x1a\x1dminknow_api/rpc_options.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xd3\x03\n\x0cStartRequest\x12\"\n\x1a\x64ont_wait_for_device_ready\x18\x02 \x01(\x08\x12\x38\n\x0fgenerate_report\x18\x03 \x01(\x0e\x32\x1f.minknow_api.acquisition.Option\x12\x45\n\x1csend_sequencing_read_metrics\x18\x04 \x01(\x0e\x32\x1f.minknow_api.acquisition.Option\x12\x41\n\x18send_basecalling_metrics\x18\x05 \x01(\x0e\x32\x1f.minknow_api.acquisition.Option\x12\x31\n\x07purpose\x18\x06 \x01(\x0e\x32 .minknow_api.acquisition.Purpose\x12\x31\n\x08\x61nalysis\x18\x07 \x01(\x0e\x32\x1f.minknow_api.acquisition.Option\x12\x34\n\x0b\x66ile_output\x18\x08 \x01(\x0e\x32\x1f.minknow_api.acquisition.Option\x12?\n\x16generate_final_summary\x18\t \x01(\x0e\x32\x1f.minknow_api.acquisition.Option\"\x1f\n\rStartResponse\x12\x0e\n\x06run_id\x18\x01 \x01(\t\"\xe0\x01\n\x0bStopRequest\x12L\n\x13\x64\x61ta_action_on_stop\x18\x01 \x01(\x0e\x32/.minknow_api.acquisition.StopRequest.DataAction\x12\x18\n\x10wait_until_ready\x18\x02 \x01(\x08\x12\x15\n\rkeep_power_on\x18\x03 \x01(\x08\"R\n\nDataAction\x12\x10\n\x0cSTOP_DEFAULT\x10\x00\x12\x16\n\x12STOP_KEEP_ALL_DATA\x10\x01\x12\x1a\n\x16STOP_FINISH_PROCESSING\x10\x02\"\x0e\n\x0cStopResponse\"+\n\x1bWatchForStatusChangeRequest\x12\x0c\n\x04stop\x18\x01 \x01(\x08\"V\n\x1cWatchForStatusChangeResponse\x12\x36\n\x06status\x18\x01 \x01(\x0e\x32&.minknow_api.acquisition.MinknowStatus\"\x16\n\x14\x43urrentStatusRequest\"O\n\x15\x43urrentStatusResponse\x12\x36\n\x06status\x18\x01 \x01(\x0e\x32&.minknow_api.acquisition.MinknowStatus\"\x14\n\x12GetProgressRequest\"\xa0\x01\n\x13GetProgressResponse\x12S\n\x0fraw_per_channel\x18\x01 \x01(\x0b\x32:.minknow_api.acquisition.GetProgressResponse.RawPerChannel\x1a\x34\n\rRawPerChannel\x12\x10\n\x08\x61\x63quired\x18\x01 \x01(\x04\x12\x11\n\tprocessed\x18\x02 \x01(\x04\".\n\x1cGetAcquisitionRunInfoRequest\x12\x0e\n\x06run_id\x18\x01 \x01(\t\"\xcb\x08\n\x17\x41\x63quisitionYieldSummary\x12\x12\n\nread_count\x18\x01 \x01(\x03\x12\x1b\n\x13\x66raction_basecalled\x18\x14 \x01(\x02\x12\x18\n\x10\x66raction_skipped\x18\x15 \x01(\x02\x12\"\n\x1a\x62\x61secalled_pass_read_count\x18\x03 \x01(\x03\x12\"\n\x1a\x62\x61secalled_fail_read_count\x18\x04 \x01(\x03\x12%\n\x1d\x62\x61secalled_skipped_read_count\x18\n \x01(\x03\x12\x1d\n\x15\x62\x61secalled_pass_bases\x18\x05 \x01(\x03\x12\x1d\n\x15\x62\x61secalled_fail_bases\x18\x12 \x01(\x03\x12m\n\x1b\x62\x61secalled_pass_reads_split\x18\x16 \x01(\x0b\x32H.minknow_api.acquisition.AcquisitionYieldSummary.TotalsPerDuplexCategory\x12m\n\x1b\x62\x61secalled_fail_reads_split\x18\x17 \x01(\x0b\x32H.minknow_api.acquisition.AcquisitionYieldSummary.TotalsPerDuplexCategory\x12m\n\x1b\x62\x61secalled_pass_bases_split\x18\x18 \x01(\x0b\x32H.minknow_api.acquisition.AcquisitionYieldSummary.TotalsPerDuplexCategory\x12m\n\x1b\x62\x61secalled_fail_bases_split\x18\x19 \x01(\x0b\x32H.minknow_api.acquisition.AcquisitionYieldSummary.TotalsPerDuplexCategory\x12\x1a\n\x12\x62\x61secalled_samples\x18\x06 \x01(\x03\x12\x1c\n\x14selected_raw_samples\x18\x07 \x01(\x03\x12\x17\n\x0fselected_events\x18\x08 \x01(\x03\x12 \n\x18\x65stimated_selected_bases\x18\t \x01(\x03\x12\x19\n\x11\x61lignment_matches\x18\x0e \x01(\x03\x12\x1c\n\x14\x61lignment_mismatches\x18\x0f \x01(\x03\x12\x1c\n\x14\x61lignment_insertions\x18\x10 \x01(\x03\x12\x1b\n\x13\x61lignment_deletions\x18\x11 \x01(\x03\x12\x1a\n\x12\x61lignment_coverage\x18\x13 \x01(\x02\x1aw\n\x17TotalsPerDuplexCategory\x12\x0f\n\x07simplex\x18\x01 \x01(\x03\x12\x17\n\x0f\x64uplex_template\x18\x02 \x01(\x03\x12\x19\n\x11\x64uplex_complement\x18\x03 \x01(\x03\x12\x17\n\x0f\x64uplex_combined\x18\x04 \x01(\x03\"\x96\x01\n\x18\x41\x63quisitionWriterSummary\x12\x1f\n\x17\x62ytes_to_write_produced\x18\x02 \x01(\x03\x12\x1d\n\x15\x62ytes_to_write_failed\x18\x03 \x01(\x03\x12 \n\x18\x62ytes_to_write_completed\x18\x04 \x01(\x03J\x04\x08\x01\x10\x02R\x12written_read_count\"\xb0\x03\n\x10\x43hannelStateInfo\x12?\n\x06groups\x18\x01 \x03(\x0b\x32/.minknow_api.acquisition.ChannelStateInfo.Group\x1a;\n\x05Style\x12\r\n\x05label\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x0e\n\x06\x63olour\x18\x03 \x01(\t\x1a~\n\x0c\x43hannelState\x12\n\n\x02id\x18\x01 \x01(\r\x12\x0c\n\x04name\x18\x02 \x01(\t\x12>\n\x05style\x18\x03 \x01(\x0b\x32/.minknow_api.acquisition.ChannelStateInfo.Style\x12\x14\n\x0cglobal_order\x18\x04 \x01(\r\x1a\x9d\x01\n\x05Group\x12\x0c\n\x04name\x18\x01 \x01(\t\x12>\n\x05style\x18\x02 \x01(\x0b\x32/.minknow_api.acquisition.ChannelStateInfo.Style\x12\x46\n\x06states\x18\x03 \x03(\x0b\x32\x36.minknow_api.acquisition.ChannelStateInfo.ChannelState\"\xdc\x05\n\x18\x41\x63quisitionConfigSummary\x12\x31\n\x07purpose\x18\x15 \x01(\x0e\x32 .minknow_api.acquisition.Purpose\x12\x1b\n\x13\x62\x61secalling_enabled\x18\x01 \x01(\x08\x12#\n\x1b\x62\x61secalling_config_filename\x18\x10 \x01(\t\x12!\n\x19\x62\x61secalling_model_version\x18\x18 \x01(\t\x12\x16\n\x0e\x64uplex_enabled\x18\x17 \x01(\x08\x12\x19\n\x11\x62\x61rcoding_enabled\x18\r \x01(\x08\x12\x16\n\x0e\x62\x61rcoding_kits\x18\x11 \x03(\t\x12\x19\n\x11\x61lignment_enabled\x18\x0e \x01(\x08\x12!\n\x19\x61lignment_reference_files\x18\x12 \x03(\t\x12\x1a\n\x12\x61lignment_bed_file\x18\x13 \x01(\t\x12\x14\n\x0clamp_enabled\x18\x0f \x01(\x08\x12\x10\n\x08lamp_kit\x18\x14 \x01(\t\x12\x17\n\x0freads_directory\x18\x02 \x01(\t\x12\"\n\x1areads_fallback_directories\x18\x03 \x03(\t\x12\x1b\n\x13\x66\x61st5_reads_enabled\x18\x04 \x01(\x08\x12\x1b\n\x13\x66\x61stq_reads_enabled\x18\x05 \x01(\x08\x12\x1a\n\x12pod5_reads_enabled\x18\x16 \x01(\x08\x12\x16\n\x0e\x62ulk_file_path\x18\x07 \x01(\t\x12\x19\n\x11\x62ulk_file_enabled\x18\x08 \x01(\x08\x12\x45\n\x12\x63hannel_state_info\x18\t \x01(\x0b\x32).minknow_api.acquisition.ChannelStateInfo\x12\x1c\n\x14\x65vents_to_base_ratio\x18\n \x01(\x02\x12\x13\n\x0bsample_rate\x18\x0b \x01(\r\x12\x15\n\rchannel_count\x18\x0c \x01(\rJ\x04\x08\x06\x10\x07\"\xd6\x03\n\x0fMuxScanMetadata\x12\"\n\x1a\x61uto_mux_scan_period_hours\x18\x01 \x01(\x02\x12O\n\x0f\x63\x61tegory_groups\x18\x02 \x03(\x0b\x32\x36.minknow_api.acquisition.MuxScanMetadata.CategoryGroup\x1a;\n\x05Style\x12\r\n\x05label\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x0e\n\x06\x63olour\x18\x03 \x01(\t\x1am\n\x08\x43\x61tegory\x12\x0c\n\x04name\x18\x01 \x01(\t\x12=\n\x05style\x18\x02 \x01(\x0b\x32..minknow_api.acquisition.MuxScanMetadata.Style\x12\x14\n\x0cglobal_order\x18\x03 \x01(\r\x1a\xa1\x01\n\rCategoryGroup\x12\x0c\n\x04name\x18\x01 \x01(\t\x12=\n\x05style\x18\x02 \x01(\x0b\x32..minknow_api.acquisition.MuxScanMetadata.Style\x12\x43\n\x08\x63\x61tegory\x18\x03 \x03(\x0b\x32\x31.minknow_api.acquisition.MuxScanMetadata.Category\"\x9e\x01\n\rMuxScanResult\x12\x42\n\x06\x63ounts\x18\x01 \x03(\x0b\x32\x32.minknow_api.acquisition.MuxScanResult.CountsEntry\x12\x1a\n\x12mux_scan_timestamp\x18\x02 \x01(\x04\x1a-\n\x0b\x43ountsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\r:\x02\x38\x01\"\x93\x03\n\tBreamInfo\x12\x43\n\x11mux_scan_metadata\x18\x01 \x01(\x0b\x32(.minknow_api.acquisition.MuxScanMetadata\x12@\n\x10mux_scan_results\x18\x02 \x03(\x0b\x32&.minknow_api.acquisition.MuxScanResult\x12L\n\x1atarget_translocation_speed\x18\x03 \x01(\x0b\x32(.minknow_api.acquisition.BreamInfo.Range\x12@\n\x0etarget_q_score\x18\x04 \x01(\x0b\x32(.minknow_api.acquisition.BreamInfo.Range\x12\x44\n\x12target_temperature\x18\x05 \x01(\x0b\x32(.minknow_api.acquisition.BreamInfo.Range\x1a)\n\x05Range\x12\x0f\n\x07minimum\x18\x01 \x01(\x01\x12\x0f\n\x07maximum\x18\x02 \x01(\x01\"\x95\x01\n\x16TargetRunUntilCriteria\x12=\n\x0epause_criteria\x18\x01 \x01(\x0b\x32%.minknow_api.run_until.CriteriaValues\x12<\n\rstop_criteria\x18\x02 \x01(\x0b\x32%.minknow_api.run_until.CriteriaValues\"\xfb\x07\n\x12\x41\x63quisitionRunInfo\x12\x0e\n\x06run_id\x18\x01 \x01(\t\x12<\n\rstartup_state\x18\x0c \x01(\x0e\x32%.minknow_api.acquisition.StartupState\x12?\n\x1bstartup_state_estimated_end\x18\r \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x30\n(startup_state_estimated_percent_complete\x18\x0e \x01(\x02\x12\x38\n\x05state\x18\x02 \x01(\x0e\x32).minknow_api.acquisition.AcquisitionState\x12@\n\x0f\x66inishing_state\x18\n \x01(\x0e\x32\'.minknow_api.acquisition.FinishingState\x12(\n finishing_state_percent_complete\x18\x11 \x01(\x02\x12\x43\n\x0bstop_reason\x18\x03 \x01(\x0e\x32..minknow_api.acquisition.AcquisitionStopReason\x12.\n\nstart_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x38\n\x14\x64\x61ta_read_start_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x36\n\x12\x64\x61ta_read_end_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12,\n\x08\x65nd_time\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12G\n\ryield_summary\x18\x08 \x01(\x0b\x32\x30.minknow_api.acquisition.AcquisitionYieldSummary\x12I\n\x0e\x63onfig_summary\x18\t \x01(\x0b\x32\x31.minknow_api.acquisition.AcquisitionConfigSummary\x12I\n\x0ewriter_summary\x18\x0b \x01(\x0b\x32\x31.minknow_api.acquisition.AcquisitionWriterSummary\x12\x36\n\nbream_info\x18\x0f \x01(\x0b\x32\".minknow_api.acquisition.BreamInfo\x12R\n\x19target_run_until_criteria\x18\x10 \x01(\x0b\x32/.minknow_api.acquisition.TargetRunUntilCriteria\"\x1c\n\x1aListAcquisitionRunsRequest\".\n\x1bListAcquisitionRunsResponse\x12\x0f\n\x07run_ids\x18\x01 \x03(\t\"!\n\x1fGetCurrentAcquisitionRunRequest\"#\n!WatchCurrentAcquisitionRunRequest\"\xdf\x02\n\x16SetSignalReaderRequest\x12V\n\x06reader\x18\x01 \x01(\x0e\x32@.minknow_api.acquisition.SetSignalReaderRequest.SignalReaderTypeB\x04\x88\xb5\x18\x01\x12\x12\n\nhdf_source\x18\x02 \x01(\t\x12P\n\x08hdf_mode\x18\x03 \x01(\x0e\x32>.minknow_api.acquisition.SetSignalReaderRequest.SourceFileMode\x12 \n\x18sample_rate_scale_factor\x18\x04 \x01(\x02\"(\n\x10SignalReaderType\x12\x08\n\x04HDF5\x10\x00\x12\n\n\x06\x44\x45VICE\x10\x01\";\n\x0eSourceFileMode\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0e\n\nSINGLE_RUN\x10\x01\x12\x08\n\x04LOOP\x10\x02\"\x19\n\x17SetSignalReaderResponse\"g\n\x13SetBreamInfoRequest\x12\x30\n\x04info\x18\x01 \x01(\x0b\x32\".minknow_api.acquisition.BreamInfo\x12\x1e\n\x16overwrite_unset_fields\x18\x02 \x01(\x08\"\x16\n\x14SetBreamInfoResponse\"\x1d\n\x1b\x41ppendMuxScanResultResponse*Y\n\rMinknowStatus\x12\x10\n\x0c\x45RROR_STATUS\x10\x00\x12\t\n\x05READY\x10\x01\x12\x0c\n\x08STARTING\x10\x02\x12\x0e\n\nPROCESSING\x10\x03\x12\r\n\tFINISHING\x10\x04**\n\x06Option\x12\x08\n\x04\x41UTO\x10\x00\x12\x0b\n\x07\x44ISABLE\x10\x01\x12\t\n\x05\x46ORCE\x10\x02*=\n\x07Purpose\x12\x11\n\rOTHER_PURPOSE\x10\x00\x12\x0e\n\nSEQUENCING\x10\x02\x12\x0f\n\x0b\x43\x41LIBRATION\x10\x03*{\n\x10\x41\x63quisitionState\x12\x18\n\x14\x41\x43QUISITION_STARTING\x10\x00\x12\x17\n\x13\x41\x43QUISITION_RUNNING\x10\x01\x12\x19\n\x15\x41\x43QUISITION_FINISHING\x10\x02\x12\x19\n\x15\x41\x43QUISITION_COMPLETED\x10\x03*\xb2\x02\n\x15\x41\x63quisitionStopReason\x12\x13\n\x0fSTOPPED_NOT_SET\x10\x00\x12\x1a\n\x16STOPPED_USER_REQUESTED\x10\x01\x12\x19\n\x15STOPPED_NO_DISK_SPACE\x10\x02\x12&\n\"STOPPED_DEVICE_STOPPED_ACQUISITION\x10\x03\x12 \n\x1cSTOPPED_STARTING_ANOTHER_RUN\x10\x04\x12\x1a\n\x16STOPPED_PROTOCOL_ENDED\x10\x05\x12\x18\n\x14STOPPED_DEVICE_ERROR\x10\x06\x12\x1b\n\x17STOPPED_BAD_TEMPERATURE\x10\x07\x12\x14\n\x10STOPPED_SHUTDOWN\x10\x08\x12\x1a\n\x16STOPPED_INTERNAL_ERROR\x10\t*\x96\x02\n\x0cStartupState\x12\x13\n\x0fSTARTUP_UNKNOWN\x10\x00\x12\x1d\n\x19STARTUP_BUILDING_PIPELINE\x10\x02\x12#\n\x1fSTARTUP_INITIALISING_BASECALLER\x10\x03\x12-\n)STARTUP_INITIALISING_BASECALLER_ALIGNMENT\x10\x04\x12%\n!STARTUP_INITIALISING_DATA_WRITERS\x10\x05\x12\x32\n.STARTUP_INITIALISING_INTERMEDIATE_DATA_STORAGE\x10\x06\x12#\n\x1fSTARTUP_INITIALISING_STATISTICS\x10\x07*\x8b\x01\n\x0e\x46inishingState\x12\x15\n\x11\x46INISHING_UNKNOWN\x10\x00\x12&\n\"FINISHING_PROCESSING_DEVICE_SIGNAL\x10\x01\x12\x1f\n\x1b\x46INISHING_BASECALLING_READS\x10\x02\x12\x19\n\x15\x46INISHING_SAVING_DATA\x10\x03\x32\xd4\x0b\n\x12\x41\x63quisitionService\x12X\n\x05start\x12%.minknow_api.acquisition.StartRequest\x1a&.minknow_api.acquisition.StartResponse\"\x00\x12U\n\x04stop\x12$.minknow_api.acquisition.StopRequest\x1a%.minknow_api.acquisition.StopResponse\"\x00\x12\x8f\x01\n\x17watch_for_status_change\x12\x34.minknow_api.acquisition.WatchForStatusChangeRequest\x1a\x35.minknow_api.acquisition.WatchForStatusChangeResponse\"\x03\x90\x02\x01(\x01\x30\x01\x12\x8f\x01\n\x1dwatch_current_acquisition_run\x12:.minknow_api.acquisition.WatchCurrentAcquisitionRunRequest\x1a+.minknow_api.acquisition.AcquisitionRunInfo\"\x03\x90\x02\x01\x30\x01\x12t\n\x0e\x63urrent_status\x12-.minknow_api.acquisition.CurrentStatusRequest\x1a..minknow_api.acquisition.CurrentStatusResponse\"\x03\x90\x02\x01\x12n\n\x0cget_progress\x12+.minknow_api.acquisition.GetProgressRequest\x1a,.minknow_api.acquisition.GetProgressResponse\"\x03\x90\x02\x01\x12\x7f\n\x14get_acquisition_info\x12\x35.minknow_api.acquisition.GetAcquisitionRunInfoRequest\x1a+.minknow_api.acquisition.AcquisitionRunInfo\"\x03\x90\x02\x01\x12\x87\x01\n\x15list_acquisition_runs\x12\x33.minknow_api.acquisition.ListAcquisitionRunsRequest\x1a\x34.minknow_api.acquisition.ListAcquisitionRunsResponse\"\x03\x90\x02\x01\x12\x89\x01\n\x1bget_current_acquisition_run\x12\x38.minknow_api.acquisition.GetCurrentAcquisitionRunRequest\x1a+.minknow_api.acquisition.AcquisitionRunInfo\"\x03\x90\x02\x01\x12{\n\x11set_signal_reader\x12/.minknow_api.acquisition.SetSignalReaderRequest\x1a\x30.minknow_api.acquisition.SetSignalReaderResponse\"\x03\x90\x02\x02\x12r\n\x0eset_bream_info\x12,.minknow_api.acquisition.SetBreamInfoRequest\x1a-.minknow_api.acquisition.SetBreamInfoResponse\"\x03\x90\x02\x02\x12{\n\x16\x61ppend_mux_scan_result\x12&.minknow_api.acquisition.MuxScanResult\x1a\x34.minknow_api.acquisition.AppendMuxScanResultResponse\"\x03\x90\x02\x02\x42&\n\x1c\x63om.nanoporetech.minknow_api\xa2\x02\x05MKAPIb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -49,20 +49,20 @@ _globals['_ACQUISITIONSERVICE'].methods_by_name['set_bream_info']._serialized_options = b'\220\002\002' _globals['_ACQUISITIONSERVICE'].methods_by_name['append_mux_scan_result']._options = None _globals['_ACQUISITIONSERVICE'].methods_by_name['append_mux_scan_result']._serialized_options = b'\220\002\002' - _globals['_MINKNOWSTATUS']._serialized_start=6621 - _globals['_MINKNOWSTATUS']._serialized_end=6710 - _globals['_OPTION']._serialized_start=6712 - _globals['_OPTION']._serialized_end=6754 - _globals['_PURPOSE']._serialized_start=6756 - _globals['_PURPOSE']._serialized_end=6817 - _globals['_ACQUISITIONSTATE']._serialized_start=6819 - _globals['_ACQUISITIONSTATE']._serialized_end=6942 - _globals['_ACQUISITIONSTOPREASON']._serialized_start=6945 - _globals['_ACQUISITIONSTOPREASON']._serialized_end=7251 - _globals['_STARTUPSTATE']._serialized_start=7254 - _globals['_STARTUPSTATE']._serialized_end=7532 - _globals['_FINISHINGSTATE']._serialized_start=7535 - _globals['_FINISHINGSTATE']._serialized_end=7674 + _globals['_MINKNOWSTATUS']._serialized_start=6698 + _globals['_MINKNOWSTATUS']._serialized_end=6787 + _globals['_OPTION']._serialized_start=6789 + _globals['_OPTION']._serialized_end=6831 + _globals['_PURPOSE']._serialized_start=6833 + _globals['_PURPOSE']._serialized_end=6894 + _globals['_ACQUISITIONSTATE']._serialized_start=6896 + _globals['_ACQUISITIONSTATE']._serialized_end=7019 + _globals['_ACQUISITIONSTOPREASON']._serialized_start=7022 + _globals['_ACQUISITIONSTOPREASON']._serialized_end=7328 + _globals['_STARTUPSTATE']._serialized_start=7331 + _globals['_STARTUPSTATE']._serialized_end=7609 + _globals['_FINISHINGSTATE']._serialized_start=7612 + _globals['_FINISHINGSTATE']._serialized_end=7751 _globals['_STARTREQUEST']._serialized_start=152 _globals['_STARTREQUEST']._serialized_end=619 _globals['_STARTRESPONSE']._serialized_start=621 @@ -104,87 +104,135 @@ _globals['_CHANNELSTATEINFO_GROUP']._serialized_start=2899 _globals['_CHANNELSTATEINFO_GROUP']._serialized_end=3056 _globals['_ACQUISITIONCONFIGSUMMARY']._serialized_start=3059 - _globals['_ACQUISITIONCONFIGSUMMARY']._serialized_end=3756 - _globals['_MUXSCANMETADATA']._serialized_start=3759 - _globals['_MUXSCANMETADATA']._serialized_end=4229 + _globals['_ACQUISITIONCONFIGSUMMARY']._serialized_end=3791 + _globals['_MUXSCANMETADATA']._serialized_start=3794 + _globals['_MUXSCANMETADATA']._serialized_end=4264 _globals['_MUXSCANMETADATA_STYLE']._serialized_start=2709 _globals['_MUXSCANMETADATA_STYLE']._serialized_end=2768 - _globals['_MUXSCANMETADATA_CATEGORY']._serialized_start=3956 - _globals['_MUXSCANMETADATA_CATEGORY']._serialized_end=4065 - _globals['_MUXSCANMETADATA_CATEGORYGROUP']._serialized_start=4068 - _globals['_MUXSCANMETADATA_CATEGORYGROUP']._serialized_end=4229 - _globals['_MUXSCANRESULT']._serialized_start=4232 - _globals['_MUXSCANRESULT']._serialized_end=4390 - _globals['_MUXSCANRESULT_COUNTSENTRY']._serialized_start=4345 - _globals['_MUXSCANRESULT_COUNTSENTRY']._serialized_end=4390 - _globals['_BREAMINFO']._serialized_start=4393 - _globals['_BREAMINFO']._serialized_end=4796 - _globals['_BREAMINFO_RANGE']._serialized_start=4755 - _globals['_BREAMINFO_RANGE']._serialized_end=4796 - _globals['_TARGETRUNUNTILCRITERIA']._serialized_start=4799 - _globals['_TARGETRUNUNTILCRITERIA']._serialized_end=4948 - _globals['_ACQUISITIONRUNINFO']._serialized_start=4951 - _globals['_ACQUISITIONRUNINFO']._serialized_end=5928 - _globals['_LISTACQUISITIONRUNSREQUEST']._serialized_start=5930 - _globals['_LISTACQUISITIONRUNSREQUEST']._serialized_end=5958 - _globals['_LISTACQUISITIONRUNSRESPONSE']._serialized_start=5960 - _globals['_LISTACQUISITIONRUNSRESPONSE']._serialized_end=6006 - _globals['_GETCURRENTACQUISITIONRUNREQUEST']._serialized_start=6008 - _globals['_GETCURRENTACQUISITIONRUNREQUEST']._serialized_end=6041 - _globals['_WATCHCURRENTACQUISITIONRUNREQUEST']._serialized_start=6043 - _globals['_WATCHCURRENTACQUISITIONRUNREQUEST']._serialized_end=6078 - _globals['_SETSIGNALREADERREQUEST']._serialized_start=6081 - _globals['_SETSIGNALREADERREQUEST']._serialized_end=6432 - _globals['_SETSIGNALREADERREQUEST_SIGNALREADERTYPE']._serialized_start=6331 - _globals['_SETSIGNALREADERREQUEST_SIGNALREADERTYPE']._serialized_end=6371 - _globals['_SETSIGNALREADERREQUEST_SOURCEFILEMODE']._serialized_start=6373 - _globals['_SETSIGNALREADERREQUEST_SOURCEFILEMODE']._serialized_end=6432 - _globals['_SETSIGNALREADERRESPONSE']._serialized_start=6434 - _globals['_SETSIGNALREADERRESPONSE']._serialized_end=6459 - _globals['_SETBREAMINFOREQUEST']._serialized_start=6461 - _globals['_SETBREAMINFOREQUEST']._serialized_end=6564 - _globals['_SETBREAMINFORESPONSE']._serialized_start=6566 - _globals['_SETBREAMINFORESPONSE']._serialized_end=6588 - _globals['_APPENDMUXSCANRESULTRESPONSE']._serialized_start=6590 - _globals['_APPENDMUXSCANRESULTRESPONSE']._serialized_end=6619 - _globals['_ACQUISITIONSERVICE']._serialized_start=7677 - _globals['_ACQUISITIONSERVICE']._serialized_end=9169 -MuxScanMetadata.__doc__ = """Provides information about how mux scans are configured. This -primarily information to help present mux scan results to the user -(see `MuxScanResult`). - -Attributes: - auto_mux_scan_period_hours: - How frequently automatic scans are scheduled to occur. - category_groups: - Presentation information for categories. Describes the - preferred way to present mux scan categories to users. Groups - should be presented in the order of this list. + _globals['_MUXSCANMETADATA_CATEGORY']._serialized_start=3991 + _globals['_MUXSCANMETADATA_CATEGORY']._serialized_end=4100 + _globals['_MUXSCANMETADATA_CATEGORYGROUP']._serialized_start=4103 + _globals['_MUXSCANMETADATA_CATEGORYGROUP']._serialized_end=4264 + _globals['_MUXSCANRESULT']._serialized_start=4267 + _globals['_MUXSCANRESULT']._serialized_end=4425 + _globals['_MUXSCANRESULT_COUNTSENTRY']._serialized_start=4380 + _globals['_MUXSCANRESULT_COUNTSENTRY']._serialized_end=4425 + _globals['_BREAMINFO']._serialized_start=4428 + _globals['_BREAMINFO']._serialized_end=4831 + _globals['_BREAMINFO_RANGE']._serialized_start=4790 + _globals['_BREAMINFO_RANGE']._serialized_end=4831 + _globals['_TARGETRUNUNTILCRITERIA']._serialized_start=4834 + _globals['_TARGETRUNUNTILCRITERIA']._serialized_end=4983 + _globals['_ACQUISITIONRUNINFO']._serialized_start=4986 + _globals['_ACQUISITIONRUNINFO']._serialized_end=6005 + _globals['_LISTACQUISITIONRUNSREQUEST']._serialized_start=6007 + _globals['_LISTACQUISITIONRUNSREQUEST']._serialized_end=6035 + _globals['_LISTACQUISITIONRUNSRESPONSE']._serialized_start=6037 + _globals['_LISTACQUISITIONRUNSRESPONSE']._serialized_end=6083 + _globals['_GETCURRENTACQUISITIONRUNREQUEST']._serialized_start=6085 + _globals['_GETCURRENTACQUISITIONRUNREQUEST']._serialized_end=6118 + _globals['_WATCHCURRENTACQUISITIONRUNREQUEST']._serialized_start=6120 + _globals['_WATCHCURRENTACQUISITIONRUNREQUEST']._serialized_end=6155 + _globals['_SETSIGNALREADERREQUEST']._serialized_start=6158 + _globals['_SETSIGNALREADERREQUEST']._serialized_end=6509 + _globals['_SETSIGNALREADERREQUEST_SIGNALREADERTYPE']._serialized_start=6408 + _globals['_SETSIGNALREADERREQUEST_SIGNALREADERTYPE']._serialized_end=6448 + _globals['_SETSIGNALREADERREQUEST_SOURCEFILEMODE']._serialized_start=6450 + _globals['_SETSIGNALREADERREQUEST_SOURCEFILEMODE']._serialized_end=6509 + _globals['_SETSIGNALREADERRESPONSE']._serialized_start=6511 + _globals['_SETSIGNALREADERRESPONSE']._serialized_end=6536 + _globals['_SETBREAMINFOREQUEST']._serialized_start=6538 + _globals['_SETBREAMINFOREQUEST']._serialized_end=6641 + _globals['_SETBREAMINFORESPONSE']._serialized_start=6643 + _globals['_SETBREAMINFORESPONSE']._serialized_end=6665 + _globals['_APPENDMUXSCANRESULTRESPONSE']._serialized_start=6667 + _globals['_APPENDMUXSCANRESULTRESPONSE']._serialized_end=6696 + _globals['_ACQUISITIONSERVICE']._serialized_start=7754 + _globals['_ACQUISITIONSERVICE']._serialized_end=9246 +AcquisitionYieldSummary.__doc__ = """Attributes: + read_count: + Number of reads selected by analysis as good reads. The reads + in this counter are completed, but not necessarily on disk + yet. + fraction_basecalled: + This is the fraction of whole reads that the base-caller has + finished with. The value should be in the range [0.0, 1.0] + When base-calling is enabled, it can be added to + fraction_skipped and multiplied by 100 to give the percentage + of reads processed and by implication, the percentage of reads + the user is waiting for the base-caller to process. Since 5.0 + fraction_skipped: + This is the fraction of whole reads that have been skipped. + The value should be in the range [0.0, 1.0] Since 5.0 + basecalled_pass_read_count: + Number of basecalls successfully produced. Note that one read + may produce _multiple_ basecalls. Therefore the sum of this + field, 'basecalled_fail_read_count', and + 'basecalled_skipped_read_count' should be greater than or + equal to 'read_count'. + basecalled_fail_read_count: + Number of reads which have failed to basecall. + basecalled_skipped_read_count: + Number of reads which have been skipped + basecalled_pass_bases: + Number of bases which have been called and classed as pass. + basecalled_fail_bases: + Number of bases which have been called and were classed as + fail. + basecalled_pass_reads_split: + How many of the basecalled reads so far have been classified + by the basecaller as... .simplex, .duplex_combined, etc. + basecalled_pass_bases_split: + As above, but counted in bases rather than basecalls. + basecalled_samples: + Number of raw samples which have been called. + selected_raw_samples: + Number of minknow raw samples which have been selected for + writing to disk as reads. + selected_events: + Number of minknow events which have been selected for writing + to disk as reads. + estimated_selected_bases: + Estimated number of bases MinKNOW has selected for writing. + This is estimated based on already called bases and samples. + alignment_matches: + Number of bases which have matched target reference. Only + specified when running live alignment. Since 4.0 + alignment_mismatches: + Number of bases which have not matched target reference. Only + specified when running live alignment. Since 4.0 + alignment_insertions: + Number of bases which were inserted into alignments that + matched the reference. Only specified when running live + alignment. Since 4.0 + alignment_deletions: + Number of bases which were deleted from alignments that + matched the reference. Only specified when running live + alignment. Since 4.0 + alignment_coverage: + Number of bases that match the target reference(s) expressed + as a fraction of the total size of the target reference(s). + eg: For a specified alignment-targets with 2000 and 3000 + bases, if "alignment_matches" is 2500, then + "alignment_coverage" will be 0.5 Since 4.3 """ -StopRequest.__doc__ = """Attributes: - wait_until_ready: - Defaults to false If false will return as soon as minknow - enters the FINISHING state. If true then returns as soon as - minknow enters the READY state. - keep_power_on: - Force the MinION/GridION ASIC power to be kept on after the - current acquisition finishes Keeping the ASIC power on has - two main effects: - The flow-cell will remain at the - correct operating temperature between acquisitions; - this allows following acquisition to be started more quickly. - - MinION/GridION flow cells may be damaged if they are removed - or plugged in while the ASIC power is turned on. - Therefore, this option should be set to `true` if and only if - another acquisition will be performed using the same flow- - cell, soon after the acquisition that is being stopped. - Otherwise it should be set to `false` (or left unset) to - prevent potential damage to MinION/GridION flow-cells. If - this option is set to `false` (or is left unset), then the - application configuration determines whether the power will be - left on when the acquisition finishes -- see the - `powered_when_idle` and `flongle_powered_when_idle` - configuration options for further details. This option has no - effect on PromethIONs. Since 1.15.2 +SetSignalReaderRequest.__doc__ = """Attributes: + reader: + The type of signal reader to use + hdf_source: + The following settings are optional, and only used when + setting the reader to hdf5 + hdf_mode: + Defaults to UNSPECIFIED, since this setting is optional +""" +GetProgressResponse.__doc__ = """Attributes: + raw_per_channel: + The amount of raw data (per channel) that has been acquired + and processed. +""" +GetAcquisitionRunInfoRequest.__doc__ = """Attributes: + run_id: + The acquisition period to get information about. """ BreamInfo.__doc__ = """Information provided by Bream. Note that this is provided by the protocol, and some protocols may choose not to provide this. @@ -211,92 +259,53 @@ is requesting throughout the run). This intended only to provide context when presenting data to users. """ -GetProgressResponse.__doc__ = """Attributes: - raw_per_channel: - The amount of raw data (per channel) that has been acquired - and processed. -""" -MuxScanMetadata.Category.__doc__ = """A category that a channel mux can be assigned. - -Attributes: - name: - Name of the category. This is the value that will be in the - `MuxScanResult.counts` field. The user should not be shown - this. Instead, `style.label` should be displayed. - style: - How to render the category in a graphical user interface. - global_order: - An order ranking for the category when displaying them without - using groups. -""" -AcquisitionConfigSummary.__doc__ = """This field has been removed Since 5.8 - -Attributes: - purpose: - The purpose, as supplied to `acquisition.start()` - basecalling_enabled: - Was basecalling enabled for the run. - basecalling_config_filename: - Basecalling configuration filename (if basecalling enabled) - duplex_enabled: - Was the experiment a duplex basecalling experiment (false if - basecalling is disabled) - barcoding_enabled: - Is barcoding enabled for the run - barcoding_kits: - / Barcoding kit(s) used (if barcoding enabled) - alignment_enabled: - Is alignment enabled for the run - alignment_reference_files: - Alignment reference file(s) used (if alignment enabled) - alignment_bed_file: - bed file used (if alignment enabled, and bed file specified) - lamp_enabled: - Is lamp enabled for the run - lamp_kit: - The LAMP kit used (if LAMP enabled) - reads_directory: - Root directory reads were written to for the run. Empty if no - reads were enabled. - reads_fallback_directories: - Directories reads are written to if the reads_directory is on - the network and writes to it fail. Empty if no reads were - enabled. - fast5_reads_enabled: - Determine if fast5 reads were enabled for the run. - fastq_reads_enabled: - Determine if fastq reads were enabled for the run. - pod5_reads_enabled: - Determine if pod5 reads were enabled for the run. - bulk_file_path: - The path of the bulk file for the run. Empty if no reads were - enabled. - bulk_file_enabled: - Find if the bulk writer was enabled for a run. - channel_state_info: - Channel state styling information - events_to_base_ratio: - Number of bases per event - sample_rate: - Sample rate for the acquisition. Since 3.3 - channel_count: - Channel count used in the acquisition. Since 3.3 -""" -ChannelStateInfo.ChannelState.__doc__ = """Attributes: - id: - The numeric identifier of the state. This is what is reported - in any other APIs that return a channel state ID. - name: - The internal name of the state. This is what is reported in - any other APIs that return a channel state name. - style: - How to render the channel state in a graphical user interface. - Note that the style may be missing from some channel states - (such as the ones that are built in to MinKNOW). - global_order: - An order ranking for the channel states when they are - ungrouped. This can be used to order the channel states after - merging the groups. +AcquisitionRunInfo.__doc__ = """Attributes: + run_id: + The unique identifier assigned to this acquisition run. This + is guaranteed to be made of ASCII characters, and at most 40 + characters. It is globally unique across all acquisitions on + all MinKNOW instances. + startup_state: + Current startup task (or STARTUP_UNKNOWN if not starting up). + startup_state_estimated_end: + Estimated time for current startup state to end. In some + cases this field is left unset, to indicate no estimation. + startup_state_estimated_percent_complete: + Estimate startup state completion percent (0 - 1). In some + cases this field is left at 0, indicating no estimation. + state: + Indicates the current state of the acquisition. + finishing_state: + If the experiment is finishing, an extra piece of state + describing the current finishing state. + finishing_state_percent_complete: + Progress through the current finishing state, ranges from 0 - + 1. This will increase from 0 -> 1 for each individual + finishing state, then reset. + stop_reason: + The reason the acquisition period was ended. + start_time: + When the acquisition period was started (UTC). + data_read_start_time: + When MinKNOW began acquiring data (UTC). Unset if the + acquisition is still starting up. + data_read_end_time: + When the MinKNOW stopped acquiring data (UTC). Unset if the + acquisition is still acquiring. + end_time: + When the acquisition terminated (UTC). Unset if the + acquisition period is still running. + yield_summary: + Summary of acquisition yields. Since 1.12 + config_summary: + Summary of the configuration settings for a run. Since 1.14 + writer_summary: + Summary of writer yields. Since 4.0 + bream_info: + Set information provided by the Bream toolkit. + target_run_until_criteria: + Target Run-Until Critiera, used to determine when the + acquisition should be paused or stopped. Since 5.3 """ ChannelStateInfo.Group.__doc__ = """Attributes: name: @@ -310,80 +319,30 @@ ordered according to the "order" attribute of the channel state style in the channel states configuration. """ -ChannelStateInfo.__doc__ = """Attributes: - groups: - The groups of channel states. The groups are ordered - according to the "order" attribute of the group style in the - channel states configuration. -""" -ChannelStateInfo.Style.__doc__ = """Attributes: - label: - The human-readable name to display when rendering this channel - state or group. - description: - A sentence describing the meaning of the channel state or - group. This can be used as a tooltip, for example. - colour: - The colour to use when rendering this channel state or group. - This is a six-digit hex string describing an RGB colour (eg: - "ff00ff" for purple). -""" -MuxScanResult.__doc__ = """A report of the states of channel muxes (wells) across the flow cell. -Every channel mux (well) is assigned to a specific category describing -its state (for example, is it expected to produce good results, and if -not why not?). This is a report of how many channel muxes are in each -category. - -Attributes: - counts: - How many channel muxes are in each category. The sum of all - the values in this map should be the number of channels - multiplied by the number of muxes on each channel (eg: - 512x4=2048 on a MinION Mk1B without a flongle adapter). eg. - 'sequencing': 1500 - mux_scan_timestamp: - When this mux scan result was added (Seconds since the start - of the acquisition). -""" -MuxScanMetadata.Style.__doc__ = """Presentation information for a category or group. +MuxScanMetadata.__doc__ = """Provides information about how mux scans are configured. This +primarily information to help present mux scan results to the user +(see `MuxScanResult`). Attributes: - label: - The human-readable name to display when rendering this - category or group. - description: - A sentence describing the meaning of the category or group. - This can be used as a tooltip, for example. - colour: - The colour to use when rendering this category or group. This - is a six-digit hex string describing an RGB colour (eg: - "ff0000" for red). -""" -BreamInfo.Range.__doc__ = """Represents a range of values.""" -SetBreamInfoRequest.__doc__ = """Attributes: - info: - The information to set. Note that, other than treating the - top-level fields independently (see the other flags on this - request), MinKNOW Core will not do anything special to the - data. In particular, the caller must fill in the - `mux_scan_timestamp` field in `MuxScanResult` messages. - overwrite_unset_fields: - If any `BreamInfo` fields were set in a previous call, but are - unset in the `info` field of this call, then use the old value - for them. For example, to just update the mux_scan_metadata - field, use a BreamInfo object with only the - `mux_scan_metadata` field set, and leave this as False. To - clear the entire BreamInfo structure, leave `info` empty and - set this to True. + auto_mux_scan_period_hours: + How frequently automatic scans are scheduled to occur. + category_groups: + Presentation information for categories. Describes the + preferred way to present mux scan categories to users. Groups + should be presented in the order of this list. """ -MuxScanMetadata.CategoryGroup.__doc__ = """Attributes: - name: - The name of the group. - style: - How to render the group in a graphical user interface. - category: - The categories contained in the group. Within this group, - categories should be presented in the order of this list. +AcquisitionYieldSummary.TotalsPerDuplexCategory.__doc__ = """Note: If duplex isn't enabled, all reads and basecalls will be classed +as 'simplex' and the 'duplex' fields will be 0.""" +AcquisitionWriterSummary.__doc__ = """Attributes: + bytes_to_write_produced: + Number of bytes which minknow needs to write in order to + finish the experiment. + bytes_to_write_failed: + Number of bytes which minknow has failed to write to final + location. These reads are instead contained in the + fallback/tmp locations. + bytes_to_write_completed: + Number of bytes which minknow has written to final location. """ StartRequest.__doc__ = """ Protobuf messages for input/output of RPC calls @@ -457,69 +416,64 @@ start_request: Start request that will be used to trigger analysis, used to union over all the different types of analysis possible. + proxy_request: + Since 5.8 """ -AcquisitionYieldSummary.TotalsPerDuplexCategory.__doc__ = """Note: If duplex isn't enabled, all reads and basecalls will be classed -as 'simplex' and the 'duplex' fields will be 0.""" -AcquisitionWriterSummary.__doc__ = """Attributes: - bytes_to_write_produced: - Number of bytes which minknow needs to write in order to - finish the experiment. - bytes_to_write_failed: - Number of bytes which minknow has failed to write to final - location. These reads are instead contained in the - fallback/tmp locations. - bytes_to_write_completed: - Number of bytes which minknow has written to final location. +MuxScanMetadata.Style.__doc__ = """Presentation information for a category or group. + +Attributes: + label: + The human-readable name to display when rendering this + category or group. + description: + A sentence describing the meaning of the category or group. + This can be used as a tooltip, for example. + colour: + The colour to use when rendering this category or group. This + is a six-digit hex string describing an RGB colour (eg: + "ff0000" for red). """ -StartResponse.__doc__ = """Attributes: - run_id: - Globally-unique identifier generated when the acquisition is - started. This is guaranteed to unique, including aross - sequencing devices. +BreamInfo.Range.__doc__ = """Represents a range of values.""" +StopRequest.__doc__ = """Attributes: + wait_until_ready: + Defaults to false If false will return as soon as minknow + enters the FINISHING state. If true then returns as soon as + minknow enters the READY state. + keep_power_on: + Force the MinION/GridION ASIC power to be kept on after the + current acquisition finishes Keeping the ASIC power on has + two main effects: - The flow-cell will remain at the + correct operating temperature between acquisitions; + this allows following acquisition to be started more quickly. + - MinION/GridION flow cells may be damaged if they are removed + or plugged in while the ASIC power is turned on. + Therefore, this option should be set to `true` if and only if + another acquisition will be performed using the same flow- + cell, soon after the acquisition that is being stopped. + Otherwise it should be set to `false` (or left unset) to + prevent potential damage to MinION/GridION flow-cells. If + this option is set to `false` (or is left unset), then the + application configuration determines whether the power will be + left on when the acquisition finishes -- see the + `powered_when_idle` and `flongle_powered_when_idle` + configuration options for further details. This option has no + effect on PromethIONs. Since 1.15.2 """ -AcquisitionRunInfo.__doc__ = """Attributes: - run_id: - The unique identifier assigned to this acquisition run. This - is guaranteed to be made of ASCII characters, and at most 40 - characters. It is globally unique across all acquisitions on - all MinKNOW instances. - startup_state: - Current startup task (or STARTUP_UNKNOWN if not starting up). - startup_state_estimated_end: - Estimated time for current startup state to end. In some - cases this field is left unset, to indicate no estimation. - startup_state_estimated_percent_complete: - Estimate startup state completion percent (0 - 1). In some - cases this field is left at 0, indicating no estimation. - state: - Indicates the current state of the acquisition. - finishing_state: - If the experiment is finishing, an extra piece of state - describing the current finishing state. - stop_reason: - The reason the acquisition period was ended. - start_time: - When the acquisition period was started (UTC). - data_read_start_time: - When MinKNOW began acquiring data (UTC). Unset if the - acquisition is still starting up. - data_read_end_time: - When the MinKNOW stopped acquiring data (UTC). Unset if the - acquisition is still acquiring. - end_time: - When the acquisition terminated (UTC). Unset if the - acquisition period is still running. - yield_summary: - Summary of acquisition yields. Since 1.12 - config_summary: - Summary of the configuration settings for a run. Since 1.14 - writer_summary: - Summary of writer yields. Since 4.0 - bream_info: - Set information provided by the Bream toolkit. - target_run_until_criteria: - Target Run-Until Critiera, used to determine when the - acquisition should be paused or stopped. Since 5.3 +SetBreamInfoRequest.__doc__ = """Attributes: + info: + The information to set. Note that, other than treating the + top-level fields independently (see the other flags on this + request), MinKNOW Core will not do anything special to the + data. In particular, the caller must fill in the + `mux_scan_timestamp` field in `MuxScanResult` messages. + overwrite_unset_fields: + If any `BreamInfo` fields were set in a previous call, but are + unset in the `info` field of this call, then use the old value + for them. For example, to just update the mux_scan_metadata + field, use a BreamInfo object with only the + `mux_scan_metadata` field set, and leave this as False. To + clear the entire BreamInfo structure, leave `info` empty and + set this to True. """ GetProgressResponse.RawPerChannel.__doc__ = """Attributes: acquired: @@ -529,84 +483,141 @@ pipeline for processing. This can be compared to acquired to see how far behind the analysis is lagging. """ -SetSignalReaderRequest.__doc__ = """Attributes: - reader: - The type of signal reader to use - hdf_source: - The following settings are optional, and only used when - setting the reader to hdf5 - hdf_mode: - Defaults to UNSPECIFIED, since this setting is optional +ChannelStateInfo.__doc__ = """Attributes: + groups: + The groups of channel states. The groups are ordered + according to the "order" attribute of the group style in the + channel states configuration. """ -GetAcquisitionRunInfoRequest.__doc__ = """Attributes: +StartResponse.__doc__ = """Attributes: run_id: - The acquisition period to get information about. + Globally-unique identifier generated when the acquisition is + started. This is guaranteed to unique, including aross + sequencing devices. """ -AcquisitionYieldSummary.__doc__ = """Attributes: - read_count: - Number of reads selected by analysis as good reads. The reads - in this counter are completed, but not necessarily on disk - yet. - fraction_basecalled: - This is the fraction of whole reads that the base-caller has - finished with. The value should be in the range [0.0, 1.0] - When base-calling is enabled, it can be added to - fraction_skipped and multiplied by 100 to give the percentage - of reads processed and by implication, the percentage of reads - the user is waiting for the base-caller to process. Since 5.0 - fraction_skipped: - This is the fraction of whole reads that have been skipped. - The value should be in the range [0.0, 1.0] Since 5.0 - basecalled_pass_read_count: - Number of basecalls successfully produced. Note that one read - may produce _multiple_ basecalls. Therefore the sum of this - field, 'basecalled_fail_read_count', and - 'basecalled_skipped_read_count' should be greater than or - equal to 'read_count'. - basecalled_fail_read_count: - Number of reads which have failed to basecall. - basecalled_skipped_read_count: - Number of reads which have been skipped - basecalled_pass_bases: - Number of bases which have been called and classed as pass. - basecalled_fail_bases: - Number of bases which have been called and were classed as - fail. - basecalled_pass_reads_split: - How many of the basecalled reads so far have been classified - by the basecaller as... .simplex, .duplex_combined, etc. - basecalled_pass_bases_split: - As above, but counted in bases rather than basecalls. - basecalled_samples: - Number of raw samples which have been called. - selected_raw_samples: - Number of minknow raw samples which have been selected for - writing to disk as reads. - selected_events: - Number of minknow events which have been selected for writing - to disk as reads. - estimated_selected_bases: - Estimated number of bases MinKNOW has selected for writing. - This is estimated based on already called bases and samples. - alignment_matches: - Number of bases which have matched target reference. Only - specified when running live alignment. Since 4.0 - alignment_mismatches: - Number of bases which have not matched target reference. Only - specified when running live alignment. Since 4.0 - alignment_insertions: - Number of bases which were inserted into alignments that - matched the reference. Only specified when running live - alignment. Since 4.0 - alignment_deletions: - Number of bases which were deleted from alignments that - matched the reference. Only specified when running live - alignment. Since 4.0 - alignment_coverage: - Number of bases that match the target reference(s) expressed - as a fraction of the total size of the target reference(s). - eg: For a specified alignment-targets with 2000 and 3000 - bases, if "alignment_matches" is 2500, then - "alignment_coverage" will be 0.5 Since 4.3 +MuxScanMetadata.CategoryGroup.__doc__ = """Attributes: + name: + The name of the group. + style: + How to render the group in a graphical user interface. + category: + The categories contained in the group. Within this group, + categories should be presented in the order of this list. +""" +ChannelStateInfo.ChannelState.__doc__ = """Attributes: + id: + The numeric identifier of the state. This is what is reported + in any other APIs that return a channel state ID. + name: + The internal name of the state. This is what is reported in + any other APIs that return a channel state name. + style: + How to render the channel state in a graphical user interface. + Note that the style may be missing from some channel states + (such as the ones that are built in to MinKNOW). + global_order: + An order ranking for the channel states when they are + ungrouped. This can be used to order the channel states after + merging the groups. +""" +MuxScanResult.__doc__ = """A report of the states of channel muxes (wells) across the flow cell. +Every channel mux (well) is assigned to a specific category describing +its state (for example, is it expected to produce good results, and if +not why not?). This is a report of how many channel muxes are in each +category. + +Attributes: + counts: + How many channel muxes are in each category. The sum of all + the values in this map should be the number of channels + multiplied by the number of muxes on each channel (eg: + 512x4=2048 on a MinION Mk1B without a flongle adapter). eg. + 'sequencing': 1500 + mux_scan_timestamp: + When this mux scan result was added (Seconds since the start + of the acquisition). +""" +ChannelStateInfo.Style.__doc__ = """Attributes: + label: + The human-readable name to display when rendering this channel + state or group. + description: + A sentence describing the meaning of the channel state or + group. This can be used as a tooltip, for example. + colour: + The colour to use when rendering this channel state or group. + This is a six-digit hex string describing an RGB colour (eg: + "ff00ff" for purple). +""" +AcquisitionConfigSummary.__doc__ = """This field has been removed Since 5.8 + +Attributes: + purpose: + The purpose, as supplied to `acquisition.start()` + basecalling_enabled: + Was basecalling enabled for the run. + basecalling_config_filename: + Basecalling configuration filename (if basecalling enabled) + basecalling_model_version: + Basecalling model version (empty if basecalling not enabled) + Since 6.0 + duplex_enabled: + Was the experiment a duplex basecalling experiment (false if + basecalling is disabled) + barcoding_enabled: + Is barcoding enabled for the run + barcoding_kits: + / Barcoding kit(s) used (if barcoding enabled) + alignment_enabled: + Is alignment enabled for the run + alignment_reference_files: + Alignment reference file(s) used (if alignment enabled) + alignment_bed_file: + bed file used (if alignment enabled, and bed file specified) + lamp_enabled: + Is lamp enabled for the run DEPRECATED 6.0: Lamp support has + been removed and this value will always be false. + lamp_kit: + The LAMP kit used (if LAMP enabled) DEPRECATED 6.0: Lamp + support has been removed and this value will always be empty. + reads_directory: + Root directory reads were written to for the run. Empty if no + reads were enabled. + reads_fallback_directories: + Directories reads are written to if the reads_directory is on + the network and writes to it fail. Empty if no reads were + enabled. + fast5_reads_enabled: + Determine if fast5 reads were enabled for the run. + fastq_reads_enabled: + Determine if fastq reads were enabled for the run. + pod5_reads_enabled: + Determine if pod5 reads were enabled for the run. + bulk_file_path: + The path of the bulk file for the run. Empty if no reads were + enabled. + bulk_file_enabled: + Find if the bulk writer was enabled for a run. + channel_state_info: + Channel state styling information + events_to_base_ratio: + Number of bases per event + sample_rate: + Sample rate for the acquisition. Since 3.3 + channel_count: + Channel count used in the acquisition. Since 3.3 +""" +MuxScanMetadata.Category.__doc__ = """A category that a channel mux can be assigned. + +Attributes: + name: + Name of the category. This is the value that will be in the + `MuxScanResult.counts` field. The user should not be shown + this. Instead, `style.label` should be displayed. + style: + How to render the category in a graphical user interface. + global_order: + An order ranking for the category when displaying them without + using groups. """ # @@protoc_insertion_point(module_scope) diff --git a/python/minknow_api/analysis_configuration_pb2.py b/python/minknow_api/analysis_configuration_pb2.py index 005e96d..da47b11 100644 --- a/python/minknow_api/analysis_configuration_pb2.py +++ b/python/minknow_api/analysis_configuration_pb2.py @@ -18,7 +18,7 @@ from minknow_api import rpc_options_pb2 as minknow__api_dot_rpc__options__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n(minknow_api/analysis_configuration.proto\x12\"minknow_api.analysis_configuration\x1a\x1egoogle/protobuf/duration.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x1dminknow_api/rpc_options.proto\"\xc6\x02\n\x0e\x45ventDetection\x12N\n\x04type\x18\x13 \x01(\x0e\x32@.minknow_api.analysis_configuration.EventDetection.DetectionType\x12\x13\n\x0bwindow_size\x18\x03 \x01(\r\x12\x11\n\tthreshold\x18\x05 \x01(\x01\x12\x13\n\x0bpeak_height\x18\t \x01(\x01\x12:\n\x14\x65vents_to_base_ratio\x18\x10 \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x12\x1c\n\x14\x62reak_on_mux_changes\x18\x11 \x01(\x08\x12!\n\x19max_mux_change_back_shift\x18\x12 \x01(\r\"*\n\rDetectionType\x12\x0e\n\nMULTITTEST\x10\x00\x12\t\n\x05\x44MEAN\x10\x01\"\xf0\x04\n\x13ReadDetectionParams\x12W\n\x04mode\x18\x01 \x01(\x0e\x32I.minknow_api.analysis_configuration.ReadDetectionParams.ReadDetectionMode\x12\x1a\n\x12minimum_delta_mean\x18\x02 \x01(\x01\x12\x11\n\tlook_back\x18\x03 \x01(\r\x12>\n\x18\x62reak_reads_after_events\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.UInt32Value\x12?\n\x19\x62reak_reads_after_seconds\x18\x05 \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x12\"\n\x1a\x62reak_reads_on_mux_changes\x18\x06 \x01(\x08\x12\x33\n\ropen_pore_min\x18\x07 \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x12\x33\n\ropen_pore_max\x18\x08 \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x12\x37\n\x11open_pore_default\x18\t \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x12@\n\x1aopen_pore_seconds_required\x18\n \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\"G\n\x11ReadDetectionMode\x12\x08\n\x04none\x10\x00\x12\x0e\n\ntransition\x10\x01\x12\x0c\n\x08lookback\x10\x02\x12\n\n\x06minmax\x10\x03\"q\n\x0bReadFilters\x12\x17\n\x0fread_length_min\x18\x01 \x01(\r\x12\x17\n\x0fread_length_max\x18\x02 \x01(\r\x12\x17\n\x0f\x65vent_count_min\x18\x03 \x01(\r\x12\x17\n\x0f\x65vent_count_max\x18\x04 \x01(\r\"\xeb\x05\n\x18ReadClassificationParams\x12Z\n\rscheme_module\x18\x01 \x01(\x0e\x32\x43.minknow_api.analysis_configuration.ReadClassificationParams.Scheme\x12\x35\n\x0fmax_sample_size\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.UInt64Value\x12 \n\x18selected_classifications\x18\x03 \x03(\t\x12!\n\x19open_pore_classifications\x18\x06 \x03(\t\x12;\n\x15open_pore_ewma_weight\x18\x07 \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x12J\n$open_pore_ignore_after_reset_seconds\x18\x08 \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x12\x1f\n\x17\x63lassification_strategy\x18\x04 \x01(\t\x12[\n\nparameters\x18\x05 \x01(\x0b\x32G.minknow_api.analysis_configuration.ReadClassificationParams.Parameters\x12P\n*selected_classifications_fraction_required\x18\t \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x12N\n(selected_classifications_chunks_required\x18\n \x01(\x0b\x32\x1c.google.protobuf.UInt32Value\x1a.\n\nParameters\x12 \n\x18rules_in_execution_order\x18\x02 \x03(\t\"\x1e\n\x06Scheme\x12\x08\n\x04none\x10\x00\x12\n\n\x06parsed\x10\x01\"\xf2\x07\n\rChannelStates\x12\x46\n\x05group\x18\x02 \x01(\x0b\x32\x37.minknow_api.analysis_configuration.ChannelStates.Group\x12\x13\n\x0b\x64\x65scription\x18\x05 \x01(\t\x12\x46\n\x05logic\x18\x03 \x01(\x0b\x32\x37.minknow_api.analysis_configuration.ChannelStates.Logic\x12\x46\n\x05style\x18\x04 \x01(\x0b\x32\x37.minknow_api.analysis_configuration.ChannelStates.Style\x1a\xaa\x04\n\x05Logic\x12\x10\n\x08\x63riteria\x18\x01 \x01(\t\x12\x0c\n\x04rank\x18\x03 \x01(\x05\x12\x0f\n\x07pattern\x18\x04 \x01(\t\x12\x16\n\x0e\x63lassification\x18\x05 \x01(\t\x12N\n\x06ranges\x18\x06 \x01(\x0b\x32>.minknow_api.analysis_configuration.ChannelStates.Logic.Ranges\x12T\n\tbehaviour\x18\x07 \x01(\x0b\x32\x41.minknow_api.analysis_configuration.ChannelStates.Logic.Behaviour\x1a\xa4\x01\n\tBehaviour\x12\x1b\n\x13reset_on_mux_change\x18\x01 \x01(\x05\x12\x1c\n\x14reset_on_well_change\x18\x02 \x01(\x05\x12\r\n\x05latch\x18\x03 \x01(\x05\x12%\n\x1dreset_on_effective_mux_change\x18\x04 \x01(\x05\x12&\n\x1ereset_on_effective_well_change\x18\x05 \x01(\x05\x1a\x8a\x01\n\x06Ranges\x12S\n\x05range\x18\x01 \x01(\x0b\x32\x44.minknow_api.analysis_configuration.ChannelStates.Logic.Ranges.Range\x1a+\n\x05Range\x12\x10\n\x08lower_pa\x18\x01 \x01(\x05\x12\x10\n\x08upper_pa\x18\x02 \x01(\x05\x1aS\n\x05Style\x12+\n\x05order\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.UInt32Value\x12\r\n\x05label\x18\x02 \x01(\t\x12\x0e\n\x06\x63olour\x18\x03 \x01(\t\x1ar\n\x05Group\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x46\n\x05style\x18\x02 \x01(\x0b\x32\x37.minknow_api.analysis_configuration.ChannelStates.Style\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\"!\n\x1fGetAnalysisConfigurationRequest\"\x91\x03\n\x11ReadScalingParams\x12\x1a\n\x12quantile_locations\x18\x03 \x03(\x02\x12\x1e\n\x16quantile_weights_shift\x18\x01 \x03(\x02\x12\x1e\n\x16quantile_weights_scale\x18\x02 \x03(\x02\x12\x16\n\x0etracking_alpha\x18\x04 \x01(\x02\x12$\n\x1c\x61lpha_number_estimates_decay\x18\x05 \x01(\x02\x12\x18\n\x10quantile_maxdiff\x18\n \x01(\x02\x12\x1c\n\x14trust_limit_fraction\x18\x06 \x01(\x02\x12\x16\n\x0e\x64iff_threshold\x18\x07 \x01(\x02\x12\x1a\n\x12\x65mission_threshold\x18\x08 \x01(\x02\x12\x17\n\x0f\x64\x61\x63s_breakpoint\x18\t \x01(\x02\x12 \n\x18\x63onductance_factor_scale\x18\x0b \x01(\x02\x12 \n\x18\x63onductance_factor_shift\x18\x0c \x01(\x02\x12\x19\n\x11q90_q10_to_normal\x18\r \x01(\x02\"\xac\x04\n\x15\x41nalysisConfiguration\x12K\n\x0f\x65vent_detection\x18\x01 \x01(\x0b\x32\x32.minknow_api.analysis_configuration.EventDetection\x12O\n\x0eread_detection\x18\x02 \x01(\x0b\x32\x37.minknow_api.analysis_configuration.ReadDetectionParams\x12Y\n\x13read_classification\x18\x04 \x01(\x0b\x32<.minknow_api.analysis_configuration.ReadClassificationParams\x12\x64\n\x0e\x63hannel_states\x18\x07 \x03(\x0b\x32L.minknow_api.analysis_configuration.AnalysisConfiguration.ChannelStatesEntry\x12K\n\x0cread_scaling\x18\x08 \x01(\x0b\x32\x35.minknow_api.analysis_configuration.ReadScalingParams\x1ag\n\x12\x43hannelStatesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12@\n\x05value\x18\x02 \x01(\x0b\x32\x31.minknow_api.analysis_configuration.ChannelStates:\x02\x38\x01\"\"\n SetAnalysisConfigurationResponse\"#\n!ResetAnalysisConfigurationRequest\"$\n\"ResetAnalysisConfigurationResponse\"6\n\x1eSetAnalysisEnabledStateRequest\x12\x14\n\x06\x65nable\x18\x01 \x01(\x08\x42\x04\x88\xb5\x18\x01\"!\n\x1fSetAnalysisEnabledStateResponse\"\x1d\n\x1bGetChannelStatesDescRequest\"\x99\x04\n\x1cGetChannelStatesDescResponse\x12V\n\x06groups\x18\x01 \x03(\x0b\x32\x46.minknow_api.analysis_configuration.GetChannelStatesDescResponse.Group\x1a;\n\x05Style\x12\r\n\x05label\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x0e\n\x06\x63olour\x18\x03 \x01(\t\x1a\x95\x01\n\x0c\x43hannelState\x12\n\n\x02id\x18\x01 \x01(\r\x12\x0c\n\x04name\x18\x02 \x01(\t\x12U\n\x05style\x18\x03 \x01(\x0b\x32\x46.minknow_api.analysis_configuration.GetChannelStatesDescResponse.Style\x12\x14\n\x0cglobal_order\x18\x04 \x01(\r\x1a\xcb\x01\n\x05Group\x12\x0c\n\x04name\x18\x01 \x01(\t\x12U\n\x05style\x18\x02 \x01(\x0b\x32\x46.minknow_api.analysis_configuration.GetChannelStatesDescResponse.Style\x12]\n\x06states\x18\x03 \x03(\x0b\x32M.minknow_api.analysis_configuration.GetChannelStatesDescResponse.ChannelState\"\x13\n\x11GetSummaryRequest\"K\n\x12GetSummaryResponse\x12\x18\n\x10\x61nalysis_enabled\x18\x01 \x01(\x08\x12\x1b\n\x13\x62\x61secalling_enabled\x18\x02 \x01(\x08\"\x82\x03\n\x16\x42\x61rcodingConfiguration\x12\x16\n\x0e\x62\x61rcoding_kits\x18\x01 \x03(\t\x12\x15\n\rtrim_barcodes\x18\x02 \x01(\x08\x12\"\n\x1arequire_barcodes_both_ends\x18\x03 \x01(\x08\x12\"\n\x1a\x64\x65tect_mid_strand_barcodes\x18\x04 \x01(\x08\x12.\n\tmin_score\x18\x05 \x01(\x0b\x32\x1b.google.protobuf.FloatValue\x12\x33\n\x0emin_score_rear\x18\x06 \x01(\x0b\x32\x1b.google.protobuf.FloatValue\x12\x32\n\rmin_score_mid\x18\x07 \x01(\x0b\x32\x1b.google.protobuf.FloatValue\x12\x33\n\x0emin_score_mask\x18\x08 \x01(\x0b\x32\x1b.google.protobuf.FloatValue\x12#\n\x1bignore_unspecified_barcodes\x18\t \x01(\x08\"\xae\x01\n\x16\x41lignmentConfiguration\x12\x17\n\x0freference_files\x18\x01 \x03(\t\x12\x10\n\x08\x62\x65\x64_file\x18\x02 \x01(\t\x12\x35\n\x10minimum_coverage\x18\x03 \x01(\x0b\x32\x1b.google.protobuf.FloatValue\x12\x32\n*aggregate_statistics_for_multiple_bed_hits\x18\x04 \x01(\x08\"\xcc\x01\n\x11LampConfiguration\x12\x10\n\x08lamp_kit\x18\x01 \x01(\t\x12\x37\n\x12min_score_barcodes\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.FloatValue\x12\x34\n\x0fmin_score_masks\x18\x03 \x01(\x0b\x32\x1b.google.protobuf.FloatValue\x12\x36\n\x11min_score_targets\x18\x04 \x01(\x0b\x32\x1b.google.protobuf.FloatValue\"\xb3\t\n\x17\x42\x61secallerConfiguration\x12\x0e\n\x06\x65nable\x18\x02 \x01(\x08\x12\x17\n\x0f\x63onfig_filename\x18\x01 \x01(\t\x12\x14\n\x0c\x61lign_filter\x18\n \x01(\x08\x12\x61\n\x0eread_filtering\x18\x03 \x01(\x0b\x32I.minknow_api.analysis_configuration.BasecallerConfiguration.ReadFiltering\x12[\n\x17\x62\x61rcoding_configuration\x18\x04 \x01(\x0b\x32:.minknow_api.analysis_configuration.BarcodingConfiguration\x12\x65\n\x10target_filtering\x18\x05 \x01(\x0b\x32K.minknow_api.analysis_configuration.BasecallerConfiguration.TargetFiltering\x12[\n\x17\x61lignment_configuration\x18\x06 \x01(\x0b\x32:.minknow_api.analysis_configuration.AlignmentConfiguration\x12Q\n\x12lamp_configuration\x18\x07 \x01(\x0b\x32\x35.minknow_api.analysis_configuration.LampConfiguration\x12\x1d\n\x15\x65nable_read_splitting\x18\x08 \x01(\x08\x12=\n\x18min_score_read_splitting\x18\t \x01(\x0b\x32\x1b.google.protobuf.FloatValue\x1a\xfb\x02\n\rReadFiltering\x12\x30\n\nmin_qscore\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x12\x31\n\x0bmin_samples\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.UInt64Value\x12\x31\n\x0bmax_samples\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.UInt64Value\x12/\n\tmin_bases\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.UInt64Value\x12/\n\tmax_bases\x18\x05 \x01(\x0b\x32\x1c.google.protobuf.UInt64Value\x12\x37\n\x11max_failed_chunks\x18\x06 \x01(\x0b\x32\x1c.google.protobuf.UInt64Value\x12\x37\n\x11min_duplex_qscore\x18\x07 \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x1a\xa5\x01\n\x0fTargetFiltering\x12\x30\n\nmin_qscore\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x12/\n\tmin_bases\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.UInt64Value\x12/\n\tmax_bases\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.UInt64Value\"w\n!SetBasecallerConfigurationRequest\x12R\n\x07\x63onfigs\x18\x01 \x01(\x0b\x32;.minknow_api.analysis_configuration.BasecallerConfigurationB\x04\x90\xb5\x18\x01\"$\n\"SetBasecallerConfigurationResponse\"#\n!GetBasecallerConfigurationRequest\"!\n\x1fGetPoreTypeConfigurationRequest\"\xab\x05\n\x15PoreTypeConfiguration\x12\x1a\n\x10global_pore_type\x18\x01 \x01(\tH\x00\x12~\n\x17\x63hannel_well_pore_types\x18\x02 \x01(\x0b\x32[.minknow_api.analysis_configuration.PoreTypeConfiguration.ChannelWellPoreTypeConfigurationsH\x00\x1a,\n\x0b\x43hannelWell\x12\x0f\n\x07\x63hannel\x18\x01 \x01(\r\x12\x0c\n\x04well\x18\x02 \x01(\r\x1a\xb3\x03\n!ChannelWellPoreTypeConfigurations\x12~\n\npore_types\x18\x01 \x03(\x0b\x32j.minknow_api.analysis_configuration.PoreTypeConfiguration.ChannelWellPoreTypeConfigurations.PoreTypesEntry\x1an\n\x0f\x43hannelWellList\x12[\n\x0c\x63hannel_well\x18\x01 \x03(\x0b\x32\x45.minknow_api.analysis_configuration.PoreTypeConfiguration.ChannelWell\x1a\x9d\x01\n\x0ePoreTypesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12z\n\x05value\x18\x02 \x01(\x0b\x32k.minknow_api.analysis_configuration.PoreTypeConfiguration.ChannelWellPoreTypeConfigurations.ChannelWellList:\x02\x38\x01\x42\x12\n\x10pore_type_config\"\"\n SetPoreTypeConfigurationResponse\"\xcc\'\n\x13WriterConfiguration\x12\x62\n\nread_fast5\x18\x02 \x01(\x0b\x32N.minknow_api.analysis_configuration.WriterConfiguration.ReadFast5Configuration\x12\x62\n\nread_fastq\x18\x03 \x01(\x0b\x32N.minknow_api.analysis_configuration.WriterConfiguration.ReadFastqConfiguration\x12^\n\x08read_bam\x18\x08 \x01(\x0b\x32L.minknow_api.analysis_configuration.WriterConfiguration.ReadBamConfiguration\x12`\n\tread_pod5\x18\n \x01(\x0b\x32M.minknow_api.analysis_configuration.WriterConfiguration.ReadPod5Configuration\x12r\n\x12sequencing_summary\x18\x05 \x01(\x0b\x32V.minknow_api.analysis_configuration.WriterConfiguration.SequencingSummaryConfiguration\x12W\n\x04\x62ulk\x18\x06 \x01(\x0b\x32I.minknow_api.analysis_configuration.WriterConfiguration.BulkConfiguration\x12[\n\x06report\x18\x07 \x01(\x0b\x32K.minknow_api.analysis_configuration.WriterConfiguration.ReportConfiguration\x12\x45\n\x0cread_filters\x18\t \x01(\x0b\x32/.minknow_api.analysis_configuration.ReadFilters\x1a\xff\x03\n\x14\x43hannelConfiguration\x12\x16\n\x0c\x61ll_channels\x18\x01 \x01(\x08H\x00\x12u\n\x11specific_channels\x18\x02 \x01(\x0b\x32X.minknow_api.analysis_configuration.WriterConfiguration.ChannelConfiguration.ChannelListH\x00\x12t\n\x0e\x63hannel_ranges\x18\x03 \x01(\x0b\x32Z.minknow_api.analysis_configuration.WriterConfiguration.ChannelConfiguration.ChannelRangesH\x00\x1a\x1f\n\x0b\x43hannelList\x12\x10\n\x08\x63hannels\x18\x01 \x03(\x05\x1a\xb4\x01\n\rChannelRanges\x12w\n\x06ranges\x18\x01 \x03(\x0b\x32g.minknow_api.analysis_configuration.WriterConfiguration.ChannelConfiguration.ChannelRanges.ChannelRange\x1a*\n\x0c\x43hannelRange\x12\r\n\x05start\x18\x01 \x01(\x05\x12\x0b\n\x03\x65nd\x18\x02 \x01(\x05\x42\n\n\x08\x63hannels\x1a\xda\x07\n\x16ReadFast5Configuration\x12\x19\n\x11\x63ompression_level\x18\x01 \x01(\x05\x12\x61\n\x10\x63ompression_type\x18\x0e \x01(\x0e\x32G.minknow_api.analysis_configuration.WriterConfiguration.CompressionType\x12Y\n\x03raw\x18\x02 \x01(\x0b\x32L.minknow_api.analysis_configuration.WriterConfiguration.ChannelConfiguration\x12[\n\x05\x66\x61stq\x18\x03 \x01(\x0b\x32L.minknow_api.analysis_configuration.WriterConfiguration.ChannelConfiguration\x12\x61\n\x0btrace_table\x18\x0b \x01(\x0b\x32L.minknow_api.analysis_configuration.WriterConfiguration.ChannelConfiguration\x12`\n\nmove_table\x18\x0c \x01(\x0b\x32L.minknow_api.analysis_configuration.WriterConfiguration.ChannelConfiguration\x12i\n\x13modifications_table\x18\r \x01(\x0b\x32L.minknow_api.analysis_configuration.WriterConfiguration.ChannelConfiguration\x12$\n\x1c\x64isable_writing_passed_reads\x18\x05 \x01(\x08\x12$\n\x1c\x64isable_writing_failed_reads\x18\x06 \x01(\x08\x12+\n#disable_writing_force_skipped_reads\x18\x07 \x01(\x08\x12\x14\n\x0c\x66ile_pattern\x18\x08 \x01(\t\x12\x1c\n\x14\x66\x61stq_header_pattern\x18\t \x01(\t\x12\x15\n\x0b\x62\x61tch_count\x18\n \x01(\rH\x00\x12\x19\n\x0f\x62\x61ses_per_batch\x18\x0f \x01(\x04H\x00\x12:\n\x18no_output_based_batching\x18\x11 \x01(\x0b\x32\x16.google.protobuf.EmptyH\x00\x12\x31\n\x0e\x62\x61tch_duration\x18\x10 \x01(\x0b\x32\x19.google.protobuf.DurationB\x0c\n\nbatch_info\x1a\xe1\x03\n\x16ReadFastqConfiguration\x12\\\n\x06\x65nable\x18\x01 \x01(\x0b\x32L.minknow_api.analysis_configuration.WriterConfiguration.ChannelConfiguration\x12\x14\n\x0c\x66ile_pattern\x18\x02 \x01(\t\x12\x16\n\x0eheader_pattern\x18\x03 \x01(\t\x12\x15\n\x0b\x62\x61tch_count\x18\x04 \x01(\rH\x00\x12\x19\n\x0f\x62\x61ses_per_batch\x18\x06 \x01(\x04H\x00\x12:\n\x18no_output_based_batching\x18\x0b \x01(\x0b\x32\x16.google.protobuf.EmptyH\x00\x12\x13\n\x0b\x63ompression\x18\x05 \x01(\x08\x12$\n\x1c\x64isable_writing_passed_reads\x18\x07 \x01(\x08\x12$\n\x1c\x64isable_writing_failed_reads\x18\x08 \x01(\x08\x12+\n#disable_writing_force_skipped_reads\x18\t \x01(\x08\x12\x31\n\x0e\x62\x61tch_duration\x18\n \x01(\x0b\x32\x19.google.protobuf.DurationB\x0c\n\nbatch_info\x1a\xdf\x03\n\x14ReadBamConfiguration\x12\\\n\x06\x65nable\x18\x01 \x01(\x0b\x32L.minknow_api.analysis_configuration.WriterConfiguration.ChannelConfiguration\x12\x14\n\x0c\x66ile_pattern\x18\x02 \x01(\t\x12\x15\n\x0b\x62\x61tch_count\x18\x03 \x01(\rH\x00\x12\x19\n\x0f\x62\x61ses_per_batch\x18\x05 \x01(\x04H\x00\x12:\n\x18no_output_based_batching\x18\n \x01(\x0b\x32\x16.google.protobuf.EmptyH\x00\x12+\n#disable_writing_multiple_alignments\x18\x04 \x01(\x08\x12$\n\x1c\x64isable_writing_passed_reads\x18\x06 \x01(\x08\x12$\n\x1c\x64isable_writing_failed_reads\x18\x07 \x01(\x08\x12+\n#disable_writing_force_skipped_reads\x18\x08 \x01(\x08\x12\x31\n\x0e\x62\x61tch_duration\x18\t \x01(\x0b\x32\x19.google.protobuf.DurationB\x0c\n\nbatch_info\x1a\xb3\x03\n\x15ReadPod5Configuration\x12\\\n\x06\x65nable\x18\x01 \x01(\x0b\x32L.minknow_api.analysis_configuration.WriterConfiguration.ChannelConfiguration\x12\x14\n\x0c\x66ile_pattern\x18\x02 \x01(\t\x12\x15\n\x0b\x62\x61tch_count\x18\x03 \x01(\rH\x00\x12\x19\n\x0f\x62\x61ses_per_batch\x18\x07 \x01(\x04H\x00\x12:\n\x18no_output_based_batching\x18\t \x01(\x0b\x32\x16.google.protobuf.EmptyH\x00\x12$\n\x1c\x64isable_writing_passed_reads\x18\x04 \x01(\x08\x12$\n\x1c\x64isable_writing_failed_reads\x18\x05 \x01(\x08\x12+\n#disable_writing_force_skipped_reads\x18\x06 \x01(\x08\x12\x31\n\x0e\x62\x61tch_duration\x18\x08 \x01(\x0b\x32\x19.google.protobuf.DurationB\x0c\n\nbatch_info\x1a\x94\x01\n\x1eSequencingSummaryConfiguration\x12\\\n\x06\x65nable\x18\x01 \x01(\x0b\x32L.minknow_api.analysis_configuration.WriterConfiguration.ChannelConfiguration\x12\x14\n\x0c\x66ile_pattern\x18\x02 \x01(\t\x1a\xd7\x05\n\x11\x42ulkConfiguration\x12\x19\n\x11\x63ompression_level\x18\x02 \x01(\x05\x12\x61\n\x10\x63ompression_type\x18\r \x01(\x0e\x32G.minknow_api.analysis_configuration.WriterConfiguration.CompressionType\x12\x14\n\x0c\x66ile_pattern\x18\x0e \x01(\t\x12Y\n\x03raw\x18\x03 \x01(\x0b\x32L.minknow_api.analysis_configuration.WriterConfiguration.ChannelConfiguration\x12\\\n\x06\x65vents\x18\x04 \x01(\x0b\x32L.minknow_api.analysis_configuration.WriterConfiguration.ChannelConfiguration\x12[\n\x05reads\x18\x05 \x01(\x0b\x32L.minknow_api.analysis_configuration.WriterConfiguration.ChannelConfiguration\x12_\n\tmultiplex\x18\x06 \x01(\x0b\x32L.minknow_api.analysis_configuration.WriterConfiguration.ChannelConfiguration\x12\x64\n\x0e\x63hannel_states\x18\x07 \x01(\x0b\x32L.minknow_api.analysis_configuration.WriterConfiguration.ChannelConfiguration\x12\x17\n\x0f\x64\x65vice_metadata\x18\x0b \x01(\x08\x12\x17\n\x0f\x64\x65vice_commands\x18\x0c \x01(\x08\x12\x1f\n\x17\x64ynamic_analysis_config\x18\x0f \x01(\x08\x1a\x99\x03\n\x13ReportConfiguration\x12\x1f\n\x17pdf_report_file_pattern\x18\x01 \x01(\t\x12 \n\x18json_report_file_pattern\x18\x02 \x01(\t\x12 \n\x18html_report_file_pattern\x18\t \x01(\t\x12$\n\x1cmarkdown_report_file_pattern\x18\x08 \x01(\t\x12%\n\x1d\x64uty_time_report_file_pattern\x18\x03 \x01(\t\x12&\n\x1ethroughput_report_file_pattern\x18\x04 \x01(\t\x12)\n!final_summary_report_file_pattern\x18\x05 \x01(\t\x12-\n%barcode_alignment_report_file_pattern\x18\x06 \x01(\t\x12(\n sample_sheet_report_file_pattern\x18\n \x01(\t\x12$\n\x1c\x63ustom_report_suffix_pattern\x18\x07 \x01(\t\"R\n\x0f\x43ompressionType\x12\x16\n\x12\x44\x65\x66\x61ultCompression\x10\x00\x12\x13\n\x0fZlibCompression\x10\x01\x12\x12\n\x0eVbzCompression\x10\x02\" \n\x1eSetWriterConfigurationResponse\"\x1f\n\x1dGetWriterConfigurationRequest\"\x1f\n\x1dGetReadClassificationsRequest\"\xd7\x01\n\x1eGetReadClassificationsResponse\x12y\n\x14read_classifications\x18\x01 \x03(\x0b\x32[.minknow_api.analysis_configuration.GetReadClassificationsResponse.ReadClassificationsEntry\x1a:\n\x18ReadClassificationsEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xfc\x02\n\x1c\x44ynamicAnalysisConfiguration\x12o\n\x13read_scale_tracking\x18\x01 \x01(\x0b\x32R.minknow_api.analysis_configuration.DynamicAnalysisConfiguration.ReadScaleTracking\x1a\xea\x01\n\x11ReadScaleTracking\x12 \n\x18\x63onductance_scan_voltage\x18\x01 \x01(\x02\x12\x82\x01\n\x13\x63hannel_conductance\x18\x02 \x03(\x0b\x32\x65.minknow_api.analysis_configuration.DynamicAnalysisConfiguration.ReadScaleTracking.ChannelConductance\x1a.\n\x12\x43hannelConductance\x12\x18\n\x10well_conductance\x18\x01 \x03(\x02\"(\n&GetDynamicAnalysisConfigurationRequest\")\n\'SetDynamicAnalysisConfigurationResponse2\xac\x15\n\x1c\x41nalysisConfigurationService\x12\xa1\x01\n\x1aget_analysis_configuration\x12\x43.minknow_api.analysis_configuration.GetAnalysisConfigurationRequest\x1a\x39.minknow_api.analysis_configuration.AnalysisConfiguration\"\x03\x90\x02\x01\x12\xa2\x01\n\x1aset_analysis_configuration\x12\x39.minknow_api.analysis_configuration.AnalysisConfiguration\x1a\x44.minknow_api.analysis_configuration.SetAnalysisConfigurationResponse\"\x03\x90\x02\x02\x12\xb2\x01\n\x1creset_analysis_configuration\x12\x45.minknow_api.analysis_configuration.ResetAnalysisConfigurationRequest\x1a\x46.minknow_api.analysis_configuration.ResetAnalysisConfigurationResponse\"\x03\x90\x02\x02\x12\xaa\x01\n\x1aset_analysis_enabled_state\x12\x42.minknow_api.analysis_configuration.SetAnalysisEnabledStateRequest\x1a\x43.minknow_api.analysis_configuration.SetAnalysisEnabledStateResponse\"\x03\x90\x02\x02\x12\xa1\x01\n\x17get_channel_states_desc\x12?.minknow_api.analysis_configuration.GetChannelStatesDescRequest\x1a@.minknow_api.analysis_configuration.GetChannelStatesDescResponse\"\x03\x90\x02\x01\x12\x81\x01\n\x0bget_summary\x12\x35.minknow_api.analysis_configuration.GetSummaryRequest\x1a\x36.minknow_api.analysis_configuration.GetSummaryResponse\"\x03\x90\x02\x01\x12\xb2\x01\n\x1cset_basecaller_configuration\x12\x45.minknow_api.analysis_configuration.SetBasecallerConfigurationRequest\x1a\x46.minknow_api.analysis_configuration.SetBasecallerConfigurationResponse\"\x03\x90\x02\x02\x12\xb6\x01\n preload_basecaller_configuration\x12\x45.minknow_api.analysis_configuration.SetBasecallerConfigurationRequest\x1a\x46.minknow_api.analysis_configuration.SetBasecallerConfigurationResponse\"\x03\x90\x02\x02\x12\xa7\x01\n\x1cget_basecaller_configuration\x12\x45.minknow_api.analysis_configuration.GetBasecallerConfigurationRequest\x1a;.minknow_api.analysis_configuration.BasecallerConfiguration\"\x03\x90\x02\x01\x12\xa2\x01\n\x1bget_pore_type_configuration\x12\x43.minknow_api.analysis_configuration.GetPoreTypeConfigurationRequest\x1a\x39.minknow_api.analysis_configuration.PoreTypeConfiguration\"\x03\x90\x02\x01\x12\xa3\x01\n\x1bset_pore_type_configuration\x12\x39.minknow_api.analysis_configuration.PoreTypeConfiguration\x1a\x44.minknow_api.analysis_configuration.SetPoreTypeConfigurationResponse\"\x03\x90\x02\x02\x12\x9c\x01\n\x18set_writer_configuration\x12\x37.minknow_api.analysis_configuration.WriterConfiguration\x1a\x42.minknow_api.analysis_configuration.SetWriterConfigurationResponse\"\x03\x90\x02\x02\x12\x9b\x01\n\x18get_writer_configuration\x12\x41.minknow_api.analysis_configuration.GetWriterConfigurationRequest\x1a\x37.minknow_api.analysis_configuration.WriterConfiguration\"\x03\x90\x02\x01\x12\xa6\x01\n\x18get_read_classifications\x12\x41.minknow_api.analysis_configuration.GetReadClassificationsRequest\x1a\x42.minknow_api.analysis_configuration.GetReadClassificationsResponse\"\x03\x90\x02\x01\x12\xb7\x01\n\"get_dynamic_analysis_configuration\x12J.minknow_api.analysis_configuration.GetDynamicAnalysisConfigurationRequest\x1a@.minknow_api.analysis_configuration.DynamicAnalysisConfiguration\"\x03\x90\x02\x01\x12\xb5\x01\n\"set_dynamic_analysis_configuration\x12@.minknow_api.analysis_configuration.DynamicAnalysisConfiguration\x1aK.minknow_api.analysis_configuration.SetDynamicAnalysisConfigurationResponse\"\x00\x42&\n\x1c\x63om.nanoporetech.minknow_api\xa2\x02\x05MKAPIb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n(minknow_api/analysis_configuration.proto\x12\"minknow_api.analysis_configuration\x1a\x1egoogle/protobuf/duration.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x1dminknow_api/rpc_options.proto\"\xc6\x02\n\x0e\x45ventDetection\x12N\n\x04type\x18\x13 \x01(\x0e\x32@.minknow_api.analysis_configuration.EventDetection.DetectionType\x12\x13\n\x0bwindow_size\x18\x03 \x01(\r\x12\x11\n\tthreshold\x18\x05 \x01(\x01\x12\x13\n\x0bpeak_height\x18\t \x01(\x01\x12:\n\x14\x65vents_to_base_ratio\x18\x10 \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x12\x1c\n\x14\x62reak_on_mux_changes\x18\x11 \x01(\x08\x12!\n\x19max_mux_change_back_shift\x18\x12 \x01(\r\"*\n\rDetectionType\x12\x0e\n\nMULTITTEST\x10\x00\x12\t\n\x05\x44MEAN\x10\x01\"\xf0\x04\n\x13ReadDetectionParams\x12W\n\x04mode\x18\x01 \x01(\x0e\x32I.minknow_api.analysis_configuration.ReadDetectionParams.ReadDetectionMode\x12\x1a\n\x12minimum_delta_mean\x18\x02 \x01(\x01\x12\x11\n\tlook_back\x18\x03 \x01(\r\x12>\n\x18\x62reak_reads_after_events\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.UInt32Value\x12?\n\x19\x62reak_reads_after_seconds\x18\x05 \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x12\"\n\x1a\x62reak_reads_on_mux_changes\x18\x06 \x01(\x08\x12\x33\n\ropen_pore_min\x18\x07 \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x12\x33\n\ropen_pore_max\x18\x08 \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x12\x37\n\x11open_pore_default\x18\t \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x12@\n\x1aopen_pore_seconds_required\x18\n \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\"G\n\x11ReadDetectionMode\x12\x08\n\x04none\x10\x00\x12\x0e\n\ntransition\x10\x01\x12\x0c\n\x08lookback\x10\x02\x12\n\n\x06minmax\x10\x03\"\x8e\x01\n\x0bReadFilters\x12\x17\n\x0fread_length_min\x18\x01 \x01(\r\x12\x17\n\x0fread_length_max\x18\x02 \x01(\r\x12\x17\n\x0f\x65vent_count_min\x18\x03 \x01(\r\x12\x17\n\x0f\x65vent_count_max\x18\x04 \x01(\r\x12\x1b\n\x13skip_rejected_reads\x18\x05 \x01(\x08\"\x87\x07\n\x18ReadClassificationParams\x12Z\n\rscheme_module\x18\x01 \x01(\x0e\x32\x43.minknow_api.analysis_configuration.ReadClassificationParams.Scheme\x12\x35\n\x0fmax_sample_size\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.UInt64Value\x12 \n\x18selected_classifications\x18\x03 \x03(\t\x12!\n\x19open_pore_classifications\x18\x06 \x03(\t\x12;\n\x15open_pore_ewma_weight\x18\x07 \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x12J\n$open_pore_ignore_after_reset_seconds\x18\x08 \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x12\x1f\n\x17\x63lassification_strategy\x18\x04 \x01(\t\x12[\n\nparameters\x18\x05 \x01(\x0b\x32G.minknow_api.analysis_configuration.ReadClassificationParams.Parameters\x12P\n*selected_classifications_fraction_required\x18\t \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x12N\n(selected_classifications_chunks_required\x18\n \x01(\x0b\x32\x1c.google.protobuf.UInt32Value\x12\x42\n\x1emerge_selected_classifications\x18\x0b \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12V\n0max_read_length_before_selected_decision_seconds\x18\x0c \x01(\x0b\x32\x1c.google.protobuf.UInt64Value\x1a.\n\nParameters\x12 \n\x18rules_in_execution_order\x18\x02 \x03(\t\"\x1e\n\x06Scheme\x12\x08\n\x04none\x10\x00\x12\n\n\x06parsed\x10\x01\"\xf2\x07\n\rChannelStates\x12\x46\n\x05group\x18\x02 \x01(\x0b\x32\x37.minknow_api.analysis_configuration.ChannelStates.Group\x12\x13\n\x0b\x64\x65scription\x18\x05 \x01(\t\x12\x46\n\x05logic\x18\x03 \x01(\x0b\x32\x37.minknow_api.analysis_configuration.ChannelStates.Logic\x12\x46\n\x05style\x18\x04 \x01(\x0b\x32\x37.minknow_api.analysis_configuration.ChannelStates.Style\x1a\xaa\x04\n\x05Logic\x12\x10\n\x08\x63riteria\x18\x01 \x01(\t\x12\x0c\n\x04rank\x18\x03 \x01(\x05\x12\x0f\n\x07pattern\x18\x04 \x01(\t\x12\x16\n\x0e\x63lassification\x18\x05 \x01(\t\x12N\n\x06ranges\x18\x06 \x01(\x0b\x32>.minknow_api.analysis_configuration.ChannelStates.Logic.Ranges\x12T\n\tbehaviour\x18\x07 \x01(\x0b\x32\x41.minknow_api.analysis_configuration.ChannelStates.Logic.Behaviour\x1a\xa4\x01\n\tBehaviour\x12\x1b\n\x13reset_on_mux_change\x18\x01 \x01(\x05\x12\x1c\n\x14reset_on_well_change\x18\x02 \x01(\x05\x12\r\n\x05latch\x18\x03 \x01(\x05\x12%\n\x1dreset_on_effective_mux_change\x18\x04 \x01(\x05\x12&\n\x1ereset_on_effective_well_change\x18\x05 \x01(\x05\x1a\x8a\x01\n\x06Ranges\x12S\n\x05range\x18\x01 \x01(\x0b\x32\x44.minknow_api.analysis_configuration.ChannelStates.Logic.Ranges.Range\x1a+\n\x05Range\x12\x10\n\x08lower_pa\x18\x01 \x01(\x05\x12\x10\n\x08upper_pa\x18\x02 \x01(\x05\x1aS\n\x05Style\x12+\n\x05order\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.UInt32Value\x12\r\n\x05label\x18\x02 \x01(\t\x12\x0e\n\x06\x63olour\x18\x03 \x01(\t\x1ar\n\x05Group\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x46\n\x05style\x18\x02 \x01(\x0b\x32\x37.minknow_api.analysis_configuration.ChannelStates.Style\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\"!\n\x1fGetAnalysisConfigurationRequest\"\x91\x03\n\x11ReadScalingParams\x12\x1a\n\x12quantile_locations\x18\x03 \x03(\x02\x12\x1e\n\x16quantile_weights_shift\x18\x01 \x03(\x02\x12\x1e\n\x16quantile_weights_scale\x18\x02 \x03(\x02\x12\x16\n\x0etracking_alpha\x18\x04 \x01(\x02\x12$\n\x1c\x61lpha_number_estimates_decay\x18\x05 \x01(\x02\x12\x18\n\x10quantile_maxdiff\x18\n \x01(\x02\x12\x1c\n\x14trust_limit_fraction\x18\x06 \x01(\x02\x12\x16\n\x0e\x64iff_threshold\x18\x07 \x01(\x02\x12\x1a\n\x12\x65mission_threshold\x18\x08 \x01(\x02\x12\x17\n\x0f\x64\x61\x63s_breakpoint\x18\t \x01(\x02\x12 \n\x18\x63onductance_factor_scale\x18\x0b \x01(\x02\x12 \n\x18\x63onductance_factor_shift\x18\x0c \x01(\x02\x12\x19\n\x11q90_q10_to_normal\x18\r \x01(\x02\"\xac\x04\n\x15\x41nalysisConfiguration\x12K\n\x0f\x65vent_detection\x18\x01 \x01(\x0b\x32\x32.minknow_api.analysis_configuration.EventDetection\x12O\n\x0eread_detection\x18\x02 \x01(\x0b\x32\x37.minknow_api.analysis_configuration.ReadDetectionParams\x12Y\n\x13read_classification\x18\x04 \x01(\x0b\x32<.minknow_api.analysis_configuration.ReadClassificationParams\x12\x64\n\x0e\x63hannel_states\x18\x07 \x03(\x0b\x32L.minknow_api.analysis_configuration.AnalysisConfiguration.ChannelStatesEntry\x12K\n\x0cread_scaling\x18\x08 \x01(\x0b\x32\x35.minknow_api.analysis_configuration.ReadScalingParams\x1ag\n\x12\x43hannelStatesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12@\n\x05value\x18\x02 \x01(\x0b\x32\x31.minknow_api.analysis_configuration.ChannelStates:\x02\x38\x01\"\"\n SetAnalysisConfigurationResponse\"#\n!ResetAnalysisConfigurationRequest\"$\n\"ResetAnalysisConfigurationResponse\"6\n\x1eSetAnalysisEnabledStateRequest\x12\x14\n\x06\x65nable\x18\x01 \x01(\x08\x42\x04\x88\xb5\x18\x01\"!\n\x1fSetAnalysisEnabledStateResponse\"\x1d\n\x1bGetChannelStatesDescRequest\"\x99\x04\n\x1cGetChannelStatesDescResponse\x12V\n\x06groups\x18\x01 \x03(\x0b\x32\x46.minknow_api.analysis_configuration.GetChannelStatesDescResponse.Group\x1a;\n\x05Style\x12\r\n\x05label\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x0e\n\x06\x63olour\x18\x03 \x01(\t\x1a\x95\x01\n\x0c\x43hannelState\x12\n\n\x02id\x18\x01 \x01(\r\x12\x0c\n\x04name\x18\x02 \x01(\t\x12U\n\x05style\x18\x03 \x01(\x0b\x32\x46.minknow_api.analysis_configuration.GetChannelStatesDescResponse.Style\x12\x14\n\x0cglobal_order\x18\x04 \x01(\r\x1a\xcb\x01\n\x05Group\x12\x0c\n\x04name\x18\x01 \x01(\t\x12U\n\x05style\x18\x02 \x01(\x0b\x32\x46.minknow_api.analysis_configuration.GetChannelStatesDescResponse.Style\x12]\n\x06states\x18\x03 \x03(\x0b\x32M.minknow_api.analysis_configuration.GetChannelStatesDescResponse.ChannelState\"\x13\n\x11GetSummaryRequest\"K\n\x12GetSummaryResponse\x12\x18\n\x10\x61nalysis_enabled\x18\x01 \x01(\x08\x12\x1b\n\x13\x62\x61secalling_enabled\x18\x02 \x01(\x08\"\x84\x02\n\x16\x42\x61rcodingConfiguration\x12\x16\n\x0e\x62\x61rcoding_kits\x18\x01 \x03(\t\x12\x15\n\rtrim_barcodes\x18\x02 \x01(\x08\x12\"\n\x1arequire_barcodes_both_ends\x18\x03 \x01(\x08\x12#\n\x1bignore_unspecified_barcodes\x18\t \x01(\x08J\x04\x08\x04\x10\x05J\x04\x08\x05\x10\x06J\x04\x08\x06\x10\x07J\x04\x08\x07\x10\x08J\x04\x08\x08\x10\tR\x1a\x64\x65tect_mid_strand_barcodesR\tmin_scoreR\x0emin_score_rearR\rmin_score_midR\x0emin_score_mask\"\xae\x01\n\x16\x41lignmentConfiguration\x12\x17\n\x0freference_files\x18\x01 \x03(\t\x12\x10\n\x08\x62\x65\x64_file\x18\x02 \x01(\t\x12\x35\n\x10minimum_coverage\x18\x03 \x01(\x0b\x32\x1b.google.protobuf.FloatValue\x12\x32\n*aggregate_statistics_for_multiple_bed_hits\x18\x04 \x01(\x08\"\xcc\x01\n\x11LampConfiguration\x12\x10\n\x08lamp_kit\x18\x01 \x01(\t\x12\x37\n\x12min_score_barcodes\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.FloatValue\x12\x34\n\x0fmin_score_masks\x18\x03 \x01(\x0b\x32\x1b.google.protobuf.FloatValue\x12\x36\n\x11min_score_targets\x18\x04 \x01(\x0b\x32\x1b.google.protobuf.FloatValue\"\xb3\t\n\x17\x42\x61secallerConfiguration\x12\x0e\n\x06\x65nable\x18\x02 \x01(\x08\x12\x17\n\x0f\x63onfig_filename\x18\x01 \x01(\t\x12\x14\n\x0c\x61lign_filter\x18\n \x01(\x08\x12\x61\n\x0eread_filtering\x18\x03 \x01(\x0b\x32I.minknow_api.analysis_configuration.BasecallerConfiguration.ReadFiltering\x12[\n\x17\x62\x61rcoding_configuration\x18\x04 \x01(\x0b\x32:.minknow_api.analysis_configuration.BarcodingConfiguration\x12\x65\n\x10target_filtering\x18\x05 \x01(\x0b\x32K.minknow_api.analysis_configuration.BasecallerConfiguration.TargetFiltering\x12[\n\x17\x61lignment_configuration\x18\x06 \x01(\x0b\x32:.minknow_api.analysis_configuration.AlignmentConfiguration\x12Q\n\x12lamp_configuration\x18\x07 \x01(\x0b\x32\x35.minknow_api.analysis_configuration.LampConfiguration\x12\x1d\n\x15\x65nable_read_splitting\x18\x08 \x01(\x08\x12=\n\x18min_score_read_splitting\x18\t \x01(\x0b\x32\x1b.google.protobuf.FloatValue\x1a\xfb\x02\n\rReadFiltering\x12\x30\n\nmin_qscore\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x12\x31\n\x0bmin_samples\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.UInt64Value\x12\x31\n\x0bmax_samples\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.UInt64Value\x12/\n\tmin_bases\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.UInt64Value\x12/\n\tmax_bases\x18\x05 \x01(\x0b\x32\x1c.google.protobuf.UInt64Value\x12\x37\n\x11max_failed_chunks\x18\x06 \x01(\x0b\x32\x1c.google.protobuf.UInt64Value\x12\x37\n\x11min_duplex_qscore\x18\x07 \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x1a\xa5\x01\n\x0fTargetFiltering\x12\x30\n\nmin_qscore\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x12/\n\tmin_bases\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.UInt64Value\x12/\n\tmax_bases\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.UInt64Value\"w\n!SetBasecallerConfigurationRequest\x12R\n\x07\x63onfigs\x18\x01 \x01(\x0b\x32;.minknow_api.analysis_configuration.BasecallerConfigurationB\x04\x90\xb5\x18\x01\"$\n\"SetBasecallerConfigurationResponse\"3\n!GetBasecallerConfigurationRequest\x12\x0e\n\x06run_id\x18\x01 \x01(\t\"!\n\x1fGetPoreTypeConfigurationRequest\"\xab\x05\n\x15PoreTypeConfiguration\x12\x1a\n\x10global_pore_type\x18\x01 \x01(\tH\x00\x12~\n\x17\x63hannel_well_pore_types\x18\x02 \x01(\x0b\x32[.minknow_api.analysis_configuration.PoreTypeConfiguration.ChannelWellPoreTypeConfigurationsH\x00\x1a,\n\x0b\x43hannelWell\x12\x0f\n\x07\x63hannel\x18\x01 \x01(\r\x12\x0c\n\x04well\x18\x02 \x01(\r\x1a\xb3\x03\n!ChannelWellPoreTypeConfigurations\x12~\n\npore_types\x18\x01 \x03(\x0b\x32j.minknow_api.analysis_configuration.PoreTypeConfiguration.ChannelWellPoreTypeConfigurations.PoreTypesEntry\x1an\n\x0f\x43hannelWellList\x12[\n\x0c\x63hannel_well\x18\x01 \x03(\x0b\x32\x45.minknow_api.analysis_configuration.PoreTypeConfiguration.ChannelWell\x1a\x9d\x01\n\x0ePoreTypesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12z\n\x05value\x18\x02 \x01(\x0b\x32k.minknow_api.analysis_configuration.PoreTypeConfiguration.ChannelWellPoreTypeConfigurations.ChannelWellList:\x02\x38\x01\x42\x12\n\x10pore_type_config\"\"\n SetPoreTypeConfigurationResponse\"\xcc\'\n\x13WriterConfiguration\x12\x62\n\nread_fast5\x18\x02 \x01(\x0b\x32N.minknow_api.analysis_configuration.WriterConfiguration.ReadFast5Configuration\x12\x62\n\nread_fastq\x18\x03 \x01(\x0b\x32N.minknow_api.analysis_configuration.WriterConfiguration.ReadFastqConfiguration\x12^\n\x08read_bam\x18\x08 \x01(\x0b\x32L.minknow_api.analysis_configuration.WriterConfiguration.ReadBamConfiguration\x12`\n\tread_pod5\x18\n \x01(\x0b\x32M.minknow_api.analysis_configuration.WriterConfiguration.ReadPod5Configuration\x12r\n\x12sequencing_summary\x18\x05 \x01(\x0b\x32V.minknow_api.analysis_configuration.WriterConfiguration.SequencingSummaryConfiguration\x12W\n\x04\x62ulk\x18\x06 \x01(\x0b\x32I.minknow_api.analysis_configuration.WriterConfiguration.BulkConfiguration\x12[\n\x06report\x18\x07 \x01(\x0b\x32K.minknow_api.analysis_configuration.WriterConfiguration.ReportConfiguration\x12\x45\n\x0cread_filters\x18\t \x01(\x0b\x32/.minknow_api.analysis_configuration.ReadFilters\x1a\xff\x03\n\x14\x43hannelConfiguration\x12\x16\n\x0c\x61ll_channels\x18\x01 \x01(\x08H\x00\x12u\n\x11specific_channels\x18\x02 \x01(\x0b\x32X.minknow_api.analysis_configuration.WriterConfiguration.ChannelConfiguration.ChannelListH\x00\x12t\n\x0e\x63hannel_ranges\x18\x03 \x01(\x0b\x32Z.minknow_api.analysis_configuration.WriterConfiguration.ChannelConfiguration.ChannelRangesH\x00\x1a\x1f\n\x0b\x43hannelList\x12\x10\n\x08\x63hannels\x18\x01 \x03(\x05\x1a\xb4\x01\n\rChannelRanges\x12w\n\x06ranges\x18\x01 \x03(\x0b\x32g.minknow_api.analysis_configuration.WriterConfiguration.ChannelConfiguration.ChannelRanges.ChannelRange\x1a*\n\x0c\x43hannelRange\x12\r\n\x05start\x18\x01 \x01(\x05\x12\x0b\n\x03\x65nd\x18\x02 \x01(\x05\x42\n\n\x08\x63hannels\x1a\xda\x07\n\x16ReadFast5Configuration\x12\x19\n\x11\x63ompression_level\x18\x01 \x01(\x05\x12\x61\n\x10\x63ompression_type\x18\x0e \x01(\x0e\x32G.minknow_api.analysis_configuration.WriterConfiguration.CompressionType\x12Y\n\x03raw\x18\x02 \x01(\x0b\x32L.minknow_api.analysis_configuration.WriterConfiguration.ChannelConfiguration\x12[\n\x05\x66\x61stq\x18\x03 \x01(\x0b\x32L.minknow_api.analysis_configuration.WriterConfiguration.ChannelConfiguration\x12\x61\n\x0btrace_table\x18\x0b \x01(\x0b\x32L.minknow_api.analysis_configuration.WriterConfiguration.ChannelConfiguration\x12`\n\nmove_table\x18\x0c \x01(\x0b\x32L.minknow_api.analysis_configuration.WriterConfiguration.ChannelConfiguration\x12i\n\x13modifications_table\x18\r \x01(\x0b\x32L.minknow_api.analysis_configuration.WriterConfiguration.ChannelConfiguration\x12$\n\x1c\x64isable_writing_passed_reads\x18\x05 \x01(\x08\x12$\n\x1c\x64isable_writing_failed_reads\x18\x06 \x01(\x08\x12+\n#disable_writing_force_skipped_reads\x18\x07 \x01(\x08\x12\x14\n\x0c\x66ile_pattern\x18\x08 \x01(\t\x12\x1c\n\x14\x66\x61stq_header_pattern\x18\t \x01(\t\x12\x15\n\x0b\x62\x61tch_count\x18\n \x01(\rH\x00\x12\x19\n\x0f\x62\x61ses_per_batch\x18\x0f \x01(\x04H\x00\x12:\n\x18no_output_based_batching\x18\x11 \x01(\x0b\x32\x16.google.protobuf.EmptyH\x00\x12\x31\n\x0e\x62\x61tch_duration\x18\x10 \x01(\x0b\x32\x19.google.protobuf.DurationB\x0c\n\nbatch_info\x1a\xe1\x03\n\x16ReadFastqConfiguration\x12\\\n\x06\x65nable\x18\x01 \x01(\x0b\x32L.minknow_api.analysis_configuration.WriterConfiguration.ChannelConfiguration\x12\x14\n\x0c\x66ile_pattern\x18\x02 \x01(\t\x12\x16\n\x0eheader_pattern\x18\x03 \x01(\t\x12\x15\n\x0b\x62\x61tch_count\x18\x04 \x01(\rH\x00\x12\x19\n\x0f\x62\x61ses_per_batch\x18\x06 \x01(\x04H\x00\x12:\n\x18no_output_based_batching\x18\x0b \x01(\x0b\x32\x16.google.protobuf.EmptyH\x00\x12\x13\n\x0b\x63ompression\x18\x05 \x01(\x08\x12$\n\x1c\x64isable_writing_passed_reads\x18\x07 \x01(\x08\x12$\n\x1c\x64isable_writing_failed_reads\x18\x08 \x01(\x08\x12+\n#disable_writing_force_skipped_reads\x18\t \x01(\x08\x12\x31\n\x0e\x62\x61tch_duration\x18\n \x01(\x0b\x32\x19.google.protobuf.DurationB\x0c\n\nbatch_info\x1a\xdf\x03\n\x14ReadBamConfiguration\x12\\\n\x06\x65nable\x18\x01 \x01(\x0b\x32L.minknow_api.analysis_configuration.WriterConfiguration.ChannelConfiguration\x12\x14\n\x0c\x66ile_pattern\x18\x02 \x01(\t\x12\x15\n\x0b\x62\x61tch_count\x18\x03 \x01(\rH\x00\x12\x19\n\x0f\x62\x61ses_per_batch\x18\x05 \x01(\x04H\x00\x12:\n\x18no_output_based_batching\x18\n \x01(\x0b\x32\x16.google.protobuf.EmptyH\x00\x12+\n#disable_writing_multiple_alignments\x18\x04 \x01(\x08\x12$\n\x1c\x64isable_writing_passed_reads\x18\x06 \x01(\x08\x12$\n\x1c\x64isable_writing_failed_reads\x18\x07 \x01(\x08\x12+\n#disable_writing_force_skipped_reads\x18\x08 \x01(\x08\x12\x31\n\x0e\x62\x61tch_duration\x18\t \x01(\x0b\x32\x19.google.protobuf.DurationB\x0c\n\nbatch_info\x1a\xb3\x03\n\x15ReadPod5Configuration\x12\\\n\x06\x65nable\x18\x01 \x01(\x0b\x32L.minknow_api.analysis_configuration.WriterConfiguration.ChannelConfiguration\x12\x14\n\x0c\x66ile_pattern\x18\x02 \x01(\t\x12\x15\n\x0b\x62\x61tch_count\x18\x03 \x01(\rH\x00\x12\x19\n\x0f\x62\x61ses_per_batch\x18\x07 \x01(\x04H\x00\x12:\n\x18no_output_based_batching\x18\t \x01(\x0b\x32\x16.google.protobuf.EmptyH\x00\x12$\n\x1c\x64isable_writing_passed_reads\x18\x04 \x01(\x08\x12$\n\x1c\x64isable_writing_failed_reads\x18\x05 \x01(\x08\x12+\n#disable_writing_force_skipped_reads\x18\x06 \x01(\x08\x12\x31\n\x0e\x62\x61tch_duration\x18\x08 \x01(\x0b\x32\x19.google.protobuf.DurationB\x0c\n\nbatch_info\x1a\x94\x01\n\x1eSequencingSummaryConfiguration\x12\\\n\x06\x65nable\x18\x01 \x01(\x0b\x32L.minknow_api.analysis_configuration.WriterConfiguration.ChannelConfiguration\x12\x14\n\x0c\x66ile_pattern\x18\x02 \x01(\t\x1a\xd7\x05\n\x11\x42ulkConfiguration\x12\x19\n\x11\x63ompression_level\x18\x02 \x01(\x05\x12\x61\n\x10\x63ompression_type\x18\r \x01(\x0e\x32G.minknow_api.analysis_configuration.WriterConfiguration.CompressionType\x12\x14\n\x0c\x66ile_pattern\x18\x0e \x01(\t\x12Y\n\x03raw\x18\x03 \x01(\x0b\x32L.minknow_api.analysis_configuration.WriterConfiguration.ChannelConfiguration\x12\\\n\x06\x65vents\x18\x04 \x01(\x0b\x32L.minknow_api.analysis_configuration.WriterConfiguration.ChannelConfiguration\x12[\n\x05reads\x18\x05 \x01(\x0b\x32L.minknow_api.analysis_configuration.WriterConfiguration.ChannelConfiguration\x12_\n\tmultiplex\x18\x06 \x01(\x0b\x32L.minknow_api.analysis_configuration.WriterConfiguration.ChannelConfiguration\x12\x64\n\x0e\x63hannel_states\x18\x07 \x01(\x0b\x32L.minknow_api.analysis_configuration.WriterConfiguration.ChannelConfiguration\x12\x17\n\x0f\x64\x65vice_metadata\x18\x0b \x01(\x08\x12\x17\n\x0f\x64\x65vice_commands\x18\x0c \x01(\x08\x12\x1f\n\x17\x64ynamic_analysis_config\x18\x0f \x01(\x08\x1a\x99\x03\n\x13ReportConfiguration\x12\x1f\n\x17pdf_report_file_pattern\x18\x01 \x01(\t\x12 \n\x18json_report_file_pattern\x18\x02 \x01(\t\x12 \n\x18html_report_file_pattern\x18\t \x01(\t\x12$\n\x1cmarkdown_report_file_pattern\x18\x08 \x01(\t\x12%\n\x1d\x64uty_time_report_file_pattern\x18\x03 \x01(\t\x12&\n\x1ethroughput_report_file_pattern\x18\x04 \x01(\t\x12)\n!final_summary_report_file_pattern\x18\x05 \x01(\t\x12-\n%barcode_alignment_report_file_pattern\x18\x06 \x01(\t\x12(\n sample_sheet_report_file_pattern\x18\n \x01(\t\x12$\n\x1c\x63ustom_report_suffix_pattern\x18\x07 \x01(\t\"R\n\x0f\x43ompressionType\x12\x16\n\x12\x44\x65\x66\x61ultCompression\x10\x00\x12\x13\n\x0fZlibCompression\x10\x01\x12\x12\n\x0eVbzCompression\x10\x02\" \n\x1eSetWriterConfigurationResponse\"/\n\x1dGetWriterConfigurationRequest\x12\x0e\n\x06run_id\x18\x01 \x01(\t\"\x1f\n\x1dGetReadClassificationsRequest\"\xd7\x01\n\x1eGetReadClassificationsResponse\x12y\n\x14read_classifications\x18\x01 \x03(\x0b\x32[.minknow_api.analysis_configuration.GetReadClassificationsResponse.ReadClassificationsEntry\x1a:\n\x18ReadClassificationsEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xfc\x02\n\x1c\x44ynamicAnalysisConfiguration\x12o\n\x13read_scale_tracking\x18\x01 \x01(\x0b\x32R.minknow_api.analysis_configuration.DynamicAnalysisConfiguration.ReadScaleTracking\x1a\xea\x01\n\x11ReadScaleTracking\x12 \n\x18\x63onductance_scan_voltage\x18\x01 \x01(\x02\x12\x82\x01\n\x13\x63hannel_conductance\x18\x02 \x03(\x0b\x32\x65.minknow_api.analysis_configuration.DynamicAnalysisConfiguration.ReadScaleTracking.ChannelConductance\x1a.\n\x12\x43hannelConductance\x12\x18\n\x10well_conductance\x18\x01 \x03(\x02\"(\n&GetDynamicAnalysisConfigurationRequest\")\n\'SetDynamicAnalysisConfigurationResponse2\xac\x15\n\x1c\x41nalysisConfigurationService\x12\xa1\x01\n\x1aget_analysis_configuration\x12\x43.minknow_api.analysis_configuration.GetAnalysisConfigurationRequest\x1a\x39.minknow_api.analysis_configuration.AnalysisConfiguration\"\x03\x90\x02\x01\x12\xa2\x01\n\x1aset_analysis_configuration\x12\x39.minknow_api.analysis_configuration.AnalysisConfiguration\x1a\x44.minknow_api.analysis_configuration.SetAnalysisConfigurationResponse\"\x03\x90\x02\x02\x12\xb2\x01\n\x1creset_analysis_configuration\x12\x45.minknow_api.analysis_configuration.ResetAnalysisConfigurationRequest\x1a\x46.minknow_api.analysis_configuration.ResetAnalysisConfigurationResponse\"\x03\x90\x02\x02\x12\xaa\x01\n\x1aset_analysis_enabled_state\x12\x42.minknow_api.analysis_configuration.SetAnalysisEnabledStateRequest\x1a\x43.minknow_api.analysis_configuration.SetAnalysisEnabledStateResponse\"\x03\x90\x02\x02\x12\xa1\x01\n\x17get_channel_states_desc\x12?.minknow_api.analysis_configuration.GetChannelStatesDescRequest\x1a@.minknow_api.analysis_configuration.GetChannelStatesDescResponse\"\x03\x90\x02\x01\x12\x81\x01\n\x0bget_summary\x12\x35.minknow_api.analysis_configuration.GetSummaryRequest\x1a\x36.minknow_api.analysis_configuration.GetSummaryResponse\"\x03\x90\x02\x01\x12\xb2\x01\n\x1cset_basecaller_configuration\x12\x45.minknow_api.analysis_configuration.SetBasecallerConfigurationRequest\x1a\x46.minknow_api.analysis_configuration.SetBasecallerConfigurationResponse\"\x03\x90\x02\x02\x12\xb6\x01\n preload_basecaller_configuration\x12\x45.minknow_api.analysis_configuration.SetBasecallerConfigurationRequest\x1a\x46.minknow_api.analysis_configuration.SetBasecallerConfigurationResponse\"\x03\x90\x02\x02\x12\xa7\x01\n\x1cget_basecaller_configuration\x12\x45.minknow_api.analysis_configuration.GetBasecallerConfigurationRequest\x1a;.minknow_api.analysis_configuration.BasecallerConfiguration\"\x03\x90\x02\x01\x12\xa2\x01\n\x1bget_pore_type_configuration\x12\x43.minknow_api.analysis_configuration.GetPoreTypeConfigurationRequest\x1a\x39.minknow_api.analysis_configuration.PoreTypeConfiguration\"\x03\x90\x02\x01\x12\xa3\x01\n\x1bset_pore_type_configuration\x12\x39.minknow_api.analysis_configuration.PoreTypeConfiguration\x1a\x44.minknow_api.analysis_configuration.SetPoreTypeConfigurationResponse\"\x03\x90\x02\x02\x12\x9c\x01\n\x18set_writer_configuration\x12\x37.minknow_api.analysis_configuration.WriterConfiguration\x1a\x42.minknow_api.analysis_configuration.SetWriterConfigurationResponse\"\x03\x90\x02\x02\x12\x9b\x01\n\x18get_writer_configuration\x12\x41.minknow_api.analysis_configuration.GetWriterConfigurationRequest\x1a\x37.minknow_api.analysis_configuration.WriterConfiguration\"\x03\x90\x02\x01\x12\xa6\x01\n\x18get_read_classifications\x12\x41.minknow_api.analysis_configuration.GetReadClassificationsRequest\x1a\x42.minknow_api.analysis_configuration.GetReadClassificationsResponse\"\x03\x90\x02\x01\x12\xb7\x01\n\"get_dynamic_analysis_configuration\x12J.minknow_api.analysis_configuration.GetDynamicAnalysisConfigurationRequest\x1a@.minknow_api.analysis_configuration.DynamicAnalysisConfiguration\"\x03\x90\x02\x01\x12\xb5\x01\n\"set_dynamic_analysis_configuration\x12@.minknow_api.analysis_configuration.DynamicAnalysisConfiguration\x1aK.minknow_api.analysis_configuration.SetDynamicAnalysisConfigurationResponse\"\x00\x42&\n\x1c\x63om.nanoporetech.minknow_api\xa2\x02\x05MKAPIb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -74,234 +74,184 @@ _globals['_READDETECTIONPARAMS']._serialized_end=1158 _globals['_READDETECTIONPARAMS_READDETECTIONMODE']._serialized_start=1087 _globals['_READDETECTIONPARAMS_READDETECTIONMODE']._serialized_end=1158 - _globals['_READFILTERS']._serialized_start=1160 - _globals['_READFILTERS']._serialized_end=1273 - _globals['_READCLASSIFICATIONPARAMS']._serialized_start=1276 - _globals['_READCLASSIFICATIONPARAMS']._serialized_end=2023 - _globals['_READCLASSIFICATIONPARAMS_PARAMETERS']._serialized_start=1945 - _globals['_READCLASSIFICATIONPARAMS_PARAMETERS']._serialized_end=1991 - _globals['_READCLASSIFICATIONPARAMS_SCHEME']._serialized_start=1993 - _globals['_READCLASSIFICATIONPARAMS_SCHEME']._serialized_end=2023 - _globals['_CHANNELSTATES']._serialized_start=2026 - _globals['_CHANNELSTATES']._serialized_end=3036 - _globals['_CHANNELSTATES_LOGIC']._serialized_start=2281 - _globals['_CHANNELSTATES_LOGIC']._serialized_end=2835 - _globals['_CHANNELSTATES_LOGIC_BEHAVIOUR']._serialized_start=2530 - _globals['_CHANNELSTATES_LOGIC_BEHAVIOUR']._serialized_end=2694 - _globals['_CHANNELSTATES_LOGIC_RANGES']._serialized_start=2697 - _globals['_CHANNELSTATES_LOGIC_RANGES']._serialized_end=2835 - _globals['_CHANNELSTATES_LOGIC_RANGES_RANGE']._serialized_start=2792 - _globals['_CHANNELSTATES_LOGIC_RANGES_RANGE']._serialized_end=2835 - _globals['_CHANNELSTATES_STYLE']._serialized_start=2837 - _globals['_CHANNELSTATES_STYLE']._serialized_end=2920 - _globals['_CHANNELSTATES_GROUP']._serialized_start=2922 - _globals['_CHANNELSTATES_GROUP']._serialized_end=3036 - _globals['_GETANALYSISCONFIGURATIONREQUEST']._serialized_start=3038 - _globals['_GETANALYSISCONFIGURATIONREQUEST']._serialized_end=3071 - _globals['_READSCALINGPARAMS']._serialized_start=3074 - _globals['_READSCALINGPARAMS']._serialized_end=3475 - _globals['_ANALYSISCONFIGURATION']._serialized_start=3478 - _globals['_ANALYSISCONFIGURATION']._serialized_end=4034 - _globals['_ANALYSISCONFIGURATION_CHANNELSTATESENTRY']._serialized_start=3931 - _globals['_ANALYSISCONFIGURATION_CHANNELSTATESENTRY']._serialized_end=4034 - _globals['_SETANALYSISCONFIGURATIONRESPONSE']._serialized_start=4036 - _globals['_SETANALYSISCONFIGURATIONRESPONSE']._serialized_end=4070 - _globals['_RESETANALYSISCONFIGURATIONREQUEST']._serialized_start=4072 - _globals['_RESETANALYSISCONFIGURATIONREQUEST']._serialized_end=4107 - _globals['_RESETANALYSISCONFIGURATIONRESPONSE']._serialized_start=4109 - _globals['_RESETANALYSISCONFIGURATIONRESPONSE']._serialized_end=4145 - _globals['_SETANALYSISENABLEDSTATEREQUEST']._serialized_start=4147 - _globals['_SETANALYSISENABLEDSTATEREQUEST']._serialized_end=4201 - _globals['_SETANALYSISENABLEDSTATERESPONSE']._serialized_start=4203 - _globals['_SETANALYSISENABLEDSTATERESPONSE']._serialized_end=4236 - _globals['_GETCHANNELSTATESDESCREQUEST']._serialized_start=4238 - _globals['_GETCHANNELSTATESDESCREQUEST']._serialized_end=4267 - _globals['_GETCHANNELSTATESDESCRESPONSE']._serialized_start=4270 - _globals['_GETCHANNELSTATESDESCRESPONSE']._serialized_end=4807 - _globals['_GETCHANNELSTATESDESCRESPONSE_STYLE']._serialized_start=4390 - _globals['_GETCHANNELSTATESDESCRESPONSE_STYLE']._serialized_end=4449 - _globals['_GETCHANNELSTATESDESCRESPONSE_CHANNELSTATE']._serialized_start=4452 - _globals['_GETCHANNELSTATESDESCRESPONSE_CHANNELSTATE']._serialized_end=4601 - _globals['_GETCHANNELSTATESDESCRESPONSE_GROUP']._serialized_start=4604 - _globals['_GETCHANNELSTATESDESCRESPONSE_GROUP']._serialized_end=4807 - _globals['_GETSUMMARYREQUEST']._serialized_start=4809 - _globals['_GETSUMMARYREQUEST']._serialized_end=4828 - _globals['_GETSUMMARYRESPONSE']._serialized_start=4830 - _globals['_GETSUMMARYRESPONSE']._serialized_end=4905 - _globals['_BARCODINGCONFIGURATION']._serialized_start=4908 - _globals['_BARCODINGCONFIGURATION']._serialized_end=5294 - _globals['_ALIGNMENTCONFIGURATION']._serialized_start=5297 - _globals['_ALIGNMENTCONFIGURATION']._serialized_end=5471 - _globals['_LAMPCONFIGURATION']._serialized_start=5474 - _globals['_LAMPCONFIGURATION']._serialized_end=5678 - _globals['_BASECALLERCONFIGURATION']._serialized_start=5681 - _globals['_BASECALLERCONFIGURATION']._serialized_end=6884 - _globals['_BASECALLERCONFIGURATION_READFILTERING']._serialized_start=6337 - _globals['_BASECALLERCONFIGURATION_READFILTERING']._serialized_end=6716 - _globals['_BASECALLERCONFIGURATION_TARGETFILTERING']._serialized_start=6719 - _globals['_BASECALLERCONFIGURATION_TARGETFILTERING']._serialized_end=6884 - _globals['_SETBASECALLERCONFIGURATIONREQUEST']._serialized_start=6886 - _globals['_SETBASECALLERCONFIGURATIONREQUEST']._serialized_end=7005 - _globals['_SETBASECALLERCONFIGURATIONRESPONSE']._serialized_start=7007 - _globals['_SETBASECALLERCONFIGURATIONRESPONSE']._serialized_end=7043 - _globals['_GETBASECALLERCONFIGURATIONREQUEST']._serialized_start=7045 - _globals['_GETBASECALLERCONFIGURATIONREQUEST']._serialized_end=7080 - _globals['_GETPORETYPECONFIGURATIONREQUEST']._serialized_start=7082 - _globals['_GETPORETYPECONFIGURATIONREQUEST']._serialized_end=7115 - _globals['_PORETYPECONFIGURATION']._serialized_start=7118 - _globals['_PORETYPECONFIGURATION']._serialized_end=7801 - _globals['_PORETYPECONFIGURATION_CHANNELWELL']._serialized_start=7299 - _globals['_PORETYPECONFIGURATION_CHANNELWELL']._serialized_end=7343 - _globals['_PORETYPECONFIGURATION_CHANNELWELLPORETYPECONFIGURATIONS']._serialized_start=7346 - _globals['_PORETYPECONFIGURATION_CHANNELWELLPORETYPECONFIGURATIONS']._serialized_end=7781 - _globals['_PORETYPECONFIGURATION_CHANNELWELLPORETYPECONFIGURATIONS_CHANNELWELLLIST']._serialized_start=7511 - _globals['_PORETYPECONFIGURATION_CHANNELWELLPORETYPECONFIGURATIONS_CHANNELWELLLIST']._serialized_end=7621 - _globals['_PORETYPECONFIGURATION_CHANNELWELLPORETYPECONFIGURATIONS_PORETYPESENTRY']._serialized_start=7624 - _globals['_PORETYPECONFIGURATION_CHANNELWELLPORETYPECONFIGURATIONS_PORETYPESENTRY']._serialized_end=7781 - _globals['_SETPORETYPECONFIGURATIONRESPONSE']._serialized_start=7803 - _globals['_SETPORETYPECONFIGURATIONRESPONSE']._serialized_end=7837 - _globals['_WRITERCONFIGURATION']._serialized_start=7840 - _globals['_WRITERCONFIGURATION']._serialized_end=12908 - _globals['_WRITERCONFIGURATION_CHANNELCONFIGURATION']._serialized_start=8627 - _globals['_WRITERCONFIGURATION_CHANNELCONFIGURATION']._serialized_end=9138 - _globals['_WRITERCONFIGURATION_CHANNELCONFIGURATION_CHANNELLIST']._serialized_start=8912 - _globals['_WRITERCONFIGURATION_CHANNELCONFIGURATION_CHANNELLIST']._serialized_end=8943 - _globals['_WRITERCONFIGURATION_CHANNELCONFIGURATION_CHANNELRANGES']._serialized_start=8946 - _globals['_WRITERCONFIGURATION_CHANNELCONFIGURATION_CHANNELRANGES']._serialized_end=9126 - _globals['_WRITERCONFIGURATION_CHANNELCONFIGURATION_CHANNELRANGES_CHANNELRANGE']._serialized_start=9084 - _globals['_WRITERCONFIGURATION_CHANNELCONFIGURATION_CHANNELRANGES_CHANNELRANGE']._serialized_end=9126 - _globals['_WRITERCONFIGURATION_READFAST5CONFIGURATION']._serialized_start=9141 - _globals['_WRITERCONFIGURATION_READFAST5CONFIGURATION']._serialized_end=10127 - _globals['_WRITERCONFIGURATION_READFASTQCONFIGURATION']._serialized_start=10130 - _globals['_WRITERCONFIGURATION_READFASTQCONFIGURATION']._serialized_end=10611 - _globals['_WRITERCONFIGURATION_READBAMCONFIGURATION']._serialized_start=10614 - _globals['_WRITERCONFIGURATION_READBAMCONFIGURATION']._serialized_end=11093 - _globals['_WRITERCONFIGURATION_READPOD5CONFIGURATION']._serialized_start=11096 - _globals['_WRITERCONFIGURATION_READPOD5CONFIGURATION']._serialized_end=11531 - _globals['_WRITERCONFIGURATION_SEQUENCINGSUMMARYCONFIGURATION']._serialized_start=11534 - _globals['_WRITERCONFIGURATION_SEQUENCINGSUMMARYCONFIGURATION']._serialized_end=11682 - _globals['_WRITERCONFIGURATION_BULKCONFIGURATION']._serialized_start=11685 - _globals['_WRITERCONFIGURATION_BULKCONFIGURATION']._serialized_end=12412 - _globals['_WRITERCONFIGURATION_REPORTCONFIGURATION']._serialized_start=12415 - _globals['_WRITERCONFIGURATION_REPORTCONFIGURATION']._serialized_end=12824 - _globals['_WRITERCONFIGURATION_COMPRESSIONTYPE']._serialized_start=12826 - _globals['_WRITERCONFIGURATION_COMPRESSIONTYPE']._serialized_end=12908 - _globals['_SETWRITERCONFIGURATIONRESPONSE']._serialized_start=12910 - _globals['_SETWRITERCONFIGURATIONRESPONSE']._serialized_end=12942 - _globals['_GETWRITERCONFIGURATIONREQUEST']._serialized_start=12944 - _globals['_GETWRITERCONFIGURATIONREQUEST']._serialized_end=12975 - _globals['_GETREADCLASSIFICATIONSREQUEST']._serialized_start=12977 - _globals['_GETREADCLASSIFICATIONSREQUEST']._serialized_end=13008 - _globals['_GETREADCLASSIFICATIONSRESPONSE']._serialized_start=13011 - _globals['_GETREADCLASSIFICATIONSRESPONSE']._serialized_end=13226 - _globals['_GETREADCLASSIFICATIONSRESPONSE_READCLASSIFICATIONSENTRY']._serialized_start=13168 - _globals['_GETREADCLASSIFICATIONSRESPONSE_READCLASSIFICATIONSENTRY']._serialized_end=13226 - _globals['_DYNAMICANALYSISCONFIGURATION']._serialized_start=13229 - _globals['_DYNAMICANALYSISCONFIGURATION']._serialized_end=13609 - _globals['_DYNAMICANALYSISCONFIGURATION_READSCALETRACKING']._serialized_start=13375 - _globals['_DYNAMICANALYSISCONFIGURATION_READSCALETRACKING']._serialized_end=13609 - _globals['_DYNAMICANALYSISCONFIGURATION_READSCALETRACKING_CHANNELCONDUCTANCE']._serialized_start=13563 - _globals['_DYNAMICANALYSISCONFIGURATION_READSCALETRACKING_CHANNELCONDUCTANCE']._serialized_end=13609 - _globals['_GETDYNAMICANALYSISCONFIGURATIONREQUEST']._serialized_start=13611 - _globals['_GETDYNAMICANALYSISCONFIGURATIONREQUEST']._serialized_end=13651 - _globals['_SETDYNAMICANALYSISCONFIGURATIONRESPONSE']._serialized_start=13653 - _globals['_SETDYNAMICANALYSISCONFIGURATIONRESPONSE']._serialized_end=13694 - _globals['_ANALYSISCONFIGURATIONSERVICE']._serialized_start=13697 - _globals['_ANALYSISCONFIGURATIONSERVICE']._serialized_end=16429 -DynamicAnalysisConfiguration.__doc__ = """Attributes: - read_scale_tracking: - Parameters for read scale tracking: -""" -BasecallerConfiguration.TargetFiltering.__doc__ = """Since 3.7""" -BarcodingConfiguration.__doc__ = """Since 3.5 - -Attributes: - barcoding_kits: - The barcoding kits in use One entry per kit If no barcoding - kits are supplied, barcoding is disabled. - trim_barcodes: - Whether Guppy should trim barcodes If not specified, this - value defaults to false (not triming barcodes) If barcoding is - not enabled (e.g., because no barcoding kits are specified), - this parameter has no effect. - require_barcodes_both_ends: - Barcode is only classified if a barcode above `min_score` is - present at both ends of the basecalled read. - detect_mid_strand_barcodes: - Search for barcodes through the entire length of the read. If - a barcode is found in the middle of a read the read is marked - as unclassified. - min_score: - Minimum alignment score to consider a valid barcode. Maximum - value is 100, defaults to 60. - min_score_rear: - Minimum score to consider a valid barcode (overrides min_score - for rear barcodes). Maximum value is 100, defaults to - min_score if not specified. - min_score_mid: - Minimum score to consider a valid mid barcode (only valid if - detect_mid_strand_barcodes is specified). Maximum value is - 100, defaults to 60. - min_score_mask: - The minimum score required for the barcode mask to be - detected. Maximum value is 100, defaults to 40. - ignore_unspecified_barcodes: - If set, barcodes that aren't in barcode user data list will be - ignored Since 5.6 -""" -WriterConfiguration.ChannelConfiguration.__doc__ = """Used to control which channels for a specific data type emit data + _globals['_READFILTERS']._serialized_start=1161 + _globals['_READFILTERS']._serialized_end=1303 + _globals['_READCLASSIFICATIONPARAMS']._serialized_start=1306 + _globals['_READCLASSIFICATIONPARAMS']._serialized_end=2209 + _globals['_READCLASSIFICATIONPARAMS_PARAMETERS']._serialized_start=2131 + _globals['_READCLASSIFICATIONPARAMS_PARAMETERS']._serialized_end=2177 + _globals['_READCLASSIFICATIONPARAMS_SCHEME']._serialized_start=2179 + _globals['_READCLASSIFICATIONPARAMS_SCHEME']._serialized_end=2209 + _globals['_CHANNELSTATES']._serialized_start=2212 + _globals['_CHANNELSTATES']._serialized_end=3222 + _globals['_CHANNELSTATES_LOGIC']._serialized_start=2467 + _globals['_CHANNELSTATES_LOGIC']._serialized_end=3021 + _globals['_CHANNELSTATES_LOGIC_BEHAVIOUR']._serialized_start=2716 + _globals['_CHANNELSTATES_LOGIC_BEHAVIOUR']._serialized_end=2880 + _globals['_CHANNELSTATES_LOGIC_RANGES']._serialized_start=2883 + _globals['_CHANNELSTATES_LOGIC_RANGES']._serialized_end=3021 + _globals['_CHANNELSTATES_LOGIC_RANGES_RANGE']._serialized_start=2978 + _globals['_CHANNELSTATES_LOGIC_RANGES_RANGE']._serialized_end=3021 + _globals['_CHANNELSTATES_STYLE']._serialized_start=3023 + _globals['_CHANNELSTATES_STYLE']._serialized_end=3106 + _globals['_CHANNELSTATES_GROUP']._serialized_start=3108 + _globals['_CHANNELSTATES_GROUP']._serialized_end=3222 + _globals['_GETANALYSISCONFIGURATIONREQUEST']._serialized_start=3224 + _globals['_GETANALYSISCONFIGURATIONREQUEST']._serialized_end=3257 + _globals['_READSCALINGPARAMS']._serialized_start=3260 + _globals['_READSCALINGPARAMS']._serialized_end=3661 + _globals['_ANALYSISCONFIGURATION']._serialized_start=3664 + _globals['_ANALYSISCONFIGURATION']._serialized_end=4220 + _globals['_ANALYSISCONFIGURATION_CHANNELSTATESENTRY']._serialized_start=4117 + _globals['_ANALYSISCONFIGURATION_CHANNELSTATESENTRY']._serialized_end=4220 + _globals['_SETANALYSISCONFIGURATIONRESPONSE']._serialized_start=4222 + _globals['_SETANALYSISCONFIGURATIONRESPONSE']._serialized_end=4256 + _globals['_RESETANALYSISCONFIGURATIONREQUEST']._serialized_start=4258 + _globals['_RESETANALYSISCONFIGURATIONREQUEST']._serialized_end=4293 + _globals['_RESETANALYSISCONFIGURATIONRESPONSE']._serialized_start=4295 + _globals['_RESETANALYSISCONFIGURATIONRESPONSE']._serialized_end=4331 + _globals['_SETANALYSISENABLEDSTATEREQUEST']._serialized_start=4333 + _globals['_SETANALYSISENABLEDSTATEREQUEST']._serialized_end=4387 + _globals['_SETANALYSISENABLEDSTATERESPONSE']._serialized_start=4389 + _globals['_SETANALYSISENABLEDSTATERESPONSE']._serialized_end=4422 + _globals['_GETCHANNELSTATESDESCREQUEST']._serialized_start=4424 + _globals['_GETCHANNELSTATESDESCREQUEST']._serialized_end=4453 + _globals['_GETCHANNELSTATESDESCRESPONSE']._serialized_start=4456 + _globals['_GETCHANNELSTATESDESCRESPONSE']._serialized_end=4993 + _globals['_GETCHANNELSTATESDESCRESPONSE_STYLE']._serialized_start=4576 + _globals['_GETCHANNELSTATESDESCRESPONSE_STYLE']._serialized_end=4635 + _globals['_GETCHANNELSTATESDESCRESPONSE_CHANNELSTATE']._serialized_start=4638 + _globals['_GETCHANNELSTATESDESCRESPONSE_CHANNELSTATE']._serialized_end=4787 + _globals['_GETCHANNELSTATESDESCRESPONSE_GROUP']._serialized_start=4790 + _globals['_GETCHANNELSTATESDESCRESPONSE_GROUP']._serialized_end=4993 + _globals['_GETSUMMARYREQUEST']._serialized_start=4995 + _globals['_GETSUMMARYREQUEST']._serialized_end=5014 + _globals['_GETSUMMARYRESPONSE']._serialized_start=5016 + _globals['_GETSUMMARYRESPONSE']._serialized_end=5091 + _globals['_BARCODINGCONFIGURATION']._serialized_start=5094 + _globals['_BARCODINGCONFIGURATION']._serialized_end=5354 + _globals['_ALIGNMENTCONFIGURATION']._serialized_start=5357 + _globals['_ALIGNMENTCONFIGURATION']._serialized_end=5531 + _globals['_LAMPCONFIGURATION']._serialized_start=5534 + _globals['_LAMPCONFIGURATION']._serialized_end=5738 + _globals['_BASECALLERCONFIGURATION']._serialized_start=5741 + _globals['_BASECALLERCONFIGURATION']._serialized_end=6944 + _globals['_BASECALLERCONFIGURATION_READFILTERING']._serialized_start=6397 + _globals['_BASECALLERCONFIGURATION_READFILTERING']._serialized_end=6776 + _globals['_BASECALLERCONFIGURATION_TARGETFILTERING']._serialized_start=6779 + _globals['_BASECALLERCONFIGURATION_TARGETFILTERING']._serialized_end=6944 + _globals['_SETBASECALLERCONFIGURATIONREQUEST']._serialized_start=6946 + _globals['_SETBASECALLERCONFIGURATIONREQUEST']._serialized_end=7065 + _globals['_SETBASECALLERCONFIGURATIONRESPONSE']._serialized_start=7067 + _globals['_SETBASECALLERCONFIGURATIONRESPONSE']._serialized_end=7103 + _globals['_GETBASECALLERCONFIGURATIONREQUEST']._serialized_start=7105 + _globals['_GETBASECALLERCONFIGURATIONREQUEST']._serialized_end=7156 + _globals['_GETPORETYPECONFIGURATIONREQUEST']._serialized_start=7158 + _globals['_GETPORETYPECONFIGURATIONREQUEST']._serialized_end=7191 + _globals['_PORETYPECONFIGURATION']._serialized_start=7194 + _globals['_PORETYPECONFIGURATION']._serialized_end=7877 + _globals['_PORETYPECONFIGURATION_CHANNELWELL']._serialized_start=7375 + _globals['_PORETYPECONFIGURATION_CHANNELWELL']._serialized_end=7419 + _globals['_PORETYPECONFIGURATION_CHANNELWELLPORETYPECONFIGURATIONS']._serialized_start=7422 + _globals['_PORETYPECONFIGURATION_CHANNELWELLPORETYPECONFIGURATIONS']._serialized_end=7857 + _globals['_PORETYPECONFIGURATION_CHANNELWELLPORETYPECONFIGURATIONS_CHANNELWELLLIST']._serialized_start=7587 + _globals['_PORETYPECONFIGURATION_CHANNELWELLPORETYPECONFIGURATIONS_CHANNELWELLLIST']._serialized_end=7697 + _globals['_PORETYPECONFIGURATION_CHANNELWELLPORETYPECONFIGURATIONS_PORETYPESENTRY']._serialized_start=7700 + _globals['_PORETYPECONFIGURATION_CHANNELWELLPORETYPECONFIGURATIONS_PORETYPESENTRY']._serialized_end=7857 + _globals['_SETPORETYPECONFIGURATIONRESPONSE']._serialized_start=7879 + _globals['_SETPORETYPECONFIGURATIONRESPONSE']._serialized_end=7913 + _globals['_WRITERCONFIGURATION']._serialized_start=7916 + _globals['_WRITERCONFIGURATION']._serialized_end=12984 + _globals['_WRITERCONFIGURATION_CHANNELCONFIGURATION']._serialized_start=8703 + _globals['_WRITERCONFIGURATION_CHANNELCONFIGURATION']._serialized_end=9214 + _globals['_WRITERCONFIGURATION_CHANNELCONFIGURATION_CHANNELLIST']._serialized_start=8988 + _globals['_WRITERCONFIGURATION_CHANNELCONFIGURATION_CHANNELLIST']._serialized_end=9019 + _globals['_WRITERCONFIGURATION_CHANNELCONFIGURATION_CHANNELRANGES']._serialized_start=9022 + _globals['_WRITERCONFIGURATION_CHANNELCONFIGURATION_CHANNELRANGES']._serialized_end=9202 + _globals['_WRITERCONFIGURATION_CHANNELCONFIGURATION_CHANNELRANGES_CHANNELRANGE']._serialized_start=9160 + _globals['_WRITERCONFIGURATION_CHANNELCONFIGURATION_CHANNELRANGES_CHANNELRANGE']._serialized_end=9202 + _globals['_WRITERCONFIGURATION_READFAST5CONFIGURATION']._serialized_start=9217 + _globals['_WRITERCONFIGURATION_READFAST5CONFIGURATION']._serialized_end=10203 + _globals['_WRITERCONFIGURATION_READFASTQCONFIGURATION']._serialized_start=10206 + _globals['_WRITERCONFIGURATION_READFASTQCONFIGURATION']._serialized_end=10687 + _globals['_WRITERCONFIGURATION_READBAMCONFIGURATION']._serialized_start=10690 + _globals['_WRITERCONFIGURATION_READBAMCONFIGURATION']._serialized_end=11169 + _globals['_WRITERCONFIGURATION_READPOD5CONFIGURATION']._serialized_start=11172 + _globals['_WRITERCONFIGURATION_READPOD5CONFIGURATION']._serialized_end=11607 + _globals['_WRITERCONFIGURATION_SEQUENCINGSUMMARYCONFIGURATION']._serialized_start=11610 + _globals['_WRITERCONFIGURATION_SEQUENCINGSUMMARYCONFIGURATION']._serialized_end=11758 + _globals['_WRITERCONFIGURATION_BULKCONFIGURATION']._serialized_start=11761 + _globals['_WRITERCONFIGURATION_BULKCONFIGURATION']._serialized_end=12488 + _globals['_WRITERCONFIGURATION_REPORTCONFIGURATION']._serialized_start=12491 + _globals['_WRITERCONFIGURATION_REPORTCONFIGURATION']._serialized_end=12900 + _globals['_WRITERCONFIGURATION_COMPRESSIONTYPE']._serialized_start=12902 + _globals['_WRITERCONFIGURATION_COMPRESSIONTYPE']._serialized_end=12984 + _globals['_SETWRITERCONFIGURATIONRESPONSE']._serialized_start=12986 + _globals['_SETWRITERCONFIGURATIONRESPONSE']._serialized_end=13018 + _globals['_GETWRITERCONFIGURATIONREQUEST']._serialized_start=13020 + _globals['_GETWRITERCONFIGURATIONREQUEST']._serialized_end=13067 + _globals['_GETREADCLASSIFICATIONSREQUEST']._serialized_start=13069 + _globals['_GETREADCLASSIFICATIONSREQUEST']._serialized_end=13100 + _globals['_GETREADCLASSIFICATIONSRESPONSE']._serialized_start=13103 + _globals['_GETREADCLASSIFICATIONSRESPONSE']._serialized_end=13318 + _globals['_GETREADCLASSIFICATIONSRESPONSE_READCLASSIFICATIONSENTRY']._serialized_start=13260 + _globals['_GETREADCLASSIFICATIONSRESPONSE_READCLASSIFICATIONSENTRY']._serialized_end=13318 + _globals['_DYNAMICANALYSISCONFIGURATION']._serialized_start=13321 + _globals['_DYNAMICANALYSISCONFIGURATION']._serialized_end=13701 + _globals['_DYNAMICANALYSISCONFIGURATION_READSCALETRACKING']._serialized_start=13467 + _globals['_DYNAMICANALYSISCONFIGURATION_READSCALETRACKING']._serialized_end=13701 + _globals['_DYNAMICANALYSISCONFIGURATION_READSCALETRACKING_CHANNELCONDUCTANCE']._serialized_start=13655 + _globals['_DYNAMICANALYSISCONFIGURATION_READSCALETRACKING_CHANNELCONDUCTANCE']._serialized_end=13701 + _globals['_GETDYNAMICANALYSISCONFIGURATIONREQUEST']._serialized_start=13703 + _globals['_GETDYNAMICANALYSISCONFIGURATIONREQUEST']._serialized_end=13743 + _globals['_SETDYNAMICANALYSISCONFIGURATIONRESPONSE']._serialized_start=13745 + _globals['_SETDYNAMICANALYSISCONFIGURATIONRESPONSE']._serialized_end=13786 + _globals['_ANALYSISCONFIGURATIONSERVICE']._serialized_start=13789 + _globals['_ANALYSISCONFIGURATIONSERVICE']._serialized_end=16521 +ReadFilters.__doc__ = """Parameters for filtering out reads from being written. The tests are +combined using a logical AND: if any given test fails, the read will +not be written. Only reads that pass all (non-zero) tests will be +written out. Currently, it is only possible to filter on read length. +This can be given in samples or MinKNOW events. Attributes: - channels: - Control the way channels are enabled for this data type. -""" -ChannelStates.Logic.Behaviour.__doc__ = """Attributes: - reset_on_mux_change: - TODO: MinKNOW 5: replace int32 with bool for these options - these are ints but act like bools - latch: - If the latch value is set to true, then when the criteria for - this channel state is active, then the latch will keep it - active until the channel state is reset. - reset_on_effective_mux_change: - An 'effective mux change' is any mux change apart from the one - triggered with the purpose of disconnecting a channel (turning - a channel off). For example, if a channel is in pore, and the - user changes the channel configuration to 'disconnected', that - mux change will not be an effective mux change. Any other mux - change is considered an 'effective mux change'. So if a - channel saturates, the mux change to disconnected is an - effective mux change. Similarly, a change from disconnected to - a pore is an effective mux change. Use this reset mode to - make the channel state persist on non-effective mux changes. - For example, if a channel state is in 'multiple' and the user - triggers a channel configuration change to 'disconnected', the - state will remain in multiple if it has this option on. The - multiple state will be reset at all other mux changes (i.e. - effective mux changes). - reset_on_effective_well_change: - An 'effective well change' is any well change apart from the - one triggered with the purpose of disconnecting a channel - (turning a channel off). For example, if a channel is in - well_1, and the user changes the channel configuration to - 'unblock_1', that change will not be an effective well change. - A change to disconnected is also not considered an effective - well change. Use this reset mode to make the channel state - persist on non-effective well changes. For example, if a - channel state is in 'multiple' and the user triggers a channel - configuration change to 'disconnected', the state will remain - in multiple if it has this option on. The multiple state will - be reset then when the mux is set to a different setting. + read_length_min: + Only write reads that contain at least this many samples. The + default zero value will not exclude any reads. + read_length_max: + Only write reads that contain at most this many samples. If + set to zero (the default), this test is not applied (as though + it had been set to a value longer than any possible read). + event_count_min: + Only write reads that contain at least this many MinKNOW + events. The default zero value will not exclude any reads. + event_count_max: + Only write reads that contain at most this many MinKNOW + events. If set to zero (the default), this test is not + applied (as though it had been set to a value longer than any + possible read). + skip_rejected_reads: + Control whether reads unblocked using from + `DataService::get_live_reads()` should be filtered. When set + to true, reads which are unblocked by `get_live_reads` are + filtered and therefore not basecalled. When set to false, + reads that are unblocked by `get_live_reads` will not be + filtered and therefore will be basecalled. """ -WriterConfiguration.ReadBamConfiguration.__doc__ = """Attributes: +WriterConfiguration.ReadFastqConfiguration.__doc__ = """Attributes: enable: - Control if a BAM file should be generated per channel. + Control if a fastq file should be generated per channel. file_pattern: - The pattern used to find a BAM files name. default: bam{basec - all_status}/{flow_cell_id}_{run_id}_{batch_number}.bam Where - each {xxx} section is replaced with an attribute from the - minknow state when the file is written. See file pattern + The pattern used to find a fastq files name. default: fastq{b + asecall_status}/{flow_cell_id}_{run_id}_{batch_number}.fastq + Where each {xxx} section is replaced with an attribute from + the minknow state when the file is written. See file pattern attributes above. + header_pattern: + The pattern used to find a fastq header. default: {read_id} + runid={run_id} ch={channel_name} start_time={read_start_time} + Where each {xxx} section is replaced with an attribute from + the minknow state when the fastq is generated. batch_count: How many reads are placed in each batch (after batch_count reads {batch_number} is increased in the pattern). @@ -311,15 +261,14 @@ no_output_based_batching: Do not perform batching based on output (time-based batching is still performed, if specified) - disable_writing_multiple_alignments: - If true minknow will only write the primary alignment for each - read. + compression: + Compress fastq files with gzip compression. default: false disable_writing_passed_reads: Since 5.8 Prevent reads which have successfully basecalled - being written to bam. + being written to fastq. disable_writing_failed_reads: Prevent reads which have failed basecalling being written to - bam. + fastq. disable_writing_force_skipped_reads: disable writing reads which have been force skipped by the basecaller. @@ -335,11 +284,26 @@ be used. If this field is set to zero or a negative value, then time-based batching will be disabled. Since 5.6 """ -DynamicAnalysisConfiguration.ReadScaleTracking.__doc__ = """Attributes: - conductance_scan_voltage: - Set the voltage the most recent conductance scan occured at. - channel_conductance: - Per channel/well conductance values +GetSummaryResponse.__doc__ = """Attributes: + analysis_enabled: + Whether any analysis is enabled. If this is false, everything + else will be false as well. + basecalling_enabled: + Whether basecalling is enabled. +""" +BasecallerConfiguration.ReadFiltering.__doc__ = """Attributes: + min_duplex_qscore: + Since 5.8 +""" +AnalysisConfiguration.__doc__ = """Attributes: + read_scaling: + Add read scale tracking to the pipeline. If this message is + unspecified, read scaling is not enabled. +""" +GetWriterConfigurationRequest.__doc__ = """Attributes: + run_id: + The unique identifier assigned to this acquisition run. Since + 6.0 """ PoreTypeConfiguration.ChannelWellPoreTypeConfigurations.__doc__ = """Attributes: pore_types: @@ -347,6 +311,64 @@ for. It is undefined what will happen if one call sets the pore type of a channel and well to two pore types. """ +BasecallerConfiguration.__doc__ = """Since 3.0 + +Attributes: + enable: + Choose if the basecaller is enabled or disabled. If set to + false then no basecalling will take place, and the rest of the + config is ignored. + config_filename: + The basecaller cfg file with all the settings. Filename can + be absolute, or a basename (eg dna_r9.4_450bps.cfg) which the + basecaller should locate (see basecaller application config + entry: "data_path") + align_filter: + Enable or disable pass/fail filtering based on alignment. + When enabled, reads which do not align to any references will + be marked as "failed", and written to the folder specified in + MinKNOW configuration for failed reads. The setting applies + to both regular read filtering and target filtering; if it is + enabled, then a read will not be marked as a target read if it + does not align to a reference. Default setting is false, i.e. + disabled. Since 5.4 + read_filtering: + Control how read filtering is applied to output of basecaller. + These settings determine whether a read is marked as "passed" + or "failed". Reads are written to different folders based on + the result of this filtering. Those folders are specified in + MinKNOW configuration. If no filtering parameters are + provided then reads will not be filtered. + barcoding_configuration: + Control the barcoding configuration. If no barcoding + configuration is supplied, barcoding is disabled. Since 3.5 + target_filtering: + Control how target filtering is applied to output of + basecaller. Reads which pass these filtering criteria will be + marked as "target" reads, and will be written to a separate + folder; this folder is specified in MinKNOW configuration. + Reads which do not pass these criteria will have the regular + read filtering applied to them, as specified by the `read- + filtering` settings above. If no filtering parameters are + provided then reads will not be target-filtered. Since 3.7 + alignment_configuration: + Alignment configuration parameters. If no configuration is + specified alignment is disabled. Since 4.0 + lamp_configuration: + Lamp configuration parameters. If no configuration is + specified lamp is disabled. Since 4.1 DEPRECATED 6.0: Lamp + support has been removed and this option will be ignored. + enable_read_splitting: + Enable read splitting in the basecaller. Since 4.5 Note: + Since 5.9 this option has no effect, the basecaller is + responsible for deciding when read splitting should be + enabled. + min_score_read_splitting: + Override score to use for the basecaller read splitting. If + not specified a default value is used from the basecaller. + Since 4.5 Note: Since 5.9 this option has no effect, the + basecaller is responsible for deciding read splitting score. +""" ReadClassificationParams.__doc__ = """Attributes: max_sample_size: This tells minknow the maximum number of means to store in @@ -404,107 +426,75 @@ this option only applies to the 'threshold' classification strategy and will be ignored for other classification strategies. + merge_selected_classifications: + this parameter controls whether (or not) we merge data for + all selected classifications into a single data point before + deciding whether to output a read. For instance, if 2 + classifications are selected and classification A is 20% of + the read, and classification B is 20% of the read then: When + merge_selected_classifications is set to true, the overall + selected classification proportion would amount to 40% of the + read and that value would used when deciding whether or not to + output the read. When merge_selected_classifications is set to + false, each selected classification would be considered + separately at the decision stage. Defaults to false. Note that + when multiple classifications are selected by the user and the + threshold criteria are met, then the most recent + classification (of all selected classifications) will be used + as the read overall classification. + max_read_length_before_selected_decision_seconds: + Limit on how long a read may be in seconds before minknow + forces the selected decision and either selects or vetoes the + complete read. If unspecified a default value is used. """ ChannelStates.Logic.Ranges.__doc__ = """Dont really like this way of doing it, but it has to match the old way...""" -GetChannelStatesDescResponse.ChannelState.__doc__ = """Attributes: - id: - The numeric identifier of the state. This is what is reported - in any other APIs that return a channel state ID. - name: - The internal name of the state. This is what is reported in - any other APIs that return a channel state name. - style: - How to render the channel state in a graphical user interface. - Note that the style may be missing from some channel states - (such as the ones that are built in to MinKNOW). - global_order: - An order ranking for the channel states when they are - ungrouped. This can be used to order the channel states after - merging the groups. -""" -DynamicAnalysisConfiguration.ReadScaleTracking.ChannelConductance.__doc__ = """Attributes: - well_conductance: - Per well conductance values. +EventDetection.__doc__ = """Attributes: + window_size: + The window size that the tstats are calculated from + threshold: + The peak detection must be above this threshold at a minimum + for it to be detected as an event. + peak_height: + When analysing the tstat peaks, if the jump between one value + and another is higher than than 'peak_height', then it will + "arm" the peak detector and move onto the next phase. And + what goes up must come down. Once it has detected a peak going + up, it will also have to go down by 'peak_height' in order for + the peak to be classified as a found event Note: only used + for MULTITTEST detector. + events_to_base_ratio: + Conversion factor used to convert from events to bases. This + is used to estimate bases for various rpc feeds from minknow. + break_on_mux_changes: + Whether to break events on mux changes. This will eliminate + "mux_uncertain" events and reads. Note that this will cause + starting or stopping unblocking to break events as well (even + though the mux does not normally change in this case). Note: + no longer used. + max_mux_change_back_shift: + Control the number of samples MinKNOW will shift mux changes + back by in order to align mux changes with event boundaries. + When break on mux changes is enabled its possible that mux + changes recorded from the device and signal deltas caused by + the config changes will not align exactly (the signal delta + happen prior to the mux change due to the recorded sample + indicating the command is fully applied). Setting this value + to > 0 will allow minknow to record the mux change as active + up to this number of samples _before_ the device recorded the + change as active. Mux changes are never shifted forwards. A + value of 0 will disable shifting of mux changes. Note: no + longer used. """ -WriterConfiguration.ReadFast5Configuration.__doc__ = """Attributes: - compression_level: - Control the level of compression applied to read data. 0: - No compression will be applied to data. 1-9: Passed to zlib - compression, 1 is the fastest compression, 9 is the - smallest possible output. - compression_type: - Control the type of compression applied to the read data. By - default the vbz compressor is used (except in the single read - case). - raw: - Raw data, stored with calibration data, and read attributes. - Stored under /Raw/Reads_*/Signal - fastq: - Fastq data, stored as a string. Stored under - /Analyses/Basecall_1D_*/BaseCalled_(template|complement)/Fastq - trace_table: - Trace table received from Guppy Stored under - /Analyses/Basecall_1D_*/BaseCalled_template/Trace - move_table: - Move table received from Guppy Stored under - /Analyses/Basecall_1D_*/BaseCalled_template/Move - modifications_table: - Base modification probability table Store under - /Analyses/Basecall_1D_*/BaseCalled_template/ModBaseProbs - disable_writing_passed_reads: - Prevent reads which have successfully basecalled being written - to fast5. - disable_writing_failed_reads: - Prevent reads which have failed basecalling being written to - fast5. - disable_writing_force_skipped_reads: - disable writing reads which have been force skipped by the - basecaller. +WriterConfiguration.SequencingSummaryConfiguration.__doc__ = """Attributes: + enable: + Should a sequencing summary file be generated file_pattern: - The pattern used to find a fast5 files name. default: fast5{b - asecall_status}/{flow_cell_id}_{run_id}_{batch_number}.fast5 - Where each {xxx} section is replaced with an attribute from - the minknow state when the file is written. See file pattern + The pattern used to find a summary files name. default: + sequencing_summary_{flow_cell_id}_{short_run_id}.txt Where + each {xxx} section is replaced with an attribute from the + minknow state when the file is written. See file pattern attributes above. - fastq_header_pattern: - The pattern used to find a fastq header. default: {read_id} - runid={run_id} read={read_number} ch={channel_name} - start_time={read_start_time} Where each {xxx} section is - replaced with an attribute from the minknow state when the - fastq is generated. - batch_count: - How many reads are placed in each batch (after batch_count - reads {batch_number} is increased in the pattern). - bases_per_batch: - Number of estimated bases within a batch before it rotates to - a new batch - no_output_based_batching: - Do not perform batching based on output (time-based batching - is still performed, if specified) - batch_duration: - The batch duration, for time-based batching If time-based - batching is enabled then, in addition to completing batches - when the `batch_count` or `bases_per_batch` target (above) is - reached, batches will also be completed when: - At least one - read has been written to the batch, AND - `batch_duration` has - elapsed since the last batch was completed (or since the start - of the acquisition, for the first batch) If this field is not - set, then the default time-based batching configuration will - be used. If this field is set to zero or a negative value, - then time-based batching will be disabled. Since 5.6 -""" -GetChannelStatesDescResponse.Style.__doc__ = """Attributes: - label: - The human-readable name to display when rendering this channel - state or group. - description: - A sentence describing the meaning of the channel state or - group. This can be used as a tooltip, for example. - colour: - The colour to use when rendering this channel state or group. - This is a six-digit hex string describing an RGB colour (eg: - "ff00ff" for purple). """ WriterConfiguration.ReadPod5Configuration.__doc__ = """Attributes: enable: @@ -545,169 +535,15 @@ be used. If this field is set to zero or a negative value, then time-based batching will be disabled. Since 5.6 """ -ReadDetectionParams.__doc__ = """Attributes: - open_pore_min: - The minimum level which is considered open pore (this value is - relative to open_pore_default or the tracked open_pore - section, if tracking is being used.) This value must be <= - 0.0 if tracking is being used. - open_pore_max: - The maximum level which is considered open pore (this value is - relative to open_pore_default or the tracked open_pore - section, if tracking is being used.) This value must be >= - 0.0 if tracking is being used. - open_pore_default: - The default value to use for open pore, either when tracking - isn't being used, or when open pore tracking has no value - currently. - open_pore_seconds_required: - Minimum number of seconds events must lie within the range of - open pore in order to allow a read to break. -""" -GetChannelStatesDescResponse.Group.__doc__ = """Attributes: - name: - The name of the group. - style: - How to render the group in a graphical user interface. Note - that the style may be missing from some groups (such as the - ones that are built in to MinKNOW). - states: - The channel states contained in the group. The groups are - ordered according to the "order" attribute of the channel - state style in the channel states configuration. -""" -LampConfiguration.__doc__ = """Since 4.1 - -Attributes: - lamp_kit: - Set the lamp kit being used. - min_score_barcodes: - Optionally specify a min score to detect a valid lamp barcode. - min_score_masks: - Optionally set the minimimum valid score for a lamp mask. - min_score_targets: - Optionally specify a minimum score for lamp targets. -""" -PoreTypeConfiguration.ChannelWell.__doc__ = """Attributes: - channel: - Channel number to control pore type for. Must be less than - channel count for the current platform - well: - Well to control pore type for. Wells outside the available - wells on the flowcell are ignored. -""" -EventDetection.__doc__ = """Attributes: - window_size: - The window size that the tstats are calculated from - threshold: - The peak detection must be above this threshold at a minimum - for it to be detected as an event. - peak_height: - When analysing the tstat peaks, if the jump between one value - and another is higher than than 'peak_height', then it will - "arm" the peak detector and move onto the next phase. And - what goes up must come down. Once it has detected a peak going - up, it will also have to go down by 'peak_height' in order for - the peak to be classified as a found event Note: only used - for MULTITTEST detector. - events_to_base_ratio: - Conversion factor used to convert from events to bases. This - is used to estimate bases for various rpc feeds from minknow. - break_on_mux_changes: - Whether to break events on mux changes. This will eliminate - "mux_uncertain" events and reads. Note that this will cause - starting or stopping unblocking to break events as well (even - though the mux does not normally change in this case). Note: - no longer used. - max_mux_change_back_shift: - Control the number of samples MinKNOW will shift mux changes - back by in order to align mux changes with event boundaries. - When break on mux changes is enabled its possible that mux - changes recorded from the device and signal deltas caused by - the config changes will not align exactly (the signal delta - happen prior to the mux change due to the recorded sample - indicating the command is fully applied). Setting this value - to > 0 will allow minknow to record the mux change as active - up to this number of samples _before_ the device recorded the - change as active. Mux changes are never shifted forwards. A - value of 0 will disable shifting of mux changes. Note: no - longer used. -""" -ChannelStates.Logic.__doc__ = """Attributes: - rank: - Specifies the order in which channel state criteria will be - evaluated; the smaller the number, the earlier it will be - evaluated. The first criteria to match will be selected - pattern: - Note that this is a regex based pattern for describing a read - classification sequence. For example you can specify: - "unavailableunavailable" or: "(unavailable)(unavailable)" - to recognise two consecutive read chunks classified as - unavailable. You can also use "?" at the end of one of the - classifications in the sequence to indicate that it may or may - not be present at that point. For example: - "(pore)(transition)?(event)" This will match both of the - sequences: pore, transition, event pore, event The - technical documentation has more information on the range of - regex patterns you can apply. - https://minknow.git.oxfordnanolabs.local/minknow- - core/analysis/channel-states.html - ranges: - Range is [lower_pa, upper_pa) -""" -AlignmentConfiguration.__doc__ = """Since 4.0 - -Attributes: - reference_files: - Provide an index to align reads against once basecalled. Any - acceptable reference format to guppy can be passed here: - - fasta reference file - minimap index file - bed_file: - Provide a bed file for use indicating areas of interest in - alignment results. Note: alignment_index must be provided for - this argument to be valid. - minimum_coverage: - Minimum coverage for guppy to accept an alignment. If not - specified a default value is used. Note: this option cannot - be used during live basecalling. - aggregate_statistics_for_multiple_bed_hits: - Control how statistics for bed results are aggregated. If set - to false only the bed hit with the highest overlap is used - when computing heatmap/throughput graphs with bed hits. If - set to true each bed hit is considered and bases for all hits - are counted. This may give more honest representation of - individual bed hit results but will skew read count statistics - - as each hit will be counted for every bed hit. Note: this - option has no effect in offline basecalling. -""" -PoreTypeConfiguration.__doc__ = """The pore type configuration The ways of specifying a configuration -are as follows: - global_pore_type: all wells have a pore type of -global_pore_type. - channel_well_pore_types: channels are allowed -different values per channel/well (allows a subset of channels to be -set). - -Attributes: - global_pore_type: - Set all channel/wells to one pore type. - channel_well_pore_types: - Set channel/wells to different pore types. Pore types can be - created without being used by adding an empty entry. -""" -WriterConfiguration.ReadFastqConfiguration.__doc__ = """Attributes: +WriterConfiguration.ReadBamConfiguration.__doc__ = """Attributes: enable: - Control if a fastq file should be generated per channel. + Control if a BAM file should be generated per channel. file_pattern: - The pattern used to find a fastq files name. default: fastq{b - asecall_status}/{flow_cell_id}_{run_id}_{batch_number}.fastq - Where each {xxx} section is replaced with an attribute from - the minknow state when the file is written. See file pattern + The pattern used to find a BAM files name. default: bam{basec + all_status}/{flow_cell_id}_{run_id}_{batch_number}.bam Where + each {xxx} section is replaced with an attribute from the + minknow state when the file is written. See file pattern attributes above. - header_pattern: - The pattern used to find a fastq header. default: {read_id} - runid={run_id} read={read_number} ch={channel_name} - start_time={read_start_time} Where each {xxx} section is - replaced with an attribute from the minknow state when the - fastq is generated. batch_count: How many reads are placed in each batch (after batch_count reads {batch_number} is increased in the pattern). @@ -717,14 +553,15 @@ no_output_based_batching: Do not perform batching based on output (time-based batching is still performed, if specified) - compression: - Compress fastq files with gzip compression. default: false + disable_writing_multiple_alignments: + If true minknow will only write the primary alignment for each + read. disable_writing_passed_reads: Since 5.8 Prevent reads which have successfully basecalled - being written to fastq. + being written to bam. disable_writing_failed_reads: Prevent reads which have failed basecalling being written to - fastq. + bam. disable_writing_force_skipped_reads: disable writing reads which have been force skipped by the basecaller. @@ -740,50 +577,72 @@ be used. If this field is set to zero or a negative value, then time-based batching will be disabled. Since 5.6 """ +WriterConfiguration.ChannelConfiguration.__doc__ = """Used to control which channels for a specific data type emit data + +Attributes: + channels: + Control the way channels are enabled for this data type. +""" +PoreTypeConfiguration.__doc__ = """The pore type configuration The ways of specifying a configuration +are as follows: - global_pore_type: all wells have a pore type of +global_pore_type. - channel_well_pore_types: channels are allowed +different values per channel/well (allows a subset of channels to be +set). + +Attributes: + global_pore_type: + Set all channel/wells to one pore type. + channel_well_pore_types: + Set channel/wells to different pore types. Pore types can be + created without being used by adding an empty entry. +""" WriterConfiguration.ChannelConfiguration.ChannelList.__doc__ = """Attributes: channels: List of channel names (one based) which should be enabled for writing. """ -ReadClassificationParams.Parameters.__doc__ = """Attributes: - rules_in_execution_order: - An execution rule has the following format: "pore = - (median,gt,185)&(median,lt,260)&(median_sd,lt,40)" "median" - and "median_sd" are apart of a small subset of variable values - describing a read or read chunk, that are exposed to execution - rules. The full list of variable values and their descriptions - are documented here: - https://minknow.git.oxfordnanolabs.local/minknow- - core/analysis/reads.html "gt" and "lt" describe how data can - be compared: gt: greater than lt: less than eq: equal ne: not - equal Constant values like "185" or "260" can also be - specified. These can be real numbers also. Note that - variables dont always have to be on the left and const values - on the right. The following sub rules are also valid: - (200,lt,median_sd) (median_before,gt,median) (5,lt,10) -""" -ReadFilters.__doc__ = """Parameters for filtering out reads from being written. The tests are -combined using a logical AND: if any given test fails, the read will -not be written. Only reads that pass all (non-zero) tests will be -written out. Currently, it is only possible to filter on read length. -This can be given in samples or MinKNOW events. +ReadScalingParams.__doc__ = """Since 5.3 Quantile Information: Attributes: - read_length_min: - Only write reads that contain at least this many samples. The - default zero value will not exclude any reads. - read_length_max: - Only write reads that contain at most this many samples. If - set to zero (the default), this test is not applied (as though - it had been set to a value longer than any possible read). - event_count_min: - Only write reads that contain at least this many MinKNOW - events. The default zero value will not exclude any reads. - event_count_max: - Only write reads that contain at most this many MinKNOW - events. If set to zero (the default), this test is not - applied (as though it had been set to a value longer than any - possible read). + quantile_locations: + Position of quantiles in scaling data to use when computing + scale parameters. + quantile_weights_shift: + If present, must be the same length as quantile_locations. + Represents the coefficients that shall be multiplied with + measured quantiles to give a predicted_shift + quantile_weights_scale: + If present, must be the same length as quantile_locations. + Represents the coefficients that shall be multiplied with + measured quantiles to give a predicted_scale + tracking_alpha: + Alpha value to use in ewma calculation for scale and shift + tracking. 1 updates instantly. 0 does not update. + alpha_number_estimates_decay: + Alpha decay value to use. Higher values cause a more rapid + decay in greater trust of earlier numbers. + quantile_maxdiff: + Maximum difference in event quantiles which will be added into + trackers. This is used to filter away cases where pore signal + is included in the read and thus cannot be trusted. + trust_limit_fraction: + Maximum fraction change between one tracked value and the next + which will be trusted. Higher values are not trusted. + diff_threshold: + The minimum difference between an event and the next to + include it in the subsampling + emission_threshold: + After how many cumulative pA is a new event emitted in the + subsampling + dacs_breakpoint: + Cumulative pA sum required to compute scaling. Any events + after this sum are not considered in scaling. + conductance_factor_scale: + Scale factor applied to conductance to produce a basic scale + estimate, also combined with q90_q10_to_normal. + conductance_factor_shift: + Scale factor applied to conductance to produce a basic shift + estimate. """ WriterConfiguration.__doc__ = """Configuration for the output writers for MinKNOWs analysis pipeline. Each writer has its own section in this message, where individual data @@ -796,18 +655,16 @@ read_classification: The classification applied to the completed read (eg. strand). - batch_number: The batch number of this read, evaluated based on the destination file. - read_id: -Unique read id for each read, formatted as a hash. - read_number: -The read number (unique per channel, incrementing number assigned to -each read by MinKNOW). - channel_name: The name of the -channel which produced the read. - read_start_time: Read start -time formatted in rfc3339 format. - basecall_status: Basecalling -output status (derived from WriterDefaults section in analysis -config). - pore_type: Type of pore (as specified by -#set_pore_type_configuration). General attributes: - daq_start_time: -Data acquisition start time formatted as YYYYMMDD_hhmm. - -protocol_start_time: Time the current protocol was started. - -run_id: Acquisition run id formatted as hash. - -short_run_id: Shortened version of acquisition run id +Unique read id for each read, formatted as a hash. - channel_name: +The name of the channel which produced the read. - read_start_time: +Read start time formatted in rfc3339 format. - basecall_status: +Basecalling output status (derived from WriterDefaults section in +analysis config). - pore_type: Type of pore (as specified +by #set_pore_type_configuration). General attributes: - +daq_start_time: Data acquisition start time formatted as +YYYYMMDD_hhmm. - protocol_start_time: Time the current protocol was +started. - run_id: Acquisition run id formatted as +hash. - short_run_id: Shortened version of acquisition run id formatted as hash. - protocol_run_id: Protocol run id formatted as hash. - short_protocol_run_id: Shortened protocol run id formatted as hash. - asic_id: Integer id assigned to the asic in @@ -850,140 +707,138 @@ then no filtering will be applied, so no reads will be excluded. """ -GetSummaryResponse.__doc__ = """Attributes: - analysis_enabled: - Whether any analysis is enabled. If this is false, everything - else will be false as well. - basecalling_enabled: - Whether basecalling is enabled. +WriterConfiguration.ChannelConfiguration.ChannelRanges.__doc__ = """Attributes: + ranges: + List of start/end paired channel numbers which should be + enabled for writing. All channels in inclusive ranges should + be enabled. """ -BasecallerConfiguration.ReadFiltering.__doc__ = """Attributes: - min_duplex_qscore: - Since 5.8 +GetChannelStatesDescResponse.ChannelState.__doc__ = """Attributes: + id: + The numeric identifier of the state. This is what is reported + in any other APIs that return a channel state ID. + name: + The internal name of the state. This is what is reported in + any other APIs that return a channel state name. + style: + How to render the channel state in a graphical user interface. + Note that the style may be missing from some channel states + (such as the ones that are built in to MinKNOW). + global_order: + An order ranking for the channel states when they are + ungrouped. This can be used to order the channel states after + merging the groups. """ -ChannelStates.Group.__doc__ = """ TODO: group styling and description should not be defined here, as -this allows channel states to declare themselves as being part of the -same group but specify different styling and descriptions.""" -GetChannelStatesDescResponse.__doc__ = """Attributes: - groups: - The groups of channel states. The groups are ordered - according to the "order" attribute of the group style in the - channel states configuration. +DynamicAnalysisConfiguration.ReadScaleTracking.__doc__ = """Attributes: + conductance_scan_voltage: + Set the voltage the most recent conductance scan occured at. + channel_conductance: + Per channel/well conductance values """ -BasecallerConfiguration.__doc__ = """Since 3.0 +GetChannelStatesDescResponse.Style.__doc__ = """Attributes: + label: + The human-readable name to display when rendering this channel + state or group. + description: + A sentence describing the meaning of the channel state or + group. This can be used as a tooltip, for example. + colour: + The colour to use when rendering this channel state or group. + This is a six-digit hex string describing an RGB colour (eg: + "ff00ff" for purple). +""" +AlignmentConfiguration.__doc__ = """Since 4.0 Attributes: - enable: - Choose if guppy is enabled or disabled. If set to false then - no basecalling will take place, and the rest of the config is - ignored. - config_filename: - The Guppy cfg file with all the settings. Filename can be - absolute, or a basename (eg dna_r9.4_450bps.cfg) which guppy - should locate (see guppy application config entry: - "data_path") - align_filter: - Enable or disable pass/fail filtering based on alignment. - When enabled, reads which do not align to any references will - be marked as "failed", and written to the folder specified in - MinKNOW configuration for failed reads. The setting applies - to both regular read filtering and target filtering; if it is - enabled, then a read will not be marked as a target read if it - does not align to a reference. Default setting is false, i.e. - disabled. Since 5.4 - read_filtering: - Control how read filtering is applied to output of basecaller. - These settings determine whether a read is marked as "passed" - or "failed". Reads are written to different folders based on - the result of this filtering. Those folders are specified in - MinKNOW configuration. If no filtering parameters are - provided then reads will not be filtered. - barcoding_configuration: - Control the barcoding configuration. If no barcoding - configuration is supplied, barcoding is disabled. Since 3.5 - target_filtering: - Control how target filtering is applied to output of - basecaller. Reads which pass these filtering criteria will be - marked as "target" reads, and will be written to a separate - folder; this folder is specified in MinKNOW configuration. - Reads which do not pass these criteria will have the regular - read filtering applied to them, as specified by the `read- - filtering` settings above. If no filtering parameters are - provided then reads will not be target-filtered. Since 3.7 - alignment_configuration: - Alignment configuration parameters. If no configuration is - specified alignment is disabled. Since 4.0 - lamp_configuration: - Lamp configuration parameters. If no configuration is - specified lamp is disabled. Since 4.1 - enable_read_splitting: - Enable read splitting in guppy. Since 4.5 Note: Since 5.9 - this option has no effect, the basecaller is responsible for - deciding when read splitting should be enabled. - min_score_read_splitting: - Override score to use for guppy read splitting. If not - specified a default value is used from guppy. Since 4.5 - Note: Since 5.9 this option has no effect, the basecaller is - responsible for deciding read splitting score. + reference_files: + Provide an index to align reads against once basecalled. Any + acceptable reference format to the basecaller can be passed + here: - fasta reference file - minimap index file + bed_file: + Provide a bed file for use indicating areas of interest in + alignment results. Note: alignment_index must be provided for + this argument to be valid. + minimum_coverage: + Minimum coverage for the basecaller to accept an alignment. + If not specified a default value is used. Note: this option + cannot be used during live basecalling. + aggregate_statistics_for_multiple_bed_hits: + Control how statistics for bed results are aggregated. If set + to false only the bed hit with the highest overlap is used + when computing heatmap/throughput graphs with bed hits. If + set to true each bed hit is considered and bases for all hits + are counted. This may give more honest representation of + individual bed hit results but will skew read count statistics + - as each hit will be counted for every bed hit. Note: this + option has no effect in offline basecalling. """ -WriterConfiguration.ChannelConfiguration.ChannelRanges.__doc__ = """Attributes: - ranges: - List of start/end paired channel numbers which should be - enabled for writing. All channels in inclusive ranges should - be enabled. +ReadDetectionParams.__doc__ = """Attributes: + open_pore_min: + The minimum level which is considered open pore (this value is + relative to open_pore_default or the tracked open_pore + section, if tracking is being used.) This value must be <= + 0.0 if tracking is being used. + open_pore_max: + The maximum level which is considered open pore (this value is + relative to open_pore_default or the tracked open_pore + section, if tracking is being used.) This value must be >= + 0.0 if tracking is being used. + open_pore_default: + The default value to use for open pore, either when tracking + isn't being used, or when open pore tracking has no value + currently. + open_pore_seconds_required: + Minimum number of seconds events must lie within the range of + open pore in order to allow a read to break. """ -WriterConfiguration.SequencingSummaryConfiguration.__doc__ = """Attributes: - enable: - Should a sequencing summary file be generated - file_pattern: - The pattern used to find a summary files name. default: - sequencing_summary_{flow_cell_id}_{short_run_id}.txt Where - each {xxx} section is replaced with an attribute from the - minknow state when the file is written. See file pattern - attributes above. +BarcodingConfiguration.__doc__ = """Since 3.5 + +Attributes: + barcoding_kits: + The barcoding kits in use One entry per kit If no barcoding + kits are supplied, barcoding is disabled. + trim_barcodes: + Whether the basecaller should trim barcodes If not specified, + this value defaults to false (not triming barcodes) If + barcoding is not enabled (e.g., because no barcoding kits are + specified), this parameter has no effect. + require_barcodes_both_ends: + Barcode is only classified if a barcode above `min_score` is + present at both ends of the basecalled read. + ignore_unspecified_barcodes: + If set, barcodes that aren't in barcode user data list will be + ignored Since 5.6 """ -WriterConfiguration.BulkConfiguration.__doc__ = """Control settings for the bulk writer +LampConfiguration.__doc__ = """Since 4.1 DEPRECATED 6.0: Lamp support has been removed and all of +these options will be ignored. Attributes: - compression_level: - Control the level of compression applied to read data. 0: - No compression will be applied to data. 1-9: Passed to zlib - compression, 1 is the fastest compression, 9 is the - smallest possible output. - compression_type: - Control the type of compression applied to the read data. By - default the vbz compressor is used (except in the single read - case). - file_pattern: - The pattern used to find a bulk files name. If left empty but - output is enabled a default pattern is used. default: - {data_set}.fast5 Where each {xxx} section is replaced with an - attribute from the minknow state when the file is written. - See file pattern attributes above. - raw: - Raw data, stored with channel calibration data Stored under - /Raw/Channel_*/Signal - events: - Minknow event data Stored under - /IntermediateData/Channel_*/Events - reads: - Minknow read data Stored under - /IntermediateData/Channel_*/Reads - multiplex: - Device multiplex data Stored under - /MultiplexData/Channel_*/Multiplex - channel_states: - Channel state data Stored under /StateData/Channel_*/States - device_metadata: - Device metadata (bias and temperature information) Stored in - a per frame sequence in /Device/MetaData - device_commands: - Device commands Stored with the frame commands take effect - sequence in /Device/AsicCommands - dynamic_analysis_config: - Dynamic analysis configuration Stored with the frame config - took effect in /Meta/User/DynamicAnalysisConfiguration + lamp_kit: + Set the lamp kit being used. + min_score_barcodes: + Optionally specify a min score to detect a valid lamp barcode. + min_score_masks: + Optionally set the minimimum valid score for a lamp mask. + min_score_targets: + Optionally specify a minimum score for lamp targets. +""" +PoreTypeConfiguration.ChannelWell.__doc__ = """Attributes: + channel: + Channel number to control pore type for. Must be less than + channel count for the current platform + well: + Well to control pore type for. Wells outside the available + wells on the flowcell are ignored. +""" +ChannelStates.Group.__doc__ = """ TODO: group styling and description should not be defined here, as +this allows channel states to declare themselves as being part of the +same group but specify different styling and descriptions.""" +GetBasecallerConfigurationRequest.__doc__ = """Attributes: + run_id: + The unique identifier assigned to this acquisition run. Since + 6.0 """ +BasecallerConfiguration.TargetFiltering.__doc__ = """Since 3.7""" WriterConfiguration.ReportConfiguration.__doc__ = """Control settings for the report writer Attributes: @@ -1060,52 +915,215 @@ - "custom_report{suffix}.txt" See file pattern attributes above. """ -AnalysisConfiguration.__doc__ = """Attributes: - read_scaling: - Add read scale tracking to the pipeline. If this message is - unspecified, read scaling is not enabled. +ReadClassificationParams.Parameters.__doc__ = """Attributes: + rules_in_execution_order: + An execution rule has the following format: "pore = + (median,gt,185)&(median,lt,260)&(median_sd,lt,40)" "median" + and "median_sd" are apart of a small subset of variable values + describing a read or read chunk, that are exposed to execution + rules. The full list of variable values and their descriptions + are documented here: + https://minknow.git.oxfordnanolabs.local/minknow- + core/analysis/reads.html "gt" and "lt" describe how data can + be compared: gt: greater than lt: less than eq: equal ne: not + equal Constant values like "185" or "260" can also be + specified. These can be real numbers also. Note that + variables dont always have to be on the left and const values + on the right. The following sub rules are also valid: + (200,lt,median_sd) (median_before,gt,median) (5,lt,10) """ -ReadScalingParams.__doc__ = """Since 5.3 Quantile Information: +DynamicAnalysisConfiguration.__doc__ = """Attributes: + read_scale_tracking: + Parameters for read scale tracking: +""" +ChannelStates.Logic.__doc__ = """Attributes: + rank: + Specifies the order in which channel state criteria will be + evaluated; the smaller the number, the earlier it will be + evaluated. The first criteria to match will be selected + pattern: + Note that this is a regex based pattern for describing a read + classification sequence. For example you can specify: + "unavailableunavailable" or: "(unavailable)(unavailable)" + to recognise two consecutive read chunks classified as + unavailable. You can also use "?" at the end of one of the + classifications in the sequence to indicate that it may or may + not be present at that point. For example: + "(pore)(transition)?(event)" This will match both of the + sequences: pore, transition, event pore, event The + technical documentation has more information on the range of + regex patterns you can apply. + https://minknow.git.oxfordnanolabs.local/minknow- + core/analysis/channel-states.html + ranges: + Range is [lower_pa, upper_pa) +""" +GetChannelStatesDescResponse.Group.__doc__ = """Attributes: + name: + The name of the group. + style: + How to render the group in a graphical user interface. Note + that the style may be missing from some groups (such as the + ones that are built in to MinKNOW). + states: + The channel states contained in the group. The groups are + ordered according to the "order" attribute of the channel + state style in the channel states configuration. +""" +WriterConfiguration.ReadFast5Configuration.__doc__ = """Attributes: + compression_level: + Control the level of compression applied to read data. 0: + No compression will be applied to data. 1-9: Passed to zlib + compression, 1 is the fastest compression, 9 is the + smallest possible output. + compression_type: + Control the type of compression applied to the read data. By + default the vbz compressor is used (except in the single read + case). + raw: + Raw data, stored with calibration data, and read attributes. + Stored under /Raw/Reads_*/Signal + fastq: + Fastq data, stored as a string. Stored under + /Analyses/Basecall_1D_*/BaseCalled_(template|complement)/Fastq + trace_table: + Trace table received from the basecaller Stored under + /Analyses/Basecall_1D_*/BaseCalled_template/Trace + move_table: + Move table received from the basecaller Stored under + /Analyses/Basecall_1D_*/BaseCalled_template/Move + modifications_table: + Base modification probability table Store under + /Analyses/Basecall_1D_*/BaseCalled_template/ModBaseProbs + disable_writing_passed_reads: + Prevent reads which have successfully basecalled being written + to fast5. + disable_writing_failed_reads: + Prevent reads which have failed basecalling being written to + fast5. + disable_writing_force_skipped_reads: + disable writing reads which have been force skipped by the + basecaller. + file_pattern: + The pattern used to find a fast5 files name. default: fast5{b + asecall_status}/{flow_cell_id}_{run_id}_{batch_number}.fast5 + Where each {xxx} section is replaced with an attribute from + the minknow state when the file is written. See file pattern + attributes above. + fastq_header_pattern: + The pattern used to find a fastq header. default: {read_id} + runid={run_id} ch={channel_name} start_time={read_start_time} + Where each {xxx} section is replaced with an attribute from + the minknow state when the fastq is generated. + batch_count: + How many reads are placed in each batch (after batch_count + reads {batch_number} is increased in the pattern). + bases_per_batch: + Number of estimated bases within a batch before it rotates to + a new batch + no_output_based_batching: + Do not perform batching based on output (time-based batching + is still performed, if specified) + batch_duration: + The batch duration, for time-based batching If time-based + batching is enabled then, in addition to completing batches + when the `batch_count` or `bases_per_batch` target (above) is + reached, batches will also be completed when: - At least one + read has been written to the batch, AND - `batch_duration` has + elapsed since the last batch was completed (or since the start + of the acquisition, for the first batch) If this field is not + set, then the default time-based batching configuration will + be used. If this field is set to zero or a negative value, + then time-based batching will be disabled. Since 5.6 +""" +DynamicAnalysisConfiguration.ReadScaleTracking.ChannelConductance.__doc__ = """Attributes: + well_conductance: + Per well conductance values. +""" +WriterConfiguration.BulkConfiguration.__doc__ = """Control settings for the bulk writer Attributes: - quantile_locations: - Position of quantiles in scaling data to use when computing - scale parameters. - quantile_weights_shift: - If present, must be the same length as quantile_locations. - Represents the coefficients that shall be multiplied with - measured quantiles to give a predicted_shift - quantile_weights_scale: - If present, must be the same length as quantile_locations. - Represents the coefficients that shall be multiplied with - measured quantiles to give a predicted_scale - tracking_alpha: - Alpha value to use in ewma calculation for scale and shift - tracking. 1 updates instantly. 0 does not update. - alpha_number_estimates_decay: - Alpha decay value to use. Higher values cause a more rapid - decay in greater trust of earlier numbers. - quantile_maxdiff: - Maximum difference in event quantiles which will be added into - trackers. This is used to filter away cases where pore signal - is included in the read and thus cannot be trusted. - trust_limit_fraction: - Maximum fraction change between one tracked value and the next - which will be trusted. Higher values are not trusted. - diff_threshold: - The minimum difference between an event and the next to - include it in the subsampling - emission_threshold: - After how many cumulative pA is a new event emitted in the - subsampling - dacs_breakpoint: - Cumulative pA sum required to compute scaling. Any events - after this sum are not considered in scaling. - conductance_factor_scale: - Scale factor applied to conductance to produce a basic scale - estimate, also combined with q90_q10_to_normal. - conductance_factor_shift: - Scale factor applied to conductance to produce a basic shift - estimate. + compression_level: + Control the level of compression applied to read data. 0: + No compression will be applied to data. 1-9: Passed to zlib + compression, 1 is the fastest compression, 9 is the + smallest possible output. + compression_type: + Control the type of compression applied to the read data. By + default the vbz compressor is used (except in the single read + case). + file_pattern: + The pattern used to find a bulk files name. If left empty but + output is enabled a default pattern is used. default: + {data_set}.fast5 Where each {xxx} section is replaced with an + attribute from the minknow state when the file is written. + See file pattern attributes above. + raw: + Raw data, stored with channel calibration data Stored under + /Raw/Channel_*/Signal + events: + Minknow event data Stored under + /IntermediateData/Channel_*/Events + reads: + Minknow read data Stored under + /IntermediateData/Channel_*/Reads + multiplex: + Device multiplex data Stored under + /MultiplexData/Channel_*/Multiplex + channel_states: + Channel state data Stored under /StateData/Channel_*/States + device_metadata: + Device metadata (bias and temperature information) Stored in + a per frame sequence in /Device/MetaData + device_commands: + Device commands Stored with the frame commands take effect + sequence in /Device/AsicCommands + dynamic_analysis_config: + Dynamic analysis configuration Stored with the frame config + took effect in /Meta/User/DynamicAnalysisConfiguration +""" +ChannelStates.Logic.Behaviour.__doc__ = """Attributes: + reset_on_mux_change: + TODO: MinKNOW 5: replace int32 with bool for these options + these are ints but act like bools + latch: + If the latch value is set to true, then when the criteria for + this channel state is active, then the latch will keep it + active until the channel state is reset. + reset_on_effective_mux_change: + An 'effective mux change' is any mux change apart from the one + triggered with the purpose of disconnecting a channel (turning + a channel off). For example, if a channel is in pore, and the + user changes the channel configuration to 'disconnected', that + mux change will not be an effective mux change. Any other mux + change is considered an 'effective mux change'. So if a + channel saturates, the mux change to disconnected is an + effective mux change. Similarly, a change from disconnected to + a pore is an effective mux change. Use this reset mode to + make the channel state persist on non-effective mux changes. + For example, if a channel state is in 'multiple' and the user + triggers a channel configuration change to 'disconnected', the + state will remain in multiple if it has this option on. The + multiple state will be reset at all other mux changes (i.e. + effective mux changes). + reset_on_effective_well_change: + An 'effective well change' is any well change apart from the + one triggered with the purpose of disconnecting a channel + (turning a channel off). For example, if a channel is in + well_1, and the user changes the channel configuration to + 'unblock_1', that change will not be an effective well change. + A change to disconnected is also not considered an effective + well change. Use this reset mode to make the channel state + persist on non-effective well changes. For example, if a + channel state is in 'multiple' and the user triggers a channel + configuration change to 'disconnected', the state will remain + in multiple if it has this option on. The multiple state will + be reset then when the mux is set to a different setting. +""" +GetChannelStatesDescResponse.__doc__ = """Attributes: + groups: + The groups of channel states. The groups are ordered + according to the "order" attribute of the group style in the + channel states configuration. """ # @@protoc_insertion_point(module_scope) diff --git a/python/minknow_api/analysis_configuration_service.py b/python/minknow_api/analysis_configuration_service.py index c0d7887..a1061e9 100644 --- a/python/minknow_api/analysis_configuration_service.py +++ b/python/minknow_api/analysis_configuration_service.py @@ -393,13 +393,13 @@ def set_basecaller_configuration(self, _message=None, _timeout=None, **kwargs): This can be passed instead of the keyword arguments. _timeout (float, optional): The call will be cancelled after this number of seconds if it has not been completed. - enable (bool, optional): Choose if guppy is enabled or disabled. + enable (bool, optional): Choose if the basecaller is enabled or disabled. If set to false then no basecalling will take place, and the rest of the config is ignored. - config_filename (str, optional): The Guppy cfg file with all the settings. + config_filename (str, optional): The basecaller cfg file with all the settings. Filename can be absolute, or a basename (eg dna_r9.4_450bps.cfg) - which guppy should locate (see guppy application config entry: "data_path") + which the basecaller should locate (see basecaller application config entry: "data_path") align_filter (bool, optional): Enable or disable pass/fail filtering based on alignment. When enabled, reads which do not align to any references will be marked as "failed", and written to the folder specified in MinKNOW configuration for failed reads. @@ -442,13 +442,15 @@ def set_basecaller_configuration(self, _message=None, _timeout=None, **kwargs): If no configuration is specified lamp is disabled. Since 4.1 - enable_read_splitting (bool, optional): Enable read splitting in guppy. + + DEPRECATED 6.0: Lamp support has been removed and this option will be ignored. + enable_read_splitting (bool, optional): Enable read splitting in the basecaller. Since 4.5 Note: Since 5.9 this option has no effect, the basecaller is responsible for deciding when read splitting should be enabled. - min_score_read_splitting (google.protobuf.wrappers_pb2.FloatValue, optional): Override score to use for guppy read splitting. If not specified a default value - is used from guppy. + min_score_read_splitting (google.protobuf.wrappers_pb2.FloatValue, optional): Override score to use for the basecaller read splitting. If not specified a default value + is used from the basecaller. Since 4.5 @@ -539,13 +541,13 @@ def preload_basecaller_configuration(self, _message=None, _timeout=None, **kwarg This can be passed instead of the keyword arguments. _timeout (float, optional): The call will be cancelled after this number of seconds if it has not been completed. - enable (bool, optional): Choose if guppy is enabled or disabled. + enable (bool, optional): Choose if the basecaller is enabled or disabled. If set to false then no basecalling will take place, and the rest of the config is ignored. - config_filename (str, optional): The Guppy cfg file with all the settings. + config_filename (str, optional): The basecaller cfg file with all the settings. Filename can be absolute, or a basename (eg dna_r9.4_450bps.cfg) - which guppy should locate (see guppy application config entry: "data_path") + which the basecaller should locate (see basecaller application config entry: "data_path") align_filter (bool, optional): Enable or disable pass/fail filtering based on alignment. When enabled, reads which do not align to any references will be marked as "failed", and written to the folder specified in MinKNOW configuration for failed reads. @@ -588,13 +590,15 @@ def preload_basecaller_configuration(self, _message=None, _timeout=None, **kwarg If no configuration is specified lamp is disabled. Since 4.1 - enable_read_splitting (bool, optional): Enable read splitting in guppy. + + DEPRECATED 6.0: Lamp support has been removed and this option will be ignored. + enable_read_splitting (bool, optional): Enable read splitting in the basecaller. Since 4.5 Note: Since 5.9 this option has no effect, the basecaller is responsible for deciding when read splitting should be enabled. - min_score_read_splitting (google.protobuf.wrappers_pb2.FloatValue, optional): Override score to use for guppy read splitting. If not specified a default value - is used from guppy. + min_score_read_splitting (google.protobuf.wrappers_pb2.FloatValue, optional): Override score to use for the basecaller read splitting. If not specified a default value + is used from the basecaller. Since 4.5 @@ -679,6 +683,9 @@ def get_basecaller_configuration(self, _message=None, _timeout=None, **kwargs): This can be passed instead of the keyword arguments. _timeout (float, optional): The call will be cancelled after this number of seconds if it has not been completed. + run_id (str, optional): The unique identifier assigned to this acquisition run. + + Since 6.0 Returns: minknow_api.analysis_configuration_pb2.BasecallerConfiguration @@ -698,6 +705,10 @@ def get_basecaller_configuration(self, _message=None, _timeout=None, **kwargs): _message = GetBasecallerConfigurationRequest() + if "run_id" in kwargs: + unused_args.remove("run_id") + _message.run_id = kwargs['run_id'] + if len(unused_args) > 0: raise ArgumentError("Unexpected keyword arguments to get_basecaller_configuration: '{}'".format(", ".join(unused_args))) @@ -941,6 +952,9 @@ def get_writer_configuration(self, _message=None, _timeout=None, **kwargs): This can be passed instead of the keyword arguments. _timeout (float, optional): The call will be cancelled after this number of seconds if it has not been completed. + run_id (str, optional): The unique identifier assigned to this acquisition run. + + Since 6.0 Returns: minknow_api.analysis_configuration_pb2.WriterConfiguration @@ -960,6 +974,10 @@ def get_writer_configuration(self, _message=None, _timeout=None, **kwargs): _message = GetWriterConfigurationRequest() + if "run_id" in kwargs: + unused_args.remove("run_id") + _message.run_id = kwargs['run_id'] + if len(unused_args) > 0: raise ArgumentError("Unexpected keyword arguments to get_writer_configuration: '{}'".format(", ".join(unused_args))) diff --git a/python/minknow_api/analysis_workflows_pb2.py b/python/minknow_api/analysis_workflows_pb2.py new file mode 100644 index 0000000..f3870df --- /dev/null +++ b/python/minknow_api/analysis_workflows_pb2.py @@ -0,0 +1,47 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: minknow_api/analysis_workflows.proto +# Protobuf Python Version: 4.25.0 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from minknow_api import rpc_options_pb2 as minknow__api_dot_rpc__options__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n$minknow_api/analysis_workflows.proto\x12\x1eminknow_api.analysis_workflows\x1a\x1dminknow_api/rpc_options.proto\"\xa4\x02\n\x0cProxyRequest\x12\x0b\n\x03\x61pi\x18\x01 \x01(\t\x12\x43\n\x06method\x18\x02 \x01(\x0e\x32\x33.minknow_api.analysis_workflows.ProxyRequest.Method\x12J\n\x07headers\x18\x04 \x03(\x0b\x32\x39.minknow_api.analysis_workflows.ProxyRequest.HeadersEntry\x12\x14\n\x0crequest_body\x18\x03 \x01(\t\x1a.\n\x0cHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"0\n\x06Method\x12\x07\n\x03GET\x10\x00\x12\x08\n\x04POST\x10\x01\x12\x07\n\x03PUT\x10\x02\x12\n\n\x06\x44\x45LETE\x10\x03\";\n\rProxyResponse\x12\x13\n\x0bstatus_code\x18\x01 \x01(\r\x12\x15\n\rresponse_body\x18\x02 \x01(\t2\x88\x01\n\x18\x41nalysisWorkflowsService\x12l\n\x05proxy\x12,.minknow_api.analysis_workflows.ProxyRequest\x1a-.minknow_api.analysis_workflows.ProxyResponse\"\x04\x98\xb5\x18\x01\x30\x01\x42&\n\x1c\x63om.nanoporetech.minknow_api\xa2\x02\x05MKAPIb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'minknow_api.analysis_workflows_pb2', _globals) +if _descriptor._USE_C_DESCRIPTORS == False: + _globals['DESCRIPTOR']._options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\034com.nanoporetech.minknow_api\242\002\005MKAPI' + _globals['_PROXYREQUEST_HEADERSENTRY']._options = None + _globals['_PROXYREQUEST_HEADERSENTRY']._serialized_options = b'8\001' + _globals['_ANALYSISWORKFLOWSSERVICE'].methods_by_name['proxy']._options = None + _globals['_ANALYSISWORKFLOWSSERVICE'].methods_by_name['proxy']._serialized_options = b'\230\265\030\001' + _globals['_PROXYREQUEST']._serialized_start=104 + _globals['_PROXYREQUEST']._serialized_end=396 + _globals['_PROXYREQUEST_HEADERSENTRY']._serialized_start=300 + _globals['_PROXYREQUEST_HEADERSENTRY']._serialized_end=346 + _globals['_PROXYREQUEST_METHOD']._serialized_start=348 + _globals['_PROXYREQUEST_METHOD']._serialized_end=396 + _globals['_PROXYRESPONSE']._serialized_start=398 + _globals['_PROXYRESPONSE']._serialized_end=457 + _globals['_ANALYSISWORKFLOWSSERVICE']._serialized_start=460 + _globals['_ANALYSISWORKFLOWSSERVICE']._serialized_end=596 +ProxyRequest.__doc__ = """Attributes: + api: + with parameters but without the endpoint e.g. for API + /workflows/{id}/start: + "/workflows/ae088129-8767-460f-8795-7c04771dc42f/start" + "/workflows/epi2me-labs/wf-alignment/v1.2.8/start" +""" +# @@protoc_insertion_point(module_scope) diff --git a/python/minknow_api/analysis_workflows_pb2_grpc.py b/python/minknow_api/analysis_workflows_pb2_grpc.py new file mode 100644 index 0000000..91f7691 --- /dev/null +++ b/python/minknow_api/analysis_workflows_pb2_grpc.py @@ -0,0 +1,66 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from minknow_api import analysis_workflows_pb2 as minknow__api_dot_analysis__workflows__pb2 + + +class AnalysisWorkflowsServiceStub(object): + """Missing associated documentation comment in .proto file.""" + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.proxy = channel.unary_stream( + '/minknow_api.analysis_workflows.AnalysisWorkflowsService/proxy', + request_serializer=minknow__api_dot_analysis__workflows__pb2.ProxyRequest.SerializeToString, + response_deserializer=minknow__api_dot_analysis__workflows__pb2.ProxyResponse.FromString, + ) + + +class AnalysisWorkflowsServiceServicer(object): + """Missing associated documentation comment in .proto file.""" + + def proxy(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_AnalysisWorkflowsServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'proxy': grpc.unary_stream_rpc_method_handler( + servicer.proxy, + request_deserializer=minknow__api_dot_analysis__workflows__pb2.ProxyRequest.FromString, + response_serializer=minknow__api_dot_analysis__workflows__pb2.ProxyResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'minknow_api.analysis_workflows.AnalysisWorkflowsService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class AnalysisWorkflowsService(object): + """Missing associated documentation comment in .proto file.""" + + @staticmethod + def proxy(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_stream(request, target, '/minknow_api.analysis_workflows.AnalysisWorkflowsService/proxy', + minknow__api_dot_analysis__workflows__pb2.ProxyRequest.SerializeToString, + minknow__api_dot_analysis__workflows__pb2.ProxyResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/python/minknow_api/analysis_workflows_service.py b/python/minknow_api/analysis_workflows_service.py new file mode 100644 index 0000000..f770d14 --- /dev/null +++ b/python/minknow_api/analysis_workflows_service.py @@ -0,0 +1,104 @@ +### THIS FILE IS AUTOGENERATED. DO NOT EDIT THIS FILE DIRECTLY ### +import minknow_api +from minknow_api.analysis_workflows_pb2_grpc import * +import minknow_api.analysis_workflows_pb2 as analysis_workflows_pb2 +from minknow_api.analysis_workflows_pb2 import * +from minknow_api._support import MessageWrapper, ArgumentError +import time +import logging +import sys + +__all__ = [ + "AnalysisWorkflowsService", + "ProxyRequest", + "ProxyResponse", +] + +def run_with_retry(method, message, timeout, unwraps, full_name): + retry_count = 20 + error = None + for i in range(retry_count): + try: + result = MessageWrapper(method(message, timeout=timeout), unwraps=unwraps) + return result + except grpc.RpcError as e: + # Retrying unidentified grpc errors to keep clients from crashing + retryable_error = (e.code() == grpc.StatusCode.UNKNOWN and "Stream removed" in e.details() or \ + (e.code() == grpc.StatusCode.INTERNAL and "RST_STREAM" in e.details())) + if retryable_error: + logging.info('Bypassed ({}: {}) error for grpc: {}. Attempt {}.'.format(e.code(), e.details(), full_name, i)) + else: + raise + error = e + time.sleep(1) + raise error + + +class AnalysisWorkflowsService(object): + def __init__(self, channel): + self._stub = AnalysisWorkflowsServiceStub(channel) + self._pb = analysis_workflows_pb2 + def proxy(self, _message=None, _timeout=None, **kwargs): + """ + + + + Note this API is experimental - it may be changed, revised or removed in future minor versions. + + Args: + _message (minknow_api.analysis_workflows_pb2.ProxyRequest, optional): The message to send. + This can be passed instead of the keyword arguments. + _timeout (float, optional): The call will be cancelled after this number of seconds + if it has not been completed. + Note that this is the time until the call ends, not the time between returned + messages. + api (str, optional): with parameters but without the endpoint e.g. for API /workflows/{id}/start: + "/workflows/ae088129-8767-460f-8795-7c04771dc42f/start" + "/workflows/epi2me-labs/wf-alignment/v1.2.8/start" + method (minknow_api.analysis_workflows_pb2.ProxyRequest.Method, optional): + headers (minknow_api.analysis_workflows_pb2.ProxyRequest.HeadersEntry, optional): + request_body (str, optional): + + Returns: + iter of minknow_api.analysis_workflows_pb2.ProxyResponse + + Note that the returned messages are actually wrapped in a type that collapses + submessages for fields marked with ``[rpc_unwrap]``. + """ + print("Warning: Method AnalysisWorkflowsService.proxy is experimental and may be changed, revised or removed in future minor versions.", file=sys.stderr) + if _message is not None: + if isinstance(_message, MessageWrapper): + _message = _message._message + return run_with_retry(self._stub.proxy, + _message, _timeout, + [], + "minknow_api.analysis_workflows.AnalysisWorkflowsService") + + unused_args = set(kwargs.keys()) + + _message = ProxyRequest() + + if "api" in kwargs: + unused_args.remove("api") + _message.api = kwargs['api'] + + if "method" in kwargs: + unused_args.remove("method") + _message.method = kwargs['method'] + + if "headers" in kwargs: + unused_args.remove("headers") + _message.headers.update(kwargs['headers']) + + + if "request_body" in kwargs: + unused_args.remove("request_body") + _message.request_body = kwargs['request_body'] + + if len(unused_args) > 0: + raise ArgumentError("Unexpected keyword arguments to proxy: '{}'".format(", ".join(unused_args))) + + return run_with_retry(self._stub.proxy, + _message, _timeout, + [], + "minknow_api.analysis_workflows.AnalysisWorkflowsService") diff --git a/python/minknow_api/basecaller_pb2.py b/python/minknow_api/basecaller_pb2.py index 8edf7fc..fe51fc5 100644 --- a/python/minknow_api/basecaller_pb2.py +++ b/python/minknow_api/basecaller_pb2.py @@ -15,11 +15,12 @@ from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 from minknow_api import analysis_configuration_pb2 as minknow__api_dot_analysis__configuration__pb2 +from minknow_api import analysis_workflows_pb2 as minknow__api_dot_analysis__workflows__pb2 from minknow_api import protocol_settings_pb2 as minknow__api_dot_protocol__settings__pb2 from minknow_api import rpc_options_pb2 as minknow__api_dot_rpc__options__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1cminknow_api/basecaller.proto\x12\x16minknow_api.basecaller\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a(minknow_api/analysis_configuration.proto\x1a#minknow_api/protocol_settings.proto\x1a\x1dminknow_api/rpc_options.proto\"\x19\n\x17ListConfigsByKitRequest\"\xf4\x03\n\x18ListConfigsByKitResponse\x12`\n\x11\x66low_cell_configs\x18\x01 \x03(\x0b\x32\x45.minknow_api.basecaller.ListConfigsByKitResponse.FlowCellConfigsEntry\x1a\x1d\n\nConfigList\x12\x0f\n\x07\x63onfigs\x18\x01 \x03(\t\x1a\xe0\x01\n\x0bPerFlowCell\x12\x61\n\x0bkit_configs\x18\x01 \x03(\x0b\x32L.minknow_api.basecaller.ListConfigsByKitResponse.PerFlowCell.KitConfigsEntry\x1an\n\x0fKitConfigsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12J\n\x05value\x18\x02 \x01(\x0b\x32;.minknow_api.basecaller.ListConfigsByKitResponse.ConfigList:\x02\x38\x01\x1at\n\x14\x46lowCellConfigsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12K\n\x05value\x18\x02 \x01(\x0b\x32<.minknow_api.basecaller.ListConfigsByKitResponse.PerFlowCell:\x02\x38\x01\"\xed\x03\n\x17StartBasecallingRequest\x12\x0c\n\x04name\x18\x0c \x01(\t\x12\x1f\n\x17input_reads_directories\x18\x01 \x03(\t\x12\x1e\n\x16output_reads_directory\x18\x02 \x01(\t\x12\x15\n\rconfiguration\x18\x03 \x01(\t\x12\x11\n\tfast5_out\x18\x04 \x01(\x08\x12\x16\n\x0e\x63ompress_fastq\x18\x05 \x01(\x08\x12\x16\n\x0e\x64isable_events\x18\x06 \x01(\x08\x12\x11\n\trecursive\x18\x07 \x01(\x08\x12[\n\x17\x62\x61rcoding_configuration\x18\n \x01(\x0b\x32:.minknow_api.analysis_configuration.BarcodingConfiguration\x12[\n\x17\x61lignment_configuration\x18\x0b \x01(\x0b\x32:.minknow_api.analysis_configuration.AlignmentConfiguration\x12\x1d\n\x15\x65nable_read_splitting\x18\r \x01(\x08\x12=\n\x18min_score_read_splitting\x18\x0e \x01(\x0b\x32\x1b.google.protobuf.FloatValue\"&\n\x18StartBasecallingResponse\x12\n\n\x02id\x18\x01 \x01(\t\"\xee\x01\n\x15StartBarcodingRequest\x12\x0c\n\x04name\x18\x0b \x01(\t\x12\x1f\n\x17input_reads_directories\x18\x01 \x03(\t\x12\x1e\n\x16output_reads_directory\x18\x02 \x01(\t\x12\x16\n\x0e\x63ompress_fastq\x18\x04 \x01(\x08\x12\x11\n\trecursive\x18\x05 \x01(\x08\x12[\n\x17\x62\x61rcoding_configuration\x18\n \x01(\x0b\x32:.minknow_api.analysis_configuration.BarcodingConfiguration\"$\n\x16StartBarcodingResponse\x12\n\n\x02id\x18\x01 \x01(\t\"\xd6\x01\n\x15StartAlignmentRequest\x12\x0c\n\x04name\x18\x07 \x01(\t\x12\x1f\n\x17input_reads_directories\x18\x01 \x03(\t\x12\x1e\n\x16output_reads_directory\x18\x02 \x01(\t\x12\x11\n\trecursive\x18\x04 \x01(\x08\x12[\n\x17\x61lignment_configuration\x18\x06 \x01(\x0b\x32:.minknow_api.analysis_configuration.AlignmentConfiguration\"$\n\x16StartAlignmentResponse\x12\n\n\x02id\x18\x01 \x01(\t\"\xce\x03\n\"StartPostProcessingProtocolRequest\x12\x12\n\nidentifier\x18\x01 \x01(\t\x12\"\n\x1asequencing_protocol_run_id\x18\x07 \x01(\t\x12\x1d\n\x15input_fast5_directory\x18\x02 \x01(\t\x12\x1d\n\x15input_fastq_directory\x18\x03 \x01(\t\x12\x1b\n\x13input_bam_directory\x18\x04 \x01(\t\x12\x19\n\x11sample_sheet_path\x18\x08 \x01(\t\x12\x18\n\x10output_directory\x18\x05 \x01(\t\x12\x65\n\x0esetting_values\x18\x06 \x03(\x0b\x32M.minknow_api.basecaller.StartPostProcessingProtocolRequest.SettingValuesEntry\x1ay\n\x12SettingValuesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12R\n\x05value\x18\x02 \x01(\x0b\x32\x43.minknow_api.protocol_settings.ProtocolSetting.ProtocolSettingValue:\x02\x38\x01\"\x87\x03\n\x0cStartRequest\x12T\n\x19start_basecalling_request\x18\x02 \x01(\x0b\x32/.minknow_api.basecaller.StartBasecallingRequestH\x00\x12P\n\x17start_barcoding_request\x18\x03 \x01(\x0b\x32-.minknow_api.basecaller.StartBarcodingRequestH\x00\x12P\n\x17start_alignment_request\x18\x04 \x01(\x0b\x32-.minknow_api.basecaller.StartAlignmentRequestH\x00\x12l\n&start_post_processing_protocol_request\x18\x05 \x01(\x0b\x32:.minknow_api.basecaller.StartPostProcessingProtocolRequestH\x00\x42\x0f\n\rstart_request\"1\n#StartPostProcessingProtocolResponse\x12\n\n\x02id\x18\x01 \x01(\t\"\x1b\n\rCancelRequest\x12\n\n\x02id\x18\x01 \x01(\t\"\x10\n\x0e\x43\x61ncelResponse\"\xb4\x05\n\x07RunInfo\x12\n\n\x02id\x18\x01 \x01(\t\x12T\n\x19start_basecalling_request\x18\x02 \x01(\x0b\x32/.minknow_api.basecaller.StartBasecallingRequestH\x00\x12P\n\x17start_barcoding_request\x18\x0b \x01(\x0b\x32-.minknow_api.basecaller.StartBarcodingRequestH\x00\x12P\n\x17start_alignment_request\x18\x0c \x01(\x0b\x32-.minknow_api.basecaller.StartAlignmentRequestH\x00\x12l\n&start_post_processing_protocol_request\x18\r \x01(\x0b\x32:.minknow_api.basecaller.StartPostProcessingProtocolRequestH\x00\x12,\n\x05state\x18\x03 \x01(\x0e\x32\x1d.minknow_api.basecaller.State\x12\x0e\n\x06\x65rrors\x18\x04 \x03(\t\x12\x18\n\x10\x66iles_discovered\x18\x05 \x01(\x05\x12\x18\n\x10progress_current\x18\x06 \x01(\x05\x12\x16\n\x0eprogress_total\x18\x07 \x01(\x05\x12.\n\nstart_time\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12,\n\x08\x65nd_time\x18\t \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x36\n\x12\x65stimated_end_time\x18\n \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x15\n\x13start_request_oneof\"\xbc\x01\n\x0eGetInfoRequest\x12\x39\n\x06preset\x18\x01 \x01(\x0e\x32\'.minknow_api.basecaller.SelectionPresetH\x00\x12\x0c\n\x02id\x18\x02 \x01(\tH\x00\x12=\n\x04list\x18\x03 \x01(\x0b\x32-.minknow_api.basecaller.GetInfoRequest.IdListH\x00\x1a\x15\n\x06IdList\x12\x0b\n\x03ids\x18\x01 \x03(\tB\x0b\n\tselection\"@\n\x0fGetInfoResponse\x12-\n\x04runs\x18\x01 \x03(\x0b\x32\x1f.minknow_api.basecaller.RunInfo\"\x1f\n\x10\x43learInfoRequest\x12\x0b\n\x03ids\x18\x01 \x03(\t\"\x13\n\x11\x43learInfoResponse\"*\n\x0cWatchRequest\x12\x1a\n\x12send_finished_runs\x18\x01 \x01(\x08\">\n\rWatchResponse\x12-\n\x04runs\x18\x01 \x03(\x0b\x32\x1f.minknow_api.basecaller.RunInfo\"^\n\x19MakeAlignmentIndexRequest\x12!\n\x19input_alignment_reference\x18\x01 \x01(\t\x12\x1e\n\x16output_alignment_index\x18\x02 \x01(\t\"\x1c\n\x1aMakeAlignmentIndexResponse\"$\n\"ListPostProcessingProtocolsRequest\"\xa6\x01\n\x1aPostProcessingProtocolInfo\x12\x12\n\nidentifier\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0f\n\x07version\x18\x03 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x04 \x01(\t\x12@\n\x08provider\x18\x05 \x01(\x0e\x32..minknow_api.basecaller.PostProcessingProvider\"l\n#ListPostProcessingProtocolsResponse\x12\x45\n\tprotocols\x18\x01 \x03(\x0b\x32\x32.minknow_api.basecaller.PostProcessingProtocolInfo\"B\n,ListSettingsForPostProcessingProtocolRequest\x12\x12\n\nidentifier\x18\x01 \x01(\t\"\xd2\x01\n-ListSettingsForPostProcessingProtocolResponse\x12\x1c\n\x14requires_fast5_input\x18\x01 \x01(\x08\x12\x1c\n\x14requires_fastq_input\x18\x02 \x01(\x08\x12\x1a\n\x12requires_bam_input\x18\x03 \x01(\x08\x12I\n\x11protocol_settings\x18\x04 \x03(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\"5\n\x15UpdateProgressRequest\x12\n\n\x02id\x18\x01 \x01(\t\x12\x10\n\x08progress\x18\x02 \x01(\x02\"\x18\n\x16UpdateProgressResponse\"*\n\x0fSendPingRequest\x12\x17\n\tping_data\x18\x01 \x01(\tB\x04\x88\xb5\x18\x01\"\x12\n\x10SendPingResponse*S\n\x05State\x12\x11\n\rSTATE_RUNNING\x10\x00\x12\x11\n\rSTATE_SUCCESS\x10\x01\x12\x0f\n\x0bSTATE_ERROR\x10\x02\x12\x13\n\x0fSTATE_CANCELLED\x10\x03*[\n\x0fSelectionPreset\x12\x16\n\x12PRESET_ALL_RUNNING\x10\x00\x12 \n\x1cPRESET_MOST_RECENTLY_STARTED\x10\x01\x12\x0e\n\nPRESET_ALL\x10\x02*0\n\x16PostProcessingProvider\x12\n\n\x06SCRIPT\x10\x00\x12\n\n\x06\x45PI2ME\x10\x01\x32\xe5\r\n\nBasecaller\x12}\n\x13list_configs_by_kit\x12/.minknow_api.basecaller.ListConfigsByKitRequest\x1a\x30.minknow_api.basecaller.ListConfigsByKitResponse\"\x03\x90\x02\x01\x12x\n\x11start_basecalling\x12/.minknow_api.basecaller.StartBasecallingRequest\x1a\x30.minknow_api.basecaller.StartBasecallingResponse\"\x00\x12r\n\x0fstart_barcoding\x12-.minknow_api.basecaller.StartBarcodingRequest\x1a..minknow_api.basecaller.StartBarcodingResponse\"\x00\x12\x9b\x01\n\x1estart_post_processing_protocol\x12:.minknow_api.basecaller.StartPostProcessingProtocolRequest\x1a;.minknow_api.basecaller.StartPostProcessingProtocolResponse\"\x00\x12r\n\x0fstart_alignment\x12-.minknow_api.basecaller.StartAlignmentRequest\x1a..minknow_api.basecaller.StartAlignmentResponse\"\x00\x12\\\n\x06\x63\x61ncel\x12%.minknow_api.basecaller.CancelRequest\x1a&.minknow_api.basecaller.CancelResponse\"\x03\x90\x02\x02\x12\x62\n\x08get_info\x12&.minknow_api.basecaller.GetInfoRequest\x1a\'.minknow_api.basecaller.GetInfoResponse\"\x03\x90\x02\x01\x30\x01\x12\x66\n\nclear_info\x12(.minknow_api.basecaller.ClearInfoRequest\x1a).minknow_api.basecaller.ClearInfoResponse\"\x03\x90\x02\x02\x12[\n\x05watch\x12$.minknow_api.basecaller.WatchRequest\x1a%.minknow_api.basecaller.WatchResponse\"\x03\x90\x02\x01\x30\x01\x12\x7f\n\x14make_alignment_index\x12\x31.minknow_api.basecaller.MakeAlignmentIndexRequest\x1a\x32.minknow_api.basecaller.MakeAlignmentIndexResponse\"\x00\x12\x9e\x01\n\x1elist_post_processing_protocols\x12:.minknow_api.basecaller.ListPostProcessingProtocolsRequest\x1a;.minknow_api.basecaller.ListPostProcessingProtocolsResponse\"\x03\x90\x02\x02\x12\xbe\x01\n*list_settings_for_post_processing_protocol\x12\x44.minknow_api.basecaller.ListSettingsForPostProcessingProtocolRequest\x1a\x45.minknow_api.basecaller.ListSettingsForPostProcessingProtocolResponse\"\x03\x90\x02\x01\x12\x8b\x01\n(update_post_processing_protocol_progress\x12-.minknow_api.basecaller.UpdateProgressRequest\x1a..minknow_api.basecaller.UpdateProgressResponse\"\x00\x12`\n\tsend_ping\x12\'.minknow_api.basecaller.SendPingRequest\x1a(.minknow_api.basecaller.SendPingResponse\"\x00\x42&\n\x1c\x63om.nanoporetech.minknow_api\xa2\x02\x05MKAPIb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1cminknow_api/basecaller.proto\x12\x16minknow_api.basecaller\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a(minknow_api/analysis_configuration.proto\x1a$minknow_api/analysis_workflows.proto\x1a#minknow_api/protocol_settings.proto\x1a\x1dminknow_api/rpc_options.proto\"\x19\n\x17ListConfigsByKitRequest\"\xf4\x03\n\x18ListConfigsByKitResponse\x12`\n\x11\x66low_cell_configs\x18\x01 \x03(\x0b\x32\x45.minknow_api.basecaller.ListConfigsByKitResponse.FlowCellConfigsEntry\x1a\x1d\n\nConfigList\x12\x0f\n\x07\x63onfigs\x18\x01 \x03(\t\x1a\xe0\x01\n\x0bPerFlowCell\x12\x61\n\x0bkit_configs\x18\x01 \x03(\x0b\x32L.minknow_api.basecaller.ListConfigsByKitResponse.PerFlowCell.KitConfigsEntry\x1an\n\x0fKitConfigsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12J\n\x05value\x18\x02 \x01(\x0b\x32;.minknow_api.basecaller.ListConfigsByKitResponse.ConfigList:\x02\x38\x01\x1at\n\x14\x46lowCellConfigsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12K\n\x05value\x18\x02 \x01(\x0b\x32<.minknow_api.basecaller.ListConfigsByKitResponse.PerFlowCell:\x02\x38\x01\"\xed\x03\n\x17StartBasecallingRequest\x12\x0c\n\x04name\x18\x0c \x01(\t\x12\x1f\n\x17input_reads_directories\x18\x01 \x03(\t\x12\x1e\n\x16output_reads_directory\x18\x02 \x01(\t\x12\x15\n\rconfiguration\x18\x03 \x01(\t\x12\x11\n\tfast5_out\x18\x04 \x01(\x08\x12\x16\n\x0e\x63ompress_fastq\x18\x05 \x01(\x08\x12\x16\n\x0e\x64isable_events\x18\x06 \x01(\x08\x12\x11\n\trecursive\x18\x07 \x01(\x08\x12[\n\x17\x62\x61rcoding_configuration\x18\n \x01(\x0b\x32:.minknow_api.analysis_configuration.BarcodingConfiguration\x12[\n\x17\x61lignment_configuration\x18\x0b \x01(\x0b\x32:.minknow_api.analysis_configuration.AlignmentConfiguration\x12\x1d\n\x15\x65nable_read_splitting\x18\r \x01(\x08\x12=\n\x18min_score_read_splitting\x18\x0e \x01(\x0b\x32\x1b.google.protobuf.FloatValue\"&\n\x18StartBasecallingResponse\x12\n\n\x02id\x18\x01 \x01(\t\"\xe5\x02\n\x15StartBarcodingRequest\x12\x0c\n\x04name\x18\x0b \x01(\t\x12\x1f\n\x17input_reads_directories\x18\x01 \x03(\t\x12\x1e\n\x16output_reads_directory\x18\x02 \x01(\t\x12\x16\n\x0e\x63ompress_fastq\x18\x04 \x01(\x08\x12\x11\n\trecursive\x18\x05 \x01(\x08\x12[\n\x17\x62\x61rcoding_configuration\x18\n \x01(\x0b\x32:.minknow_api.analysis_configuration.BarcodingConfiguration\x12Q\n\routput_format\x18\x0c \x01(\x0e\x32:.minknow_api.basecaller.StartBarcodingRequest.OutputFormat\"\"\n\x0cOutputFormat\x12\x07\n\x03\x42\x41M\x10\x00\x12\t\n\x05\x46\x41STQ\x10\x01\"$\n\x16StartBarcodingResponse\x12\n\n\x02id\x18\x01 \x01(\t\"\xd6\x01\n\x15StartAlignmentRequest\x12\x0c\n\x04name\x18\x07 \x01(\t\x12\x1f\n\x17input_reads_directories\x18\x01 \x03(\t\x12\x1e\n\x16output_reads_directory\x18\x02 \x01(\t\x12\x11\n\trecursive\x18\x04 \x01(\x08\x12[\n\x17\x61lignment_configuration\x18\x06 \x01(\x0b\x32:.minknow_api.analysis_configuration.AlignmentConfiguration\"$\n\x16StartAlignmentResponse\x12\n\n\x02id\x18\x01 \x01(\t\"\xce\x03\n\"StartPostProcessingProtocolRequest\x12\x12\n\nidentifier\x18\x01 \x01(\t\x12\"\n\x1asequencing_protocol_run_id\x18\x07 \x01(\t\x12\x1d\n\x15input_fast5_directory\x18\x02 \x01(\t\x12\x1d\n\x15input_fastq_directory\x18\x03 \x01(\t\x12\x1b\n\x13input_bam_directory\x18\x04 \x01(\t\x12\x19\n\x11sample_sheet_path\x18\x08 \x01(\t\x12\x18\n\x10output_directory\x18\x05 \x01(\t\x12\x65\n\x0esetting_values\x18\x06 \x03(\x0b\x32M.minknow_api.basecaller.StartPostProcessingProtocolRequest.SettingValuesEntry\x1ay\n\x12SettingValuesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12R\n\x05value\x18\x02 \x01(\x0b\x32\x43.minknow_api.protocol_settings.ProtocolSetting.ProtocolSettingValue:\x02\x38\x01\"\xce\x03\n\x0cStartRequest\x12T\n\x19start_basecalling_request\x18\x02 \x01(\x0b\x32/.minknow_api.basecaller.StartBasecallingRequestH\x00\x12P\n\x17start_barcoding_request\x18\x03 \x01(\x0b\x32-.minknow_api.basecaller.StartBarcodingRequestH\x00\x12P\n\x17start_alignment_request\x18\x04 \x01(\x0b\x32-.minknow_api.basecaller.StartAlignmentRequestH\x00\x12l\n&start_post_processing_protocol_request\x18\x05 \x01(\x0b\x32:.minknow_api.basecaller.StartPostProcessingProtocolRequestH\x00\x12\x45\n\rproxy_request\x18\x06 \x01(\x0b\x32,.minknow_api.analysis_workflows.ProxyRequestH\x00\x42\x0f\n\rstart_request\"1\n#StartPostProcessingProtocolResponse\x12\n\n\x02id\x18\x01 \x01(\t\"\x1b\n\rCancelRequest\x12\n\n\x02id\x18\x01 \x01(\t\"\x10\n\x0e\x43\x61ncelResponse\"\xb4\x05\n\x07RunInfo\x12\n\n\x02id\x18\x01 \x01(\t\x12T\n\x19start_basecalling_request\x18\x02 \x01(\x0b\x32/.minknow_api.basecaller.StartBasecallingRequestH\x00\x12P\n\x17start_barcoding_request\x18\x0b \x01(\x0b\x32-.minknow_api.basecaller.StartBarcodingRequestH\x00\x12P\n\x17start_alignment_request\x18\x0c \x01(\x0b\x32-.minknow_api.basecaller.StartAlignmentRequestH\x00\x12l\n&start_post_processing_protocol_request\x18\r \x01(\x0b\x32:.minknow_api.basecaller.StartPostProcessingProtocolRequestH\x00\x12,\n\x05state\x18\x03 \x01(\x0e\x32\x1d.minknow_api.basecaller.State\x12\x0e\n\x06\x65rrors\x18\x04 \x03(\t\x12\x18\n\x10\x66iles_discovered\x18\x05 \x01(\x05\x12\x18\n\x10progress_current\x18\x06 \x01(\x05\x12\x16\n\x0eprogress_total\x18\x07 \x01(\x05\x12.\n\nstart_time\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12,\n\x08\x65nd_time\x18\t \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x36\n\x12\x65stimated_end_time\x18\n \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x15\n\x13start_request_oneof\"\xbc\x01\n\x0eGetInfoRequest\x12\x39\n\x06preset\x18\x01 \x01(\x0e\x32\'.minknow_api.basecaller.SelectionPresetH\x00\x12\x0c\n\x02id\x18\x02 \x01(\tH\x00\x12=\n\x04list\x18\x03 \x01(\x0b\x32-.minknow_api.basecaller.GetInfoRequest.IdListH\x00\x1a\x15\n\x06IdList\x12\x0b\n\x03ids\x18\x01 \x03(\tB\x0b\n\tselection\"@\n\x0fGetInfoResponse\x12-\n\x04runs\x18\x01 \x03(\x0b\x32\x1f.minknow_api.basecaller.RunInfo\"\x1f\n\x10\x43learInfoRequest\x12\x0b\n\x03ids\x18\x01 \x03(\t\"\x13\n\x11\x43learInfoResponse\"*\n\x0cWatchRequest\x12\x1a\n\x12send_finished_runs\x18\x01 \x01(\x08\">\n\rWatchResponse\x12-\n\x04runs\x18\x01 \x03(\x0b\x32\x1f.minknow_api.basecaller.RunInfo\"^\n\x19MakeAlignmentIndexRequest\x12!\n\x19input_alignment_reference\x18\x01 \x01(\t\x12\x1e\n\x16output_alignment_index\x18\x02 \x01(\t\"\x1c\n\x1aMakeAlignmentIndexResponse\"$\n\"ListPostProcessingProtocolsRequest\"\xa6\x01\n\x1aPostProcessingProtocolInfo\x12\x12\n\nidentifier\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0f\n\x07version\x18\x03 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x04 \x01(\t\x12@\n\x08provider\x18\x05 \x01(\x0e\x32..minknow_api.basecaller.PostProcessingProvider\"l\n#ListPostProcessingProtocolsResponse\x12\x45\n\tprotocols\x18\x01 \x03(\x0b\x32\x32.minknow_api.basecaller.PostProcessingProtocolInfo\"B\n,ListSettingsForPostProcessingProtocolRequest\x12\x12\n\nidentifier\x18\x01 \x01(\t\"\xd2\x01\n-ListSettingsForPostProcessingProtocolResponse\x12\x1c\n\x14requires_fast5_input\x18\x01 \x01(\x08\x12\x1c\n\x14requires_fastq_input\x18\x02 \x01(\x08\x12\x1a\n\x12requires_bam_input\x18\x03 \x01(\x08\x12I\n\x11protocol_settings\x18\x04 \x03(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\"5\n\x15UpdateProgressRequest\x12\n\n\x02id\x18\x01 \x01(\t\x12\x10\n\x08progress\x18\x02 \x01(\x02\"\x18\n\x16UpdateProgressResponse\"*\n\x0fSendPingRequest\x12\x17\n\tping_data\x18\x01 \x01(\tB\x04\x88\xb5\x18\x01\"\x12\n\x10SendPingResponse*S\n\x05State\x12\x11\n\rSTATE_RUNNING\x10\x00\x12\x11\n\rSTATE_SUCCESS\x10\x01\x12\x0f\n\x0bSTATE_ERROR\x10\x02\x12\x13\n\x0fSTATE_CANCELLED\x10\x03*[\n\x0fSelectionPreset\x12\x16\n\x12PRESET_ALL_RUNNING\x10\x00\x12 \n\x1cPRESET_MOST_RECENTLY_STARTED\x10\x01\x12\x0e\n\nPRESET_ALL\x10\x02*0\n\x16PostProcessingProvider\x12\n\n\x06SCRIPT\x10\x00\x12\n\n\x06\x45PI2ME\x10\x01\x32\xe5\r\n\nBasecaller\x12}\n\x13list_configs_by_kit\x12/.minknow_api.basecaller.ListConfigsByKitRequest\x1a\x30.minknow_api.basecaller.ListConfigsByKitResponse\"\x03\x90\x02\x01\x12x\n\x11start_basecalling\x12/.minknow_api.basecaller.StartBasecallingRequest\x1a\x30.minknow_api.basecaller.StartBasecallingResponse\"\x00\x12r\n\x0fstart_barcoding\x12-.minknow_api.basecaller.StartBarcodingRequest\x1a..minknow_api.basecaller.StartBarcodingResponse\"\x00\x12\x9b\x01\n\x1estart_post_processing_protocol\x12:.minknow_api.basecaller.StartPostProcessingProtocolRequest\x1a;.minknow_api.basecaller.StartPostProcessingProtocolResponse\"\x00\x12r\n\x0fstart_alignment\x12-.minknow_api.basecaller.StartAlignmentRequest\x1a..minknow_api.basecaller.StartAlignmentResponse\"\x00\x12\\\n\x06\x63\x61ncel\x12%.minknow_api.basecaller.CancelRequest\x1a&.minknow_api.basecaller.CancelResponse\"\x03\x90\x02\x02\x12\x62\n\x08get_info\x12&.minknow_api.basecaller.GetInfoRequest\x1a\'.minknow_api.basecaller.GetInfoResponse\"\x03\x90\x02\x01\x30\x01\x12\x66\n\nclear_info\x12(.minknow_api.basecaller.ClearInfoRequest\x1a).minknow_api.basecaller.ClearInfoResponse\"\x03\x90\x02\x02\x12[\n\x05watch\x12$.minknow_api.basecaller.WatchRequest\x1a%.minknow_api.basecaller.WatchResponse\"\x03\x90\x02\x01\x30\x01\x12\x7f\n\x14make_alignment_index\x12\x31.minknow_api.basecaller.MakeAlignmentIndexRequest\x1a\x32.minknow_api.basecaller.MakeAlignmentIndexResponse\"\x00\x12\x9e\x01\n\x1elist_post_processing_protocols\x12:.minknow_api.basecaller.ListPostProcessingProtocolsRequest\x1a;.minknow_api.basecaller.ListPostProcessingProtocolsResponse\"\x03\x90\x02\x02\x12\xbe\x01\n*list_settings_for_post_processing_protocol\x12\x44.minknow_api.basecaller.ListSettingsForPostProcessingProtocolRequest\x1a\x45.minknow_api.basecaller.ListSettingsForPostProcessingProtocolResponse\"\x03\x90\x02\x01\x12\x8b\x01\n(update_post_processing_protocol_progress\x12-.minknow_api.basecaller.UpdateProgressRequest\x1a..minknow_api.basecaller.UpdateProgressResponse\"\x00\x12`\n\tsend_ping\x12\'.minknow_api.basecaller.SendPingRequest\x1a(.minknow_api.basecaller.SendPingResponse\"\x00\x42&\n\x1c\x63om.nanoporetech.minknow_api\xa2\x02\x05MKAPIb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -49,107 +50,151 @@ _globals['_BASECALLER'].methods_by_name['list_post_processing_protocols']._serialized_options = b'\220\002\002' _globals['_BASECALLER'].methods_by_name['list_settings_for_post_processing_protocol']._options = None _globals['_BASECALLER'].methods_by_name['list_settings_for_post_processing_protocol']._serialized_options = b'\220\002\001' - _globals['_STATE']._serialized_start=4771 - _globals['_STATE']._serialized_end=4854 - _globals['_SELECTIONPRESET']._serialized_start=4856 - _globals['_SELECTIONPRESET']._serialized_end=4947 - _globals['_POSTPROCESSINGPROVIDER']._serialized_start=4949 - _globals['_POSTPROCESSINGPROVIDER']._serialized_end=4997 - _globals['_LISTCONFIGSBYKITREQUEST']._serialized_start=231 - _globals['_LISTCONFIGSBYKITREQUEST']._serialized_end=256 - _globals['_LISTCONFIGSBYKITRESPONSE']._serialized_start=259 - _globals['_LISTCONFIGSBYKITRESPONSE']._serialized_end=759 - _globals['_LISTCONFIGSBYKITRESPONSE_CONFIGLIST']._serialized_start=385 - _globals['_LISTCONFIGSBYKITRESPONSE_CONFIGLIST']._serialized_end=414 - _globals['_LISTCONFIGSBYKITRESPONSE_PERFLOWCELL']._serialized_start=417 - _globals['_LISTCONFIGSBYKITRESPONSE_PERFLOWCELL']._serialized_end=641 - _globals['_LISTCONFIGSBYKITRESPONSE_PERFLOWCELL_KITCONFIGSENTRY']._serialized_start=531 - _globals['_LISTCONFIGSBYKITRESPONSE_PERFLOWCELL_KITCONFIGSENTRY']._serialized_end=641 - _globals['_LISTCONFIGSBYKITRESPONSE_FLOWCELLCONFIGSENTRY']._serialized_start=643 - _globals['_LISTCONFIGSBYKITRESPONSE_FLOWCELLCONFIGSENTRY']._serialized_end=759 - _globals['_STARTBASECALLINGREQUEST']._serialized_start=762 - _globals['_STARTBASECALLINGREQUEST']._serialized_end=1255 - _globals['_STARTBASECALLINGRESPONSE']._serialized_start=1257 - _globals['_STARTBASECALLINGRESPONSE']._serialized_end=1295 - _globals['_STARTBARCODINGREQUEST']._serialized_start=1298 - _globals['_STARTBARCODINGREQUEST']._serialized_end=1536 - _globals['_STARTBARCODINGRESPONSE']._serialized_start=1538 - _globals['_STARTBARCODINGRESPONSE']._serialized_end=1574 - _globals['_STARTALIGNMENTREQUEST']._serialized_start=1577 - _globals['_STARTALIGNMENTREQUEST']._serialized_end=1791 - _globals['_STARTALIGNMENTRESPONSE']._serialized_start=1793 - _globals['_STARTALIGNMENTRESPONSE']._serialized_end=1829 - _globals['_STARTPOSTPROCESSINGPROTOCOLREQUEST']._serialized_start=1832 - _globals['_STARTPOSTPROCESSINGPROTOCOLREQUEST']._serialized_end=2294 - _globals['_STARTPOSTPROCESSINGPROTOCOLREQUEST_SETTINGVALUESENTRY']._serialized_start=2173 - _globals['_STARTPOSTPROCESSINGPROTOCOLREQUEST_SETTINGVALUESENTRY']._serialized_end=2294 - _globals['_STARTREQUEST']._serialized_start=2297 - _globals['_STARTREQUEST']._serialized_end=2688 - _globals['_STARTPOSTPROCESSINGPROTOCOLRESPONSE']._serialized_start=2690 - _globals['_STARTPOSTPROCESSINGPROTOCOLRESPONSE']._serialized_end=2739 - _globals['_CANCELREQUEST']._serialized_start=2741 - _globals['_CANCELREQUEST']._serialized_end=2768 - _globals['_CANCELRESPONSE']._serialized_start=2770 - _globals['_CANCELRESPONSE']._serialized_end=2786 - _globals['_RUNINFO']._serialized_start=2789 - _globals['_RUNINFO']._serialized_end=3481 - _globals['_GETINFOREQUEST']._serialized_start=3484 - _globals['_GETINFOREQUEST']._serialized_end=3672 - _globals['_GETINFOREQUEST_IDLIST']._serialized_start=3638 - _globals['_GETINFOREQUEST_IDLIST']._serialized_end=3659 - _globals['_GETINFORESPONSE']._serialized_start=3674 - _globals['_GETINFORESPONSE']._serialized_end=3738 - _globals['_CLEARINFOREQUEST']._serialized_start=3740 - _globals['_CLEARINFOREQUEST']._serialized_end=3771 - _globals['_CLEARINFORESPONSE']._serialized_start=3773 - _globals['_CLEARINFORESPONSE']._serialized_end=3792 - _globals['_WATCHREQUEST']._serialized_start=3794 - _globals['_WATCHREQUEST']._serialized_end=3836 - _globals['_WATCHRESPONSE']._serialized_start=3838 - _globals['_WATCHRESPONSE']._serialized_end=3900 - _globals['_MAKEALIGNMENTINDEXREQUEST']._serialized_start=3902 - _globals['_MAKEALIGNMENTINDEXREQUEST']._serialized_end=3996 - _globals['_MAKEALIGNMENTINDEXRESPONSE']._serialized_start=3998 - _globals['_MAKEALIGNMENTINDEXRESPONSE']._serialized_end=4026 - _globals['_LISTPOSTPROCESSINGPROTOCOLSREQUEST']._serialized_start=4028 - _globals['_LISTPOSTPROCESSINGPROTOCOLSREQUEST']._serialized_end=4064 - _globals['_POSTPROCESSINGPROTOCOLINFO']._serialized_start=4067 - _globals['_POSTPROCESSINGPROTOCOLINFO']._serialized_end=4233 - _globals['_LISTPOSTPROCESSINGPROTOCOLSRESPONSE']._serialized_start=4235 - _globals['_LISTPOSTPROCESSINGPROTOCOLSRESPONSE']._serialized_end=4343 - _globals['_LISTSETTINGSFORPOSTPROCESSINGPROTOCOLREQUEST']._serialized_start=4345 - _globals['_LISTSETTINGSFORPOSTPROCESSINGPROTOCOLREQUEST']._serialized_end=4411 - _globals['_LISTSETTINGSFORPOSTPROCESSINGPROTOCOLRESPONSE']._serialized_start=4414 - _globals['_LISTSETTINGSFORPOSTPROCESSINGPROTOCOLRESPONSE']._serialized_end=4624 - _globals['_UPDATEPROGRESSREQUEST']._serialized_start=4626 - _globals['_UPDATEPROGRESSREQUEST']._serialized_end=4679 - _globals['_UPDATEPROGRESSRESPONSE']._serialized_start=4681 - _globals['_UPDATEPROGRESSRESPONSE']._serialized_end=4705 - _globals['_SENDPINGREQUEST']._serialized_start=4707 - _globals['_SENDPINGREQUEST']._serialized_end=4749 - _globals['_SENDPINGRESPONSE']._serialized_start=4751 - _globals['_SENDPINGRESPONSE']._serialized_end=4769 - _globals['_BASECALLER']._serialized_start=5000 - _globals['_BASECALLER']._serialized_end=6765 -CancelRequest.__doc__ = """Attributes: - id: - An identifier as returned from a call to start() or list(). -""" -SendPingResponse.__doc__ = """Since 5.0""" -ListConfigsByKitResponse.PerFlowCell.__doc__ = """Attributes: - kit_configs: - Key: kit name (eg: "SQK-LSK109") Value: list of configuration - names -""" -StartBarcodingResponse.__doc__ = """Attributes: + _globals['_STATE']._serialized_start=4999 + _globals['_STATE']._serialized_end=5082 + _globals['_SELECTIONPRESET']._serialized_start=5084 + _globals['_SELECTIONPRESET']._serialized_end=5175 + _globals['_POSTPROCESSINGPROVIDER']._serialized_start=5177 + _globals['_POSTPROCESSINGPROVIDER']._serialized_end=5225 + _globals['_LISTCONFIGSBYKITREQUEST']._serialized_start=269 + _globals['_LISTCONFIGSBYKITREQUEST']._serialized_end=294 + _globals['_LISTCONFIGSBYKITRESPONSE']._serialized_start=297 + _globals['_LISTCONFIGSBYKITRESPONSE']._serialized_end=797 + _globals['_LISTCONFIGSBYKITRESPONSE_CONFIGLIST']._serialized_start=423 + _globals['_LISTCONFIGSBYKITRESPONSE_CONFIGLIST']._serialized_end=452 + _globals['_LISTCONFIGSBYKITRESPONSE_PERFLOWCELL']._serialized_start=455 + _globals['_LISTCONFIGSBYKITRESPONSE_PERFLOWCELL']._serialized_end=679 + _globals['_LISTCONFIGSBYKITRESPONSE_PERFLOWCELL_KITCONFIGSENTRY']._serialized_start=569 + _globals['_LISTCONFIGSBYKITRESPONSE_PERFLOWCELL_KITCONFIGSENTRY']._serialized_end=679 + _globals['_LISTCONFIGSBYKITRESPONSE_FLOWCELLCONFIGSENTRY']._serialized_start=681 + _globals['_LISTCONFIGSBYKITRESPONSE_FLOWCELLCONFIGSENTRY']._serialized_end=797 + _globals['_STARTBASECALLINGREQUEST']._serialized_start=800 + _globals['_STARTBASECALLINGREQUEST']._serialized_end=1293 + _globals['_STARTBASECALLINGRESPONSE']._serialized_start=1295 + _globals['_STARTBASECALLINGRESPONSE']._serialized_end=1333 + _globals['_STARTBARCODINGREQUEST']._serialized_start=1336 + _globals['_STARTBARCODINGREQUEST']._serialized_end=1693 + _globals['_STARTBARCODINGREQUEST_OUTPUTFORMAT']._serialized_start=1659 + _globals['_STARTBARCODINGREQUEST_OUTPUTFORMAT']._serialized_end=1693 + _globals['_STARTBARCODINGRESPONSE']._serialized_start=1695 + _globals['_STARTBARCODINGRESPONSE']._serialized_end=1731 + _globals['_STARTALIGNMENTREQUEST']._serialized_start=1734 + _globals['_STARTALIGNMENTREQUEST']._serialized_end=1948 + _globals['_STARTALIGNMENTRESPONSE']._serialized_start=1950 + _globals['_STARTALIGNMENTRESPONSE']._serialized_end=1986 + _globals['_STARTPOSTPROCESSINGPROTOCOLREQUEST']._serialized_start=1989 + _globals['_STARTPOSTPROCESSINGPROTOCOLREQUEST']._serialized_end=2451 + _globals['_STARTPOSTPROCESSINGPROTOCOLREQUEST_SETTINGVALUESENTRY']._serialized_start=2330 + _globals['_STARTPOSTPROCESSINGPROTOCOLREQUEST_SETTINGVALUESENTRY']._serialized_end=2451 + _globals['_STARTREQUEST']._serialized_start=2454 + _globals['_STARTREQUEST']._serialized_end=2916 + _globals['_STARTPOSTPROCESSINGPROTOCOLRESPONSE']._serialized_start=2918 + _globals['_STARTPOSTPROCESSINGPROTOCOLRESPONSE']._serialized_end=2967 + _globals['_CANCELREQUEST']._serialized_start=2969 + _globals['_CANCELREQUEST']._serialized_end=2996 + _globals['_CANCELRESPONSE']._serialized_start=2998 + _globals['_CANCELRESPONSE']._serialized_end=3014 + _globals['_RUNINFO']._serialized_start=3017 + _globals['_RUNINFO']._serialized_end=3709 + _globals['_GETINFOREQUEST']._serialized_start=3712 + _globals['_GETINFOREQUEST']._serialized_end=3900 + _globals['_GETINFOREQUEST_IDLIST']._serialized_start=3866 + _globals['_GETINFOREQUEST_IDLIST']._serialized_end=3887 + _globals['_GETINFORESPONSE']._serialized_start=3902 + _globals['_GETINFORESPONSE']._serialized_end=3966 + _globals['_CLEARINFOREQUEST']._serialized_start=3968 + _globals['_CLEARINFOREQUEST']._serialized_end=3999 + _globals['_CLEARINFORESPONSE']._serialized_start=4001 + _globals['_CLEARINFORESPONSE']._serialized_end=4020 + _globals['_WATCHREQUEST']._serialized_start=4022 + _globals['_WATCHREQUEST']._serialized_end=4064 + _globals['_WATCHRESPONSE']._serialized_start=4066 + _globals['_WATCHRESPONSE']._serialized_end=4128 + _globals['_MAKEALIGNMENTINDEXREQUEST']._serialized_start=4130 + _globals['_MAKEALIGNMENTINDEXREQUEST']._serialized_end=4224 + _globals['_MAKEALIGNMENTINDEXRESPONSE']._serialized_start=4226 + _globals['_MAKEALIGNMENTINDEXRESPONSE']._serialized_end=4254 + _globals['_LISTPOSTPROCESSINGPROTOCOLSREQUEST']._serialized_start=4256 + _globals['_LISTPOSTPROCESSINGPROTOCOLSREQUEST']._serialized_end=4292 + _globals['_POSTPROCESSINGPROTOCOLINFO']._serialized_start=4295 + _globals['_POSTPROCESSINGPROTOCOLINFO']._serialized_end=4461 + _globals['_LISTPOSTPROCESSINGPROTOCOLSRESPONSE']._serialized_start=4463 + _globals['_LISTPOSTPROCESSINGPROTOCOLSRESPONSE']._serialized_end=4571 + _globals['_LISTSETTINGSFORPOSTPROCESSINGPROTOCOLREQUEST']._serialized_start=4573 + _globals['_LISTSETTINGSFORPOSTPROCESSINGPROTOCOLREQUEST']._serialized_end=4639 + _globals['_LISTSETTINGSFORPOSTPROCESSINGPROTOCOLRESPONSE']._serialized_start=4642 + _globals['_LISTSETTINGSFORPOSTPROCESSINGPROTOCOLRESPONSE']._serialized_end=4852 + _globals['_UPDATEPROGRESSREQUEST']._serialized_start=4854 + _globals['_UPDATEPROGRESSREQUEST']._serialized_end=4907 + _globals['_UPDATEPROGRESSRESPONSE']._serialized_start=4909 + _globals['_UPDATEPROGRESSRESPONSE']._serialized_end=4933 + _globals['_SENDPINGREQUEST']._serialized_start=4935 + _globals['_SENDPINGREQUEST']._serialized_end=4977 + _globals['_SENDPINGRESPONSE']._serialized_start=4979 + _globals['_SENDPINGRESPONSE']._serialized_end=4997 + _globals['_BASECALLER']._serialized_start=5228 + _globals['_BASECALLER']._serialized_end=6993 +StartBasecallingResponse.__doc__ = """Attributes: id: An identifier for the basecalling run that was started. This can be used to monitor or cancel the run. """ -StartAlignmentResponse.__doc__ = """Attributes: +RunInfo.__doc__ = """Attributes: id: - An identifier for the alignment run that was started. This can - be used to monitor or cancel the run. + The ID of the run, as returned by start(). + start_request_oneof: + The original message used to start the run. + start_basecalling_request: + Set if basecalling reads + start_barcoding_request: + Set if barcoding reads + start_alignment_request: + Set if aligning reads + start_post_processing_protocol_request: + Set if aligning reads + state: + What state the run is in. While the basecalling is running + the state field will be ``STATE_RUNNING``. + errors: + If state is STATE_ERROR, this will contain (some of) the + errors encountered. Note that if there are a lot of errors, + only some may be returned. + files_discovered: + The number of files selected for input. + progress_current: + The current basecalling progress (with respect to + progress_total). This is intended to be an estimate of how + close to completion the basecalling run is. The numbers have + no particular meaning other than as a proportion of + progress_total. Note that this only really has useful meaning + while state is STATE_RUNNING. On STATE_SUCCESS, it will always + be the same as progress_total. On STATE_ERROR or + STATE_CANCELLED, it may give some indication of how far + through basecalling was when it failed or was cancelled. + progress_total: + The maximum value of progress_current. (progress_current / + progress_total) * 100 will give a percentage completion. If + this is 0, it should be interpreted as "unknown progress". + start_time: + When basecalling was started (UTC). + end_time: + When basecalling ended (UTC). Unset if basecalling is still + running. + estimated_end_time: + An estimate for when basecalling will end (UTC). Unset if + basecalling has finished, or if an estimate cannot be + calculated (eg: because the baescalling software does not + support it). Since 3.6. +""" +WatchResponse.__doc__ = """Attributes: + runs: + The current state of some of the runs. + values: + The values that have changed. The first received message will + contain the current state of all the watched values. + Subsequent messages will only contain the values that changed. + removed_values: + The values that have been removed. """ StartPostProcessingProtocolRequest.__doc__ = """Attributes: identifier: @@ -170,9 +215,59 @@ basecaller.list_settings_for_protocol) keys missing from the original protocol will cause errors. """ -GetInfoResponse.__doc__ = """Attributes: - runs: - Information about the requested runs. +SendPingResponse.__doc__ = """Since 5.0""" +GetInfoRequest.__doc__ = """Attributes: + selection: + The selection of runs to return information about. If no + selection is provided, the call will return all currently- + running basecall runs (as though PRESET_ALL_RUNNING were + selected). + preset: + A pre-determined selection of runs. + id: + An identifier, as returned by start(). + list: + A list of identifiers, as returned by start(). +""" +StartBarcodingRequest.__doc__ = """Attributes: + name: + User specified name to identify the barcoding run. + input_reads_directories: + Input directories to search for reads to be basecalled. + Currently, only one directory can be specified, but this + definition allows for multiple in the future without breaking + compatibility. + output_reads_directory: + Output directory where called reads will be placed. Reads + will be sorted into subdirectories based on the sequencing run + they came from. + compress_fastq: + Enable gzip compression of output FASTQ files. DEPRECATED: + This option does not have any effect - the offline barcoding + no longer has the ability to compress fastq output. + recursive: + Recursively find fast5 files to basecall in the + `input_reads_directories`. If False, only the fast5 files + directly in one of the `input_reads_directories` will be + basecalled. If True, subdirectories of those directories will + also be searched recursively. + barcoding_configuration: + Options to control barcoding performed once basecalling reads + is complete. + output_format: + The type of file format to use for the output, default is BAM. +""" +MakeAlignmentIndexRequest.__doc__ = """Attributes: + input_alignment_reference: + Input fasta reference to use for building the index. + output_alignment_index: + Output file path to write index (mmi file) to. Must have a + ".mmi" extension, and the paths parent directory must exist. +""" +ListConfigsByKitResponse.__doc__ = """Attributes: + flow_cell_configs: + Key: flow cell type (eg: "FLO-MIN107") Value: FlowCellConfigs + describing configurations available for that flow cell. """ StartAlignmentRequest.__doc__ = """Attributes: name: @@ -194,44 +289,9 @@ Options to control alignment performed once basecalling reads is complete. """ -ListConfigsByKitResponse.__doc__ = """Attributes: - flow_cell_configs: - Key: flow cell type (eg: "FLO-MIN107") Value: FlowCellConfigs - describing configurations available for that flow cell. -""" -ListConfigsByKitResponse.ConfigList.__doc__ = """Attributes: - configs: - List of configuration names, to be used in - ``StartBasecallingRequest.configuration`` -""" -WatchRequest.__doc__ = """Attributes: - send_finished_runs: - By default, no information will be sent about runs that were - already finished when this call was made. Setting this to true - will cause the state of already-finished runs to be returned. - names: - The names of the values you wish to watch. - allow_missing: - Whether to allow missing values. If set, names that are not - present in the store will be omitted from the first response, - but will still be watched. If and when they are added, a - message will be sent with the set values. Otherwise, missing - values will cause an immediate error. Defaults to 'false' -""" -WatchResponse.__doc__ = """Attributes: +GetInfoResponse.__doc__ = """Attributes: runs: - The current state of some of the runs. - values: - The values that have changed. The first received message will - contain the current state of all the watched values. - Subsequent messages will only contain the values that changed. - removed_values: - The values that have been removed. -""" -StartPostProcessingProtocolResponse.__doc__ = """Attributes: - id: - An identifier for the protocol run that was started. This can - be used to monitor or cancel the run. + Information about the requested runs. """ StartRequest.__doc__ = """ Protobuf messages for input/output of RPC calls @@ -305,6 +365,19 @@ start_request: Start request that will be used to trigger analysis, used to union over all the different types of analysis possible. + proxy_request: + Since 5.8 +""" +ListSettingsForPostProcessingProtocolRequest.__doc__ = """Attributes: + identifier: + specify the protocol with a string containing all the + protocol's identifying components, eg: + "SYSTEM:post_processing/artic" +""" +ListConfigsByKitResponse.ConfigList.__doc__ = """Attributes: + configs: + List of configuration names, to be used in + ``StartBasecallingRequest.configuration`` """ ListSettingsForPostProcessingProtocolResponse.__doc__ = """Attributes: requires_fast5_input: @@ -316,111 +389,19 @@ protocol_settings: List of protocol settings used by the post processing protocol """ -StartBasecallingResponse.__doc__ = """Attributes: - id: - An identifier for the basecalling run that was started. This - can be used to monitor or cancel the run. -""" -UpdateProgressRequest.__doc__ = """Attributes: - id: - id of the protocol to update (stored in environment variable - for python process) - progress: - Progress indicator, 0-1. -""" -StartBarcodingRequest.__doc__ = """Attributes: - name: - User specified name to identify the barcoding run. - input_reads_directories: - Input directories to search for reads to be basecalled. - Currently, only one directory can be specified, but this - definition allows for multiple in the future without breaking - compatibility. - output_reads_directory: - Output directory where called reads will be placed. Reads - will be sorted into subdirectories based on the sequencing run - they came from. - compress_fastq: - Enable gzip compression of output FASTQ files. - recursive: - Recursively find fast5 files to basecall in the - `input_reads_directories`. If False, only the fast5 files - directly in one of the `input_reads_directories` will be - basecalled. If True, subdirectories of those directories will - also be searched recursively. - barcoding_configuration: - Options to control barcoding performed once basecalling reads - is complete. -""" -MakeAlignmentIndexRequest.__doc__ = """Attributes: - input_alignment_reference: - Input fasta reference to use for building the index. - output_alignment_index: - Output file path to write index (mmi file) to. Must have a - ".mmi" extension, and the paths parent directory must exist. -""" -PostProcessingProtocolInfo.__doc__ = """Attributes: - identifier: - System identifier for the protocol - name: - Readable name for the protocol (appropriate for use as a key - in translation database). Note that this may not be unique: - in particular, the EPI2ME provider lists every version of a - workflow as a separate post-processing protocol. - version: - Protocol version. This might not be set for all protocols or - all providers. - description: - A description of the protocol. - provider: - The source of the post-processing protocol. -""" -RunInfo.__doc__ = """Attributes: - id: - The ID of the run, as returned by start(). - start_request_oneof: - The original message used to start the run. - start_basecalling_request: - Set if basecalling reads - start_barcoding_request: - Set if barcoding reads - start_alignment_request: - Set if aligning reads - start_post_processing_protocol_request: - Set if aligning reads - state: - What state the run is in. While the basecalling is running - the state field will be ``STATE_RUNNING``. - errors: - If state is STATE_ERROR, this will contain (some of) the - errors encountered. Note that if there are a lot of errors, - only some may be returned. - files_discovered: - The number of files selected for input. - progress_current: - The current basecalling progress (with respect to - progress_total). This is intended to be an estimate of how - close to completion the basecalling run is. The numbers have - no particular meaning other than as a proportion of - progress_total. Note that this only really has useful meaning - while state is STATE_RUNNING. On STATE_SUCCESS, it will always - be the same as progress_total. On STATE_ERROR or - STATE_CANCELLED, it may give some indication of how far - through basecalling was when it failed or was cancelled. - progress_total: - The maximum value of progress_current. (progress_current / - progress_total) * 100 will give a percentage completion. If - this is 0, it should be interpreted as "unknown progress". - start_time: - When basecalling was started (UTC). - end_time: - When basecalling ended (UTC). Unset if basecalling is still - running. - estimated_end_time: - An estimate for when basecalling will end (UTC). Unset if - basecalling has finished, or if an estimate cannot be - calculated (eg: because the baescalling software does not - support it). Since 3.6. +WatchRequest.__doc__ = """Attributes: + send_finished_runs: + By default, no information will be sent about runs that were + already finished when this call was made. Setting this to true + will cause the state of already-finished runs to be returned. + names: + The names of the values you wish to watch. + allow_missing: + Whether to allow missing values. If set, names that are not + present in the store will be omitted from the first response, + but will still be watched. If and when they are added, a + message will be sent with the set values. Otherwise, missing + values will cause an immediate error. Defaults to 'false' """ SendPingRequest.__doc__ = """Since 5.0 @@ -432,19 +413,6 @@ Should the ping fail to send, the number of days the ping will be stored before being cleaned up. """ -GetInfoRequest.__doc__ = """Attributes: - selection: - The selection of runs to return information about. If no - selection is provided, the call will return all currently- - running basecall runs (as though PRESET_ALL_RUNNING were - selected). - preset: - A pre-determined selection of runs. - id: - An identifier, as returned by start(). - list: - A list of identifiers, as returned by start(). -""" StartBasecallingRequest.__doc__ = """Attributes: name: User specified name to identify the basecall run. @@ -487,19 +455,61 @@ Options to control alignment performed once basecalling reads is complete. enable_read_splitting: - Enable read splitting in guppy Note: Since 5.9 this option - has no effect, the basecaller is responsible for deciding when - read splitting should be enabled. - min_score_read_splitting: - Override score to use for guppy read splitting. If not - specified a default value is used from guppy. Note: Since 5.9 - this option has no effect, the basecaller is responsible for + Enable read splitting in the basecaller Note: Since 5.9 this + option has no effect, the basecaller is responsible for deciding when read splitting should be enabled. + min_score_read_splitting: + Override score to use for the basecaller read splitting. If + not specified a default value is used from the basecaller. + Note: Since 5.9 this option has no effect, the basecaller is + responsible for deciding when read splitting should be + enabled. """ -ListSettingsForPostProcessingProtocolRequest.__doc__ = """Attributes: +CancelRequest.__doc__ = """Attributes: + id: + An identifier as returned from a call to start() or list(). +""" +StartAlignmentResponse.__doc__ = """Attributes: + id: + An identifier for the alignment run that was started. This can + be used to monitor or cancel the run. +""" +StartBarcodingResponse.__doc__ = """Attributes: + id: + An identifier for the basecalling run that was started. This + can be used to monitor or cancel the run. +""" +UpdateProgressRequest.__doc__ = """Attributes: + id: + id of the protocol to update (stored in environment variable + for python process) + progress: + Progress indicator, 0-1. +""" +PostProcessingProtocolInfo.__doc__ = """Attributes: identifier: - specify the protocol with a string containing all the - protocol's identifying components, eg: - "SYSTEM:post_processing/artic" + System identifier for the protocol + name: + Readable name for the protocol (appropriate for use as a key + in translation database). Note that this may not be unique: + in particular, the EPI2ME provider lists every version of a + workflow as a separate post-processing protocol. + version: + Protocol version. This might not be set for all protocols or + all providers. + description: + A description of the protocol. + provider: + The source of the post-processing protocol. +""" +StartPostProcessingProtocolResponse.__doc__ = """Attributes: + id: + An identifier for the protocol run that was started. This can + be used to monitor or cancel the run. +""" +ListConfigsByKitResponse.PerFlowCell.__doc__ = """Attributes: + kit_configs: + Key: kit name (eg: "SQK-LSK109") Value: list of configuration + names """ # @@protoc_insertion_point(module_scope) diff --git a/python/minknow_api/basecaller_service.py b/python/minknow_api/basecaller_service.py index b3fe0eb..1980a0e 100644 --- a/python/minknow_api/basecaller_service.py +++ b/python/minknow_api/basecaller_service.py @@ -166,11 +166,11 @@ def start_basecalling(self, _message=None, _timeout=None, **kwargs): basecalled. If True, subdirectories of those directories will also be searched recursively. barcoding_configuration (minknow_api.analysis_configuration_pb2.BarcodingConfiguration, optional): Options to control barcoding performed once basecalling reads is complete. alignment_configuration (minknow_api.analysis_configuration_pb2.AlignmentConfiguration, optional): Options to control alignment performed once basecalling reads is complete. - enable_read_splitting (bool, optional): Enable read splitting in guppy + enable_read_splitting (bool, optional): Enable read splitting in the basecaller Note: Since 5.9 this option has no effect, the basecaller is responsible for deciding when read splitting should be enabled. - min_score_read_splitting (google.protobuf.wrappers_pb2.FloatValue, optional): Override score to use for guppy read splitting. If not specified a default value - is used from guppy. + min_score_read_splitting (google.protobuf.wrappers_pb2.FloatValue, optional): Override score to use for the basecaller read splitting. If not specified a default value + is used from the basecaller. Note: Since 5.9 this option has no effect, the basecaller is responsible for deciding when read splitting should be enabled. @@ -268,11 +268,14 @@ def start_barcoding(self, _message=None, _timeout=None, **kwargs): Reads will be sorted into subdirectories based on the sequencing run they came from. compress_fastq (bool, optional): Enable gzip compression of output FASTQ files. + + DEPRECATED: This option does not have any effect - the offline barcoding no longer has the ability to compress fastq output. recursive (bool, optional): Recursively find fast5 files to basecall in the `input_reads_directories`. If False, only the fast5 files directly in one of the `input_reads_directories` will be basecalled. If True, subdirectories of those directories will also be searched recursively. barcoding_configuration (minknow_api.analysis_configuration_pb2.BarcodingConfiguration, optional): Options to control barcoding performed once basecalling reads is complete. + output_format (minknow_api.basecaller_pb2.StartBarcodingRequest.OutputFormat, optional): The type of file format to use for the output, default is BAM. Returns: minknow_api.basecaller_pb2.StartBarcodingResponse @@ -316,6 +319,10 @@ def start_barcoding(self, _message=None, _timeout=None, **kwargs): unused_args.remove("barcoding_configuration") _message.barcoding_configuration.CopyFrom(kwargs['barcoding_configuration']) + if "output_format" in kwargs: + unused_args.remove("output_format") + _message.output_format = kwargs['output_format'] + if len(unused_args) > 0: raise ArgumentError("Unexpected keyword arguments to start_barcoding: '{}'".format(", ".join(unused_args))) diff --git a/python/minknow_api/ca.crt b/python/minknow_api/ca.crt index 113c4e3..8b04cc1 100644 --- a/python/minknow_api/ca.crt +++ b/python/minknow_api/ca.crt @@ -1,32 +1,32 @@ -----BEGIN CERTIFICATE----- -MIIFmTCCA4ECFFamKlXa8ji/56XShwpuujncwwPUMA0GCSqGSIb3DQEBCwUAMIGI -MQswCQYDVQQGEwJHQjEUMBIGA1UECAwLT3hmb3Jkc2hpcmUxDzANBgNVBAcMBk94 -Zm9yZDEpMCcGA1UECgwgT3hmb3JkIE5hbm9wb3JlIFRlY2hub2xvZ2llcyBMdGQx -FTATBgNVBAsMDE1pbktOT1cgUlBDczEQMA4GA1UEAwwHUm9vdCBDQTAeFw0yMDEw -MTIxMTA5MjJaFw0yODEwMTAxMTA5MjJaMIGIMQswCQYDVQQGEwJHQjEUMBIGA1UE -CAwLT3hmb3Jkc2hpcmUxDzANBgNVBAcMBk94Zm9yZDEpMCcGA1UECgwgT3hmb3Jk -IE5hbm9wb3JlIFRlY2hub2xvZ2llcyBMdGQxFTATBgNVBAsMDE1pbktOT1cgUlBD -czEQMA4GA1UEAwwHUm9vdCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC -ggIBAKxJYD9q+FTlPEX8GFLzIBdAAwrrRZgSGyWwk1K4YNqF6a5crQqROK605lKv -dVqrsisBEGyghma1ldcT9OWenzhsjolGRq643O1bHxMKg+Nw0OKZinc4jIWeGlaC -enjidaYJLz9FdUPxjfidERyn/lsYNJeickutS7kZPPtj1zm1KdKd7dhiNL4+Y39R -dEuAfP33ordFYCSegGO260DQDEu7iDjopWXfLozKGKPbHfsict3O2uveVS28hui8 -uIX4VudKbHgeu0rV9tLLMZCYbrUEcQ8pk1LXb3ub4iitxyTmUE5jcEgWV2ndR1IF -ktTGZYQ1rB+4FmHekKI82gZH44XzR/lCypF1hhyeOc/x4HPQ4vnHSwRTtVBt5rlt -GqjIF3zIVBWG859558tNiCAIsZRHrURA9JNOhZ1DrR/N40kGyUMlaNrST0/3OSca -vgOBQqTo2sPJSFLRMbW44Do1acgaVpo4IgxrFsPIZBz9V5UCmKYHeaE0JdnR9qT/ -7KkTewc7h9el+xhsQVkthljgOoW6kFXmK7azaPBD2fBdAuWNv55LDrOcGZ2NUNxP -1UGCYxX28keP0b43ukYU9W8GlFnEMxkTAwMnrN7HePRbQaTELeDaNnZjWAO/GiMG -4LYo2BF3lRFGsCuhomjOJH5OwHy1+H1MblX7yBolwY3WJ4bDAgMBAAEwDQYJKoZI -hvcNAQELBQADggIBAB92qj0x5PjXoGh2115HQu5RJnWBZzbvc25xLH7ENW29DOnb -FVk1Pe1uJLgzMRqVOdORch/2wORCLhX++jpSezTE1pFhZ3Yyz89nYuCRNammSEjZ -8N9rtsFDve42z1JHqk8/fs+c18OGyvWZfDkuAIiAHuQmIskGXR/JUJPH4WzMB03M -50L7M+Q5BghjcVSV0r39rbW2zuEL4YFubEcNbRg9nDgf6YlzQdwShPFgWCDWEWPs -BDFgGbJhuoEgcgQGKDDqtOLtz8bRmoBaJdoscQ1ccUyR2B7rBevfVd/Ha/L6DN52 -3l6q50obPwIok3ySYTx8tSmVQnlnX19ZGDOnzCB/OIOMz94XvKgVpUd+x9ea7g+A -cNxIxl/wFYNIVbqeUf8ZaIDAvFydz3cdN50ddvHvRZcIGSm1PUhZCYEPrFsDy9Jk -8P9Rbm5V9cPoDjpsEHT9DOpO/f+eZKdSeVENeMvSiW/RioQRDxl3jbY2r+xwkzdP -cVhaEB7UtSh+fAVvgVmppf2FeLWz34RnjJUO1ju7NLZCOpYdEVBa/FTkFrZVb0WB -fPeU8VQ8bLRtdtm19yATP0DmHoB/kKFO61fVitYdbfTIXJ+yxkIl54kt39aBdTxY -RsnPFa5siUeODotilGUTzXobIQH1ulpXZXVwkKKgYLdoyK4IsDaY1yHBcP6h +MIIFjjCCA3YCCQCgsDLlobMFZTANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMC +R0IxFDASBgNVBAgMC094Zm9yZHNoaXJlMQ8wDQYDVQQHDAZPeGZvcmQxKTAnBgNV +BAoMIE94Zm9yZCBOYW5vcG9yZSBUZWNobm9sb2dpZXMgcGxjMRUwEwYDVQQLDAxN +aW5LTk9XIFJQQ3MxEDAOBgNVBAMMB1Jvb3QgQ0EwHhcNMjQwMjIyMTU1NTQ4WhcN +MzIwMjIwMTU1NTQ4WjCBiDELMAkGA1UEBhMCR0IxFDASBgNVBAgMC094Zm9yZHNo +aXJlMQ8wDQYDVQQHDAZPeGZvcmQxKTAnBgNVBAoMIE94Zm9yZCBOYW5vcG9yZSBU +ZWNobm9sb2dpZXMgcGxjMRUwEwYDVQQLDAxNaW5LTk9XIFJQQ3MxEDAOBgNVBAMM +B1Jvb3QgQ0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDvUOby4B55 +6cQxxQ8rZkegOwEZNH4m1mF4mVTFdYBUVVS4HLGTH6si5n0M09FOM0lcz7KmMG0E +7Dc4JuE1fWHk+EsSCBotFa2TWkFjqccWxa2TY3wGQx2XRdGAuyZtg1tGjDrVBhMG +ZDjf3B4rxq7WtKw3PHrUDzmPS+qRNi3A0iSZY+acLD9Vk5JLoDP3LL8+j+noQMgM +Gx9wnwmZdNV9VvrmCoRkLDPG4VPPaSEQWV0SpkzkHbyjzVUHXeSTIohlm7Cky87K +4r4FI3xOsIldCHx8h4qd+GGNvsik1vajcWhjqWuV+hjEL5tqYj+mQ/hlEqYnWqwe +cCQnVfcDuEuBz9LCyqmHSBVoYgKId39Yy+TxIh88gdnMcrT1gi7JXrM42wJLF1wN +dYphqMsa7VpUqcBwc00iNiAC8Tx01RcKNDmQ//VZoZGg7Ww5/bs1Br8KCWBAGvAN +iR2W7e2IwzP0Yrt2sv1Nq6l0Sf+INameH3TIYE4TpLilUmPDiVVAjJ1G1Q2eXgl/ +tWsjkWv3G/oOjamRITTr3MJktGpMt+Nq8agPBiI7PkYIycdZyqjVUrGI8usXKIFg +xKNOGasWmMyCsTmRKB+8mWC625wmZ3wIeZpNTxoBungJ5QJYkwk/VDDER3xZP8DD +uaO2XOKlDsmbslqQ/v9xa28yDCJOza83JwIDAQABMA0GCSqGSIb3DQEBCwUAA4IC +AQCYuK2gPdmzxARLFyIR242CBNLZVVstyHjHfT1XNh/4A8JVqb6IQFj60GRIghVF +2xaakgrHZanEq7lwbyz6NNDWAhXYoAR57tlDhdlOHWa5RaDsluECT8DLWWSL8k2q +clUYJqHFSuYr21FI9X0zESCr447KPofHkpIqqRGEQqnAGdJ/4cl0nOXvIX4THNIk +O5ikpdS2RcySOO9LgXrlr4NlGwxfP9LSaZQL0LECXp+j5CI3T1CUXPM/M/VZWm3j +S4ukWRdU4cRic+eo1DLVdsLpTcni4g6RcWOp9WmGfiZshSHcqQPTHjEpxDWOf9Pi +k3JLn9VeBu/n8AyOilQSQbdpC7UrSvbT+C2xuVcMgjYdz33AmILXUbgIqkw+HijG +QO3YqNZaYyQke6xkL74221OgdFrIp8CKLkE76EnNEb7WJOS2PDqpffWBEUJjJZA7 +/jGZCxREXtiZl4BGvaZdZ8ParbqhAss27HMYFr1fbMsfLfYohtRW/V1mXgaVs/ZI +S8sSXQVbpKlDOQDNBAA+dr+5HGW99zmWovU86vi7qKXfYH8ZZZB+qF+7gzmshLjy +PV/jhEI1+194xW60HsHcNbjE8Yp5tSiSW7xTWReOyBGtpyU9CP7sDhaTsu1AkmDC +R5U+u6p7EP6vJIGRV8ROlDiGjQ5sAvS6WDitLtpLhI5rJQ== -----END CERTIFICATE----- diff --git a/python/minknow_api/data_pb2.py b/python/minknow_api/data_pb2.py index 5f2e73a..9373ca3 100644 --- a/python/minknow_api/data_pb2.py +++ b/python/minknow_api/data_pb2.py @@ -19,7 +19,7 @@ from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x16minknow_api/data.proto\x12\x10minknow_api.data\x1a\x1dminknow_api/rpc_options.proto\x1a\x18minknow_api/device.proto\x1a\x1cminknow_api/statistics.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1egoogle/protobuf/wrappers.proto\"\xd9\x01\n\x17GetChannelStatesRequest\x12\x1b\n\rfirst_channel\x18\x01 \x01(\rB\x04\x88\xb5\x18\x01\x12\x1a\n\x0clast_channel\x18\x02 \x01(\rB\x04\x88\xb5\x18\x01\x12:\n\x16use_channel_states_ids\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x1b\n\x13wait_for_processing\x18\x04 \x01(\x08\x12,\n\theartbeat\x18\x05 \x01(\x0b\x32\x19.google.protobuf.Duration\"\xdb\x02\n\x18GetChannelStatesResponse\x12S\n\x0e\x63hannel_states\x18\x01 \x03(\x0b\x32;.minknow_api.data.GetChannelStatesResponse.ChannelStateData\x1a\xe9\x01\n\x10\x43hannelStateData\x12\x0f\n\x07\x63hannel\x18\x01 \x01(\r\x12\x12\n\x08state_id\x18\x02 \x01(\rH\x00\x12\x14\n\nstate_name\x18\x03 \x01(\tH\x00\x12\x1d\n\x15\x61\x63quisition_raw_index\x18\x04 \x01(\x04\x12\x1a\n\x12\x61nalysis_raw_index\x18\x05 \x01(\x04\x12\x14\n\x0ctrigger_time\x18\x07 \x01(\x04\x12@\n\x06\x63onfig\x18\x06 \x01(\x0b\x32\x30.minknow_api.device.ReturnedChannelConfigurationB\x07\n\x05state\"\x15\n\x13GetDataTypesRequest\"\xb1\x03\n\x14GetDataTypesResponse\x12L\n\x13uncalibrated_signal\x18\x01 \x01(\x0b\x32/.minknow_api.data.GetDataTypesResponse.DataType\x12J\n\x11\x63\x61librated_signal\x18\x02 \x01(\x0b\x32/.minknow_api.data.GetDataTypesResponse.DataType\x12\x46\n\rbias_voltages\x18\x03 \x01(\x0b\x32/.minknow_api.data.GetDataTypesResponse.DataType\x1a\xb6\x01\n\x08\x44\x61taType\x12\x42\n\x04type\x18\x01 \x01(\x0e\x32\x34.minknow_api.data.GetDataTypesResponse.DataType.Type\x12\x12\n\nbig_endian\x18\x02 \x01(\x08\x12\x0c\n\x04size\x18\x03 \x01(\r\"D\n\x04Type\x12\x12\n\x0eSIGNED_INTEGER\x10\x00\x12\x14\n\x10UNSIGNED_INTEGER\x10\x01\x12\x12\n\x0e\x46LOATING_POINT\x10\x02\"\xf8\x01\n\x15GetSignalBytesRequest\x12\x11\n\x07seconds\x18\x01 \x01(\x02H\x00\x12\x11\n\x07samples\x18\x02 \x01(\rH\x00\x12\x1b\n\rfirst_channel\x18\x03 \x01(\rB\x04\x88\xb5\x18\x01\x12\x1a\n\x0clast_channel\x18\x04 \x01(\rB\x04\x88\xb5\x18\x01\x12\x1f\n\x17include_channel_configs\x18\x05 \x01(\x08\x12\x1d\n\x15include_bias_voltages\x18\x06 \x01(\x08\x12\x17\n\x0f\x63\x61librated_data\x18\x07 \x01(\x08\x12\x1d\n\x15return_when_listening\x18\x08 \x01(\x08\x42\x08\n\x06length\"\xa7\x03\n\x16GetSignalBytesResponse\x12\x1b\n\x13samples_since_start\x18\x01 \x01(\x04\x12\x1b\n\x13seconds_since_start\x18\x02 \x01(\x01\x12\x18\n\x10skipped_channels\x18\x03 \x01(\r\x12\x46\n\x08\x63hannels\x18\x04 \x03(\x0b\x32\x34.minknow_api.data.GetSignalBytesResponse.ChannelData\x12\x15\n\rbias_voltages\x18\x05 \x01(\x0c\x1ag\n\x13\x43hannelConfigChange\x12@\n\x06\x63onfig\x18\x01 \x01(\x0b\x32\x30.minknow_api.device.ReturnedChannelConfiguration\x12\x0e\n\x06offset\x18\x02 \x01(\x04\x1aq\n\x0b\x43hannelData\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\x12T\n\x0e\x63onfig_changes\x18\x03 \x03(\x0b\x32<.minknow_api.data.GetSignalBytesResponse.ChannelConfigChange\"\x85\x01\n\x16GetSignalMinMaxRequest\x12\x1b\n\rfirst_channel\x18\x03 \x01(\rB\x04\x88\xb5\x18\x01\x12\x1a\n\x0clast_channel\x18\x04 \x01(\rB\x04\x88\xb5\x18\x01\x12\x19\n\x0bwindow_size\x18\x05 \x01(\rB\x04\x88\xb5\x18\x01\x12\x17\n\x0f\x63\x61librated_data\x18\x07 \x01(\x08\"\xa3\x02\n\x17GetSignalMinMaxResponse\x12\x1b\n\x13samples_since_start\x18\x01 \x01(\x04\x12\x1b\n\x13seconds_since_start\x18\x02 \x01(\x01\x12\x18\n\x10skipped_channels\x18\x03 \x01(\r\x12G\n\x08\x63hannels\x18\x04 \x03(\x0b\x32\x35.minknow_api.data.GetSignalMinMaxResponse.ChannelData\x1ak\n\x0b\x43hannelData\x12\x19\n\x11\x63\x61librated_minima\x18\x01 \x03(\x02\x12\x12\n\nraw_minima\x18\x02 \x03(\x05\x12\x19\n\x11\x63\x61librated_maxima\x18\x03 \x03(\x02\x12\x12\n\nraw_maxima\x18\x04 \x03(\x05\"\xb6\x07\n\x13GetLiveReadsRequest\x12\x42\n\x05setup\x18\x01 \x01(\x0b\x32\x31.minknow_api.data.GetLiveReadsRequest.StreamSetupH\x00\x12@\n\x07\x61\x63tions\x18\x02 \x01(\x0b\x32-.minknow_api.data.GetLiveReadsRequest.ActionsH\x00\x1a!\n\rUnblockAction\x12\x10\n\x08\x64uration\x18\x01 \x01(\x01\x1a\x11\n\x0fStopFurtherData\x1a\xfa\x01\n\x06\x41\x63tion\x12\x11\n\taction_id\x18\x01 \x01(\t\x12\x0f\n\x07\x63hannel\x18\x02 \x01(\r\x12\x0c\n\x02id\x18\x03 \x01(\tH\x00\x12\x10\n\x06number\x18\x04 \x01(\rH\x00\x12\x46\n\x07unblock\x18\x05 \x01(\x0b\x32\x33.minknow_api.data.GetLiveReadsRequest.UnblockActionH\x01\x12R\n\x11stop_further_data\x18\x06 \x01(\x0b\x32\x35.minknow_api.data.GetLiveReadsRequest.StopFurtherDataH\x01\x42\x06\n\x04readB\x08\n\x06\x61\x63tion\x1a\xc6\x02\n\x0bStreamSetup\x12\x15\n\rfirst_channel\x18\x01 \x01(\r\x12\x14\n\x0clast_channel\x18\x02 \x01(\r\x12H\n\rraw_data_type\x18\x03 \x01(\x0e\x32\x31.minknow_api.data.GetLiveReadsRequest.RawDataType\x12!\n\x19sample_minimum_chunk_size\x18\x04 \x01(\x04\x12)\n\x1fmax_unblock_read_length_samples\x18\x05 \x01(\x04H\x00\x12)\n\x1fmax_unblock_read_length_seconds\x18\x06 \x01(\x01H\x00\x12,\n$accepted_first_chunk_classifications\x18\x07 \x03(\x05\x42\x19\n\x17max_unblock_read_length\x1aH\n\x07\x41\x63tions\x12=\n\x07\x61\x63tions\x18\x02 \x03(\x0b\x32,.minknow_api.data.GetLiveReadsRequest.Action\"H\n\x0bRawDataType\x12\r\n\tKEEP_LAST\x10\x00\x12\x08\n\x04NONE\x10\x01\x12\x0e\n\nCALIBRATED\x10\x02\x12\x10\n\x0cUNCALIBRATED\x10\x03\x42\t\n\x07request\"\xc8\x06\n\x14GetLiveReadsResponse\x12\x1b\n\x13samples_since_start\x18\x01 \x01(\x04\x12\x1b\n\x13seconds_since_start\x18\x02 \x01(\x01\x12\x46\n\x08\x63hannels\x18\x04 \x03(\x0b\x32\x34.minknow_api.data.GetLiveReadsResponse.ChannelsEntry\x12O\n\x10\x61\x63tion_responses\x18\x05 \x03(\x0b\x32\x35.minknow_api.data.GetLiveReadsResponse.ActionResponse\x1a\xb5\x02\n\x08ReadData\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0e\n\x06number\x18\x02 \x01(\r\x12\x14\n\x0cstart_sample\x18\x03 \x01(\x04\x12\x1a\n\x12\x63hunk_start_sample\x18\x04 \x01(\x04\x12\x14\n\x0c\x63hunk_length\x18\x05 \x01(\x04\x12\x1d\n\x15\x63hunk_classifications\x18\x06 \x03(\x05\x12\x10\n\x08raw_data\x18\x07 \x01(\x0c\x12\x15\n\rmedian_before\x18\x08 \x01(\x02\x12\x0e\n\x06median\x18\t \x01(\x02\x12$\n\x1cprevious_read_classification\x18\n \x01(\x05\x12G\n\x18previous_read_end_reason\x18\x0b \x01(\x0e\x32%.minknow_api.statistics.ReadEndReason\x1a\xc2\x01\n\x0e\x41\x63tionResponse\x12\x11\n\taction_id\x18\x01 \x01(\t\x12P\n\x08response\x18\x02 \x01(\x0e\x32>.minknow_api.data.GetLiveReadsResponse.ActionResponse.Response\"K\n\x08Response\x12\x0b\n\x07SUCCESS\x10\x00\x12\x18\n\x14\x46\x41ILED_READ_FINISHED\x10\x01\x12\x18\n\x14\x46\x41ILED_READ_TOO_LONG\x10\x02\x1a`\n\rChannelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12>\n\x05value\x18\x02 \x01(\x0b\x32/.minknow_api.data.GetLiveReadsResponse.ReadData:\x02\x38\x01\"\x1b\n\x19ResetChannelStatesRequest\"\x1c\n\x1aResetChannelStatesResponse\"\xb8\x02\n\x18GetReadStatisticsRequest\x12\x10\n\x08\x63hannels\x18\x01 \x03(\r\x12\x11\n\x07seconds\x18\x02 \x01(\x02H\x00\x12\x11\n\x07samples\x18\x03 \x01(\x04H\x00\x12N\n\nread_split\x18\x04 \x01(\x0e\x32\x34.minknow_api.data.GetReadStatisticsRequest.ReadSplitB\x04\x88\xb5\x18\x01\x12\x1d\n\x15no_current_statistics\x18\x05 \x01(\x08\x12\x1b\n\x13no_chunk_statistics\x18\x06 \x01(\x08\x12 \n\x18required_classifications\x18\x07 \x03(\t\"*\n\tReadSplit\x12\t\n\x05\x43HUNK\x10\x00\x12\x12\n\x0e\x43OMPLETED_READ\x10\x01\x42\n\n\x08\x64uration\"\xe4\n\n\x19GetReadStatisticsResponse\x12L\n\x08\x63hannels\x18\x01 \x03(\x0b\x32:.minknow_api.data.GetReadStatisticsResponse.PerChannelData\x12\x1b\n\x13samples_since_start\x18\x02 \x01(\x04\x12\x1b\n\x13seconds_since_start\x18\x03 \x01(\x01\x1a\xa4\x01\n\nStatistics\x12\x0b\n\x03min\x18\x01 \x01(\x01\x12\x0b\n\x03max\x18\x02 \x01(\x01\x12\x0c\n\x04mean\x18\x03 \x01(\x01\x12\x0b\n\x03s_d\x18\x04 \x01(\x01\x12\x0e\n\x06median\x18\x06 \x01(\x01\x12\x0b\n\x03q_5\x18\x07 \x01(\x01\x12\x0c\n\x04q_10\x18\x08 \x01(\x01\x12\x0c\n\x04q_25\x18\t \x01(\x01\x12\x0c\n\x04q_75\x18\n \x01(\x01\x12\x0c\n\x04q_90\x18\x0b \x01(\x01\x12\x0c\n\x04q_95\x18\x0c \x01(\x01\x1a\x43\n\x0f\x43hunkStatistics\x12\x11\n\tmedian_sd\x18\x01 \x01(\x01\x12\x0e\n\x06median\x18\x02 \x01(\x01\x12\r\n\x05range\x18\x03 \x01(\x01\x1a\xcb\x02\n\x15PerClassificationData\x12S\n\x13\x64uration_statistics\x18\x01 \x01(\x0b\x32\x36.minknow_api.data.GetReadStatisticsResponse.Statistics\x12R\n\x12\x63urrent_statistics\x18\x02 \x01(\x0b\x32\x36.minknow_api.data.GetReadStatisticsResponse.Statistics\x12U\n\x10\x63hunk_statistics\x18\x06 \x01(\x0b\x32;.minknow_api.data.GetReadStatisticsResponse.ChunkStatistics\x12\x18\n\x10samples_duration\x18\x04 \x01(\x04\x12\x18\n\x10seconds_duration\x18\x05 \x01(\x01\x1a\xa9\x03\n\x14PerConfigurationData\x12O\n\x15\x63hannel_configuration\x18\x01 \x01(\x0b\x32\x30.minknow_api.device.ReturnedChannelConfiguration\x12n\n\x0f\x63lassifications\x18\x02 \x03(\x0b\x32U.minknow_api.data.GetReadStatisticsResponse.PerConfigurationData.ClassificationsEntry\x12U\n\nincomplete\x18\x03 \x01(\x0b\x32\x41.minknow_api.data.GetReadStatisticsResponse.PerClassificationData\x1ay\n\x14\x43lassificationsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12P\n\x05value\x18\x02 \x01(\x0b\x32\x41.minknow_api.data.GetReadStatisticsResponse.PerClassificationData:\x02\x38\x01\x1a\xd8\x01\n\x0ePerChannelData\x12X\n\x0e\x63onfigurations\x18\x06 \x03(\x0b\x32@.minknow_api.data.GetReadStatisticsResponse.PerConfigurationData\x12\x1b\n\x13samples_since_start\x18\x02 \x01(\x04\x12\x1b\n\x13seconds_since_start\x18\x03 \x01(\x01\x12\x18\n\x10samples_duration\x18\x04 \x01(\x04\x12\x18\n\x10seconds_duration\x18\x05 \x01(\x01\"L\n\x18LockChannelStatesRequest\x12\x16\n\x08\x63hannels\x18\x01 \x03(\x04\x42\x04\x88\xb5\x18\x01\x12\x18\n\nstate_name\x18\x02 \x01(\tB\x04\x88\xb5\x18\x01\"\x1b\n\x19LockChannelStatesResponse\"4\n\x1aUnlockChannelStatesRequest\x12\x16\n\x08\x63hannels\x18\x01 \x03(\x04\x42\x04\x88\xb5\x18\x01\"\x1d\n\x1bUnlockChannelStatesResponse\"\x1f\n\x1dGetExperimentYieldInfoRequest\"\x84\x1c\n\x1eGetExperimentYieldInfoResponse\x12]\n\x12\x63omplete_read_info\x18\x01 \x01(\x0b\x32\x41.minknow_api.data.GetExperimentYieldInfoResponse.CompleteReadInfo\x12Z\n\x10\x61\x63quisition_info\x18\x02 \x01(\x0b\x32@.minknow_api.data.GetExperimentYieldInfoResponse.AcquisitionInfo\x12T\n\ranalyser_info\x18\x03 \x01(\x0b\x32=.minknow_api.data.GetExperimentYieldInfoResponse.AnalyserInfo\x12L\n\tbulk_info\x18\x04 \x01(\x0b\x32\x39.minknow_api.data.GetExperimentYieldInfoResponse.BulkInfo\x12W\n\x0fhdf_writer_info\x18\x05 \x01(\x0b\x32>.minknow_api.data.GetExperimentYieldInfoResponse.HdfWriterInfo\x12\x62\n\x15\x62\x61secaller_statistics\x18\x06 \x01(\x0b\x32\x43.minknow_api.data.GetExperimentYieldInfoResponse.BasecallStatistics\x12z\n\"hdf_multi_read_writing_statisitics\x18\x07 \x01(\x0b\x32N.minknow_api.data.GetExperimentYieldInfoResponse.HdfMultiReadWritingStatistics\x12r\n\x1d\x66\x61stq_read_writing_statistics\x18\x08 \x01(\x0b\x32K.minknow_api.data.GetExperimentYieldInfoResponse.FastqReadWritingStatistics\x12x\n protobuf_read_writing_statistics\x18\t \x01(\x0b\x32N.minknow_api.data.GetExperimentYieldInfoResponse.ProtobufReadWritingStatistics\x12r\n\x1d\x66ile_operation_queue_progress\x18\n \x01(\x0b\x32K.minknow_api.data.GetExperimentYieldInfoResponse.FileOperationQueueProgress\x1a\xa8\x04\n\x10\x43ompleteReadInfo\x12\x16\n\x0epending_chunks\x18\x01 \x01(\x04\x12\x1c\n\x14pending_memory_reads\x18\x02 \x01(\x04\x12\x1a\n\x12pending_disk_reads\x18\x0f \x01(\x04\x12 \n\x18pending_multi_disk_reads\x18\x03 \x01(\x04\x12\x1d\n\x15pending_skipped_reads\x18\x04 \x01(\x04\x12#\n\x1bpending_force_skipped_reads\x18\x05 \x01(\x04\x12\x1e\n\x16processed_memory_reads\x18\x06 \x01(\x04\x12\x1c\n\x14processed_disk_reads\x18\x07 \x01(\x04\x12\x1f\n\x17processed_skipped_reads\x18\x08 \x01(\x04\x12%\n\x1dprocessed_force_skipped_reads\x18\t \x01(\x04\x12!\n\x19stored_reads_bytes_memory\x18\n \x01(\x04\x12+\n#stored_read_supporting_bytes_memory\x18\x10 \x01(\x04\x12\x1f\n\x17stored_reads_bytes_disk\x18\x0b \x01(\x04\x12\x1d\n\x15\x64iscarded_error_bytes\x18\x0c \x01(\x04\x12 \n\x18\x63hannels_writing_to_disk\x18\r \x01(\x04\x12$\n\x1c\x63hannels_writing_to_disk_tmp\x18\x0e \x01(\x04\x1aI\n\x0f\x41\x63quisitionInfo\x12\x17\n\x0fraw_per_channel\x18\x01 \x01(\x04\x12\x1d\n\x15\x66rame_discontinuities\x18\x02 \x01(\x04\x1a\xe5\x01\n\x0c\x41nalyserInfo\x12\x17\n\x0fraw_per_channel\x18\x01 \x01(\x04\x12\x1a\n\x12total_selected_raw\x18\x02 \x01(\x04\x12\x1d\n\x15total_selected_events\x18\x03 \x01(\x04\x12\x14\n\x0ctotal_events\x18\x04 \x01(\x04\x12\x19\n\x11total_read_chunks\x18\x05 \x01(\x04\x12&\n\x1e\x63ompleted_selected_reads_count\x18\x06 \x01(\x04\x12(\n completed_unselected_reads_count\x18\x07 \x01(\x04\x1a\x33\n\x08\x42ulkInfo\x12\x11\n\ttotal_raw\x18\x01 \x01(\x04\x12\x14\n\x0ctotal_events\x18\x02 \x01(\x04\x1a\xa0\x01\n\rHdfWriterInfo\x12\x1c\n\x14pending_compressions\x18\x01 \x01(\x04\x12\x16\n\x0epending_writes\x18\x02 \x01(\x04\x12\x19\n\x11pending_hdf_tasks\x18\x03 \x01(\x04\x12\x18\n\x10\x63ompleted_writes\x18\x04 \x01(\x04\x12$\n\x1c\x64\x61taset_bytes_data_in_flight\x18\x05 \x01(\x04\x1a\xd9\x02\n\x12\x42\x61secallStatistics\x12\x19\n\x11reads_in_progress\x18\x01 \x01(\x04\x12\x17\n\x0freads_processed\x18\x02 \x01(\x04\x12\x15\n\rreads_skipped\x18\x03 \x01(\x04\x12\x1b\n\x13reads_force_skipped\x18\x04 \x01(\x04\x12%\n\x1dreads_failed_calling_filtered\x18\x05 \x01(\x04\x12\x1c\n\x14reads_failed_calling\x18\x06 \x01(\x04\x12\x14\n\x0creads_called\x18\x07 \x01(\x04\x12\x16\n\x0esamples_called\x18\x08 \x01(\x04\x12\x17\n\x0fsamples_skipped\x18\t \x01(\x04\x12\x1b\n\x13\x62\x61ses_passed_called\x18\n \x01(\x04\x12\x1b\n\x13\x62\x61ses_failed_called\x18\x0c \x01(\x04\x12\x15\n\revents_called\x18\x0b \x01(\x04\x1a\xf6\x01\n\x1dHdfMultiReadWritingStatistics\x12\x15\n\rreads_written\x18\x01 \x01(\x04\x12\x1c\n\x14passed_reads_written\x18\x02 \x01(\x04\x12\x1c\n\x14\x66\x61iled_reads_written\x18\x03 \x01(\x04\x12#\n\x1b\x66orce_skipped_reads_written\x18\x04 \x01(\x04\x12\x19\n\x11raw_bytes_written\x18\x05 \x01(\x04\x12\x1b\n\x13\x66\x61stq_bytes_written\x18\x06 \x01(\x04\x12%\n\x1d\x62\x61secall_events_bytes_written\x18\x07 \x01(\x04\x1a\xa7\x01\n\x1a\x46\x61stqReadWritingStatistics\x12\x1c\n\x14passed_reads_written\x18\x01 \x01(\x04\x12\x15\n\rskipped_reads\x18\x02 \x01(\x04\x12\x16\n\x0e\x66orced_skipped\x18\x03 \x01(\x04\x12\x1c\n\x14\x66\x61iled_reads_written\x18\x04 \x01(\x04\x12\x1e\n\x16\x66\x61iled_reads_discarded\x18\x05 \x01(\x04\x1a\x8b\x01\n\x1dProtobufReadWritingStatistics\x12\x1b\n\x13read_chunks_written\x18\x01 \x01(\x04\x12\x1d\n\x15read_chunks_discarded\x18\x02 \x01(\x04\x12\x15\n\rreads_written\x18\x03 \x01(\x04\x12\x17\n\x0freads_discarded\x18\x04 \x01(\x04\x1a\xa4\x04\n\x1a\x46ileOperationQueueProgress\x12\x1a\n\x12pending_operations\x18\x01 \x01(\x04\x12&\n\x1e\x63omplete_successful_operations\x18\x02 \x01(\x04\x12\"\n\x1a\x63omplete_failed_operations\x18\x03 \x01(\x04\x12\x1c\n\x14\x62ytes_to_move_posted\x18\x04 \x01(\x04\x12\x1c\n\x14\x62ytes_to_move_failed\x18\x05 \x01(\x04\x12\x1f\n\x17\x62ytes_to_move_completed\x18\x06 \x01(\x04\x12g\n\x05\x66\x61st5\x18\x07 \x01(\x0b\x32X.minknow_api.data.GetExperimentYieldInfoResponse.FileOperationQueueProgress.FileTypeInfo\x12g\n\x05\x66\x61stq\x18\x08 \x01(\x0b\x32X.minknow_api.data.GetExperimentYieldInfoResponse.FileOperationQueueProgress.FileTypeInfo\x1ao\n\x0c\x46ileTypeInfo\x12 \n\x18\x66iles_moved_successfully\x18\x01 \x01(\x04\x12\x1f\n\x17\x66iles_moved_to_fallback\x18\x02 \x01(\x04\x12\x1c\n\x14\x66iles_failed_to_move\x18\x03 \x01(\x04\x32\x8b\t\n\x0b\x44\x61taService\x12r\n\x12get_channel_states\x12).minknow_api.data.GetChannelStatesRequest\x1a*.minknow_api.data.GetChannelStatesResponse\"\x03\x90\x02\x01\x30\x01\x12\x64\n\x0eget_data_types\x12%.minknow_api.data.GetDataTypesRequest\x1a&.minknow_api.data.GetDataTypesResponse\"\x03\x90\x02\x01\x12l\n\x10get_signal_bytes\x12\'.minknow_api.data.GetSignalBytesRequest\x1a(.minknow_api.data.GetSignalBytesResponse\"\x03\x90\x02\x01\x30\x01\x12p\n\x12get_signal_min_max\x12(.minknow_api.data.GetSignalMinMaxRequest\x1a).minknow_api.data.GetSignalMinMaxResponse\"\x03\x90\x02\x01\x30\x01\x12s\n\x14reset_channel_states\x12+.minknow_api.data.ResetChannelStatesRequest\x1a,.minknow_api.data.ResetChannelStatesResponse\"\x00\x12p\n\x13lock_channel_states\x12*.minknow_api.data.LockChannelStatesRequest\x1a+.minknow_api.data.LockChannelStatesResponse\"\x00\x12v\n\x15unlock_channel_states\x12,.minknow_api.data.UnlockChannelStatesRequest\x1a-.minknow_api.data.UnlockChannelStatesResponse\"\x00\x12h\n\x0eget_live_reads\x12%.minknow_api.data.GetLiveReadsRequest\x1a&.minknow_api.data.GetLiveReadsResponse\"\x03\x90\x02\x01(\x01\x30\x01\x12s\n\x13get_read_statistics\x12*.minknow_api.data.GetReadStatisticsRequest\x1a+.minknow_api.data.GetReadStatisticsResponse\"\x03\x90\x02\x01\x12\x83\x01\n\x19get_experiment_yield_info\x12/.minknow_api.data.GetExperimentYieldInfoRequest\x1a\x30.minknow_api.data.GetExperimentYieldInfoResponse\"\x03\x90\x02\x01\x42&\n\x1c\x63om.nanoporetech.minknow_api\xa2\x02\x05MKAPIb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x16minknow_api/data.proto\x12\x10minknow_api.data\x1a\x1dminknow_api/rpc_options.proto\x1a\x18minknow_api/device.proto\x1a\x1cminknow_api/statistics.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1egoogle/protobuf/wrappers.proto\"\xd9\x01\n\x17GetChannelStatesRequest\x12\x1b\n\rfirst_channel\x18\x01 \x01(\rB\x04\x88\xb5\x18\x01\x12\x1a\n\x0clast_channel\x18\x02 \x01(\rB\x04\x88\xb5\x18\x01\x12:\n\x16use_channel_states_ids\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x1b\n\x13wait_for_processing\x18\x04 \x01(\x08\x12,\n\theartbeat\x18\x05 \x01(\x0b\x32\x19.google.protobuf.Duration\"\xdb\x02\n\x18GetChannelStatesResponse\x12S\n\x0e\x63hannel_states\x18\x01 \x03(\x0b\x32;.minknow_api.data.GetChannelStatesResponse.ChannelStateData\x1a\xe9\x01\n\x10\x43hannelStateData\x12\x0f\n\x07\x63hannel\x18\x01 \x01(\r\x12\x12\n\x08state_id\x18\x02 \x01(\rH\x00\x12\x14\n\nstate_name\x18\x03 \x01(\tH\x00\x12\x1d\n\x15\x61\x63quisition_raw_index\x18\x04 \x01(\x04\x12\x1a\n\x12\x61nalysis_raw_index\x18\x05 \x01(\x04\x12\x14\n\x0ctrigger_time\x18\x07 \x01(\x04\x12@\n\x06\x63onfig\x18\x06 \x01(\x0b\x32\x30.minknow_api.device.ReturnedChannelConfigurationB\x07\n\x05state\"\x15\n\x13GetDataTypesRequest\"\xb1\x03\n\x14GetDataTypesResponse\x12L\n\x13uncalibrated_signal\x18\x01 \x01(\x0b\x32/.minknow_api.data.GetDataTypesResponse.DataType\x12J\n\x11\x63\x61librated_signal\x18\x02 \x01(\x0b\x32/.minknow_api.data.GetDataTypesResponse.DataType\x12\x46\n\rbias_voltages\x18\x03 \x01(\x0b\x32/.minknow_api.data.GetDataTypesResponse.DataType\x1a\xb6\x01\n\x08\x44\x61taType\x12\x42\n\x04type\x18\x01 \x01(\x0e\x32\x34.minknow_api.data.GetDataTypesResponse.DataType.Type\x12\x12\n\nbig_endian\x18\x02 \x01(\x08\x12\x0c\n\x04size\x18\x03 \x01(\r\"D\n\x04Type\x12\x12\n\x0eSIGNED_INTEGER\x10\x00\x12\x14\n\x10UNSIGNED_INTEGER\x10\x01\x12\x12\n\x0e\x46LOATING_POINT\x10\x02\"\xf8\x01\n\x15GetSignalBytesRequest\x12\x11\n\x07seconds\x18\x01 \x01(\x02H\x00\x12\x11\n\x07samples\x18\x02 \x01(\rH\x00\x12\x1b\n\rfirst_channel\x18\x03 \x01(\rB\x04\x88\xb5\x18\x01\x12\x1a\n\x0clast_channel\x18\x04 \x01(\rB\x04\x88\xb5\x18\x01\x12\x1f\n\x17include_channel_configs\x18\x05 \x01(\x08\x12\x1d\n\x15include_bias_voltages\x18\x06 \x01(\x08\x12\x17\n\x0f\x63\x61librated_data\x18\x07 \x01(\x08\x12\x1d\n\x15return_when_listening\x18\x08 \x01(\x08\x42\x08\n\x06length\"\xa7\x03\n\x16GetSignalBytesResponse\x12\x1b\n\x13samples_since_start\x18\x01 \x01(\x04\x12\x1b\n\x13seconds_since_start\x18\x02 \x01(\x01\x12\x18\n\x10skipped_channels\x18\x03 \x01(\r\x12\x46\n\x08\x63hannels\x18\x04 \x03(\x0b\x32\x34.minknow_api.data.GetSignalBytesResponse.ChannelData\x12\x15\n\rbias_voltages\x18\x05 \x01(\x0c\x1ag\n\x13\x43hannelConfigChange\x12@\n\x06\x63onfig\x18\x01 \x01(\x0b\x32\x30.minknow_api.device.ReturnedChannelConfiguration\x12\x0e\n\x06offset\x18\x02 \x01(\x04\x1aq\n\x0b\x43hannelData\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\x12T\n\x0e\x63onfig_changes\x18\x03 \x03(\x0b\x32<.minknow_api.data.GetSignalBytesResponse.ChannelConfigChange\"\x85\x01\n\x16GetSignalMinMaxRequest\x12\x1b\n\rfirst_channel\x18\x03 \x01(\rB\x04\x88\xb5\x18\x01\x12\x1a\n\x0clast_channel\x18\x04 \x01(\rB\x04\x88\xb5\x18\x01\x12\x19\n\x0bwindow_size\x18\x05 \x01(\rB\x04\x88\xb5\x18\x01\x12\x17\n\x0f\x63\x61librated_data\x18\x07 \x01(\x08\"\xa3\x02\n\x17GetSignalMinMaxResponse\x12\x1b\n\x13samples_since_start\x18\x01 \x01(\x04\x12\x1b\n\x13seconds_since_start\x18\x02 \x01(\x01\x12\x18\n\x10skipped_channels\x18\x03 \x01(\r\x12G\n\x08\x63hannels\x18\x04 \x03(\x0b\x32\x35.minknow_api.data.GetSignalMinMaxResponse.ChannelData\x1ak\n\x0b\x43hannelData\x12\x19\n\x11\x63\x61librated_minima\x18\x01 \x03(\x02\x12\x12\n\nraw_minima\x18\x02 \x03(\x05\x12\x19\n\x11\x63\x61librated_maxima\x18\x03 \x03(\x02\x12\x12\n\nraw_maxima\x18\x04 \x03(\x05\"\xaa\x07\n\x13GetLiveReadsRequest\x12\x42\n\x05setup\x18\x01 \x01(\x0b\x32\x31.minknow_api.data.GetLiveReadsRequest.StreamSetupH\x00\x12@\n\x07\x61\x63tions\x18\x02 \x01(\x0b\x32-.minknow_api.data.GetLiveReadsRequest.ActionsH\x00\x1a!\n\rUnblockAction\x12\x10\n\x08\x64uration\x18\x01 \x01(\x01\x1a\x11\n\x0fStopFurtherData\x1a\xee\x01\n\x06\x41\x63tion\x12\x11\n\taction_id\x18\x01 \x01(\t\x12\x0f\n\x07\x63hannel\x18\x02 \x01(\r\x12\x0c\n\x02id\x18\x03 \x01(\tH\x00\x12\x46\n\x07unblock\x18\x05 \x01(\x0b\x32\x33.minknow_api.data.GetLiveReadsRequest.UnblockActionH\x01\x12R\n\x11stop_further_data\x18\x06 \x01(\x0b\x32\x35.minknow_api.data.GetLiveReadsRequest.StopFurtherDataH\x01\x42\x06\n\x04readB\x08\n\x06\x61\x63tionJ\x04\x08\x04\x10\x05\x1a\xc6\x02\n\x0bStreamSetup\x12\x15\n\rfirst_channel\x18\x01 \x01(\r\x12\x14\n\x0clast_channel\x18\x02 \x01(\r\x12H\n\rraw_data_type\x18\x03 \x01(\x0e\x32\x31.minknow_api.data.GetLiveReadsRequest.RawDataType\x12!\n\x19sample_minimum_chunk_size\x18\x04 \x01(\x04\x12)\n\x1fmax_unblock_read_length_samples\x18\x05 \x01(\x04H\x00\x12)\n\x1fmax_unblock_read_length_seconds\x18\x06 \x01(\x01H\x00\x12,\n$accepted_first_chunk_classifications\x18\x07 \x03(\x05\x42\x19\n\x17max_unblock_read_length\x1aH\n\x07\x41\x63tions\x12=\n\x07\x61\x63tions\x18\x02 \x03(\x0b\x32,.minknow_api.data.GetLiveReadsRequest.Action\"H\n\x0bRawDataType\x12\r\n\tKEEP_LAST\x10\x00\x12\x08\n\x04NONE\x10\x01\x12\x0e\n\nCALIBRATED\x10\x02\x12\x10\n\x0cUNCALIBRATED\x10\x03\x42\t\n\x07request\"\xbe\x06\n\x14GetLiveReadsResponse\x12\x1b\n\x13samples_since_start\x18\x01 \x01(\x04\x12\x1b\n\x13seconds_since_start\x18\x02 \x01(\x01\x12\x46\n\x08\x63hannels\x18\x04 \x03(\x0b\x32\x34.minknow_api.data.GetLiveReadsResponse.ChannelsEntry\x12O\n\x10\x61\x63tion_responses\x18\x05 \x03(\x0b\x32\x35.minknow_api.data.GetLiveReadsResponse.ActionResponse\x1a\xab\x02\n\x08ReadData\x12\n\n\x02id\x18\x01 \x01(\t\x12\x14\n\x0cstart_sample\x18\x03 \x01(\x04\x12\x1a\n\x12\x63hunk_start_sample\x18\x04 \x01(\x04\x12\x14\n\x0c\x63hunk_length\x18\x05 \x01(\x04\x12\x1d\n\x15\x63hunk_classifications\x18\x06 \x03(\x05\x12\x10\n\x08raw_data\x18\x07 \x01(\x0c\x12\x15\n\rmedian_before\x18\x08 \x01(\x02\x12\x0e\n\x06median\x18\t \x01(\x02\x12$\n\x1cprevious_read_classification\x18\n \x01(\x05\x12G\n\x18previous_read_end_reason\x18\x0b \x01(\x0e\x32%.minknow_api.statistics.ReadEndReasonJ\x04\x08\x02\x10\x03\x1a\xc2\x01\n\x0e\x41\x63tionResponse\x12\x11\n\taction_id\x18\x01 \x01(\t\x12P\n\x08response\x18\x02 \x01(\x0e\x32>.minknow_api.data.GetLiveReadsResponse.ActionResponse.Response\"K\n\x08Response\x12\x0b\n\x07SUCCESS\x10\x00\x12\x18\n\x14\x46\x41ILED_READ_FINISHED\x10\x01\x12\x18\n\x14\x46\x41ILED_READ_TOO_LONG\x10\x02\x1a`\n\rChannelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12>\n\x05value\x18\x02 \x01(\x0b\x32/.minknow_api.data.GetLiveReadsResponse.ReadData:\x02\x38\x01\"\x1b\n\x19ResetChannelStatesRequest\"\x1c\n\x1aResetChannelStatesResponse\"\xf0\x01\n(RecordAdaptiveSamplingInformationRequest\x12Y\n\tobjective\x18\x01 \x01(\x0e\x32\x44.minknow_api.data.RecordAdaptiveSamplingInformationRequest.ObjectiveH\x00\x12\x14\n\nend_reason\x18\x02 \x01(\tH\x00\"D\n\tObjective\x12\t\n\x05OTHER\x10\x00\x12\x13\n\x0f\x42\x41RCODE_BALANCE\x10\x01\x12\n\n\x06\x45NRICH\x10\x02\x12\x0b\n\x07\x44\x45PLETE\x10\x03\x42\r\n\x0binformation\"+\n)RecordAdaptiveSamplingInformationResponse\"\xb8\x02\n\x18GetReadStatisticsRequest\x12\x10\n\x08\x63hannels\x18\x01 \x03(\r\x12\x11\n\x07seconds\x18\x02 \x01(\x02H\x00\x12\x11\n\x07samples\x18\x03 \x01(\x04H\x00\x12N\n\nread_split\x18\x04 \x01(\x0e\x32\x34.minknow_api.data.GetReadStatisticsRequest.ReadSplitB\x04\x88\xb5\x18\x01\x12\x1d\n\x15no_current_statistics\x18\x05 \x01(\x08\x12\x1b\n\x13no_chunk_statistics\x18\x06 \x01(\x08\x12 \n\x18required_classifications\x18\x07 \x03(\t\"*\n\tReadSplit\x12\t\n\x05\x43HUNK\x10\x00\x12\x12\n\x0e\x43OMPLETED_READ\x10\x01\x42\n\n\x08\x64uration\"\xe4\n\n\x19GetReadStatisticsResponse\x12L\n\x08\x63hannels\x18\x01 \x03(\x0b\x32:.minknow_api.data.GetReadStatisticsResponse.PerChannelData\x12\x1b\n\x13samples_since_start\x18\x02 \x01(\x04\x12\x1b\n\x13seconds_since_start\x18\x03 \x01(\x01\x1a\xa4\x01\n\nStatistics\x12\x0b\n\x03min\x18\x01 \x01(\x01\x12\x0b\n\x03max\x18\x02 \x01(\x01\x12\x0c\n\x04mean\x18\x03 \x01(\x01\x12\x0b\n\x03s_d\x18\x04 \x01(\x01\x12\x0e\n\x06median\x18\x06 \x01(\x01\x12\x0b\n\x03q_5\x18\x07 \x01(\x01\x12\x0c\n\x04q_10\x18\x08 \x01(\x01\x12\x0c\n\x04q_25\x18\t \x01(\x01\x12\x0c\n\x04q_75\x18\n \x01(\x01\x12\x0c\n\x04q_90\x18\x0b \x01(\x01\x12\x0c\n\x04q_95\x18\x0c \x01(\x01\x1a\x43\n\x0f\x43hunkStatistics\x12\x11\n\tmedian_sd\x18\x01 \x01(\x01\x12\x0e\n\x06median\x18\x02 \x01(\x01\x12\r\n\x05range\x18\x03 \x01(\x01\x1a\xcb\x02\n\x15PerClassificationData\x12S\n\x13\x64uration_statistics\x18\x01 \x01(\x0b\x32\x36.minknow_api.data.GetReadStatisticsResponse.Statistics\x12R\n\x12\x63urrent_statistics\x18\x02 \x01(\x0b\x32\x36.minknow_api.data.GetReadStatisticsResponse.Statistics\x12U\n\x10\x63hunk_statistics\x18\x06 \x01(\x0b\x32;.minknow_api.data.GetReadStatisticsResponse.ChunkStatistics\x12\x18\n\x10samples_duration\x18\x04 \x01(\x04\x12\x18\n\x10seconds_duration\x18\x05 \x01(\x01\x1a\xa9\x03\n\x14PerConfigurationData\x12O\n\x15\x63hannel_configuration\x18\x01 \x01(\x0b\x32\x30.minknow_api.device.ReturnedChannelConfiguration\x12n\n\x0f\x63lassifications\x18\x02 \x03(\x0b\x32U.minknow_api.data.GetReadStatisticsResponse.PerConfigurationData.ClassificationsEntry\x12U\n\nincomplete\x18\x03 \x01(\x0b\x32\x41.minknow_api.data.GetReadStatisticsResponse.PerClassificationData\x1ay\n\x14\x43lassificationsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12P\n\x05value\x18\x02 \x01(\x0b\x32\x41.minknow_api.data.GetReadStatisticsResponse.PerClassificationData:\x02\x38\x01\x1a\xd8\x01\n\x0ePerChannelData\x12X\n\x0e\x63onfigurations\x18\x06 \x03(\x0b\x32@.minknow_api.data.GetReadStatisticsResponse.PerConfigurationData\x12\x1b\n\x13samples_since_start\x18\x02 \x01(\x04\x12\x1b\n\x13seconds_since_start\x18\x03 \x01(\x01\x12\x18\n\x10samples_duration\x18\x04 \x01(\x04\x12\x18\n\x10seconds_duration\x18\x05 \x01(\x01\"L\n\x18LockChannelStatesRequest\x12\x16\n\x08\x63hannels\x18\x01 \x03(\x04\x42\x04\x88\xb5\x18\x01\x12\x18\n\nstate_name\x18\x02 \x01(\tB\x04\x88\xb5\x18\x01\"\x1b\n\x19LockChannelStatesResponse\"4\n\x1aUnlockChannelStatesRequest\x12\x16\n\x08\x63hannels\x18\x01 \x03(\x04\x42\x04\x88\xb5\x18\x01\"\x1d\n\x1bUnlockChannelStatesResponse\"\x1f\n\x1dGetExperimentYieldInfoRequest\"\x84\x1c\n\x1eGetExperimentYieldInfoResponse\x12]\n\x12\x63omplete_read_info\x18\x01 \x01(\x0b\x32\x41.minknow_api.data.GetExperimentYieldInfoResponse.CompleteReadInfo\x12Z\n\x10\x61\x63quisition_info\x18\x02 \x01(\x0b\x32@.minknow_api.data.GetExperimentYieldInfoResponse.AcquisitionInfo\x12T\n\ranalyser_info\x18\x03 \x01(\x0b\x32=.minknow_api.data.GetExperimentYieldInfoResponse.AnalyserInfo\x12L\n\tbulk_info\x18\x04 \x01(\x0b\x32\x39.minknow_api.data.GetExperimentYieldInfoResponse.BulkInfo\x12W\n\x0fhdf_writer_info\x18\x05 \x01(\x0b\x32>.minknow_api.data.GetExperimentYieldInfoResponse.HdfWriterInfo\x12\x62\n\x15\x62\x61secaller_statistics\x18\x06 \x01(\x0b\x32\x43.minknow_api.data.GetExperimentYieldInfoResponse.BasecallStatistics\x12z\n\"hdf_multi_read_writing_statisitics\x18\x07 \x01(\x0b\x32N.minknow_api.data.GetExperimentYieldInfoResponse.HdfMultiReadWritingStatistics\x12r\n\x1d\x66\x61stq_read_writing_statistics\x18\x08 \x01(\x0b\x32K.minknow_api.data.GetExperimentYieldInfoResponse.FastqReadWritingStatistics\x12x\n protobuf_read_writing_statistics\x18\t \x01(\x0b\x32N.minknow_api.data.GetExperimentYieldInfoResponse.ProtobufReadWritingStatistics\x12r\n\x1d\x66ile_operation_queue_progress\x18\n \x01(\x0b\x32K.minknow_api.data.GetExperimentYieldInfoResponse.FileOperationQueueProgress\x1a\xa8\x04\n\x10\x43ompleteReadInfo\x12\x16\n\x0epending_chunks\x18\x01 \x01(\x04\x12\x1c\n\x14pending_memory_reads\x18\x02 \x01(\x04\x12\x1a\n\x12pending_disk_reads\x18\x0f \x01(\x04\x12 \n\x18pending_multi_disk_reads\x18\x03 \x01(\x04\x12\x1d\n\x15pending_skipped_reads\x18\x04 \x01(\x04\x12#\n\x1bpending_force_skipped_reads\x18\x05 \x01(\x04\x12\x1e\n\x16processed_memory_reads\x18\x06 \x01(\x04\x12\x1c\n\x14processed_disk_reads\x18\x07 \x01(\x04\x12\x1f\n\x17processed_skipped_reads\x18\x08 \x01(\x04\x12%\n\x1dprocessed_force_skipped_reads\x18\t \x01(\x04\x12!\n\x19stored_reads_bytes_memory\x18\n \x01(\x04\x12+\n#stored_read_supporting_bytes_memory\x18\x10 \x01(\x04\x12\x1f\n\x17stored_reads_bytes_disk\x18\x0b \x01(\x04\x12\x1d\n\x15\x64iscarded_error_bytes\x18\x0c \x01(\x04\x12 \n\x18\x63hannels_writing_to_disk\x18\r \x01(\x04\x12$\n\x1c\x63hannels_writing_to_disk_tmp\x18\x0e \x01(\x04\x1aI\n\x0f\x41\x63quisitionInfo\x12\x17\n\x0fraw_per_channel\x18\x01 \x01(\x04\x12\x1d\n\x15\x66rame_discontinuities\x18\x02 \x01(\x04\x1a\xe5\x01\n\x0c\x41nalyserInfo\x12\x17\n\x0fraw_per_channel\x18\x01 \x01(\x04\x12\x1a\n\x12total_selected_raw\x18\x02 \x01(\x04\x12\x1d\n\x15total_selected_events\x18\x03 \x01(\x04\x12\x14\n\x0ctotal_events\x18\x04 \x01(\x04\x12\x19\n\x11total_read_chunks\x18\x05 \x01(\x04\x12&\n\x1e\x63ompleted_selected_reads_count\x18\x06 \x01(\x04\x12(\n completed_unselected_reads_count\x18\x07 \x01(\x04\x1a\x33\n\x08\x42ulkInfo\x12\x11\n\ttotal_raw\x18\x01 \x01(\x04\x12\x14\n\x0ctotal_events\x18\x02 \x01(\x04\x1a\xa0\x01\n\rHdfWriterInfo\x12\x1c\n\x14pending_compressions\x18\x01 \x01(\x04\x12\x16\n\x0epending_writes\x18\x02 \x01(\x04\x12\x19\n\x11pending_hdf_tasks\x18\x03 \x01(\x04\x12\x18\n\x10\x63ompleted_writes\x18\x04 \x01(\x04\x12$\n\x1c\x64\x61taset_bytes_data_in_flight\x18\x05 \x01(\x04\x1a\xd9\x02\n\x12\x42\x61secallStatistics\x12\x19\n\x11reads_in_progress\x18\x01 \x01(\x04\x12\x17\n\x0freads_processed\x18\x02 \x01(\x04\x12\x15\n\rreads_skipped\x18\x03 \x01(\x04\x12\x1b\n\x13reads_force_skipped\x18\x04 \x01(\x04\x12%\n\x1dreads_failed_calling_filtered\x18\x05 \x01(\x04\x12\x1c\n\x14reads_failed_calling\x18\x06 \x01(\x04\x12\x14\n\x0creads_called\x18\x07 \x01(\x04\x12\x16\n\x0esamples_called\x18\x08 \x01(\x04\x12\x17\n\x0fsamples_skipped\x18\t \x01(\x04\x12\x1b\n\x13\x62\x61ses_passed_called\x18\n \x01(\x04\x12\x1b\n\x13\x62\x61ses_failed_called\x18\x0c \x01(\x04\x12\x15\n\revents_called\x18\x0b \x01(\x04\x1a\xf6\x01\n\x1dHdfMultiReadWritingStatistics\x12\x15\n\rreads_written\x18\x01 \x01(\x04\x12\x1c\n\x14passed_reads_written\x18\x02 \x01(\x04\x12\x1c\n\x14\x66\x61iled_reads_written\x18\x03 \x01(\x04\x12#\n\x1b\x66orce_skipped_reads_written\x18\x04 \x01(\x04\x12\x19\n\x11raw_bytes_written\x18\x05 \x01(\x04\x12\x1b\n\x13\x66\x61stq_bytes_written\x18\x06 \x01(\x04\x12%\n\x1d\x62\x61secall_events_bytes_written\x18\x07 \x01(\x04\x1a\xa7\x01\n\x1a\x46\x61stqReadWritingStatistics\x12\x1c\n\x14passed_reads_written\x18\x01 \x01(\x04\x12\x15\n\rskipped_reads\x18\x02 \x01(\x04\x12\x16\n\x0e\x66orced_skipped\x18\x03 \x01(\x04\x12\x1c\n\x14\x66\x61iled_reads_written\x18\x04 \x01(\x04\x12\x1e\n\x16\x66\x61iled_reads_discarded\x18\x05 \x01(\x04\x1a\x8b\x01\n\x1dProtobufReadWritingStatistics\x12\x1b\n\x13read_chunks_written\x18\x01 \x01(\x04\x12\x1d\n\x15read_chunks_discarded\x18\x02 \x01(\x04\x12\x15\n\rreads_written\x18\x03 \x01(\x04\x12\x17\n\x0freads_discarded\x18\x04 \x01(\x04\x1a\xa4\x04\n\x1a\x46ileOperationQueueProgress\x12\x1a\n\x12pending_operations\x18\x01 \x01(\x04\x12&\n\x1e\x63omplete_successful_operations\x18\x02 \x01(\x04\x12\"\n\x1a\x63omplete_failed_operations\x18\x03 \x01(\x04\x12\x1c\n\x14\x62ytes_to_move_posted\x18\x04 \x01(\x04\x12\x1c\n\x14\x62ytes_to_move_failed\x18\x05 \x01(\x04\x12\x1f\n\x17\x62ytes_to_move_completed\x18\x06 \x01(\x04\x12g\n\x05\x66\x61st5\x18\x07 \x01(\x0b\x32X.minknow_api.data.GetExperimentYieldInfoResponse.FileOperationQueueProgress.FileTypeInfo\x12g\n\x05\x66\x61stq\x18\x08 \x01(\x0b\x32X.minknow_api.data.GetExperimentYieldInfoResponse.FileOperationQueueProgress.FileTypeInfo\x1ao\n\x0c\x46ileTypeInfo\x12 \n\x18\x66iles_moved_successfully\x18\x01 \x01(\x04\x12\x1f\n\x17\x66iles_moved_to_fallback\x18\x02 \x01(\x04\x12\x1c\n\x14\x66iles_failed_to_move\x18\x03 \x01(\x04\x32\xb2\n\n\x0b\x44\x61taService\x12r\n\x12get_channel_states\x12).minknow_api.data.GetChannelStatesRequest\x1a*.minknow_api.data.GetChannelStatesResponse\"\x03\x90\x02\x01\x30\x01\x12\x64\n\x0eget_data_types\x12%.minknow_api.data.GetDataTypesRequest\x1a&.minknow_api.data.GetDataTypesResponse\"\x03\x90\x02\x01\x12l\n\x10get_signal_bytes\x12\'.minknow_api.data.GetSignalBytesRequest\x1a(.minknow_api.data.GetSignalBytesResponse\"\x03\x90\x02\x01\x30\x01\x12p\n\x12get_signal_min_max\x12(.minknow_api.data.GetSignalMinMaxRequest\x1a).minknow_api.data.GetSignalMinMaxResponse\"\x03\x90\x02\x01\x30\x01\x12s\n\x14reset_channel_states\x12+.minknow_api.data.ResetChannelStatesRequest\x1a,.minknow_api.data.ResetChannelStatesResponse\"\x00\x12p\n\x13lock_channel_states\x12*.minknow_api.data.LockChannelStatesRequest\x1a+.minknow_api.data.LockChannelStatesResponse\"\x00\x12v\n\x15unlock_channel_states\x12,.minknow_api.data.UnlockChannelStatesRequest\x1a-.minknow_api.data.UnlockChannelStatesResponse\"\x00\x12h\n\x0eget_live_reads\x12%.minknow_api.data.GetLiveReadsRequest\x1a&.minknow_api.data.GetLiveReadsResponse\"\x03\x90\x02\x01(\x01\x30\x01\x12\xa4\x01\n$record_adaptive_sampling_information\x12:.minknow_api.data.RecordAdaptiveSamplingInformationRequest\x1a;.minknow_api.data.RecordAdaptiveSamplingInformationResponse\"\x03\x90\x02\x02\x12s\n\x13get_read_statistics\x12*.minknow_api.data.GetReadStatisticsRequest\x1a+.minknow_api.data.GetReadStatisticsResponse\"\x03\x90\x02\x01\x12\x83\x01\n\x19get_experiment_yield_info\x12/.minknow_api.data.GetExperimentYieldInfoRequest\x1a\x30.minknow_api.data.GetExperimentYieldInfoResponse\"\x03\x90\x02\x01\x42&\n\x1c\x63om.nanoporetech.minknow_api\xa2\x02\x05MKAPIb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -63,6 +63,8 @@ _globals['_DATASERVICE'].methods_by_name['get_signal_min_max']._serialized_options = b'\220\002\001' _globals['_DATASERVICE'].methods_by_name['get_live_reads']._options = None _globals['_DATASERVICE'].methods_by_name['get_live_reads']._serialized_options = b'\220\002\001' + _globals['_DATASERVICE'].methods_by_name['record_adaptive_sampling_information']._options = None + _globals['_DATASERVICE'].methods_by_name['record_adaptive_sampling_information']._serialized_options = b'\220\002\002' _globals['_DATASERVICE'].methods_by_name['get_read_statistics']._options = None _globals['_DATASERVICE'].methods_by_name['get_read_statistics']._serialized_options = b'\220\002\001' _globals['_DATASERVICE'].methods_by_name['get_experiment_yield_info']._options = None @@ -96,112 +98,213 @@ _globals['_GETSIGNALMINMAXRESPONSE_CHANNELDATA']._serialized_start=2222 _globals['_GETSIGNALMINMAXRESPONSE_CHANNELDATA']._serialized_end=2329 _globals['_GETLIVEREADSREQUEST']._serialized_start=2332 - _globals['_GETLIVEREADSREQUEST']._serialized_end=3282 + _globals['_GETLIVEREADSREQUEST']._serialized_end=3270 _globals['_GETLIVEREADSREQUEST_UNBLOCKACTION']._serialized_start=2489 _globals['_GETLIVEREADSREQUEST_UNBLOCKACTION']._serialized_end=2522 _globals['_GETLIVEREADSREQUEST_STOPFURTHERDATA']._serialized_start=2524 _globals['_GETLIVEREADSREQUEST_STOPFURTHERDATA']._serialized_end=2541 _globals['_GETLIVEREADSREQUEST_ACTION']._serialized_start=2544 - _globals['_GETLIVEREADSREQUEST_ACTION']._serialized_end=2794 - _globals['_GETLIVEREADSREQUEST_STREAMSETUP']._serialized_start=2797 - _globals['_GETLIVEREADSREQUEST_STREAMSETUP']._serialized_end=3123 - _globals['_GETLIVEREADSREQUEST_ACTIONS']._serialized_start=3125 - _globals['_GETLIVEREADSREQUEST_ACTIONS']._serialized_end=3197 - _globals['_GETLIVEREADSREQUEST_RAWDATATYPE']._serialized_start=3199 - _globals['_GETLIVEREADSREQUEST_RAWDATATYPE']._serialized_end=3271 - _globals['_GETLIVEREADSRESPONSE']._serialized_start=3285 - _globals['_GETLIVEREADSRESPONSE']._serialized_end=4125 - _globals['_GETLIVEREADSRESPONSE_READDATA']._serialized_start=3521 - _globals['_GETLIVEREADSRESPONSE_READDATA']._serialized_end=3830 - _globals['_GETLIVEREADSRESPONSE_ACTIONRESPONSE']._serialized_start=3833 - _globals['_GETLIVEREADSRESPONSE_ACTIONRESPONSE']._serialized_end=4027 - _globals['_GETLIVEREADSRESPONSE_ACTIONRESPONSE_RESPONSE']._serialized_start=3952 - _globals['_GETLIVEREADSRESPONSE_ACTIONRESPONSE_RESPONSE']._serialized_end=4027 - _globals['_GETLIVEREADSRESPONSE_CHANNELSENTRY']._serialized_start=4029 - _globals['_GETLIVEREADSRESPONSE_CHANNELSENTRY']._serialized_end=4125 - _globals['_RESETCHANNELSTATESREQUEST']._serialized_start=4127 - _globals['_RESETCHANNELSTATESREQUEST']._serialized_end=4154 - _globals['_RESETCHANNELSTATESRESPONSE']._serialized_start=4156 - _globals['_RESETCHANNELSTATESRESPONSE']._serialized_end=4184 - _globals['_GETREADSTATISTICSREQUEST']._serialized_start=4187 - _globals['_GETREADSTATISTICSREQUEST']._serialized_end=4499 - _globals['_GETREADSTATISTICSREQUEST_READSPLIT']._serialized_start=4445 - _globals['_GETREADSTATISTICSREQUEST_READSPLIT']._serialized_end=4487 - _globals['_GETREADSTATISTICSRESPONSE']._serialized_start=4502 - _globals['_GETREADSTATISTICSRESPONSE']._serialized_end=5882 - _globals['_GETREADSTATISTICSRESPONSE_STATISTICS']._serialized_start=4668 - _globals['_GETREADSTATISTICSRESPONSE_STATISTICS']._serialized_end=4832 - _globals['_GETREADSTATISTICSRESPONSE_CHUNKSTATISTICS']._serialized_start=4834 - _globals['_GETREADSTATISTICSRESPONSE_CHUNKSTATISTICS']._serialized_end=4901 - _globals['_GETREADSTATISTICSRESPONSE_PERCLASSIFICATIONDATA']._serialized_start=4904 - _globals['_GETREADSTATISTICSRESPONSE_PERCLASSIFICATIONDATA']._serialized_end=5235 - _globals['_GETREADSTATISTICSRESPONSE_PERCONFIGURATIONDATA']._serialized_start=5238 - _globals['_GETREADSTATISTICSRESPONSE_PERCONFIGURATIONDATA']._serialized_end=5663 - _globals['_GETREADSTATISTICSRESPONSE_PERCONFIGURATIONDATA_CLASSIFICATIONSENTRY']._serialized_start=5542 - _globals['_GETREADSTATISTICSRESPONSE_PERCONFIGURATIONDATA_CLASSIFICATIONSENTRY']._serialized_end=5663 - _globals['_GETREADSTATISTICSRESPONSE_PERCHANNELDATA']._serialized_start=5666 - _globals['_GETREADSTATISTICSRESPONSE_PERCHANNELDATA']._serialized_end=5882 - _globals['_LOCKCHANNELSTATESREQUEST']._serialized_start=5884 - _globals['_LOCKCHANNELSTATESREQUEST']._serialized_end=5960 - _globals['_LOCKCHANNELSTATESRESPONSE']._serialized_start=5962 - _globals['_LOCKCHANNELSTATESRESPONSE']._serialized_end=5989 - _globals['_UNLOCKCHANNELSTATESREQUEST']._serialized_start=5991 - _globals['_UNLOCKCHANNELSTATESREQUEST']._serialized_end=6043 - _globals['_UNLOCKCHANNELSTATESRESPONSE']._serialized_start=6045 - _globals['_UNLOCKCHANNELSTATESRESPONSE']._serialized_end=6074 - _globals['_GETEXPERIMENTYIELDINFOREQUEST']._serialized_start=6076 - _globals['_GETEXPERIMENTYIELDINFOREQUEST']._serialized_end=6107 - _globals['_GETEXPERIMENTYIELDINFORESPONSE']._serialized_start=6110 - _globals['_GETEXPERIMENTYIELDINFORESPONSE']._serialized_end=9698 - _globals['_GETEXPERIMENTYIELDINFORESPONSE_COMPLETEREADINFO']._serialized_start=7163 - _globals['_GETEXPERIMENTYIELDINFORESPONSE_COMPLETEREADINFO']._serialized_end=7715 - _globals['_GETEXPERIMENTYIELDINFORESPONSE_ACQUISITIONINFO']._serialized_start=7717 - _globals['_GETEXPERIMENTYIELDINFORESPONSE_ACQUISITIONINFO']._serialized_end=7790 - _globals['_GETEXPERIMENTYIELDINFORESPONSE_ANALYSERINFO']._serialized_start=7793 - _globals['_GETEXPERIMENTYIELDINFORESPONSE_ANALYSERINFO']._serialized_end=8022 - _globals['_GETEXPERIMENTYIELDINFORESPONSE_BULKINFO']._serialized_start=8024 - _globals['_GETEXPERIMENTYIELDINFORESPONSE_BULKINFO']._serialized_end=8075 - _globals['_GETEXPERIMENTYIELDINFORESPONSE_HDFWRITERINFO']._serialized_start=8078 - _globals['_GETEXPERIMENTYIELDINFORESPONSE_HDFWRITERINFO']._serialized_end=8238 - _globals['_GETEXPERIMENTYIELDINFORESPONSE_BASECALLSTATISTICS']._serialized_start=8241 - _globals['_GETEXPERIMENTYIELDINFORESPONSE_BASECALLSTATISTICS']._serialized_end=8586 - _globals['_GETEXPERIMENTYIELDINFORESPONSE_HDFMULTIREADWRITINGSTATISTICS']._serialized_start=8589 - _globals['_GETEXPERIMENTYIELDINFORESPONSE_HDFMULTIREADWRITINGSTATISTICS']._serialized_end=8835 - _globals['_GETEXPERIMENTYIELDINFORESPONSE_FASTQREADWRITINGSTATISTICS']._serialized_start=8838 - _globals['_GETEXPERIMENTYIELDINFORESPONSE_FASTQREADWRITINGSTATISTICS']._serialized_end=9005 - _globals['_GETEXPERIMENTYIELDINFORESPONSE_PROTOBUFREADWRITINGSTATISTICS']._serialized_start=9008 - _globals['_GETEXPERIMENTYIELDINFORESPONSE_PROTOBUFREADWRITINGSTATISTICS']._serialized_end=9147 - _globals['_GETEXPERIMENTYIELDINFORESPONSE_FILEOPERATIONQUEUEPROGRESS']._serialized_start=9150 - _globals['_GETEXPERIMENTYIELDINFORESPONSE_FILEOPERATIONQUEUEPROGRESS']._serialized_end=9698 - _globals['_GETEXPERIMENTYIELDINFORESPONSE_FILEOPERATIONQUEUEPROGRESS_FILETYPEINFO']._serialized_start=9587 - _globals['_GETEXPERIMENTYIELDINFORESPONSE_FILEOPERATIONQUEUEPROGRESS_FILETYPEINFO']._serialized_end=9698 - _globals['_DATASERVICE']._serialized_start=9701 - _globals['_DATASERVICE']._serialized_end=10864 -GetSignalBytesResponse.ChannelData.__doc__ = """Attributes: - data: - The signal data. This is the byte representation of a C-style - array of values. Values are stored in order and adjacent to - each other. The type of the elements will depend on whether - calibrated data was chosen. The get_data_types() RPC call - should be used to determine the precise format of the data, - but in general terms, uncalibrated data will be signed - integers and calibrated data will be floating-point numbers. - Returning the data in this format allows it to be efficiently - processed in dynamic languages that can pass the data straight - down to a native runtime. For example, in Python, this data - can be intepreted directly into a numpy array using - numpy.fromstring(). Calibrated data is in picoamps. - Uncalibrated data is the raw values output by the device's ADC - (analogue-digital converter). - config_changes: - The configuration changes on the channel during data - collection. If channel configuration changes were requested, - this will contain all the channel configuration changes that - affect the returned data. This will include at least one - element, with offset 0, that describes the configuration at - the time the first sample was taken. Note that the offset is - the zero-based index into the adc or picoamps list. The - changes will be ordered by offset. + _globals['_GETLIVEREADSREQUEST_ACTION']._serialized_end=2782 + _globals['_GETLIVEREADSREQUEST_STREAMSETUP']._serialized_start=2785 + _globals['_GETLIVEREADSREQUEST_STREAMSETUP']._serialized_end=3111 + _globals['_GETLIVEREADSREQUEST_ACTIONS']._serialized_start=3113 + _globals['_GETLIVEREADSREQUEST_ACTIONS']._serialized_end=3185 + _globals['_GETLIVEREADSREQUEST_RAWDATATYPE']._serialized_start=3187 + _globals['_GETLIVEREADSREQUEST_RAWDATATYPE']._serialized_end=3259 + _globals['_GETLIVEREADSRESPONSE']._serialized_start=3273 + _globals['_GETLIVEREADSRESPONSE']._serialized_end=4103 + _globals['_GETLIVEREADSRESPONSE_READDATA']._serialized_start=3509 + _globals['_GETLIVEREADSRESPONSE_READDATA']._serialized_end=3808 + _globals['_GETLIVEREADSRESPONSE_ACTIONRESPONSE']._serialized_start=3811 + _globals['_GETLIVEREADSRESPONSE_ACTIONRESPONSE']._serialized_end=4005 + _globals['_GETLIVEREADSRESPONSE_ACTIONRESPONSE_RESPONSE']._serialized_start=3930 + _globals['_GETLIVEREADSRESPONSE_ACTIONRESPONSE_RESPONSE']._serialized_end=4005 + _globals['_GETLIVEREADSRESPONSE_CHANNELSENTRY']._serialized_start=4007 + _globals['_GETLIVEREADSRESPONSE_CHANNELSENTRY']._serialized_end=4103 + _globals['_RESETCHANNELSTATESREQUEST']._serialized_start=4105 + _globals['_RESETCHANNELSTATESREQUEST']._serialized_end=4132 + _globals['_RESETCHANNELSTATESRESPONSE']._serialized_start=4134 + _globals['_RESETCHANNELSTATESRESPONSE']._serialized_end=4162 + _globals['_RECORDADAPTIVESAMPLINGINFORMATIONREQUEST']._serialized_start=4165 + _globals['_RECORDADAPTIVESAMPLINGINFORMATIONREQUEST']._serialized_end=4405 + _globals['_RECORDADAPTIVESAMPLINGINFORMATIONREQUEST_OBJECTIVE']._serialized_start=4322 + _globals['_RECORDADAPTIVESAMPLINGINFORMATIONREQUEST_OBJECTIVE']._serialized_end=4390 + _globals['_RECORDADAPTIVESAMPLINGINFORMATIONRESPONSE']._serialized_start=4407 + _globals['_RECORDADAPTIVESAMPLINGINFORMATIONRESPONSE']._serialized_end=4450 + _globals['_GETREADSTATISTICSREQUEST']._serialized_start=4453 + _globals['_GETREADSTATISTICSREQUEST']._serialized_end=4765 + _globals['_GETREADSTATISTICSREQUEST_READSPLIT']._serialized_start=4711 + _globals['_GETREADSTATISTICSREQUEST_READSPLIT']._serialized_end=4753 + _globals['_GETREADSTATISTICSRESPONSE']._serialized_start=4768 + _globals['_GETREADSTATISTICSRESPONSE']._serialized_end=6148 + _globals['_GETREADSTATISTICSRESPONSE_STATISTICS']._serialized_start=4934 + _globals['_GETREADSTATISTICSRESPONSE_STATISTICS']._serialized_end=5098 + _globals['_GETREADSTATISTICSRESPONSE_CHUNKSTATISTICS']._serialized_start=5100 + _globals['_GETREADSTATISTICSRESPONSE_CHUNKSTATISTICS']._serialized_end=5167 + _globals['_GETREADSTATISTICSRESPONSE_PERCLASSIFICATIONDATA']._serialized_start=5170 + _globals['_GETREADSTATISTICSRESPONSE_PERCLASSIFICATIONDATA']._serialized_end=5501 + _globals['_GETREADSTATISTICSRESPONSE_PERCONFIGURATIONDATA']._serialized_start=5504 + _globals['_GETREADSTATISTICSRESPONSE_PERCONFIGURATIONDATA']._serialized_end=5929 + _globals['_GETREADSTATISTICSRESPONSE_PERCONFIGURATIONDATA_CLASSIFICATIONSENTRY']._serialized_start=5808 + _globals['_GETREADSTATISTICSRESPONSE_PERCONFIGURATIONDATA_CLASSIFICATIONSENTRY']._serialized_end=5929 + _globals['_GETREADSTATISTICSRESPONSE_PERCHANNELDATA']._serialized_start=5932 + _globals['_GETREADSTATISTICSRESPONSE_PERCHANNELDATA']._serialized_end=6148 + _globals['_LOCKCHANNELSTATESREQUEST']._serialized_start=6150 + _globals['_LOCKCHANNELSTATESREQUEST']._serialized_end=6226 + _globals['_LOCKCHANNELSTATESRESPONSE']._serialized_start=6228 + _globals['_LOCKCHANNELSTATESRESPONSE']._serialized_end=6255 + _globals['_UNLOCKCHANNELSTATESREQUEST']._serialized_start=6257 + _globals['_UNLOCKCHANNELSTATESREQUEST']._serialized_end=6309 + _globals['_UNLOCKCHANNELSTATESRESPONSE']._serialized_start=6311 + _globals['_UNLOCKCHANNELSTATESRESPONSE']._serialized_end=6340 + _globals['_GETEXPERIMENTYIELDINFOREQUEST']._serialized_start=6342 + _globals['_GETEXPERIMENTYIELDINFOREQUEST']._serialized_end=6373 + _globals['_GETEXPERIMENTYIELDINFORESPONSE']._serialized_start=6376 + _globals['_GETEXPERIMENTYIELDINFORESPONSE']._serialized_end=9964 + _globals['_GETEXPERIMENTYIELDINFORESPONSE_COMPLETEREADINFO']._serialized_start=7429 + _globals['_GETEXPERIMENTYIELDINFORESPONSE_COMPLETEREADINFO']._serialized_end=7981 + _globals['_GETEXPERIMENTYIELDINFORESPONSE_ACQUISITIONINFO']._serialized_start=7983 + _globals['_GETEXPERIMENTYIELDINFORESPONSE_ACQUISITIONINFO']._serialized_end=8056 + _globals['_GETEXPERIMENTYIELDINFORESPONSE_ANALYSERINFO']._serialized_start=8059 + _globals['_GETEXPERIMENTYIELDINFORESPONSE_ANALYSERINFO']._serialized_end=8288 + _globals['_GETEXPERIMENTYIELDINFORESPONSE_BULKINFO']._serialized_start=8290 + _globals['_GETEXPERIMENTYIELDINFORESPONSE_BULKINFO']._serialized_end=8341 + _globals['_GETEXPERIMENTYIELDINFORESPONSE_HDFWRITERINFO']._serialized_start=8344 + _globals['_GETEXPERIMENTYIELDINFORESPONSE_HDFWRITERINFO']._serialized_end=8504 + _globals['_GETEXPERIMENTYIELDINFORESPONSE_BASECALLSTATISTICS']._serialized_start=8507 + _globals['_GETEXPERIMENTYIELDINFORESPONSE_BASECALLSTATISTICS']._serialized_end=8852 + _globals['_GETEXPERIMENTYIELDINFORESPONSE_HDFMULTIREADWRITINGSTATISTICS']._serialized_start=8855 + _globals['_GETEXPERIMENTYIELDINFORESPONSE_HDFMULTIREADWRITINGSTATISTICS']._serialized_end=9101 + _globals['_GETEXPERIMENTYIELDINFORESPONSE_FASTQREADWRITINGSTATISTICS']._serialized_start=9104 + _globals['_GETEXPERIMENTYIELDINFORESPONSE_FASTQREADWRITINGSTATISTICS']._serialized_end=9271 + _globals['_GETEXPERIMENTYIELDINFORESPONSE_PROTOBUFREADWRITINGSTATISTICS']._serialized_start=9274 + _globals['_GETEXPERIMENTYIELDINFORESPONSE_PROTOBUFREADWRITINGSTATISTICS']._serialized_end=9413 + _globals['_GETEXPERIMENTYIELDINFORESPONSE_FILEOPERATIONQUEUEPROGRESS']._serialized_start=9416 + _globals['_GETEXPERIMENTYIELDINFORESPONSE_FILEOPERATIONQUEUEPROGRESS']._serialized_end=9964 + _globals['_GETEXPERIMENTYIELDINFORESPONSE_FILEOPERATIONQUEUEPROGRESS_FILETYPEINFO']._serialized_start=9853 + _globals['_GETEXPERIMENTYIELDINFORESPONSE_FILEOPERATIONQUEUEPROGRESS_FILETYPEINFO']._serialized_end=9964 + _globals['_DATASERVICE']._serialized_start=9967 + _globals['_DATASERVICE']._serialized_end=11297 +GetReadStatisticsResponse.ChunkStatistics.__doc__ = """Attributes: + median_sd: + Aggregated median_sd value from all classified reads. Computed + as median(median_sd[...]) + median: + Aggregated median_sd value from all classified reads. + Computed as median(median[...]) + range: + Aggregated range value from all classified reads. Computed as + median(q90[...] - q10[...]) +""" +GetSignalMinMaxResponse.ChannelData.__doc__ = """Attributes: + calibrated_minima: + The minimum value for each window. The type of the elements + will depend on whether calibrated data was chosen. + Uncalibrated data will be signed integers and calibrated data + will be floating-point numbers. It would be nice to use the + "oneof" enum-like type to capture this, but you can't have + repeated members in a oneof, and nor can you have a repeated + oneof field. We can simply include message fields for both + types of data, as all fields are optional in proto3. We will + rely on the code that constructs this message to guarantee + that we don't try and put both types of data into the same + message. Calibrated data is in picoamps. Uncalibrated data is + the raw values output by the device's ADC (analogue-digital + converter). This is guaranteed to be the same size as the + respective foo_maxima field. + calibrated_maxima: + The maximum value for each window. See comments for the + "minima" fields above for details of calibrated and + uncalibrated data. This is guaranteed to be the same size as + the respective foo_minima field. +""" +LockChannelStatesRequest.__doc__ = """Attributes: + channels: + The channels that we want to 'deactivate' = set them to the + given state until we re-activate them with + unlock_channel_states If the channels are already deactivated, + it will update the state to the new forced state given (if + different). Channels are indexed from 1. + state_name: + Channel state name as specified in the channel state + configuration. It HAS to be different to 'unclassified', which + denotes that the channel is active, but had not met any + successful criteria yet. +""" +GetLiveReadsResponse.ReadData.__doc__ = """removed since 6.0 + +Attributes: + id: + The id of this read, this id is unique for every read ever + produced. + start_sample: + Absolute start point of this read + chunk_start_sample: + Absolute start point through the experiment of this chunk + chunk_length: + Length of the chunk in samples + chunk_classifications: + All Classifications given to intermediate chunks by analysis + See analysis_configuration.get_read_classifications for how to + map these integers to names. + raw_data: + Any raw data selected by the request The type of the elements + will depend on whether calibrated data was chosen. The + get_data_types() RPC call should be used to determine the + precise format of the data, but in general terms, uncalibrated + data will be signed integers and calibrated data will be + floating-point numbers. + median_before: + The median of the read previous to this read. intended to + allow querying of the approximate level of this read, comapred + to the last. For example, a user could try to verify this is + a strand be ensuring the median of the current read is lower + than the median_before level. + median: + The media pA level of this read from all aggregated read + chunks so far. + previous_read_classification: + The classification of the chunk prior to this read starting. + previous_read_end_reason: + The classification of the chunk prior to this read starting. +""" +GetReadStatisticsRequest.__doc__ = """Attributes: + channels: + List of channels required, indexed from 1. + duration: + How long to collect the statistics for + no_current_statistics: + Disable current_statistics results in returned data. Intended + for use when the consumer doesn't need specific fields + allowing the implementation to be more efficient. + no_chunk_statistics: + Disable chunk_statistics results in returned data. Intended + for use when the consumer doesn't need specific fields + allowing the implementation to be more efficient. + required_classifications: + Specify classifications which the user wants information + about. The default behaviour (when empty) is to return + information on all classifications. Specifying which + classifications the user needs information about may allow the + implementation to be more efficient. +""" +GetDataTypesResponse.__doc__ = """Attributes: + uncalibrated_signal: + The format of the uncalibrated (ADC) signal data returned by + get_raw_signal_bytes(). In the current release, this will + describe 16-bit little-endian integers. + calibrated_signal: + The format of the calibrated (picoamp) signal data returned by + get_raw_signal_bytes(). In the current release, this will + describe 32-bit IEEE 754 floating point values. + bias_voltages: + The format of the bias voltage data returned by + get_raw_signal_bytes(). In the current release, this will + describe 16-bit little-endian integers. +""" +GetReadStatisticsResponse.Statistics.__doc__ = """Attributes: + q_5: + Quantiles (percentiles) """ GetChannelStatesResponse.ChannelStateData.__doc__ = """Attributes: channel: @@ -225,6 +328,41 @@ Channel config (mux state) the channel state was determined on. """ +GetLiveReadsRequest.UnblockAction.__doc__ = """Attributes: + duration: + Duration of unblock in seconds. +""" +GetLiveReadsResponse.__doc__ = """NOTE that the read metrics below are tracked from the receipt of the +first StreamSetup message. It is advised that the first StreamSetup be +sent close to the experiment start time for maximum accuracy. + +Attributes: + samples_since_start: + The number of samples collected before the first sample + included in this response. This gives the position of the + first data point on each channel in the overall stream of data + being acquired from the device (since this period of data + acquisition was started). + seconds_since_start: + The number of seconds elapsed since data acquisition started. + This is the same as ``samples_since_start``, but expressed in + seconds. + channels: + In progress reads for the requested channels. Sparsely + populated as not all channels have new/incomplete reads. + action_responses: + List of responses to requested actions, informing the caller + of results to requested unblocks or discards of data. +""" +RecordAdaptiveSamplingInformationRequest.__doc__ = """Attributes: + objective: + The reason for applying the adaptive sampling technique. This + must be recorded during the acquisition period in which + adaptive sampling is applied. + end_reason: + The reason why the adaptive sampling script ended. This string + will be truncated to 80 characters. +""" GetSignalBytesRequest.__doc__ = """Attributes: length: The amount of data to return. If this is omitted, data will @@ -257,27 +395,33 @@ affect the signal after that initial response will be reflected in the next messages """ -GetSignalMinMaxResponse.ChannelData.__doc__ = """Attributes: - calibrated_minima: - The minimum value for each window. The type of the elements - will depend on whether calibrated data was chosen. - Uncalibrated data will be signed integers and calibrated data - will be floating-point numbers. It would be nice to use the - "oneof" enum-like type to capture this, but you can't have - repeated members in a oneof, and nor can you have a repeated - oneof field. We can simply include message fields for both - types of data, as all fields are optional in proto3. We will - rely on the code that constructs this message to guarantee - that we don't try and put both types of data into the same - message. Calibrated data is in picoamps. Uncalibrated data is - the raw values output by the device's ADC (analogue-digital - converter). This is guaranteed to be the same size as the - respective foo_maxima field. - calibrated_maxima: - The maximum value for each window. See comments for the - "minima" fields above for details of calibrated and - uncalibrated data. This is guaranteed to be the same size as - the respective foo_minima field. +GetReadStatisticsResponse.PerClassificationData.__doc__ = """Attributes: + duration_statistics: + Statistics of read (chunk) durations. These will be in the + same units as the requested duration (if you ask for X seconds + of data, you will get durations back in seconds, but if you + ask for X samples of data, you will get durations back in + samples). NB: statistics may be estimates. + current_statistics: + Statistics for all current (signal) values for all reads under + this channel/configuration/classification combination. NB: + Statistics are calculated from raw data. + chunk_statistics: + Statistics generated from the analysed read chunks (or + complete reads), rather than the raw signal. + samples_duration: + The number of samples seen with this classification on this + channel in this channel configuration. + seconds_duration: + The number of seconds spent in this classification on this + channel in this channel configuration. This is the same as + ``samples_duration``, but expressed in seconds. +""" +GetSignalBytesResponse.ChannelConfigChange.__doc__ = """Attributes: + config: + The new channel configuration. + offset: + The offset in the returned data where the change was applied. """ GetDataTypesResponse.DataType.__doc__ = """Attributes: type: @@ -289,47 +433,6 @@ size: The size of the data type in bytes. """ -GetLiveReadsRequest.UnblockAction.__doc__ = """Attributes: - duration: - Duration of unblock in seconds. -""" -GetSignalMinMaxRequest.__doc__ = """Attributes: - first_channel: - The first channel (inclusive) to return data for. Note that - channel numbering starts at 1. - last_channel: - The last channel (inclusive) to return data for. Note that - channel numbering starts at 1. - window_size: - The size of window to summarise. A value of zero will be - rejected; there is no default. - calibrated_data: - Whether the data should be calibrated. -""" -GetReadStatisticsRequest.__doc__ = """Attributes: - channels: - List of channels required, indexed from 1. - duration: - How long to collect the statistics for - no_current_statistics: - Disable current_statistics results in returned data. Intended - for use when the consumer doesn't need specific fields - allowing the implementation to be more efficient. - no_chunk_statistics: - Disable chunk_statistics results in returned data. Intended - for use when the consumer doesn't need specific fields - allowing the implementation to be more efficient. - required_classifications: - Specify classifications which the user wants information - about. The default behaviour (when empty) is to return - information on all classifications. Specifying which - classifications the user needs information about may allow the - implementation to be more efficient. -""" -GetReadStatisticsResponse.Statistics.__doc__ = """Attributes: - q_5: - Quantiles (percentiles) -""" GetReadStatisticsResponse.__doc__ = """Attributes: channels: Data for each requested channel, in the same order as @@ -346,56 +449,73 @@ in this response. This is the same as ``samples_since_start``, but expressed in seconds. """ -GetChannelStatesResponse.__doc__ = """Attributes: - channel_states: - The streamed data for all channels will be appended to this - vector. After the request is made, all the channel state - changes are streamed through this array. This is implemented - in the idea of a sparse array because we can have channels - that remain in the same state for a long time. -""" -GetReadStatisticsResponse.PerClassificationData.__doc__ = """Attributes: - duration_statistics: - Statistics of read (chunk) durations. These will be in the - same units as the requested duration (if you ask for X seconds - of data, you will get durations back in seconds, but if you - ask for X samples of data, you will get durations back in - samples). NB: statistics may be estimates. - current_statistics: - Statistics for all current (signal) values for all reads under - this channel/configuration/classification combination. NB: - Statistics are calculated from raw data. - chunk_statistics: - Statistics generated from the analysed read chunks (or - complete reads), rather than the raw signal. - samples_duration: - The number of samples seen with this classification on this - channel in this channel configuration. - seconds_duration: - The number of seconds spent in this classification on this - channel in this channel configuration. This is the same as - ``samples_duration``, but expressed in seconds. +GetChannelStatesRequest.__doc__ = """Attributes: + first_channel: + The first channel (inclusive) to return data for. Note that + channel numbering starts at 1. + last_channel: + The last channel (inclusive) to return data for. Note that + channel numbering starts at 1. + use_channel_states_ids: + If this is true, the returned messages will contain the + channel state id as opposed to the name. By default, the + response will contain channel states names. + wait_for_processing: + If `wait_for_processing` is true, then get_channel_states will + wait until minknow starts acquiring data instead of returning + with an error Defaults to false + heartbeat: + Ensure the stream sends a message at least this often. There + will usually be multiple channel updates a second, but in some + circumstances (eg: a flow cell with no sample loaded) there + can be long periods of time without updates. Setting this + value will ensure that if this period of time passes without + there being any channel state changes to report, an empty + message will be sent. This can be useful to force a minimum + wakeup interval in the client code. """ -GetSignalBytesResponse.ChannelConfigChange.__doc__ = """Attributes: - config: - The new channel configuration. - offset: - The offset in the returned data where the change was applied. +GetLiveReadsRequest.StreamSetup.__doc__ = """Attributes: + first_channel: + The first channel (inclusive) to return data for. Note that + channel numbering starts at 1. + last_channel: + The last channel (inclusive) to return data for. Note that + channel numbering starts at 1. + raw_data_type: + Specify the type of raw data to retrieve + sample_minimum_chunk_size: + Minimum chunk size read data is returned in. + max_unblock_read_length: + Maximum read length MinKNOW will attempt to unblock reads + beyond this length will not be unblocked when Action's + request, instead minknow will skip any further data from the + read. NOTE that read length metrics are tracked from the + receipt of the first StreamSetup message, so reads from the + first batch sent could be longer than the + `max_unblock_read_length_xxx` values unless the first + StreamSetup is sent close to the experiment start time. + max_unblock_read_length_samples: + Maximum read length MinKNOW will attempt to unblock (in + samples). A value of 0 will cause minknow to unblock reads of + any length. + max_unblock_read_length_seconds: + Maximum read length MinKNOW will attempt to unblock (in + seconds). A value of 0.0 will cause minknow to unblock reads + of any length. + accepted_first_chunk_classifications: + A set of classification identifiers which the client is + interested in. If a read starts with a classification not + listed here the read is never sent to the client. """ -LockChannelStatesRequest.__doc__ = """Attributes: - channels: - The channels that we want to 'deactivate' = set them to the - given state until we re-activate them with - unlock_channel_states If the channels are already deactivated, - it will update the state to the new forced state given (if - different). Channels are indexed from 1. - state_name: - Channel state name as specified in the channel state - configuration. It HAS to be different to 'unclassified', which - denotes that the channel is active, but had not met any - successful criteria yet. +GetChannelStatesResponse.__doc__ = """Attributes: + channel_states: + The streamed data for all channels will be appended to this + vector. After the request is made, all the channel state + changes are streamed through this array. This is implemented + in the idea of a sparse array because we can have channels + that remain in the same state for a long time. """ -GetSignalBytesResponse.__doc__ = """Attributes: +GetSignalMinMaxResponse.__doc__ = """Attributes: samples_since_start: The number of samples collected before the first sample included in this response. This gives the position of the @@ -410,22 +530,17 @@ The number of channels omitted at the start of the ``channels`` array. channels: - The signal for each requested channel. Note that + The window bounds for each requested channel. Note that ``skipped_channels`` must be used to determine which channels are given here, as not all channels will be included in every message. The channels that are provided are contiguous and in order, with the first channel being ``first_channel + skipped_channels`` (where ``first_channel`` is from the request message). - bias_voltages: - The bias voltages set for each sample. If bias voltages were - requested, this will provide voltage data, one voltage per - sample. Note that not every message may include bias_voltages - (they will generally be included when ``skipped_channels`` is - 0, but that is not guaranteed). The get_data_types() RPC call - should be used to determine the format of the data. """ -GetLiveReadsRequest.Action.__doc__ = """Attributes: +GetLiveReadsRequest.Action.__doc__ = """removed since 6.0 + +Attributes: channel: Channel name to unblock read: @@ -437,7 +552,21 @@ Skip further data from this read, doesn't affect the read data. """ -GetLiveReadsResponse.__doc__ = """Attributes: +GetReadStatisticsResponse.PerConfigurationData.__doc__ = """Attributes: + channel_configuration: + The channel configuration active during the reads these + statistics were gathered for. + classifications: + Map from classification names to statistics about read + (chunks) with that classification. + incomplete: + If statistics about complete reads were requested, this field + may contain data for a final, incomplete read (whose + classification is therefore unknown). This field will not be + set if read chunks were requested, or if the data capture + happened to end at a complete read boundary. +""" +GetSignalBytesResponse.__doc__ = """Attributes: samples_since_start: The number of samples collected before the first sample included in this response. This gives the position of the @@ -448,105 +577,69 @@ The number of seconds elapsed since data acquisition started. This is the same as ``samples_since_start``, but expressed in seconds. + skipped_channels: + The number of channels omitted at the start of the + ``channels`` array. channels: - In progress reads for the requested channels. Sparsely - populated as not all channels have new/incomplete reads. - action_responses: - List of responses to requested actions, informing the caller - of results to requested unblocks or discards of data. + The signal for each requested channel. Note that + ``skipped_channels`` must be used to determine which channels + are given here, as not all channels will be included in every + message. The channels that are provided are contiguous and in + order, with the first channel being ``first_channel + + skipped_channels`` (where ``first_channel`` is from the + request message). + bias_voltages: + The bias voltages set for each sample. If bias voltages were + requested, this will provide voltage data, one voltage per + sample. Note that not every message may include bias_voltages + (they will generally be included when ``skipped_channels`` is + 0, but that is not guaranteed). The get_data_types() RPC call + should be used to determine the format of the data. """ -GetLiveReadsRequest.StreamSetup.__doc__ = """Attributes: +GetSignalBytesResponse.ChannelData.__doc__ = """Attributes: + data: + The signal data. This is the byte representation of a C-style + array of values. Values are stored in order and adjacent to + each other. The type of the elements will depend on whether + calibrated data was chosen. The get_data_types() RPC call + should be used to determine the precise format of the data, + but in general terms, uncalibrated data will be signed + integers and calibrated data will be floating-point numbers. + Returning the data in this format allows it to be efficiently + processed in dynamic languages that can pass the data straight + down to a native runtime. For example, in Python, this data + can be intepreted directly into a numpy array using + numpy.fromstring(). Calibrated data is in picoamps. + Uncalibrated data is the raw values output by the device's ADC + (analogue-digital converter). + config_changes: + The configuration changes on the channel during data + collection. If channel configuration changes were requested, + this will contain all the channel configuration changes that + affect the returned data. This will include at least one + element, with offset 0, that describes the configuration at + the time the first sample was taken. Note that the offset is + the zero-based index into the adc or picoamps list. The + changes will be ordered by offset. +""" +GetSignalMinMaxRequest.__doc__ = """Attributes: first_channel: The first channel (inclusive) to return data for. Note that channel numbering starts at 1. last_channel: The last channel (inclusive) to return data for. Note that channel numbering starts at 1. - raw_data_type: - Specify the type of raw data to retrieve - sample_minimum_chunk_size: - Minimum chunk size read data is returned in. - max_unblock_read_length: - Maximum read length MinKNOW will attempt to unblock reads - beyond this length will not be unblocked when Action's - request, instead minknow will skip any further data from the - read. - max_unblock_read_length_samples: - Maximum read length MinKNOW will attempt to unblock (in - samples). A value of 0 will cause minknow to unblock reads of - any length. - max_unblock_read_length_seconds: - Maximum read length MinKNOW will attempt to unblock (in - seconds). A value of 0.0 will cause minknow to unblock reads - of any length. - accepted_first_chunk_classifications: - A set of classification identifiers which the client is - interested in. If a read starts with a classification not - listed here the read is never sent to the client. -""" -GetLiveReadsResponse.ReadData.__doc__ = """Attributes: - id: - The id of this read, this id is unique for every read ever - produced. - number: - The minknow assigned number of this read Read numbers always - increment throughout the experiment, and are unique per - channel - however they are not necessarily contiguous. - start_sample: - Absolute start point of this read - chunk_start_sample: - Absolute start point through the experiment of this chunk - chunk_length: - Length of the chunk in samples - chunk_classifications: - All Classifications given to intermediate chunks by analysis - See analysis_configuration.get_read_classifications for how to - map these integers to names. - raw_data: - Any raw data selected by the request The type of the elements - will depend on whether calibrated data was chosen. The - get_data_types() RPC call should be used to determine the - precise format of the data, but in general terms, uncalibrated - data will be signed integers and calibrated data will be - floating-point numbers. - median_before: - The median of the read previous to this read. intended to - allow querying of the approximate level of this read, comapred - to the last. For example, a user could try to verify this is - a strand be ensuring the median of the current read is lower - than the median_before level. - median: - The media pA level of this read from all aggregated read - chunks so far. - previous_read_classification: - The classification of the chunk prior to this read starting. - previous_read_end_reason: - The classification of the chunk prior to this read starting. -""" -GetDataTypesResponse.__doc__ = """Attributes: - uncalibrated_signal: - The format of the uncalibrated (ADC) signal data returned by - get_raw_signal_bytes(). In the current release, this will - describe 16-bit little-endian integers. - calibrated_signal: - The format of the calibrated (picoamp) signal data returned by - get_raw_signal_bytes(). In the current release, this will - describe 32-bit IEEE 754 floating point values. - bias_voltages: - The format of the bias voltage data returned by - get_raw_signal_bytes(). In the current release, this will - describe 16-bit little-endian integers. + window_size: + The size of window to summarise. A value of zero will be + rejected; there is no default. + calibrated_data: + Whether the data should be calibrated. """ -GetReadStatisticsResponse.ChunkStatistics.__doc__ = """Attributes: - median_sd: - Aggregated median_sd value from all classified reads. Computed - as median(median_sd[...]) - median: - Aggregated median_sd value from all classified reads. - Computed as median(median[...]) - range: - Aggregated range value from all classified reads. Computed as - median(q90[...] - q10[...]) +UnlockChannelStatesRequest.__doc__ = """Attributes: + channels: + The channels to activate (active = they will be considered for + channel state evaluation in the future). Channels are indexed + from 1. """ GetLiveReadsRequest.__doc__ = """Attributes: setup: @@ -561,20 +654,6 @@ Actions to take given data returned to the user - can only be sent once the setup message above has been sent. """ -GetReadStatisticsResponse.PerConfigurationData.__doc__ = """Attributes: - channel_configuration: - The channel configuration active during the reads these - statistics were gathered for. - classifications: - Map from classification names to statistics about read - (chunks) with that classification. - incomplete: - If statistics about complete reads were requested, this field - may contain data for a final, incomplete read (whose - classification is therefore unknown). This field will not be - set if read chunks were requested, or if the data capture - happened to end at a complete read boundary. -""" GetReadStatisticsResponse.PerChannelData.__doc__ = """Attributes: configurations: Data for each channel configuration seen on this channel. @@ -595,58 +674,4 @@ The number of seconds of data captured for this session. This is the same as ``samples_duration``, but expressed in seconds. """ -GetSignalMinMaxResponse.__doc__ = """Attributes: - samples_since_start: - The number of samples collected before the first sample - included in this response. This gives the position of the - first data point on each channel in the overall stream of data - being acquired from the device (since this period of data - acquisition was started). - seconds_since_start: - The number of seconds elapsed since data acquisition started. - This is the same as ``samples_since_start``, but expressed in - seconds. - skipped_channels: - The number of channels omitted at the start of the - ``channels`` array. - channels: - The window bounds for each requested channel. Note that - ``skipped_channels`` must be used to determine which channels - are given here, as not all channels will be included in every - message. The channels that are provided are contiguous and in - order, with the first channel being ``first_channel + - skipped_channels`` (where ``first_channel`` is from the - request message). -""" -GetChannelStatesRequest.__doc__ = """Attributes: - first_channel: - The first channel (inclusive) to return data for. Note that - channel numbering starts at 1. - last_channel: - The last channel (inclusive) to return data for. Note that - channel numbering starts at 1. - use_channel_states_ids: - If this is true, the returned messages will contain the - channel state id as opposed to the name. By default, the - response will contain channel states names. - wait_for_processing: - If `wait_for_processing` is true, then get_channel_states will - wait until minknow starts acquiring data instead of returning - with an error Defaults to false - heartbeat: - Ensure the stream sends a message at least this often. There - will usually be multiple channel updates a second, but in some - circumstances (eg: a flow cell with no sample loaded) there - can be long periods of time without updates. Setting this - value will ensure that if this period of time passes without - there being any channel state changes to report, an empty - message will be sent. This can be useful to force a minimum - wakeup interval in the client code. -""" -UnlockChannelStatesRequest.__doc__ = """Attributes: - channels: - The channels to activate (active = they will be considered for - channel state evaluation in the future). Channels are indexed - from 1. -""" # @@protoc_insertion_point(module_scope) diff --git a/python/minknow_api/data_pb2_grpc.py b/python/minknow_api/data_pb2_grpc.py index d1d0b26..3dd08d7 100644 --- a/python/minknow_api/data_pb2_grpc.py +++ b/python/minknow_api/data_pb2_grpc.py @@ -54,6 +54,11 @@ def __init__(self, channel): request_serializer=minknow__api_dot_data__pb2.GetLiveReadsRequest.SerializeToString, response_deserializer=minknow__api_dot_data__pb2.GetLiveReadsResponse.FromString, ) + self.record_adaptive_sampling_information = channel.unary_unary( + '/minknow_api.data.DataService/record_adaptive_sampling_information', + request_serializer=minknow__api_dot_data__pb2.RecordAdaptiveSamplingInformationRequest.SerializeToString, + response_deserializer=minknow__api_dot_data__pb2.RecordAdaptiveSamplingInformationResponse.FromString, + ) self.get_read_statistics = channel.unary_unary( '/minknow_api.data.DataService/get_read_statistics', request_serializer=minknow__api_dot_data__pb2.GetReadStatisticsRequest.SerializeToString, @@ -249,7 +254,7 @@ def get_live_reads(self, request_iterator, context): GetLiveReadsRequest stream: Sent by the user, provides MinKNOW with actions to take on current reads, actions - taken are sumarised and sent back to the user in the GetLiveReadsResponse stream. + taken are summarised and sent back to the user in the GetLiveReadsResponse stream. GetLiveReadsResponse stream: Sent to the user, contains a stream of ongoing sequencing information, sent as regularly as possible, with information on reads in progress, and feedback on actions @@ -270,6 +275,14 @@ def get_live_reads(self, request_iterator, context): context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') + def record_adaptive_sampling_information(self, request, context): + """Record information about adaptive-sampling for telemetry. This is optional + and will not change how adaptive sampling works. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + def get_read_statistics(self, request, context): """Collects statistics about read (chunk) lengths and signal, split by channel, channel configuration and read (chunk) classification. @@ -329,6 +342,11 @@ def add_DataServiceServicer_to_server(servicer, server): request_deserializer=minknow__api_dot_data__pb2.GetLiveReadsRequest.FromString, response_serializer=minknow__api_dot_data__pb2.GetLiveReadsResponse.SerializeToString, ), + 'record_adaptive_sampling_information': grpc.unary_unary_rpc_method_handler( + servicer.record_adaptive_sampling_information, + request_deserializer=minknow__api_dot_data__pb2.RecordAdaptiveSamplingInformationRequest.FromString, + response_serializer=minknow__api_dot_data__pb2.RecordAdaptiveSamplingInformationResponse.SerializeToString, + ), 'get_read_statistics': grpc.unary_unary_rpc_method_handler( servicer.get_read_statistics, request_deserializer=minknow__api_dot_data__pb2.GetReadStatisticsRequest.FromString, @@ -485,6 +503,23 @@ def get_live_reads(request_iterator, options, channel_credentials, insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + @staticmethod + def record_adaptive_sampling_information(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/minknow_api.data.DataService/record_adaptive_sampling_information', + minknow__api_dot_data__pb2.RecordAdaptiveSamplingInformationRequest.SerializeToString, + minknow__api_dot_data__pb2.RecordAdaptiveSamplingInformationResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + @staticmethod def get_read_statistics(request, target, diff --git a/python/minknow_api/data_service.py b/python/minknow_api/data_service.py index dfb46dc..3cf122c 100644 --- a/python/minknow_api/data_service.py +++ b/python/minknow_api/data_service.py @@ -22,6 +22,8 @@ "GetLiveReadsResponse", "ResetChannelStatesRequest", "ResetChannelStatesResponse", + "RecordAdaptiveSamplingInformationRequest", + "RecordAdaptiveSamplingInformationResponse", "GetReadStatisticsRequest", "GetReadStatisticsResponse", "LockChannelStatesRequest", @@ -623,7 +625,7 @@ def get_live_reads(self, iterator): GetLiveReadsRequest stream: Sent by the user, provides MinKNOW with actions to take on current reads, actions - taken are sumarised and sent back to the user in the GetLiveReadsResponse stream. + taken are summarised and sent back to the user in the GetLiveReadsResponse stream. GetLiveReadsResponse stream: Sent to the user, contains a stream of ongoing sequencing information, sent as regularly as possible, with information on reads in progress, and feedback on actions @@ -654,6 +656,66 @@ def get_live_reads(self, iterator): submessages for fields marked with ``[rpc_unwrap]``. """ return self._stub.get_live_reads(iterator) + def record_adaptive_sampling_information(self, _message=None, _timeout=None, **kwargs): + """Record information about adaptive-sampling for telemetry. This is optional + and will not change how adaptive sampling works. + + This RPC is idempotent. It may change the state of the system, but if the requested + change has already happened, it will not fail because of this, make any additional + changes or return a different value. + + Args: + _message (minknow_api.data_pb2.RecordAdaptiveSamplingInformationRequest, optional): The message to send. + This can be passed instead of the keyword arguments. + _timeout (float, optional): The call will be cancelled after this number of seconds + if it has not been completed. + objective (minknow_api.data_pb2.RecordAdaptiveSamplingInformationRequest.Objective, optional): The reason for applying the adaptive sampling technique. This must be recorded during + the acquisition period in which adaptive sampling is applied. + end_reason (str, optional): The reason why the adaptive sampling script ended. This string will be truncated to + 80 characters. + + Returns: + minknow_api.data_pb2.RecordAdaptiveSamplingInformationResponse + + Note that the returned messages are actually wrapped in a type that collapses + submessages for fields marked with ``[rpc_unwrap]``. + """ + if _message is not None: + if isinstance(_message, MessageWrapper): + _message = _message._message + return run_with_retry(self._stub.record_adaptive_sampling_information, + _message, _timeout, + [], + "minknow_api.data.DataService") + + unused_args = set(kwargs.keys()) + + # check oneof group 'information' + oneof_fields = set([ + "objective", + "end_reason", + ]) + + if len(unused_args & oneof_fields) > 1: + raise ArgumentError("record_adaptive_sampling_information given multiple conflicting arguments: '{}'".format(", ".join(unused_args & oneof_fields))) + + _message = RecordAdaptiveSamplingInformationRequest() + + if "objective" in kwargs: + unused_args.remove("objective") + _message.objective = kwargs['objective'] + + if "end_reason" in kwargs: + unused_args.remove("end_reason") + _message.end_reason = kwargs['end_reason'] + + if len(unused_args) > 0: + raise ArgumentError("Unexpected keyword arguments to record_adaptive_sampling_information: '{}'".format(", ".join(unused_args))) + + return run_with_retry(self._stub.record_adaptive_sampling_information, + _message, _timeout, + [], + "minknow_api.data.DataService") def get_read_statistics(self, _message=None, _timeout=None, **kwargs): """Collects statistics about read (chunk) lengths and signal, split by channel, channel configuration and read (chunk) classification. diff --git a/python/minknow_api/device.py b/python/minknow_api/device.py index 23ad753..be41b46 100644 --- a/python/minknow_api/device.py +++ b/python/minknow_api/device.py @@ -25,6 +25,7 @@ class DeviceType(Enum): TRAXION = minknow_api.device_service.GetDeviceInfoResponse.TRAXION P2_SOLO = minknow_api.device_service.GetDeviceInfoResponse.P2_SOLO MINION_MK1D = minknow_api.device_service.GetDeviceInfoResponse.MINION_MK1D + P2_INTEGRATED = minknow_api.device_service.GetDeviceInfoResponse.P2_INTEGRATED def is_minion_like(self): """Whether the device acts like a MinION. @@ -46,7 +47,11 @@ def is_promethion_like(self): Among other things, this means it can be used with the ``promethion`` RPC service (see `minknow_api.prometion_service`). """ - return self in [DeviceType.PROMETHION, DeviceType.P2_SOLO] + return self in [ + DeviceType.PROMETHION, + DeviceType.P2_SOLO, + DeviceType.P2_INTEGRATED, + ] def get_device_type(connection): diff --git a/python/minknow_api/device_pb2.py b/python/minknow_api/device_pb2.py index 1f7e994..a944fb2 100644 --- a/python/minknow_api/device_pb2.py +++ b/python/minknow_api/device_pb2.py @@ -16,7 +16,7 @@ from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x18minknow_api/device.proto\x12\x12minknow_api.device\x1a\x1dminknow_api/rpc_options.proto\x1a\x1egoogle/protobuf/wrappers.proto\":\n\x14\x43hannelConfiguration\x12\x0c\n\x04well\x18\x01 \x01(\r\x12\x14\n\x0ctest_current\x18\x02 \x01(\x08\"S\n\x1cReturnedChannelConfiguration\x12\x0c\n\x04well\x18\x01 \x01(\r\x12\x14\n\x0ctest_current\x18\x02 \x01(\x08\x12\x0f\n\x07unblock\x18\x04 \x01(\x08\"\x16\n\x14GetDeviceInfoRequest\"\x90\x04\n\x15GetDeviceInfoResponse\x12\x11\n\tdevice_id\x18\x01 \x01(\t\x12I\n\x0b\x64\x65vice_type\x18\x02 \x01(\x0e\x32\x34.minknow_api.device.GetDeviceInfoResponse.DeviceType\x12\x14\n\x0cis_simulated\x18\x03 \x01(\x08\x12\x19\n\x11max_channel_count\x18\x04 \x01(\r\x12\x1d\n\x15max_wells_per_channel\x18\x05 \x01(\r\x12\x1b\n\x13\x63\x61n_set_temperature\x18\x06 \x01(\x08\x12\x14\n\x0c\x64igitisation\x18\x07 \x01(\r\x12T\n\x10\x66irmware_version\x18\n \x03(\x0b\x32:.minknow_api.device.GetDeviceInfoResponse.ComponentVersion\x1aM\n\x10\x43omponentVersion\x12\x11\n\tcomponent\x18\x01 \x01(\t\x12\x0f\n\x07version\x18\x02 \x01(\t\x12\x15\n\rserial_number\x18\x03 \x01(\t\"q\n\nDeviceType\x12\n\n\x06MINION\x10\x00\x12\x0b\n\x07GRIDION\x10\x02\x12\x0e\n\nPROMETHION\x10\x03\x12\x0f\n\x0bMINION_MK1C\x10\x04\x12\x0b\n\x07TRAXION\x10\x05\x12\x0b\n\x07P2_SOLO\x10\x06\x12\x0f\n\x0bMINION_MK1D\x10\x07\"\x17\n\x15GetDeviceStateRequest\"\xe8\x01\n\x16GetDeviceStateResponse\x12L\n\x0c\x64\x65vice_state\x18\x01 \x01(\x0e\x32\x36.minknow_api.device.GetDeviceStateResponse.DeviceState\x12\x46\n\x13\x66low_cell_connector\x18\x02 \x01(\x0e\x32).minknow_api.device.FlowCellConnectorType\"8\n\x0b\x44\x65viceState\x12\x17\n\x13\x44\x45VICE_DISCONNECTED\x10\x00\x12\x10\n\x0c\x44\x45VICE_READY\x10\x01\"\x1a\n\x18StreamDeviceStateRequest\"\x18\n\x16GetFlowCellInfoRequest\"\x88\x04\n\x17GetFlowCellInfoResponse\x12\x15\n\rhas_flow_cell\x18\x01 \x01(\x08\x12\x15\n\rchannel_count\x18\x02 \x01(\r\x12\x19\n\x11wells_per_channel\x18\x03 \x01(\r\x12\x14\n\x0c\x66low_cell_id\x18\x04 \x01(\t\x12\x13\n\x0b\x61sic_id_str\x18\r \x01(\t\x12\x14\n\x0cproduct_code\x18\x06 \x01(\t\x12#\n\x1buser_specified_flow_cell_id\x18\x07 \x01(\t\x12#\n\x1buser_specified_product_code\x18\x08 \x01(\t\x12\x13\n\x0bhas_adapter\x18\t \x01(\x08\x12\x12\n\nadapter_id\x18\n \x01(\t\x12\x1c\n\x12temperature_offset\x18\x0b \x01(\x02H\x00\x12\x14\n\x0c\x61sic_version\x18\x0c \x01(\t\x12J\n\x17insertion_script_status\x18\x0e \x01(\x0e\x32).minknow_api.device.InsertionScriptStatus\x12\x11\n\tuse_count\x18\x0f \x01(\r\x12\x17\n\x0fuse_count_limit\x18\x10 \x01(\r\x12\x13\n\x0b\x62\x61rcode_kit\x18\x11 \x01(\t\x12\x10\n\x08\x62\x61rcodes\x18\x12 \x03(\rB\x1d\n\x1btemperature_offset_nullable\"\x1b\n\x19StreamFlowCellInfoRequest\"5\n!SetUserSpecifiedFlowCellIdRequest\x12\x10\n\x02id\x18\x01 \x01(\tB\x04\x88\xb5\x18\x01\"$\n\"SetUserSpecifiedFlowCellIdResponse\"8\n\"SetUserSpecifiedProductCodeRequest\x12\x12\n\x04\x63ode\x18\x01 \x01(\tB\x04\x88\xb5\x18\x01\"%\n#SetUserSpecifiedProductCodeResponse\"\x1a\n\x18GetChannelsLayoutRequest\"W\n\x19GetChannelsLayoutResponse\x12:\n\x0f\x63hannel_records\x18\x01 \x03(\x0b\x32!.minknow_api.device.ChannelRecord\"\xa4\x01\n\rChannelRecord\x12\n\n\x02id\x18\x01 \x01(\r\x12\x0c\n\x04name\x18\x02 \x01(\t\x12@\n\x0bmux_records\x18\x03 \x03(\x0b\x32+.minknow_api.device.ChannelRecord.MuxRecord\x1a\x37\n\tMuxRecord\x12\n\n\x02id\x18\x01 \x01(\r\x12\x0e\n\x06phys_x\x18\x02 \x01(\r\x12\x0e\n\x06phys_y\x18\x03 \x01(\r\"\x1c\n\x1aResetDeviceSettingsRequest\"\x1d\n\x1bResetDeviceSettingsResponse\"\x80\x01\n\x15SetCalibrationRequest\x12\x1b\n\rfirst_channel\x18\x01 \x01(\rB\x04\x88\xb5\x18\x01\x12\x1a\n\x0clast_channel\x18\x02 \x01(\rB\x04\x88\xb5\x18\x01\x12\x15\n\x07offsets\x18\x03 \x03(\x02\x42\x04\x88\xb5\x18\x01\x12\x17\n\tpa_ranges\x18\x04 \x03(\x02\x42\x04\x88\xb5\x18\x01\"\x18\n\x16SetCalibrationResponse\"\x19\n\x17\x43learCalibrationRequest\"\x1a\n\x18\x43learCalibrationResponse\"P\n\x15GetCalibrationRequest\x12\x1b\n\rfirst_channel\x18\x01 \x01(\rB\x04\x88\xb5\x18\x01\x12\x1a\n\x0clast_channel\x18\x02 \x01(\rB\x04\x88\xb5\x18\x01\"k\n\x16GetCalibrationResponse\x12\x14\n\x0c\x64igitisation\x18\x01 \x01(\r\x12\x0f\n\x07offsets\x18\x02 \x03(\x02\x12\x11\n\tpa_ranges\x18\x03 \x03(\x02\x12\x17\n\x0fhas_calibration\x18\x04 \x01(\x08\"\x93\x03\n\x15SetTemperatureRequest\x12\x13\n\x0btemperature\x18\x01 \x01(\x02\x12\x62\n\x14wait_for_temperature\x18\x02 \x01(\x0b\x32\x44.minknow_api.device.SetTemperatureRequest.WaitForTemperatureSettings\x12j\n\x1csecondary_temperature_limits\x18\x03 \x01(\x0b\x32\x44.minknow_api.device.SetTemperatureRequest.SecondaryTemperatureLimits\x1a]\n\x1aWaitForTemperatureSettings\x12\x0f\n\x07timeout\x18\x01 \x01(\r\x12\x1b\n\x13min_stable_duration\x18\x03 \x01(\r\x12\x11\n\ttolerance\x18\x02 \x01(\x02\x1a\x36\n\x1aSecondaryTemperatureLimits\x12\x0b\n\x03min\x18\x01 \x01(\x02\x12\x0b\n\x03max\x18\x02 \x01(\x02\"\xb4\x02\n\x16SetTemperatureResponse\x12)\n!timed_out_waiting_for_temperature\x18\x01 \x01(\x08\x12O\n\x06result\x18\x02 \x01(\x0e\x32?.minknow_api.device.SetTemperatureResponse.SetTemperatureResult\"\x9d\x01\n\x14SetTemperatureResult\x12\x1a\n\x16TARGET_TEMPERATURE_SET\x10\x00\x12\x17\n\x13REACHED_TEMPERATURE\x10\x01\x12%\n!TIMED_OUT_WAITING_FOR_TEMPERATURE\x10\x02\x12)\n%SECONDARY_TEMPERATURE_LIMITS_EXCEEDED\x10\x03\"\x17\n\x15GetTemperatureRequest\"\x9f\x04\n\x16GetTemperatureResponse\x12N\n\x06minion\x18\x01 \x01(\x0b\x32<.minknow_api.device.GetTemperatureResponse.MinIONTemperatureH\x00\x12V\n\npromethion\x18\x02 \x01(\x0b\x32@.minknow_api.device.GetTemperatureResponse.PromethIONTemperatureH\x00\x12\x37\n\x12target_temperature\x18\x03 \x01(\x0b\x32\x1b.google.protobuf.FloatValue\x1a\x85\x01\n\x11MinIONTemperature\x12\x35\n\x10\x61sic_temperature\x18\x01 \x01(\x0b\x32\x1b.google.protobuf.FloatValue\x12\x39\n\x14heatsink_temperature\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.FloatValue\x1a\x8c\x01\n\x15PromethIONTemperature\x12\x39\n\x14\x66lowcell_temperature\x18\x01 \x01(\x0b\x32\x1b.google.protobuf.FloatValue\x12\x38\n\x13\x63hamber_temperature\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.FloatValueB\r\n\x0btemperature\"2\n\x18StreamTemperatureRequest\x12\x16\n\x0eperiod_seconds\x18\x01 \x01(\r\"q\n\x0eUnblockRequest\x12\x10\n\x08\x63hannels\x18\x01 \x03(\r\x12\x1d\n\x13\x64uration_in_seconds\x18\x02 \x01(\rH\x00\x12\"\n\x18\x64uration_in_milliseconds\x18\x03 \x01(\rH\x00\x42\n\n\x08\x64uration\"\x11\n\x0fUnblockResponse\"\x17\n\x15\x43\x61ncelUnblocksRequest\"4\n\x16\x43\x61ncelUnblocksResponse\x12\x1a\n\x12\x63\x61ncelled_unblocks\x18\x01 \x01(\r\"2\n\x1eGetChannelConfigurationRequest\x12\x10\n\x08\x63hannels\x18\x01 \x03(\r\"s\n\x1fGetChannelConfigurationResponse\x12P\n\x16\x63hannel_configurations\x18\x01 \x03(\x0b\x32\x30.minknow_api.device.ReturnedChannelConfiguration\"\xf7\x01\n\x1eSetChannelConfigurationRequest\x12m\n\x16\x63hannel_configurations\x18\x01 \x03(\x0b\x32M.minknow_api.device.SetChannelConfigurationRequest.ChannelConfigurationsEntry\x1a\x66\n\x1a\x43hannelConfigurationsEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12\x37\n\x05value\x18\x02 \x01(\x0b\x32(.minknow_api.device.ChannelConfiguration:\x02\x38\x01\"!\n\x1fSetChannelConfigurationResponse\"r\n!SetChannelConfigurationAllRequest\x12M\n\x15\x63hannel_configuration\x18\x01 \x01(\x0b\x32(.minknow_api.device.ChannelConfigurationB\x04\x90\xb5\x18\x01\"$\n\"SetChannelConfigurationAllResponse\"\xc6\x06\n\x10SaturationConfig\x12\x43\n\nthresholds\x18\x01 \x01(\x0b\x32/.minknow_api.device.SaturationConfig.Thresholds\x12T\n\x13software_saturation\x18\x02 \x01(\x0b\x32\x37.minknow_api.device.SaturationConfig.SoftwareSaturation\x12_\n\x19user_threshold_saturation\x18\x03 \x01(\x0b\x32<.minknow_api.device.SaturationConfig.UserThresholdSaturation\x1a\xfa\x01\n\nThresholds\x12\x37\n\x11general_threshold\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.UInt32Value\x12\x37\n\x11unblock_threshold\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.UInt32Value\x12<\n\x16user_general_threshold\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.UInt32Value\x12<\n\x16user_unblock_threshold\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.UInt32Value\x1a\x93\x01\n\x12SoftwareSaturation\x12\x0f\n\x07\x65nabled\x18\x01 \x01(\x08\x12\x35\n\x10software_min_adc\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int32Value\x12\x35\n\x10software_max_adc\x18\x03 \x01(\x0b\x32\x1b.google.protobuf.Int32Value\x1a\xa2\x01\n\x17UserThresholdSaturation\x12\x0f\n\x07\x65nabled\x18\x01 \x01(\x08\x12:\n\x15user_threshold_min_pa\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.FloatValue\x12:\n\x15user_threshold_max_pa\x18\x03 \x01(\x0b\x32\x1b.google.protobuf.FloatValue\"Z\n\x1aSetSaturationConfigRequest\x12<\n\x08settings\x18\x01 \x01(\x0b\x32$.minknow_api.device.SaturationConfigB\x04\x90\xb5\x18\x01\"\x1d\n\x1bSetSaturationConfigResponse\"\x1c\n\x1aGetSaturationConfigRequest\"[\n\x1bGetSaturationConfigResponse\x12<\n\x08settings\x18\x01 \x01(\x0b\x32$.minknow_api.device.SaturationConfigB\x04\x90\xb5\x18\x01\"\x16\n\x14GetSampleRateRequest\",\n\x15GetSampleRateResponse\x12\x13\n\x0bsample_rate\x18\x01 \x01(\r\"1\n\x14SetSampleRateRequest\x12\x19\n\x0bsample_rate\x18\x01 \x01(\rB\x04\x88\xb5\x18\x01\"1\n\x15SetSampleRateResponse\x12\x18\n\x10real_sample_rate\x18\x01 \x01(\r\"\x17\n\x15GetBiasVoltageRequest\".\n\x16GetBiasVoltageResponse\x12\x14\n\x0c\x62ias_voltage\x18\x01 \x01(\x01\"3\n\x15SetBiasVoltageRequest\x12\x1a\n\x0c\x62ias_voltage\x18\x01 \x01(\x01\x42\x04\x88\xb5\x18\x01\"\x18\n\x16SetBiasVoltageResponse\"\x12\n\x10\x44umpStateRequest\"\x13\n\x11\x44umpStateResponse\"\"\n IncrementFlowCellUseCountRequest\"#\n!IncrementFlowCellUseCountResponse\"0\n\x1cSetFlowCellBarcodeKitRequest\x12\x10\n\x02id\x18\x01 \x01(\tB\x04\x88\xb5\x18\x01\"\x1f\n\x1dSetFlowCellBarcodeKitResponse\"3\n\x1fRegisterFlowCellBarcodesRequest\x12\x10\n\x08\x62\x61rcodes\x18\x01 \x03(\r\"\"\n RegisterFlowCellBarcodesResponse*i\n\x15\x46lowCellConnectorType\x12\x11\n\rFCCON_NOT_SET\x10\x00\x12\x14\n\x10\x46\x43\x43ON_PROMETHION\x10\x01\x12\x14\n\x10\x46\x43\x43ON_MINION_MK1\x10\x02\x12\x11\n\rFCCON_FLONGLE\x10\x03*?\n\x15InsertionScriptStatus\x12\x0b\n\x07NOT_RUN\x10\x00\x12\n\n\x06\x46\x41ILED\x10\x01\x12\r\n\tSUCCEEDED\x10\x02*]\n\x0cSelectedWell\x12\r\n\tWELL_NONE\x10\x00\x12\n\n\x06WELL_1\x10\x01\x12\n\n\x06WELL_2\x10\x02\x12\n\n\x06WELL_3\x10\x03\x12\n\n\x06WELL_4\x10\x04\x12\x0e\n\nWELL_OTHER\x10\x05\x32\xcb\x1c\n\rDeviceService\x12k\n\x0fget_device_info\x12(.minknow_api.device.GetDeviceInfoRequest\x1a).minknow_api.device.GetDeviceInfoResponse\"\x03\x90\x02\x01\x12n\n\x10get_device_state\x12).minknow_api.device.GetDeviceStateRequest\x1a*.minknow_api.device.GetDeviceStateResponse\"\x03\x90\x02\x01\x12v\n\x13stream_device_state\x12,.minknow_api.device.StreamDeviceStateRequest\x1a*.minknow_api.device.GetDeviceStateResponse\"\x03\x90\x02\x01\x30\x01\x12r\n\x12get_flow_cell_info\x12*.minknow_api.device.GetFlowCellInfoRequest\x1a+.minknow_api.device.GetFlowCellInfoResponse\"\x03\x90\x02\x01\x12z\n\x15stream_flow_cell_info\x12-.minknow_api.device.StreamFlowCellInfoRequest\x1a+.minknow_api.device.GetFlowCellInfoResponse\"\x03\x90\x02\x01\x30\x01\x12\x95\x01\n\x1fset_user_specified_flow_cell_id\x12\x35.minknow_api.device.SetUserSpecifiedFlowCellIdRequest\x1a\x36.minknow_api.device.SetUserSpecifiedFlowCellIdResponse\"\x03\x90\x02\x02\x12\x97\x01\n\x1fset_user_specified_product_code\x12\x36.minknow_api.device.SetUserSpecifiedProductCodeRequest\x1a\x37.minknow_api.device.SetUserSpecifiedProductCodeResponse\"\x03\x90\x02\x02\x12w\n\x13get_channels_layout\x12,.minknow_api.device.GetChannelsLayoutRequest\x1a-.minknow_api.device.GetChannelsLayoutResponse\"\x03\x90\x02\x01\x12}\n\x15reset_device_settings\x12..minknow_api.device.ResetDeviceSettingsRequest\x1a/.minknow_api.device.ResetDeviceSettingsResponse\"\x03\x90\x02\x02\x12m\n\x0fset_calibration\x12).minknow_api.device.SetCalibrationRequest\x1a*.minknow_api.device.SetCalibrationResponse\"\x03\x90\x02\x02\x12s\n\x11\x63lear_calibration\x12+.minknow_api.device.ClearCalibrationRequest\x1a,.minknow_api.device.ClearCalibrationResponse\"\x03\x90\x02\x02\x12m\n\x0fget_calibration\x12).minknow_api.device.GetCalibrationRequest\x1a*.minknow_api.device.GetCalibrationResponse\"\x03\x90\x02\x01\x12m\n\x0fset_temperature\x12).minknow_api.device.SetTemperatureRequest\x1a*.minknow_api.device.SetTemperatureResponse\"\x03\x90\x02\x02\x12m\n\x0fget_temperature\x12).minknow_api.device.GetTemperatureRequest\x1a*.minknow_api.device.GetTemperatureResponse\"\x03\x90\x02\x01\x12u\n\x12stream_temperature\x12,.minknow_api.device.StreamTemperatureRequest\x1a*.minknow_api.device.GetTemperatureResponse\"\x03\x90\x02\x01\x30\x01\x12T\n\x07unblock\x12\".minknow_api.device.UnblockRequest\x1a#.minknow_api.device.UnblockResponse\"\x00\x12j\n\x0f\x63\x61ncel_unblocks\x12).minknow_api.device.CancelUnblocksRequest\x1a*.minknow_api.device.CancelUnblocksResponse\"\x00\x12\x89\x01\n\x19get_channel_configuration\x12\x32.minknow_api.device.GetChannelConfigurationRequest\x1a\x33.minknow_api.device.GetChannelConfigurationResponse\"\x03\x90\x02\x01\x12\x89\x01\n\x19set_channel_configuration\x12\x32.minknow_api.device.SetChannelConfigurationRequest\x1a\x33.minknow_api.device.SetChannelConfigurationResponse\"\x03\x90\x02\x02\x12\x93\x01\n\x1dset_channel_configuration_all\x12\x35.minknow_api.device.SetChannelConfigurationAllRequest\x1a\x36.minknow_api.device.SetChannelConfigurationAllResponse\"\x03\x90\x02\x02\x12z\n\x15set_saturation_config\x12..minknow_api.device.SetSaturationConfigRequest\x1a/.minknow_api.device.SetSaturationConfigResponse\"\x00\x12}\n\x15get_saturation_config\x12..minknow_api.device.GetSaturationConfigRequest\x1a/.minknow_api.device.GetSaturationConfigResponse\"\x03\x90\x02\x01\x12k\n\x0fget_sample_rate\x12(.minknow_api.device.GetSampleRateRequest\x1a).minknow_api.device.GetSampleRateResponse\"\x03\x90\x02\x01\x12k\n\x0fset_sample_rate\x12(.minknow_api.device.SetSampleRateRequest\x1a).minknow_api.device.SetSampleRateResponse\"\x03\x90\x02\x02\x12n\n\x10get_bias_voltage\x12).minknow_api.device.GetBiasVoltageRequest\x1a*.minknow_api.device.GetBiasVoltageResponse\"\x03\x90\x02\x01\x12n\n\x10set_bias_voltage\x12).minknow_api.device.SetBiasVoltageRequest\x1a*.minknow_api.device.SetBiasVoltageResponse\"\x03\x90\x02\x02\x12[\n\ndump_state\x12$.minknow_api.device.DumpStateRequest\x1a%.minknow_api.device.DumpStateResponse\"\x00\x12\x8e\x01\n\x1dincrement_flow_cell_use_count\x12\x34.minknow_api.device.IncrementFlowCellUseCountRequest\x1a\x35.minknow_api.device.IncrementFlowCellUseCountResponse\"\x00\x12\x82\x01\n\x19set_flow_cell_barcode_kit\x12\x30.minknow_api.device.SetFlowCellBarcodeKitRequest\x1a\x31.minknow_api.device.SetFlowCellBarcodeKitResponse\"\x00\x12\x8a\x01\n\x1bregister_flow_cell_barcodes\x12\x33.minknow_api.device.RegisterFlowCellBarcodesRequest\x1a\x34.minknow_api.device.RegisterFlowCellBarcodesResponse\"\x00\x42&\n\x1c\x63om.nanoporetech.minknow_api\xa2\x02\x05MKAPIb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x18minknow_api/device.proto\x12\x12minknow_api.device\x1a\x1dminknow_api/rpc_options.proto\x1a\x1egoogle/protobuf/wrappers.proto\":\n\x14\x43hannelConfiguration\x12\x0c\n\x04well\x18\x01 \x01(\r\x12\x14\n\x0ctest_current\x18\x02 \x01(\x08\"S\n\x1cReturnedChannelConfiguration\x12\x0c\n\x04well\x18\x01 \x01(\r\x12\x14\n\x0ctest_current\x18\x02 \x01(\x08\x12\x0f\n\x07unblock\x18\x04 \x01(\x08\"\x16\n\x14GetDeviceInfoRequest\"\xa4\x04\n\x15GetDeviceInfoResponse\x12\x11\n\tdevice_id\x18\x01 \x01(\t\x12I\n\x0b\x64\x65vice_type\x18\x02 \x01(\x0e\x32\x34.minknow_api.device.GetDeviceInfoResponse.DeviceType\x12\x14\n\x0cis_simulated\x18\x03 \x01(\x08\x12\x19\n\x11max_channel_count\x18\x04 \x01(\r\x12\x1d\n\x15max_wells_per_channel\x18\x05 \x01(\r\x12\x1b\n\x13\x63\x61n_set_temperature\x18\x06 \x01(\x08\x12\x14\n\x0c\x64igitisation\x18\x07 \x01(\r\x12T\n\x10\x66irmware_version\x18\n \x03(\x0b\x32:.minknow_api.device.GetDeviceInfoResponse.ComponentVersion\x1aM\n\x10\x43omponentVersion\x12\x11\n\tcomponent\x18\x01 \x01(\t\x12\x0f\n\x07version\x18\x02 \x01(\t\x12\x15\n\rserial_number\x18\x03 \x01(\t\"\x84\x01\n\nDeviceType\x12\n\n\x06MINION\x10\x00\x12\x0b\n\x07GRIDION\x10\x02\x12\x0e\n\nPROMETHION\x10\x03\x12\x0f\n\x0bMINION_MK1C\x10\x04\x12\x0b\n\x07TRAXION\x10\x05\x12\x0b\n\x07P2_SOLO\x10\x06\x12\x0f\n\x0bMINION_MK1D\x10\x07\x12\x11\n\rP2_INTEGRATED\x10\x08\"\x17\n\x15GetDeviceStateRequest\"\xe8\x01\n\x16GetDeviceStateResponse\x12L\n\x0c\x64\x65vice_state\x18\x01 \x01(\x0e\x32\x36.minknow_api.device.GetDeviceStateResponse.DeviceState\x12\x46\n\x13\x66low_cell_connector\x18\x02 \x01(\x0e\x32).minknow_api.device.FlowCellConnectorType\"8\n\x0b\x44\x65viceState\x12\x17\n\x13\x44\x45VICE_DISCONNECTED\x10\x00\x12\x10\n\x0c\x44\x45VICE_READY\x10\x01\"\x1a\n\x18StreamDeviceStateRequest\"\x18\n\x16GetFlowCellInfoRequest\"\xb3\x04\n\x17GetFlowCellInfoResponse\x12\x15\n\rhas_flow_cell\x18\x01 \x01(\x08\x12\x15\n\rchannel_count\x18\x02 \x01(\r\x12\x19\n\x11wells_per_channel\x18\x03 \x01(\r\x12\x14\n\x0c\x66low_cell_id\x18\x04 \x01(\t\x12\x13\n\x0b\x61sic_id_str\x18\r \x01(\t\x12\x14\n\x0cproduct_code\x18\x06 \x01(\t\x12#\n\x1buser_specified_flow_cell_id\x18\x07 \x01(\t\x12#\n\x1buser_specified_product_code\x18\x08 \x01(\t\x12\x13\n\x0bhas_adapter\x18\t \x01(\x08\x12\x12\n\nadapter_id\x18\n \x01(\t\x12\x1c\n\x12temperature_offset\x18\x0b \x01(\x02H\x00\x12\x14\n\x0c\x61sic_version\x18\x0c \x01(\t\x12J\n\x17insertion_script_status\x18\x0e \x01(\x0e\x32).minknow_api.device.InsertionScriptStatus\x12\x11\n\tuse_count\x18\x0f \x01(\r\x12\x17\n\x0fuse_count_limit\x18\x10 \x01(\r\x12\x13\n\x0b\x62\x61rcode_kit\x18\x11 \x01(\t\x12\x10\n\x08\x62\x61rcodes\x18\x12 \x03(\r\x12\x19\n\x11\x66low_cell_partner\x18\x13 \x01(\t\x12\x0e\n\x06is_ctc\x18\x14 \x01(\x08\x42\x1d\n\x1btemperature_offset_nullable\"\x1b\n\x19StreamFlowCellInfoRequest\"5\n!SetUserSpecifiedFlowCellIdRequest\x12\x10\n\x02id\x18\x01 \x01(\tB\x04\x88\xb5\x18\x01\"$\n\"SetUserSpecifiedFlowCellIdResponse\"8\n\"SetUserSpecifiedProductCodeRequest\x12\x12\n\x04\x63ode\x18\x01 \x01(\tB\x04\x88\xb5\x18\x01\"%\n#SetUserSpecifiedProductCodeResponse\"\x1a\n\x18GetChannelsLayoutRequest\"W\n\x19GetChannelsLayoutResponse\x12:\n\x0f\x63hannel_records\x18\x01 \x03(\x0b\x32!.minknow_api.device.ChannelRecord\"\xa4\x01\n\rChannelRecord\x12\n\n\x02id\x18\x01 \x01(\r\x12\x0c\n\x04name\x18\x02 \x01(\t\x12@\n\x0bmux_records\x18\x03 \x03(\x0b\x32+.minknow_api.device.ChannelRecord.MuxRecord\x1a\x37\n\tMuxRecord\x12\n\n\x02id\x18\x01 \x01(\r\x12\x0e\n\x06phys_x\x18\x02 \x01(\r\x12\x0e\n\x06phys_y\x18\x03 \x01(\r\"\x1c\n\x1aResetDeviceSettingsRequest\"\x1d\n\x1bResetDeviceSettingsResponse\"\x80\x01\n\x15SetCalibrationRequest\x12\x1b\n\rfirst_channel\x18\x01 \x01(\rB\x04\x88\xb5\x18\x01\x12\x1a\n\x0clast_channel\x18\x02 \x01(\rB\x04\x88\xb5\x18\x01\x12\x15\n\x07offsets\x18\x03 \x03(\x02\x42\x04\x88\xb5\x18\x01\x12\x17\n\tpa_ranges\x18\x04 \x03(\x02\x42\x04\x88\xb5\x18\x01\"\x18\n\x16SetCalibrationResponse\"\x19\n\x17\x43learCalibrationRequest\"\x1a\n\x18\x43learCalibrationResponse\"P\n\x15GetCalibrationRequest\x12\x1b\n\rfirst_channel\x18\x01 \x01(\rB\x04\x88\xb5\x18\x01\x12\x1a\n\x0clast_channel\x18\x02 \x01(\rB\x04\x88\xb5\x18\x01\"k\n\x16GetCalibrationResponse\x12\x14\n\x0c\x64igitisation\x18\x01 \x01(\r\x12\x0f\n\x07offsets\x18\x02 \x03(\x02\x12\x11\n\tpa_ranges\x18\x03 \x03(\x02\x12\x17\n\x0fhas_calibration\x18\x04 \x01(\x08\"\x93\x03\n\x15SetTemperatureRequest\x12\x13\n\x0btemperature\x18\x01 \x01(\x02\x12\x62\n\x14wait_for_temperature\x18\x02 \x01(\x0b\x32\x44.minknow_api.device.SetTemperatureRequest.WaitForTemperatureSettings\x12j\n\x1csecondary_temperature_limits\x18\x03 \x01(\x0b\x32\x44.minknow_api.device.SetTemperatureRequest.SecondaryTemperatureLimits\x1a]\n\x1aWaitForTemperatureSettings\x12\x0f\n\x07timeout\x18\x01 \x01(\r\x12\x1b\n\x13min_stable_duration\x18\x03 \x01(\r\x12\x11\n\ttolerance\x18\x02 \x01(\x02\x1a\x36\n\x1aSecondaryTemperatureLimits\x12\x0b\n\x03min\x18\x01 \x01(\x02\x12\x0b\n\x03max\x18\x02 \x01(\x02\"\xb4\x02\n\x16SetTemperatureResponse\x12)\n!timed_out_waiting_for_temperature\x18\x01 \x01(\x08\x12O\n\x06result\x18\x02 \x01(\x0e\x32?.minknow_api.device.SetTemperatureResponse.SetTemperatureResult\"\x9d\x01\n\x14SetTemperatureResult\x12\x1a\n\x16TARGET_TEMPERATURE_SET\x10\x00\x12\x17\n\x13REACHED_TEMPERATURE\x10\x01\x12%\n!TIMED_OUT_WAITING_FOR_TEMPERATURE\x10\x02\x12)\n%SECONDARY_TEMPERATURE_LIMITS_EXCEEDED\x10\x03\"\x17\n\x15GetTemperatureRequest\"\xc3\x05\n\x16GetTemperatureResponse\x12N\n\x06minion\x18\x01 \x01(\x0b\x32<.minknow_api.device.GetTemperatureResponse.MinIONTemperatureH\x00\x12V\n\npromethion\x18\x02 \x01(\x0b\x32@.minknow_api.device.GetTemperatureResponse.PromethIONTemperatureH\x00\x12\x37\n\x12target_temperature\x18\x03 \x01(\x0b\x32\x1b.google.protobuf.FloatValue\x12\x42\n\x1bminion_starting_temperature\x18\x04 \x01(\x0b\x32\x1b.google.protobuf.FloatValueH\x01\x12\x46\n\x1fpromethion_starting_temperature\x18\x05 \x01(\x0b\x32\x1b.google.protobuf.FloatValueH\x01\x1a\x85\x01\n\x11MinIONTemperature\x12\x35\n\x10\x61sic_temperature\x18\x01 \x01(\x0b\x32\x1b.google.protobuf.FloatValue\x12\x39\n\x14heatsink_temperature\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.FloatValue\x1a\x8c\x01\n\x15PromethIONTemperature\x12\x39\n\x14\x66lowcell_temperature\x18\x01 \x01(\x0b\x32\x1b.google.protobuf.FloatValue\x12\x38\n\x13\x63hamber_temperature\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.FloatValueB\r\n\x0btemperatureB\x16\n\x14starting_temperature\"2\n\x18StreamTemperatureRequest\x12\x16\n\x0eperiod_seconds\x18\x01 \x01(\r\"q\n\x0eUnblockRequest\x12\x10\n\x08\x63hannels\x18\x01 \x03(\r\x12\x1d\n\x13\x64uration_in_seconds\x18\x02 \x01(\rH\x00\x12\"\n\x18\x64uration_in_milliseconds\x18\x03 \x01(\rH\x00\x42\n\n\x08\x64uration\"\x11\n\x0fUnblockResponse\"\x17\n\x15\x43\x61ncelUnblocksRequest\"4\n\x16\x43\x61ncelUnblocksResponse\x12\x1a\n\x12\x63\x61ncelled_unblocks\x18\x01 \x01(\r\"2\n\x1eGetChannelConfigurationRequest\x12\x10\n\x08\x63hannels\x18\x01 \x03(\r\"s\n\x1fGetChannelConfigurationResponse\x12P\n\x16\x63hannel_configurations\x18\x01 \x03(\x0b\x32\x30.minknow_api.device.ReturnedChannelConfiguration\"\xf7\x01\n\x1eSetChannelConfigurationRequest\x12m\n\x16\x63hannel_configurations\x18\x01 \x03(\x0b\x32M.minknow_api.device.SetChannelConfigurationRequest.ChannelConfigurationsEntry\x1a\x66\n\x1a\x43hannelConfigurationsEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12\x37\n\x05value\x18\x02 \x01(\x0b\x32(.minknow_api.device.ChannelConfiguration:\x02\x38\x01\"!\n\x1fSetChannelConfigurationResponse\"r\n!SetChannelConfigurationAllRequest\x12M\n\x15\x63hannel_configuration\x18\x01 \x01(\x0b\x32(.minknow_api.device.ChannelConfigurationB\x04\x90\xb5\x18\x01\"$\n\"SetChannelConfigurationAllResponse\"\xc6\x06\n\x10SaturationConfig\x12\x43\n\nthresholds\x18\x01 \x01(\x0b\x32/.minknow_api.device.SaturationConfig.Thresholds\x12T\n\x13software_saturation\x18\x02 \x01(\x0b\x32\x37.minknow_api.device.SaturationConfig.SoftwareSaturation\x12_\n\x19user_threshold_saturation\x18\x03 \x01(\x0b\x32<.minknow_api.device.SaturationConfig.UserThresholdSaturation\x1a\xfa\x01\n\nThresholds\x12\x37\n\x11general_threshold\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.UInt32Value\x12\x37\n\x11unblock_threshold\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.UInt32Value\x12<\n\x16user_general_threshold\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.UInt32Value\x12<\n\x16user_unblock_threshold\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.UInt32Value\x1a\x93\x01\n\x12SoftwareSaturation\x12\x0f\n\x07\x65nabled\x18\x01 \x01(\x08\x12\x35\n\x10software_min_adc\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int32Value\x12\x35\n\x10software_max_adc\x18\x03 \x01(\x0b\x32\x1b.google.protobuf.Int32Value\x1a\xa2\x01\n\x17UserThresholdSaturation\x12\x0f\n\x07\x65nabled\x18\x01 \x01(\x08\x12:\n\x15user_threshold_min_pa\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.FloatValue\x12:\n\x15user_threshold_max_pa\x18\x03 \x01(\x0b\x32\x1b.google.protobuf.FloatValue\"Z\n\x1aSetSaturationConfigRequest\x12<\n\x08settings\x18\x01 \x01(\x0b\x32$.minknow_api.device.SaturationConfigB\x04\x90\xb5\x18\x01\"\x1d\n\x1bSetSaturationConfigResponse\"\x1c\n\x1aGetSaturationConfigRequest\"[\n\x1bGetSaturationConfigResponse\x12<\n\x08settings\x18\x01 \x01(\x0b\x32$.minknow_api.device.SaturationConfigB\x04\x90\xb5\x18\x01\"\x16\n\x14GetSampleRateRequest\",\n\x15GetSampleRateResponse\x12\x13\n\x0bsample_rate\x18\x01 \x01(\r\"1\n\x14SetSampleRateRequest\x12\x19\n\x0bsample_rate\x18\x01 \x01(\rB\x04\x88\xb5\x18\x01\"1\n\x15SetSampleRateResponse\x12\x18\n\x10real_sample_rate\x18\x01 \x01(\r\"\x17\n\x15GetBiasVoltageRequest\".\n\x16GetBiasVoltageResponse\x12\x14\n\x0c\x62ias_voltage\x18\x01 \x01(\x01\"3\n\x15SetBiasVoltageRequest\x12\x1a\n\x0c\x62ias_voltage\x18\x01 \x01(\x01\x42\x04\x88\xb5\x18\x01\"\x18\n\x16SetBiasVoltageResponse\"\x12\n\x10\x44umpStateRequest\"\x13\n\x11\x44umpStateResponse\"\"\n IncrementFlowCellUseCountRequest\"#\n!IncrementFlowCellUseCountResponse\"0\n\x1cSetFlowCellBarcodeKitRequest\x12\x10\n\x02id\x18\x01 \x01(\tB\x04\x88\xb5\x18\x01\"\x1f\n\x1dSetFlowCellBarcodeKitResponse\"3\n\x1fRegisterFlowCellBarcodesRequest\x12\x10\n\x08\x62\x61rcodes\x18\x01 \x03(\r\"\"\n RegisterFlowCellBarcodesResponse*i\n\x15\x46lowCellConnectorType\x12\x11\n\rFCCON_NOT_SET\x10\x00\x12\x14\n\x10\x46\x43\x43ON_PROMETHION\x10\x01\x12\x14\n\x10\x46\x43\x43ON_MINION_MK1\x10\x02\x12\x11\n\rFCCON_FLONGLE\x10\x03*?\n\x15InsertionScriptStatus\x12\x0b\n\x07NOT_RUN\x10\x00\x12\n\n\x06\x46\x41ILED\x10\x01\x12\r\n\tSUCCEEDED\x10\x02*]\n\x0cSelectedWell\x12\r\n\tWELL_NONE\x10\x00\x12\n\n\x06WELL_1\x10\x01\x12\n\n\x06WELL_2\x10\x02\x12\n\n\x06WELL_3\x10\x03\x12\n\n\x06WELL_4\x10\x04\x12\x0e\n\nWELL_OTHER\x10\x05\x32\xcb\x1c\n\rDeviceService\x12k\n\x0fget_device_info\x12(.minknow_api.device.GetDeviceInfoRequest\x1a).minknow_api.device.GetDeviceInfoResponse\"\x03\x90\x02\x01\x12n\n\x10get_device_state\x12).minknow_api.device.GetDeviceStateRequest\x1a*.minknow_api.device.GetDeviceStateResponse\"\x03\x90\x02\x01\x12v\n\x13stream_device_state\x12,.minknow_api.device.StreamDeviceStateRequest\x1a*.minknow_api.device.GetDeviceStateResponse\"\x03\x90\x02\x01\x30\x01\x12r\n\x12get_flow_cell_info\x12*.minknow_api.device.GetFlowCellInfoRequest\x1a+.minknow_api.device.GetFlowCellInfoResponse\"\x03\x90\x02\x01\x12z\n\x15stream_flow_cell_info\x12-.minknow_api.device.StreamFlowCellInfoRequest\x1a+.minknow_api.device.GetFlowCellInfoResponse\"\x03\x90\x02\x01\x30\x01\x12\x95\x01\n\x1fset_user_specified_flow_cell_id\x12\x35.minknow_api.device.SetUserSpecifiedFlowCellIdRequest\x1a\x36.minknow_api.device.SetUserSpecifiedFlowCellIdResponse\"\x03\x90\x02\x02\x12\x97\x01\n\x1fset_user_specified_product_code\x12\x36.minknow_api.device.SetUserSpecifiedProductCodeRequest\x1a\x37.minknow_api.device.SetUserSpecifiedProductCodeResponse\"\x03\x90\x02\x02\x12w\n\x13get_channels_layout\x12,.minknow_api.device.GetChannelsLayoutRequest\x1a-.minknow_api.device.GetChannelsLayoutResponse\"\x03\x90\x02\x01\x12}\n\x15reset_device_settings\x12..minknow_api.device.ResetDeviceSettingsRequest\x1a/.minknow_api.device.ResetDeviceSettingsResponse\"\x03\x90\x02\x02\x12m\n\x0fset_calibration\x12).minknow_api.device.SetCalibrationRequest\x1a*.minknow_api.device.SetCalibrationResponse\"\x03\x90\x02\x02\x12s\n\x11\x63lear_calibration\x12+.minknow_api.device.ClearCalibrationRequest\x1a,.minknow_api.device.ClearCalibrationResponse\"\x03\x90\x02\x02\x12m\n\x0fget_calibration\x12).minknow_api.device.GetCalibrationRequest\x1a*.minknow_api.device.GetCalibrationResponse\"\x03\x90\x02\x01\x12m\n\x0fset_temperature\x12).minknow_api.device.SetTemperatureRequest\x1a*.minknow_api.device.SetTemperatureResponse\"\x03\x90\x02\x02\x12m\n\x0fget_temperature\x12).minknow_api.device.GetTemperatureRequest\x1a*.minknow_api.device.GetTemperatureResponse\"\x03\x90\x02\x01\x12u\n\x12stream_temperature\x12,.minknow_api.device.StreamTemperatureRequest\x1a*.minknow_api.device.GetTemperatureResponse\"\x03\x90\x02\x01\x30\x01\x12T\n\x07unblock\x12\".minknow_api.device.UnblockRequest\x1a#.minknow_api.device.UnblockResponse\"\x00\x12j\n\x0f\x63\x61ncel_unblocks\x12).minknow_api.device.CancelUnblocksRequest\x1a*.minknow_api.device.CancelUnblocksResponse\"\x00\x12\x89\x01\n\x19get_channel_configuration\x12\x32.minknow_api.device.GetChannelConfigurationRequest\x1a\x33.minknow_api.device.GetChannelConfigurationResponse\"\x03\x90\x02\x01\x12\x89\x01\n\x19set_channel_configuration\x12\x32.minknow_api.device.SetChannelConfigurationRequest\x1a\x33.minknow_api.device.SetChannelConfigurationResponse\"\x03\x90\x02\x02\x12\x93\x01\n\x1dset_channel_configuration_all\x12\x35.minknow_api.device.SetChannelConfigurationAllRequest\x1a\x36.minknow_api.device.SetChannelConfigurationAllResponse\"\x03\x90\x02\x02\x12z\n\x15set_saturation_config\x12..minknow_api.device.SetSaturationConfigRequest\x1a/.minknow_api.device.SetSaturationConfigResponse\"\x00\x12}\n\x15get_saturation_config\x12..minknow_api.device.GetSaturationConfigRequest\x1a/.minknow_api.device.GetSaturationConfigResponse\"\x03\x90\x02\x01\x12k\n\x0fget_sample_rate\x12(.minknow_api.device.GetSampleRateRequest\x1a).minknow_api.device.GetSampleRateResponse\"\x03\x90\x02\x01\x12k\n\x0fset_sample_rate\x12(.minknow_api.device.SetSampleRateRequest\x1a).minknow_api.device.SetSampleRateResponse\"\x03\x90\x02\x02\x12n\n\x10get_bias_voltage\x12).minknow_api.device.GetBiasVoltageRequest\x1a*.minknow_api.device.GetBiasVoltageResponse\"\x03\x90\x02\x01\x12n\n\x10set_bias_voltage\x12).minknow_api.device.SetBiasVoltageRequest\x1a*.minknow_api.device.SetBiasVoltageResponse\"\x03\x90\x02\x02\x12[\n\ndump_state\x12$.minknow_api.device.DumpStateRequest\x1a%.minknow_api.device.DumpStateResponse\"\x00\x12\x8e\x01\n\x1dincrement_flow_cell_use_count\x12\x34.minknow_api.device.IncrementFlowCellUseCountRequest\x1a\x35.minknow_api.device.IncrementFlowCellUseCountResponse\"\x00\x12\x82\x01\n\x19set_flow_cell_barcode_kit\x12\x30.minknow_api.device.SetFlowCellBarcodeKitRequest\x1a\x31.minknow_api.device.SetFlowCellBarcodeKitResponse\"\x00\x12\x8a\x01\n\x1bregister_flow_cell_barcodes\x12\x33.minknow_api.device.RegisterFlowCellBarcodesRequest\x1a\x34.minknow_api.device.RegisterFlowCellBarcodesResponse\"\x00\x42&\n\x1c\x63om.nanoporetech.minknow_api\xa2\x02\x05MKAPIb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -100,12 +100,12 @@ _globals['_DEVICESERVICE'].methods_by_name['get_bias_voltage']._serialized_options = b'\220\002\001' _globals['_DEVICESERVICE'].methods_by_name['set_bias_voltage']._options = None _globals['_DEVICESERVICE'].methods_by_name['set_bias_voltage']._serialized_options = b'\220\002\002' - _globals['_FLOWCELLCONNECTORTYPE']._serialized_start=6473 - _globals['_FLOWCELLCONNECTORTYPE']._serialized_end=6578 - _globals['_INSERTIONSCRIPTSTATUS']._serialized_start=6580 - _globals['_INSERTIONSCRIPTSTATUS']._serialized_end=6643 - _globals['_SELECTEDWELL']._serialized_start=6645 - _globals['_SELECTEDWELL']._serialized_end=6738 + _globals['_FLOWCELLCONNECTORTYPE']._serialized_start=6700 + _globals['_FLOWCELLCONNECTORTYPE']._serialized_end=6805 + _globals['_INSERTIONSCRIPTSTATUS']._serialized_start=6807 + _globals['_INSERTIONSCRIPTSTATUS']._serialized_end=6870 + _globals['_SELECTEDWELL']._serialized_start=6872 + _globals['_SELECTEDWELL']._serialized_end=6965 _globals['_CHANNELCONFIGURATION']._serialized_start=111 _globals['_CHANNELCONFIGURATION']._serialized_end=169 _globals['_RETURNEDCHANNELCONFIGURATION']._serialized_start=171 @@ -113,256 +113,185 @@ _globals['_GETDEVICEINFOREQUEST']._serialized_start=256 _globals['_GETDEVICEINFOREQUEST']._serialized_end=278 _globals['_GETDEVICEINFORESPONSE']._serialized_start=281 - _globals['_GETDEVICEINFORESPONSE']._serialized_end=809 + _globals['_GETDEVICEINFORESPONSE']._serialized_end=829 _globals['_GETDEVICEINFORESPONSE_COMPONENTVERSION']._serialized_start=617 _globals['_GETDEVICEINFORESPONSE_COMPONENTVERSION']._serialized_end=694 - _globals['_GETDEVICEINFORESPONSE_DEVICETYPE']._serialized_start=696 - _globals['_GETDEVICEINFORESPONSE_DEVICETYPE']._serialized_end=809 - _globals['_GETDEVICESTATEREQUEST']._serialized_start=811 - _globals['_GETDEVICESTATEREQUEST']._serialized_end=834 - _globals['_GETDEVICESTATERESPONSE']._serialized_start=837 - _globals['_GETDEVICESTATERESPONSE']._serialized_end=1069 - _globals['_GETDEVICESTATERESPONSE_DEVICESTATE']._serialized_start=1013 - _globals['_GETDEVICESTATERESPONSE_DEVICESTATE']._serialized_end=1069 - _globals['_STREAMDEVICESTATEREQUEST']._serialized_start=1071 - _globals['_STREAMDEVICESTATEREQUEST']._serialized_end=1097 - _globals['_GETFLOWCELLINFOREQUEST']._serialized_start=1099 - _globals['_GETFLOWCELLINFOREQUEST']._serialized_end=1123 - _globals['_GETFLOWCELLINFORESPONSE']._serialized_start=1126 - _globals['_GETFLOWCELLINFORESPONSE']._serialized_end=1646 - _globals['_STREAMFLOWCELLINFOREQUEST']._serialized_start=1648 - _globals['_STREAMFLOWCELLINFOREQUEST']._serialized_end=1675 - _globals['_SETUSERSPECIFIEDFLOWCELLIDREQUEST']._serialized_start=1677 - _globals['_SETUSERSPECIFIEDFLOWCELLIDREQUEST']._serialized_end=1730 - _globals['_SETUSERSPECIFIEDFLOWCELLIDRESPONSE']._serialized_start=1732 - _globals['_SETUSERSPECIFIEDFLOWCELLIDRESPONSE']._serialized_end=1768 - _globals['_SETUSERSPECIFIEDPRODUCTCODEREQUEST']._serialized_start=1770 - _globals['_SETUSERSPECIFIEDPRODUCTCODEREQUEST']._serialized_end=1826 - _globals['_SETUSERSPECIFIEDPRODUCTCODERESPONSE']._serialized_start=1828 - _globals['_SETUSERSPECIFIEDPRODUCTCODERESPONSE']._serialized_end=1865 - _globals['_GETCHANNELSLAYOUTREQUEST']._serialized_start=1867 - _globals['_GETCHANNELSLAYOUTREQUEST']._serialized_end=1893 - _globals['_GETCHANNELSLAYOUTRESPONSE']._serialized_start=1895 - _globals['_GETCHANNELSLAYOUTRESPONSE']._serialized_end=1982 - _globals['_CHANNELRECORD']._serialized_start=1985 - _globals['_CHANNELRECORD']._serialized_end=2149 - _globals['_CHANNELRECORD_MUXRECORD']._serialized_start=2094 - _globals['_CHANNELRECORD_MUXRECORD']._serialized_end=2149 - _globals['_RESETDEVICESETTINGSREQUEST']._serialized_start=2151 - _globals['_RESETDEVICESETTINGSREQUEST']._serialized_end=2179 - _globals['_RESETDEVICESETTINGSRESPONSE']._serialized_start=2181 - _globals['_RESETDEVICESETTINGSRESPONSE']._serialized_end=2210 - _globals['_SETCALIBRATIONREQUEST']._serialized_start=2213 - _globals['_SETCALIBRATIONREQUEST']._serialized_end=2341 - _globals['_SETCALIBRATIONRESPONSE']._serialized_start=2343 - _globals['_SETCALIBRATIONRESPONSE']._serialized_end=2367 - _globals['_CLEARCALIBRATIONREQUEST']._serialized_start=2369 - _globals['_CLEARCALIBRATIONREQUEST']._serialized_end=2394 - _globals['_CLEARCALIBRATIONRESPONSE']._serialized_start=2396 - _globals['_CLEARCALIBRATIONRESPONSE']._serialized_end=2422 - _globals['_GETCALIBRATIONREQUEST']._serialized_start=2424 - _globals['_GETCALIBRATIONREQUEST']._serialized_end=2504 - _globals['_GETCALIBRATIONRESPONSE']._serialized_start=2506 - _globals['_GETCALIBRATIONRESPONSE']._serialized_end=2613 - _globals['_SETTEMPERATUREREQUEST']._serialized_start=2616 - _globals['_SETTEMPERATUREREQUEST']._serialized_end=3019 - _globals['_SETTEMPERATUREREQUEST_WAITFORTEMPERATURESETTINGS']._serialized_start=2870 - _globals['_SETTEMPERATUREREQUEST_WAITFORTEMPERATURESETTINGS']._serialized_end=2963 - _globals['_SETTEMPERATUREREQUEST_SECONDARYTEMPERATURELIMITS']._serialized_start=2965 - _globals['_SETTEMPERATUREREQUEST_SECONDARYTEMPERATURELIMITS']._serialized_end=3019 - _globals['_SETTEMPERATURERESPONSE']._serialized_start=3022 - _globals['_SETTEMPERATURERESPONSE']._serialized_end=3330 - _globals['_SETTEMPERATURERESPONSE_SETTEMPERATURERESULT']._serialized_start=3173 - _globals['_SETTEMPERATURERESPONSE_SETTEMPERATURERESULT']._serialized_end=3330 - _globals['_GETTEMPERATUREREQUEST']._serialized_start=3332 - _globals['_GETTEMPERATUREREQUEST']._serialized_end=3355 - _globals['_GETTEMPERATURERESPONSE']._serialized_start=3358 - _globals['_GETTEMPERATURERESPONSE']._serialized_end=3901 - _globals['_GETTEMPERATURERESPONSE_MINIONTEMPERATURE']._serialized_start=3610 - _globals['_GETTEMPERATURERESPONSE_MINIONTEMPERATURE']._serialized_end=3743 - _globals['_GETTEMPERATURERESPONSE_PROMETHIONTEMPERATURE']._serialized_start=3746 - _globals['_GETTEMPERATURERESPONSE_PROMETHIONTEMPERATURE']._serialized_end=3886 - _globals['_STREAMTEMPERATUREREQUEST']._serialized_start=3903 - _globals['_STREAMTEMPERATUREREQUEST']._serialized_end=3953 - _globals['_UNBLOCKREQUEST']._serialized_start=3955 - _globals['_UNBLOCKREQUEST']._serialized_end=4068 - _globals['_UNBLOCKRESPONSE']._serialized_start=4070 - _globals['_UNBLOCKRESPONSE']._serialized_end=4087 - _globals['_CANCELUNBLOCKSREQUEST']._serialized_start=4089 - _globals['_CANCELUNBLOCKSREQUEST']._serialized_end=4112 - _globals['_CANCELUNBLOCKSRESPONSE']._serialized_start=4114 - _globals['_CANCELUNBLOCKSRESPONSE']._serialized_end=4166 - _globals['_GETCHANNELCONFIGURATIONREQUEST']._serialized_start=4168 - _globals['_GETCHANNELCONFIGURATIONREQUEST']._serialized_end=4218 - _globals['_GETCHANNELCONFIGURATIONRESPONSE']._serialized_start=4220 - _globals['_GETCHANNELCONFIGURATIONRESPONSE']._serialized_end=4335 - _globals['_SETCHANNELCONFIGURATIONREQUEST']._serialized_start=4338 - _globals['_SETCHANNELCONFIGURATIONREQUEST']._serialized_end=4585 - _globals['_SETCHANNELCONFIGURATIONREQUEST_CHANNELCONFIGURATIONSENTRY']._serialized_start=4483 - _globals['_SETCHANNELCONFIGURATIONREQUEST_CHANNELCONFIGURATIONSENTRY']._serialized_end=4585 - _globals['_SETCHANNELCONFIGURATIONRESPONSE']._serialized_start=4587 - _globals['_SETCHANNELCONFIGURATIONRESPONSE']._serialized_end=4620 - _globals['_SETCHANNELCONFIGURATIONALLREQUEST']._serialized_start=4622 - _globals['_SETCHANNELCONFIGURATIONALLREQUEST']._serialized_end=4736 - _globals['_SETCHANNELCONFIGURATIONALLRESPONSE']._serialized_start=4738 - _globals['_SETCHANNELCONFIGURATIONALLRESPONSE']._serialized_end=4774 - _globals['_SATURATIONCONFIG']._serialized_start=4777 - _globals['_SATURATIONCONFIG']._serialized_end=5615 - _globals['_SATURATIONCONFIG_THRESHOLDS']._serialized_start=5050 - _globals['_SATURATIONCONFIG_THRESHOLDS']._serialized_end=5300 - _globals['_SATURATIONCONFIG_SOFTWARESATURATION']._serialized_start=5303 - _globals['_SATURATIONCONFIG_SOFTWARESATURATION']._serialized_end=5450 - _globals['_SATURATIONCONFIG_USERTHRESHOLDSATURATION']._serialized_start=5453 - _globals['_SATURATIONCONFIG_USERTHRESHOLDSATURATION']._serialized_end=5615 - _globals['_SETSATURATIONCONFIGREQUEST']._serialized_start=5617 - _globals['_SETSATURATIONCONFIGREQUEST']._serialized_end=5707 - _globals['_SETSATURATIONCONFIGRESPONSE']._serialized_start=5709 - _globals['_SETSATURATIONCONFIGRESPONSE']._serialized_end=5738 - _globals['_GETSATURATIONCONFIGREQUEST']._serialized_start=5740 - _globals['_GETSATURATIONCONFIGREQUEST']._serialized_end=5768 - _globals['_GETSATURATIONCONFIGRESPONSE']._serialized_start=5770 - _globals['_GETSATURATIONCONFIGRESPONSE']._serialized_end=5861 - _globals['_GETSAMPLERATEREQUEST']._serialized_start=5863 - _globals['_GETSAMPLERATEREQUEST']._serialized_end=5885 - _globals['_GETSAMPLERATERESPONSE']._serialized_start=5887 - _globals['_GETSAMPLERATERESPONSE']._serialized_end=5931 - _globals['_SETSAMPLERATEREQUEST']._serialized_start=5933 - _globals['_SETSAMPLERATEREQUEST']._serialized_end=5982 - _globals['_SETSAMPLERATERESPONSE']._serialized_start=5984 - _globals['_SETSAMPLERATERESPONSE']._serialized_end=6033 - _globals['_GETBIASVOLTAGEREQUEST']._serialized_start=6035 - _globals['_GETBIASVOLTAGEREQUEST']._serialized_end=6058 - _globals['_GETBIASVOLTAGERESPONSE']._serialized_start=6060 - _globals['_GETBIASVOLTAGERESPONSE']._serialized_end=6106 - _globals['_SETBIASVOLTAGEREQUEST']._serialized_start=6108 - _globals['_SETBIASVOLTAGEREQUEST']._serialized_end=6159 - _globals['_SETBIASVOLTAGERESPONSE']._serialized_start=6161 - _globals['_SETBIASVOLTAGERESPONSE']._serialized_end=6185 - _globals['_DUMPSTATEREQUEST']._serialized_start=6187 - _globals['_DUMPSTATEREQUEST']._serialized_end=6205 - _globals['_DUMPSTATERESPONSE']._serialized_start=6207 - _globals['_DUMPSTATERESPONSE']._serialized_end=6226 - _globals['_INCREMENTFLOWCELLUSECOUNTREQUEST']._serialized_start=6228 - _globals['_INCREMENTFLOWCELLUSECOUNTREQUEST']._serialized_end=6262 - _globals['_INCREMENTFLOWCELLUSECOUNTRESPONSE']._serialized_start=6264 - _globals['_INCREMENTFLOWCELLUSECOUNTRESPONSE']._serialized_end=6299 - _globals['_SETFLOWCELLBARCODEKITREQUEST']._serialized_start=6301 - _globals['_SETFLOWCELLBARCODEKITREQUEST']._serialized_end=6349 - _globals['_SETFLOWCELLBARCODEKITRESPONSE']._serialized_start=6351 - _globals['_SETFLOWCELLBARCODEKITRESPONSE']._serialized_end=6382 - _globals['_REGISTERFLOWCELLBARCODESREQUEST']._serialized_start=6384 - _globals['_REGISTERFLOWCELLBARCODESREQUEST']._serialized_end=6435 - _globals['_REGISTERFLOWCELLBARCODESRESPONSE']._serialized_start=6437 - _globals['_REGISTERFLOWCELLBARCODESRESPONSE']._serialized_end=6471 - _globals['_DEVICESERVICE']._serialized_start=6741 - _globals['_DEVICESERVICE']._serialized_end=10400 -GetFlowCellInfoResponse.__doc__ = """Attributes: - has_flow_cell: - Whether there is a flow cell present. If both this and - has_adapter are false, none of the other fields will contain - useful information. - channel_count: - The number of channels currently supported by the device. - This may be smaller than the ``max_channel_count`` value - returned by get_device_info(), depending on the attached flow - cell. - wells_per_channel: - The number of wells currently supported by the device. This - may be smaller than the ``max_wells_per_channel`` value - returned by get_device_info(), depending on the attached flow - cell. - flow_cell_id: - The unique identifier for the flow cell. This should be same - as the value printed onto the flow cell casing. Not all flow - cells will have the flow cell ID recorded in a way that - MinKNOW can read. In those cases, this will be an empty - string, even though the user may be able to see a printed - identifier on the flow cell. - asic_id_str: - The unique identifier for the ASIC (formatted as string). - This is a value uniquely identifying the ASIC embedded in the - flow cell. It will always be set when a flow cell is present. - The intended use for this is to track the identity of the asic - in the flow cell, eg. for displaying to users during - production of chips. Caveats: * This value will not mean - anything to a customer. * There is no guarantee that this - field will contain the same identifier across MinKNOW - versions, even with the same flow cell. * An ASIC can be - recycled into a new flow cell, so this identifier may be re- - used in the future (although it can be considered unique for - the duration of a protocol run). - product_code: - The product code for the flow cell. This should be the code - displayed in the shop where the flow cell was bought. Not all - flow cells will have the product code recorded in a way that - MinKNOW can read. In those cases, this will be an empty - string. - user_specified_flow_cell_id: - A unique identifier for the flow cell, which the user can - specify. In the event a flow cell does not have an eeprom, - this field contains data input by the user using - set_flow_cell_info to record required data. Only alpha- - numeric, space, dash and underscore characters are allowed in - this field. Since 1.12 - user_specified_product_code: - A product code for the flow cell, which the user can specify. - This should be the code displayed in the shop where the flow - cell was bought. Not all flow cells have an eeprom, in the - event they don't, the user can specify using this id using - set_flow_cell_info. Since 1.12 - has_adapter: - Whether there is a flongle adapter. If this is true, the - adapter_id, channel_count and wells_per_channel fields should - all provide useful information, even if has_flow_cell is - false. - adapter_id: - The unique identifier of an attached flongle adapter. This - should be same as the value printed onto the adapter casing. - temperature_offset_nullable: - Used to make the field nullable, since the null value is not - protobuf's default. - temperature_offset: - The temperature offset for the flow cell, returned as an - offset in degrees Celsius. This offset specifies a correction - to be applied to ASIC temperature. If multiple ASIC - temperatures are available from the device, applies to the - mean temperature. Since 1.14 - asic_version: - The version of the ASIC contained in the flow cell (if - specified by the hardware). This can be used to determine if - the hardware should support certain features added to only - newer ASICs. Possible values include: "IA02C", "IA02D", or if - the value is not readable on the current hardware an empty - string is returned. Since 1.14 - insertion_script_status: - If the configuration specifies a script to run when a flow- - cell is inserted, this shows if it completed successfully. - Since 5.0 - use_count: - The use count for this flow cell. Since 5.6 - use_count_limit: - The advised flow-cell use_count_limit from the configuration. - This limit will not be enforced by MinKNOW-Core. Since 5.6 - barcode_kit: - The flow cell barcode kit identity Since 5.6 - barcodes: - The unique barcodes (as represented by indices between 1 to - 384) that have been set by calls to - register_flow_cell_barcodes() on this flow cell. Since 5.6 + _globals['_GETDEVICEINFORESPONSE_DEVICETYPE']._serialized_start=697 + _globals['_GETDEVICEINFORESPONSE_DEVICETYPE']._serialized_end=829 + _globals['_GETDEVICESTATEREQUEST']._serialized_start=831 + _globals['_GETDEVICESTATEREQUEST']._serialized_end=854 + _globals['_GETDEVICESTATERESPONSE']._serialized_start=857 + _globals['_GETDEVICESTATERESPONSE']._serialized_end=1089 + _globals['_GETDEVICESTATERESPONSE_DEVICESTATE']._serialized_start=1033 + _globals['_GETDEVICESTATERESPONSE_DEVICESTATE']._serialized_end=1089 + _globals['_STREAMDEVICESTATEREQUEST']._serialized_start=1091 + _globals['_STREAMDEVICESTATEREQUEST']._serialized_end=1117 + _globals['_GETFLOWCELLINFOREQUEST']._serialized_start=1119 + _globals['_GETFLOWCELLINFOREQUEST']._serialized_end=1143 + _globals['_GETFLOWCELLINFORESPONSE']._serialized_start=1146 + _globals['_GETFLOWCELLINFORESPONSE']._serialized_end=1709 + _globals['_STREAMFLOWCELLINFOREQUEST']._serialized_start=1711 + _globals['_STREAMFLOWCELLINFOREQUEST']._serialized_end=1738 + _globals['_SETUSERSPECIFIEDFLOWCELLIDREQUEST']._serialized_start=1740 + _globals['_SETUSERSPECIFIEDFLOWCELLIDREQUEST']._serialized_end=1793 + _globals['_SETUSERSPECIFIEDFLOWCELLIDRESPONSE']._serialized_start=1795 + _globals['_SETUSERSPECIFIEDFLOWCELLIDRESPONSE']._serialized_end=1831 + _globals['_SETUSERSPECIFIEDPRODUCTCODEREQUEST']._serialized_start=1833 + _globals['_SETUSERSPECIFIEDPRODUCTCODEREQUEST']._serialized_end=1889 + _globals['_SETUSERSPECIFIEDPRODUCTCODERESPONSE']._serialized_start=1891 + _globals['_SETUSERSPECIFIEDPRODUCTCODERESPONSE']._serialized_end=1928 + _globals['_GETCHANNELSLAYOUTREQUEST']._serialized_start=1930 + _globals['_GETCHANNELSLAYOUTREQUEST']._serialized_end=1956 + _globals['_GETCHANNELSLAYOUTRESPONSE']._serialized_start=1958 + _globals['_GETCHANNELSLAYOUTRESPONSE']._serialized_end=2045 + _globals['_CHANNELRECORD']._serialized_start=2048 + _globals['_CHANNELRECORD']._serialized_end=2212 + _globals['_CHANNELRECORD_MUXRECORD']._serialized_start=2157 + _globals['_CHANNELRECORD_MUXRECORD']._serialized_end=2212 + _globals['_RESETDEVICESETTINGSREQUEST']._serialized_start=2214 + _globals['_RESETDEVICESETTINGSREQUEST']._serialized_end=2242 + _globals['_RESETDEVICESETTINGSRESPONSE']._serialized_start=2244 + _globals['_RESETDEVICESETTINGSRESPONSE']._serialized_end=2273 + _globals['_SETCALIBRATIONREQUEST']._serialized_start=2276 + _globals['_SETCALIBRATIONREQUEST']._serialized_end=2404 + _globals['_SETCALIBRATIONRESPONSE']._serialized_start=2406 + _globals['_SETCALIBRATIONRESPONSE']._serialized_end=2430 + _globals['_CLEARCALIBRATIONREQUEST']._serialized_start=2432 + _globals['_CLEARCALIBRATIONREQUEST']._serialized_end=2457 + _globals['_CLEARCALIBRATIONRESPONSE']._serialized_start=2459 + _globals['_CLEARCALIBRATIONRESPONSE']._serialized_end=2485 + _globals['_GETCALIBRATIONREQUEST']._serialized_start=2487 + _globals['_GETCALIBRATIONREQUEST']._serialized_end=2567 + _globals['_GETCALIBRATIONRESPONSE']._serialized_start=2569 + _globals['_GETCALIBRATIONRESPONSE']._serialized_end=2676 + _globals['_SETTEMPERATUREREQUEST']._serialized_start=2679 + _globals['_SETTEMPERATUREREQUEST']._serialized_end=3082 + _globals['_SETTEMPERATUREREQUEST_WAITFORTEMPERATURESETTINGS']._serialized_start=2933 + _globals['_SETTEMPERATUREREQUEST_WAITFORTEMPERATURESETTINGS']._serialized_end=3026 + _globals['_SETTEMPERATUREREQUEST_SECONDARYTEMPERATURELIMITS']._serialized_start=3028 + _globals['_SETTEMPERATUREREQUEST_SECONDARYTEMPERATURELIMITS']._serialized_end=3082 + _globals['_SETTEMPERATURERESPONSE']._serialized_start=3085 + _globals['_SETTEMPERATURERESPONSE']._serialized_end=3393 + _globals['_SETTEMPERATURERESPONSE_SETTEMPERATURERESULT']._serialized_start=3236 + _globals['_SETTEMPERATURERESPONSE_SETTEMPERATURERESULT']._serialized_end=3393 + _globals['_GETTEMPERATUREREQUEST']._serialized_start=3395 + _globals['_GETTEMPERATUREREQUEST']._serialized_end=3418 + _globals['_GETTEMPERATURERESPONSE']._serialized_start=3421 + _globals['_GETTEMPERATURERESPONSE']._serialized_end=4128 + _globals['_GETTEMPERATURERESPONSE_MINIONTEMPERATURE']._serialized_start=3813 + _globals['_GETTEMPERATURERESPONSE_MINIONTEMPERATURE']._serialized_end=3946 + _globals['_GETTEMPERATURERESPONSE_PROMETHIONTEMPERATURE']._serialized_start=3949 + _globals['_GETTEMPERATURERESPONSE_PROMETHIONTEMPERATURE']._serialized_end=4089 + _globals['_STREAMTEMPERATUREREQUEST']._serialized_start=4130 + _globals['_STREAMTEMPERATUREREQUEST']._serialized_end=4180 + _globals['_UNBLOCKREQUEST']._serialized_start=4182 + _globals['_UNBLOCKREQUEST']._serialized_end=4295 + _globals['_UNBLOCKRESPONSE']._serialized_start=4297 + _globals['_UNBLOCKRESPONSE']._serialized_end=4314 + _globals['_CANCELUNBLOCKSREQUEST']._serialized_start=4316 + _globals['_CANCELUNBLOCKSREQUEST']._serialized_end=4339 + _globals['_CANCELUNBLOCKSRESPONSE']._serialized_start=4341 + _globals['_CANCELUNBLOCKSRESPONSE']._serialized_end=4393 + _globals['_GETCHANNELCONFIGURATIONREQUEST']._serialized_start=4395 + _globals['_GETCHANNELCONFIGURATIONREQUEST']._serialized_end=4445 + _globals['_GETCHANNELCONFIGURATIONRESPONSE']._serialized_start=4447 + _globals['_GETCHANNELCONFIGURATIONRESPONSE']._serialized_end=4562 + _globals['_SETCHANNELCONFIGURATIONREQUEST']._serialized_start=4565 + _globals['_SETCHANNELCONFIGURATIONREQUEST']._serialized_end=4812 + _globals['_SETCHANNELCONFIGURATIONREQUEST_CHANNELCONFIGURATIONSENTRY']._serialized_start=4710 + _globals['_SETCHANNELCONFIGURATIONREQUEST_CHANNELCONFIGURATIONSENTRY']._serialized_end=4812 + _globals['_SETCHANNELCONFIGURATIONRESPONSE']._serialized_start=4814 + _globals['_SETCHANNELCONFIGURATIONRESPONSE']._serialized_end=4847 + _globals['_SETCHANNELCONFIGURATIONALLREQUEST']._serialized_start=4849 + _globals['_SETCHANNELCONFIGURATIONALLREQUEST']._serialized_end=4963 + _globals['_SETCHANNELCONFIGURATIONALLRESPONSE']._serialized_start=4965 + _globals['_SETCHANNELCONFIGURATIONALLRESPONSE']._serialized_end=5001 + _globals['_SATURATIONCONFIG']._serialized_start=5004 + _globals['_SATURATIONCONFIG']._serialized_end=5842 + _globals['_SATURATIONCONFIG_THRESHOLDS']._serialized_start=5277 + _globals['_SATURATIONCONFIG_THRESHOLDS']._serialized_end=5527 + _globals['_SATURATIONCONFIG_SOFTWARESATURATION']._serialized_start=5530 + _globals['_SATURATIONCONFIG_SOFTWARESATURATION']._serialized_end=5677 + _globals['_SATURATIONCONFIG_USERTHRESHOLDSATURATION']._serialized_start=5680 + _globals['_SATURATIONCONFIG_USERTHRESHOLDSATURATION']._serialized_end=5842 + _globals['_SETSATURATIONCONFIGREQUEST']._serialized_start=5844 + _globals['_SETSATURATIONCONFIGREQUEST']._serialized_end=5934 + _globals['_SETSATURATIONCONFIGRESPONSE']._serialized_start=5936 + _globals['_SETSATURATIONCONFIGRESPONSE']._serialized_end=5965 + _globals['_GETSATURATIONCONFIGREQUEST']._serialized_start=5967 + _globals['_GETSATURATIONCONFIGREQUEST']._serialized_end=5995 + _globals['_GETSATURATIONCONFIGRESPONSE']._serialized_start=5997 + _globals['_GETSATURATIONCONFIGRESPONSE']._serialized_end=6088 + _globals['_GETSAMPLERATEREQUEST']._serialized_start=6090 + _globals['_GETSAMPLERATEREQUEST']._serialized_end=6112 + _globals['_GETSAMPLERATERESPONSE']._serialized_start=6114 + _globals['_GETSAMPLERATERESPONSE']._serialized_end=6158 + _globals['_SETSAMPLERATEREQUEST']._serialized_start=6160 + _globals['_SETSAMPLERATEREQUEST']._serialized_end=6209 + _globals['_SETSAMPLERATERESPONSE']._serialized_start=6211 + _globals['_SETSAMPLERATERESPONSE']._serialized_end=6260 + _globals['_GETBIASVOLTAGEREQUEST']._serialized_start=6262 + _globals['_GETBIASVOLTAGEREQUEST']._serialized_end=6285 + _globals['_GETBIASVOLTAGERESPONSE']._serialized_start=6287 + _globals['_GETBIASVOLTAGERESPONSE']._serialized_end=6333 + _globals['_SETBIASVOLTAGEREQUEST']._serialized_start=6335 + _globals['_SETBIASVOLTAGEREQUEST']._serialized_end=6386 + _globals['_SETBIASVOLTAGERESPONSE']._serialized_start=6388 + _globals['_SETBIASVOLTAGERESPONSE']._serialized_end=6412 + _globals['_DUMPSTATEREQUEST']._serialized_start=6414 + _globals['_DUMPSTATEREQUEST']._serialized_end=6432 + _globals['_DUMPSTATERESPONSE']._serialized_start=6434 + _globals['_DUMPSTATERESPONSE']._serialized_end=6453 + _globals['_INCREMENTFLOWCELLUSECOUNTREQUEST']._serialized_start=6455 + _globals['_INCREMENTFLOWCELLUSECOUNTREQUEST']._serialized_end=6489 + _globals['_INCREMENTFLOWCELLUSECOUNTRESPONSE']._serialized_start=6491 + _globals['_INCREMENTFLOWCELLUSECOUNTRESPONSE']._serialized_end=6526 + _globals['_SETFLOWCELLBARCODEKITREQUEST']._serialized_start=6528 + _globals['_SETFLOWCELLBARCODEKITREQUEST']._serialized_end=6576 + _globals['_SETFLOWCELLBARCODEKITRESPONSE']._serialized_start=6578 + _globals['_SETFLOWCELLBARCODEKITRESPONSE']._serialized_end=6609 + _globals['_REGISTERFLOWCELLBARCODESREQUEST']._serialized_start=6611 + _globals['_REGISTERFLOWCELLBARCODESREQUEST']._serialized_end=6662 + _globals['_REGISTERFLOWCELLBARCODESRESPONSE']._serialized_start=6664 + _globals['_REGISTERFLOWCELLBARCODESRESPONSE']._serialized_end=6698 + _globals['_DEVICESERVICE']._serialized_start=6968 + _globals['_DEVICESERVICE']._serialized_end=10627 +GetChannelConfigurationRequest.__doc__ = """Attributes: + channels: + A list of channel names (1-indexed) to specify what channels + to get channel configs for Will return an error if any of the + channel names are below 1, or above the channel count value + returned from :meth:`get_flow_cell_info` """ -SaturationConfig.__doc__ = """Attributes: - thresholds: - Settings for saturation count thresholds, this controls how - long a saturated value must be over limit before the channel - is turned off. If not specified, the previous thresholds are - kept. - software_saturation: - Settings for software saturation, specified in adc units of - the device. If not specified, the previous thresholds are - kept. - user_threshold_saturation: - Settings for user threshold saturation, specified in pA. If - not specified, the previous thresholds are kept. +SetChannelConfigurationRequest.__doc__ = """Attributes: + channel_configurations: + A map between Will return an + error if any of the key values (representing channel names) + are below 1, or above the channel count value returned from + :meth:`get_flow_cell_info` The selected well cannot be set to + WELL_OTHER, and will error if it tries to do so DEPRECATED: + Note that the type to set may change from 4.0 to enforce the + fact that unblock cannot be set through this call +""" +StreamTemperatureRequest.__doc__ = """Attributes: + period_seconds: + How often temperature updates should be sent Defaults to a + period of 1 second, if not specified, or set to 0 + acquisition_run_id: + The acquisition id of the experiment. + data_selection: + The desired data selection. The units for all values are + `seconds since the start of the experiment`. +""" +GetTemperatureResponse.PromethIONTemperature.__doc__ = """Packet of temperatures appropriate for a PromethION. + +Attributes: + flowcell_temperature: + Temperature as measured by thermistor TH2 on the P-Chip. This + is the "primary" temperature + chamber_temperature: + Mean of 12 pixel-blocks temperatures measured with sensors in + the ASIC. This is the "secondary" temperature """ SetSampleRateResponse.__doc__ = """Attributes: real_sample_rate: @@ -377,14 +306,53 @@ 3012 real sample rate. See 'sampling_frequency' in MinionDeviceService for a slightly more in depth explanation """ -GetCalibrationRequest.__doc__ = """Attributes: - first_channel: - The first channel to get calibration data for. This should - normally be 1. - last_channel: - The last channel included in calibration data. This should - normally be the channel count returned by - :meth:`get_flow_cell_info`. +SetTemperatureRequest.__doc__ = """Attributes: + temperature: + The desired temperature in degrees Celsius. If temperature + control is supported and enabled, the device will attempt to + keep its primary temperature at this value. The reading used + as the "primary" temperature depends on the device: - For + MinIONs, the primary temperature is the heatsink temperature - + For PromethIONs, the primary temperature is the flow cell + temperature (If temperature control is not supported or is + not enabled, the call to `set_temperature` will fail with + `FAILED_PRECONDITION`) + wait_for_temperature: + Settings which can be specified in order to wait for the + temperature to be reached. If this is not set at all, no + waiting will be done. If it is set (even to an empty + WaitForTemperatureSettings object), the call will not return + until either: - The target temperature was reached, or - The + timeout was reached, or - The secondary temperature limits + were exceeded If `wait_for_temperature` is supplied then, on + MinIONs and GridIONs, the ASIC power will be enabled if it was + not already. See `acquisition.StopRequest.keep_power_on` for + more details about the implications of this. Since 1.15 + secondary_temperature_limits: + Specify "secondary" temperature limits This field allows + limits to be placed on the "secondary" temperature, while + waiting for the primary temperature to reach its target value + (as specified in the `temperature` field, above). The meaning + of the "secondary" temperature depends on the device in + question: - For MinIONs, this is the ASIC temperature (i.e. + flow cell or flow cell adapter temperature) - For + PromethIONs, this is the "chamber" temperature (which is + derived from the measurements of the ASIC temperature) + These limits are intended to act as a safeguard against the + case where the flow cell does not have good thermal contact + with temperature control hardware (e.g. if the flow cell was + not fully seated when it was inserted into the device). In + such cases, the flow cell temperature may rise high enough to + damage the flow cell; these limits may be used to mitigate the + risk of the flow cell temperature rising high enough to cause + damage to the flow cell. If the secondary temperature exceeds + the specified limits while waiting for the target temperature + to be reached, then all temperature control settings are reset + to the values they had prior to the call to + `set_temperature()` being made. NB - These limits apply ONLY + when waiting for the target temperature to be reached; once + the call to `set_temperature()` returns, these limits are no + longer checked. Since 5.5 """ SaturationConfig.UserThresholdSaturation.__doc__ = """User threshold is specified in pico amps @@ -398,74 +366,11 @@ The maximum pA value that is not a saturation. If this value is not specified, the previous value is kept. """ -RegisterFlowCellBarcodesRequest.__doc__ = """Attributes: - barcodes: - List of unique barcodes that have been used with the flow-cell - Where a barcode is represented by an index in the range of 1 - to 384 only. -""" -GetChannelConfigurationResponse.__doc__ = """Attributes: - channel_configurations: - A list of channel configurations The order of channel - configurations matches the channel order specified by - :attribute:`channels` in the request message -""" -GetDeviceInfoResponse.ComponentVersion.__doc__ = """Firmware versions and serial-numbers of components associated with -this device Depending on the hardware, there may be several -components associated with this device, each with their own firmware -version and serial-number. Not all components have serial-numbers. - -Attributes: - component: - Description of the component that has firmware - version: - The firmware version, if this cannot be determined for a - component where the firmware version would usually be - available, this will contain "Unknown" - serial_number: - The serial-number of a component. If this in not applicable to - the type of component or cannot be read at the current time, - then this field will be blank. -""" -GetCalibrationResponse.__doc__ = """Attributes: - digitisation: - The range of possible ADC values that can be produced by the - device. This is the same as the digitisation value returned - by the :meth:`DeviceService.get_device_info` RPC. It is - included here for convenience. - offsets: - The ADC value adjustment to reach 0pA on each channel. This - is ``-x``, where ``x`` is the (mean) ADC value at 0pA. - pa_ranges: - The range of possible pA values that can be produced on each - channel. The change in pA represented by a change of 1 ADC - can be calculated by dividing the digitisation by this value. - has_calibration: - Find if there is a stored calibration, or if the returned - response is empty. Since 1.12 -""" -ChannelConfiguration.__doc__ = """Describes the configuration of a channel on the device. Note that -this is a lossy representation. The device-specific APIs provide more -precise information. This only describes common configurations, and -omits anything that doesn't impact the received signal. - -Attributes: - well: - The currently-connected well. Wells are counted from 1. 0 - indicates that no well is connected. 5 indicates some non- - generic configuration such as ground for a minion or - connecting all wells on promethion Note that MinKNOW can - return channel configurations where the well number is larger - than the ``max_well_count`` value returned by - :meth:`DeviceService.get_device_info`. This indicates that - some other connection has been made (for example, PromethIONs - can simultaneously connect all wells, and MinIONs can connect - to ground). - test_current: - Whether the test current is connected to the integrator - (measurement circuit). The signal will be a steady test - current produced on the device. This can be used for - calibration or to test the device integration circuits. +CancelUnblocksResponse.__doc__ = """Attributes: + cancelled_unblocks: + The number of unblocks which have been cancelled as part of + this request. Should return the total number of unblock + operations which have been cancelled. """ GetDeviceInfoResponse.__doc__ = """Attributes: device_id: @@ -510,25 +415,82 @@ distinct signal values that can be produced by the device's analog to digital converter (ADC). """ +SaturationConfig.Thresholds.__doc__ = """The thresholds define how many over limit samples are required to +trigger saturation on the device. Each packet of frames minknow +receive is delivered to the saturation check (in approx 64 frame +chunks), only the first frame of each packet is inspected. The +thresholds control how many _packets_ must be outside the valid range. +ie. if general_threshold is set to 10, at least 640 frames are +required to trigger saturation. It is also possible to not define the +value to never trigger saturation in this config. Note: Setting a +saturation threshold to 0 will prevent the threshold from triggering. + +Attributes: + general_threshold: + Threshold for software saturation on all non-unblock muxes + unblock_threshold: + Threshold for software saturation on unblock muxes + user_general_threshold: + Threshold for user threshold saturation on all non-unblock + muxes + user_unblock_threshold: + Threshold for user threshold saturation on unblock muxes +""" +UnblockRequest.__doc__ = """Attributes: + channels: + List of channels indexed from 1. + duration: + How long should an unblock last. +""" SetFlowCellBarcodeKitRequest.__doc__ = """Attributes: id: The Barcode Kit ID can be up to 8 characters long """ -SetChannelConfigurationRequest.__doc__ = """Attributes: - channel_configurations: - A map between Will return an - error if any of the key values (representing channel names) - are below 1, or above the channel count value returned from - :meth:`get_flow_cell_info` The selected well cannot be set to - WELL_OTHER, and will error if it tries to do so DEPRECATED: - Note that the type to set may change from 4.0 to enforce the - fact that unblock cannot be set through this call +SetUserSpecifiedFlowCellIdRequest.__doc__ = """Attributes: + id: + A unique identifier for the flow cell, which the user can + specify. In the event a flow cell does not have an eeprom, + this field can be used by the user to record their + flow_cell_id. Since 1.12 """ -SetUserSpecifiedProductCodeRequest.__doc__ = """Attributes: - code: - A product code for the flow cell, which the user can specify. - In the event a flow cell does not have an eeprom, the user can - specify product code here. Since 1.12 +GetCalibrationResponse.__doc__ = """Attributes: + digitisation: + The range of possible ADC values that can be produced by the + device. This is the same as the digitisation value returned + by the :meth:`DeviceService.get_device_info` RPC. It is + included here for convenience. + offsets: + The ADC value adjustment to reach 0pA on each channel. This + is ``-x``, where ``x`` is the (mean) ADC value at 0pA. + pa_ranges: + The range of possible pA values that can be produced on each + channel. The change in pA represented by a change of 1 ADC + can be calculated by dividing the digitisation by this value. + has_calibration: + Find if there is a stored calibration, or if the returned + response is empty. Since 1.12 +""" +SetTemperatureRequest.SecondaryTemperatureLimits.__doc__ = """Attributes: + min: + The minimum permissible "secondary" temperature + max: + The maximum permissible "secondary" temperature +""" +RegisterFlowCellBarcodesRequest.__doc__ = """Attributes: + barcodes: + List of unique barcodes that have been used with the flow-cell + Where a barcode is represented by an index in the range of 1 + to 384 only. +""" +GetTemperatureResponse.MinIONTemperature.__doc__ = """Packet of temperatures appropriate for a MinION. + +Attributes: + asic_temperature: + Temperature as measured by the probe inside the asic. This is + the "secondary" temperature + heatsink_temperature: + Temperature as measured by the probe in the minion heatsink. + This is the "primary" temperature """ SetTemperatureRequest.WaitForTemperatureSettings.__doc__ = """Attributes: timeout: @@ -552,62 +514,213 @@ 1 any temperature in the range 34 - 36 will cause the request to return. Default is 0.5 degree tolerance. """ -GetTemperatureResponse.__doc__ = """Attributes: - target_temperature: - Return the temperature target the device is aiming to reach. - flowcell_temperature: - Temperature as measured by thermistor TH2 on the P-Chip. - chamber_temperature: - Flow-cell chamber-temperature, calculated from the pixel-block - temperatures - pixel_block_temperature: - Temperature measured at each sensor in the ASIC, there are 12 - sensors, one sensor per pixel-block +SetCalibrationRequest.__doc__ = """Attributes: + first_channel: + The first channel included in calibration data. This must + always be 1. This is required in order to make sure the client + and MinKNOW agree on what data is being provided. + last_channel: + The last channel included in calibration data. This must + always be the same as the channel count returned by + :meth:`get_flow_cell_info`. This is required in order to make + sure the client and MinKNOW agree on what data is being + provided. + offsets: + The ADC value adjustment to reach 0pA on each channel. This + is ``-x``, where ``x`` is the (mean) ADC value at 0pA. + pa_ranges: + The range of possible pA values that can be produced by the + device. """ -GetDeviceStateResponse.__doc__ = """Attributes: - device_state: - Whether the physical hardware is present. This is really only - relevant to MinIONs, which could be unplugged by the user at - any time. - flow_cell_connector: - Indicates what sort of flow cell can be inserted. For - example, if the user needs to set or override the flow cell - product code, this can be used to limit the list of possible - flow cell product codes to choose from. Since 4.1 +GetCalibrationRequest.__doc__ = """Attributes: + first_channel: + The first channel to get calibration data for. This should + normally be 1. + last_channel: + The last channel included in calibration data. This should + normally be the channel count returned by + :meth:`get_flow_cell_info`. """ -SetUserSpecifiedFlowCellIdRequest.__doc__ = """Attributes: - id: +SetTemperatureResponse.__doc__ = """Attributes: + timed_out_waiting_for_temperature: + Find if we hit a timeout waiting for the temperature to be + hit. Deprecated since 5.5; in favour of the + `TIMED_OUT_WAITING_FOR_TEMPERATURE` result code. + result: + The result of setting the temperature Since 5.5 NB - before + 5.5, checking this field will always return a value of + `TARGET_TEMPERATURE_SET` The "real" value may be inferred as + follows: - If `wait_for_temperature` was NOT specified, the + "real" result is `TARGET_TEMPERATURE_SET` - If + `wait_for_temperature` was specified, and + `timed_out_waiting_for_temperature` is false, the "real" + result is `REACHED_TEMPERATURE` - If `wait_for_temperature` + was specified, and `timed_out_waiting_for_temperature` is + true, the "real" result is `TIMED_OUT_WAITING_FOR_TEMPERATURE` + - Versions prior to 5.5 do not support setting the secondary + temperature limit, and so (for these versions) the "real" + value can never be `SECONDARY_TEMPERATURE_LIMITS_EXCEEDED` +""" +GetChannelConfigurationResponse.__doc__ = """Attributes: + channel_configurations: + A list of channel configurations The order of channel + configurations matches the channel order specified by + :attribute:`channels` in the request message +""" +GetDeviceInfoResponse.ComponentVersion.__doc__ = """Firmware versions and serial-numbers of components associated with +this device Depending on the hardware, there may be several +components associated with this device, each with their own firmware +version and serial-number. Not all components have serial-numbers. + +Attributes: + component: + Description of the component that has firmware + version: + The firmware version, if this cannot be determined for a + component where the firmware version would usually be + available, this will contain "Unknown" + serial_number: + The serial-number of a component. If this in not applicable to + the type of component or cannot be read at the current time, + then this field will be blank. +""" +SetUserSpecifiedProductCodeRequest.__doc__ = """Attributes: + code: + A product code for the flow cell, which the user can specify. + In the event a flow cell does not have an eeprom, the user can + specify product code here. Since 1.12 +""" +GetFlowCellInfoResponse.__doc__ = """Attributes: + has_flow_cell: + Whether there is a flow cell present. If both this and + has_adapter are false, none of the other fields will contain + useful information. + channel_count: + The number of channels currently supported by the device. + This may be smaller than the ``max_channel_count`` value + returned by get_device_info(), depending on the attached flow + cell. + wells_per_channel: + The number of wells currently supported by the device. This + may be smaller than the ``max_wells_per_channel`` value + returned by get_device_info(), depending on the attached flow + cell. + flow_cell_id: + The unique identifier for the flow cell. This should be same + as the value printed onto the flow cell casing. Not all flow + cells will have the flow cell ID recorded in a way that + MinKNOW can read. In those cases, this will be an empty + string, even though the user may be able to see a printed + identifier on the flow cell. + asic_id_str: + The unique identifier for the ASIC (formatted as string). + This is a value uniquely identifying the ASIC embedded in the + flow cell. It will always be set when a flow cell is present. + The intended use for this is to track the identity of the asic + in the flow cell, eg. for displaying to users during + production of chips. Caveats: * This value will not mean + anything to a customer. * There is no guarantee that this + field will contain the same identifier across MinKNOW + versions, even with the same flow cell. * An ASIC can be + recycled into a new flow cell, so this identifier may be re- + used in the future (although it can be considered unique for + the duration of a protocol run). + product_code: + The product code for the flow cell. This should be the code + displayed in the shop where the flow cell was bought. Not all + flow cells will have the product code recorded in a way that + MinKNOW can read. In those cases, this will be an empty + string. + user_specified_flow_cell_id: A unique identifier for the flow cell, which the user can - specify. In the event a flow cell does not have an eeprom, - this field can be used by the user to record their - flow_cell_id. Since 1.12 + specify. In the event a flow cell does not have an eeprom, + this field contains data input by the user using + set_flow_cell_info to record required data. Only alpha- + numeric, space, dash and underscore characters are allowed in + this field. Since 1.12 + user_specified_product_code: + A product code for the flow cell, which the user can specify. + This should be the code displayed in the shop where the flow + cell was bought. Not all flow cells have an eeprom, in the + event they don't, the user can specify using this id using + set_flow_cell_info. Since 1.12 + has_adapter: + Whether there is a flongle adapter. If this is true, the + adapter_id, channel_count and wells_per_channel fields should + all provide useful information, even if has_flow_cell is + false. + adapter_id: + The unique identifier of an attached flongle adapter. This + should be same as the value printed onto the adapter casing. + temperature_offset_nullable: + Used to make the field nullable, since the null value is not + protobuf's default. + temperature_offset: + The temperature offset for the flow cell, returned as an + offset in degrees Celsius. This offset specifies a correction + to be applied to ASIC temperature. If multiple ASIC + temperatures are available from the device, applies to the + mean temperature. Since 1.14 + asic_version: + The version of the ASIC contained in the flow cell (if + specified by the hardware). This can be used to determine if + the hardware should support certain features added to only + newer ASICs. Possible values include: "IA02C", "IA02D", or if + the value is not readable on the current hardware an empty + string is returned. Since 1.14 + insertion_script_status: + If the configuration specifies a script to run when a flow- + cell is inserted, this shows if it completed successfully. + Since 5.0 + use_count: + The use count for this flow cell. Since 5.6 + use_count_limit: + The advised flow-cell use_count_limit from the configuration. + This limit will not be enforced by MinKNOW-Core. Since 5.6 + barcode_kit: + The flow cell barcode kit identity Since 5.6 + barcodes: + The unique barcodes (as represented by indices between 1 to + 384) that have been set by calls to + register_flow_cell_barcodes() on this flow cell. Since 5.6 + flow_cell_partner: + The partner the flow cell was produced for. Some partner + companies have flow cells produced specifically for them. If + so, it will be indicated by this field. Most flow cells will + have this either unset or set to "ONT". If this field is set, + it will be exactly three characters. Since 6.0 + is_ctc: + True if the flow cell is a Configuration Test Cell (CTC). + Note that this is currently set if and only if the cell's + product ID starts with 'CTC'. Detection of CTCs constructed + from repurposed standard flow cells will be implemented later. + False negatives are to be expected- that is, for all cases + where this field is 'true', the flow cell is definitely a CTC. + In cases where it is 'false', the flow cell _may_ be a CTC. + Since 6.0 """ -SaturationConfig.Thresholds.__doc__ = """The thresholds define how many over limit samples are required to -trigger saturation on the device. Each packet of frames minknow -receive is delivered to the saturation check (in approx 64 frame -chunks), only the first frame of each packet is inspected. The -thresholds control how many _packets_ must be outside the valid range. -ie. if general_threshold is set to 10, at least 640 frames are -required to trigger saturation. It is also possible to not define the -value to never trigger saturation in this config. Note: Setting a -saturation threshold to 0 will prevent the threshold from triggering. +ChannelConfiguration.__doc__ = """Describes the configuration of a channel on the device. Note that +this is a lossy representation. The device-specific APIs provide more +precise information. This only describes common configurations, and +omits anything that doesn't impact the received signal. Attributes: - general_threshold: - Threshold for software saturation on all non-unblock muxes - unblock_threshold: - Threshold for software saturation on unblock muxes - user_general_threshold: - Threshold for user threshold saturation on all non-unblock - muxes - user_unblock_threshold: - Threshold for user threshold saturation on unblock muxes -""" -CancelUnblocksResponse.__doc__ = """Attributes: - cancelled_unblocks: - The number of unblocks which have been cancelled as part of - this request. Should return the total number of unblock - operations which have been cancelled. + well: + The currently-connected well. Wells are counted from 1. 0 + indicates that no well is connected. 5 indicates some non- + generic configuration such as ground for a minion or + connecting all wells on promethion Note that MinKNOW can + return channel configurations where the well number is larger + than the ``max_well_count`` value returned by + :meth:`DeviceService.get_device_info`. This indicates that + some other connection has been made (for example, PromethIONs + can simultaneously connect all wells, and MinIONs can connect + to ground). + test_current: + Whether the test current is connected to the integrator + (measurement circuit). The signal will be a steady test + current produced on the device. This can be used for + calibration or to test the device integration circuits. """ ReturnedChannelConfiguration.__doc__ = """Describes the configuration of a channel on the device. Note that this is a lossy representation. The device-specific APIs provide more @@ -637,98 +750,33 @@ the connected well. This can be used to drive molecules back out of the well. """ -SetTemperatureRequest.__doc__ = """Attributes: - temperature: - The desired temperature in degrees Celsius. If temperature - control is supported and enabled, the device will attempt to - keep its primary temperature at this value. The reading used - as the "primary" temperature depends on the device: - For - MinIONs, the primary temperature is the heatsink temperature - - For PromethIONs, the primary temperature is the flow cell - temperature (If temperature control is not supported or is - not enabled, the call to `set_temperature` will fail with - `FAILED_PRECONDITION`) - wait_for_temperature: - Settings which can be specified in order to wait for the - temperature to be reached. If this is not set at all, no - waiting will be done. If it is set (even to an empty - WaitForTemperatureSettings object), the call will not return - until either: - The target temperature was reached, or - The - timeout was reached, or - The secondary temperature limits - were exceeded If `wait_for_temperature` is supplied then, on - MinIONs and GridIONs, the ASIC power will be enabled if it was - not already. See `acquisition.StopRequest.keep_power_on` for - more details about the implications of this. Since 1.15 - secondary_temperature_limits: - Specify "secondary" temperature limits This field allows - limits to be placed on the "secondary" temperature, while - waiting for the primary temperature to reach its target value - (as specified in the `temperature` field, above). The meaning - of the "secondary" temperature depends on the device in - question: - For MinIONs, this is the ASIC temperature (i.e. - flow cell or flow cell adapter temperature) - For - PromethIONs, this is the "chamber" temperature (which is - derived from the measurements of the ASIC temperature) - These limits are intended to act as a safeguard against the - case where the flow cell does not have good thermal contact - with temperature control hardware (e.g. if the flow cell was - not fully seated when it was inserted into the device). In - such cases, the flow cell temperature may rise high enough to - damage the flow cell; these limits may be used to mitigate the - risk of the flow cell temperature rising high enough to cause - damage to the flow cell. If the secondary temperature exceeds - the specified limits while waiting for the target temperature - to be reached, then all temperature control settings are reset - to the values they had prior to the call to - `set_temperature()` being made. NB - These limits apply ONLY - when waiting for the target temperature to be reached; once - the call to `set_temperature()` returns, these limits are no - longer checked. Since 5.5 -""" -SetCalibrationRequest.__doc__ = """Attributes: - first_channel: - The first channel included in calibration data. This must - always be 1. This is required in order to make sure the client - and MinKNOW agree on what data is being provided. - last_channel: - The last channel included in calibration data. This must - always be the same as the channel count returned by - :meth:`get_flow_cell_info`. This is required in order to make - sure the client and MinKNOW agree on what data is being - provided. - offsets: - The ADC value adjustment to reach 0pA on each channel. This - is ``-x``, where ``x`` is the (mean) ADC value at 0pA. - pa_ranges: - The range of possible pA values that can be produced by the - device. -""" -GetTemperatureResponse.MinIONTemperature.__doc__ = """Packet of temperatures appropriate for a MinION. - -Attributes: - asic_temperature: - Temperature as measured by the probe inside the asic. This is - the "secondary" temperature - heatsink_temperature: - Temperature as measured by the probe in the minion heatsink. - This is the "primary" temperature +SaturationConfig.__doc__ = """Attributes: + thresholds: + Settings for saturation count thresholds, this controls how + long a saturated value must be over limit before the channel + is turned off. If not specified, the previous thresholds are + kept. + software_saturation: + Settings for software saturation, specified in adc units of + the device. If not specified, the previous thresholds are + kept. + user_threshold_saturation: + Settings for user threshold saturation, specified in pA. If + not specified, the previous thresholds are kept. """ -GetTemperatureResponse.PromethIONTemperature.__doc__ = """Packet of temperatures appropriate for a PromethION. - -Attributes: +GetTemperatureResponse.__doc__ = """Attributes: + target_temperature: + Return the temperature target the device is aiming to reach. + starting_temperature: + Starting temperature value Since 6.0 flowcell_temperature: - Temperature as measured by thermistor TH2 on the P-Chip. This - is the "primary" temperature + Temperature as measured by thermistor TH2 on the P-Chip. chamber_temperature: - Mean of 12 pixel-blocks temperatures measured with sensors in - the ASIC. This is the "secondary" temperature -""" -GetChannelConfigurationRequest.__doc__ = """Attributes: - channels: - A list of channel names (1-indexed) to specify what channels - to get channel configs for Will return an error if any of the - channel names are below 1, or above the channel count value - returned from :meth:`get_flow_cell_info` + Flow-cell chamber-temperature, calculated from the pixel-block + temperatures + pixel_block_temperature: + Temperature measured at each sensor in the ASIC, there are 12 + sensors, one sensor per pixel-block """ SaturationConfig.SoftwareSaturation.__doc__ = """The ranges specify the actual pA or ADC ranges which will trigger saturation. This range is checked against the first sample in each @@ -744,46 +792,15 @@ The maximum adc value that is not a saturation. If this value is not specified, the previous value is kept. """ -StreamTemperatureRequest.__doc__ = """Attributes: - period_seconds: - How often temperature updates should be sent Defaults to a - period of 1 second, if not specified, or set to 0 - acquisition_run_id: - The acquisition id of the experiment. - data_selection: - The desired data selection. The units for all values are - `seconds since the start of the experiment`. -""" -SetTemperatureRequest.SecondaryTemperatureLimits.__doc__ = """Attributes: - min: - The minimum permissible "secondary" temperature - max: - The maximum permissible "secondary" temperature -""" -SetTemperatureResponse.__doc__ = """Attributes: - timed_out_waiting_for_temperature: - Find if we hit a timeout waiting for the temperature to be - hit. Deprecated since 5.5; in favour of the - `TIMED_OUT_WAITING_FOR_TEMPERATURE` result code. - result: - The result of setting the temperature Since 5.5 NB - before - 5.5, checking this field will always return a value of - `TARGET_TEMPERATURE_SET` The "real" value may be inferred as - follows: - If `wait_for_temperature` was NOT specified, the - "real" result is `TARGET_TEMPERATURE_SET` - If - `wait_for_temperature` was specified, and - `timed_out_waiting_for_temperature` is false, the "real" - result is `REACHED_TEMPERATURE` - If `wait_for_temperature` - was specified, and `timed_out_waiting_for_temperature` is - true, the "real" result is `TIMED_OUT_WAITING_FOR_TEMPERATURE` - - Versions prior to 5.5 do not support setting the secondary - temperature limit, and so (for these versions) the "real" - value can never be `SECONDARY_TEMPERATURE_LIMITS_EXCEEDED` -""" -UnblockRequest.__doc__ = """Attributes: - channels: - List of channels indexed from 1. - duration: - How long should an unblock last. +GetDeviceStateResponse.__doc__ = """Attributes: + device_state: + Whether the physical hardware is present. This is really only + relevant to MinIONs, which could be unplugged by the user at + any time. + flow_cell_connector: + Indicates what sort of flow cell can be inserted. For + example, if the user needs to set or override the flow cell + product code, this can be used to limit the list of possible + flow cell product codes to choose from. Since 4.1 """ # @@protoc_insertion_point(module_scope) diff --git a/python/minknow_api/examples/export_to_csv.py b/python/minknow_api/examples/export_to_csv.py index 1b84fe3..99c639b 100755 --- a/python/minknow_api/examples/export_to_csv.py +++ b/python/minknow_api/examples/export_to_csv.py @@ -135,9 +135,9 @@ def main(): experiment_information = {} experiment_information["Experiment ID"] = proto_run_info.protocol_id - experiment_information[ - "Flow-Cell ID" - ] = proto_run_info.flow_cell.flow_cell_id + experiment_information["Flow-Cell ID"] = ( + proto_run_info.flow_cell.flow_cell_id + ) experiment_information["Sample ID"] = proto_run_info.user_info.sample_id end_time = proto_run_info.end_time.ToDatetime() diff --git a/python/minknow_api/examples/extract_run_statistics.py b/python/minknow_api/examples/extract_run_statistics.py index 2fc42c3..f44e337 100644 --- a/python/minknow_api/examples/extract_run_statistics.py +++ b/python/minknow_api/examples/extract_run_statistics.py @@ -34,28 +34,21 @@ def do_title(title_str, title_char): def format_filter_group(filter_group): """Find a descriptive string for `filter_group`.""" - return ( - "barcode: %s, lamp_barcode_id: %s, lamp_target_id: %s, alignment_reference: %s" - % ( - filter_group.barcode_name, - filter_group.lamp_barcode_id, - filter_group.lamp_target_id, - filter_group.alignment_reference, - ) + return "barcode: %s, alignment_reference: %s" % ( + filter_group.barcode_name, + filter_group.alignment_reference, ) # Invoke the API to get a stream of acquisition output results: # # Request snapshots each hour, and ensure data is split on - # alignment reference, barcode name, and lamp target/barcode. + # alignment reference and barcode name. stream = connection.statistics.stream_acquisition_output( acquisition_run_id=acquisition_run_id, data_selection=minknow_api.statistics_pb2.DataSelection(step=60 * 60), split=minknow_api.statistics_pb2.AcquisitionOutputSplit( alignment_reference=True, barcode_name=True, - lamp_barcode_id=True, - lamp_target_id=True, ), ) diff --git a/python/minknow_api/examples/load_sample_sheet.py b/python/minknow_api/examples/load_sample_sheet.py index 65a72d2..1e9b6da 100644 --- a/python/minknow_api/examples/load_sample_sheet.py +++ b/python/minknow_api/examples/load_sample_sheet.py @@ -46,8 +46,6 @@ class SampleSheetParseError(Exception): "barcode", "internal_barcode", "external_barcode", - "rapid_barcode", - "fip_barcode", } @@ -80,7 +78,6 @@ def check_fieldnames(fieldnames: Sequence[str]) -> None: # Should have at most one of the following sets: # { 'barcode' }, # { 'internal_barcode', 'external_barcode' }, - # { 'rapid_barcode', 'fip_barcode' } # # If any of the above sets of barcode columns names are present: # - An `alias` column must be present @@ -96,13 +93,10 @@ def check_fieldnames(fieldnames: Sequence[str]) -> None: "barcode", "internal_barcode", "external_barcode", - "rapid_barcode", - "fip_barcode", } barcoding_column_name_sets = [ {"barcode"}, {"internal_barcode", "external_barcode"}, - {"rapid_barcode", "fip_barcode"}, ] for barcoding_column_name_set in barcoding_column_name_sets: if any(name in fieldnames for name in barcoding_column_name_set): @@ -195,7 +189,6 @@ def extract_passenger_info(record: Record) -> Mapping[str, str]: [ ("barcode_name", str), ("barcode_name_internal", str), - ("lamp_barcode_id", Optional[str]), ("alias", str), ("type", Optional[int]), ("passenger_info", Mapping[str, str]), @@ -255,7 +248,6 @@ def parse_record(parsed_data: ParsedDataDict, record: Record, line_num: int): barcode_name = record["barcode"] barcode_name_internal = None - lamp_barcode_id = None barcode_key = barcode_name elif ("internal_barcode" in record) and ("external_barcode" in record): @@ -279,31 +271,7 @@ def parse_record(parsed_data: ParsedDataDict, record: Record, line_num: int): barcode_name = external_barcode barcode_name_internal = internal_barcode - lamp_barcode_id = None barcode_key = (external_barcode, internal_barcode) - - elif ("rapid_barcode" in record) and ("fip_barcode" in record): - rapid_barcode = record["rapid_barcode"] - fip_barcode = record["fip_barcode"] - - if not re.match(r"barcode(\d{2})", rapid_barcode): - raise SampleSheetParseError( - "Line {}: Bad 'rapid_barcode' name '{}'; ".format( - line_num, rapid_barcode - ) - + "expected a name like 'barcode01'" - ) - - if not re.match(r"FIP(\d{2})", fip_barcode): - raise SampleSheetParseError( - "Line {}: Bad 'fip_barcode' name '{}'; ".format(line_num, fip_barcode) - + "expected a name like 'FIP01'" - ) - - barcode_name = rapid_barcode - barcode_name_internal = None - lamp_barcode_id = fip_barcode - barcode_key = (barcode_name, lamp_barcode_id) else: # No barcode data # Nothing more to do for this line @@ -327,7 +295,6 @@ def parse_record(parsed_data: ParsedDataDict, record: Record, line_num: int): data["barcode_info"][barcode_key] = BarcodeInfo( barcode_name=barcode_name, barcode_name_internal=barcode_name_internal, - lamp_barcode_id=lamp_barcode_id, # We know the alias exists because we checked in `check_fieldnames` alias=record["alias"], type=to_sample_type(record.get("type"), line_num), @@ -342,8 +309,6 @@ def make_barcode_user_data(barcode_info: BarcodeInfo) -> BarcodeUserData: barcode_user_data.barcode_name = barcode_info.barcode_name if barcode_info.barcode_name_internal: barcode_user_data.barcode_name_internal = barcode_info.barcode_name_internal - if barcode_info.lamp_barcode_id: - barcode_user_data.lamp_barcode_id = barcode_info.lamp_barcode_id if barcode_info.alias: barcode_user_data.alias = barcode_info.alias if barcode_info.type: diff --git a/python/minknow_api/examples/run_after_protocol.py b/python/minknow_api/examples/run_after_protocol.py index 29d49b7..400509a 100644 --- a/python/minknow_api/examples/run_after_protocol.py +++ b/python/minknow_api/examples/run_after_protocol.py @@ -4,11 +4,12 @@ Example usage might be: python ./python/minknow_api/examples/run_after_protocol.py \ - --host localhost --position X1 \ # Select which host + position will run a script - --run-id "my_run" \ # Specify the protocol run - --script-to-run "my_script.sh" # Specify a script to run after the protocol has finished - # If no script is specified, then the status of the protocol will be - # displayed before finishing. + --host localhost --position X1 \ + --run-id "my_run" \ + --script-to-run "my_script.sh" + +This will run ``my_script.sh`` after the run ``my_run`` has finished on position X1 of +the local machine. """ # noqa W605 diff --git a/python/minknow_api/examples/start_protocol.py b/python/minknow_api/examples/start_protocol.py index 8c7a960..ff3770e 100644 --- a/python/minknow_api/examples/start_protocol.py +++ b/python/minknow_api/examples/start_protocol.py @@ -4,12 +4,17 @@ Example usage might be: python ./python/minknow_api/examples/start_protocol.py \ - --host localhost --position X1 \ # Select which host + position will run a script - --sample-id "my_sample" --experiment-group "my_group" \ # Set sample id + experiment group - --experiment-duration 24 \ # Set the run time of the experiment - --kit SQK-LSK109 \ # Specify which kit is being run - --basecalling \ # Enable basecalling - --fastq --bam # Choose fastq + bam output options + --host localhost --position X1 \ + --sample-id "my_sample" --experiment-group "my_group" \ + --experiment-duration 24 \ + --kit SQK-LSK109 \ + --basecalling \ + --fastq --bam + +This will start a protocol on position X1 of the local machine, with the sample ID set +to "my_sample" and the run placed in the experiment group "my_group". It will be set to +run for 24 hours. It will assume the sample was prepared using the SQK-LSK109 kit. +Basecalling will be enabled, producing FASTQ and BAM output files. """ # noqa W605 @@ -645,10 +650,6 @@ def main(): args.barcode_kits, args.trim_barcodes, args.barcodes_both_ends, - args.detect_mid_strand_barcodes, - args.min_score, - args.min_score_rear, - args.min_score_mid, ) if args.alignment_reference: diff --git a/python/minknow_api/instance_pb2.py b/python/minknow_api/instance_pb2.py index 55ca2ed..b6d5566 100644 --- a/python/minknow_api/instance_pb2.py +++ b/python/minknow_api/instance_pb2.py @@ -17,7 +17,7 @@ from minknow_api import protocol_pb2 as minknow__api_dot_protocol__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1aminknow_api/instance.proto\x12\x14minknow_api.instance\x1a\x1dminknow_api/acquisition.proto\x1a\x18minknow_api/device.proto\x1a\x1aminknow_api/protocol.proto\"\x17\n\x15GetVersionInfoRequest\"\x90\x05\n\x16GetVersionInfoResponse\x12L\n\x07minknow\x18\x01 \x01(\x0b\x32;.minknow_api.instance.GetVersionInfoResponse.MinknowVersion\x12\r\n\x05\x62ream\x18\x02 \x01(\t\x12\x1c\n\x14\x64istribution_version\x18\x03 \x01(\t\x12\\\n\x13\x64istribution_status\x18\x04 \x01(\x0e\x32?.minknow_api.instance.GetVersionInfoResponse.DistributionStatus\x12\x1e\n\x16protocol_configuration\x18\x05 \x01(\t\x12X\n\x11installation_type\x18\x06 \x01(\x0e\x32=.minknow_api.instance.GetVersionInfoResponse.InstallationType\x12\x1b\n\x13guppy_build_version\x18\x07 \x01(\t\x12\x1f\n\x17guppy_connected_version\x18\x08 \x01(\t\x1aK\n\x0eMinknowVersion\x12\r\n\x05major\x18\x01 \x01(\x05\x12\r\n\x05minor\x18\x02 \x01(\x05\x12\r\n\x05patch\x18\x03 \x01(\x05\x12\x0c\n\x04\x66ull\x18\x04 \x01(\t\"I\n\x12\x44istributionStatus\x12\x0b\n\x07UNKNOWN\x10\x00\x12\n\n\x06STABLE\x10\x01\x12\x0c\n\x08UNSTABLE\x10\x02\x12\x0c\n\x08MODIFIED\x10\x03\"M\n\x10InstallationType\x12\x07\n\x03ONT\x10\x00\x12\x06\n\x02NC\x10\x01\x12\x08\n\x04PROD\x10\x02\x12\r\n\tQ_RELEASE\x10\x03\x12\x0f\n\x0bOND_RELEASE\x10\x04\"\x1d\n\x1bGetOutputDirectoriesRequest\"?\n\x11OutputDirectories\x12\x0e\n\x06output\x18\x01 \x01(\t\x12\x0b\n\x03log\x18\x02 \x01(\t\x12\r\n\x05reads\x18\x03 \x01(\t\"$\n\"GetDefaultOutputDirectoriesRequest\")\n\x19SetOutputDirectoryRequest\x12\x0c\n\x04path\x18\x01 \x01(\t\"\x1c\n\x1aSetOutputDirectoryResponse\"(\n\x18SetReadsDirectoryRequest\x12\x0c\n\x04path\x18\x01 \x01(\t\"\x1b\n\x19SetReadsDirectoryResponse\"\xfa\x01\n\x17\x46ilesystemDiskSpaceInfo\x12\x15\n\rfilesystem_id\x18\x01 \x01(\t\x12\x17\n\x0f\x62ytes_available\x18\x02 \x01(\x04\x12\x16\n\x0e\x62ytes_capacity\x18\x03 \x01(\x04\x12\x0c\n\x04what\x18\x04 \x03(\t\x12\x1d\n\x15\x62ytes_to_stop_cleanly\x18\x05 \x01(\x04\x12\x1f\n\x17\x62ytes_when_alert_issued\x18\x06 \x01(\x04\x12\x17\n\x0frecommend_alert\x18\x07 \x01(\x08\x12\x16\n\x0erecommend_stop\x18\x08 \x01(\x08\x12\x18\n\x10\x62ytes_per_second\x18\t \x01(\x03\"\x19\n\x17GetDiskSpaceInfoRequest\",\n\x1aStreamDiskSpaceInfoRequest\x12\x0e\n\x06period\x18\x01 \x01(\r\"m\n\x18GetDiskSpaceInfoResponse\x12Q\n\x1a\x66ilesystem_disk_space_info\x18\x01 \x03(\x0b\x32-.minknow_api.instance.FilesystemDiskSpaceInfo\"\x15\n\x13GetMachineIdRequest\"*\n\x14GetMachineIdResponse\x12\x12\n\nmachine_id\x18\x01 \x01(\t\"\x1f\n\x1dStreamInstanceActivityRequest\"\x9a\x01\n\nDeviceInfo\x12L\n\x0c\x64\x65vice_state\x18\x01 \x01(\x0e\x32\x36.minknow_api.device.GetDeviceStateResponse.DeviceState\x12>\n\x0b\x64\x65vice_info\x18\x02 \x01(\x0b\x32).minknow_api.device.GetDeviceInfoResponse\",\n\rBasecallSpeed\x12\x1b\n\x13mean_basecall_speed\x18\x01 \x01(\x02\")\n\x03N50\x12\x0b\n\x03n50\x18\x01 \x01(\x02\x12\x15\n\restimated_n50\x18\x02 \x01(\x02\"\xaf\x06\n\x1eStreamInstanceActivityResponse\x12\x37\n\x0b\x64\x65vice_info\x18\x01 \x01(\x0b\x32 .minknow_api.instance.DeviceInfoH\x00\x12\x45\n\x0e\x66low_cell_info\x18\x02 \x01(\x0b\x32+.minknow_api.device.GetFlowCellInfoResponseH\x00\x12\x42\n\x11protocol_run_info\x18\x03 \x01(\x0b\x32%.minknow_api.protocol.ProtocolRunInfoH\x00\x12K\n\x14\x61\x63quisition_run_info\x18\x04 \x01(\x0b\x32+.minknow_api.acquisition.AcquisitionRunInfoH\x00\x12_\n\x10\x66low_cell_health\x18\x05 \x01(\x0b\x32\x43.minknow_api.instance.StreamInstanceActivityResponse.FlowCellHealthH\x00\x12I\n\ryield_summary\x18\x06 \x01(\x0b\x32\x30.minknow_api.acquisition.AcquisitionYieldSummaryH\x00\x12=\n\x0e\x62\x61secall_speed\x18\x07 \x01(\x0b\x32#.minknow_api.instance.BasecallSpeedH\x00\x12(\n\x03n50\x18\x08 \x01(\x0b\x32\x19.minknow_api.instance.N50H\x00\x1a\xd6\x01\n\x0e\x46lowCellHealth\x12\x83\x01\n\x19\x63hannel_state_percentages\x18\x01 \x03(\x0b\x32`.minknow_api.instance.StreamInstanceActivityResponse.FlowCellHealth.ChannelStatePercentagesEntry\x1a>\n\x1c\x43hannelStatePercentagesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x02:\x02\x38\x01\x42\x0e\n\x0cstream_value2\x84\t\n\x0fInstanceService\x12r\n\x10get_version_info\x12+.minknow_api.instance.GetVersionInfoRequest\x1a,.minknow_api.instance.GetVersionInfoResponse\"\x03\x90\x02\x01\x12y\n\x16get_output_directories\x12\x31.minknow_api.instance.GetOutputDirectoriesRequest\x1a\'.minknow_api.instance.OutputDirectories\"\x03\x90\x02\x01\x12\x88\x01\n\x1eget_default_output_directories\x12\x38.minknow_api.instance.GetDefaultOutputDirectoriesRequest\x1a\'.minknow_api.instance.OutputDirectories\"\x03\x90\x02\x01\x12~\n\x14set_output_directory\x12/.minknow_api.instance.SetOutputDirectoryRequest\x1a\x30.minknow_api.instance.SetOutputDirectoryResponse\"\x03\x90\x02\x02\x12{\n\x13set_reads_directory\x12..minknow_api.instance.SetReadsDirectoryRequest\x1a/.minknow_api.instance.SetReadsDirectoryResponse\"\x03\x90\x02\x02\x12y\n\x13get_disk_space_info\x12-.minknow_api.instance.GetDiskSpaceInfoRequest\x1a..minknow_api.instance.GetDiskSpaceInfoResponse\"\x03\x90\x02\x01\x12\x81\x01\n\x16stream_disk_space_info\x12\x30.minknow_api.instance.StreamDiskSpaceInfoRequest\x1a..minknow_api.instance.GetDiskSpaceInfoResponse\"\x03\x90\x02\x01\x30\x01\x12l\n\x0eget_machine_id\x12).minknow_api.instance.GetMachineIdRequest\x1a*.minknow_api.instance.GetMachineIdResponse\"\x03\x90\x02\x01\x12\x8c\x01\n\x18stream_instance_activity\x12\x33.minknow_api.instance.StreamInstanceActivityRequest\x1a\x34.minknow_api.instance.StreamInstanceActivityResponse\"\x03\x90\x02\x01\x30\x01\x42&\n\x1c\x63om.nanoporetech.minknow_api\xa2\x02\x05MKAPIb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1aminknow_api/instance.proto\x12\x14minknow_api.instance\x1a\x1dminknow_api/acquisition.proto\x1a\x18minknow_api/device.proto\x1a\x1aminknow_api/protocol.proto\"\x17\n\x15GetVersionInfoRequest\"\xa6\x05\n\x16GetVersionInfoResponse\x12L\n\x07minknow\x18\x01 \x01(\x0b\x32;.minknow_api.instance.GetVersionInfoResponse.MinknowVersion\x12\r\n\x05\x62ream\x18\x02 \x01(\t\x12\x1c\n\x14\x64istribution_version\x18\x03 \x01(\t\x12\\\n\x13\x64istribution_status\x18\x04 \x01(\x0e\x32?.minknow_api.instance.GetVersionInfoResponse.DistributionStatus\x12\x1e\n\x16protocol_configuration\x18\x05 \x01(\t\x12X\n\x11installation_type\x18\x06 \x01(\x0e\x32=.minknow_api.instance.GetVersionInfoResponse.InstallationType\x12 \n\x18\x62\x61secaller_build_version\x18\t \x01(\t\x12$\n\x1c\x62\x61secaller_connected_version\x18\n \x01(\t\x1aK\n\x0eMinknowVersion\x12\r\n\x05major\x18\x01 \x01(\x05\x12\r\n\x05minor\x18\x02 \x01(\x05\x12\r\n\x05patch\x18\x03 \x01(\x05\x12\x0c\n\x04\x66ull\x18\x04 \x01(\t\"I\n\x12\x44istributionStatus\x12\x0b\n\x07UNKNOWN\x10\x00\x12\n\n\x06STABLE\x10\x01\x12\x0c\n\x08UNSTABLE\x10\x02\x12\x0c\n\x08MODIFIED\x10\x03\"M\n\x10InstallationType\x12\x07\n\x03ONT\x10\x00\x12\x06\n\x02NC\x10\x01\x12\x08\n\x04PROD\x10\x02\x12\r\n\tQ_RELEASE\x10\x03\x12\x0f\n\x0bOND_RELEASE\x10\x04J\x04\x08\x07\x10\x08J\x04\x08\x08\x10\t\"\x1d\n\x1bGetOutputDirectoriesRequest\"?\n\x11OutputDirectories\x12\x0e\n\x06output\x18\x01 \x01(\t\x12\x0b\n\x03log\x18\x02 \x01(\t\x12\r\n\x05reads\x18\x03 \x01(\t\"$\n\"GetDefaultOutputDirectoriesRequest\")\n\x19SetOutputDirectoryRequest\x12\x0c\n\x04path\x18\x01 \x01(\t\"\x1c\n\x1aSetOutputDirectoryResponse\"(\n\x18SetReadsDirectoryRequest\x12\x0c\n\x04path\x18\x01 \x01(\t\"\x1b\n\x19SetReadsDirectoryResponse\"\xfa\x01\n\x17\x46ilesystemDiskSpaceInfo\x12\x15\n\rfilesystem_id\x18\x01 \x01(\t\x12\x17\n\x0f\x62ytes_available\x18\x02 \x01(\x04\x12\x16\n\x0e\x62ytes_capacity\x18\x03 \x01(\x04\x12\x0c\n\x04what\x18\x04 \x03(\t\x12\x1d\n\x15\x62ytes_to_stop_cleanly\x18\x05 \x01(\x04\x12\x1f\n\x17\x62ytes_when_alert_issued\x18\x06 \x01(\x04\x12\x17\n\x0frecommend_alert\x18\x07 \x01(\x08\x12\x16\n\x0erecommend_stop\x18\x08 \x01(\x08\x12\x18\n\x10\x62ytes_per_second\x18\t \x01(\x03\"\x19\n\x17GetDiskSpaceInfoRequest\",\n\x1aStreamDiskSpaceInfoRequest\x12\x0e\n\x06period\x18\x01 \x01(\r\"m\n\x18GetDiskSpaceInfoResponse\x12Q\n\x1a\x66ilesystem_disk_space_info\x18\x01 \x03(\x0b\x32-.minknow_api.instance.FilesystemDiskSpaceInfo\"\x15\n\x13GetMachineIdRequest\"*\n\x14GetMachineIdResponse\x12\x12\n\nmachine_id\x18\x01 \x01(\t\"\x1f\n\x1dStreamInstanceActivityRequest\"\x9a\x01\n\nDeviceInfo\x12L\n\x0c\x64\x65vice_state\x18\x01 \x01(\x0e\x32\x36.minknow_api.device.GetDeviceStateResponse.DeviceState\x12>\n\x0b\x64\x65vice_info\x18\x02 \x01(\x0b\x32).minknow_api.device.GetDeviceInfoResponse\",\n\rBasecallSpeed\x12\x1b\n\x13mean_basecall_speed\x18\x01 \x01(\x02\")\n\x03N50\x12\x0b\n\x03n50\x18\x01 \x01(\x02\x12\x15\n\restimated_n50\x18\x02 \x01(\x02\"\xaf\x06\n\x1eStreamInstanceActivityResponse\x12\x37\n\x0b\x64\x65vice_info\x18\x01 \x01(\x0b\x32 .minknow_api.instance.DeviceInfoH\x00\x12\x45\n\x0e\x66low_cell_info\x18\x02 \x01(\x0b\x32+.minknow_api.device.GetFlowCellInfoResponseH\x00\x12\x42\n\x11protocol_run_info\x18\x03 \x01(\x0b\x32%.minknow_api.protocol.ProtocolRunInfoH\x00\x12K\n\x14\x61\x63quisition_run_info\x18\x04 \x01(\x0b\x32+.minknow_api.acquisition.AcquisitionRunInfoH\x00\x12_\n\x10\x66low_cell_health\x18\x05 \x01(\x0b\x32\x43.minknow_api.instance.StreamInstanceActivityResponse.FlowCellHealthH\x00\x12I\n\ryield_summary\x18\x06 \x01(\x0b\x32\x30.minknow_api.acquisition.AcquisitionYieldSummaryH\x00\x12=\n\x0e\x62\x61secall_speed\x18\x07 \x01(\x0b\x32#.minknow_api.instance.BasecallSpeedH\x00\x12(\n\x03n50\x18\x08 \x01(\x0b\x32\x19.minknow_api.instance.N50H\x00\x1a\xd6\x01\n\x0e\x46lowCellHealth\x12\x83\x01\n\x19\x63hannel_state_percentages\x18\x01 \x03(\x0b\x32`.minknow_api.instance.StreamInstanceActivityResponse.FlowCellHealth.ChannelStatePercentagesEntry\x1a>\n\x1c\x43hannelStatePercentagesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x02:\x02\x38\x01\x42\x0e\n\x0cstream_value2\x84\t\n\x0fInstanceService\x12r\n\x10get_version_info\x12+.minknow_api.instance.GetVersionInfoRequest\x1a,.minknow_api.instance.GetVersionInfoResponse\"\x03\x90\x02\x01\x12y\n\x16get_output_directories\x12\x31.minknow_api.instance.GetOutputDirectoriesRequest\x1a\'.minknow_api.instance.OutputDirectories\"\x03\x90\x02\x01\x12\x88\x01\n\x1eget_default_output_directories\x12\x38.minknow_api.instance.GetDefaultOutputDirectoriesRequest\x1a\'.minknow_api.instance.OutputDirectories\"\x03\x90\x02\x01\x12~\n\x14set_output_directory\x12/.minknow_api.instance.SetOutputDirectoryRequest\x1a\x30.minknow_api.instance.SetOutputDirectoryResponse\"\x03\x90\x02\x02\x12{\n\x13set_reads_directory\x12..minknow_api.instance.SetReadsDirectoryRequest\x1a/.minknow_api.instance.SetReadsDirectoryResponse\"\x03\x90\x02\x02\x12y\n\x13get_disk_space_info\x12-.minknow_api.instance.GetDiskSpaceInfoRequest\x1a..minknow_api.instance.GetDiskSpaceInfoResponse\"\x03\x90\x02\x01\x12\x81\x01\n\x16stream_disk_space_info\x12\x30.minknow_api.instance.StreamDiskSpaceInfoRequest\x1a..minknow_api.instance.GetDiskSpaceInfoResponse\"\x03\x90\x02\x01\x30\x01\x12l\n\x0eget_machine_id\x12).minknow_api.instance.GetMachineIdRequest\x1a*.minknow_api.instance.GetMachineIdResponse\"\x03\x90\x02\x01\x12\x8c\x01\n\x18stream_instance_activity\x12\x33.minknow_api.instance.StreamInstanceActivityRequest\x1a\x34.minknow_api.instance.StreamInstanceActivityResponse\"\x03\x90\x02\x01\x30\x01\x42&\n\x1c\x63om.nanoporetech.minknow_api\xa2\x02\x05MKAPIb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -48,72 +48,108 @@ _globals['_GETVERSIONINFOREQUEST']._serialized_start=137 _globals['_GETVERSIONINFOREQUEST']._serialized_end=160 _globals['_GETVERSIONINFORESPONSE']._serialized_start=163 - _globals['_GETVERSIONINFORESPONSE']._serialized_end=819 - _globals['_GETVERSIONINFORESPONSE_MINKNOWVERSION']._serialized_start=590 - _globals['_GETVERSIONINFORESPONSE_MINKNOWVERSION']._serialized_end=665 - _globals['_GETVERSIONINFORESPONSE_DISTRIBUTIONSTATUS']._serialized_start=667 - _globals['_GETVERSIONINFORESPONSE_DISTRIBUTIONSTATUS']._serialized_end=740 - _globals['_GETVERSIONINFORESPONSE_INSTALLATIONTYPE']._serialized_start=742 - _globals['_GETVERSIONINFORESPONSE_INSTALLATIONTYPE']._serialized_end=819 - _globals['_GETOUTPUTDIRECTORIESREQUEST']._serialized_start=821 - _globals['_GETOUTPUTDIRECTORIESREQUEST']._serialized_end=850 - _globals['_OUTPUTDIRECTORIES']._serialized_start=852 - _globals['_OUTPUTDIRECTORIES']._serialized_end=915 - _globals['_GETDEFAULTOUTPUTDIRECTORIESREQUEST']._serialized_start=917 - _globals['_GETDEFAULTOUTPUTDIRECTORIESREQUEST']._serialized_end=953 - _globals['_SETOUTPUTDIRECTORYREQUEST']._serialized_start=955 - _globals['_SETOUTPUTDIRECTORYREQUEST']._serialized_end=996 - _globals['_SETOUTPUTDIRECTORYRESPONSE']._serialized_start=998 - _globals['_SETOUTPUTDIRECTORYRESPONSE']._serialized_end=1026 - _globals['_SETREADSDIRECTORYREQUEST']._serialized_start=1028 - _globals['_SETREADSDIRECTORYREQUEST']._serialized_end=1068 - _globals['_SETREADSDIRECTORYRESPONSE']._serialized_start=1070 - _globals['_SETREADSDIRECTORYRESPONSE']._serialized_end=1097 - _globals['_FILESYSTEMDISKSPACEINFO']._serialized_start=1100 - _globals['_FILESYSTEMDISKSPACEINFO']._serialized_end=1350 - _globals['_GETDISKSPACEINFOREQUEST']._serialized_start=1352 - _globals['_GETDISKSPACEINFOREQUEST']._serialized_end=1377 - _globals['_STREAMDISKSPACEINFOREQUEST']._serialized_start=1379 - _globals['_STREAMDISKSPACEINFOREQUEST']._serialized_end=1423 - _globals['_GETDISKSPACEINFORESPONSE']._serialized_start=1425 - _globals['_GETDISKSPACEINFORESPONSE']._serialized_end=1534 - _globals['_GETMACHINEIDREQUEST']._serialized_start=1536 - _globals['_GETMACHINEIDREQUEST']._serialized_end=1557 - _globals['_GETMACHINEIDRESPONSE']._serialized_start=1559 - _globals['_GETMACHINEIDRESPONSE']._serialized_end=1601 - _globals['_STREAMINSTANCEACTIVITYREQUEST']._serialized_start=1603 - _globals['_STREAMINSTANCEACTIVITYREQUEST']._serialized_end=1634 - _globals['_DEVICEINFO']._serialized_start=1637 - _globals['_DEVICEINFO']._serialized_end=1791 - _globals['_BASECALLSPEED']._serialized_start=1793 - _globals['_BASECALLSPEED']._serialized_end=1837 - _globals['_N50']._serialized_start=1839 - _globals['_N50']._serialized_end=1880 - _globals['_STREAMINSTANCEACTIVITYRESPONSE']._serialized_start=1883 - _globals['_STREAMINSTANCEACTIVITYRESPONSE']._serialized_end=2698 - _globals['_STREAMINSTANCEACTIVITYRESPONSE_FLOWCELLHEALTH']._serialized_start=2468 - _globals['_STREAMINSTANCEACTIVITYRESPONSE_FLOWCELLHEALTH']._serialized_end=2682 - _globals['_STREAMINSTANCEACTIVITYRESPONSE_FLOWCELLHEALTH_CHANNELSTATEPERCENTAGESENTRY']._serialized_start=2620 - _globals['_STREAMINSTANCEACTIVITYRESPONSE_FLOWCELLHEALTH_CHANNELSTATEPERCENTAGESENTRY']._serialized_end=2682 - _globals['_INSTANCESERVICE']._serialized_start=2701 - _globals['_INSTANCESERVICE']._serialized_end=3857 -OutputDirectories.__doc__ = """Attributes: - output: - The base output directory. Anything that is output to files is - branched from this directory. - log: - Directory where logs will be stored. - reads: - Base directory where reads will be outputted. + _globals['_GETVERSIONINFORESPONSE']._serialized_end=841 + _globals['_GETVERSIONINFORESPONSE_MINKNOWVERSION']._serialized_start=600 + _globals['_GETVERSIONINFORESPONSE_MINKNOWVERSION']._serialized_end=675 + _globals['_GETVERSIONINFORESPONSE_DISTRIBUTIONSTATUS']._serialized_start=677 + _globals['_GETVERSIONINFORESPONSE_DISTRIBUTIONSTATUS']._serialized_end=750 + _globals['_GETVERSIONINFORESPONSE_INSTALLATIONTYPE']._serialized_start=752 + _globals['_GETVERSIONINFORESPONSE_INSTALLATIONTYPE']._serialized_end=829 + _globals['_GETOUTPUTDIRECTORIESREQUEST']._serialized_start=843 + _globals['_GETOUTPUTDIRECTORIESREQUEST']._serialized_end=872 + _globals['_OUTPUTDIRECTORIES']._serialized_start=874 + _globals['_OUTPUTDIRECTORIES']._serialized_end=937 + _globals['_GETDEFAULTOUTPUTDIRECTORIESREQUEST']._serialized_start=939 + _globals['_GETDEFAULTOUTPUTDIRECTORIESREQUEST']._serialized_end=975 + _globals['_SETOUTPUTDIRECTORYREQUEST']._serialized_start=977 + _globals['_SETOUTPUTDIRECTORYREQUEST']._serialized_end=1018 + _globals['_SETOUTPUTDIRECTORYRESPONSE']._serialized_start=1020 + _globals['_SETOUTPUTDIRECTORYRESPONSE']._serialized_end=1048 + _globals['_SETREADSDIRECTORYREQUEST']._serialized_start=1050 + _globals['_SETREADSDIRECTORYREQUEST']._serialized_end=1090 + _globals['_SETREADSDIRECTORYRESPONSE']._serialized_start=1092 + _globals['_SETREADSDIRECTORYRESPONSE']._serialized_end=1119 + _globals['_FILESYSTEMDISKSPACEINFO']._serialized_start=1122 + _globals['_FILESYSTEMDISKSPACEINFO']._serialized_end=1372 + _globals['_GETDISKSPACEINFOREQUEST']._serialized_start=1374 + _globals['_GETDISKSPACEINFOREQUEST']._serialized_end=1399 + _globals['_STREAMDISKSPACEINFOREQUEST']._serialized_start=1401 + _globals['_STREAMDISKSPACEINFOREQUEST']._serialized_end=1445 + _globals['_GETDISKSPACEINFORESPONSE']._serialized_start=1447 + _globals['_GETDISKSPACEINFORESPONSE']._serialized_end=1556 + _globals['_GETMACHINEIDREQUEST']._serialized_start=1558 + _globals['_GETMACHINEIDREQUEST']._serialized_end=1579 + _globals['_GETMACHINEIDRESPONSE']._serialized_start=1581 + _globals['_GETMACHINEIDRESPONSE']._serialized_end=1623 + _globals['_STREAMINSTANCEACTIVITYREQUEST']._serialized_start=1625 + _globals['_STREAMINSTANCEACTIVITYREQUEST']._serialized_end=1656 + _globals['_DEVICEINFO']._serialized_start=1659 + _globals['_DEVICEINFO']._serialized_end=1813 + _globals['_BASECALLSPEED']._serialized_start=1815 + _globals['_BASECALLSPEED']._serialized_end=1859 + _globals['_N50']._serialized_start=1861 + _globals['_N50']._serialized_end=1902 + _globals['_STREAMINSTANCEACTIVITYRESPONSE']._serialized_start=1905 + _globals['_STREAMINSTANCEACTIVITYRESPONSE']._serialized_end=2720 + _globals['_STREAMINSTANCEACTIVITYRESPONSE_FLOWCELLHEALTH']._serialized_start=2490 + _globals['_STREAMINSTANCEACTIVITYRESPONSE_FLOWCELLHEALTH']._serialized_end=2704 + _globals['_STREAMINSTANCEACTIVITYRESPONSE_FLOWCELLHEALTH_CHANNELSTATEPERCENTAGESENTRY']._serialized_start=2642 + _globals['_STREAMINSTANCEACTIVITYRESPONSE_FLOWCELLHEALTH_CHANNELSTATEPERCENTAGESENTRY']._serialized_end=2704 + _globals['_INSTANCESERVICE']._serialized_start=2723 + _globals['_INSTANCESERVICE']._serialized_end=3879 +BasecallSpeed.__doc__ = """Attributes: + mean_basecall_speed: + Mean basecall speed, in bases per second. This value is only + streamed for acquisitions where basecalling is enabled. The + value reported here is the value stored in last completed + basecall boxplot bucket Each boxplot bucket covers a duration + of `boxplot_time_coverage_in_minutes` """ -N50.__doc__ = """Attributes: - n50: - N50 data, in basecalled bases This value is only streamed for - acquisitions where basecalling is enabled. The latest value - is sent once per minute - estimated_n50: - N50 data, in estimated bases The latest value is sent once - per minute +DeviceInfo.__doc__ = """Attributes: + device_state: + The current state of the device + device_info: + Information about the connected device (or no content if + disconnected see: device_state) +""" +StreamInstanceActivityResponse.FlowCellHealth.__doc__ = """Attributes: + channel_state_percentages: + Map between channel state name and a percentage of how much + time that state has been active with respect to all other + channel states This is over one minute of time this is + calculated over +""" +FilesystemDiskSpaceInfo.__doc__ = """disk-usage information for one file-system + +Attributes: + filesystem_id: + The name of the file-system + bytes_available: + How much space is left on the file-system + bytes_capacity: + The total capacity of the file-system when empty. + what: + A list of what MinKNOW stores on this file-system, eg: reads, + logs, intermediate-files + bytes_to_stop_cleanly: + MinKNOW needs this much space to stop experiments. If + bytes_available goes below this number, data could be lost! + bytes_when_alert_issued: + The amount of space left on the file-system when + recommend_alert was set true. + recommend_alert: + MinKNOW recommends that you alert someone about the disk-usage + recommend_stop: + MinKNOW recommends that you stop experiments due to disk-usage + concerns + bytes_per_second: + Rate of change in bytes_available (per second) +'ve numbers + indicate that bytes_available is decreasing and space is being + used A value of 0 can indicate that this has not applicable or + not available. + file_types_stored: + A list of what types of file MinKNOW stores on this file- + system, eg: reads, logs, intermediate-files, etc. """ StreamInstanceActivityResponse.__doc__ = """Attributes: device_info: @@ -145,17 +181,14 @@ only available if an acquisition with basecalling enabled is in progress """ -GetMachineIdResponse.__doc__ = """Attributes: - machine_id: - The machine_id MinKNOW uses for this host. -""" -BasecallSpeed.__doc__ = """Attributes: - mean_basecall_speed: - Mean basecall speed, in bases per second. This value is only - streamed for acquisitions where basecalling is enabled. The - value reported here is the value stored in last completed - basecall boxplot bucket Each boxplot bucket covers a duration - of `boxplot_time_coverage_in_minutes` +OutputDirectories.__doc__ = """Attributes: + output: + The base output directory. Anything that is output to files is + branched from this directory. + log: + Directory where logs will be stored. + reads: + Base directory where reads will be outputted. """ StreamDiskSpaceInfoRequest.__doc__ = """Attributes: period: @@ -163,21 +196,8 @@ determining the period in seconds between updates. A period of 0 is invalid """ -DeviceInfo.__doc__ = """Attributes: - device_state: - The current state of the device - device_info: - Information about the connected device (or no content if - disconnected see: device_state) -""" -StreamInstanceActivityResponse.FlowCellHealth.__doc__ = """Attributes: - channel_state_percentages: - Map between channel state name and a percentage of how much - time that state has been active with respect to all other - channel states This is over one minute of time this is - calculated over -""" -GetVersionInfoResponse.__doc__ = """From instance.proto Since 5.6 +GetVersionInfoResponse.__doc__ = """Version of the basecaller MinKNOW is running with. Since 5.0 This +field has been updated since 6.0 guppy_connected_version Attributes: minknow: @@ -211,41 +231,18 @@ The installation type of MinKNOW. The installation type may affect the available features, or the update process. Since 4.1 - guppy_build_version: - Version of guppy MinKNOW was packaged against. Since 5.0 - guppy_connected_version: - Version of guppy MinKNOW running with. Since 5.0 """ -FilesystemDiskSpaceInfo.__doc__ = """disk-usage information for one file-system - -Attributes: - filesystem_id: - The name of the file-system - bytes_available: - How much space is left on the file-system - bytes_capacity: - The total capacity of the file-system when empty. - what: - A list of what MinKNOW stores on this file-system, eg: reads, - logs, intermediate-files - bytes_to_stop_cleanly: - MinKNOW needs this much space to stop experiments. If - bytes_available goes below this number, data could be lost! - bytes_when_alert_issued: - The amount of space left on the file-system when - recommend_alert was set true. - recommend_alert: - MinKNOW recommends that you alert someone about the disk-usage - recommend_stop: - MinKNOW recommends that you stop experiments due to disk-usage - concerns - bytes_per_second: - Rate of change in bytes_available (per second) +'ve numbers - indicate that bytes_available is decreasing and space is being - used A value of 0 can indicate that this has not applicable or - not available. - file_types_stored: - A list of what types of file MinKNOW stores on this file- - system, eg: reads, logs, intermediate-files, etc. +N50.__doc__ = """Attributes: + n50: + N50 data, in basecalled bases This value is only streamed for + acquisitions where basecalling is enabled. The latest value + is sent once per minute + estimated_n50: + N50 data, in estimated bases The latest value is sent once + per minute +""" +GetMachineIdResponse.__doc__ = """Attributes: + machine_id: + The machine_id MinKNOW uses for this host. """ # @@protoc_insertion_point(module_scope) diff --git a/python/minknow_api/keystore_pb2.py b/python/minknow_api/keystore_pb2.py index 5b96517..b58f7e0 100644 --- a/python/minknow_api/keystore_pb2.py +++ b/python/minknow_api/keystore_pb2.py @@ -74,15 +74,6 @@ _globals['_WATCHRESPONSE_VALUESENTRY']._serialized_end=314 _globals['_KEYSTORESERVICE']._serialized_start=1061 _globals['_KEYSTORESERVICE']._serialized_end=1510 -GetRequest.__doc__ = """Attributes: - names: - The names of the values you wish to fetch. - allow_missing: - Whether to allow missing values. If set, names that are not - present in the store will simply be omitted from the response. - Otherwise, missing values will cause an error to be returned. - Defaults to 'false' -""" RemoveRequest.__doc__ = """Attributes: names: The names of the values you wish to remove. @@ -97,6 +88,15 @@ value: The requested value. """ +GetRequest.__doc__ = """Attributes: + names: + The names of the values you wish to fetch. + allow_missing: + Whether to allow missing values. If set, names that are not + present in the store will simply be omitted from the response. + Otherwise, missing values will cause an error to be returned. + Defaults to 'false' +""" WatchRequest.__doc__ = """Attributes: send_finished_runs: By default, no information will be sent about runs that were @@ -111,9 +111,19 @@ message will be sent with the set values. Otherwise, missing values will cause an immediate error. Defaults to 'false' """ -GetOneRequest.__doc__ = """Attributes: - name: - The name of the value to fetch. +GetResponse.__doc__ = """Attributes: + values: + The requested values. +""" +WatchResponse.__doc__ = """Attributes: + runs: + The current state of some of the runs. + values: + The values that have changed. The first received message will + contain the current state of all the watched values. + Subsequent messages will only contain the values that changed. + removed_values: + The values that have been removed. """ StoreRequest.__doc__ = """Attributes: values: @@ -129,18 +139,8 @@ the call to fail with `INVALID_ARGUMENT` Note that calling remove() will remove the value regardless of this setting. """ -WatchResponse.__doc__ = """Attributes: - runs: - The current state of some of the runs. - values: - The values that have changed. The first received message will - contain the current state of all the watched values. - Subsequent messages will only contain the values that changed. - removed_values: - The values that have been removed. -""" -GetResponse.__doc__ = """Attributes: - values: - The requested values. +GetOneRequest.__doc__ = """Attributes: + name: + The name of the value to fetch. """ # @@protoc_insertion_point(module_scope) diff --git a/python/minknow_api/log_pb2.py b/python/minknow_api/log_pb2.py index f6887a9..7f3e207 100644 --- a/python/minknow_api/log_pb2.py +++ b/python/minknow_api/log_pb2.py @@ -62,16 +62,6 @@ _globals['_COLLECTPINGSRESPONSE']._serialized_end=966 _globals['_LOGSERVICE']._serialized_start=1269 _globals['_LOGSERVICE']._serialized_end=1665 -SendPingRequest.__doc__ = """Since 5.0 - -Attributes: - ping_data: - The json data to send as a ping. note: if this string is not - a valid json object, an error will be raised. - days_until_expiry: - Should the ping fail to send, the number of days the ping will - be stored before being cleaned up. -""" SendUserMessageRequest.__doc__ = """Attributes: severity: The severity of the message to send note: TRACE messages @@ -85,6 +75,16 @@ Any extra data associated with the user message, as a map from key to data. """ +SendPingRequest.__doc__ = """Since 5.0 + +Attributes: + ping_data: + The json data to send as a ping. note: if this string is not + a valid json object, an error will be raised. + days_until_expiry: + Should the ping fail to send, the number of days the ping will + be stored before being cleaned up. +""" GetUserMessagesRequest.__doc__ = """Attributes: include_old_messages: If set, any messages which have already been sent to listeners diff --git a/python/minknow_api/manager.py b/python/minknow_api/manager.py index 995ca34..e657f72 100644 --- a/python/minknow_api/manager.py +++ b/python/minknow_api/manager.py @@ -352,6 +352,12 @@ def __init__( credentials=credentials, # saved as self.credentials ) + self.analysis_workflows = ( + minknow_api.analysis_workflows_service.AnalysisWorkflowsService( + self.channel + ) + ) + version_info = self.rpc.get_version_info() self.bream_version = version_info.bream self.config_version = version_info.protocol_configuration @@ -361,7 +367,7 @@ def __init__( version_info.minknow.minor, version_info.minknow.patch, ) - self.guppy_version = version_info.guppy_connected_version + self.guppy_version = version_info.basecaller_connected_version self.version = version_info.distribution_version DistributionStatus = ( minknow_api.instance_pb2.GetVersionInfoResponse.DistributionStatus diff --git a/python/minknow_api/manager_pb2.py b/python/minknow_api/manager_pb2.py index ed5c9bf..5a4f854 100644 --- a/python/minknow_api/manager_pb2.py +++ b/python/minknow_api/manager_pb2.py @@ -19,7 +19,7 @@ from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x19minknow_api/manager.proto\x12\x13minknow_api.manager\x1a\x1dminknow_api/rpc_options.proto\x1a\x18minknow_api/device.proto\x1a\x1aminknow_api/instance.proto\x1a#minknow_api/protocol_settings.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\x15\n\x13\x44\x65scribeHostRequest\"\xad\x03\n\x14\x44\x65scribeHostResponse\x12\x14\n\x0cproduct_code\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x0e\n\x06serial\x18\x03 \x01(\t\x12\x14\n\x0cnetwork_name\x18\x04 \x01(\t\x12\x19\n\x11needs_association\x18\x10 \x01(\x08\x12\x1c\n\x14\x63\x61n_sequence_offline\x18\x05 \x01(\x08\x12W\n\x0c\x63\x61n_basecall\x18\x06 \x01(\x0e\x32\x41.minknow_api.manager.DescribeHostResponse.BasecallingAvailability\"\xb1\x01\n\x17\x42\x61secallingAvailability\x12\x19\n\x15\x42\x41SECALLING_AVAILABLE\x10\x00\x12\x1b\n\x17\x42\x41SECALLING_UNAVAILABLE\x10\x01\x12-\n)BASECALLING_UNAVAILABLE_BAD_CONFIGURATION\x10\x02\x12/\n+BASECALLING_UNAVAILABLE_ATTEMPTING_RECOVERY\x10\x03\"\x1e\n\x1cGetBasecallerFeaturesRequest\"_\n\x1dGetBasecallerFeaturesResponse\x12>\n6is_live_basecalling_with_adaptive_sampling_recommended\x18\x01 \x01(\x08\"\xf3\x06\n\x10\x46lowCellPosition\x12\x0c\n\x04name\x18\x01 \x01(\t\x12@\n\x08location\x18\x02 \x01(\x0b\x32..minknow_api.manager.FlowCellPosition.Location\x12:\n\x05state\x18\x03 \x01(\x0e\x32+.minknow_api.manager.FlowCellPosition.State\x12\x41\n\trpc_ports\x18\x04 \x01(\x0b\x32..minknow_api.manager.FlowCellPosition.RpcPorts\x12\x12\n\nerror_info\x18\x05 \x01(\t\x12X\n\x15shared_hardware_group\x18\x06 \x01(\x0b\x32\x39.minknow_api.manager.FlowCellPosition.SharedHardwareGroup\x12\x15\n\ris_integrated\x18\x07 \x01(\x08\x12\x1c\n\x14\x63\x61n_sequence_offline\x18\x08 \x01(\x08\x12@\n\x0eprotocol_state\x18\t \x01(\x0e\x32(.minknow_api.manager.SimpleProtocolState\x12\x14\n\x0cis_simulated\x18\n \x01(\x08\x12I\n\x0b\x64\x65vice_type\x18\x0b \x01(\x0e\x32\x34.minknow_api.device.GetDeviceInfoResponse.DeviceType\x12\x13\n\x0bparent_name\x18\x0c \x01(\t\x1a \n\x08Location\x12\t\n\x01x\x18\x01 \x01(\x05\x12\t\n\x01y\x18\x02 \x01(\x05\x1a\x33\n\x08RpcPorts\x12\x0e\n\x06secure\x18\x01 \x01(\r\x12\x17\n\x0fsecure_grpc_web\x18\x03 \x01(\r\x1a\'\n\x13SharedHardwareGroup\x12\x10\n\x08group_id\x18\x01 \x01(\r\"\xb4\x01\n\x05State\x12\x16\n\x12STATE_INITIALISING\x10\x00\x12\x11\n\rSTATE_RUNNING\x10\x01\x12\x13\n\x0fSTATE_RESETTING\x10\x02\x12\x1a\n\x16STATE_HARDWARE_REMOVED\x10\x03\x12\x18\n\x14STATE_HARDWARE_ERROR\x10\x04\x12\x18\n\x14STATE_SOFTWARE_ERROR\x10\x05\x12\x1b\n\x17STATE_NEEDS_ASSOCIATION\x10\x06\"\x1a\n\x18\x46lowCellPositionsRequest\"j\n\x19\x46lowCellPositionsResponse\x12\x13\n\x0btotal_count\x18\x01 \x01(\x05\x12\x38\n\tpositions\x18\x02 \x03(\x0b\x32%.minknow_api.manager.FlowCellPosition\"\x1f\n\x1dWatchFlowCellPositionsRequest\"\xa4\x01\n\x1eWatchFlowCellPositionsResponse\x12\x38\n\tadditions\x18\x01 \x03(\x0b\x32%.minknow_api.manager.FlowCellPosition\x12\x36\n\x07\x63hanges\x18\x02 \x03(\x0b\x32%.minknow_api.manager.FlowCellPosition\x12\x10\n\x08removals\x18\x03 \x03(\t\"8\n\x14ResetPositionRequest\x12\x11\n\tpositions\x18\x03 \x03(\t\x12\r\n\x05\x66orce\x18\x02 \x01(\x08\"\x17\n\x15ResetPositionResponse\"\x16\n\x14\x42\x61secallerApiRequest\"@\n\x15\x42\x61secallerApiResponse\x12\x0e\n\x06secure\x18\x01 \x01(\r\x12\x17\n\x0fsecure_grpc_web\x18\x03 \x01(\r\"\x15\n\x13GetGuppyInfoRequest\"^\n\x14GetGuppyInfoResponse\x12\x0e\n\x04port\x18\x01 \x01(\rH\x00\x12\x12\n\x08ipc_path\x18\x03 \x01(\tH\x00\x12\x0f\n\x07version\x18\x02 \x01(\tB\x11\n\x0f\x63onnection_type\"\x17\n\x15GetVersionInfoRequest\"1\n!ListProtocolOutputDirFilesRequest\x12\x0c\n\x04path\x18\x01 \x01(\t\"\xf8\x01\n\"ListProtocolOutputDirFilesResponse\x12Z\n\x0b\x64irectories\x18\x01 \x03(\x0b\x32\x45.minknow_api.manager.ListProtocolOutputDirFilesResponse.DirectoryInfo\x12\r\n\x05\x66iles\x18\x02 \x03(\t\x12\x1b\n\x13\x63urrent_listed_path\x18\x03 \x01(\t\x1aJ\n\rDirectoryInfo\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x17\n\x0f\x64irectory_count\x18\x02 \x01(\x05\x12\x12\n\nfile_count\x18\x03 \x01(\x05\";\n\x16\x43reateDirectoryRequest\x12\x13\n\x0bparent_path\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\"\'\n\x17\x43reateDirectoryResponse\x12\x0c\n\x04path\x18\x01 \x01(\t\"\x87\x02\n\x17\x46ilesystemDiskSpaceInfo\x12\x15\n\rfilesystem_id\x18\x01 \x01(\t\x12\x17\n\x0f\x62ytes_available\x18\x02 \x01(\x04\x12\x16\n\x0e\x62ytes_capacity\x18\x03 \x01(\x04\x12\x19\n\x11\x66ile_types_stored\x18\x04 \x03(\t\x12\x1d\n\x15\x62ytes_to_stop_cleanly\x18\x05 \x01(\x04\x12\x1f\n\x17\x62ytes_when_alert_issued\x18\x06 \x01(\x04\x12\x17\n\x0frecommend_alert\x18\x07 \x01(\x08\x12\x16\n\x0erecommend_stop\x18\x08 \x01(\x08\x12\x18\n\x10\x62ytes_per_second\x18\t \x01(\x03\"\x19\n\x17GetDiskSpaceInfoRequest\",\n\x1aStreamDiskSpaceInfoRequest\x12\x0e\n\x06period\x18\x01 \x01(\r\"l\n\x18GetDiskSpaceInfoResponse\x12P\n\x1a\x66ilesystem_disk_space_info\x18\x01 \x03(\x0b\x32,.minknow_api.manager.FilesystemDiskSpaceInfo\"\x1a\n\x18GetBarcodeKitInfoRequest\"\xa8\x02\n\x19GetBarcodeKitInfoResponse\x12\\\n\x10\x62\x61rcode_kit_info\x18\x01 \x03(\x0b\x32\x42.minknow_api.manager.GetBarcodeKitInfoResponse.BarcodeKitInfoEntry\x1a\x37\n\x0e\x42\x61rcodeKitInfo\x12\x0f\n\x07is_dual\x18\x02 \x01(\x08\x12\x14\n\x0cis_both_ends\x18\x03 \x01(\x08\x1at\n\x13\x42\x61rcodeKitInfoEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12L\n\x05value\x18\x02 \x01(\x0b\x32=.minknow_api.manager.GetBarcodeKitInfoResponse.BarcodeKitInfo:\x02\x38\x01\"\x17\n\x15GetLampKitInfoRequest\"+\n\x16GetLampKitInfoResponse\x12\x11\n\tlamp_kits\x18\x02 \x03(\t\"I\n\x15GetBarcodeKeysRequest\x12\x19\n\x11\x62\x61rcode_kit_names\x18\x01 \x03(\t\x12\x15\n\rlamp_kit_name\x18\x02 \x01(\t\"X\n\x16GetBarcodeKeysResponse\x12\x14\n\x0c\x62\x61rcode_keys\x18\x01 \x03(\t\x12\x11\n\tlamp_keys\x18\x02 \x03(\t\x12\x15\n\rcombined_keys\x18\x03 \x03(\t\"\x19\n\x17GetFlowCellTypesRequest\"\xdc\x01\n\x18GetFlowCellTypesResponse\x12\x41\n\x05types\x18\x01 \x03(\x0b\x32\x32.minknow_api.manager.GetFlowCellTypesResponse.Info\x1a}\n\x04Info\x12\x14\n\x0cproduct_code\x18\x01 \x01(\t\x12\x41\n\x0e\x63onnector_type\x18\x02 \x01(\x0e\x32).minknow_api.device.FlowCellConnectorType\x12\x1c\n\x14\x63\x61nnot_live_basecall\x18\x03 \x01(\x08\":\n\x18GetSequencingKitsRequest\x12\x1e\n\x16\x66low_cell_product_code\x18\x01 \x01(\t\"\xf2\x03\n\x19GetSequencingKitsResponse\x12@\n\x04kits\x18\x01 \x03(\x0b\x32\x32.minknow_api.manager.GetSequencingKitsResponse.Kit\x12\x66\n\x18\x62\x61rcoding_expansion_kits\x18\x02 \x03(\x0b\x32\x44.minknow_api.manager.GetSequencingKitsResponse.BarcodingExpansionKit\x1a\xfb\x01\n\x03Kit\x12\x14\n\x0cproduct_code\x18\x01 \x01(\t\x12 \n\x18\x62\x61rcoding_expansion_kits\x18\x02 \x03(\x05\x12\x1a\n\x12includes_barcoding\x18\x03 \x01(\x08\x12\x10\n\x08lamp_kit\x18\x10 \x01(\x08\x12\x1c\n\x14has_control_protocol\x18\x04 \x01(\x08\x12\x1e\n\x16no_sequencing_protocol\x18\x11 \x01(\x08\x12\x17\n\x0f\x66requently_used\x18\x12 \x01(\x08\x12\x0b\n\x03\x64na\x18\x05 \x01(\x08\x12\x0b\n\x03rna\x18\x06 \x01(\x08\x12\x0b\n\x03pcr\x18\x07 \x01(\x08\x12\x10\n\x08pcr_free\x18\x08 \x01(\x08\x1a-\n\x15\x42\x61rcodingExpansionKit\x12\x14\n\x0cproduct_code\x18\x01 \x01(\t\"m\n\x19\x41\x64\x64SimulatedDeviceRequest\x12\x12\n\x04name\x18\x01 \x01(\tB\x04\x88\xb5\x18\x01\x12<\n\x04type\x18\x02 \x01(\x0e\x32(.minknow_api.manager.SimulatedDeviceTypeB\x04\x88\xb5\x18\x01\"\x1c\n\x1a\x41\x64\x64SimulatedDeviceResponse\"2\n\x1cRemoveSimulatedDeviceRequest\x12\x12\n\x04name\x18\x01 \x01(\tB\x04\x88\xb5\x18\x01\"\x1f\n\x1dRemoveSimulatedDeviceResponse\"%\n#LocalAuthenticationTokenPathRequest\"4\n$LocalAuthenticationTokenPathResponse\x12\x0c\n\x04path\x18\x01 \x01(\t\"7\n\'GetAlignmentReferenceInformationRequest\x12\x0c\n\x04path\x18\x01 \x01(\t\"\x97\x01\n(GetAlignmentReferenceInformationResponse\x12#\n\x1b\x65stimated_load_time_seconds\x18\x01 \x01(\x02\x12&\n\x1e\x65stimated_reference_size_bases\x18\x02 \x01(\x04\x12\x1e\n\x16recommended_live_usage\x18\x03 \x01(\x08\"D\n\x1c\x41ssociationDeviceCodeRequest\x12\x15\n\rposition_name\x18\x01 \x01(\tJ\x04\x08\x02\x10\x03R\x07offline\"-\n\x1d\x41ssociationDeviceCodeResponse\x12\x0c\n\x04\x63ode\x18\x01 \x01(\t\"V\n(ApplyOfflineAssociationUnlockCodeRequest\x12\x15\n\rposition_name\x18\x01 \x01(\t\x12\x13\n\x0bunlock_code\x18\x02 \x01(\t\"?\n)ApplyOfflineAssociationUnlockCodeResponse\x12\x12\n\nassociated\x18\x01 \x01(\x08\"\x1f\n\x1dListDeveloperApiTokensRequest\"\xd2\x01\n\x1eListDeveloperApiTokensResponse\x12U\n\x06tokens\x18\x01 \x03(\x0b\x32\x45.minknow_api.manager.ListDeveloperApiTokensResponse.DeveloperApiToken\x1aY\n\x11\x44\x65veloperApiToken\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12*\n\x06\x65xpiry\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"Z\n\x1e\x43reateDeveloperApiTokenRequest\x12\x0c\n\x04name\x18\x02 \x01(\t\x12*\n\x06\x65xpiry\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"<\n\x1f\x43reateDeveloperApiTokenResponse\x12\n\n\x02id\x18\x01 \x01(\t\x12\r\n\x05token\x18\x02 \x01(\t\",\n\x1eRevokeDeveloperApiTokenRequest\x12\n\n\x02id\x18\x01 \x01(\t\"\"\n RevokeDeveloperApiTokensResponse\"\x8c\x01\n\x14\x46indProtocolsRequest\x12\x1e\n\x16\x66low_cell_product_code\x18\x01 \x01(\t\x12\x16\n\x0esequencing_kit\x18\x02 \x01(\t\x12<\n\x0f\x65xperiment_type\x18\x03 \x01(\x0e\x32#.minknow_api.manager.ExperimentType\"\xc9\x01\n\x15\x46indProtocolsResponse\x12\x46\n\tprotocols\x18\x01 \x03(\x0b\x32\x33.minknow_api.manager.FindProtocolsResponse.Protocol\x1ah\n\x08Protocol\x12\x12\n\nidentifier\x18\x01 \x01(\t\x12\'\n\x1frequires_flow_cell_product_code\x18\x02 \x01(\x08\x12\x1f\n\x17requires_sequencing_kit\x18\x03 \x01(\x08\"\xee\x01\n\x1eListSettingsForProtocolRequest\x12\x14\n\nidentifier\x18\x01 \x01(\tH\x00\x12Q\n\ncomponents\x18\x02 \x01(\x0b\x32;.minknow_api.protocol_settings.ProtocolIdentifierComponentsH\x00\x12L\n\x13\x66low_cell_connector\x18\x03 \x01(\x0e\x32).minknow_api.device.FlowCellConnectorTypeB\x04\x88\xb5\x18\x01\x42\x15\n\x13protocol_identifier\"\xfd\"\n\x1fListSettingsForProtocolResponse\x12M\n\x08protocol\x18\x01 \x01(\x0b\x32;.minknow_api.protocol_settings.ProtocolIdentifierComponents\x12T\n\x0brun_options\x18\x02 \x01(\x0b\x32?.minknow_api.manager.ListSettingsForProtocolResponse.RunOptions\x12U\n\x0b\x62\x61secalling\x18\x03 \x01(\x0b\x32@.minknow_api.manager.ListSettingsForProtocolResponse.Basecalling\x12K\n\x06output\x18\x04 \x01(\x0b\x32;.minknow_api.manager.ListSettingsForProtocolResponse.Output\x12I\n\x11protocol_settings\x18\x05 \x03(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x1a\xd5\x06\n\nRunOptions\x12\x42\n\nrun_length\x18\x01 \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x12\x44\n\x0c\x62ias_voltage\x18\x02 \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x12J\n\x12read_until_enabled\x18\x03 \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x12K\n\x13read_until_ref_file\x18\x04 \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x12K\n\x13read_until_channels\x18\x05 \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x12S\n\x1bread_until_bed_file_enabled\x18\x06 \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x12K\n\x13read_until_bed_file\x18\x07 \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x12M\n\x15read_until_enrichment\x18\x08 \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x12P\n\x18\x61\x63tive_channel_selection\x18\t \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x12G\n\x0fmux_scan_period\x18\n \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x12K\n\x13group_change_period\x18\x0b \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x1a\x80\n\n\x0b\x42\x61secalling\x12K\n\x13\x62\x61secalling_enabled\x18\x01 \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x12I\n\x11\x62\x61rcoding_enabled\x18\x02 \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x12\x46\n\x0e\x62\x61rcoding_kits\x18\x03 \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x12\x46\n\x0e\x62\x61secall_model\x18\x04 \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x12M\n\x15trim_barcodes_enabled\x18\x05 \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x12R\n\x1arequire_barcodes_both_ends\x18\x06 \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x12R\n\x1a\x64\x65tect_mid_strand_barcodes\x18\x07 \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x12T\n\x1coverride_mid_barcoding_score\x18\x08 \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x12U\n\x1doverride_rear_barcoding_score\x18\t \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x12K\n\x13min_barcoding_score\x18\n \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x12P\n\x18min_barcoding_score_rear\x18\x0b \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x12O\n\x17min_barcoding_score_mid\x18\x0c \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x12I\n\x11\x61lignment_enabled\x18\r \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x12J\n\x12\x61lignment_ref_file\x18\x0e \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x12R\n\x1a\x61lignment_bed_file_enabled\x18\x0f \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x12J\n\x12\x61lignment_bed_file\x18\x10 \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x1a\xea\x0e\n\x06Output\x12G\n\x0foutput_location\x18\x01 \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x12\x46\n\x0e\x66\x61st_q_enabled\x18\x02 \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x12M\n\x15\x66\x61st_q_reads_per_file\x18\x03 \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x12O\n\x17\x66\x61st_q_data_compression\x18\x04 \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x12\x46\n\x0e\x66\x61st_5_enabled\x18\x05 \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x12M\n\x15\x66\x61st_5_reads_per_file\x18\x06 \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x12O\n\x17\x66\x61st_5_data_trace_table\x18\x07 \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x12N\n\x16\x66\x61st_5_data_move_table\x18\x08 \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x12J\n\x12\x66\x61st_5_data_fast_q\x18\t \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x12G\n\x0f\x66\x61st_5_data_raw\x18\n \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x12O\n\x17\x66\x61st_5_data_compression\x18\x0b \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x12\x43\n\x0b\x62\x61m_enabled\x18\x0c \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x12N\n\x16read_filtering_enabled\x18\r \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x12Q\n\x19read_filtering_min_qscore\x18\x0e \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x12V\n\x1eread_filtering_min_read_length\x18\x0f \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x12V\n\x1eread_filtering_max_read_length\x18\x10 \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x12I\n\x11\x62ulk_file_enabled\x18\x11 \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x12\x45\n\rbulk_file_raw\x18\x12 \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x12H\n\x10\x62ulk_file_events\x18\x13 \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x12L\n\x14\x62ulk_file_read_table\x18\x14 \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x12M\n\x15\x62ulk_file_raw_enabled\x18\x15 \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x12P\n\x18\x62ulk_file_events_enabled\x18\x16 \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x12T\n\x1c\x62ulk_file_read_table_enabled\x18\x17 \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x12X\n read_filtering_min_duplex_qscore\x18\x18 \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\"\x1a\n\x07\x46\x65\x61ture\x12\x0f\n\x07\x65nabled\x18\x01 \x01(\x08\"\xe5\x01\n\x0b\x46\x65\x61tureList\x12\x33\n\rfeature_flags\x18\x03 \x01(\x0b\x32\x1c.minknow_api.manager.Feature\x12\x34\n\x0e\x65nrich_deplete\x18\x01 \x01(\x0b\x32\x1c.minknow_api.manager.Feature\x12\x37\n\x11\x62\x61rcode_balancing\x18\x02 \x01(\x0b\x32\x1c.minknow_api.manager.Feature\x12\x32\n\x0c\x64\x61ta_offload\x18\x04 \x01(\x0b\x32\x1c.minknow_api.manager.Feature\"\x14\n\x12GetFeaturesRequest\"\xde\x01\n\x13GetFeaturesResponse\x12=\n\x05state\x18\x01 \x01(\x0e\x32..minknow_api.manager.GetFeaturesResponse.State\x12\x32\n\x08\x66\x65\x61tures\x18\x02 \x01(\x0b\x32 .minknow_api.manager.FeatureList\"T\n\x05State\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x0b\n\x07NO_FILE\x10\x01\x12\x1b\n\x17\x45RROR_LOADING_FROM_FILE\x10\x02\x12\x14\n\x10LOADED_FROM_FILE\x10\x03\"H\n\x12SetFeaturesRequest\x12\x32\n\x08\x66\x65\x61tures\x18\x01 \x01(\x0b\x32 .minknow_api.manager.FeatureList\"\x15\n\x13SetFeaturesResponse*\x88\x01\n\x13SimpleProtocolState\x12\x15\n\x11NO_PROTOCOL_STATE\x10\x00\x12\x14\n\x10PROTOCOL_RUNNING\x10\x01\x12\"\n\x1ePROTOCOL_FINISHED_SUCCESSFULLY\x10\x02\x12 \n\x1cPROTOCOL_FINISHED_WITH_ERROR\x10\x03*\x82\x01\n\x13SimulatedDeviceType\x12\x12\n\x0eSIMULATED_AUTO\x10\x00\x12\x14\n\x10SIMULATED_MINION\x10\x01\x12\x15\n\x11SIMULATED_TRAXION\x10\x02\x12\x18\n\x14SIMULATED_PROMETHION\x10\x03\x12\x10\n\x0cSIMULATED_P2\x10\x04*j\n\x0e\x45xperimentType\x12\x0e\n\nSEQUENCING\x10\x00\x12\x0b\n\x07\x43ONTROL\x10\x01\x12\n\n\x06\x43USTOM\x10\x02\x12\x15\n\x11\x41LL_EXCEPT_HIDDEN\x10\x03\x12\x18\n\x14\x41LL_INCLUDING_HIDDEN\x10\x04\x32\xbd\x1f\n\x0eManagerService\x12i\n\rdescribe_host\x12(.minknow_api.manager.DescribeHostRequest\x1a).minknow_api.manager.DescribeHostResponse\"\x03\x90\x02\x01\x12\x85\x01\n\x17get_basecaller_features\x12\x31.minknow_api.manager.GetBasecallerFeaturesRequest\x1a\x32.minknow_api.manager.GetBasecallerFeaturesResponse\"\x03\x90\x02\x01\x12{\n\x13\x66low_cell_positions\x12-.minknow_api.manager.FlowCellPositionsRequest\x1a..minknow_api.manager.FlowCellPositionsResponse\"\x03\x90\x02\x01\x30\x01\x12\x8b\x01\n\x19watch_flow_cell_positions\x12\x32.minknow_api.manager.WatchFlowCellPositionsRequest\x1a\x33.minknow_api.manager.WatchFlowCellPositionsResponse\"\x03\x90\x02\x01\x30\x01\x12i\n\x0ereset_position\x12).minknow_api.manager.ResetPositionRequest\x1a*.minknow_api.manager.ResetPositionResponse\"\x00\x12l\n\x0e\x62\x61secaller_api\x12).minknow_api.manager.BasecallerApiRequest\x1a*.minknow_api.manager.BasecallerApiResponse\"\x03\x90\x02\x01\x12j\n\x0eget_guppy_info\x12(.minknow_api.manager.GetGuppyInfoRequest\x1a).minknow_api.manager.GetGuppyInfoResponse\"\x03\x90\x02\x01\x12q\n\x10get_version_info\x12*.minknow_api.manager.GetVersionInfoRequest\x1a,.minknow_api.instance.GetVersionInfoResponse\"\x03\x90\x02\x01\x12\x98\x01\n\x1elist_protocol_output_dir_files\x12\x36.minknow_api.manager.ListProtocolOutputDirFilesRequest\x1a\x37.minknow_api.manager.ListProtocolOutputDirFilesResponse\"\x03\x90\x02\x01\x30\x01\x12r\n\x10\x63reate_directory\x12+.minknow_api.manager.CreateDirectoryRequest\x1a,.minknow_api.manager.CreateDirectoryResponse\"\x03\x90\x02\x02\x12w\n\x13get_disk_space_info\x12,.minknow_api.manager.GetDiskSpaceInfoRequest\x1a-.minknow_api.manager.GetDiskSpaceInfoResponse\"\x03\x90\x02\x01\x12\x88\x01\n\x1eget_default_output_directories\x12\x38.minknow_api.instance.GetDefaultOutputDirectoriesRequest\x1a\'.minknow_api.instance.OutputDirectories\"\x03\x90\x02\x01\x12\x7f\n\x16stream_disk_space_info\x12/.minknow_api.manager.StreamDiskSpaceInfoRequest\x1a-.minknow_api.manager.GetDiskSpaceInfoResponse\"\x03\x90\x02\x01\x30\x01\x12z\n\x14get_barcode_kit_info\x12-.minknow_api.manager.GetBarcodeKitInfoRequest\x1a..minknow_api.manager.GetBarcodeKitInfoResponse\"\x03\x90\x02\x01\x12q\n\x11get_lamp_kit_info\x12*.minknow_api.manager.GetLampKitInfoRequest\x1a+.minknow_api.manager.GetLampKitInfoResponse\"\x03\x90\x02\x01\x12p\n\x10get_barcode_keys\x12*.minknow_api.manager.GetBarcodeKeysRequest\x1a+.minknow_api.manager.GetBarcodeKeysResponse\"\x03\x90\x02\x01\x12{\n\x13get_flow_cell_types\x12,.minknow_api.manager.GetFlowCellTypesRequest\x1a-.minknow_api.manager.GetFlowCellTypesResponse\"\x07\x90\x02\x01\x98\xb5\x18\x01\x12}\n\x13get_sequencing_kits\x12-.minknow_api.manager.GetSequencingKitsRequest\x1a..minknow_api.manager.GetSequencingKitsResponse\"\x07\x90\x02\x01\x98\xb5\x18\x01\x12y\n\x14\x61\x64\x64_simulated_device\x12..minknow_api.manager.AddSimulatedDeviceRequest\x1a/.minknow_api.manager.AddSimulatedDeviceResponse\"\x00\x12\x85\x01\n\x17remove_simulated_device\x12\x31.minknow_api.manager.RemoveSimulatedDeviceRequest\x1a\x32.minknow_api.manager.RemoveSimulatedDeviceResponse\"\x03\x90\x02\x02\x12\x9b\x01\n\x1flocal_authentication_token_path\x12\x38.minknow_api.manager.LocalAuthenticationTokenPathRequest\x1a\x39.minknow_api.manager.LocalAuthenticationTokenPathResponse\"\x03\x90\x02\x01\x12\xa7\x01\n#get_alignment_reference_information\x12<.minknow_api.manager.GetAlignmentReferenceInformationRequest\x1a=.minknow_api.manager.GetAlignmentReferenceInformationResponse\"\x03\x90\x02\x01\x12\x85\x01\n\x17\x61ssociation_device_code\x12\x31.minknow_api.manager.AssociationDeviceCodeRequest\x1a\x32.minknow_api.manager.AssociationDeviceCodeResponse\"\x03\x90\x02\x01\x12\xab\x01\n%apply_offline_association_unlock_code\x12=.minknow_api.manager.ApplyOfflineAssociationUnlockCodeRequest\x1a>.minknow_api.manager.ApplyOfflineAssociationUnlockCodeResponse\"\x03\x90\x02\x02\x12\x8c\x01\n\x19list_developer_api_tokens\x12\x32.minknow_api.manager.ListDeveloperApiTokensRequest\x1a\x33.minknow_api.manager.ListDeveloperApiTokensResponse\"\x06\x88\x02\x01\x90\x02\x02\x12\x8c\x01\n\x1a\x63reate_developer_api_token\x12\x33.minknow_api.manager.CreateDeveloperApiTokenRequest\x1a\x34.minknow_api.manager.CreateDeveloperApiTokenResponse\"\x03\x88\x02\x01\x12\x8d\x01\n\x1arevoke_developer_api_token\x12\x33.minknow_api.manager.RevokeDeveloperApiTokenRequest\x1a\x35.minknow_api.manager.RevokeDeveloperApiTokensResponse\"\x03\x88\x02\x01\x12m\n\x0e\x66ind_protocols\x12).minknow_api.manager.FindProtocolsRequest\x1a*.minknow_api.manager.FindProtocolsResponse\"\x04\x98\xb5\x18\x01\x12\x90\x01\n\x1alist_settings_for_protocol\x12\x33.minknow_api.manager.ListSettingsForProtocolRequest\x1a\x34.minknow_api.manager.ListSettingsForProtocolResponse\"\x07\x90\x02\x01\x98\xb5\x18\x01\x12j\n\x0cget_features\x12\'.minknow_api.manager.GetFeaturesRequest\x1a(.minknow_api.manager.GetFeaturesResponse\"\x07\x90\x02\x01\x98\xb5\x18\x01\x12g\n\x0cset_features\x12\'.minknow_api.manager.SetFeaturesRequest\x1a(.minknow_api.manager.SetFeaturesResponse\"\x04\x98\xb5\x18\x01\x42&\n\x1c\x63om.nanoporetech.minknow_api\xa2\x02\x05MKAPIb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x19minknow_api/manager.proto\x12\x13minknow_api.manager\x1a\x1dminknow_api/rpc_options.proto\x1a\x18minknow_api/device.proto\x1a\x1aminknow_api/instance.proto\x1a#minknow_api/protocol_settings.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\x15\n\x13\x44\x65scribeHostRequest\"\xae\x05\n\x14\x44\x65scribeHostResponse\x12\x14\n\x0cproduct_code\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x0e\n\x06serial\x18\x03 \x01(\t\x12\x14\n\x0cnetwork_name\x18\x04 \x01(\t\x12\x19\n\x11needs_association\x18\x10 \x01(\x08\x12\x1c\n\x14\x63\x61n_sequence_offline\x18\x05 \x01(\x08\x12W\n\x0c\x63\x61n_basecall\x18\x06 \x01(\x0e\x32\x41.minknow_api.manager.DescribeHostResponse.BasecallingAvailability\x12\x63\n\x1c\x63urrent_basecalling_hardware\x18\x07 \x01(\x0b\x32=.minknow_api.manager.DescribeHostResponse.BasecallerSubstrate\x12\x65\n\x1e\x61vailable_basecalling_hardware\x18\x08 \x03(\x0b\x32=.minknow_api.manager.DescribeHostResponse.BasecallerSubstrate\x1a\x33\n\x13\x42\x61secallerSubstrate\x12\x0e\n\x06is_gpu\x18\x01 \x01(\x08\x12\x0c\n\x04gpus\x18\x02 \x03(\t\"\xb1\x01\n\x17\x42\x61secallingAvailability\x12\x19\n\x15\x42\x41SECALLING_AVAILABLE\x10\x00\x12\x1b\n\x17\x42\x41SECALLING_UNAVAILABLE\x10\x01\x12-\n)BASECALLING_UNAVAILABLE_BAD_CONFIGURATION\x10\x02\x12/\n+BASECALLING_UNAVAILABLE_ATTEMPTING_RECOVERY\x10\x03\"\x1e\n\x1cGetBasecallerFeaturesRequest\"_\n\x1dGetBasecallerFeaturesResponse\x12>\n6is_live_basecalling_with_adaptive_sampling_recommended\x18\x01 \x01(\x08\"\xdf\x07\n\x10\x46lowCellPosition\x12\x0c\n\x04name\x18\x01 \x01(\t\x12@\n\x08location\x18\x02 \x01(\x0b\x32..minknow_api.manager.FlowCellPosition.Location\x12:\n\x05state\x18\x03 \x01(\x0e\x32+.minknow_api.manager.FlowCellPosition.State\x12\x41\n\trpc_ports\x18\x04 \x01(\x0b\x32..minknow_api.manager.FlowCellPosition.RpcPorts\x12\x12\n\nerror_info\x18\x05 \x01(\t\x12X\n\x15shared_hardware_group\x18\x06 \x01(\x0b\x32\x39.minknow_api.manager.FlowCellPosition.SharedHardwareGroup\x12\x15\n\ris_integrated\x18\x07 \x01(\x08\x12\x1c\n\x14\x63\x61n_sequence_offline\x18\x08 \x01(\x08\x12@\n\x0eprotocol_state\x18\t \x01(\x0e\x32(.minknow_api.manager.SimpleProtocolState\x12\x14\n\x0cis_simulated\x18\n \x01(\x08\x12I\n\x0b\x64\x65vice_type\x18\x0b \x01(\x0e\x32\x34.minknow_api.device.GetDeviceInfoResponse.DeviceType\x12\x13\n\x0bparent_name\x18\x0c \x01(\t\x12\x1c\n\x14\x66irmware_is_updating\x18\r \x01(\x08\x12\x14\n\x0chas_progress\x18\x0e \x01(\x08\x12\x18\n\x10progress_percent\x18\x0f \x01(\r\x12\x1c\n\x14progress_eta_seconds\x18\x10 \x01(\r\x1a \n\x08Location\x12\t\n\x01x\x18\x01 \x01(\x05\x12\t\n\x01y\x18\x02 \x01(\x05\x1a\x33\n\x08RpcPorts\x12\x0e\n\x06secure\x18\x01 \x01(\r\x12\x17\n\x0fsecure_grpc_web\x18\x03 \x01(\r\x1a\'\n\x13SharedHardwareGroup\x12\x10\n\x08group_id\x18\x01 \x01(\r\"\xb4\x01\n\x05State\x12\x16\n\x12STATE_INITIALISING\x10\x00\x12\x11\n\rSTATE_RUNNING\x10\x01\x12\x13\n\x0fSTATE_RESETTING\x10\x02\x12\x1a\n\x16STATE_HARDWARE_REMOVED\x10\x03\x12\x18\n\x14STATE_HARDWARE_ERROR\x10\x04\x12\x18\n\x14STATE_SOFTWARE_ERROR\x10\x05\x12\x1b\n\x17STATE_NEEDS_ASSOCIATION\x10\x06\"\x1a\n\x18\x46lowCellPositionsRequest\"j\n\x19\x46lowCellPositionsResponse\x12\x13\n\x0btotal_count\x18\x01 \x01(\x05\x12\x38\n\tpositions\x18\x02 \x03(\x0b\x32%.minknow_api.manager.FlowCellPosition\"\x1f\n\x1dWatchFlowCellPositionsRequest\"\xa4\x01\n\x1eWatchFlowCellPositionsResponse\x12\x38\n\tadditions\x18\x01 \x03(\x0b\x32%.minknow_api.manager.FlowCellPosition\x12\x36\n\x07\x63hanges\x18\x02 \x03(\x0b\x32%.minknow_api.manager.FlowCellPosition\x12\x10\n\x08removals\x18\x03 \x03(\t\"8\n\x14ResetPositionRequest\x12\x11\n\tpositions\x18\x03 \x03(\t\x12\r\n\x05\x66orce\x18\x02 \x01(\x08\"\x17\n\x15ResetPositionResponse\"\x16\n\x14\x42\x61secallerApiRequest\"@\n\x15\x42\x61secallerApiResponse\x12\x0e\n\x06secure\x18\x01 \x01(\r\x12\x17\n\x0fsecure_grpc_web\x18\x03 \x01(\r\"\x15\n\x13GetGuppyInfoRequest\"^\n\x14GetGuppyInfoResponse\x12\x0e\n\x04port\x18\x01 \x01(\rH\x00\x12\x12\n\x08ipc_path\x18\x03 \x01(\tH\x00\x12\x0f\n\x07version\x18\x02 \x01(\tB\x11\n\x0f\x63onnection_type\"\x17\n\x15GetVersionInfoRequest\"1\n!ListProtocolOutputDirFilesRequest\x12\x0c\n\x04path\x18\x01 \x01(\t\"\xf8\x01\n\"ListProtocolOutputDirFilesResponse\x12Z\n\x0b\x64irectories\x18\x01 \x03(\x0b\x32\x45.minknow_api.manager.ListProtocolOutputDirFilesResponse.DirectoryInfo\x12\r\n\x05\x66iles\x18\x02 \x03(\t\x12\x1b\n\x13\x63urrent_listed_path\x18\x03 \x01(\t\x1aJ\n\rDirectoryInfo\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x17\n\x0f\x64irectory_count\x18\x02 \x01(\x05\x12\x12\n\nfile_count\x18\x03 \x01(\x05\";\n\x16\x43reateDirectoryRequest\x12\x13\n\x0bparent_path\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\"\'\n\x17\x43reateDirectoryResponse\x12\x0c\n\x04path\x18\x01 \x01(\t\"\x87\x02\n\x17\x46ilesystemDiskSpaceInfo\x12\x15\n\rfilesystem_id\x18\x01 \x01(\t\x12\x17\n\x0f\x62ytes_available\x18\x02 \x01(\x04\x12\x16\n\x0e\x62ytes_capacity\x18\x03 \x01(\x04\x12\x19\n\x11\x66ile_types_stored\x18\x04 \x03(\t\x12\x1d\n\x15\x62ytes_to_stop_cleanly\x18\x05 \x01(\x04\x12\x1f\n\x17\x62ytes_when_alert_issued\x18\x06 \x01(\x04\x12\x17\n\x0frecommend_alert\x18\x07 \x01(\x08\x12\x16\n\x0erecommend_stop\x18\x08 \x01(\x08\x12\x18\n\x10\x62ytes_per_second\x18\t \x01(\x03\"\x19\n\x17GetDiskSpaceInfoRequest\",\n\x1aStreamDiskSpaceInfoRequest\x12\x0e\n\x06period\x18\x01 \x01(\r\"l\n\x18GetDiskSpaceInfoResponse\x12P\n\x1a\x66ilesystem_disk_space_info\x18\x01 \x03(\x0b\x32,.minknow_api.manager.FilesystemDiskSpaceInfo\"\x1a\n\x18GetBarcodeKitInfoRequest\"\xa8\x02\n\x19GetBarcodeKitInfoResponse\x12\\\n\x10\x62\x61rcode_kit_info\x18\x01 \x03(\x0b\x32\x42.minknow_api.manager.GetBarcodeKitInfoResponse.BarcodeKitInfoEntry\x1a\x37\n\x0e\x42\x61rcodeKitInfo\x12\x0f\n\x07is_dual\x18\x02 \x01(\x08\x12\x14\n\x0cis_both_ends\x18\x03 \x01(\x08\x1at\n\x13\x42\x61rcodeKitInfoEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12L\n\x05value\x18\x02 \x01(\x0b\x32=.minknow_api.manager.GetBarcodeKitInfoResponse.BarcodeKitInfo:\x02\x38\x01\"\x17\n\x15GetLampKitInfoRequest\"+\n\x16GetLampKitInfoResponse\x12\x11\n\tlamp_kits\x18\x02 \x03(\t\"I\n\x15GetBarcodeKeysRequest\x12\x19\n\x11\x62\x61rcode_kit_names\x18\x01 \x03(\t\x12\x15\n\rlamp_kit_name\x18\x02 \x01(\t\"X\n\x16GetBarcodeKeysResponse\x12\x14\n\x0c\x62\x61rcode_keys\x18\x01 \x03(\t\x12\x11\n\tlamp_keys\x18\x02 \x03(\t\x12\x15\n\rcombined_keys\x18\x03 \x03(\t\"\x19\n\x17GetFlowCellTypesRequest\"\xdc\x01\n\x18GetFlowCellTypesResponse\x12\x41\n\x05types\x18\x01 \x03(\x0b\x32\x32.minknow_api.manager.GetFlowCellTypesResponse.Info\x1a}\n\x04Info\x12\x14\n\x0cproduct_code\x18\x01 \x01(\t\x12\x41\n\x0e\x63onnector_type\x18\x02 \x01(\x0e\x32).minknow_api.device.FlowCellConnectorType\x12\x1c\n\x14\x63\x61nnot_live_basecall\x18\x03 \x01(\x08\":\n\x18GetSequencingKitsRequest\x12\x1e\n\x16\x66low_cell_product_code\x18\x01 \x01(\t\"\xf2\x03\n\x19GetSequencingKitsResponse\x12@\n\x04kits\x18\x01 \x03(\x0b\x32\x32.minknow_api.manager.GetSequencingKitsResponse.Kit\x12\x66\n\x18\x62\x61rcoding_expansion_kits\x18\x02 \x03(\x0b\x32\x44.minknow_api.manager.GetSequencingKitsResponse.BarcodingExpansionKit\x1a\xfb\x01\n\x03Kit\x12\x14\n\x0cproduct_code\x18\x01 \x01(\t\x12 \n\x18\x62\x61rcoding_expansion_kits\x18\x02 \x03(\x05\x12\x1a\n\x12includes_barcoding\x18\x03 \x01(\x08\x12\x10\n\x08lamp_kit\x18\x10 \x01(\x08\x12\x1c\n\x14has_control_protocol\x18\x04 \x01(\x08\x12\x1e\n\x16no_sequencing_protocol\x18\x11 \x01(\x08\x12\x17\n\x0f\x66requently_used\x18\x12 \x01(\x08\x12\x0b\n\x03\x64na\x18\x05 \x01(\x08\x12\x0b\n\x03rna\x18\x06 \x01(\x08\x12\x0b\n\x03pcr\x18\x07 \x01(\x08\x12\x10\n\x08pcr_free\x18\x08 \x01(\x08\x1a-\n\x15\x42\x61rcodingExpansionKit\x12\x14\n\x0cproduct_code\x18\x01 \x01(\t\"m\n\x19\x41\x64\x64SimulatedDeviceRequest\x12\x12\n\x04name\x18\x01 \x01(\tB\x04\x88\xb5\x18\x01\x12<\n\x04type\x18\x02 \x01(\x0e\x32(.minknow_api.manager.SimulatedDeviceTypeB\x04\x88\xb5\x18\x01\"\x1c\n\x1a\x41\x64\x64SimulatedDeviceResponse\"2\n\x1cRemoveSimulatedDeviceRequest\x12\x12\n\x04name\x18\x01 \x01(\tB\x04\x88\xb5\x18\x01\"\x1f\n\x1dRemoveSimulatedDeviceResponse\"%\n#LocalAuthenticationTokenPathRequest\"4\n$LocalAuthenticationTokenPathResponse\x12\x0c\n\x04path\x18\x01 \x01(\t\"7\n\'GetAlignmentReferenceInformationRequest\x12\x0c\n\x04path\x18\x01 \x01(\t\"\xf5\x01\n(GetAlignmentReferenceInformationResponse\x12#\n\x1b\x65stimated_load_time_seconds\x18\x01 \x01(\x02\x12&\n\x1e\x65stimated_reference_size_bases\x18\x02 \x01(\x04\x12\x1e\n\x16recommended_live_usage\x18\x03 \x01(\x08\x12+\n#recommended_adaptive_sampling_usage\x18\x04 \x01(\x08\x12/\n\'max_recommended_adaptive_sampling_bases\x18\x05 \x01(\x04\"D\n\x1c\x41ssociationDeviceCodeRequest\x12\x15\n\rposition_name\x18\x01 \x01(\tJ\x04\x08\x02\x10\x03R\x07offline\"-\n\x1d\x41ssociationDeviceCodeResponse\x12\x0c\n\x04\x63ode\x18\x01 \x01(\t\"V\n(ApplyOfflineAssociationUnlockCodeRequest\x12\x15\n\rposition_name\x18\x01 \x01(\t\x12\x13\n\x0bunlock_code\x18\x02 \x01(\t\"?\n)ApplyOfflineAssociationUnlockCodeResponse\x12\x12\n\nassociated\x18\x01 \x01(\x08\"\x1f\n\x1dListDeveloperApiTokensRequest\"\xd2\x01\n\x1eListDeveloperApiTokensResponse\x12U\n\x06tokens\x18\x01 \x03(\x0b\x32\x45.minknow_api.manager.ListDeveloperApiTokensResponse.DeveloperApiToken\x1aY\n\x11\x44\x65veloperApiToken\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12*\n\x06\x65xpiry\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"Z\n\x1e\x43reateDeveloperApiTokenRequest\x12\x0c\n\x04name\x18\x02 \x01(\t\x12*\n\x06\x65xpiry\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"<\n\x1f\x43reateDeveloperApiTokenResponse\x12\n\n\x02id\x18\x01 \x01(\t\x12\r\n\x05token\x18\x02 \x01(\t\",\n\x1eRevokeDeveloperApiTokenRequest\x12\n\n\x02id\x18\x01 \x01(\t\"\"\n RevokeDeveloperApiTokensResponse\"\x8c\x01\n\x14\x46indProtocolsRequest\x12\x1e\n\x16\x66low_cell_product_code\x18\x01 \x01(\t\x12\x16\n\x0esequencing_kit\x18\x02 \x01(\t\x12<\n\x0f\x65xperiment_type\x18\x03 \x01(\x0e\x32#.minknow_api.manager.ExperimentType\"\xc9\x01\n\x15\x46indProtocolsResponse\x12\x46\n\tprotocols\x18\x01 \x03(\x0b\x32\x33.minknow_api.manager.FindProtocolsResponse.Protocol\x1ah\n\x08Protocol\x12\x12\n\nidentifier\x18\x01 \x01(\t\x12\'\n\x1frequires_flow_cell_product_code\x18\x02 \x01(\x08\x12\x1f\n\x17requires_sequencing_kit\x18\x03 \x01(\x08\"\xee\x01\n\x1eListSettingsForProtocolRequest\x12\x14\n\nidentifier\x18\x01 \x01(\tH\x00\x12Q\n\ncomponents\x18\x02 \x01(\x0b\x32;.minknow_api.protocol_settings.ProtocolIdentifierComponentsH\x00\x12L\n\x13\x66low_cell_connector\x18\x03 \x01(\x0e\x32).minknow_api.device.FlowCellConnectorTypeB\x04\x88\xb5\x18\x01\x42\x15\n\x13protocol_identifier\"\x8c\x1f\n\x1fListSettingsForProtocolResponse\x12M\n\x08protocol\x18\x01 \x01(\x0b\x32;.minknow_api.protocol_settings.ProtocolIdentifierComponents\x12T\n\x0brun_options\x18\x02 \x01(\x0b\x32?.minknow_api.manager.ListSettingsForProtocolResponse.RunOptions\x12U\n\x0b\x62\x61secalling\x18\x03 \x01(\x0b\x32@.minknow_api.manager.ListSettingsForProtocolResponse.Basecalling\x12K\n\x06output\x18\x04 \x01(\x0b\x32;.minknow_api.manager.ListSettingsForProtocolResponse.Output\x12I\n\x11protocol_settings\x18\x05 \x03(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x1a\xd5\x06\n\nRunOptions\x12\x42\n\nrun_length\x18\x01 \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x12\x44\n\x0c\x62ias_voltage\x18\x02 \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x12J\n\x12read_until_enabled\x18\x03 \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x12K\n\x13read_until_ref_file\x18\x04 \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x12K\n\x13read_until_channels\x18\x05 \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x12S\n\x1bread_until_bed_file_enabled\x18\x06 \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x12K\n\x13read_until_bed_file\x18\x07 \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x12M\n\x15read_until_enrichment\x18\x08 \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x12P\n\x18\x61\x63tive_channel_selection\x18\t \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x12G\n\x0fmux_scan_period\x18\n \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x12K\n\x13group_change_period\x18\x0b \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x1a\x8f\x06\n\x0b\x42\x61secalling\x12K\n\x13\x62\x61secalling_enabled\x18\x01 \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x12I\n\x11\x62\x61rcoding_enabled\x18\x02 \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x12\x46\n\x0e\x62\x61rcoding_kits\x18\x03 \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x12\x46\n\x0e\x62\x61secall_model\x18\x04 \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x12M\n\x15trim_barcodes_enabled\x18\x05 \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x12R\n\x1arequire_barcodes_both_ends\x18\x06 \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x12I\n\x11\x61lignment_enabled\x18\r \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x12J\n\x12\x61lignment_ref_file\x18\x0e \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x12R\n\x1a\x61lignment_bed_file_enabled\x18\x0f \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x12J\n\x12\x61lignment_bed_file\x18\x10 \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x1a\xea\x0e\n\x06Output\x12G\n\x0foutput_location\x18\x01 \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x12\x46\n\x0e\x66\x61st_q_enabled\x18\x02 \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x12M\n\x15\x66\x61st_q_reads_per_file\x18\x03 \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x12O\n\x17\x66\x61st_q_data_compression\x18\x04 \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x12\x46\n\x0e\x66\x61st_5_enabled\x18\x05 \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x12M\n\x15\x66\x61st_5_reads_per_file\x18\x06 \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x12O\n\x17\x66\x61st_5_data_trace_table\x18\x07 \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x12N\n\x16\x66\x61st_5_data_move_table\x18\x08 \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x12J\n\x12\x66\x61st_5_data_fast_q\x18\t \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x12G\n\x0f\x66\x61st_5_data_raw\x18\n \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x12O\n\x17\x66\x61st_5_data_compression\x18\x0b \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x12\x43\n\x0b\x62\x61m_enabled\x18\x0c \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x12N\n\x16read_filtering_enabled\x18\r \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x12Q\n\x19read_filtering_min_qscore\x18\x0e \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x12V\n\x1eread_filtering_min_read_length\x18\x0f \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x12V\n\x1eread_filtering_max_read_length\x18\x10 \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x12I\n\x11\x62ulk_file_enabled\x18\x11 \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x12\x45\n\rbulk_file_raw\x18\x12 \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x12H\n\x10\x62ulk_file_events\x18\x13 \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x12L\n\x14\x62ulk_file_read_table\x18\x14 \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x12M\n\x15\x62ulk_file_raw_enabled\x18\x15 \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x12P\n\x18\x62ulk_file_events_enabled\x18\x16 \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x12T\n\x1c\x62ulk_file_read_table_enabled\x18\x17 \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\x12X\n read_filtering_min_duplex_qscore\x18\x18 \x01(\x0b\x32..minknow_api.protocol_settings.ProtocolSetting\"\x1a\n\x07\x46\x65\x61ture\x12\x0f\n\x07\x65nabled\x18\x01 \x01(\x08\"\xe5\x01\n\x0b\x46\x65\x61tureList\x12\x33\n\rfeature_flags\x18\x03 \x01(\x0b\x32\x1c.minknow_api.manager.Feature\x12\x34\n\x0e\x65nrich_deplete\x18\x01 \x01(\x0b\x32\x1c.minknow_api.manager.Feature\x12\x37\n\x11\x62\x61rcode_balancing\x18\x02 \x01(\x0b\x32\x1c.minknow_api.manager.Feature\x12\x32\n\x0c\x64\x61ta_offload\x18\x04 \x01(\x0b\x32\x1c.minknow_api.manager.Feature\"\x14\n\x12GetFeaturesRequest\"\xde\x01\n\x13GetFeaturesResponse\x12=\n\x05state\x18\x01 \x01(\x0e\x32..minknow_api.manager.GetFeaturesResponse.State\x12\x32\n\x08\x66\x65\x61tures\x18\x02 \x01(\x0b\x32 .minknow_api.manager.FeatureList\"T\n\x05State\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x0b\n\x07NO_FILE\x10\x01\x12\x1b\n\x17\x45RROR_LOADING_FROM_FILE\x10\x02\x12\x14\n\x10LOADED_FROM_FILE\x10\x03\"H\n\x12SetFeaturesRequest\x12\x32\n\x08\x66\x65\x61tures\x18\x01 \x01(\x0b\x32 .minknow_api.manager.FeatureList\"\x15\n\x13SetFeaturesResponse\"\x1b\n\x19RestartDeviceAdminRequest\"\x1c\n\x1aRestartDeviceAdminResponse*\x88\x01\n\x13SimpleProtocolState\x12\x15\n\x11NO_PROTOCOL_STATE\x10\x00\x12\x14\n\x10PROTOCOL_RUNNING\x10\x01\x12\"\n\x1ePROTOCOL_FINISHED_SUCCESSFULLY\x10\x02\x12 \n\x1cPROTOCOL_FINISHED_WITH_ERROR\x10\x03*\x82\x01\n\x13SimulatedDeviceType\x12\x12\n\x0eSIMULATED_AUTO\x10\x00\x12\x14\n\x10SIMULATED_MINION\x10\x01\x12\x15\n\x11SIMULATED_TRAXION\x10\x02\x12\x18\n\x14SIMULATED_PROMETHION\x10\x03\x12\x10\n\x0cSIMULATED_P2\x10\x04*j\n\x0e\x45xperimentType\x12\x0e\n\nSEQUENCING\x10\x00\x12\x0b\n\x07\x43ONTROL\x10\x01\x12\n\n\x06\x43USTOM\x10\x02\x12\x15\n\x11\x41LL_EXCEPT_HIDDEN\x10\x03\x12\x18\n\x14\x41LL_INCLUDING_HIDDEN\x10\x04\x32\xc4 \n\x0eManagerService\x12i\n\rdescribe_host\x12(.minknow_api.manager.DescribeHostRequest\x1a).minknow_api.manager.DescribeHostResponse\"\x03\x90\x02\x01\x12\x85\x01\n\x17get_basecaller_features\x12\x31.minknow_api.manager.GetBasecallerFeaturesRequest\x1a\x32.minknow_api.manager.GetBasecallerFeaturesResponse\"\x03\x90\x02\x01\x12{\n\x13\x66low_cell_positions\x12-.minknow_api.manager.FlowCellPositionsRequest\x1a..minknow_api.manager.FlowCellPositionsResponse\"\x03\x90\x02\x01\x30\x01\x12\x8b\x01\n\x19watch_flow_cell_positions\x12\x32.minknow_api.manager.WatchFlowCellPositionsRequest\x1a\x33.minknow_api.manager.WatchFlowCellPositionsResponse\"\x03\x90\x02\x01\x30\x01\x12i\n\x0ereset_position\x12).minknow_api.manager.ResetPositionRequest\x1a*.minknow_api.manager.ResetPositionResponse\"\x00\x12l\n\x0e\x62\x61secaller_api\x12).minknow_api.manager.BasecallerApiRequest\x1a*.minknow_api.manager.BasecallerApiResponse\"\x03\x90\x02\x01\x12j\n\x0eget_guppy_info\x12(.minknow_api.manager.GetGuppyInfoRequest\x1a).minknow_api.manager.GetGuppyInfoResponse\"\x03\x90\x02\x01\x12q\n\x10get_version_info\x12*.minknow_api.manager.GetVersionInfoRequest\x1a,.minknow_api.instance.GetVersionInfoResponse\"\x03\x90\x02\x01\x12\x98\x01\n\x1elist_protocol_output_dir_files\x12\x36.minknow_api.manager.ListProtocolOutputDirFilesRequest\x1a\x37.minknow_api.manager.ListProtocolOutputDirFilesResponse\"\x03\x90\x02\x01\x30\x01\x12r\n\x10\x63reate_directory\x12+.minknow_api.manager.CreateDirectoryRequest\x1a,.minknow_api.manager.CreateDirectoryResponse\"\x03\x90\x02\x02\x12w\n\x13get_disk_space_info\x12,.minknow_api.manager.GetDiskSpaceInfoRequest\x1a-.minknow_api.manager.GetDiskSpaceInfoResponse\"\x03\x90\x02\x01\x12\x88\x01\n\x1eget_default_output_directories\x12\x38.minknow_api.instance.GetDefaultOutputDirectoriesRequest\x1a\'.minknow_api.instance.OutputDirectories\"\x03\x90\x02\x01\x12\x7f\n\x16stream_disk_space_info\x12/.minknow_api.manager.StreamDiskSpaceInfoRequest\x1a-.minknow_api.manager.GetDiskSpaceInfoResponse\"\x03\x90\x02\x01\x30\x01\x12z\n\x14get_barcode_kit_info\x12-.minknow_api.manager.GetBarcodeKitInfoRequest\x1a..minknow_api.manager.GetBarcodeKitInfoResponse\"\x03\x90\x02\x01\x12q\n\x11get_lamp_kit_info\x12*.minknow_api.manager.GetLampKitInfoRequest\x1a+.minknow_api.manager.GetLampKitInfoResponse\"\x03\x90\x02\x01\x12p\n\x10get_barcode_keys\x12*.minknow_api.manager.GetBarcodeKeysRequest\x1a+.minknow_api.manager.GetBarcodeKeysResponse\"\x03\x90\x02\x01\x12{\n\x13get_flow_cell_types\x12,.minknow_api.manager.GetFlowCellTypesRequest\x1a-.minknow_api.manager.GetFlowCellTypesResponse\"\x07\x90\x02\x01\x98\xb5\x18\x01\x12}\n\x13get_sequencing_kits\x12-.minknow_api.manager.GetSequencingKitsRequest\x1a..minknow_api.manager.GetSequencingKitsResponse\"\x07\x90\x02\x01\x98\xb5\x18\x01\x12y\n\x14\x61\x64\x64_simulated_device\x12..minknow_api.manager.AddSimulatedDeviceRequest\x1a/.minknow_api.manager.AddSimulatedDeviceResponse\"\x00\x12\x85\x01\n\x17remove_simulated_device\x12\x31.minknow_api.manager.RemoveSimulatedDeviceRequest\x1a\x32.minknow_api.manager.RemoveSimulatedDeviceResponse\"\x03\x90\x02\x02\x12\x9b\x01\n\x1flocal_authentication_token_path\x12\x38.minknow_api.manager.LocalAuthenticationTokenPathRequest\x1a\x39.minknow_api.manager.LocalAuthenticationTokenPathResponse\"\x03\x90\x02\x01\x12\xa7\x01\n#get_alignment_reference_information\x12<.minknow_api.manager.GetAlignmentReferenceInformationRequest\x1a=.minknow_api.manager.GetAlignmentReferenceInformationResponse\"\x03\x90\x02\x01\x12\x85\x01\n\x17\x61ssociation_device_code\x12\x31.minknow_api.manager.AssociationDeviceCodeRequest\x1a\x32.minknow_api.manager.AssociationDeviceCodeResponse\"\x03\x90\x02\x01\x12\xab\x01\n%apply_offline_association_unlock_code\x12=.minknow_api.manager.ApplyOfflineAssociationUnlockCodeRequest\x1a>.minknow_api.manager.ApplyOfflineAssociationUnlockCodeResponse\"\x03\x90\x02\x02\x12\x8c\x01\n\x19list_developer_api_tokens\x12\x32.minknow_api.manager.ListDeveloperApiTokensRequest\x1a\x33.minknow_api.manager.ListDeveloperApiTokensResponse\"\x06\x88\x02\x01\x90\x02\x02\x12\x8c\x01\n\x1a\x63reate_developer_api_token\x12\x33.minknow_api.manager.CreateDeveloperApiTokenRequest\x1a\x34.minknow_api.manager.CreateDeveloperApiTokenResponse\"\x03\x88\x02\x01\x12\x8d\x01\n\x1arevoke_developer_api_token\x12\x33.minknow_api.manager.RevokeDeveloperApiTokenRequest\x1a\x35.minknow_api.manager.RevokeDeveloperApiTokensResponse\"\x03\x88\x02\x01\x12m\n\x0e\x66ind_protocols\x12).minknow_api.manager.FindProtocolsRequest\x1a*.minknow_api.manager.FindProtocolsResponse\"\x04\x98\xb5\x18\x01\x12\x90\x01\n\x1alist_settings_for_protocol\x12\x33.minknow_api.manager.ListSettingsForProtocolRequest\x1a\x34.minknow_api.manager.ListSettingsForProtocolResponse\"\x07\x90\x02\x01\x98\xb5\x18\x01\x12j\n\x0cget_features\x12\'.minknow_api.manager.GetFeaturesRequest\x1a(.minknow_api.manager.GetFeaturesResponse\"\x07\x90\x02\x01\x98\xb5\x18\x01\x12g\n\x0cset_features\x12\'.minknow_api.manager.SetFeaturesRequest\x1a(.minknow_api.manager.SetFeaturesResponse\"\x04\x98\xb5\x18\x01\x12\x84\x01\n\x1crestart_device_admin_service\x12..minknow_api.manager.RestartDeviceAdminRequest\x1a/.minknow_api.manager.RestartDeviceAdminResponse\"\x03\x90\x02\x02\x42&\n\x1c\x63om.nanoporetech.minknow_api\xa2\x02\x05MKAPIb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -95,177 +95,202 @@ _globals['_MANAGERSERVICE'].methods_by_name['get_features']._serialized_options = b'\220\002\001\230\265\030\001' _globals['_MANAGERSERVICE'].methods_by_name['set_features']._options = None _globals['_MANAGERSERVICE'].methods_by_name['set_features']._serialized_options = b'\230\265\030\001' - _globals['_SIMPLEPROTOCOLSTATE']._serialized_start=11509 - _globals['_SIMPLEPROTOCOLSTATE']._serialized_end=11645 - _globals['_SIMULATEDDEVICETYPE']._serialized_start=11648 - _globals['_SIMULATEDDEVICETYPE']._serialized_end=11778 - _globals['_EXPERIMENTTYPE']._serialized_start=11780 - _globals['_EXPERIMENTTYPE']._serialized_end=11886 + _globals['_MANAGERSERVICE'].methods_by_name['restart_device_admin_service']._options = None + _globals['_MANAGERSERVICE'].methods_by_name['restart_device_admin_service']._serialized_options = b'\220\002\002' + _globals['_SIMPLEPROTOCOLSTATE']._serialized_start=11530 + _globals['_SIMPLEPROTOCOLSTATE']._serialized_end=11666 + _globals['_SIMULATEDDEVICETYPE']._serialized_start=11669 + _globals['_SIMULATEDDEVICETYPE']._serialized_end=11799 + _globals['_EXPERIMENTTYPE']._serialized_start=11801 + _globals['_EXPERIMENTTYPE']._serialized_end=11907 _globals['_DESCRIBEHOSTREQUEST']._serialized_start=205 _globals['_DESCRIBEHOSTREQUEST']._serialized_end=226 _globals['_DESCRIBEHOSTRESPONSE']._serialized_start=229 - _globals['_DESCRIBEHOSTRESPONSE']._serialized_end=658 - _globals['_DESCRIBEHOSTRESPONSE_BASECALLINGAVAILABILITY']._serialized_start=481 - _globals['_DESCRIBEHOSTRESPONSE_BASECALLINGAVAILABILITY']._serialized_end=658 - _globals['_GETBASECALLERFEATURESREQUEST']._serialized_start=660 - _globals['_GETBASECALLERFEATURESREQUEST']._serialized_end=690 - _globals['_GETBASECALLERFEATURESRESPONSE']._serialized_start=692 - _globals['_GETBASECALLERFEATURESRESPONSE']._serialized_end=787 - _globals['_FLOWCELLPOSITION']._serialized_start=790 - _globals['_FLOWCELLPOSITION']._serialized_end=1673 - _globals['_FLOWCELLPOSITION_LOCATION']._serialized_start=1364 - _globals['_FLOWCELLPOSITION_LOCATION']._serialized_end=1396 - _globals['_FLOWCELLPOSITION_RPCPORTS']._serialized_start=1398 - _globals['_FLOWCELLPOSITION_RPCPORTS']._serialized_end=1449 - _globals['_FLOWCELLPOSITION_SHAREDHARDWAREGROUP']._serialized_start=1451 - _globals['_FLOWCELLPOSITION_SHAREDHARDWAREGROUP']._serialized_end=1490 - _globals['_FLOWCELLPOSITION_STATE']._serialized_start=1493 - _globals['_FLOWCELLPOSITION_STATE']._serialized_end=1673 - _globals['_FLOWCELLPOSITIONSREQUEST']._serialized_start=1675 - _globals['_FLOWCELLPOSITIONSREQUEST']._serialized_end=1701 - _globals['_FLOWCELLPOSITIONSRESPONSE']._serialized_start=1703 - _globals['_FLOWCELLPOSITIONSRESPONSE']._serialized_end=1809 - _globals['_WATCHFLOWCELLPOSITIONSREQUEST']._serialized_start=1811 - _globals['_WATCHFLOWCELLPOSITIONSREQUEST']._serialized_end=1842 - _globals['_WATCHFLOWCELLPOSITIONSRESPONSE']._serialized_start=1845 - _globals['_WATCHFLOWCELLPOSITIONSRESPONSE']._serialized_end=2009 - _globals['_RESETPOSITIONREQUEST']._serialized_start=2011 - _globals['_RESETPOSITIONREQUEST']._serialized_end=2067 - _globals['_RESETPOSITIONRESPONSE']._serialized_start=2069 - _globals['_RESETPOSITIONRESPONSE']._serialized_end=2092 - _globals['_BASECALLERAPIREQUEST']._serialized_start=2094 - _globals['_BASECALLERAPIREQUEST']._serialized_end=2116 - _globals['_BASECALLERAPIRESPONSE']._serialized_start=2118 - _globals['_BASECALLERAPIRESPONSE']._serialized_end=2182 - _globals['_GETGUPPYINFOREQUEST']._serialized_start=2184 - _globals['_GETGUPPYINFOREQUEST']._serialized_end=2205 - _globals['_GETGUPPYINFORESPONSE']._serialized_start=2207 - _globals['_GETGUPPYINFORESPONSE']._serialized_end=2301 - _globals['_GETVERSIONINFOREQUEST']._serialized_start=2303 - _globals['_GETVERSIONINFOREQUEST']._serialized_end=2326 - _globals['_LISTPROTOCOLOUTPUTDIRFILESREQUEST']._serialized_start=2328 - _globals['_LISTPROTOCOLOUTPUTDIRFILESREQUEST']._serialized_end=2377 - _globals['_LISTPROTOCOLOUTPUTDIRFILESRESPONSE']._serialized_start=2380 - _globals['_LISTPROTOCOLOUTPUTDIRFILESRESPONSE']._serialized_end=2628 - _globals['_LISTPROTOCOLOUTPUTDIRFILESRESPONSE_DIRECTORYINFO']._serialized_start=2554 - _globals['_LISTPROTOCOLOUTPUTDIRFILESRESPONSE_DIRECTORYINFO']._serialized_end=2628 - _globals['_CREATEDIRECTORYREQUEST']._serialized_start=2630 - _globals['_CREATEDIRECTORYREQUEST']._serialized_end=2689 - _globals['_CREATEDIRECTORYRESPONSE']._serialized_start=2691 - _globals['_CREATEDIRECTORYRESPONSE']._serialized_end=2730 - _globals['_FILESYSTEMDISKSPACEINFO']._serialized_start=2733 - _globals['_FILESYSTEMDISKSPACEINFO']._serialized_end=2996 - _globals['_GETDISKSPACEINFOREQUEST']._serialized_start=2998 - _globals['_GETDISKSPACEINFOREQUEST']._serialized_end=3023 - _globals['_STREAMDISKSPACEINFOREQUEST']._serialized_start=3025 - _globals['_STREAMDISKSPACEINFOREQUEST']._serialized_end=3069 - _globals['_GETDISKSPACEINFORESPONSE']._serialized_start=3071 - _globals['_GETDISKSPACEINFORESPONSE']._serialized_end=3179 - _globals['_GETBARCODEKITINFOREQUEST']._serialized_start=3181 - _globals['_GETBARCODEKITINFOREQUEST']._serialized_end=3207 - _globals['_GETBARCODEKITINFORESPONSE']._serialized_start=3210 - _globals['_GETBARCODEKITINFORESPONSE']._serialized_end=3506 - _globals['_GETBARCODEKITINFORESPONSE_BARCODEKITINFO']._serialized_start=3333 - _globals['_GETBARCODEKITINFORESPONSE_BARCODEKITINFO']._serialized_end=3388 - _globals['_GETBARCODEKITINFORESPONSE_BARCODEKITINFOENTRY']._serialized_start=3390 - _globals['_GETBARCODEKITINFORESPONSE_BARCODEKITINFOENTRY']._serialized_end=3506 - _globals['_GETLAMPKITINFOREQUEST']._serialized_start=3508 - _globals['_GETLAMPKITINFOREQUEST']._serialized_end=3531 - _globals['_GETLAMPKITINFORESPONSE']._serialized_start=3533 - _globals['_GETLAMPKITINFORESPONSE']._serialized_end=3576 - _globals['_GETBARCODEKEYSREQUEST']._serialized_start=3578 - _globals['_GETBARCODEKEYSREQUEST']._serialized_end=3651 - _globals['_GETBARCODEKEYSRESPONSE']._serialized_start=3653 - _globals['_GETBARCODEKEYSRESPONSE']._serialized_end=3741 - _globals['_GETFLOWCELLTYPESREQUEST']._serialized_start=3743 - _globals['_GETFLOWCELLTYPESREQUEST']._serialized_end=3768 - _globals['_GETFLOWCELLTYPESRESPONSE']._serialized_start=3771 - _globals['_GETFLOWCELLTYPESRESPONSE']._serialized_end=3991 - _globals['_GETFLOWCELLTYPESRESPONSE_INFO']._serialized_start=3866 - _globals['_GETFLOWCELLTYPESRESPONSE_INFO']._serialized_end=3991 - _globals['_GETSEQUENCINGKITSREQUEST']._serialized_start=3993 - _globals['_GETSEQUENCINGKITSREQUEST']._serialized_end=4051 - _globals['_GETSEQUENCINGKITSRESPONSE']._serialized_start=4054 - _globals['_GETSEQUENCINGKITSRESPONSE']._serialized_end=4552 - _globals['_GETSEQUENCINGKITSRESPONSE_KIT']._serialized_start=4254 - _globals['_GETSEQUENCINGKITSRESPONSE_KIT']._serialized_end=4505 - _globals['_GETSEQUENCINGKITSRESPONSE_BARCODINGEXPANSIONKIT']._serialized_start=4507 - _globals['_GETSEQUENCINGKITSRESPONSE_BARCODINGEXPANSIONKIT']._serialized_end=4552 - _globals['_ADDSIMULATEDDEVICEREQUEST']._serialized_start=4554 - _globals['_ADDSIMULATEDDEVICEREQUEST']._serialized_end=4663 - _globals['_ADDSIMULATEDDEVICERESPONSE']._serialized_start=4665 - _globals['_ADDSIMULATEDDEVICERESPONSE']._serialized_end=4693 - _globals['_REMOVESIMULATEDDEVICEREQUEST']._serialized_start=4695 - _globals['_REMOVESIMULATEDDEVICEREQUEST']._serialized_end=4745 - _globals['_REMOVESIMULATEDDEVICERESPONSE']._serialized_start=4747 - _globals['_REMOVESIMULATEDDEVICERESPONSE']._serialized_end=4778 - _globals['_LOCALAUTHENTICATIONTOKENPATHREQUEST']._serialized_start=4780 - _globals['_LOCALAUTHENTICATIONTOKENPATHREQUEST']._serialized_end=4817 - _globals['_LOCALAUTHENTICATIONTOKENPATHRESPONSE']._serialized_start=4819 - _globals['_LOCALAUTHENTICATIONTOKENPATHRESPONSE']._serialized_end=4871 - _globals['_GETALIGNMENTREFERENCEINFORMATIONREQUEST']._serialized_start=4873 - _globals['_GETALIGNMENTREFERENCEINFORMATIONREQUEST']._serialized_end=4928 - _globals['_GETALIGNMENTREFERENCEINFORMATIONRESPONSE']._serialized_start=4931 - _globals['_GETALIGNMENTREFERENCEINFORMATIONRESPONSE']._serialized_end=5082 - _globals['_ASSOCIATIONDEVICECODEREQUEST']._serialized_start=5084 - _globals['_ASSOCIATIONDEVICECODEREQUEST']._serialized_end=5152 - _globals['_ASSOCIATIONDEVICECODERESPONSE']._serialized_start=5154 - _globals['_ASSOCIATIONDEVICECODERESPONSE']._serialized_end=5199 - _globals['_APPLYOFFLINEASSOCIATIONUNLOCKCODEREQUEST']._serialized_start=5201 - _globals['_APPLYOFFLINEASSOCIATIONUNLOCKCODEREQUEST']._serialized_end=5287 - _globals['_APPLYOFFLINEASSOCIATIONUNLOCKCODERESPONSE']._serialized_start=5289 - _globals['_APPLYOFFLINEASSOCIATIONUNLOCKCODERESPONSE']._serialized_end=5352 - _globals['_LISTDEVELOPERAPITOKENSREQUEST']._serialized_start=5354 - _globals['_LISTDEVELOPERAPITOKENSREQUEST']._serialized_end=5385 - _globals['_LISTDEVELOPERAPITOKENSRESPONSE']._serialized_start=5388 - _globals['_LISTDEVELOPERAPITOKENSRESPONSE']._serialized_end=5598 - _globals['_LISTDEVELOPERAPITOKENSRESPONSE_DEVELOPERAPITOKEN']._serialized_start=5509 - _globals['_LISTDEVELOPERAPITOKENSRESPONSE_DEVELOPERAPITOKEN']._serialized_end=5598 - _globals['_CREATEDEVELOPERAPITOKENREQUEST']._serialized_start=5600 - _globals['_CREATEDEVELOPERAPITOKENREQUEST']._serialized_end=5690 - _globals['_CREATEDEVELOPERAPITOKENRESPONSE']._serialized_start=5692 - _globals['_CREATEDEVELOPERAPITOKENRESPONSE']._serialized_end=5752 - _globals['_REVOKEDEVELOPERAPITOKENREQUEST']._serialized_start=5754 - _globals['_REVOKEDEVELOPERAPITOKENREQUEST']._serialized_end=5798 - _globals['_REVOKEDEVELOPERAPITOKENSRESPONSE']._serialized_start=5800 - _globals['_REVOKEDEVELOPERAPITOKENSRESPONSE']._serialized_end=5834 - _globals['_FINDPROTOCOLSREQUEST']._serialized_start=5837 - _globals['_FINDPROTOCOLSREQUEST']._serialized_end=5977 - _globals['_FINDPROTOCOLSRESPONSE']._serialized_start=5980 - _globals['_FINDPROTOCOLSRESPONSE']._serialized_end=6181 - _globals['_FINDPROTOCOLSRESPONSE_PROTOCOL']._serialized_start=6077 - _globals['_FINDPROTOCOLSRESPONSE_PROTOCOL']._serialized_end=6181 - _globals['_LISTSETTINGSFORPROTOCOLREQUEST']._serialized_start=6184 - _globals['_LISTSETTINGSFORPROTOCOLREQUEST']._serialized_end=6422 - _globals['_LISTSETTINGSFORPROTOCOLRESPONSE']._serialized_start=6425 - _globals['_LISTSETTINGSFORPROTOCOLRESPONSE']._serialized_end=10902 - _globals['_LISTSETTINGSFORPROTOCOLRESPONSE_RUNOPTIONS']._serialized_start=6865 - _globals['_LISTSETTINGSFORPROTOCOLRESPONSE_RUNOPTIONS']._serialized_end=7718 - _globals['_LISTSETTINGSFORPROTOCOLRESPONSE_BASECALLING']._serialized_start=7721 - _globals['_LISTSETTINGSFORPROTOCOLRESPONSE_BASECALLING']._serialized_end=9001 - _globals['_LISTSETTINGSFORPROTOCOLRESPONSE_OUTPUT']._serialized_start=9004 - _globals['_LISTSETTINGSFORPROTOCOLRESPONSE_OUTPUT']._serialized_end=10902 - _globals['_FEATURE']._serialized_start=10904 - _globals['_FEATURE']._serialized_end=10930 - _globals['_FEATURELIST']._serialized_start=10933 - _globals['_FEATURELIST']._serialized_end=11162 - _globals['_GETFEATURESREQUEST']._serialized_start=11164 - _globals['_GETFEATURESREQUEST']._serialized_end=11184 - _globals['_GETFEATURESRESPONSE']._serialized_start=11187 - _globals['_GETFEATURESRESPONSE']._serialized_end=11409 - _globals['_GETFEATURESRESPONSE_STATE']._serialized_start=11325 - _globals['_GETFEATURESRESPONSE_STATE']._serialized_end=11409 - _globals['_SETFEATURESREQUEST']._serialized_start=11411 - _globals['_SETFEATURESREQUEST']._serialized_end=11483 - _globals['_SETFEATURESRESPONSE']._serialized_start=11485 - _globals['_SETFEATURESRESPONSE']._serialized_end=11506 - _globals['_MANAGERSERVICE']._serialized_start=11889 - _globals['_MANAGERSERVICE']._serialized_end=15918 -GetFlowCellTypesResponse.__doc__ = """Response message for `ManagerService.get_flow_cell_types`. - -Attributes: - types: - The flow cell types. + _globals['_DESCRIBEHOSTRESPONSE']._serialized_end=915 + _globals['_DESCRIBEHOSTRESPONSE_BASECALLERSUBSTRATE']._serialized_start=684 + _globals['_DESCRIBEHOSTRESPONSE_BASECALLERSUBSTRATE']._serialized_end=735 + _globals['_DESCRIBEHOSTRESPONSE_BASECALLINGAVAILABILITY']._serialized_start=738 + _globals['_DESCRIBEHOSTRESPONSE_BASECALLINGAVAILABILITY']._serialized_end=915 + _globals['_GETBASECALLERFEATURESREQUEST']._serialized_start=917 + _globals['_GETBASECALLERFEATURESREQUEST']._serialized_end=947 + _globals['_GETBASECALLERFEATURESRESPONSE']._serialized_start=949 + _globals['_GETBASECALLERFEATURESRESPONSE']._serialized_end=1044 + _globals['_FLOWCELLPOSITION']._serialized_start=1047 + _globals['_FLOWCELLPOSITION']._serialized_end=2038 + _globals['_FLOWCELLPOSITION_LOCATION']._serialized_start=1729 + _globals['_FLOWCELLPOSITION_LOCATION']._serialized_end=1761 + _globals['_FLOWCELLPOSITION_RPCPORTS']._serialized_start=1763 + _globals['_FLOWCELLPOSITION_RPCPORTS']._serialized_end=1814 + _globals['_FLOWCELLPOSITION_SHAREDHARDWAREGROUP']._serialized_start=1816 + _globals['_FLOWCELLPOSITION_SHAREDHARDWAREGROUP']._serialized_end=1855 + _globals['_FLOWCELLPOSITION_STATE']._serialized_start=1858 + _globals['_FLOWCELLPOSITION_STATE']._serialized_end=2038 + _globals['_FLOWCELLPOSITIONSREQUEST']._serialized_start=2040 + _globals['_FLOWCELLPOSITIONSREQUEST']._serialized_end=2066 + _globals['_FLOWCELLPOSITIONSRESPONSE']._serialized_start=2068 + _globals['_FLOWCELLPOSITIONSRESPONSE']._serialized_end=2174 + _globals['_WATCHFLOWCELLPOSITIONSREQUEST']._serialized_start=2176 + _globals['_WATCHFLOWCELLPOSITIONSREQUEST']._serialized_end=2207 + _globals['_WATCHFLOWCELLPOSITIONSRESPONSE']._serialized_start=2210 + _globals['_WATCHFLOWCELLPOSITIONSRESPONSE']._serialized_end=2374 + _globals['_RESETPOSITIONREQUEST']._serialized_start=2376 + _globals['_RESETPOSITIONREQUEST']._serialized_end=2432 + _globals['_RESETPOSITIONRESPONSE']._serialized_start=2434 + _globals['_RESETPOSITIONRESPONSE']._serialized_end=2457 + _globals['_BASECALLERAPIREQUEST']._serialized_start=2459 + _globals['_BASECALLERAPIREQUEST']._serialized_end=2481 + _globals['_BASECALLERAPIRESPONSE']._serialized_start=2483 + _globals['_BASECALLERAPIRESPONSE']._serialized_end=2547 + _globals['_GETGUPPYINFOREQUEST']._serialized_start=2549 + _globals['_GETGUPPYINFOREQUEST']._serialized_end=2570 + _globals['_GETGUPPYINFORESPONSE']._serialized_start=2572 + _globals['_GETGUPPYINFORESPONSE']._serialized_end=2666 + _globals['_GETVERSIONINFOREQUEST']._serialized_start=2668 + _globals['_GETVERSIONINFOREQUEST']._serialized_end=2691 + _globals['_LISTPROTOCOLOUTPUTDIRFILESREQUEST']._serialized_start=2693 + _globals['_LISTPROTOCOLOUTPUTDIRFILESREQUEST']._serialized_end=2742 + _globals['_LISTPROTOCOLOUTPUTDIRFILESRESPONSE']._serialized_start=2745 + _globals['_LISTPROTOCOLOUTPUTDIRFILESRESPONSE']._serialized_end=2993 + _globals['_LISTPROTOCOLOUTPUTDIRFILESRESPONSE_DIRECTORYINFO']._serialized_start=2919 + _globals['_LISTPROTOCOLOUTPUTDIRFILESRESPONSE_DIRECTORYINFO']._serialized_end=2993 + _globals['_CREATEDIRECTORYREQUEST']._serialized_start=2995 + _globals['_CREATEDIRECTORYREQUEST']._serialized_end=3054 + _globals['_CREATEDIRECTORYRESPONSE']._serialized_start=3056 + _globals['_CREATEDIRECTORYRESPONSE']._serialized_end=3095 + _globals['_FILESYSTEMDISKSPACEINFO']._serialized_start=3098 + _globals['_FILESYSTEMDISKSPACEINFO']._serialized_end=3361 + _globals['_GETDISKSPACEINFOREQUEST']._serialized_start=3363 + _globals['_GETDISKSPACEINFOREQUEST']._serialized_end=3388 + _globals['_STREAMDISKSPACEINFOREQUEST']._serialized_start=3390 + _globals['_STREAMDISKSPACEINFOREQUEST']._serialized_end=3434 + _globals['_GETDISKSPACEINFORESPONSE']._serialized_start=3436 + _globals['_GETDISKSPACEINFORESPONSE']._serialized_end=3544 + _globals['_GETBARCODEKITINFOREQUEST']._serialized_start=3546 + _globals['_GETBARCODEKITINFOREQUEST']._serialized_end=3572 + _globals['_GETBARCODEKITINFORESPONSE']._serialized_start=3575 + _globals['_GETBARCODEKITINFORESPONSE']._serialized_end=3871 + _globals['_GETBARCODEKITINFORESPONSE_BARCODEKITINFO']._serialized_start=3698 + _globals['_GETBARCODEKITINFORESPONSE_BARCODEKITINFO']._serialized_end=3753 + _globals['_GETBARCODEKITINFORESPONSE_BARCODEKITINFOENTRY']._serialized_start=3755 + _globals['_GETBARCODEKITINFORESPONSE_BARCODEKITINFOENTRY']._serialized_end=3871 + _globals['_GETLAMPKITINFOREQUEST']._serialized_start=3873 + _globals['_GETLAMPKITINFOREQUEST']._serialized_end=3896 + _globals['_GETLAMPKITINFORESPONSE']._serialized_start=3898 + _globals['_GETLAMPKITINFORESPONSE']._serialized_end=3941 + _globals['_GETBARCODEKEYSREQUEST']._serialized_start=3943 + _globals['_GETBARCODEKEYSREQUEST']._serialized_end=4016 + _globals['_GETBARCODEKEYSRESPONSE']._serialized_start=4018 + _globals['_GETBARCODEKEYSRESPONSE']._serialized_end=4106 + _globals['_GETFLOWCELLTYPESREQUEST']._serialized_start=4108 + _globals['_GETFLOWCELLTYPESREQUEST']._serialized_end=4133 + _globals['_GETFLOWCELLTYPESRESPONSE']._serialized_start=4136 + _globals['_GETFLOWCELLTYPESRESPONSE']._serialized_end=4356 + _globals['_GETFLOWCELLTYPESRESPONSE_INFO']._serialized_start=4231 + _globals['_GETFLOWCELLTYPESRESPONSE_INFO']._serialized_end=4356 + _globals['_GETSEQUENCINGKITSREQUEST']._serialized_start=4358 + _globals['_GETSEQUENCINGKITSREQUEST']._serialized_end=4416 + _globals['_GETSEQUENCINGKITSRESPONSE']._serialized_start=4419 + _globals['_GETSEQUENCINGKITSRESPONSE']._serialized_end=4917 + _globals['_GETSEQUENCINGKITSRESPONSE_KIT']._serialized_start=4619 + _globals['_GETSEQUENCINGKITSRESPONSE_KIT']._serialized_end=4870 + _globals['_GETSEQUENCINGKITSRESPONSE_BARCODINGEXPANSIONKIT']._serialized_start=4872 + _globals['_GETSEQUENCINGKITSRESPONSE_BARCODINGEXPANSIONKIT']._serialized_end=4917 + _globals['_ADDSIMULATEDDEVICEREQUEST']._serialized_start=4919 + _globals['_ADDSIMULATEDDEVICEREQUEST']._serialized_end=5028 + _globals['_ADDSIMULATEDDEVICERESPONSE']._serialized_start=5030 + _globals['_ADDSIMULATEDDEVICERESPONSE']._serialized_end=5058 + _globals['_REMOVESIMULATEDDEVICEREQUEST']._serialized_start=5060 + _globals['_REMOVESIMULATEDDEVICEREQUEST']._serialized_end=5110 + _globals['_REMOVESIMULATEDDEVICERESPONSE']._serialized_start=5112 + _globals['_REMOVESIMULATEDDEVICERESPONSE']._serialized_end=5143 + _globals['_LOCALAUTHENTICATIONTOKENPATHREQUEST']._serialized_start=5145 + _globals['_LOCALAUTHENTICATIONTOKENPATHREQUEST']._serialized_end=5182 + _globals['_LOCALAUTHENTICATIONTOKENPATHRESPONSE']._serialized_start=5184 + _globals['_LOCALAUTHENTICATIONTOKENPATHRESPONSE']._serialized_end=5236 + _globals['_GETALIGNMENTREFERENCEINFORMATIONREQUEST']._serialized_start=5238 + _globals['_GETALIGNMENTREFERENCEINFORMATIONREQUEST']._serialized_end=5293 + _globals['_GETALIGNMENTREFERENCEINFORMATIONRESPONSE']._serialized_start=5296 + _globals['_GETALIGNMENTREFERENCEINFORMATIONRESPONSE']._serialized_end=5541 + _globals['_ASSOCIATIONDEVICECODEREQUEST']._serialized_start=5543 + _globals['_ASSOCIATIONDEVICECODEREQUEST']._serialized_end=5611 + _globals['_ASSOCIATIONDEVICECODERESPONSE']._serialized_start=5613 + _globals['_ASSOCIATIONDEVICECODERESPONSE']._serialized_end=5658 + _globals['_APPLYOFFLINEASSOCIATIONUNLOCKCODEREQUEST']._serialized_start=5660 + _globals['_APPLYOFFLINEASSOCIATIONUNLOCKCODEREQUEST']._serialized_end=5746 + _globals['_APPLYOFFLINEASSOCIATIONUNLOCKCODERESPONSE']._serialized_start=5748 + _globals['_APPLYOFFLINEASSOCIATIONUNLOCKCODERESPONSE']._serialized_end=5811 + _globals['_LISTDEVELOPERAPITOKENSREQUEST']._serialized_start=5813 + _globals['_LISTDEVELOPERAPITOKENSREQUEST']._serialized_end=5844 + _globals['_LISTDEVELOPERAPITOKENSRESPONSE']._serialized_start=5847 + _globals['_LISTDEVELOPERAPITOKENSRESPONSE']._serialized_end=6057 + _globals['_LISTDEVELOPERAPITOKENSRESPONSE_DEVELOPERAPITOKEN']._serialized_start=5968 + _globals['_LISTDEVELOPERAPITOKENSRESPONSE_DEVELOPERAPITOKEN']._serialized_end=6057 + _globals['_CREATEDEVELOPERAPITOKENREQUEST']._serialized_start=6059 + _globals['_CREATEDEVELOPERAPITOKENREQUEST']._serialized_end=6149 + _globals['_CREATEDEVELOPERAPITOKENRESPONSE']._serialized_start=6151 + _globals['_CREATEDEVELOPERAPITOKENRESPONSE']._serialized_end=6211 + _globals['_REVOKEDEVELOPERAPITOKENREQUEST']._serialized_start=6213 + _globals['_REVOKEDEVELOPERAPITOKENREQUEST']._serialized_end=6257 + _globals['_REVOKEDEVELOPERAPITOKENSRESPONSE']._serialized_start=6259 + _globals['_REVOKEDEVELOPERAPITOKENSRESPONSE']._serialized_end=6293 + _globals['_FINDPROTOCOLSREQUEST']._serialized_start=6296 + _globals['_FINDPROTOCOLSREQUEST']._serialized_end=6436 + _globals['_FINDPROTOCOLSRESPONSE']._serialized_start=6439 + _globals['_FINDPROTOCOLSRESPONSE']._serialized_end=6640 + _globals['_FINDPROTOCOLSRESPONSE_PROTOCOL']._serialized_start=6536 + _globals['_FINDPROTOCOLSRESPONSE_PROTOCOL']._serialized_end=6640 + _globals['_LISTSETTINGSFORPROTOCOLREQUEST']._serialized_start=6643 + _globals['_LISTSETTINGSFORPROTOCOLREQUEST']._serialized_end=6881 + _globals['_LISTSETTINGSFORPROTOCOLRESPONSE']._serialized_start=6884 + _globals['_LISTSETTINGSFORPROTOCOLRESPONSE']._serialized_end=10864 + _globals['_LISTSETTINGSFORPROTOCOLRESPONSE_RUNOPTIONS']._serialized_start=7324 + _globals['_LISTSETTINGSFORPROTOCOLRESPONSE_RUNOPTIONS']._serialized_end=8177 + _globals['_LISTSETTINGSFORPROTOCOLRESPONSE_BASECALLING']._serialized_start=8180 + _globals['_LISTSETTINGSFORPROTOCOLRESPONSE_BASECALLING']._serialized_end=8963 + _globals['_LISTSETTINGSFORPROTOCOLRESPONSE_OUTPUT']._serialized_start=8966 + _globals['_LISTSETTINGSFORPROTOCOLRESPONSE_OUTPUT']._serialized_end=10864 + _globals['_FEATURE']._serialized_start=10866 + _globals['_FEATURE']._serialized_end=10892 + _globals['_FEATURELIST']._serialized_start=10895 + _globals['_FEATURELIST']._serialized_end=11124 + _globals['_GETFEATURESREQUEST']._serialized_start=11126 + _globals['_GETFEATURESREQUEST']._serialized_end=11146 + _globals['_GETFEATURESRESPONSE']._serialized_start=11149 + _globals['_GETFEATURESRESPONSE']._serialized_end=11371 + _globals['_GETFEATURESRESPONSE_STATE']._serialized_start=11287 + _globals['_GETFEATURESRESPONSE_STATE']._serialized_end=11371 + _globals['_SETFEATURESREQUEST']._serialized_start=11373 + _globals['_SETFEATURESREQUEST']._serialized_end=11445 + _globals['_SETFEATURESRESPONSE']._serialized_start=11447 + _globals['_SETFEATURESRESPONSE']._serialized_end=11468 + _globals['_RESTARTDEVICEADMINREQUEST']._serialized_start=11470 + _globals['_RESTARTDEVICEADMINREQUEST']._serialized_end=11497 + _globals['_RESTARTDEVICEADMINRESPONSE']._serialized_start=11499 + _globals['_RESTARTDEVICEADMINRESPONSE']._serialized_end=11527 + _globals['_MANAGERSERVICE']._serialized_start=11910 + _globals['_MANAGERSERVICE']._serialized_end=16074 +FindProtocolsRequest.__doc__ = """Attributes: + flow_cell_product_code: + Find protocols that are compatible with this flow cell product + code. Set to empty string to find protocols matching all flow + cell product codes. + sequencing_kit: + Limit to protocols that are compatible with this sequencing + kit. Set to empty string to find protocols matching all kits. + experiment_type: + Limit response to certain protocol types. +""" +FindProtocolsResponse.Protocol.__doc__ = """Attributes: + identifier: + An identifying string for protocol, of the form: + LOCATION:relative/path/to/protocol The identifier uniquely + identifies the protocol. + requires_flow_cell_product_code: + Whether the protocol requires a flow cell product code in + order to start. + requires_sequencing_kit: + Whether the protocol requires a sequencing kit in order to + start. """ GetFlowCellTypesResponse.Info.__doc__ = """Information about a flow cell type. @@ -291,88 +316,151 @@ on the wire by allowing the common case of basecalling being possible to be omitted entirely). """ -CreateDeveloperApiTokenResponse.__doc__ = """Attributes: - id: - Unique ID assigned to the token for identification purposes. - Not valid as an authentication token. - token: - Created token, available to be used with minknow API's - immediately. +ListProtocolOutputDirFilesResponse.__doc__ = """Attributes: + directories: + List of sub-directories in the directory specified + files: + List of files in the directory specified + current_listed_path: + The absolute directory that is being listed within this + response """ -GetLampKitInfoResponse.__doc__ = """Attributes: - lamp_kits: - Lamp kit names +GetBarcodeKitInfoResponse.__doc__ = """Attributes: + barcode_kit_info: + Map of barcode kit name to barcode kit info """ -FlowCellPosition.RpcPorts.__doc__ = """Attributes: - secure: - A port providing the standard gRPC protocol over TLS - secure_grpc_web: - A port providing the gRPC-Web protocol over TLS +AssociationDeviceCodeResponse.__doc__ = """Attributes: + code: + The code required to associate the device with an account. If + the request had `offline` set, this code is suitable for use + in the customer portal offline association page. Otherwise, it + is suitable for the online association APIs. """ -GetAlignmentReferenceInformationResponse.__doc__ = """Attributes: - estimated_load_time_seconds: - Estimated load time of the reference in seconds. - estimated_reference_size_bases: - Estimated size of the reference file in bases. - recommended_live_usage: - Does the reference file fit within the recommended live usage - memory size? This uses an estimate of how much memory a - reference may use when running in guppy and compares to the - amount of memory in the sequencer. It does not account for - whether the reference will run in real time. +GetBarcodeKitInfoResponse.BarcodeKitInfo.__doc__ = """Attributes: + is_dual: + DEPRECATED 6.0: Dual barcoding support has been removed and + this value will always false. """ -RemoveSimulatedDeviceRequest.__doc__ = """Attributes: - name: - The name of the simulated device to be removed +GetSequencingKitsRequest.__doc__ = """Request message for `ManagerService.get_sequencing_kits`. + +Attributes: + flow_cell_product_code: + The product code of the flow cell that will be used for + sequencing. Only kits compatible with this flow cell type + will be returned (currently, this means that there is at least + one (sequencing or control) protocol that is compatible with + both the kit and this flow cell product code). This may also + affect the returned information about the kit. For example, if + it isn't possible to basecall on the flow cell, none of the + kits will claim to be barcoding capable (or compatible with + any barcoding expansion kits). """ -FindProtocolsResponse.Protocol.__doc__ = """Attributes: - identifier: - An identifying string for protocol, of the form: - LOCATION:relative/path/to/protocol The identifier uniquely - identifies the protocol. - requires_flow_cell_product_code: - Whether the protocol requires a flow cell product code in - order to start. - requires_sequencing_kit: - Whether the protocol requires a sequencing kit in order to - start. +ListSettingsForProtocolResponse.Output.__doc__ = """Output + +Attributes: + read_filtering_min_duplex_qscore: + Since 5.8 """ -ResetPositionRequest.__doc__ = """Attributes: - positions: - The names of positions to restart. - force: - Force the software to be restarted even when it appears to be - in a healthy state (ie: STATE_RUNNING). +ListProtocolOutputDirFilesRequest.__doc__ = """Attributes: + path: + Specify the root path to list files from. If the path is left + empty, then the base protocol output directory will be used. + Note that the path specified HAS to be a descendant of the + protocol output directory, otherwise a INVALID_ARGUMENT error + will be returned If the path is left empty, and the path + specified in the user config doesn't exist, then the NOT_FOUND + error code will be returned """ -AssociationDeviceCodeRequest.__doc__ = """Offline association is now the default workflow The following are -therefore reserved/deprecated +GetSequencingKitsResponse.Kit.__doc__ = """Information about a sequencing kit. Attributes: + product_code: + The product code for the sequencing kit. This is the user- + visible name for the kit. It is the name used to order kits, + and is also displayed on the packaging. While most product + codes are 10-15 characters, be aware that longer (or shorter) + product codes can exist. Examples: "SQK-LSK109", "OND-SQK- + LP0096S". + barcoding_expansion_kits: + Compatible barcoding expansion kits. These are indexes into + the GetSequencingKitsResponse.barcoding_expansion_kits list. + For example, 0 would indicate the first kit in that list. The + values are guaranteed to be unique and valid indexes for that + list. + includes_barcoding: + Whether barcoding support is part of the sequencing kit. If + this is set, barcoding can be done without any expansion kits + (and, in fact, barcoding is an integral part of the kit). + lamp_kit: + Whether the kit can be used for LamPORE diagnostics. + DEPRECATED 6.0: Lamp support has been removed and this value + will always be false. + has_control_protocol: + Whether there is a "control" protocol available for this kit. + no_sequencing_protocol: + Indicates there is no sequencing protocol available for this + kit. This is an unusual situation. If a kit is known about, + it should generally have a sequencing protocol associated with + it, and it would be strange to have a control protocol + available but no sequencing protocol. + frequently_used: + Indicates that the sequencing kit is one of the most commonly + used ones. This can be used to display such kits first, or + otherwise highlight them in some way. + dna: + The kit can be used with DNA samples. + rna: + The kit can be used with RNA samples. + pcr: + The kit can be used with samples that have had PCR applied to + them. + pcr_free: + The kit can be used without a PCR step. +""" +ListSettingsForProtocolRequest.__doc__ = """Attributes: + identifier: + specify the protocol with a string containing all the + protocol's identifying components, eg: + "sequencing/sequencing_MIN106_DNA:FLO-MIN106:SQK-RPB004" + components: + specify the protocol providing the identifying components + individually. All components are optional, if more than one + protocol matches given strings, information about the first + will be returned. + flow_cell_connector: + The flow-cell connector type identifies the type of hardware + and is used to identify the correct protocol. The flow-cell + connector types applicable to the device are listed by the + get_flow_cell_types rpc in this service and the + get_device_state rpc in the device service. +""" +GetLampKitInfoRequest.__doc__ = """DEPRECATED 6.0: Lamp support has been removed.""" +GetAlignmentReferenceInformationRequest.__doc__ = """Attributes: + path: + The full path of the alignment reference. Should be a .fasta, + or .mmi file. +""" +ApplyOfflineAssociationUnlockCodeRequest.__doc__ = """Attributes: position_name: - The flow cell position to get the association code/key for. - If this is omitted, the code/key for the sequencing device as - a whole is returned. Note that this cannot be omitted if - MinKNOW is installed on a PC (as opposed to a sequencing - device). It should be omitted if (and only if) the data - returned from `describe_host` has its ``needs_association`` - field set to true. Passing a integrated flow cell position - will return the code/key for the whole sequencing device. + The flow cell position to unlock. This should be set (or not + set) to match the corresponding call to + `offline_association_device_code`. + unlock_code: + The unlock code provided by the user. This the code given by + the customer support portal when the corresponding device code + is entered into the device association page. """ -CreateDirectoryResponse.__doc__ = """Attributes: +LocalAuthenticationTokenPathResponse.__doc__ = """Attributes: path: - The path to the created directory. + The full path of the local authentication token """ -FlowCellPositionsResponse.__doc__ = """Attributes: - total_count: - How many positions are available in total. This is the same - in every message returned from a single call, and allows the - caller to easily see how many further positions might be in - subsequent messages. - positions: - Known flow cell positions. Note that not all positions listed - here are necessarily available. In particular, integrated flow - cell positions (eg: on GridIONs or PromethIONs) will always be - listed. +CreateDeveloperApiTokenResponse.__doc__ = """Attributes: + id: + Unique ID assigned to the token for identification purposes. + Not valid as an authentication token. + token: + Created token, available to be used with minknow API's + immediately. """ DescribeHostResponse.__doc__ = """Attributes: product_code: @@ -426,138 +514,33 @@ set if `needs_association` is true. Since 4.4 can_basecall: Whether the device can currently provide basecalling + current_basecalling_hardware: + Information about the hardware being used right now by the + basecaller. + available_basecalling_hardware: + If more than one possible basecalling hardware selection can + be made, this field provides the details of those options. + Typically this will be a list of 'unused' GPUs. """ -WatchFlowCellPositionsResponse.__doc__ = """Each flow cell position will first be listed in `additions`. After -that, it may appear in `changes` in zero or more messages. Then, it -may appear in `removals` once, after which it will either never appear -again, or appear in `additions` again (restarting the cycle). No -position will ever appear in more than one field in the same response -message. - -Attributes: - additions: - Flow cell positions that are new (to this call). Contains - flow cell positions that have not been seen before on this - call (or have re-appeared after being removed). Note that a - flow cell position being listed here does not mean it is - available. In particular, integrated flow cell positions (eg: - on GridIONs or PromethIONs) will always be provided, so that - they can be positioned appropriately. - changes: - Flow cell positions that have changed state. Every flow cell - position provided in this list will have previously been - provided in `additions`. - removals: - A flow cell position has been removed. Note that this can - only happen with MinIONs - integrated flow cell positions are - never removed (if they become unavailable, this will be noted - in the `changes` field). -""" -GetBasecallerFeaturesResponse.__doc__ = """Attributes: - is_live_basecalling_with_adaptive_sampling_recommended: - Is live basecalling with adaptive sampling recommended on this - hardware Currently not recommended for Apple or Mk1C Since - 5.9 -""" -ApplyOfflineAssociationUnlockCodeRequest.__doc__ = """Attributes: - position_name: - The flow cell position to unlock. This should be set (or not - set) to match the corresponding call to - `offline_association_device_code`. - unlock_code: - The unlock code provided by the user. This the code given by - the customer support portal when the corresponding device code - is entered into the device association page. -""" -FeatureList.__doc__ = """Attributes: - feature_flags: - feature_flags is a special value If false, turns off all - other feature flags If true, allows individual flags to be - enabled and disabled -""" -GetSequencingKitsResponse.Kit.__doc__ = """Information about a sequencing kit. +GetSequencingKitsResponse.__doc__ = """Response message for `ManagerService.get_sequencing_kits`. Attributes: - product_code: - The product code for the sequencing kit. This is the user- - visible name for the kit. It is the name used to order kits, - and is also displayed on the packaging. While most product - codes are 10-15 characters, be aware that longer (or shorter) - product codes can exist. Examples: "SQK-LSK109", "OND-SQK- - LP0096S". + kits: + The known sequencing kits. barcoding_expansion_kits: - Compatible barcoding expansion kits. These are indexes into - the GetSequencingKitsResponse.barcoding_expansion_kits list. - For example, 0 would indicate the first kit in that list. The - values are guaranteed to be unique and valid indexes for that - list. - includes_barcoding: - Whether barcoding support is part of the sequencing kit. If - this is set, barcoding can be done without any expansion kits - (and, in fact, barcoding is an integral part of the kit). - lamp_kit: - Whether the kit can be used for LamPORE diagnostics. - has_control_protocol: - Whether there is a "control" protocol available for this kit. - no_sequencing_protocol: - Indicates there is no sequencing protocol available for this - kit. This is an unusual situation. If a kit is known about, - it should generally have a sequencing protocol associated with - it, and it would be strange to have a control protocol - available but no sequencing protocol. - frequently_used: - Indicates that the sequencing kit is one of the most commonly - used ones. This can be used to display such kits first, or - otherwise highlight them in some way. - dna: - The kit can be used with DNA samples. - rna: - The kit can be used with RNA samples. - pcr: - The kit can be used with samples that have had PCR applied to - them. - pcr_free: - The kit can be used without a PCR step. -""" -ApplyOfflineAssociationUnlockCodeResponse.__doc__ = """Attributes: - associated: - True if the association was successful (the unlock_code was - accepted), false otherwise. -""" -FindProtocolsRequest.__doc__ = """Attributes: - flow_cell_product_code: - Find protocols that are compatible with this flow cell product - code. Set to empty string to find protocols matching all flow - cell product codes. - sequencing_kit: - Limit to protocols that are compatible with this sequencing - kit. Set to empty string to find protocols matching all kits. - experiment_type: - Limit response to certain protocol types. -""" -GetBarcodeKeysResponse.__doc__ = """Attributes: - barcode_keys: - Returned barcode keys. - lamp_keys: - Returned lamp barcode ids. - combined_keys: - Combined barcode and lamp keys. Returned keys are joined - strings of all requested barcode kits, giving the caller a - unique string to identify each barcode pair. eg. if both a - lamp kit + barcode kit are specified, NxM barcode keys are - returned: - barcode01_lamp01 - barcode01_lamp02 - - barcode01_lamp03 - barcode02_lamp01 - barcode02_lamp02 - - barcode02_lamp03 + The possible barcoding expansion kits. These are kits that + can be used in combination with certain sequencing kits to add + (or extend) barcoding functionality. """ -ListProtocolOutputDirFilesRequest.__doc__ = """Attributes: - path: - Specify the root path to list files from. If the path is left - empty, then the base protocol output directory will be used. - Note that the path specified HAS to be a descendant of the - protocol output directory, otherwise a INVALID_ARGUMENT error - will be returned If the path is left empty, and the path - specified in the user config doesn't exist, then the NOT_FOUND - error code will be returned +FlowCellPosition.Location.__doc__ = """Attributes: + x: + The column (counting from 0, left-to-right) of the flow cell + position on the sequencing unit when viewed from above/in + front. + y: + The row (counting from 0, top-to-bottom) of the flow cell + position on the sequencing unit when viewed from above/in + front. """ FilesystemDiskSpaceInfo.__doc__ = """disk-usage information for one file-system @@ -591,15 +574,6 @@ A list of what types of file MinKNOW stores on this file- system, eg: reads, logs, intermediate-files, etc. """ -ListProtocolOutputDirFilesResponse.__doc__ = """Attributes: - directories: - List of sub-directories in the directory specified - files: - List of files in the directory specified - current_listed_path: - The absolute directory that is being listed within this - response -""" AddSimulatedDeviceRequest.__doc__ = """Attributes: name: The name of the position, this must be unique and the correct @@ -624,22 +598,43 @@ default (AUTO), then a sensible default device type is selected. """ -ListSettingsForProtocolResponse.RunOptions.__doc__ = """Run options +FlowCellPositionsResponse.__doc__ = """Attributes: + total_count: + How many positions are available in total. This is the same + in every message returned from a single call, and allows the + caller to easily see how many further positions might be in + subsequent messages. + positions: + Known flow cell positions. Note that not all positions listed + here are necessarily available. In particular, integrated flow + cell positions (eg: on GridIONs or PromethIONs) will always be + listed. +""" +WatchFlowCellPositionsResponse.__doc__ = """Each flow cell position will first be listed in `additions`. After +that, it may appear in `changes` in zero or more messages. Then, it +may appear in `removals` once, after which it will either never appear +again, or appear in `additions` again (restarting the cycle). No +position will ever appear in more than one field in the same response +message. Attributes: - active_channel_selection: - bool - mux_scan_period: - in hours -""" -GetBarcodeKitInfoResponse.__doc__ = """Attributes: - barcode_kit_info: - Map of barcode kit name to barcode kit info -""" -GetAlignmentReferenceInformationRequest.__doc__ = """Attributes: - path: - The full path of the alignment reference. Should be a .fasta, - or .mmi file. + additions: + Flow cell positions that are new (to this call). Contains + flow cell positions that have not been seen before on this + call (or have re-appeared after being removed). Note that a + flow cell position being listed here does not mean it is + available. In particular, integrated flow cell positions (eg: + on GridIONs or PromethIONs) will always be provided, so that + they can be positioned appropriately. + changes: + Flow cell positions that have changed state. Every flow cell + position provided in this list will have previously been + provided in `additions`. + removals: + A flow cell position has been removed. Note that this can + only happen with MinIONs - integrated flow cell positions are + never removed (if they become unavailable, this will be noted + in the `changes` field). """ GetBarcodeKeysRequest.__doc__ = """Attributes: barcode_kit_names: @@ -649,36 +644,84 @@ lamp_kit_name: Name of lamp kit to obtain barcode names for. Fails with INVALID_ARGUMENT if the requested `lamp_kit_name` is - unavailable. + unavailable. DEPRECATED 6.0: Lamp support has been removed + and this option will be ignored. +""" +ResetPositionRequest.__doc__ = """Attributes: + positions: + The names of positions to restart. + force: + Force the software to be restarted even when it appears to be + in a healthy state (ie: STATE_RUNNING). +""" +CreateDirectoryResponse.__doc__ = """Attributes: + path: + The path to the created directory. +""" +RevokeDeveloperApiTokenRequest.__doc__ = """Attributes: + id: + The id passed back from [CreateDeveloperApiTokenRequest] or + [DeveloperApiToken]. +""" +ListDeveloperApiTokensResponse.DeveloperApiToken.__doc__ = """Attributes: + id: + Unique ID assigned to the token. + name: + User facing name describing the token (guaranteed unique + across tokens). + expiry: + Optional expiry of the token. +""" +GetSequencingKitsResponse.BarcodingExpansionKit.__doc__ = """Information about a barcoding expansion kit. In the future, this may +include compatibility information for dual barcoding, for example. + +Attributes: + product_code: + The product code for the barcoding expansion kit. This is the + user-visible name for the kit. It is the name used to order + kits, and is also displayed on the packaging. While most + product codes are 10 characters, be aware that longer product + codes can exist. Example: "EXP-NBD104". +""" +GetBasecallerFeaturesResponse.__doc__ = """Attributes: + is_live_basecalling_with_adaptive_sampling_recommended: + Is live basecalling with adaptive sampling recommended on this + hardware Currently not recommended for Apple or Mk1C Since + 5.9 """ ListSettingsForProtocolResponse.__doc__ = """Attributes: protocol_settings: Any protocol settings not covered by the above structures, for example those required for custom-scripts. """ -AssociationDeviceCodeResponse.__doc__ = """Attributes: - code: - The code required to associate the device with an account. If - the request had `offline` set, this code is suitable for use - in the customer portal offline association page. Otherwise, it - is suitable for the online association APIs. +GetBarcodeKeysResponse.__doc__ = """Attributes: + barcode_keys: + Returned barcode keys. + lamp_keys: + Returned lamp barcode ids. DEPRECATED 6.0: Lamp support has + been removed and this value will always be empty. + combined_keys: + Combined barcode and lamp keys. Returned keys are joined + strings of all requested barcode kits, giving the caller a + unique string to identify each barcode pair. eg. if both a + lamp kit + barcode kit are specified, NxM barcode keys are + returned: - barcode01_lamp01 - barcode01_lamp02 - + barcode01_lamp03 - barcode02_lamp01 - barcode02_lamp02 - + barcode02_lamp03 DEPRECATED 6.0: Lamp support has been + removed and this value will always be the same as + barcode_keys. """ -GetFlowCellTypesRequest.__doc__ = """Request message for `ManagerService.get_flow_cell_types`.""" -LocalAuthenticationTokenPathResponse.__doc__ = """Attributes: - path: - The full path of the local authentication token +FlowCellPosition.RpcPorts.__doc__ = """Attributes: + secure: + A port providing the standard gRPC protocol over TLS + secure_grpc_web: + A port providing the gRPC-Web protocol over TLS """ -CreateDirectoryRequest.__doc__ = """Attributes: - parent_path: - The path at which to create the directory. This must exist, - be a directory, and be within the protocol output directory. - This can be determined via calls to - list_protocol_output_dir_files(). - name: - The name of the directory to create. This must be a single - path component (ie: it cannot contain '/' or '\'). There may - be other restrictions on valid characters, depending on the - operating system. +GetFlowCellTypesRequest.__doc__ = """Request message for `ManagerService.get_flow_cell_types`.""" +ApplyOfflineAssociationUnlockCodeResponse.__doc__ = """Attributes: + associated: + True if the association was successful (the unlock_code was + accepted), false otherwise. """ BasecallerApiResponse.__doc__ = """Attributes: secure: @@ -688,6 +731,19 @@ The port to use to access the minknow_api.basecaller API using the gRPC-Web protocol over TLS """ +DescribeHostResponse.BasecallerSubstrate.__doc__ = """Details about the hardware on which basecalling may be run. + +Attributes: + is_gpu: + If false, this indicates that CPU basecalling is selected. In + this case, the 'gpus' field should be omitted or empty. + gpus: + Provides human-readable strings describing the GPUs available + for use by the basecaller. Note that even if 'is_gpu' is true, + this may be empty if no further details are available. This + field being empty _does not_ imply that CPU basecalling is in + use. +""" FlowCellPosition.__doc__ = """Attributes: name: The name of the position. For MinIONs, this is the name of @@ -753,29 +809,79 @@ returned by describe_host(). For a MinION Mk1B, this will be the same as the `name` field. For a P2 Solo, this will be the name of the P2 Solo unit. Since 5.3 + firmware_is_updating: + Firmware is updating on the device and it should not be + unplugged. If the state is INITIALISING, this flag may be set + to true to indicate that the device's persistent memory is + being reprogrammed with new firmware. When this is the case, + the device should not be unplugged, as there is a small chance + this will cause the device to be rendered ununsable. It is + not set for devices that do not come with firmware pre-loaded + and have to have it loaded every time they are plugged in + (like the MinION Mk1B), as unplugging these devices during + firmware loading is fine. + has_progress: + Indicates the progress_percent field is being used. See that + field for more information. + progress_percent: + Indicates progress through the current state. This is + currently only used for long-running INITIALISING states, such + as when firmware is being updated. If it is being used, + has_progress will be true (which indicates it is sensible to + display a progress bar even if progress_percent is currently + 0). This field will always have values between 0 and 100 + (inclusive), and the value will increase over time. It is + intended for displaying a progress bar or similar. + progress_eta_seconds: + Indicates roughly how much time is remaining in this state. + If has_progress is true and this is non-zero, it will contain + an estimate of how much time is left in this state. Currently + it is only used for long-running INITIALISING states. If no + ETA can be calculated, this will be zero. Note that it is + always an estimate - it is recommended to round larger values, + like "about 2 minutes remaining". """ -ListDeveloperApiTokensResponse.DeveloperApiToken.__doc__ = """Attributes: - id: - Unique ID assigned to the token. +FeatureList.__doc__ = """Attributes: + feature_flags: + feature_flags is a special value If false, turns off all + other feature flags If true, allows individual flags to be + enabled and disabled +""" +CreateDeveloperApiTokenRequest.__doc__ = """Attributes: name: - User facing name describing the token (guaranteed unique - across tokens). + User facing name describing the token. expiry: - Optional expiry of the token. + Optional expiry time for the token. """ -GetSequencingKitsRequest.__doc__ = """Request message for `ManagerService.get_sequencing_kits`. +GetAlignmentReferenceInformationResponse.__doc__ = """Attributes: + estimated_load_time_seconds: + Estimated load time of the reference in seconds. + estimated_reference_size_bases: + Estimated size of the reference file in bases. + recommended_live_usage: + Does the reference file fit within the recommended live usage + memory size? This uses an estimate of how much memory a + reference may use when running in the basecaller and compares + to the amount of memory in the sequencer. It does not account + for whether the reference will run in real time. + recommended_adaptive_sampling_usage: + True if adaptive sampling is recommended based on reference + file size in bases, and device type Since 6.0 + max_recommended_adaptive_sampling_bases: + The maximum limit for adaptive sampling number of bases based + on device type Since 6.0 +""" +FindProtocolsResponse.__doc__ = """Attributes: + protocols: + Protocols available for starting. +""" +ListSettingsForProtocolResponse.RunOptions.__doc__ = """Run options Attributes: - flow_cell_product_code: - The product code of the flow cell that will be used for - sequencing. Only kits compatible with this flow cell type - will be returned (currently, this means that there is at least - one (sequencing or control) protocol that is compatible with - both the kit and this flow cell product code). This may also - affect the returned information about the kit. For example, if - it isn't possible to basecall on the flow cell, none of the - kits will claim to be barcoding capable (or compatible with - any barcoding expansion kits). + active_channel_selection: + bool + mux_scan_period: + in hours """ Feature.__doc__ = """Attributes: enabled: @@ -783,34 +889,18 @@ """ GetGuppyInfoResponse.__doc__ = """Attributes: port: - The port Guppy is listening on. + The port the basecaller is listening on. ipc_path: - The path to an ipc file Guppy is using. Use "ipc://" - for a guppy connection string. + The path to an ipc file the basecaller is using. Use + "ipc://" for a basecaller connection string. version: - The Guppy server version. -""" -GetSequencingKitsResponse.BarcodingExpansionKit.__doc__ = """Information about a barcoding expansion kit. In the future, this may -include compatibility information for dual barcoding, for example. - -Attributes: - product_code: - The product code for the barcoding expansion kit. This is the - user-visible name for the kit. It is the name used to order - kits, and is also displayed on the packaging. While most - product codes are 10 characters, be aware that longer product - codes can exist. Example: "EXP-NBD104". -""" -RevokeDeveloperApiTokenRequest.__doc__ = """Attributes: - id: - The id passed back from [CreateDeveloperApiTokenRequest] or - [DeveloperApiToken]. + The basecaller server version. """ -ListSettingsForProtocolResponse.Output.__doc__ = """Output +GetFlowCellTypesResponse.__doc__ = """Response message for `ManagerService.get_flow_cell_types`. Attributes: - read_filtering_min_duplex_qscore: - Since 5.8 + types: + The flow cell types. """ StreamDiskSpaceInfoRequest.__doc__ = """Attributes: period: @@ -818,51 +908,41 @@ determining the period in seconds between updates. A period of 0 is invalid """ -CreateDeveloperApiTokenRequest.__doc__ = """Attributes: - name: - User facing name describing the token. - expiry: - Optional expiry time for the token. -""" -ListSettingsForProtocolRequest.__doc__ = """Attributes: - identifier: - specify the protocol with a string containing all the - protocol's identifying components, eg: - "sequencing/sequencing_MIN106_DNA:FLO-MIN106:SQK-RPB004" - components: - specify the protocol providing the identifying components - individually. All components are optional, if more than one - protocol matches given strings, information about the first - will be returned. - flow_cell_connector: - The flow-cell connector type identifies the type of hardware - and is used to identify the correct protocol. The flow-cell - connector types applicable to the device are listed by the - get_flow_cell_types rpc in this service and the - get_device_state rpc in the device service. +GetLampKitInfoResponse.__doc__ = """DEPRECATED 6.0: Lamp support has been removed and this response will +always be empty. + +Attributes: + lamp_kits: + Lamp kit names """ -FindProtocolsResponse.__doc__ = """Attributes: - protocols: - Protocols available for starting. +CreateDirectoryRequest.__doc__ = """Attributes: + parent_path: + The path at which to create the directory. This must exist, + be a directory, and be within the protocol output directory. + This can be determined via calls to + list_protocol_output_dir_files(). + name: + The name of the directory to create. This must be a single + path component (ie: it cannot contain '/' or '\'). There may + be other restrictions on valid characters, depending on the + operating system. """ -FlowCellPosition.Location.__doc__ = """Attributes: - x: - The column (counting from 0, left-to-right) of the flow cell - position on the sequencing unit when viewed from above/in - front. - y: - The row (counting from 0, top-to-bottom) of the flow cell - position on the sequencing unit when viewed from above/in - front. +RemoveSimulatedDeviceRequest.__doc__ = """Attributes: + name: + The name of the simulated device to be removed """ -GetSequencingKitsResponse.__doc__ = """Response message for `ManagerService.get_sequencing_kits`. +AssociationDeviceCodeRequest.__doc__ = """Offline association is now the default workflow The following are +therefore reserved/deprecated Attributes: - kits: - The known sequencing kits. - barcoding_expansion_kits: - The possible barcoding expansion kits. These are kits that - can be used in combination with certain sequencing kits to add - (or extend) barcoding functionality. + position_name: + The flow cell position to get the association code/key for. + If this is omitted, the code/key for the sequencing device as + a whole is returned. Note that this cannot be omitted if + MinKNOW is installed on a PC (as opposed to a sequencing + device). It should be omitted if (and only if) the data + returned from `describe_host` has its ``needs_association`` + field set to true. Passing a integrated flow cell position + will return the code/key for the whole sequencing device. """ # @@protoc_insertion_point(module_scope) diff --git a/python/minknow_api/manager_pb2_grpc.py b/python/minknow_api/manager_pb2_grpc.py index 9717d8a..c22f61b 100644 --- a/python/minknow_api/manager_pb2_grpc.py +++ b/python/minknow_api/manager_pb2_grpc.py @@ -170,6 +170,11 @@ def __init__(self, channel): request_serializer=minknow__api_dot_manager__pb2.SetFeaturesRequest.SerializeToString, response_deserializer=minknow__api_dot_manager__pb2.SetFeaturesResponse.FromString, ) + self.restart_device_admin_service = channel.unary_unary( + '/minknow_api.manager.ManagerService/restart_device_admin_service', + request_serializer=minknow__api_dot_manager__pb2.RestartDeviceAdminRequest.SerializeToString, + response_deserializer=minknow__api_dot_manager__pb2.RestartDeviceAdminResponse.FromString, + ) class ManagerServiceServicer(object): @@ -251,7 +256,7 @@ def basecaller_api(self, request, context): raise NotImplementedError('Method not implemented!') def get_guppy_info(self, request, context): - """Get information about Guppy, including the port to connect to it on. + """Get information about the basecaller, including the port to connect to it on. Since 4.1 """ @@ -265,7 +270,7 @@ def get_version_info(self, request, context): - Protocols version (i.e. Bream-4 version) - Configuration version (i.e. Wanda version) - Distribution version - - Guppy version + - Basecaller version This RPC can be called without providing any authentication tokens. @@ -361,6 +366,8 @@ def get_lamp_kit_info(self, request, context): """Get info about all available lamp kits Since 4.1 + + DEPRECATED 6.0: Lamp support has been removed and this response will always be empty. """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') @@ -582,6 +589,15 @@ def set_features(self, request, context): context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') + def restart_device_admin_service(self, request, context): + """Forcibly halt and restart any MinKNOW-related device administration services, such as Mooneye. + + Since 6.0 + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + def add_ManagerServiceServicer_to_server(servicer, server): rpc_method_handlers = { @@ -740,6 +756,11 @@ def add_ManagerServiceServicer_to_server(servicer, server): request_deserializer=minknow__api_dot_manager__pb2.SetFeaturesRequest.FromString, response_serializer=minknow__api_dot_manager__pb2.SetFeaturesResponse.SerializeToString, ), + 'restart_device_admin_service': grpc.unary_unary_rpc_method_handler( + servicer.restart_device_admin_service, + request_deserializer=minknow__api_dot_manager__pb2.RestartDeviceAdminRequest.FromString, + response_serializer=minknow__api_dot_manager__pb2.RestartDeviceAdminResponse.SerializeToString, + ), } generic_handler = grpc.method_handlers_generic_handler( 'minknow_api.manager.ManagerService', rpc_method_handlers) @@ -1276,3 +1297,20 @@ def set_features(request, minknow__api_dot_manager__pb2.SetFeaturesResponse.FromString, options, channel_credentials, insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def restart_device_admin_service(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/minknow_api.manager.ManagerService/restart_device_admin_service', + minknow__api_dot_manager__pb2.RestartDeviceAdminRequest.SerializeToString, + minknow__api_dot_manager__pb2.RestartDeviceAdminResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/python/minknow_api/manager_service.py b/python/minknow_api/manager_service.py index d675e2a..f65aa7c 100644 --- a/python/minknow_api/manager_service.py +++ b/python/minknow_api/manager_service.py @@ -72,6 +72,8 @@ "GetFeaturesResponse", "SetFeaturesRequest", "SetFeaturesResponse", + "RestartDeviceAdminRequest", + "RestartDeviceAdminResponse", "SimpleProtocolState", "NO_PROTOCOL_STATE", "PROTOCOL_RUNNING", @@ -390,7 +392,7 @@ def basecaller_api(self, _message=None, _timeout=None, **kwargs): [], "minknow_api.manager.ManagerService") def get_guppy_info(self, _message=None, _timeout=None, **kwargs): - """Get information about Guppy, including the port to connect to it on. + """Get information about the basecaller, including the port to connect to it on. Since 4.1 @@ -435,7 +437,7 @@ def get_version_info(self, _message=None, _timeout=None, **kwargs): - Protocols version (i.e. Bream-4 version) - Configuration version (i.e. Wanda version) - Distribution version - - Guppy version + - Basecaller version This RPC can be called without providing any authentication tokens. @@ -788,6 +790,8 @@ def get_lamp_kit_info(self, _message=None, _timeout=None, **kwargs): Since 4.1 + DEPRECATED 6.0: Lamp support has been removed and this response will always be empty. + This RPC has no side effects. Calling it will have no effect on the state of the system. It is safe to call repeatedly, or to retry on failure, although there is no guarantee it will return the same information each time. @@ -844,6 +848,8 @@ def get_barcode_keys(self, _message=None, _timeout=None, **kwargs): Fails with INVALID_ARGUMENT if the requested `lamp_kit_name` is unavailable. + DEPRECATED 6.0: Lamp support has been removed and this option will be ignored. + Returns: minknow_api.manager_pb2.GetBarcodeKeysResponse @@ -1719,3 +1725,43 @@ def set_features(self, _message=None, _timeout=None, **kwargs): _message, _timeout, [], "minknow_api.manager.ManagerService") + def restart_device_admin_service(self, _message=None, _timeout=None, **kwargs): + """Forcibly halt and restart any MinKNOW-related device administration services, such as Mooneye. + + Since 6.0 + + This RPC is idempotent. It may change the state of the system, but if the requested + change has already happened, it will not fail because of this, make any additional + changes or return a different value. + + Args: + _message (minknow_api.manager_pb2.RestartDeviceAdminRequest, optional): The message to send. + This can be passed instead of the keyword arguments. + _timeout (float, optional): The call will be cancelled after this number of seconds + if it has not been completed. + + Returns: + minknow_api.manager_pb2.RestartDeviceAdminResponse + + Note that the returned messages are actually wrapped in a type that collapses + submessages for fields marked with ``[rpc_unwrap]``. + """ + if _message is not None: + if isinstance(_message, MessageWrapper): + _message = _message._message + return run_with_retry(self._stub.restart_device_admin_service, + _message, _timeout, + [], + "minknow_api.manager.ManagerService") + + unused_args = set(kwargs.keys()) + + _message = RestartDeviceAdminRequest() + + if len(unused_args) > 0: + raise ArgumentError("Unexpected keyword arguments to restart_device_admin_service: '{}'".format(", ".join(unused_args))) + + return run_with_retry(self._stub.restart_device_admin_service, + _message, _timeout, + [], + "minknow_api.manager.ManagerService") diff --git a/python/minknow_api/minion_device_pb2.py b/python/minknow_api/minion_device_pb2.py index 1e5df5b..6ee0beb 100644 --- a/python/minknow_api/minion_device_pb2.py +++ b/python/minknow_api/minion_device_pb2.py @@ -74,19 +74,6 @@ _globals['_GETFANSPEEDRESPONSE']._serialized_end=3660 _globals['_MINIONDEVICESERVICE']._serialized_start=3663 _globals['_MINIONDEVICESERVICE']._serialized_end=4042 -SamplingFrequencyParameters.__doc__ = """These values control the sampling frequency. - -Attributes: - clock_divider: - Clock divider. Values over 31 cannot be set. - integration_time: - The time spent sampling a data point, in microseconds. Must - be between 30 and 1023 (inclusive). Note that setting the - integration_time to less than 50 will force the - sinc_decimation value to 32. - clock_speed: - The speed of the high-speed clock. -""" ChangeSettingsRequest.__doc__ = """Attributes: settings: MinION device settings @@ -95,12 +82,6 @@ configuration to apply to any channels not listed in settings.channel_config. """ -GetSettingsResponse.__doc__ = """Response for MinionDeviceService.get_settings - -Attributes: - settings: - MinION device settings -""" TemperatureRange.__doc__ = """Temperature range. Attributes: @@ -117,6 +98,12 @@ equal to min. When soft temperature control is enabled, this is used as the target temperature, and ``min`` is not used. """ +GetSettingsResponse.__doc__ = """Response for MinionDeviceService.get_settings + +Attributes: + settings: + MinION device settings +""" MinionDeviceSettings.__doc__ = """Describes the MinION device settings. Both unset structures and *_KEEP values in enums indicate "no change". When changing settings, these are the default values. @@ -280,5 +267,18 @@ provided. The values have the same constraints as ``bias_voltage``. """ +SamplingFrequencyParameters.__doc__ = """These values control the sampling frequency. + +Attributes: + clock_divider: + Clock divider. Values over 31 cannot be set. + integration_time: + The time spent sampling a data point, in microseconds. Must + be between 30 and 1023 (inclusive). Note that setting the + integration_time to less than 50 will force the + sinc_decimation value to 32. + clock_speed: + The speed of the high-speed clock. +""" GetSettingsRequest.__doc__ = """Request for MinionDeviceService.get_settings""" # @@protoc_insertion_point(module_scope) diff --git a/python/minknow_api/promethion_device_pb2.py b/python/minknow_api/promethion_device_pb2.py index 6a5a654..35f9658 100644 --- a/python/minknow_api/promethion_device_pb2.py +++ b/python/minknow_api/promethion_device_pb2.py @@ -116,23 +116,47 @@ _globals['_GETTEMPERATURERESPONSE']._serialized_end=5418 _globals['_PROMETHIONDEVICESERVICE']._serialized_start=5421 _globals['_PROMETHIONDEVICESERVICE']._serialized_end=6499 -PixelSettings.InputWell.__doc__ = """Attributes: - input_well: - Control which well is driving the adc minknow reads from. ALL - is not a valid value here (other values are acceptable). - regeneration_well: - Control which wells are being regenerated (has the specified - regeneration current driven to it). All possible Input values - are acceptable, as long as the input is not the active adc - input. For example, { input: 1, regeneration: all } is - invalid, as an well cannot be both input and regenerated. -""" ChangeDeviceSettingsResponse.__doc__ = """Attributes: real_sampling_frequency: The sampling frequency actually applied to the hardware, as close as possible to the requested rate. Note: only returned if sampling rate was set as part of this call. """ +PixelSettings.__doc__ = """Attributes: + input: + The input driving the adv + overload_mode: + The mode the asic uses to handle currents that go above its + adc range. + cutoff_frequency: + Signal filter for input adc signal. + gain_multiplier: + Signal gain multiplier, applied to the integrator circuit. + gain_capacitor: + Gain capacitor, used in the integrator circuit. + calibration_mode: + The calibration mode to use. + unblock_voltage: + Controls the application of the unblock voltage to the pixel. + current_inverted: + Inverts the current's polarity. + membrane_simulation_enabled: + Control the state of the membrane simulation. + regeneration_current: + Control the regeneration current used when regenerating + well's. + regeneration_current_test_enabled: + Control if the regeneration current test is enabled. This + connects the regeneration current to the integration adc + circuit and the input well. and allows users to read regen + current via the channel adc value. + bias_current: + The bias current for the amplifier - this controls the level + of noise of the signal. The higher the bias current, the + lower the noise, but the bigger the heat and power drawn by + the amplifier. If it is set to off, no signal readings can be + made. +""" StreamTemperatureRequest.__doc__ = """Attributes: period_seconds: How often temperature updates should be sent Defaults to a @@ -143,57 +167,6 @@ The desired data selection. The units for all values are `seconds since the start of the experiment`. """ -GetPixelSettingsRequest.__doc__ = """Attributes: - pixels: - The channels (one based) to return data for. A sparse map is - accepted -""" -PixelBlockSettings.__doc__ = """Attributes: - regen_current_voltage_clamp: - Voltage clamp for regeneration circuit (in millivolts) The - voltage in the regeneration circuit is clamped under this - value, whilst applying the current specified in each pixel's - settings. The acceptable input range is -1000..1000 - (inclusive) - unblock_voltage: - The unblock voltage to apply when a pixel is unblocking. The - acceptable input range is -1000..1000 (inclusive) -""" -DeviceSettings.__doc__ = """Attributes: - sampling_frequency: - The number of measurements to take each second. Possible - values are between 1000, and 10000. If the value is outside of - this range, it will be clamped within it This value cannot be - changed during acquisition. - ramp_voltage: - The value to apply as the ramp voltage (in millivolts) Valid - values are in the range -1250mv..1250mv - bias_voltage_setting: - Settings controlling the device bias voltage - bias_voltage: - The value to apply as the bias voltage (in millivolts) Valid - values are in the range -1250mv..1250mv - bias_voltage_waveform: - The waveform settings - saturation_control_enabled: - Enables saturation control on the device - fast_calibration_enabled: - Enable use of the fast calibration mode across the device - DEPRECATED since 5.5. This will be removed in a future - release. - temperature_target: - If the device is capable (see - device.get_device_info().temperature_controllable) then this - sets the minimum and maximum temperatures of the flow-cell. - These values must be between the limits specified in the - application config, see: min_user_setpoint_temperature_celsius - and max_user_setpoint_temperature_celsius - timings: - If specified, the device will adopt these timings to set how - long is spent at various stages of the current digitisation - processes. The message includes a way of returning to default - timings. This value cannot be changed during acquisition -""" WaveformSettings.__doc__ = """Attributes: voltages: The waveform data applied to the device (in millivolts) Must @@ -202,33 +175,16 @@ The frequency of the applied waveform, in Hz. Valid values are between 7.8125Hz and 500Hz. """ -ChangePixelBlockSettingsRequest.__doc__ = """Attributes: - pixel_blocks: - 1 based map of different pixel blocks settings, a sparse map - is accepted, keys should be integers between 1 and 12. - pixel_block_default: - If supplied, contains settings applied to every block before - then applying any specific settings in the per block settings. -""" -GetPixelBlockSettingsResponse.__doc__ = """Attributes: - pixel_blocks: - 1 based map of different pixel blocks settings, containing 12 - entries. -""" -ChangePixelSettingsRequest.__doc__ = """Attributes: - pixels: - 1 based map of up to 3000 different pixel settings - pixel_default: - If supplied, contains settings applied to every pixel before - then applying any specific settings in the per pixel settings. -""" -GetPixelSettingsResponse.__doc__ = """Attributes: +GetPixelSettingsRequest.__doc__ = """Attributes: pixels: - List of all requested pixel settings, in the order requested. + The channels (one based) to return data for. A sparse map is + accepted """ GetTemperatureResponse.__doc__ = """Attributes: target_temperature: Return the temperature target the device is aiming to reach. + starting_temperature: + Starting temperature value Since 6.0 flowcell_temperature: Temperature as measured by thermistor TH2 on the P-Chip. chamber_temperature: @@ -238,6 +194,14 @@ Temperature measured at each sensor in the ASIC, there are 12 sensors, one sensor per pixel-block """ +ChangePixelBlockSettingsRequest.__doc__ = """Attributes: + pixel_blocks: + 1 based map of different pixel blocks settings, a sparse map + is accepted, keys should be integers between 1 and 12. + pixel_block_default: + If supplied, contains settings applied to every block before + then applying any specific settings in the per block settings. +""" TimingEnginePeriods.__doc__ = """ Timing-engine periods are specified in 5ns units. Some of the timing mechanism can only achieve 10ns accuracy, so even numbers are preferred. Note: There is a timing feature in the ASIC that requires @@ -283,39 +247,77 @@ periods you previously entered are the same as the default values. """ -PixelSettings.__doc__ = """Attributes: - input: - The input driving the adv - overload_mode: - The mode the asic uses to handle currents that go above its - adc range. - cutoff_frequency: - Signal filter for input adc signal. - gain_multiplier: - Signal gain multiplier, applied to the integrator circuit. - gain_capacitor: - Gain capacitor, used in the integrator circuit. - calibration_mode: - The calibration mode to use. +GetPixelBlockSettingsResponse.__doc__ = """Attributes: + pixel_blocks: + 1 based map of different pixel blocks settings, containing 12 + entries. +""" +DeviceSettings.__doc__ = """Attributes: + sampling_frequency: + The number of measurements to take each second. Possible + values are between 1000, and 10000. If the value is outside of + this range, it will be clamped within it This value cannot be + changed during acquisition. + ramp_voltage: + The value to apply as the ramp voltage (in millivolts) Valid + values are in the range -1250mv..1250mv + bias_voltage_setting: + Settings controlling the device bias voltage + bias_voltage: + The value to apply as the bias voltage (in millivolts) Valid + values are in the range -1250mv..1250mv + bias_voltage_waveform: + The waveform settings + saturation_control_enabled: + Enables saturation control on the device + fast_calibration_enabled: + Enable use of the fast calibration mode across the device + DEPRECATED since 5.5. This will be removed in a future + release. + temperature_target: + If the device is capable (see + device.get_device_info().temperature_controllable) then this + sets the minimum and maximum temperatures of the flow-cell. + These values must be between the limits specified in the + application config, see: min_user_setpoint_temperature_celsius + and max_user_setpoint_temperature_celsius + timings: + If specified, the device will adopt these timings to set how + long is spent at various stages of the current digitisation + processes. The message includes a way of returning to default + timings. This value cannot be changed during acquisition +""" +PixelBlockSettings.__doc__ = """Attributes: + regen_current_voltage_clamp: + Voltage clamp for regeneration circuit (in millivolts) The + voltage in the regeneration circuit is clamped under this + value, whilst applying the current specified in each pixel's + settings. The acceptable input range is -1000..1000 + (inclusive) unblock_voltage: - Controls the application of the unblock voltage to the pixel. - current_inverted: - Inverts the current's polarity. - membrane_simulation_enabled: - Control the state of the membrane simulation. - regeneration_current: - Control the regeneration current used when regenerating - well's. - regeneration_current_test_enabled: - Control if the regeneration current test is enabled. This - connects the regeneration current to the integration adc - circuit and the input well. and allows users to read regen - current via the channel adc value. - bias_current: - The bias current for the amplifier - this controls the level - of noise of the signal. The higher the bias current, the - lower the noise, but the bigger the heat and power drawn by - the amplifier. If it is set to off, no signal readings can be - made. + The unblock voltage to apply when a pixel is unblocking. The + acceptable input range is -1000..1000 (inclusive) +""" +PixelSettings.InputWell.__doc__ = """Attributes: + input_well: + Control which well is driving the adc minknow reads from. ALL + is not a valid value here (other values are acceptable). + regeneration_well: + Control which wells are being regenerated (has the specified + regeneration current driven to it). All possible Input values + are acceptable, as long as the input is not the active adc + input. For example, { input: 1, regeneration: all } is + invalid, as an well cannot be both input and regenerated. +""" +GetPixelSettingsResponse.__doc__ = """Attributes: + pixels: + List of all requested pixel settings, in the order requested. +""" +ChangePixelSettingsRequest.__doc__ = """Attributes: + pixels: + 1 based map of up to 3000 different pixel settings + pixel_default: + If supplied, contains settings applied to every pixel before + then applying any specific settings in the per pixel settings. """ # @@protoc_insertion_point(module_scope) diff --git a/python/minknow_api/protocol_pb2.py b/python/minknow_api/protocol_pb2.py index 2b87ce8..3d28e4c 100644 --- a/python/minknow_api/protocol_pb2.py +++ b/python/minknow_api/protocol_pb2.py @@ -13,6 +13,7 @@ from minknow_api import acquisition_pb2 as minknow__api_dot_acquisition__pb2 +from minknow_api import analysis_workflows_pb2 as minknow__api_dot_analysis__workflows__pb2 from minknow_api import basecaller_pb2 as minknow__api_dot_basecaller__pb2 from minknow_api import device_pb2 as minknow__api_dot_device__pb2 from minknow_api import protocol_settings_pb2 as minknow__api_dot_protocol__settings__pb2 @@ -21,7 +22,7 @@ from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1aminknow_api/protocol.proto\x12\x14minknow_api.protocol\x1a\x1dminknow_api/acquisition.proto\x1a\x1cminknow_api/basecaller.proto\x1a\x18minknow_api/device.proto\x1a#minknow_api/protocol_settings.proto\x1a\x1dminknow_api/rpc_options.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1egoogle/protobuf/wrappers.proto\"\xcb\x03\n\x0f\x42\x61rcodeUserData\x12\x14\n\x0c\x62\x61rcode_name\x18\x01 \x01(\t\x12\x1d\n\x15\x62\x61rcode_name_internal\x18\x05 \x01(\t\x12\x17\n\x0flamp_barcode_id\x18\x02 \x01(\t\x12\r\n\x05\x61lias\x18\x03 \x01(\t\x12>\n\x04type\x18\x04 \x01(\x0e\x32\x30.minknow_api.protocol.BarcodeUserData.SampleType\x12P\n\x0epassenger_info\x18\x06 \x03(\x0b\x32\x38.minknow_api.protocol.BarcodeUserData.PassengerInfoEntry\x1a\x34\n\x12PassengerInfoEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x92\x01\n\nSampleType\x12\x0f\n\x0btest_sample\x10\x00\x12\x14\n\x10positive_control\x10\x01\x12\x14\n\x10negative_control\x10\x02\x12\x17\n\x13no_template_control\x10\x03\x12\x16\n\x12positive_control_1\x10\x04\x12\x16\n\x12positive_control_2\x10\x05\"A\n\x07KitInfo\x12\x16\n\x0esequencing_kit\x18\x01 \x01(\t\x12\x1e\n\x16\x62\x61rcode_expansion_kits\x18\x02 \x03(\t\"\xf8\x02\n\x13ProtocolRunUserInfo\x12\x37\n\x11protocol_group_id\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12/\n\tsample_id\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12@\n\x11\x62\x61rcode_user_info\x18\x03 \x03(\x0b\x32%.minknow_api.protocol.BarcodeUserData\x12\x41\n\x1buser_specified_flow_cell_id\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x41\n\x1buser_specified_product_code\x18\x05 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12/\n\x08kit_info\x18\x06 \x01(\x0b\x32\x1d.minknow_api.protocol.KitInfo\"R\n\x13OffloadLocationInfo\x12\x1c\n\x14offload_location_ids\x18\x01 \x03(\t\x12\x1d\n\x15offload_location_path\x18\x02 \x01(\t\"\x9a\x02\n\x14StartProtocolRequest\x12\x18\n\nidentifier\x18\x01 \x01(\tB\x04\x88\xb5\x18\x01\x12\x0c\n\x04\x61rgs\x18\x02 \x03(\t\x12<\n\tuser_info\x18\x03 \x01(\x0b\x32).minknow_api.protocol.ProtocolRunUserInfo\x12H\n\x15offload_location_info\x18\x04 \x01(\x0b\x32).minknow_api.protocol.OffloadLocationInfo\x12R\n\x19target_run_until_criteria\x18\x05 \x01(\x0b\x32/.minknow_api.acquisition.TargetRunUntilCriteria\"\'\n\x15StartProtocolResponse\x12\x0e\n\x06run_id\x18\x01 \x01(\t\"c\n\x13StopProtocolRequest\x12L\n\x13\x64\x61ta_action_on_stop\x18\x01 \x01(\x0e\x32/.minknow_api.acquisition.StopRequest.DataAction\"\x16\n\x14StopProtocolResponse\"\x16\n\x14PauseProtocolRequest\"\x17\n\x15PauseProtocolResponse\"\x17\n\x15ResumeProtocolRequest\"\x18\n\x16ResumeProtocolResponse\"\x17\n\x15TriggerMuxScanRequest\"\x18\n\x16TriggerMuxScanResponse\",\n\x14ListProtocolsRequest\x12\x14\n\x0c\x66orce_reload\x18\x01 \x01(\x08\"\xff\x03\n\x0cProtocolInfo\x12\x12\n\nidentifier\x18\x01 \x01(\t\x12:\n\x04tags\x18\x02 \x03(\x0b\x32,.minknow_api.protocol.ProtocolInfo.TagsEntry\x12\x0c\n\x04name\x18\x03 \x01(\t\x12U\n\x15tag_extraction_result\x18\x04 \x01(\x0b\x32\x36.minknow_api.protocol.ProtocolInfo.TagExtractionResult\x1a\xa1\x01\n\x08TagValue\x12\x16\n\x0cstring_value\x18\x01 \x01(\tH\x00\x12\x14\n\nbool_value\x18\x02 \x01(\x08H\x00\x12\x13\n\tint_value\x18\x03 \x01(\x03H\x00\x12\x16\n\x0c\x64ouble_value\x18\x04 \x01(\x01H\x00\x12\x15\n\x0b\x61rray_value\x18\x05 \x01(\tH\x00\x12\x16\n\x0cobject_value\x18\x06 \x01(\tH\x00\x42\x0b\n\ttag_value\x1a<\n\x13TagExtractionResult\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\x14\n\x0c\x65rror_report\x18\x02 \x01(\t\x1aX\n\tTagsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12:\n\x05value\x18\x02 \x01(\x0b\x32+.minknow_api.protocol.ProtocolInfo.TagValue:\x02\x38\x01\"N\n\x15ListProtocolsResponse\x12\x35\n\tprotocols\x18\x01 \x03(\x0b\x32\".minknow_api.protocol.ProtocolInfo\"\xff\x01\n\x16WaitForFinishedRequest\x12\x14\n\x06run_id\x18\x01 \x01(\tB\x04\x88\xb5\x18\x01\x12M\n\x05state\x18\x02 \x01(\x0e\x32>.minknow_api.protocol.WaitForFinishedRequest.NotificationState\x12\x0f\n\x07timeout\x18\x03 \x01(\x02\"o\n\x11NotificationState\x12\x19\n\x15NOTIFY_ON_TERMINATION\x10\x00\x12\x1d\n\x19NOTIFY_BEFORE_TERMINATION\x10\x01\x12 \n\x1cNOTIFY_ON_SCRIPT_TERMINATION\x10\x02\"#\n\x11GetRunInfoRequest\x12\x0e\n\x06run_id\x18\x01 \x01(\t\"\xa5\x03\n\rRequestOrigin\x12\x38\n\x04user\x18\x01 \x01(\x0b\x32(.minknow_api.protocol.RequestOrigin.UserH\x00\x12>\n\x07minknow\x18\x02 \x01(\x0b\x32+.minknow_api.protocol.RequestOrigin.MinKNOWH\x00\x12`\n\x19protocol_phase_management\x18\x03 \x01(\x0b\x32;.minknow_api.protocol.RequestOrigin.ProtocolPhaseManagementH\x00\x12\x41\n\trun_until\x18\x04 \x01(\x0b\x32,.minknow_api.protocol.RequestOrigin.RunUntilH\x00\x1a\x18\n\x04User\x12\x10\n\x08identity\x18\x01 \x01(\t\x1a\x18\n\x07MinKNOW\x12\r\n\x05\x63\x61use\x18\x01 \x01(\t\x1a\x19\n\x17ProtocolPhaseManagement\x1a\x1c\n\x08RunUntil\x12\x10\n\x08\x63riteria\x18\x01 \x01(\tB\x08\n\x06origin\"2\n\x17\x45pi2meWorkflowReference\x12\n\n\x02id\x18\x01 \x01(\x03\x12\x0b\n\x03url\x18\x02 \x01(\t\"s\n AssociatedPostProcessingAnalysis\x12\x12\n\nstarted_id\x18\x01 \x01(\t\x12;\n\rstart_request\x18\x02 \x01(\x0b\x32$.minknow_api.basecaller.StartRequest\"R\n\x10PlatformQcResult\x12\x14\n\x0c\x66low_cell_id\x18\x01 \x01(\t\x12\x0e\n\x06passed\x18\x02 \x01(\x08\x12\x18\n\x10total_pore_count\x18\x03 \x01(\r\"&\n\x0f\x45xternalOffload\x12\x13\n\x0boffload_ids\x18\x01 \x03(\t\"\x90\x05\n\x16GetVersionInfoResponse\x12L\n\x07minknow\x18\x01 \x01(\x0b\x32;.minknow_api.protocol.GetVersionInfoResponse.MinknowVersion\x12\r\n\x05\x62ream\x18\x02 \x01(\t\x12\x1c\n\x14\x64istribution_version\x18\x03 \x01(\t\x12\\\n\x13\x64istribution_status\x18\x04 \x01(\x0e\x32?.minknow_api.protocol.GetVersionInfoResponse.DistributionStatus\x12\x1e\n\x16protocol_configuration\x18\x05 \x01(\t\x12X\n\x11installation_type\x18\x06 \x01(\x0e\x32=.minknow_api.protocol.GetVersionInfoResponse.InstallationType\x12\x1b\n\x13guppy_build_version\x18\x07 \x01(\t\x12\x1f\n\x17guppy_connected_version\x18\x08 \x01(\t\x1aK\n\x0eMinknowVersion\x12\r\n\x05major\x18\x01 \x01(\x05\x12\r\n\x05minor\x18\x02 \x01(\x05\x12\r\n\x05patch\x18\x03 \x01(\x05\x12\x0c\n\x04\x66ull\x18\x04 \x01(\t\"I\n\x12\x44istributionStatus\x12\x0b\n\x07UNKNOWN\x10\x00\x12\n\n\x06STABLE\x10\x01\x12\x0c\n\x08UNSTABLE\x10\x02\x12\x0c\n\x08MODIFIED\x10\x03\"M\n\x10InstallationType\x12\x07\n\x03ONT\x10\x00\x12\x06\n\x02NC\x10\x01\x12\x08\n\x04PROD\x10\x02\x12\r\n\tQ_RELEASE\x10\x03\x12\x0f\n\x0bOND_RELEASE\x10\x04\"\xb3\t\n\x0fProtocolRunInfo\x12\x0e\n\x06run_id\x18\x01 \x01(\t\x12\x13\n\x0bprotocol_id\x18\x02 \x01(\t\x12\x0c\n\x04\x61rgs\x18\x03 \x03(\t\x12\x13\n\x0boutput_path\x18\x0b \x01(\t\x12!\n\x14reported_output_path\x18\x18 \x01(\tH\x00\x88\x01\x01\x12\x32\n\x05state\x18\x04 \x01(\x0e\x32#.minknow_api.protocol.ProtocolState\x12\x32\n\x05phase\x18\x10 \x01(\x0e\x32#.minknow_api.protocol.ProtocolPhase\x12\x35\n\x11last_phase_change\x18\x11 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x11\n\tcan_pause\x18\x12 \x01(\x08\x12\x1c\n\x14\x63\x61n_trigger_mux_scan\x18\x13 \x01(\x08\x12.\n\nstart_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x33\n\x0fscript_end_time\x18\t \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12,\n\x08\x65nd_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x38\n\x0bstop_origin\x18\x17 \x01(\x0b\x32#.minknow_api.protocol.RequestOrigin\x12\x1b\n\x13\x61\x63quisition_run_ids\x18\x07 \x03(\t\x12<\n\tuser_info\x18\x08 \x01(\x0b\x32).minknow_api.protocol.ProtocolRunUserInfo\x12G\n\x10\x65pi2me_workflows\x18\n \x03(\x0b\x32-.minknow_api.protocol.Epi2meWorkflowReference\x12\x39\n\x06\x64\x65vice\x18\x0c \x01(\x0b\x32).minknow_api.device.GetDeviceInfoResponse\x12>\n\tflow_cell\x18\r \x01(\x0b\x32+.minknow_api.device.GetFlowCellInfoResponse\x12\x35\n\tmeta_info\x18\x0e \x01(\x0b\x32\".minknow_api.protocol.ProtocolInfo\x12\x63\n#associated_post_processing_analysis\x18\x0f \x03(\x0b\x32\x36.minknow_api.protocol.AssociatedPostProcessingAnalysis\x12:\n\npqc_result\x18\x14 \x01(\x0b\x32&.minknow_api.protocol.PlatformQcResult\x12?\n\x10\x65xternal_offload\x18\x15 \x01(\x0b\x32%.minknow_api.protocol.ExternalOffload\x12G\n\x11software_versions\x18\x16 \x01(\x0b\x32,.minknow_api.protocol.GetVersionInfoResponseB\x17\n\x15_reported_output_path\"\x8c\x03\n\rFilteringInfo\x12H\n\npqc_filter\x18\x01 \x01(\x0b\x32\x34.minknow_api.protocol.FilteringInfo.PlatformQcFilter\x12\x1e\n\x11protocol_group_id\x18\x02 \x01(\tH\x00\x88\x01\x01\x12M\n\x15\x65xperiment_start_time\x18\x03 \x01(\x0b\x32..minknow_api.protocol.FilteringInfo.TimeFilter\x1a>\n\x10PlatformQcFilter\x12\x19\n\x0c\x66low_cell_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0f\n\r_flow_cell_id\x1al\n\nTimeFilter\x12/\n\x0bstart_range\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12-\n\tend_range\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x14\n\x12_protocol_group_id\"S\n\x17ListProtocolRunsRequest\x12\x38\n\x0b\x66ilter_info\x18\x01 \x01(\x0b\x32#.minknow_api.protocol.FilteringInfo\"+\n\x18ListProtocolRunsResponse\x12\x0f\n\x07run_ids\x18\x01 \x03(\t\"\x1e\n\x1cGetCurrentProtocolRunRequest\"X\n\x1dGetCurrentProtocolRunResponse\x12\x37\n\x08run_info\x18\x03 \x01(\x0b\x32%.minknow_api.protocol.ProtocolRunInfo\" \n\x1eWatchCurrentProtocolRunRequest\"\x17\n\x15GetContextInfoRequest\"\xa1\x01\n\x16GetContextInfoResponse\x12S\n\x0c\x63ontext_info\x18\x01 \x03(\x0b\x32=.minknow_api.protocol.GetContextInfoResponse.ContextInfoEntry\x1a\x32\n\x10\x43ontextInfoEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x9f\x01\n\x15SetContextInfoRequest\x12R\n\x0c\x63ontext_info\x18\x01 \x03(\x0b\x32<.minknow_api.protocol.SetContextInfoRequest.ContextInfoEntry\x1a\x32\n\x10\x43ontextInfoEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x18\n\x16SetContextInfoResponse\"\x1b\n\x19GetProtocolPurposeRequest\"-\n\x1aGetProtocolPurposeResponse\x12\x0f\n\x07purpose\x18\x01 \x01(\t\",\n\x19SetProtocolPurposeRequest\x12\x0f\n\x07purpose\x18\x01 \x01(\t\"\x1c\n\x1aSetProtocolPurposeResponse\"~\n\x18\x41\x64\x64\x45pi2meWorkflowRequest\x12\x14\n\x06run_id\x18\x01 \x01(\tB\x04\x88\xb5\x18\x01\x12L\n\x0f\x65pi2me_workflow\x18\x02 \x01(\x0b\x32-.minknow_api.protocol.Epi2meWorkflowReferenceB\x04\x88\xb5\x18\x01\"\x1b\n\x19\x41\x64\x64\x45pi2meWorkflowResponse\"`\n\x13ProtocolGroupIdInfo\x12\x19\n\x11protocol_group_id\x18\x01 \x01(\t\x12.\n\nstart_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"W\n\x1bListProtocolGroupIdsRequest\x12\x38\n\x0b\x66ilter_info\x18\x01 \x01(\x0b\x32#.minknow_api.protocol.FilteringInfo\"\x86\x01\n\x1cListProtocolGroupIdsResponse\x12\x1a\n\x12protocol_group_ids\x18\x01 \x03(\t\x12J\n\x17protocol_group_ids_info\x18\x02 \x03(\x0b\x32).minknow_api.protocol.ProtocolGroupIdInfo\"\x1b\n\x19\x42\x65ginHardwareCheckRequest\",\n\x1a\x42\x65ginHardwareCheckResponse\x12\x0e\n\x06run_id\x18\x01 \x01(\t\"\x18\n\x16\x42\x65ginPlatformQcRequest\")\n\x17\x42\x65ginPlatformQcResponse\x12\x0e\n\x06run_id\x18\x01 \x01(\t\"\xb4\x04\n\x14\x42\x65ginProtocolRequest\x12\x14\n\nidentifier\x18\x01 \x01(\tH\x00\x12Q\n\ncomponents\x18\x02 \x01(\x0b\x32;.minknow_api.protocol_settings.ProtocolIdentifierComponentsH\x00\x12<\n\tuser_info\x18\x03 \x01(\x0b\x32).minknow_api.protocol.ProtocolRunUserInfo\x12H\n\x15offload_location_info\x18\x05 \x01(\x0b\x32).minknow_api.protocol.OffloadLocationInfo\x12R\n\x19target_run_until_criteria\x18\x06 \x01(\x0b\x32/.minknow_api.acquisition.TargetRunUntilCriteria\x12J\n\x08settings\x18\x04 \x03(\x0b\x32\x38.minknow_api.protocol.BeginProtocolRequest.SettingsEntry\x1at\n\rSettingsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12R\n\x05value\x18\x02 \x01(\x0b\x32\x43.minknow_api.protocol_settings.ProtocolSetting.ProtocolSettingValue:\x02\x38\x01\x42\x15\n\x13protocol_identifier\"\'\n\x15\x42\x65ginProtocolResponse\x12\x0e\n\x06run_id\x18\x01 \x01(\t\"q\n\x1aSetPlatformQcResultRequest\x12\x17\n\x0fprotocol_run_id\x18\x01 \x01(\t\x12:\n\npqc_result\x18\x02 \x01(\x0b\x32&.minknow_api.protocol.PlatformQcResult\"\x1d\n\x1bSetPlatformQcResultResponse\"u\n&AssociatePostProcessingAnalysisRequest\x12\x0e\n\x06run_id\x18\x01 \x01(\t\x12;\n\rstart_request\x18\x02 \x01(\x0b\x32$.minknow_api.basecaller.StartRequest\"5\n\'AssociatePostProcessingAnalysisResponse\x12\n\n\x02id\x18\x01 \x01(\t\"7\n\x1f\x43learProtocolHistoryDataRequest\x12\x14\n\x0cprotocol_ids\x18\x01 \x03(\t\"\"\n ClearProtocolHistoryDataResponse\"\xf2\x01\n\x1eProtocolPhaseManagementRequest\x12[\n\x10set_capabilities\x18\x01 \x01(\x0b\x32\x41.minknow_api.protocol.ProtocolPhaseManagementRequest.Capabilities\x12\x32\n\x05phase\x18\x02 \x01(\x0e\x32#.minknow_api.protocol.ProtocolPhase\x1a?\n\x0c\x43\x61pabilities\x12\x11\n\tcan_pause\x18\x01 \x01(\x08\x12\x1c\n\x14\x63\x61n_trigger_mux_scan\x18\x02 \x01(\x08\"O\n\x1fProtocolPhaseManagementResponse\x12,\n\x06\x61\x63tion\x18\x01 \x01(\x0e\x32\x1c.minknow_api.protocol.Action\"O\n\x18GenerateRunReportRequest\x12\x17\n\x0fprotocol_run_id\x18\x01 \x01(\t\x12\x1a\n\x12include_input_data\x18\x02 \x01(\x08\"\x97\x01\n\x19GenerateRunReportResponse\x12\x17\n\x0fprotocol_run_id\x18\x01 \x01(\t\x12\x13\n\x0breport_data\x18\x02 \x01(\t\x12\x18\n\x10remaining_length\x18\x03 \x01(\x05\x12\x12\n\ninput_data\x18\x04 \x01(\t\x12\x1e\n\x16remaining_input_length\x18\x05 \x01(\x05*\xb8\x05\n\rProtocolState\x12\x14\n\x10PROTOCOL_RUNNING\x10\x00\x12$\n PROTOCOL_WAITING_FOR_TEMPERATURE\x10\x04\x12$\n PROTOCOL_WAITING_FOR_ACQUISITION\x10\x05\x12\x16\n\x12PROTOCOL_COMPLETED\x10\x01\x12\x1c\n\x18PROTOCOL_STOPPED_BY_USER\x10\x02\x12 \n\x1cPROTOCOL_FINISHED_WITH_ERROR\x10\x03\x12\'\n#PROTOCOL_FINISHED_WITH_DEVICE_ERROR\x10\x06\x12.\n*PROTOCOL_FINISHED_UNABLE_TO_SEND_TELEMETRY\x10\x07\x12/\n+PROTOCOL_FINISHED_WITH_FLOW_CELL_DISCONNECT\x10\x08\x12,\n(PROTOCOL_FINISHED_WITH_DEVICE_DISCONNECT\x10\t\x12,\n(PROTOCOL_FINISHED_WITH_ERROR_CALIBRATION\x10\x14\x12\x32\n.PROTOCOL_FINISHED_WITH_ERROR_BASECALL_SETTINGS\x10\x15\x12\x35\n1PROTOCOL_FINISHED_WITH_ERROR_TEMPERATURE_REQUIRED\x10\x16\x12.\n*PROTOCOL_FINISHED_WITH_ERROR_NO_DISK_SPACE\x10\x17\x12\x31\n-PROTOCOL_FINISHED_WITH_ERROR_TEMPERATURE_HIGH\x10\x19\x12\x39\n5PROTOCOL_FINISHED_WITH_ERROR_BASECALLER_COMMUNICATION\x10\x1a*\xea\x01\n\rProtocolPhase\x12\x11\n\rPHASE_UNKNOWN\x10\x00\x12\x16\n\x12PHASE_INITIALISING\x10\x01\x12\x14\n\x10PHASE_SEQUENCING\x10\x02\x12 \n\x1cPHASE_PREPARING_FOR_MUX_SCAN\x10\x03\x12\x12\n\x0ePHASE_MUX_SCAN\x10\x04\x12\x10\n\x0cPHASE_PAUSED\x10\x05\x12\x11\n\rPHASE_PAUSING\x10\x06\x12)\n%PHASE_BAD_TEMPERATURE_AUTOMATIC_PAUSE\x10\x08\x12\x12\n\x0ePHASE_RESUMING\x10\x07*[\n\x06\x41\x63tion\x12\x0f\n\x0b\x41\x43TION_NONE\x10\x00\x12\x10\n\x0c\x41\x43TION_PAUSE\x10\x01\x12\x11\n\rACTION_RESUME\x10\x02\x12\x1b\n\x17\x41\x43TION_TRIGGER_MUX_SCAN\x10\x03\x32\xa9\x18\n\x0fProtocolService\x12k\n\x0estart_protocol\x12*.minknow_api.protocol.StartProtocolRequest\x1a+.minknow_api.protocol.StartProtocolResponse\"\x00\x12h\n\rstop_protocol\x12).minknow_api.protocol.StopProtocolRequest\x1a*.minknow_api.protocol.StopProtocolResponse\"\x00\x12n\n\x0epause_protocol\x12*.minknow_api.protocol.PauseProtocolRequest\x1a+.minknow_api.protocol.PauseProtocolResponse\"\x03\x90\x02\x02\x12q\n\x0fresume_protocol\x12+.minknow_api.protocol.ResumeProtocolRequest\x1a,.minknow_api.protocol.ResumeProtocolResponse\"\x03\x90\x02\x02\x12r\n\x10trigger_mux_scan\x12+.minknow_api.protocol.TriggerMuxScanRequest\x1a,.minknow_api.protocol.TriggerMuxScanResponse\"\x03\x90\x02\x02\x12m\n\x11wait_for_finished\x12,.minknow_api.protocol.WaitForFinishedRequest\x1a%.minknow_api.protocol.ProtocolRunInfo\"\x03\x90\x02\x01\x12\x63\n\x0cget_run_info\x12\'.minknow_api.protocol.GetRunInfoRequest\x1a%.minknow_api.protocol.ProtocolRunInfo\"\x03\x90\x02\x01\x12x\n\x12list_protocol_runs\x12-.minknow_api.protocol.ListProtocolRunsRequest\x1a..minknow_api.protocol.ListProtocolRunsResponse\"\x03\x90\x02\x01\x12z\n\x18get_current_protocol_run\x12\x32.minknow_api.protocol.GetCurrentProtocolRunRequest\x1a%.minknow_api.protocol.ProtocolRunInfo\"\x03\x90\x02\x01\x12\x80\x01\n\x1awatch_current_protocol_run\x12\x34.minknow_api.protocol.WatchCurrentProtocolRunRequest\x1a%.minknow_api.protocol.ProtocolRunInfo\"\x03\x90\x02\x01\x30\x01\x12n\n\x0elist_protocols\x12*.minknow_api.protocol.ListProtocolsRequest\x1a+.minknow_api.protocol.ListProtocolsResponse\"\x03\x90\x02\x02\x12r\n\x10get_context_info\x12+.minknow_api.protocol.GetContextInfoRequest\x1a,.minknow_api.protocol.GetContextInfoResponse\"\x03\x90\x02\x01\x12r\n\x10set_context_info\x12+.minknow_api.protocol.SetContextInfoRequest\x1a,.minknow_api.protocol.SetContextInfoResponse\"\x03\x90\x02\x02\x12~\n\x14get_protocol_purpose\x12/.minknow_api.protocol.GetProtocolPurposeRequest\x1a\x30.minknow_api.protocol.GetProtocolPurposeResponse\"\x03\x90\x02\x01\x12~\n\x14set_protocol_purpose\x12/.minknow_api.protocol.SetProtocolPurposeRequest\x1a\x30.minknow_api.protocol.SetProtocolPurposeResponse\"\x03\x90\x02\x02\x12x\n\x13\x61\x64\x64_epi2me_workflow\x12..minknow_api.protocol.AddEpi2meWorkflowRequest\x1a/.minknow_api.protocol.AddEpi2meWorkflowResponse\"\x00\x12\x85\x01\n\x17list_protocol_group_ids\x12\x31.minknow_api.protocol.ListProtocolGroupIdsRequest\x1a\x32.minknow_api.protocol.ListProtocolGroupIdsResponse\"\x03\x90\x02\x01\x12\x7f\n\x14\x62\x65gin_hardware_check\x12/.minknow_api.protocol.BeginHardwareCheckRequest\x1a\x30.minknow_api.protocol.BeginHardwareCheckResponse\"\x04\x98\xb5\x18\x01\x12v\n\x11\x62\x65gin_platform_qc\x12,.minknow_api.protocol.BeginPlatformQcRequest\x1a-.minknow_api.protocol.BeginPlatformQcResponse\"\x04\x98\xb5\x18\x01\x12o\n\x0e\x62\x65gin_protocol\x12*.minknow_api.protocol.BeginProtocolRequest\x1a+.minknow_api.protocol.BeginProtocolResponse\"\x04\x98\xb5\x18\x01\x12\x82\x01\n\x16set_platform_qc_result\x12\x30.minknow_api.protocol.SetPlatformQcResultRequest\x1a\x31.minknow_api.protocol.SetPlatformQcResultResponse\"\x03\x90\x02\x02\x12\xb0\x01\n/associate_post_processing_analysis_for_protocol\x12<.minknow_api.protocol.AssociatePostProcessingAnalysisRequest\x1a=.minknow_api.protocol.AssociatePostProcessingAnalysisResponse\"\x00\x12\x8e\x01\n\x1b\x63lear_protocol_history_data\x12\x35.minknow_api.protocol.ClearProtocolHistoryDataRequest\x1a\x36.minknow_api.protocol.ClearProtocolHistoryDataResponse\"\x00\x12\x8e\x01\n\x19protocol_phase_management\x12\x34.minknow_api.protocol.ProtocolPhaseManagementRequest\x1a\x35.minknow_api.protocol.ProtocolPhaseManagementResponse\"\x00(\x01\x30\x01\x12}\n\x13generate_run_report\x12..minknow_api.protocol.GenerateRunReportRequest\x1a/.minknow_api.protocol.GenerateRunReportResponse\"\x03\x90\x02\x02\x30\x01\x42&\n\x1c\x63om.nanoporetech.minknow_api\xa2\x02\x05MKAPIb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1aminknow_api/protocol.proto\x12\x14minknow_api.protocol\x1a\x1dminknow_api/acquisition.proto\x1a$minknow_api/analysis_workflows.proto\x1a\x1cminknow_api/basecaller.proto\x1a\x18minknow_api/device.proto\x1a#minknow_api/protocol_settings.proto\x1a\x1dminknow_api/rpc_options.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1egoogle/protobuf/wrappers.proto\"\xcb\x03\n\x0f\x42\x61rcodeUserData\x12\x14\n\x0c\x62\x61rcode_name\x18\x01 \x01(\t\x12\x1d\n\x15\x62\x61rcode_name_internal\x18\x05 \x01(\t\x12\x17\n\x0flamp_barcode_id\x18\x02 \x01(\t\x12\r\n\x05\x61lias\x18\x03 \x01(\t\x12>\n\x04type\x18\x04 \x01(\x0e\x32\x30.minknow_api.protocol.BarcodeUserData.SampleType\x12P\n\x0epassenger_info\x18\x06 \x03(\x0b\x32\x38.minknow_api.protocol.BarcodeUserData.PassengerInfoEntry\x1a\x34\n\x12PassengerInfoEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x92\x01\n\nSampleType\x12\x0f\n\x0btest_sample\x10\x00\x12\x14\n\x10positive_control\x10\x01\x12\x14\n\x10negative_control\x10\x02\x12\x17\n\x13no_template_control\x10\x03\x12\x16\n\x12positive_control_1\x10\x04\x12\x16\n\x12positive_control_2\x10\x05\"A\n\x07KitInfo\x12\x16\n\x0esequencing_kit\x18\x01 \x01(\t\x12\x1e\n\x16\x62\x61rcode_expansion_kits\x18\x02 \x03(\t\"\xf8\x02\n\x13ProtocolRunUserInfo\x12\x37\n\x11protocol_group_id\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12/\n\tsample_id\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12@\n\x11\x62\x61rcode_user_info\x18\x03 \x03(\x0b\x32%.minknow_api.protocol.BarcodeUserData\x12\x41\n\x1buser_specified_flow_cell_id\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x41\n\x1buser_specified_product_code\x18\x05 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12/\n\x08kit_info\x18\x06 \x01(\x0b\x32\x1d.minknow_api.protocol.KitInfo\"R\n\x13OffloadLocationInfo\x12\x1c\n\x14offload_location_ids\x18\x01 \x03(\t\x12\x1d\n\x15offload_location_path\x18\x02 \x01(\t\"\xba\x01\n\x17\x41nalysisWorkflowRequest\x12\x43\n\rproxy_request\x18\x01 \x01(\x0b\x32,.minknow_api.analysis_workflows.ProxyRequest\x12@\n\x04when\x18\x02 \x01(\x0e\x32\x32.minknow_api.protocol.AnalysisWorkflowRequest.When\"\x18\n\x04When\x12\x10\n\x0cPROTOCOL_END\x10\x00\"\xf2\x02\n\x14StartProtocolRequest\x12\x18\n\nidentifier\x18\x01 \x01(\tB\x04\x88\xb5\x18\x01\x12\x0c\n\x04\x61rgs\x18\x02 \x03(\t\x12<\n\tuser_info\x18\x03 \x01(\x0b\x32).minknow_api.protocol.ProtocolRunUserInfo\x12H\n\x15offload_location_info\x18\x04 \x01(\x0b\x32).minknow_api.protocol.OffloadLocationInfo\x12R\n\x19target_run_until_criteria\x18\x05 \x01(\x0b\x32/.minknow_api.acquisition.TargetRunUntilCriteria\x12P\n\x19\x61nalysis_workflow_request\x18\x07 \x01(\x0b\x32-.minknow_api.protocol.AnalysisWorkflowRequestJ\x04\x08\x06\x10\x07\"\'\n\x15StartProtocolResponse\x12\x0e\n\x06run_id\x18\x01 \x01(\t\"c\n\x13StopProtocolRequest\x12L\n\x13\x64\x61ta_action_on_stop\x18\x01 \x01(\x0e\x32/.minknow_api.acquisition.StopRequest.DataAction\"\x16\n\x14StopProtocolResponse\"\x16\n\x14PauseProtocolRequest\"\x17\n\x15PauseProtocolResponse\"\x17\n\x15ResumeProtocolRequest\"\x18\n\x16ResumeProtocolResponse\"\x17\n\x15TriggerMuxScanRequest\"\x18\n\x16TriggerMuxScanResponse\",\n\x14ListProtocolsRequest\x12\x14\n\x0c\x66orce_reload\x18\x01 \x01(\x08\"\xff\x03\n\x0cProtocolInfo\x12\x12\n\nidentifier\x18\x01 \x01(\t\x12:\n\x04tags\x18\x02 \x03(\x0b\x32,.minknow_api.protocol.ProtocolInfo.TagsEntry\x12\x0c\n\x04name\x18\x03 \x01(\t\x12U\n\x15tag_extraction_result\x18\x04 \x01(\x0b\x32\x36.minknow_api.protocol.ProtocolInfo.TagExtractionResult\x1a\xa1\x01\n\x08TagValue\x12\x16\n\x0cstring_value\x18\x01 \x01(\tH\x00\x12\x14\n\nbool_value\x18\x02 \x01(\x08H\x00\x12\x13\n\tint_value\x18\x03 \x01(\x03H\x00\x12\x16\n\x0c\x64ouble_value\x18\x04 \x01(\x01H\x00\x12\x15\n\x0b\x61rray_value\x18\x05 \x01(\tH\x00\x12\x16\n\x0cobject_value\x18\x06 \x01(\tH\x00\x42\x0b\n\ttag_value\x1a<\n\x13TagExtractionResult\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\x14\n\x0c\x65rror_report\x18\x02 \x01(\t\x1aX\n\tTagsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12:\n\x05value\x18\x02 \x01(\x0b\x32+.minknow_api.protocol.ProtocolInfo.TagValue:\x02\x38\x01\"N\n\x15ListProtocolsResponse\x12\x35\n\tprotocols\x18\x01 \x03(\x0b\x32\".minknow_api.protocol.ProtocolInfo\"\xff\x01\n\x16WaitForFinishedRequest\x12\x14\n\x06run_id\x18\x01 \x01(\tB\x04\x88\xb5\x18\x01\x12M\n\x05state\x18\x02 \x01(\x0e\x32>.minknow_api.protocol.WaitForFinishedRequest.NotificationState\x12\x0f\n\x07timeout\x18\x03 \x01(\x02\"o\n\x11NotificationState\x12\x19\n\x15NOTIFY_ON_TERMINATION\x10\x00\x12\x1d\n\x19NOTIFY_BEFORE_TERMINATION\x10\x01\x12 \n\x1cNOTIFY_ON_SCRIPT_TERMINATION\x10\x02\"#\n\x11GetRunInfoRequest\x12\x0e\n\x06run_id\x18\x01 \x01(\t\"\xa5\x03\n\rRequestOrigin\x12\x38\n\x04user\x18\x01 \x01(\x0b\x32(.minknow_api.protocol.RequestOrigin.UserH\x00\x12>\n\x07minknow\x18\x02 \x01(\x0b\x32+.minknow_api.protocol.RequestOrigin.MinKNOWH\x00\x12`\n\x19protocol_phase_management\x18\x03 \x01(\x0b\x32;.minknow_api.protocol.RequestOrigin.ProtocolPhaseManagementH\x00\x12\x41\n\trun_until\x18\x04 \x01(\x0b\x32,.minknow_api.protocol.RequestOrigin.RunUntilH\x00\x1a\x18\n\x04User\x12\x10\n\x08identity\x18\x01 \x01(\t\x1a\x18\n\x07MinKNOW\x12\r\n\x05\x63\x61use\x18\x01 \x01(\t\x1a\x19\n\x17ProtocolPhaseManagement\x1a\x1c\n\x08RunUntil\x12\x10\n\x08\x63riteria\x18\x01 \x01(\tB\x08\n\x06origin\"2\n\x17\x45pi2meWorkflowReference\x12\n\n\x02id\x18\x01 \x01(\x03\x12\x0b\n\x03url\x18\x02 \x01(\t\"\xf7\x01\n AssociatedPostProcessingAnalysis\x12\x12\n\nstarted_id\x18\x01 \x01(\t\x12;\n\rstart_request\x18\x02 \x01(\x0b\x32$.minknow_api.basecaller.StartRequest\x12K\n\x05state\x18\x03 \x01(\x0e\x32<.minknow_api.protocol.AssociatedPostProcessingAnalysis.State\"5\n\x05State\x12\n\n\x06QUEUED\x10\x00\x12\x0b\n\x07STARTED\x10\x01\x12\x13\n\x0f\x46\x41ILED_TO_START\x10\x02\"R\n\x10PlatformQcResult\x12\x14\n\x0c\x66low_cell_id\x18\x01 \x01(\t\x12\x0e\n\x06passed\x18\x02 \x01(\x08\x12\x18\n\x10total_pore_count\x18\x03 \x01(\r\"\xd4\x02\n\x13HardwareCheckResult\x12M\n\x06status\x18\x01 \x01(\x0e\x32=.minknow_api.protocol.HardwareCheckResult.HardwareCheckStatus\x12\\\n\x0e\x66\x61ilure_reason\x18\x02 \x01(\x0e\x32\x44.minknow_api.protocol.HardwareCheckResult.HardwareCheckFailureReason\"G\n\x13HardwareCheckStatus\x12\x08\n\x04None\x10\x00\x12\x0b\n\x07Started\x10\x01\x12\r\n\tSucceeded\x10\x02\x12\n\n\x06\x46\x61iled\x10\x03\"G\n\x1aHardwareCheckFailureReason\x12\x0b\n\x07NoError\x10\x00\x12\x0b\n\x07Unknown\x10\x01\x12\x0f\n\x0bScriptError\x10\x02\"&\n\x0f\x45xternalOffload\x12\x13\n\x0boffload_ids\x18\x01 \x03(\t\"\xa6\x05\n\x16GetVersionInfoResponse\x12L\n\x07minknow\x18\x01 \x01(\x0b\x32;.minknow_api.protocol.GetVersionInfoResponse.MinknowVersion\x12\r\n\x05\x62ream\x18\x02 \x01(\t\x12\x1c\n\x14\x64istribution_version\x18\x03 \x01(\t\x12\\\n\x13\x64istribution_status\x18\x04 \x01(\x0e\x32?.minknow_api.protocol.GetVersionInfoResponse.DistributionStatus\x12\x1e\n\x16protocol_configuration\x18\x05 \x01(\t\x12X\n\x11installation_type\x18\x06 \x01(\x0e\x32=.minknow_api.protocol.GetVersionInfoResponse.InstallationType\x12 \n\x18\x62\x61secaller_build_version\x18\t \x01(\t\x12$\n\x1c\x62\x61secaller_connected_version\x18\n \x01(\t\x1aK\n\x0eMinknowVersion\x12\r\n\x05major\x18\x01 \x01(\x05\x12\r\n\x05minor\x18\x02 \x01(\x05\x12\r\n\x05patch\x18\x03 \x01(\x05\x12\x0c\n\x04\x66ull\x18\x04 \x01(\t\"I\n\x12\x44istributionStatus\x12\x0b\n\x07UNKNOWN\x10\x00\x12\n\n\x06STABLE\x10\x01\x12\x0c\n\x08UNSTABLE\x10\x02\x12\x0c\n\x08MODIFIED\x10\x03\"M\n\x10InstallationType\x12\x07\n\x03ONT\x10\x00\x12\x06\n\x02NC\x10\x01\x12\x08\n\x04PROD\x10\x02\x12\r\n\tQ_RELEASE\x10\x03\x12\x0f\n\x0bOND_RELEASE\x10\x04J\x04\x08\x07\x10\x08J\x04\x08\x08\x10\t\"\x9d\x03\n\x14\x41nalysisWorkflowInfo\x12>\n\x07request\x18\x01 \x01(\x0b\x32-.minknow_api.protocol.AnalysisWorkflowRequest\x12\x13\n\x0bworkflow_id\x18\x02 \x01(\t\x12\x15\n\rworkflow_name\x18\x03 \x01(\t\x12\x18\n\x10workflow_version\x18\x04 \x01(\t\x12J\n\x0fworkflow_status\x18\x05 \x01(\x0e\x32\x31.minknow_api.protocol.AnalysisWorkflowInfo.Status\x12\x1c\n\x14workflow_stop_reason\x18\x06 \x01(\t\x12\x14\n\x0creport_names\x18\x07 \x03(\t\"\x7f\n\x06Status\x12\x0b\n\x07UNKNOWN\x10\x00\x12\n\n\x06QUEUED\x10\x06\x12\x0b\n\x07RUNNING\x10\x01\x12\r\n\tCOMPLETED\x10\x02\x12\x13\n\x0fSTOPPED_BY_USER\x10\x03\x12\x16\n\x12STOPPED_WITH_ERROR\x10\x04\x12\x13\n\x0f\x46\x41ILED_TO_START\x10\x05\"\x81\x0c\n\x0fProtocolRunInfo\x12\x0e\n\x06run_id\x18\x01 \x01(\t\x12\x13\n\x0bprotocol_id\x18\x02 \x01(\t\x12\x0c\n\x04\x61rgs\x18\x03 \x03(\t\x12\x45\n\x08settings\x18\x19 \x03(\x0b\x32\x33.minknow_api.protocol.ProtocolRunInfo.SettingsEntry\x12\x13\n\x0boutput_path\x18\x0b \x01(\t\x12!\n\x14reported_output_path\x18\x18 \x01(\tH\x00\x88\x01\x01\x12\x32\n\x05state\x18\x04 \x01(\x0e\x32#.minknow_api.protocol.ProtocolState\x12\x32\n\x05phase\x18\x10 \x01(\x0e\x32#.minknow_api.protocol.ProtocolPhase\x12\x35\n\x11last_phase_change\x18\x11 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x11\n\tcan_pause\x18\x12 \x01(\x08\x12\x1c\n\x14\x63\x61n_trigger_mux_scan\x18\x13 \x01(\x08\x12.\n\nstart_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x33\n\x0fscript_end_time\x18\t \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12,\n\x08\x65nd_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x38\n\x0bstop_origin\x18\x17 \x01(\x0b\x32#.minknow_api.protocol.RequestOrigin\x12\x1b\n\x13\x61\x63quisition_run_ids\x18\x07 \x03(\t\x12<\n\tuser_info\x18\x08 \x01(\x0b\x32).minknow_api.protocol.ProtocolRunUserInfo\x12G\n\x10\x65pi2me_workflows\x18\n \x03(\x0b\x32-.minknow_api.protocol.Epi2meWorkflowReference\x12\x39\n\x06\x64\x65vice\x18\x0c \x01(\x0b\x32).minknow_api.device.GetDeviceInfoResponse\x12>\n\tflow_cell\x18\r \x01(\x0b\x32+.minknow_api.device.GetFlowCellInfoResponse\x12\x35\n\tmeta_info\x18\x0e \x01(\x0b\x32\".minknow_api.protocol.ProtocolInfo\x12\x63\n#associated_post_processing_analysis\x18\x0f \x03(\x0b\x32\x36.minknow_api.protocol.AssociatedPostProcessingAnalysis\x12\x45\n\x11\x61nalysis_workflow\x18\x1b \x01(\x0b\x32*.minknow_api.protocol.AnalysisWorkflowInfo\x12:\n\npqc_result\x18\x14 \x01(\x0b\x32&.minknow_api.protocol.PlatformQcResult\x12H\n\x15hardware_check_result\x18\x1a \x01(\x0b\x32).minknow_api.protocol.HardwareCheckResult\x12?\n\x10\x65xternal_offload\x18\x15 \x01(\x0b\x32%.minknow_api.protocol.ExternalOffload\x12G\n\x11software_versions\x18\x16 \x01(\x0b\x32,.minknow_api.protocol.GetVersionInfoResponse\x1at\n\rSettingsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12R\n\x05value\x18\x02 \x01(\x0b\x32\x43.minknow_api.protocol_settings.ProtocolSetting.ProtocolSettingValue:\x02\x38\x01\x42\x17\n\x15_reported_output_path\"\xfb\x03\n\rFilteringInfo\x12H\n\npqc_filter\x18\x01 \x01(\x0b\x32\x34.minknow_api.protocol.FilteringInfo.PlatformQcFilter\x12V\n\x15hardware_check_filter\x18\x04 \x01(\x0b\x32\x37.minknow_api.protocol.FilteringInfo.HardwareCheckFilter\x12\x1e\n\x11protocol_group_id\x18\x02 \x01(\tH\x00\x88\x01\x01\x12M\n\x15\x65xperiment_start_time\x18\x03 \x01(\x0b\x32..minknow_api.protocol.FilteringInfo.TimeFilter\x1a>\n\x10PlatformQcFilter\x12\x19\n\x0c\x66low_cell_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0f\n\r_flow_cell_id\x1a\x15\n\x13HardwareCheckFilter\x1al\n\nTimeFilter\x12/\n\x0bstart_range\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12-\n\tend_range\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x14\n\x12_protocol_group_id\"S\n\x17ListProtocolRunsRequest\x12\x38\n\x0b\x66ilter_info\x18\x01 \x01(\x0b\x32#.minknow_api.protocol.FilteringInfo\"+\n\x18ListProtocolRunsResponse\x12\x0f\n\x07run_ids\x18\x01 \x03(\t\"\x1e\n\x1cGetCurrentProtocolRunRequest\"X\n\x1dGetCurrentProtocolRunResponse\x12\x37\n\x08run_info\x18\x03 \x01(\x0b\x32%.minknow_api.protocol.ProtocolRunInfo\" \n\x1eWatchCurrentProtocolRunRequest\"\x17\n\x15GetContextInfoRequest\"\xa1\x01\n\x16GetContextInfoResponse\x12S\n\x0c\x63ontext_info\x18\x01 \x03(\x0b\x32=.minknow_api.protocol.GetContextInfoResponse.ContextInfoEntry\x1a\x32\n\x10\x43ontextInfoEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x9f\x01\n\x15SetContextInfoRequest\x12R\n\x0c\x63ontext_info\x18\x01 \x03(\x0b\x32<.minknow_api.protocol.SetContextInfoRequest.ContextInfoEntry\x1a\x32\n\x10\x43ontextInfoEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x18\n\x16SetContextInfoResponse\"\x1b\n\x19GetProtocolPurposeRequest\"-\n\x1aGetProtocolPurposeResponse\x12\x0f\n\x07purpose\x18\x01 \x01(\t\",\n\x19SetProtocolPurposeRequest\x12\x0f\n\x07purpose\x18\x01 \x01(\t\"\x1c\n\x1aSetProtocolPurposeResponse\"~\n\x18\x41\x64\x64\x45pi2meWorkflowRequest\x12\x14\n\x06run_id\x18\x01 \x01(\tB\x04\x88\xb5\x18\x01\x12L\n\x0f\x65pi2me_workflow\x18\x02 \x01(\x0b\x32-.minknow_api.protocol.Epi2meWorkflowReferenceB\x04\x88\xb5\x18\x01\"\x1b\n\x19\x41\x64\x64\x45pi2meWorkflowResponse\"`\n\x13ProtocolGroupIdInfo\x12\x19\n\x11protocol_group_id\x18\x01 \x01(\t\x12.\n\nstart_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"W\n\x1bListProtocolGroupIdsRequest\x12\x38\n\x0b\x66ilter_info\x18\x01 \x01(\x0b\x32#.minknow_api.protocol.FilteringInfo\"\x86\x01\n\x1cListProtocolGroupIdsResponse\x12\x1a\n\x12protocol_group_ids\x18\x01 \x03(\t\x12J\n\x17protocol_group_ids_info\x18\x02 \x03(\x0b\x32).minknow_api.protocol.ProtocolGroupIdInfo\"\x1b\n\x19\x42\x65ginHardwareCheckRequest\",\n\x1a\x42\x65ginHardwareCheckResponse\x12\x0e\n\x06run_id\x18\x01 \x01(\t\"\x18\n\x16\x42\x65ginPlatformQcRequest\")\n\x17\x42\x65ginPlatformQcResponse\x12\x0e\n\x06run_id\x18\x01 \x01(\t\"\x8c\x05\n\x14\x42\x65ginProtocolRequest\x12\x14\n\nidentifier\x18\x01 \x01(\tH\x00\x12Q\n\ncomponents\x18\x02 \x01(\x0b\x32;.minknow_api.protocol_settings.ProtocolIdentifierComponentsH\x00\x12<\n\tuser_info\x18\x03 \x01(\x0b\x32).minknow_api.protocol.ProtocolRunUserInfo\x12H\n\x15offload_location_info\x18\x05 \x01(\x0b\x32).minknow_api.protocol.OffloadLocationInfo\x12R\n\x19target_run_until_criteria\x18\x06 \x01(\x0b\x32/.minknow_api.acquisition.TargetRunUntilCriteria\x12J\n\x08settings\x18\x04 \x03(\x0b\x32\x38.minknow_api.protocol.BeginProtocolRequest.SettingsEntry\x12P\n\x19\x61nalysis_workflow_request\x18\x08 \x01(\x0b\x32-.minknow_api.protocol.AnalysisWorkflowRequest\x1at\n\rSettingsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12R\n\x05value\x18\x02 \x01(\x0b\x32\x43.minknow_api.protocol_settings.ProtocolSetting.ProtocolSettingValue:\x02\x38\x01\x42\x15\n\x13protocol_identifierJ\x04\x08\x07\x10\x08\"\'\n\x15\x42\x65ginProtocolResponse\x12\x0e\n\x06run_id\x18\x01 \x01(\t\"q\n\x1aSetPlatformQcResultRequest\x12\x17\n\x0fprotocol_run_id\x18\x01 \x01(\t\x12:\n\npqc_result\x18\x02 \x01(\x0b\x32&.minknow_api.protocol.PlatformQcResult\"\x1d\n\x1bSetPlatformQcResultResponse\"s\n\x1dSetHardwareCheckResultRequest\x12\x17\n\x0fprotocol_run_id\x18\x01 \x01(\t\x12\x39\n\x06result\x18\x02 \x01(\x0b\x32).minknow_api.protocol.HardwareCheckResult\" \n\x1eSetHardwareCheckResultResponse\"u\n&AssociatePostProcessingAnalysisRequest\x12\x0e\n\x06run_id\x18\x01 \x01(\t\x12;\n\rstart_request\x18\x02 \x01(\x0b\x32$.minknow_api.basecaller.StartRequest\"5\n\'AssociatePostProcessingAnalysisResponse\x12\n\n\x02id\x18\x01 \x01(\t\"7\n\x1f\x43learProtocolHistoryDataRequest\x12\x14\n\x0cprotocol_ids\x18\x01 \x03(\t\"\"\n ClearProtocolHistoryDataResponse\"\xf2\x01\n\x1eProtocolPhaseManagementRequest\x12[\n\x10set_capabilities\x18\x01 \x01(\x0b\x32\x41.minknow_api.protocol.ProtocolPhaseManagementRequest.Capabilities\x12\x32\n\x05phase\x18\x02 \x01(\x0e\x32#.minknow_api.protocol.ProtocolPhase\x1a?\n\x0c\x43\x61pabilities\x12\x11\n\tcan_pause\x18\x01 \x01(\x08\x12\x1c\n\x14\x63\x61n_trigger_mux_scan\x18\x02 \x01(\x08\"O\n\x1fProtocolPhaseManagementResponse\x12,\n\x06\x61\x63tion\x18\x01 \x01(\x0e\x32\x1c.minknow_api.protocol.Action\"O\n\x18GenerateRunReportRequest\x12\x17\n\x0fprotocol_run_id\x18\x01 \x01(\t\x12\x1a\n\x12include_input_data\x18\x02 \x01(\x08\"\x97\x01\n\x19GenerateRunReportResponse\x12\x17\n\x0fprotocol_run_id\x18\x01 \x01(\t\x12\x13\n\x0breport_data\x18\x02 \x01(\t\x12\x18\n\x10remaining_length\x18\x03 \x01(\x05\x12\x12\n\ninput_data\x18\x04 \x01(\t\x12\x1e\n\x16remaining_input_length\x18\x05 \x01(\x05*\xa9\x06\n\rProtocolState\x12\x14\n\x10PROTOCOL_RUNNING\x10\x00\x12$\n PROTOCOL_WAITING_FOR_TEMPERATURE\x10\x04\x12$\n PROTOCOL_WAITING_FOR_ACQUISITION\x10\x05\x12\x16\n\x12PROTOCOL_COMPLETED\x10\x01\x12\x1c\n\x18PROTOCOL_STOPPED_BY_USER\x10\x02\x12 \n\x1cPROTOCOL_FINISHED_WITH_ERROR\x10\x03\x12\'\n#PROTOCOL_FINISHED_WITH_DEVICE_ERROR\x10\x06\x12.\n*PROTOCOL_FINISHED_UNABLE_TO_SEND_TELEMETRY\x10\x07\x12/\n+PROTOCOL_FINISHED_WITH_FLOW_CELL_DISCONNECT\x10\x08\x12,\n(PROTOCOL_FINISHED_WITH_DEVICE_DISCONNECT\x10\t\x12,\n(PROTOCOL_FINISHED_WITH_ERROR_CALIBRATION\x10\x14\x12\x32\n.PROTOCOL_FINISHED_WITH_ERROR_BASECALL_SETTINGS\x10\x15\x12\x35\n1PROTOCOL_FINISHED_WITH_ERROR_TEMPERATURE_REQUIRED\x10\x16\x12.\n*PROTOCOL_FINISHED_WITH_ERROR_NO_DISK_SPACE\x10\x17\x12\x31\n-PROTOCOL_FINISHED_WITH_ERROR_TEMPERATURE_HIGH\x10\x19\x12\x39\n5PROTOCOL_FINISHED_WITH_ERROR_BASECALLER_COMMUNICATION\x10\x1a\x12\x36\n2PROTOCOL_FINISHED_WITH_NO_FLOWCELL_FOR_ACQUISITION\x10\x1b\x12\x37\n3PROTOCOL_FINISHED_WITH_ERROR_BASECALLER_UNAVAILABLE\x10\x1c*\xea\x01\n\rProtocolPhase\x12\x11\n\rPHASE_UNKNOWN\x10\x00\x12\x16\n\x12PHASE_INITIALISING\x10\x01\x12\x14\n\x10PHASE_SEQUENCING\x10\x02\x12 \n\x1cPHASE_PREPARING_FOR_MUX_SCAN\x10\x03\x12\x12\n\x0ePHASE_MUX_SCAN\x10\x04\x12\x10\n\x0cPHASE_PAUSED\x10\x05\x12\x11\n\rPHASE_PAUSING\x10\x06\x12)\n%PHASE_BAD_TEMPERATURE_AUTOMATIC_PAUSE\x10\x08\x12\x12\n\x0ePHASE_RESUMING\x10\x07*[\n\x06\x41\x63tion\x12\x0f\n\x0b\x41\x43TION_NONE\x10\x00\x12\x10\n\x0c\x41\x43TION_PAUSE\x10\x01\x12\x11\n\rACTION_RESUME\x10\x02\x12\x1b\n\x17\x41\x43TION_TRIGGER_MUX_SCAN\x10\x03\x32\xb7\x19\n\x0fProtocolService\x12k\n\x0estart_protocol\x12*.minknow_api.protocol.StartProtocolRequest\x1a+.minknow_api.protocol.StartProtocolResponse\"\x00\x12h\n\rstop_protocol\x12).minknow_api.protocol.StopProtocolRequest\x1a*.minknow_api.protocol.StopProtocolResponse\"\x00\x12n\n\x0epause_protocol\x12*.minknow_api.protocol.PauseProtocolRequest\x1a+.minknow_api.protocol.PauseProtocolResponse\"\x03\x90\x02\x02\x12q\n\x0fresume_protocol\x12+.minknow_api.protocol.ResumeProtocolRequest\x1a,.minknow_api.protocol.ResumeProtocolResponse\"\x03\x90\x02\x02\x12r\n\x10trigger_mux_scan\x12+.minknow_api.protocol.TriggerMuxScanRequest\x1a,.minknow_api.protocol.TriggerMuxScanResponse\"\x03\x90\x02\x02\x12m\n\x11wait_for_finished\x12,.minknow_api.protocol.WaitForFinishedRequest\x1a%.minknow_api.protocol.ProtocolRunInfo\"\x03\x90\x02\x01\x12\x63\n\x0cget_run_info\x12\'.minknow_api.protocol.GetRunInfoRequest\x1a%.minknow_api.protocol.ProtocolRunInfo\"\x03\x90\x02\x01\x12x\n\x12list_protocol_runs\x12-.minknow_api.protocol.ListProtocolRunsRequest\x1a..minknow_api.protocol.ListProtocolRunsResponse\"\x03\x90\x02\x01\x12z\n\x18get_current_protocol_run\x12\x32.minknow_api.protocol.GetCurrentProtocolRunRequest\x1a%.minknow_api.protocol.ProtocolRunInfo\"\x03\x90\x02\x01\x12\x80\x01\n\x1awatch_current_protocol_run\x12\x34.minknow_api.protocol.WatchCurrentProtocolRunRequest\x1a%.minknow_api.protocol.ProtocolRunInfo\"\x03\x90\x02\x01\x30\x01\x12n\n\x0elist_protocols\x12*.minknow_api.protocol.ListProtocolsRequest\x1a+.minknow_api.protocol.ListProtocolsResponse\"\x03\x90\x02\x02\x12r\n\x10get_context_info\x12+.minknow_api.protocol.GetContextInfoRequest\x1a,.minknow_api.protocol.GetContextInfoResponse\"\x03\x90\x02\x01\x12r\n\x10set_context_info\x12+.minknow_api.protocol.SetContextInfoRequest\x1a,.minknow_api.protocol.SetContextInfoResponse\"\x03\x90\x02\x02\x12~\n\x14get_protocol_purpose\x12/.minknow_api.protocol.GetProtocolPurposeRequest\x1a\x30.minknow_api.protocol.GetProtocolPurposeResponse\"\x03\x90\x02\x01\x12~\n\x14set_protocol_purpose\x12/.minknow_api.protocol.SetProtocolPurposeRequest\x1a\x30.minknow_api.protocol.SetProtocolPurposeResponse\"\x03\x90\x02\x02\x12x\n\x13\x61\x64\x64_epi2me_workflow\x12..minknow_api.protocol.AddEpi2meWorkflowRequest\x1a/.minknow_api.protocol.AddEpi2meWorkflowResponse\"\x00\x12\x85\x01\n\x17list_protocol_group_ids\x12\x31.minknow_api.protocol.ListProtocolGroupIdsRequest\x1a\x32.minknow_api.protocol.ListProtocolGroupIdsResponse\"\x03\x90\x02\x01\x12\x7f\n\x14\x62\x65gin_hardware_check\x12/.minknow_api.protocol.BeginHardwareCheckRequest\x1a\x30.minknow_api.protocol.BeginHardwareCheckResponse\"\x04\x98\xb5\x18\x01\x12v\n\x11\x62\x65gin_platform_qc\x12,.minknow_api.protocol.BeginPlatformQcRequest\x1a-.minknow_api.protocol.BeginPlatformQcResponse\"\x04\x98\xb5\x18\x01\x12o\n\x0e\x62\x65gin_protocol\x12*.minknow_api.protocol.BeginProtocolRequest\x1a+.minknow_api.protocol.BeginProtocolResponse\"\x04\x98\xb5\x18\x01\x12\x82\x01\n\x16set_platform_qc_result\x12\x30.minknow_api.protocol.SetPlatformQcResultRequest\x1a\x31.minknow_api.protocol.SetPlatformQcResultResponse\"\x03\x90\x02\x02\x12\x8b\x01\n\x19set_hardware_check_result\x12\x33.minknow_api.protocol.SetHardwareCheckResultRequest\x1a\x34.minknow_api.protocol.SetHardwareCheckResultResponse\"\x03\x90\x02\x02\x12\xb0\x01\n/associate_post_processing_analysis_for_protocol\x12<.minknow_api.protocol.AssociatePostProcessingAnalysisRequest\x1a=.minknow_api.protocol.AssociatePostProcessingAnalysisResponse\"\x00\x12\x8e\x01\n\x1b\x63lear_protocol_history_data\x12\x35.minknow_api.protocol.ClearProtocolHistoryDataRequest\x1a\x36.minknow_api.protocol.ClearProtocolHistoryDataResponse\"\x00\x12\x8e\x01\n\x19protocol_phase_management\x12\x34.minknow_api.protocol.ProtocolPhaseManagementRequest\x1a\x35.minknow_api.protocol.ProtocolPhaseManagementResponse\"\x00(\x01\x30\x01\x12}\n\x13generate_run_report\x12..minknow_api.protocol.GenerateRunReportRequest\x1a/.minknow_api.protocol.GenerateRunReportResponse\"\x03\x90\x02\x02\x30\x01\x42&\n\x1c\x63om.nanoporetech.minknow_api\xa2\x02\x05MKAPIb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -37,6 +38,8 @@ _globals['_PROTOCOLINFO_TAGSENTRY']._serialized_options = b'8\001' _globals['_WAITFORFINISHEDREQUEST'].fields_by_name['run_id']._options = None _globals['_WAITFORFINISHEDREQUEST'].fields_by_name['run_id']._serialized_options = b'\210\265\030\001' + _globals['_PROTOCOLRUNINFO_SETTINGSENTRY']._options = None + _globals['_PROTOCOLRUNINFO_SETTINGSENTRY']._serialized_options = b'8\001' _globals['_GETCONTEXTINFORESPONSE_CONTEXTINFOENTRY']._options = None _globals['_GETCONTEXTINFORESPONSE_CONTEXTINFOENTRY']._serialized_options = b'8\001' _globals['_SETCONTEXTINFOREQUEST_CONTEXTINFOENTRY']._options = None @@ -83,404 +86,202 @@ _globals['_PROTOCOLSERVICE'].methods_by_name['begin_protocol']._serialized_options = b'\230\265\030\001' _globals['_PROTOCOLSERVICE'].methods_by_name['set_platform_qc_result']._options = None _globals['_PROTOCOLSERVICE'].methods_by_name['set_platform_qc_result']._serialized_options = b'\220\002\002' + _globals['_PROTOCOLSERVICE'].methods_by_name['set_hardware_check_result']._options = None + _globals['_PROTOCOLSERVICE'].methods_by_name['set_hardware_check_result']._serialized_options = b'\220\002\002' _globals['_PROTOCOLSERVICE'].methods_by_name['generate_run_report']._options = None _globals['_PROTOCOLSERVICE'].methods_by_name['generate_run_report']._serialized_options = b'\220\002\002' - _globals['_PROTOCOLSTATE']._serialized_start=8805 - _globals['_PROTOCOLSTATE']._serialized_end=9501 - _globals['_PROTOCOLPHASE']._serialized_start=9504 - _globals['_PROTOCOLPHASE']._serialized_end=9738 - _globals['_ACTION']._serialized_start=9740 - _globals['_ACTION']._serialized_end=9831 - _globals['_BARCODEUSERDATA']._serialized_start=273 - _globals['_BARCODEUSERDATA']._serialized_end=732 - _globals['_BARCODEUSERDATA_PASSENGERINFOENTRY']._serialized_start=531 - _globals['_BARCODEUSERDATA_PASSENGERINFOENTRY']._serialized_end=583 - _globals['_BARCODEUSERDATA_SAMPLETYPE']._serialized_start=586 - _globals['_BARCODEUSERDATA_SAMPLETYPE']._serialized_end=732 - _globals['_KITINFO']._serialized_start=734 - _globals['_KITINFO']._serialized_end=799 - _globals['_PROTOCOLRUNUSERINFO']._serialized_start=802 - _globals['_PROTOCOLRUNUSERINFO']._serialized_end=1178 - _globals['_OFFLOADLOCATIONINFO']._serialized_start=1180 - _globals['_OFFLOADLOCATIONINFO']._serialized_end=1262 - _globals['_STARTPROTOCOLREQUEST']._serialized_start=1265 - _globals['_STARTPROTOCOLREQUEST']._serialized_end=1547 - _globals['_STARTPROTOCOLRESPONSE']._serialized_start=1549 - _globals['_STARTPROTOCOLRESPONSE']._serialized_end=1588 - _globals['_STOPPROTOCOLREQUEST']._serialized_start=1590 - _globals['_STOPPROTOCOLREQUEST']._serialized_end=1689 - _globals['_STOPPROTOCOLRESPONSE']._serialized_start=1691 - _globals['_STOPPROTOCOLRESPONSE']._serialized_end=1713 - _globals['_PAUSEPROTOCOLREQUEST']._serialized_start=1715 - _globals['_PAUSEPROTOCOLREQUEST']._serialized_end=1737 - _globals['_PAUSEPROTOCOLRESPONSE']._serialized_start=1739 - _globals['_PAUSEPROTOCOLRESPONSE']._serialized_end=1762 - _globals['_RESUMEPROTOCOLREQUEST']._serialized_start=1764 - _globals['_RESUMEPROTOCOLREQUEST']._serialized_end=1787 - _globals['_RESUMEPROTOCOLRESPONSE']._serialized_start=1789 - _globals['_RESUMEPROTOCOLRESPONSE']._serialized_end=1813 - _globals['_TRIGGERMUXSCANREQUEST']._serialized_start=1815 - _globals['_TRIGGERMUXSCANREQUEST']._serialized_end=1838 - _globals['_TRIGGERMUXSCANRESPONSE']._serialized_start=1840 - _globals['_TRIGGERMUXSCANRESPONSE']._serialized_end=1864 - _globals['_LISTPROTOCOLSREQUEST']._serialized_start=1866 - _globals['_LISTPROTOCOLSREQUEST']._serialized_end=1910 - _globals['_PROTOCOLINFO']._serialized_start=1913 - _globals['_PROTOCOLINFO']._serialized_end=2424 - _globals['_PROTOCOLINFO_TAGVALUE']._serialized_start=2111 - _globals['_PROTOCOLINFO_TAGVALUE']._serialized_end=2272 - _globals['_PROTOCOLINFO_TAGEXTRACTIONRESULT']._serialized_start=2274 - _globals['_PROTOCOLINFO_TAGEXTRACTIONRESULT']._serialized_end=2334 - _globals['_PROTOCOLINFO_TAGSENTRY']._serialized_start=2336 - _globals['_PROTOCOLINFO_TAGSENTRY']._serialized_end=2424 - _globals['_LISTPROTOCOLSRESPONSE']._serialized_start=2426 - _globals['_LISTPROTOCOLSRESPONSE']._serialized_end=2504 - _globals['_WAITFORFINISHEDREQUEST']._serialized_start=2507 - _globals['_WAITFORFINISHEDREQUEST']._serialized_end=2762 - _globals['_WAITFORFINISHEDREQUEST_NOTIFICATIONSTATE']._serialized_start=2651 - _globals['_WAITFORFINISHEDREQUEST_NOTIFICATIONSTATE']._serialized_end=2762 - _globals['_GETRUNINFOREQUEST']._serialized_start=2764 - _globals['_GETRUNINFOREQUEST']._serialized_end=2799 - _globals['_REQUESTORIGIN']._serialized_start=2802 - _globals['_REQUESTORIGIN']._serialized_end=3223 - _globals['_REQUESTORIGIN_USER']._serialized_start=3106 - _globals['_REQUESTORIGIN_USER']._serialized_end=3130 - _globals['_REQUESTORIGIN_MINKNOW']._serialized_start=3132 - _globals['_REQUESTORIGIN_MINKNOW']._serialized_end=3156 - _globals['_REQUESTORIGIN_PROTOCOLPHASEMANAGEMENT']._serialized_start=3158 - _globals['_REQUESTORIGIN_PROTOCOLPHASEMANAGEMENT']._serialized_end=3183 - _globals['_REQUESTORIGIN_RUNUNTIL']._serialized_start=3185 - _globals['_REQUESTORIGIN_RUNUNTIL']._serialized_end=3213 - _globals['_EPI2MEWORKFLOWREFERENCE']._serialized_start=3225 - _globals['_EPI2MEWORKFLOWREFERENCE']._serialized_end=3275 - _globals['_ASSOCIATEDPOSTPROCESSINGANALYSIS']._serialized_start=3277 - _globals['_ASSOCIATEDPOSTPROCESSINGANALYSIS']._serialized_end=3392 - _globals['_PLATFORMQCRESULT']._serialized_start=3394 - _globals['_PLATFORMQCRESULT']._serialized_end=3476 - _globals['_EXTERNALOFFLOAD']._serialized_start=3478 - _globals['_EXTERNALOFFLOAD']._serialized_end=3516 - _globals['_GETVERSIONINFORESPONSE']._serialized_start=3519 - _globals['_GETVERSIONINFORESPONSE']._serialized_end=4175 - _globals['_GETVERSIONINFORESPONSE_MINKNOWVERSION']._serialized_start=3946 - _globals['_GETVERSIONINFORESPONSE_MINKNOWVERSION']._serialized_end=4021 - _globals['_GETVERSIONINFORESPONSE_DISTRIBUTIONSTATUS']._serialized_start=4023 - _globals['_GETVERSIONINFORESPONSE_DISTRIBUTIONSTATUS']._serialized_end=4096 - _globals['_GETVERSIONINFORESPONSE_INSTALLATIONTYPE']._serialized_start=4098 - _globals['_GETVERSIONINFORESPONSE_INSTALLATIONTYPE']._serialized_end=4175 - _globals['_PROTOCOLRUNINFO']._serialized_start=4178 - _globals['_PROTOCOLRUNINFO']._serialized_end=5381 - _globals['_FILTERINGINFO']._serialized_start=5384 - _globals['_FILTERINGINFO']._serialized_end=5780 - _globals['_FILTERINGINFO_PLATFORMQCFILTER']._serialized_start=5586 - _globals['_FILTERINGINFO_PLATFORMQCFILTER']._serialized_end=5648 - _globals['_FILTERINGINFO_TIMEFILTER']._serialized_start=5650 - _globals['_FILTERINGINFO_TIMEFILTER']._serialized_end=5758 - _globals['_LISTPROTOCOLRUNSREQUEST']._serialized_start=5782 - _globals['_LISTPROTOCOLRUNSREQUEST']._serialized_end=5865 - _globals['_LISTPROTOCOLRUNSRESPONSE']._serialized_start=5867 - _globals['_LISTPROTOCOLRUNSRESPONSE']._serialized_end=5910 - _globals['_GETCURRENTPROTOCOLRUNREQUEST']._serialized_start=5912 - _globals['_GETCURRENTPROTOCOLRUNREQUEST']._serialized_end=5942 - _globals['_GETCURRENTPROTOCOLRUNRESPONSE']._serialized_start=5944 - _globals['_GETCURRENTPROTOCOLRUNRESPONSE']._serialized_end=6032 - _globals['_WATCHCURRENTPROTOCOLRUNREQUEST']._serialized_start=6034 - _globals['_WATCHCURRENTPROTOCOLRUNREQUEST']._serialized_end=6066 - _globals['_GETCONTEXTINFOREQUEST']._serialized_start=6068 - _globals['_GETCONTEXTINFOREQUEST']._serialized_end=6091 - _globals['_GETCONTEXTINFORESPONSE']._serialized_start=6094 - _globals['_GETCONTEXTINFORESPONSE']._serialized_end=6255 - _globals['_GETCONTEXTINFORESPONSE_CONTEXTINFOENTRY']._serialized_start=6205 - _globals['_GETCONTEXTINFORESPONSE_CONTEXTINFOENTRY']._serialized_end=6255 - _globals['_SETCONTEXTINFOREQUEST']._serialized_start=6258 - _globals['_SETCONTEXTINFOREQUEST']._serialized_end=6417 - _globals['_SETCONTEXTINFOREQUEST_CONTEXTINFOENTRY']._serialized_start=6205 - _globals['_SETCONTEXTINFOREQUEST_CONTEXTINFOENTRY']._serialized_end=6255 - _globals['_SETCONTEXTINFORESPONSE']._serialized_start=6419 - _globals['_SETCONTEXTINFORESPONSE']._serialized_end=6443 - _globals['_GETPROTOCOLPURPOSEREQUEST']._serialized_start=6445 - _globals['_GETPROTOCOLPURPOSEREQUEST']._serialized_end=6472 - _globals['_GETPROTOCOLPURPOSERESPONSE']._serialized_start=6474 - _globals['_GETPROTOCOLPURPOSERESPONSE']._serialized_end=6519 - _globals['_SETPROTOCOLPURPOSEREQUEST']._serialized_start=6521 - _globals['_SETPROTOCOLPURPOSEREQUEST']._serialized_end=6565 - _globals['_SETPROTOCOLPURPOSERESPONSE']._serialized_start=6567 - _globals['_SETPROTOCOLPURPOSERESPONSE']._serialized_end=6595 - _globals['_ADDEPI2MEWORKFLOWREQUEST']._serialized_start=6597 - _globals['_ADDEPI2MEWORKFLOWREQUEST']._serialized_end=6723 - _globals['_ADDEPI2MEWORKFLOWRESPONSE']._serialized_start=6725 - _globals['_ADDEPI2MEWORKFLOWRESPONSE']._serialized_end=6752 - _globals['_PROTOCOLGROUPIDINFO']._serialized_start=6754 - _globals['_PROTOCOLGROUPIDINFO']._serialized_end=6850 - _globals['_LISTPROTOCOLGROUPIDSREQUEST']._serialized_start=6852 - _globals['_LISTPROTOCOLGROUPIDSREQUEST']._serialized_end=6939 - _globals['_LISTPROTOCOLGROUPIDSRESPONSE']._serialized_start=6942 - _globals['_LISTPROTOCOLGROUPIDSRESPONSE']._serialized_end=7076 - _globals['_BEGINHARDWARECHECKREQUEST']._serialized_start=7078 - _globals['_BEGINHARDWARECHECKREQUEST']._serialized_end=7105 - _globals['_BEGINHARDWARECHECKRESPONSE']._serialized_start=7107 - _globals['_BEGINHARDWARECHECKRESPONSE']._serialized_end=7151 - _globals['_BEGINPLATFORMQCREQUEST']._serialized_start=7153 - _globals['_BEGINPLATFORMQCREQUEST']._serialized_end=7177 - _globals['_BEGINPLATFORMQCRESPONSE']._serialized_start=7179 - _globals['_BEGINPLATFORMQCRESPONSE']._serialized_end=7220 - _globals['_BEGINPROTOCOLREQUEST']._serialized_start=7223 - _globals['_BEGINPROTOCOLREQUEST']._serialized_end=7787 - _globals['_BEGINPROTOCOLREQUEST_SETTINGSENTRY']._serialized_start=7648 - _globals['_BEGINPROTOCOLREQUEST_SETTINGSENTRY']._serialized_end=7764 - _globals['_BEGINPROTOCOLRESPONSE']._serialized_start=7789 - _globals['_BEGINPROTOCOLRESPONSE']._serialized_end=7828 - _globals['_SETPLATFORMQCRESULTREQUEST']._serialized_start=7830 - _globals['_SETPLATFORMQCRESULTREQUEST']._serialized_end=7943 - _globals['_SETPLATFORMQCRESULTRESPONSE']._serialized_start=7945 - _globals['_SETPLATFORMQCRESULTRESPONSE']._serialized_end=7974 - _globals['_ASSOCIATEPOSTPROCESSINGANALYSISREQUEST']._serialized_start=7976 - _globals['_ASSOCIATEPOSTPROCESSINGANALYSISREQUEST']._serialized_end=8093 - _globals['_ASSOCIATEPOSTPROCESSINGANALYSISRESPONSE']._serialized_start=8095 - _globals['_ASSOCIATEPOSTPROCESSINGANALYSISRESPONSE']._serialized_end=8148 - _globals['_CLEARPROTOCOLHISTORYDATAREQUEST']._serialized_start=8150 - _globals['_CLEARPROTOCOLHISTORYDATAREQUEST']._serialized_end=8205 - _globals['_CLEARPROTOCOLHISTORYDATARESPONSE']._serialized_start=8207 - _globals['_CLEARPROTOCOLHISTORYDATARESPONSE']._serialized_end=8241 - _globals['_PROTOCOLPHASEMANAGEMENTREQUEST']._serialized_start=8244 - _globals['_PROTOCOLPHASEMANAGEMENTREQUEST']._serialized_end=8486 - _globals['_PROTOCOLPHASEMANAGEMENTREQUEST_CAPABILITIES']._serialized_start=8423 - _globals['_PROTOCOLPHASEMANAGEMENTREQUEST_CAPABILITIES']._serialized_end=8486 - _globals['_PROTOCOLPHASEMANAGEMENTRESPONSE']._serialized_start=8488 - _globals['_PROTOCOLPHASEMANAGEMENTRESPONSE']._serialized_end=8567 - _globals['_GENERATERUNREPORTREQUEST']._serialized_start=8569 - _globals['_GENERATERUNREPORTREQUEST']._serialized_end=8648 - _globals['_GENERATERUNREPORTRESPONSE']._serialized_start=8651 - _globals['_GENERATERUNREPORTRESPONSE']._serialized_end=8802 - _globals['_PROTOCOLSERVICE']._serialized_start=9834 - _globals['_PROTOCOLSERVICE']._serialized_end=12947 -PlatformQcResult.__doc__ = """Attributes: - flow_cell_id: - The flow cell id that the pqc was performed for - passed: - Whether the flow cell passed the platform qc check - total_pore_count: - Total number of pores that were found on the flow cell, across - all muxes. -""" -ProtocolRunUserInfo.__doc__ = """Attributes: - protocol_group_id: - The group which the experiment should be held in. note: This - value could be unset if a user did not specify a group_id when - starting the protocol. - sample_id: - sample_id created by the user - barcode_user_info: - User supplied info for barcodes - user_specified_flow_cell_id: - user_specified_flow_cell_id created by the user - user_specified_product_code: - user_specified_product_code created by the user - kit_info: - Kit information the user requested -""" -BeginProtocolResponse.__doc__ = """Attributes: - run_id: - UUID generated when the protocol is started, to uniquely - represent this protocol instance -""" -BeginProtocolRequest.__doc__ = """Attributes: - identifier: - Specify the protocol with a string containing all the - protocol's identifying components, eg: - "sequencing/sequencing_MIN106_DNA:FLO-MIN106:SQK-RPB004" - components: - Specify the protocol providing the identifying components - individually, all components are optional. Exactly one - protocol should match the given components otherwise and error - will be returned - user_info: - User info options for the protocol - offload_location_info: - Information about data offload locations to use to store data - Since 5.0. - target_run_until_criteria: - Initial Target Run-Until Criteria to use when starting an - acquisition for this protocol. These can be updated during the - acquisition using the Run-Until API. Since 5.3 - settings: - Any settings changed from the defaults specified in the - protocol's .toml file. -""" -AssociatePostProcessingAnalysisResponse.__doc__ = """Attributes: - id: - Id of the basecaller.proto post processing task that was - triggered, if the post processing analysis was executed - immediately (protocol was finished). -""" -ProtocolPhaseManagementRequest.__doc__ = """Attributes: - set_capabilities: - Update the set of capabilities (messages that will be - responded to by the protocol). - phase: - Update the protocol phase. Leave empty (ie: PHASE_UNKNOWN) to - keep the previous phase. -""" -RequestOrigin.MinKNOW.__doc__ = """A request from minknow will usually come in the form of something -ending naturally, or an error occurring where minknow has to take -action - -Attributes: - cause: - Optional further details on the cause of the request -""" -SetPlatformQcResultRequest.__doc__ = """Attributes: - protocol_run_id: - The protocol_run_id that was given when the pqc run was - started -""" -BeginPlatformQcResponse.__doc__ = """Attributes: - run_id: - UUID generated when the protocol is started, to uniquely - represent this protocol instance -""" -KitInfo.__doc__ = """Attributes: - sequencing_kit: - The sequencing kit used to select the protocol e.g. "SQK- - LSK108" - barcode_expansion_kits: - The expansion barcoding kits that the protocol supports e.g. - "EXP-NBD104" -""" -RequestOrigin.User.__doc__ = """'User' based changes will typically come from calls made by the UI -such as 'stop_protocol' - -Attributes: - identity: - If available then provide any identity information MinKNOW - has about the client that made the RPC request -""" -ProtocolPhaseManagementRequest.Capabilities.__doc__ = """Attributes: - can_pause: - Indicate that the protocol will respond to pause and resume - requests. - can_trigger_mux_scan: - Indicate that the protocol will respond to mux scan requests. -""" -OffloadLocationInfo.__doc__ = """Attributes: - offload_location_ids: - Data offload locations to use to store protocol data, - specified using their `location_id`. Valid `location_id`s can - be retrieved using - mooneye.offload_manager.list_offload_locations() If any - `offload_location_ids` are specified, then: - Data is not - stored locally - `offload_location_path` must NOT be set (or - must be set to an empty value) - The - `offload_location_ids` indicate that data should be offloaded, - rather than stored locally; the `offload_location_path` - is used to set a local storage location. - If both are - set, an error is returned This requires a running instance of - Mooneye Since 5.0. - offload_location_path: - Local, e.g., internal / external drive, paths to where the - protocol output will be stored. This setting overrides the - default output locations (as set through configuration files - and/or the instance service). If `offload_location_path` is - set to a non-empty value, then: - `offload_location_ids` - MUST be empty - The `offload_location_ids` indicate that - data should be offloaded, rather than stored locally; - the `offload_location_path` is used to set a local storage - location. - If both are set, an error is returned This - does not require a running instance of Mooneye Since 5.0 -""" -GenerateRunReportResponse.__doc__ = """Attributes: - protocol_run_id: - Protocol ID the run report is for. - report_data: - A section of the run report data (note the api to return this - data may stream back several sections). - remaining_length: - How many further characters of data remain after this message - (excluding of this message). - input_data: - If include_input_data was set, this will be a section of that - data (note the api to return this data may stream back several - sections). - remaining_input_length: - If include_input_data was set, how many further characters of - input data remain after this message (excluding of this - message). -""" -BarcodeUserData.__doc__ = """Attributes: - barcode_name: - Barcode name the user data applies to, eg: "barcode02". Acts - as the external barcode name `barcode_name_internal` is also - set for dual barcoding Acts as the rapid barcode name in - lampore barcoding if `lamp_barcode_id` is set - barcode_name_internal: - The internal barcode name if using dual barcode - lamp_barcode_id: - Lamp barcode id the user data applies to, eg: "FIP04" - alias: - User defined string alias for the barcode. - type: - Sample type grouping for the barcode. - passenger_info: - Extra context per barcode -""" -RequestOrigin.ProtocolPhaseManagement.__doc__ = """The protocol script/bream is mainly responsible for making changes via -protocol_phase_management""" -StopProtocolRequest.__doc__ = """Attributes: - data_action_on_stop: - Specify how any running acquisition should be handled when - stopping the protocol. Protocol state will enter - PROTOCOL_WAITING_FOR_ACQUISITION whilst any running - acquisition is finished. If a script ends on its own any - analysis that was started is stopped, and it is allowed to - catchup. If the caller wants to end catchup they can call - stop_protocol to end catchup. Since 1.15 -""" -FilteringInfo.__doc__ = """Attributes: - pqc_filter: - Filter by runs that have platform QC results Just - initialising this message is enough to filter out runs with - platform QC results from ones that don't Further filtering on - the platform QC results can be applied by using the fields - within PlatformQcFilter - protocol_group_id: - Filter runs by a specific protocol_group_id -""" -GenerateRunReportRequest.__doc__ = """Attributes: - protocol_run_id: - The protocol_run_id to generate a report for. - include_input_data: - Optionally return the input data used to generate the report. - This input data is represented as the data seen in - report_data.proto -""" -GetRunInfoRequest.__doc__ = """Attributes: - run_id: - The protocol run to get information about. -""" -StartProtocolRequest.__doc__ = """Attributes: - identifier: - The identifier of the protocol, as provided by - list_protocols(). - args: - The arguments to pass to the protocol. - user_info: - User input describing the protocol. - offload_location_info: - Information about data offload locations to use to store data - Since 5.0. - target_run_until_criteria: - Initial Target Run-Until Criteria to use when starting an - acquisition for this protocol. These can be updated during the - acquisition using the Run-Until API. Since 5.3 -""" -ProtocolPhaseManagementResponse.__doc__ = """Attributes: - action: - Requests that the protocol changes phase. The client should - never receive an action type (other than possibly ACTION_NONE) - that it has not explicitly opted into via the - `ProtocolPhaseManagementRequest.set_capabilities` field. If - this is set to ACTION_NONE, the message should be ignored - (this is for future compatibility). -""" + _globals['_PROTOCOLSTATE']._serialized_start=10718 + _globals['_PROTOCOLSTATE']._serialized_end=11527 + _globals['_PROTOCOLPHASE']._serialized_start=11530 + _globals['_PROTOCOLPHASE']._serialized_end=11764 + _globals['_ACTION']._serialized_start=11766 + _globals['_ACTION']._serialized_end=11857 + _globals['_BARCODEUSERDATA']._serialized_start=311 + _globals['_BARCODEUSERDATA']._serialized_end=770 + _globals['_BARCODEUSERDATA_PASSENGERINFOENTRY']._serialized_start=569 + _globals['_BARCODEUSERDATA_PASSENGERINFOENTRY']._serialized_end=621 + _globals['_BARCODEUSERDATA_SAMPLETYPE']._serialized_start=624 + _globals['_BARCODEUSERDATA_SAMPLETYPE']._serialized_end=770 + _globals['_KITINFO']._serialized_start=772 + _globals['_KITINFO']._serialized_end=837 + _globals['_PROTOCOLRUNUSERINFO']._serialized_start=840 + _globals['_PROTOCOLRUNUSERINFO']._serialized_end=1216 + _globals['_OFFLOADLOCATIONINFO']._serialized_start=1218 + _globals['_OFFLOADLOCATIONINFO']._serialized_end=1300 + _globals['_ANALYSISWORKFLOWREQUEST']._serialized_start=1303 + _globals['_ANALYSISWORKFLOWREQUEST']._serialized_end=1489 + _globals['_ANALYSISWORKFLOWREQUEST_WHEN']._serialized_start=1465 + _globals['_ANALYSISWORKFLOWREQUEST_WHEN']._serialized_end=1489 + _globals['_STARTPROTOCOLREQUEST']._serialized_start=1492 + _globals['_STARTPROTOCOLREQUEST']._serialized_end=1862 + _globals['_STARTPROTOCOLRESPONSE']._serialized_start=1864 + _globals['_STARTPROTOCOLRESPONSE']._serialized_end=1903 + _globals['_STOPPROTOCOLREQUEST']._serialized_start=1905 + _globals['_STOPPROTOCOLREQUEST']._serialized_end=2004 + _globals['_STOPPROTOCOLRESPONSE']._serialized_start=2006 + _globals['_STOPPROTOCOLRESPONSE']._serialized_end=2028 + _globals['_PAUSEPROTOCOLREQUEST']._serialized_start=2030 + _globals['_PAUSEPROTOCOLREQUEST']._serialized_end=2052 + _globals['_PAUSEPROTOCOLRESPONSE']._serialized_start=2054 + _globals['_PAUSEPROTOCOLRESPONSE']._serialized_end=2077 + _globals['_RESUMEPROTOCOLREQUEST']._serialized_start=2079 + _globals['_RESUMEPROTOCOLREQUEST']._serialized_end=2102 + _globals['_RESUMEPROTOCOLRESPONSE']._serialized_start=2104 + _globals['_RESUMEPROTOCOLRESPONSE']._serialized_end=2128 + _globals['_TRIGGERMUXSCANREQUEST']._serialized_start=2130 + _globals['_TRIGGERMUXSCANREQUEST']._serialized_end=2153 + _globals['_TRIGGERMUXSCANRESPONSE']._serialized_start=2155 + _globals['_TRIGGERMUXSCANRESPONSE']._serialized_end=2179 + _globals['_LISTPROTOCOLSREQUEST']._serialized_start=2181 + _globals['_LISTPROTOCOLSREQUEST']._serialized_end=2225 + _globals['_PROTOCOLINFO']._serialized_start=2228 + _globals['_PROTOCOLINFO']._serialized_end=2739 + _globals['_PROTOCOLINFO_TAGVALUE']._serialized_start=2426 + _globals['_PROTOCOLINFO_TAGVALUE']._serialized_end=2587 + _globals['_PROTOCOLINFO_TAGEXTRACTIONRESULT']._serialized_start=2589 + _globals['_PROTOCOLINFO_TAGEXTRACTIONRESULT']._serialized_end=2649 + _globals['_PROTOCOLINFO_TAGSENTRY']._serialized_start=2651 + _globals['_PROTOCOLINFO_TAGSENTRY']._serialized_end=2739 + _globals['_LISTPROTOCOLSRESPONSE']._serialized_start=2741 + _globals['_LISTPROTOCOLSRESPONSE']._serialized_end=2819 + _globals['_WAITFORFINISHEDREQUEST']._serialized_start=2822 + _globals['_WAITFORFINISHEDREQUEST']._serialized_end=3077 + _globals['_WAITFORFINISHEDREQUEST_NOTIFICATIONSTATE']._serialized_start=2966 + _globals['_WAITFORFINISHEDREQUEST_NOTIFICATIONSTATE']._serialized_end=3077 + _globals['_GETRUNINFOREQUEST']._serialized_start=3079 + _globals['_GETRUNINFOREQUEST']._serialized_end=3114 + _globals['_REQUESTORIGIN']._serialized_start=3117 + _globals['_REQUESTORIGIN']._serialized_end=3538 + _globals['_REQUESTORIGIN_USER']._serialized_start=3421 + _globals['_REQUESTORIGIN_USER']._serialized_end=3445 + _globals['_REQUESTORIGIN_MINKNOW']._serialized_start=3447 + _globals['_REQUESTORIGIN_MINKNOW']._serialized_end=3471 + _globals['_REQUESTORIGIN_PROTOCOLPHASEMANAGEMENT']._serialized_start=3473 + _globals['_REQUESTORIGIN_PROTOCOLPHASEMANAGEMENT']._serialized_end=3498 + _globals['_REQUESTORIGIN_RUNUNTIL']._serialized_start=3500 + _globals['_REQUESTORIGIN_RUNUNTIL']._serialized_end=3528 + _globals['_EPI2MEWORKFLOWREFERENCE']._serialized_start=3540 + _globals['_EPI2MEWORKFLOWREFERENCE']._serialized_end=3590 + _globals['_ASSOCIATEDPOSTPROCESSINGANALYSIS']._serialized_start=3593 + _globals['_ASSOCIATEDPOSTPROCESSINGANALYSIS']._serialized_end=3840 + _globals['_ASSOCIATEDPOSTPROCESSINGANALYSIS_STATE']._serialized_start=3787 + _globals['_ASSOCIATEDPOSTPROCESSINGANALYSIS_STATE']._serialized_end=3840 + _globals['_PLATFORMQCRESULT']._serialized_start=3842 + _globals['_PLATFORMQCRESULT']._serialized_end=3924 + _globals['_HARDWARECHECKRESULT']._serialized_start=3927 + _globals['_HARDWARECHECKRESULT']._serialized_end=4267 + _globals['_HARDWARECHECKRESULT_HARDWARECHECKSTATUS']._serialized_start=4123 + _globals['_HARDWARECHECKRESULT_HARDWARECHECKSTATUS']._serialized_end=4194 + _globals['_HARDWARECHECKRESULT_HARDWARECHECKFAILUREREASON']._serialized_start=4196 + _globals['_HARDWARECHECKRESULT_HARDWARECHECKFAILUREREASON']._serialized_end=4267 + _globals['_EXTERNALOFFLOAD']._serialized_start=4269 + _globals['_EXTERNALOFFLOAD']._serialized_end=4307 + _globals['_GETVERSIONINFORESPONSE']._serialized_start=4310 + _globals['_GETVERSIONINFORESPONSE']._serialized_end=4988 + _globals['_GETVERSIONINFORESPONSE_MINKNOWVERSION']._serialized_start=4747 + _globals['_GETVERSIONINFORESPONSE_MINKNOWVERSION']._serialized_end=4822 + _globals['_GETVERSIONINFORESPONSE_DISTRIBUTIONSTATUS']._serialized_start=4824 + _globals['_GETVERSIONINFORESPONSE_DISTRIBUTIONSTATUS']._serialized_end=4897 + _globals['_GETVERSIONINFORESPONSE_INSTALLATIONTYPE']._serialized_start=4899 + _globals['_GETVERSIONINFORESPONSE_INSTALLATIONTYPE']._serialized_end=4976 + _globals['_ANALYSISWORKFLOWINFO']._serialized_start=4991 + _globals['_ANALYSISWORKFLOWINFO']._serialized_end=5404 + _globals['_ANALYSISWORKFLOWINFO_STATUS']._serialized_start=5277 + _globals['_ANALYSISWORKFLOWINFO_STATUS']._serialized_end=5404 + _globals['_PROTOCOLRUNINFO']._serialized_start=5407 + _globals['_PROTOCOLRUNINFO']._serialized_end=6944 + _globals['_PROTOCOLRUNINFO_SETTINGSENTRY']._serialized_start=6803 + _globals['_PROTOCOLRUNINFO_SETTINGSENTRY']._serialized_end=6919 + _globals['_FILTERINGINFO']._serialized_start=6947 + _globals['_FILTERINGINFO']._serialized_end=7454 + _globals['_FILTERINGINFO_PLATFORMQCFILTER']._serialized_start=7237 + _globals['_FILTERINGINFO_PLATFORMQCFILTER']._serialized_end=7299 + _globals['_FILTERINGINFO_HARDWARECHECKFILTER']._serialized_start=7301 + _globals['_FILTERINGINFO_HARDWARECHECKFILTER']._serialized_end=7322 + _globals['_FILTERINGINFO_TIMEFILTER']._serialized_start=7324 + _globals['_FILTERINGINFO_TIMEFILTER']._serialized_end=7432 + _globals['_LISTPROTOCOLRUNSREQUEST']._serialized_start=7456 + _globals['_LISTPROTOCOLRUNSREQUEST']._serialized_end=7539 + _globals['_LISTPROTOCOLRUNSRESPONSE']._serialized_start=7541 + _globals['_LISTPROTOCOLRUNSRESPONSE']._serialized_end=7584 + _globals['_GETCURRENTPROTOCOLRUNREQUEST']._serialized_start=7586 + _globals['_GETCURRENTPROTOCOLRUNREQUEST']._serialized_end=7616 + _globals['_GETCURRENTPROTOCOLRUNRESPONSE']._serialized_start=7618 + _globals['_GETCURRENTPROTOCOLRUNRESPONSE']._serialized_end=7706 + _globals['_WATCHCURRENTPROTOCOLRUNREQUEST']._serialized_start=7708 + _globals['_WATCHCURRENTPROTOCOLRUNREQUEST']._serialized_end=7740 + _globals['_GETCONTEXTINFOREQUEST']._serialized_start=7742 + _globals['_GETCONTEXTINFOREQUEST']._serialized_end=7765 + _globals['_GETCONTEXTINFORESPONSE']._serialized_start=7768 + _globals['_GETCONTEXTINFORESPONSE']._serialized_end=7929 + _globals['_GETCONTEXTINFORESPONSE_CONTEXTINFOENTRY']._serialized_start=7879 + _globals['_GETCONTEXTINFORESPONSE_CONTEXTINFOENTRY']._serialized_end=7929 + _globals['_SETCONTEXTINFOREQUEST']._serialized_start=7932 + _globals['_SETCONTEXTINFOREQUEST']._serialized_end=8091 + _globals['_SETCONTEXTINFOREQUEST_CONTEXTINFOENTRY']._serialized_start=7879 + _globals['_SETCONTEXTINFOREQUEST_CONTEXTINFOENTRY']._serialized_end=7929 + _globals['_SETCONTEXTINFORESPONSE']._serialized_start=8093 + _globals['_SETCONTEXTINFORESPONSE']._serialized_end=8117 + _globals['_GETPROTOCOLPURPOSEREQUEST']._serialized_start=8119 + _globals['_GETPROTOCOLPURPOSEREQUEST']._serialized_end=8146 + _globals['_GETPROTOCOLPURPOSERESPONSE']._serialized_start=8148 + _globals['_GETPROTOCOLPURPOSERESPONSE']._serialized_end=8193 + _globals['_SETPROTOCOLPURPOSEREQUEST']._serialized_start=8195 + _globals['_SETPROTOCOLPURPOSEREQUEST']._serialized_end=8239 + _globals['_SETPROTOCOLPURPOSERESPONSE']._serialized_start=8241 + _globals['_SETPROTOCOLPURPOSERESPONSE']._serialized_end=8269 + _globals['_ADDEPI2MEWORKFLOWREQUEST']._serialized_start=8271 + _globals['_ADDEPI2MEWORKFLOWREQUEST']._serialized_end=8397 + _globals['_ADDEPI2MEWORKFLOWRESPONSE']._serialized_start=8399 + _globals['_ADDEPI2MEWORKFLOWRESPONSE']._serialized_end=8426 + _globals['_PROTOCOLGROUPIDINFO']._serialized_start=8428 + _globals['_PROTOCOLGROUPIDINFO']._serialized_end=8524 + _globals['_LISTPROTOCOLGROUPIDSREQUEST']._serialized_start=8526 + _globals['_LISTPROTOCOLGROUPIDSREQUEST']._serialized_end=8613 + _globals['_LISTPROTOCOLGROUPIDSRESPONSE']._serialized_start=8616 + _globals['_LISTPROTOCOLGROUPIDSRESPONSE']._serialized_end=8750 + _globals['_BEGINHARDWARECHECKREQUEST']._serialized_start=8752 + _globals['_BEGINHARDWARECHECKREQUEST']._serialized_end=8779 + _globals['_BEGINHARDWARECHECKRESPONSE']._serialized_start=8781 + _globals['_BEGINHARDWARECHECKRESPONSE']._serialized_end=8825 + _globals['_BEGINPLATFORMQCREQUEST']._serialized_start=8827 + _globals['_BEGINPLATFORMQCREQUEST']._serialized_end=8851 + _globals['_BEGINPLATFORMQCRESPONSE']._serialized_start=8853 + _globals['_BEGINPLATFORMQCRESPONSE']._serialized_end=8894 + _globals['_BEGINPROTOCOLREQUEST']._serialized_start=8897 + _globals['_BEGINPROTOCOLREQUEST']._serialized_end=9549 + _globals['_BEGINPROTOCOLREQUEST_SETTINGSENTRY']._serialized_start=6803 + _globals['_BEGINPROTOCOLREQUEST_SETTINGSENTRY']._serialized_end=6919 + _globals['_BEGINPROTOCOLRESPONSE']._serialized_start=9551 + _globals['_BEGINPROTOCOLRESPONSE']._serialized_end=9590 + _globals['_SETPLATFORMQCRESULTREQUEST']._serialized_start=9592 + _globals['_SETPLATFORMQCRESULTREQUEST']._serialized_end=9705 + _globals['_SETPLATFORMQCRESULTRESPONSE']._serialized_start=9707 + _globals['_SETPLATFORMQCRESULTRESPONSE']._serialized_end=9736 + _globals['_SETHARDWARECHECKRESULTREQUEST']._serialized_start=9738 + _globals['_SETHARDWARECHECKRESULTREQUEST']._serialized_end=9853 + _globals['_SETHARDWARECHECKRESULTRESPONSE']._serialized_start=9855 + _globals['_SETHARDWARECHECKRESULTRESPONSE']._serialized_end=9887 + _globals['_ASSOCIATEPOSTPROCESSINGANALYSISREQUEST']._serialized_start=9889 + _globals['_ASSOCIATEPOSTPROCESSINGANALYSISREQUEST']._serialized_end=10006 + _globals['_ASSOCIATEPOSTPROCESSINGANALYSISRESPONSE']._serialized_start=10008 + _globals['_ASSOCIATEPOSTPROCESSINGANALYSISRESPONSE']._serialized_end=10061 + _globals['_CLEARPROTOCOLHISTORYDATAREQUEST']._serialized_start=10063 + _globals['_CLEARPROTOCOLHISTORYDATAREQUEST']._serialized_end=10118 + _globals['_CLEARPROTOCOLHISTORYDATARESPONSE']._serialized_start=10120 + _globals['_CLEARPROTOCOLHISTORYDATARESPONSE']._serialized_end=10154 + _globals['_PROTOCOLPHASEMANAGEMENTREQUEST']._serialized_start=10157 + _globals['_PROTOCOLPHASEMANAGEMENTREQUEST']._serialized_end=10399 + _globals['_PROTOCOLPHASEMANAGEMENTREQUEST_CAPABILITIES']._serialized_start=10336 + _globals['_PROTOCOLPHASEMANAGEMENTREQUEST_CAPABILITIES']._serialized_end=10399 + _globals['_PROTOCOLPHASEMANAGEMENTRESPONSE']._serialized_start=10401 + _globals['_PROTOCOLPHASEMANAGEMENTRESPONSE']._serialized_end=10480 + _globals['_GENERATERUNREPORTREQUEST']._serialized_start=10482 + _globals['_GENERATERUNREPORTREQUEST']._serialized_end=10561 + _globals['_GENERATERUNREPORTRESPONSE']._serialized_start=10564 + _globals['_GENERATERUNREPORTRESPONSE']._serialized_end=10715 + _globals['_PROTOCOLSERVICE']._serialized_start=11860 + _globals['_PROTOCOLSERVICE']._serialized_end=15115 ProtocolRunInfo.__doc__ = """Attributes: run_id: The unique identifier assigned to this run. This is @@ -491,6 +292,10 @@ The identifier of the protocol, as passed to start_protocol(). args: The arguments passed to start_protocol(). + settings: + Any settings changed from the defaults specified in the + protocol's .toml file. These settings were passed as part of + begin_protocol() output_path: Output location for protocol data (eg. reads). If data offload is being used, this is the offload source directory. @@ -560,48 +365,108 @@ Meta-info about the protocol Since 3.8 associated_post_processing_analysis: List of scheduled post processing analysis tasks + analysis_workflow: + The analysis workflow (if any) associated with the protocol pqc_result: Platform QC result. Set by bream by calling - `set_platform_qc_result()`. Possible to not be set (e.g. not - a pqc run) + `set_platform_qc_result()`. Possible to not be set (e.g. not a + pqc run) + hardware_check_result: + Hardware check result. Set by bream calling + `set_hardware_check_result()`. Not set if not a hardware check + protocol external_offload: Contains information about external data offloads associated with this protocol Since 5.0 software_versions: For storing version numbers to output to run report Since 5.6 """ -AssociatePostProcessingAnalysisRequest.__doc__ = """Attributes: +BeginPlatformQcResponse.__doc__ = """Attributes: run_id: - Protocol id to associate analysis with: + UUID generated when the protocol is started, to uniquely + represent this protocol instance """ -Epi2meWorkflowReference.__doc__ = """Attributes: - id: - The unique identifier for a workflow ( unique to a specific - instance of epi2me ) - url: - URL that links to the workflow report. Syntax for a local - workflow: file:// otherwise: http(s):// +ListProtocolGroupIdsResponse.__doc__ = """Attributes: + protocol_group_ids: + A list of protocol group ids used in any protocol started on + this instance of minknow. deprecated and replaced by string + protocol_group_id in message ProtocolGroupIdInfo string data + is guaranteed to be ordered by most recent start time, since + 5.6 + protocol_group_ids_info: + A list of the most recent start time for each protocol group + id on this instance of minknow. guaranteed to be ordered by + most recent start time since 5.6 """ -WaitForFinishedRequest.__doc__ = """Attributes: - run_id: - Only consider a specific protocol run. - state: - Control what to wait for. Specifying - NOTIFY_BEFORE_TERMINATION allows a caller to be notified the - script will be ended _soon_, and do final work to end cleanly. - Since 1.11 - timeout: - Timeout to wait for finished, if the timeout expires before - the protocol is complete (in the state requested) then the - response returns. By default the timeout will wait forever. - Since 1.15 +OffloadLocationInfo.__doc__ = """Attributes: + offload_location_ids: + Data offload locations to use to store protocol data, + specified using their `location_id`. Valid `location_id`s can + be retrieved using + mooneye.offload_manager.list_offload_locations() If any + `offload_location_ids` are specified, then: - Data is not + stored locally - `offload_location_path` must NOT be set (or + must be set to an empty value) - The + `offload_location_ids` indicate that data should be offloaded, + rather than stored locally; the `offload_location_path` + is used to set a local storage location. - If both are + set, an error is returned This requires a running instance of + Mooneye Since 5.0. + offload_location_path: + Local, e.g., internal / external drive, paths to where the + protocol output will be stored. This setting overrides the + default output locations (as set through configuration files + and/or the instance service). If `offload_location_path` is + set to a non-empty value, then: - `offload_location_ids` + MUST be empty - The `offload_location_ids` indicate that + data should be offloaded, rather than stored locally; + the `offload_location_path` is used to set a local storage + location. - If both are set, an error is returned This + does not require a running instance of Mooneye Since 5.0 """ -RequestOrigin.RunUntil.__doc__ = """A request made by the run until script due to certain criteria being -met +FilteringInfo.__doc__ = """Attributes: + pqc_filter: + Filter by runs that have platform QC results Just + initialising this message is enough to filter out runs with + platform QC results from ones that don't Further filtering on + the platform QC results can be applied by using the fields + within PlatformQcFilter + hardware_check_filter: + Filter by runs that have hardware check results Initialising + this message means that only runs with a hardware check result + will be returned + protocol_group_id: + Filter runs by a specific protocol_group_id +""" +StartProtocolRequest.__doc__ = """ passenger_info Attributes: - criteria: - What criteria caused the state change + identifier: + The identifier of the protocol, as provided by + list_protocols(). + args: + The arguments to pass to the protocol. + user_info: + User input describing the protocol. + offload_location_info: + Information about data offload locations to use to store data + Since 5.0. + target_run_until_criteria: + Initial Target Run-Until Criteria to use when starting an + acquisition for this protocol. These can be updated during the + acquisition using the Run-Until API. Since 5.3 + analysis_workflow_request: + Workflow request that should be started when the protocol is + started +""" +ProtocolPhaseManagementResponse.__doc__ = """Attributes: + action: + Requests that the protocol changes phase. The client should + never receive an action type (other than possibly ACTION_NONE) + that it has not explicitly opted into via the + `ProtocolPhaseManagementRequest.set_capabilities` field. If + this is set to ACTION_NONE, the message should be ignored + (this is for future compatibility). """ ExternalOffload.__doc__ = """Attributes: offload_ids: @@ -609,36 +474,157 @@ associated with the protocol The offload status can be queried using `mooneye.offload_manager.watch_offloads()`` """ -AssociatedPostProcessingAnalysis.__doc__ = """Attributes: - started_id: - Id of analysis if this has been triggered (otherwise empty). - start_request: - Start request for analysis +BeginProtocolResponse.__doc__ = """Attributes: + run_id: + UUID generated when the protocol is started, to uniquely + represent this protocol instance """ -ListProtocolGroupIdsResponse.__doc__ = """Attributes: - protocol_group_ids: - A list of protocol group ids used in any protocol started on - this instance of minknow. deprecated and replaced by string - protocol_group_id in message ProtocolGroupIdInfo string data - is guaranteed to be ordered by most recent start time, since - 5.6 - protocol_group_ids_info: - A list of the most recent start time for each protocol group - id on this instance of minknow. guaranteed to be ordered by - most recent start time since 5.6 +SetHardwareCheckResultRequest.__doc__ = """Attributes: + protocol_run_id: + The protocol_run_id that was given when the hardware check run + was started """ -BeginHardwareCheckResponse.__doc__ = """Attributes: +StartProtocolResponse.__doc__ = """Attributes: run_id: UUID generated when the protocol is started, to uniquely represent this protocol instance """ -ProtocolGroupIdInfo.__doc__ = """timestamp for the last activity for experiment ordering since 5.6 +GenerateRunReportRequest.__doc__ = """Attributes: + protocol_run_id: + The protocol_run_id to generate a report for. + include_input_data: + Optionally return the input data used to generate the report. + This input data is represented as the data seen in + report_data.proto +""" +AssociatePostProcessingAnalysisRequest.__doc__ = """Attributes: + run_id: + Protocol id to associate analysis with: +""" +WaitForFinishedRequest.__doc__ = """Attributes: + run_id: + Only consider a specific protocol run. + state: + Control what to wait for. Specifying + NOTIFY_BEFORE_TERMINATION allows a caller to be notified the + script will be ended _soon_, and do final work to end cleanly. + Since 1.11 + timeout: + Timeout to wait for finished, if the timeout expires before + the protocol is complete (in the state requested) then the + response returns. By default the timeout will wait forever. + Since 1.15 +""" +ProtocolRunUserInfo.__doc__ = """Attributes: + protocol_group_id: + The group which the experiment should be held in. note: This + value could be unset if a user did not specify a group_id when + starting the protocol. + sample_id: + sample_id created by the user + barcode_user_info: + User supplied info for barcodes + user_specified_flow_cell_id: + user_specified_flow_cell_id created by the user + user_specified_product_code: + user_specified_product_code created by the user + kit_info: + Kit information the user requested +""" +BeginProtocolRequest.__doc__ = """ passenger_info Attributes: - start_time: - Most recent start time for the protocol group id + identifier: + Specify the protocol with a string containing all the + protocol's identifying components, eg: + "sequencing/sequencing_MIN106_DNA:FLO-MIN106:SQK-RPB004" + components: + Specify the protocol providing the identifying components + individually, all components are optional. Exactly one + protocol should match the given components otherwise and error + will be returned + user_info: + User info options for the protocol + offload_location_info: + Information about data offload locations to use to store data + Since 5.0. + target_run_until_criteria: + Initial Target Run-Until Criteria to use when starting an + acquisition for this protocol. These can be updated during the + acquisition using the Run-Until API. Since 5.3 + settings: + Any settings changed from the defaults specified in the + protocol's .toml file. + analysis_workflow_request: + Workflow request that should be started when the protocol is + started """ -GetVersionInfoResponse.__doc__ = """From instance.proto Since 5.6 +AssociatePostProcessingAnalysisResponse.__doc__ = """Attributes: + id: + Id of the basecaller.proto post processing task that was + triggered, if the post processing analysis was executed + immediately (protocol was finished). +""" +GenerateRunReportResponse.__doc__ = """Attributes: + protocol_run_id: + Protocol ID the run report is for. + report_data: + A section of the run report data (note the api to return this + data may stream back several sections). + remaining_length: + How many further characters of data remain after this message + (excluding of this message). + input_data: + If include_input_data was set, this will be a section of that + data (note the api to return this data may stream back several + sections). + remaining_input_length: + If include_input_data was set, how many further characters of + input data remain after this message (excluding of this + message). +""" +BeginHardwareCheckResponse.__doc__ = """Attributes: + run_id: + UUID generated when the protocol is started, to uniquely + represent this protocol instance +""" +KitInfo.__doc__ = """Attributes: + sequencing_kit: + The sequencing kit used to select the protocol e.g. "SQK- + LSK108" + barcode_expansion_kits: + The expansion barcoding kits that the protocol supports e.g. + "EXP-NBD104" +""" +SetPlatformQcResultRequest.__doc__ = """Attributes: + protocol_run_id: + The protocol_run_id that was given when the pqc run was + started +""" +AnalysisWorkflowInfo.__doc__ = """Attributes: + request: + The request that started the analysis workflow + workflow_id: + The workflow id of the started analysis workflow. May be + empty if the workflow was unable to start + workflow_name: + Human-readable name of the workflow. + workflow_version: + What version the analysis workflow is running + workflow_status: + Current status of the workflow. + workflow_stop_reason: + If 'workflow_status' is STOPPED_WITH_ERROR, then this field + will be populated with a human readable error message + describing why the workflow was stopped. For any other + status, it is empty. + report_names: + The main report(s) for the analysis workflow Indicates that + the report(s) are able to be retrieved from the Reception + server +""" +GetVersionInfoResponse.__doc__ = """Version of the basecaller MinKNOW is running with. Since 5.0 This +field has been updated since 6.0 guppy_connected_version Attributes: minknow: @@ -672,15 +658,104 @@ The installation type of MinKNOW. The installation type may affect the available features, or the update process. Since 4.1 - guppy_build_version: - Version of guppy MinKNOW was packaged against. Since 5.0 - guppy_connected_version: - Version of guppy MinKNOW running with. Since 5.0 """ -StartProtocolResponse.__doc__ = """Attributes: +ProtocolPhaseManagementRequest.__doc__ = """Attributes: + set_capabilities: + Update the set of capabilities (messages that will be + responded to by the protocol). + phase: + Update the protocol phase. Leave empty (ie: PHASE_UNKNOWN) to + keep the previous phase. +""" +RequestOrigin.MinKNOW.__doc__ = """A request from minknow will usually come in the form of something +ending naturally, or an error occurring where minknow has to take +action + +Attributes: + cause: + Optional further details on the cause of the request +""" +RequestOrigin.ProtocolPhaseManagement.__doc__ = """The protocol script/bream is mainly responsible for making changes via +protocol_phase_management""" +HardwareCheckResult.__doc__ = """Attributes: + failure_reason: + `failure_reason` is guaranteed to be: - `NoError` if `status` + is NOT `Failed` - NOT `NoError` if `status` is `Failed` +""" +ProtocolPhaseManagementRequest.Capabilities.__doc__ = """Attributes: + can_pause: + Indicate that the protocol will respond to pause and resume + requests. + can_trigger_mux_scan: + Indicate that the protocol will respond to mux scan requests. +""" +Epi2meWorkflowReference.__doc__ = """Attributes: + id: + The unique identifier for a workflow ( unique to a specific + instance of epi2me ) + url: + URL that links to the workflow report. Syntax for a local + workflow: file:// otherwise: http(s):// +""" +AssociatedPostProcessingAnalysis.__doc__ = """Attributes: + started_id: + Id of analysis if this has been triggered (otherwise empty). + start_request: + Start request for analysis +""" +RequestOrigin.RunUntil.__doc__ = """A request made by the run until script due to certain criteria being +met + +Attributes: + criteria: + What criteria caused the state change +""" +PlatformQcResult.__doc__ = """Attributes: + flow_cell_id: + The flow cell id that the pqc was performed for + passed: + Whether the flow cell passed the platform qc check + total_pore_count: + Total number of pores that were found on the flow cell, across + all muxes. +""" +StopProtocolRequest.__doc__ = """Attributes: + data_action_on_stop: + Specify how any running acquisition should be handled when + stopping the protocol. Protocol state will enter + PROTOCOL_WAITING_FOR_ACQUISITION whilst any running + acquisition is finished. If a script ends on its own any + analysis that was started is stopped, and it is allowed to + catchup. If the caller wants to end catchup they can call + stop_protocol to end catchup. Since 1.15 +""" +ProtocolGroupIdInfo.__doc__ = """timestamp for the last activity for experiment ordering since 5.6 + +Attributes: + start_time: + Most recent start time for the protocol group id +""" +BarcodeUserData.__doc__ = """Attributes: + barcode_name: + Barcode name the user data applies to, eg: "barcode02". Acts + as the external barcode name `barcode_name_internal` is also + set for dual barcoding + barcode_name_internal: + The internal barcode name if using dual barcode + lamp_barcode_id: + Lamp barcode id the user data applies to, eg: "FIP04" + DEPRECATED 6.0: Lamp support has been removed and this value + will always be empty. + alias: + User defined string alias for the barcode. + type: + Sample type grouping for the barcode. + passenger_info: + Extra context per barcode +""" +GetRunInfoRequest.__doc__ = """Attributes: run_id: - UUID generated when the protocol is started, to uniquely - represent this protocol instance + The protocol run to get information about. """ ListProtocolsRequest.__doc__ = """Attributes: force_reload: @@ -689,4 +764,18 @@ cell). If this is true, then will force a reload of the protocol list Defaults to false """ +AnalysisWorkflowRequest.__doc__ = """Attributes: + proxy_request: + The workflow request to start + when: + When to start the request +""" +RequestOrigin.User.__doc__ = """'User' based changes will typically come from calls made by the UI +such as 'stop_protocol' + +Attributes: + identity: + If available then provide any identity information MinKNOW has + about the client that made the RPC request +""" # @@protoc_insertion_point(module_scope) diff --git a/python/minknow_api/protocol_pb2_grpc.py b/python/minknow_api/protocol_pb2_grpc.py index 0187d89..5221fad 100644 --- a/python/minknow_api/protocol_pb2_grpc.py +++ b/python/minknow_api/protocol_pb2_grpc.py @@ -119,6 +119,11 @@ def __init__(self, channel): request_serializer=minknow__api_dot_protocol__pb2.SetPlatformQcResultRequest.SerializeToString, response_deserializer=minknow__api_dot_protocol__pb2.SetPlatformQcResultResponse.FromString, ) + self.set_hardware_check_result = channel.unary_unary( + '/minknow_api.protocol.ProtocolService/set_hardware_check_result', + request_serializer=minknow__api_dot_protocol__pb2.SetHardwareCheckResultRequest.SerializeToString, + response_deserializer=minknow__api_dot_protocol__pb2.SetHardwareCheckResultResponse.FromString, + ) self.associate_post_processing_analysis_for_protocol = channel.unary_unary( '/minknow_api.protocol.ProtocolService/associate_post_processing_analysis_for_protocol', request_serializer=minknow__api_dot_protocol__pb2.AssociatePostProcessingAnalysisRequest.SerializeToString, @@ -370,6 +375,32 @@ def set_platform_qc_result(self, request, context): context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') + def set_hardware_check_result(self, request, context): + """Set the hardware check result + + Should be called to set the status to `Started` at the start of any hardware check script + Should be called again to set the final status when a hardware check script finishes + + If a script finishes, and the hardware check status is `Started`, then MinKNOW will set the + status to `Failed: ScriptError`. (The hardware check script should have updated the status + when the hardware check finished; failure to do so indicates that the script failed). + + The call will fail with `INVALID_ARGUMENT` if: + - HardwareCheckStatus is NOT `Failed`, and `HardwareCheckFailureReason` is NOT `NoError` + - HardwareCheckStatus is `Failed` and `HardwareCheckFailureReason` is `NoError` + - HardwareCheckStatus is not a valid value (None, Started, Succeeded or Failed) + - The supplied `protocol_run_id` does not correspond to an existing protocol + + The call will fail with `FAILED_PRECONDITION` if: + - The supplied `protocol_run_id` does not correspond to an in-progress protocol + - Hardware check status are not moved through in order: + None -> Started -> Succeeded/Failed + + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + def associate_post_processing_analysis_for_protocol(self, request, context): """Associated a post processing analysis process, and schedule it to run once the protocol is complete. @@ -533,6 +564,11 @@ def add_ProtocolServiceServicer_to_server(servicer, server): request_deserializer=minknow__api_dot_protocol__pb2.SetPlatformQcResultRequest.FromString, response_serializer=minknow__api_dot_protocol__pb2.SetPlatformQcResultResponse.SerializeToString, ), + 'set_hardware_check_result': grpc.unary_unary_rpc_method_handler( + servicer.set_hardware_check_result, + request_deserializer=minknow__api_dot_protocol__pb2.SetHardwareCheckResultRequest.FromString, + response_serializer=minknow__api_dot_protocol__pb2.SetHardwareCheckResultResponse.SerializeToString, + ), 'associate_post_processing_analysis_for_protocol': grpc.unary_unary_rpc_method_handler( servicer.associate_post_processing_analysis_for_protocol, request_deserializer=minknow__api_dot_protocol__pb2.AssociatePostProcessingAnalysisRequest.FromString, @@ -920,6 +956,23 @@ def set_platform_qc_result(request, options, channel_credentials, insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + @staticmethod + def set_hardware_check_result(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/minknow_api.protocol.ProtocolService/set_hardware_check_result', + minknow__api_dot_protocol__pb2.SetHardwareCheckResultRequest.SerializeToString, + minknow__api_dot_protocol__pb2.SetHardwareCheckResultResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + @staticmethod def associate_post_processing_analysis_for_protocol(request, target, diff --git a/python/minknow_api/protocol_service.py b/python/minknow_api/protocol_service.py index e882f79..fc3dbb8 100644 --- a/python/minknow_api/protocol_service.py +++ b/python/minknow_api/protocol_service.py @@ -14,6 +14,7 @@ "KitInfo", "ProtocolRunUserInfo", "OffloadLocationInfo", + "AnalysisWorkflowRequest", "StartProtocolRequest", "StartProtocolResponse", "StopProtocolRequest", @@ -33,8 +34,10 @@ "Epi2meWorkflowReference", "AssociatedPostProcessingAnalysis", "PlatformQcResult", + "HardwareCheckResult", "ExternalOffload", "GetVersionInfoResponse", + "AnalysisWorkflowInfo", "ProtocolRunInfo", "FilteringInfo", "ListProtocolRunsRequest", @@ -63,6 +66,8 @@ "BeginProtocolResponse", "SetPlatformQcResultRequest", "SetPlatformQcResultResponse", + "SetHardwareCheckResultRequest", + "SetHardwareCheckResultResponse", "AssociatePostProcessingAnalysisRequest", "AssociatePostProcessingAnalysisResponse", "ClearProtocolHistoryDataRequest", @@ -88,6 +93,8 @@ "PROTOCOL_FINISHED_WITH_ERROR_NO_DISK_SPACE", "PROTOCOL_FINISHED_WITH_ERROR_TEMPERATURE_HIGH", "PROTOCOL_FINISHED_WITH_ERROR_BASECALLER_COMMUNICATION", + "PROTOCOL_FINISHED_WITH_NO_FLOWCELL_FOR_ACQUISITION", + "PROTOCOL_FINISHED_WITH_ERROR_BASECALLER_UNAVAILABLE", "ProtocolPhase", "PHASE_UNKNOWN", "PHASE_INITIALISING", @@ -150,6 +157,7 @@ def start_protocol(self, _message=None, _timeout=None, **kwargs): These can be updated during the acquisition using the Run-Until API. Since 5.3 + analysis_workflow_request (minknow_api.protocol_pb2.AnalysisWorkflowRequest, optional): Workflow request that should be started when the protocol is started Returns: minknow_api.protocol_pb2.StartProtocolResponse @@ -191,6 +199,10 @@ def start_protocol(self, _message=None, _timeout=None, **kwargs): unused_args.remove("target_run_until_criteria") _message.target_run_until_criteria.CopyFrom(kwargs['target_run_until_criteria']) + if "analysis_workflow_request" in kwargs: + unused_args.remove("analysis_workflow_request") + _message.analysis_workflow_request.CopyFrom(kwargs['analysis_workflow_request']) + if len(unused_args) > 0: raise ArgumentError("Unexpected keyword arguments to start_protocol: '{}'".format(", ".join(unused_args))) @@ -1077,6 +1089,7 @@ def begin_protocol(self, _message=None, _timeout=None, **kwargs): Since 5.3 settings (minknow_api.protocol_pb2.BeginProtocolRequest.SettingsEntry, optional): Any settings changed from the defaults specified in the protocol's .toml file. + analysis_workflow_request (minknow_api.protocol_pb2.AnalysisWorkflowRequest, optional): Workflow request that should be started when the protocol is started Returns: minknow_api.protocol_pb2.BeginProtocolResponse @@ -1131,6 +1144,10 @@ def begin_protocol(self, _message=None, _timeout=None, **kwargs): for key, value in kwargs['settings'].items(): _message.settings[key].CopyFrom(value) + if "analysis_workflow_request" in kwargs: + unused_args.remove("analysis_workflow_request") + _message.analysis_workflow_request.CopyFrom(kwargs['analysis_workflow_request']) + if len(unused_args) > 0: raise ArgumentError("Unexpected keyword arguments to begin_protocol: '{}'".format(", ".join(unused_args))) @@ -1186,6 +1203,72 @@ def set_platform_qc_result(self, _message=None, _timeout=None, **kwargs): _message, _timeout, [], "minknow_api.protocol.ProtocolService") + def set_hardware_check_result(self, _message=None, _timeout=None, **kwargs): + """Set the hardware check result + + Should be called to set the status to `Started` at the start of any hardware check script + Should be called again to set the final status when a hardware check script finishes + + If a script finishes, and the hardware check status is `Started`, then MinKNOW will set the + status to `Failed: ScriptError`. (The hardware check script should have updated the status + when the hardware check finished; failure to do so indicates that the script failed). + + The call will fail with `INVALID_ARGUMENT` if: + - HardwareCheckStatus is NOT `Failed`, and `HardwareCheckFailureReason` is NOT `NoError` + - HardwareCheckStatus is `Failed` and `HardwareCheckFailureReason` is `NoError` + - HardwareCheckStatus is not a valid value (None, Started, Succeeded or Failed) + - The supplied `protocol_run_id` does not correspond to an existing protocol + + The call will fail with `FAILED_PRECONDITION` if: + - The supplied `protocol_run_id` does not correspond to an in-progress protocol + - Hardware check status are not moved through in order: + None -> Started -> Succeeded/Failed + + This RPC is idempotent. It may change the state of the system, but if the requested + change has already happened, it will not fail because of this, make any additional + changes or return a different value. + + Args: + _message (minknow_api.protocol_pb2.SetHardwareCheckResultRequest, optional): The message to send. + This can be passed instead of the keyword arguments. + _timeout (float, optional): The call will be cancelled after this number of seconds + if it has not been completed. + protocol_run_id (str, optional): The protocol_run_id that was given when the hardware check run was started + result (minknow_api.protocol_pb2.HardwareCheckResult, optional): + + Returns: + minknow_api.protocol_pb2.SetHardwareCheckResultResponse + + Note that the returned messages are actually wrapped in a type that collapses + submessages for fields marked with ``[rpc_unwrap]``. + """ + if _message is not None: + if isinstance(_message, MessageWrapper): + _message = _message._message + return run_with_retry(self._stub.set_hardware_check_result, + _message, _timeout, + [], + "minknow_api.protocol.ProtocolService") + + unused_args = set(kwargs.keys()) + + _message = SetHardwareCheckResultRequest() + + if "protocol_run_id" in kwargs: + unused_args.remove("protocol_run_id") + _message.protocol_run_id = kwargs['protocol_run_id'] + + if "result" in kwargs: + unused_args.remove("result") + _message.result.CopyFrom(kwargs['result']) + + if len(unused_args) > 0: + raise ArgumentError("Unexpected keyword arguments to set_hardware_check_result: '{}'".format(", ".join(unused_args))) + + return run_with_retry(self._stub.set_hardware_check_result, + _message, _timeout, + [], + "minknow_api.protocol.ProtocolService") def associate_post_processing_analysis_for_protocol(self, _message=None, _timeout=None, **kwargs): """Associated a post processing analysis process, and schedule it to run once the protocol is complete. diff --git a/python/minknow_api/report_data_pb2.py b/python/minknow_api/report_data_pb2.py index 16a620e..74fd9a3 100644 --- a/python/minknow_api/report_data_pb2.py +++ b/python/minknow_api/report_data_pb2.py @@ -58,6 +58,8 @@ basecaller_config: Information about the basecaller configuration Since 5.9 """ +Host.__doc__ = """This is a subset of the information available from the describe_host() +call""" ReportData.__doc__ = """This field has been removed Since 5.6 Attributes: @@ -71,6 +73,4 @@ report_data_generation_time: The time at which the report data was generated (UTC) """ -Host.__doc__ = """This is a subset of the information available from the describe_host() -call""" # @@protoc_insertion_point(module_scope) diff --git a/python/minknow_api/run_until_pb2.py b/python/minknow_api/run_until_pb2.py index 35f3ffe..2389d38 100644 --- a/python/minknow_api/run_until_pb2.py +++ b/python/minknow_api/run_until_pb2.py @@ -89,24 +89,18 @@ _globals['_STREAMUPDATESRESPONSE']._serialized_end=2851 _globals['_RUNUNTILSERVICE']._serialized_start=2854 _globals['_RUNUNTILSERVICE']._serialized_end=3359 -WriteUpdatesRequest.__doc__ = """Attributes: - acquisition_run_id: - The acquisition this Run-Until update applies to -""" -ErrorUpdate.InvalidCriteria.__doc__ = """Indicates that one or more of the supplied target criteria is not -recognised by the Run-Until Script. Unrecognised target criteria -will not be used to pause or stop the run.""" -ErrorUpdate.__doc__ = """Indicates that a problem has been encountered by the Run-Until Script""" -ActionUpdate.__doc__ = """Indicates that an action has been performed When a request is sent -using `write_updates()`, MinKNOW performs the specified action. - -Attributes: - criteria: - The criteria associated with this action +StreamUpdatesResponse.__doc__ = """Attributes: + idx: + The index of this update The index is incremented after each + "interesting" update (i.e. an update that contains information + besides an `estimated_time_remaining_update` or a + `current_progress_update`). See `Update History`, above, for + further information. + time: + The timestamp of this update (UTC) + update: + The update data itself """ -CriteriaValues.__doc__ = """A map of criterion name -> value This message is deliberately -flexible, to allow custom Run-Until Scripts to expand the range and -types of available criteria.""" EstimatedTimeRemainingUpdate.Estimated.__doc__ = """ These times are estimates of the (UTC) time at which the condition will be fulfilled Some idea of the expected accuracy of this estimate can be obtained by comparing `min_time` with `max_time`. If the @@ -131,18 +125,14 @@ other: Space for custom updates from custom Run-Until scripts """ -StreamUpdatesResponse.__doc__ = """Attributes: - idx: - The index of this update The index is incremented after each - "interesting" update (i.e. an update that contains information - besides an `estimated_time_remaining_update` or a - `current_progress_update`). See `Update History`, above, for - further information. - time: - The timestamp of this update (UTC) - update: - The update data itself -""" +EstimatedTimeRemainingUpdate.NotEstimated.__doc__ = """Indicates that a time is not estimated""" +CriteriaValues.__doc__ = """A map of criterion name -> value This message is deliberately +flexible, to allow custom Run-Until Scripts to expand the range and +types of available criteria.""" +ScriptUpdate.Started.__doc__ = """Indicates that the run-until script has started and is running""" +ErrorUpdate.InvalidCriteria.__doc__ = """Indicates that one or more of the supplied target criteria is not +recognised by the Run-Until Script. Unrecognised target criteria +will not be used to pause or stop the run.""" StreamUpdatesRequest.__doc__ = """Attributes: acquisition_run_id: The acquisition to stream Run-Until updates for @@ -163,23 +153,33 @@ means that all updates from the first update onwards will be sent. """ -EstimatedTimeRemainingUpdate.__doc__ = """Indicates the estimated time remaining An estimated time may be -provided for each Run-Until Criterion that is specified as an end- -point.""" -ErrorUpdate.OtherError.__doc__ = """An error that is not covered by one of the other error types, above.""" +ScriptUpdate.CriteriaUpdated.__doc__ = """Indicates the the Run-Until Script has update its criteria in response +to receiving a `StreamTargetCriteriaResponse` message""" StreamTargetCriteriaRequest.__doc__ = """Attributes: acquisition_run_id: The acquisition to obtain the Run-Until Criteria for """ +WriteUpdatesRequest.__doc__ = """Attributes: + acquisition_run_id: + The acquisition this Run-Until update applies to +""" +ErrorUpdate.__doc__ = """Indicates that a problem has been encountered by the Run-Until Script""" +ActionUpdate.__doc__ = """Indicates that an action has been performed When a request is sent +using `write_updates()`, MinKNOW performs the specified action. + +Attributes: + criteria: + The criteria associated with this action +""" WriteTargetCriteriaRequest.__doc__ = """Attributes: acquisition_run_id: The acquisition to set the Run-Until Criteria for """ +ErrorUpdate.OtherError.__doc__ = """An error that is not covered by one of the other error types, above.""" EstimatedTimeRemainingUpdate.EstimatedTimes.__doc__ = """Map of Run-Until Criterion to `EstimatedTime` when the criterion will be fulfilled Only criteria for which an update is being provided are contained in the map.""" -EstimatedTimeRemainingUpdate.NotEstimated.__doc__ = """Indicates that a time is not estimated""" -ScriptUpdate.CriteriaUpdated.__doc__ = """Indicates the the Run-Until Script has update its criteria in response -to receiving a `StreamTargetCriteriaResponse` message""" -ScriptUpdate.Started.__doc__ = """Indicates that the run-until script has started and is running""" +EstimatedTimeRemainingUpdate.__doc__ = """Indicates the estimated time remaining An estimated time may be +provided for each Run-Until Criterion that is specified as an end- +point.""" # @@protoc_insertion_point(module_scope) diff --git a/python/minknow_api/statistics_pb2.py b/python/minknow_api/statistics_pb2.py index 005fc45..ea766c9 100644 --- a/python/minknow_api/statistics_pb2.py +++ b/python/minknow_api/statistics_pb2.py @@ -198,33 +198,93 @@ _globals['_BOXPLOTRESPONSE_BOXPLOTDATASET']._serialized_end=7785 _globals['_STATISTICSSERVICE']._serialized_start=8260 _globals['_STATISTICSSERVICE']._serialized_end=9978 -StreamQScoreHistogramResponse.BucketRange.__doc__ = """Attributes: - start: - The range covered by a bucket The range [start, end) is half - open (i.e. the start value is included, the end value is not). +StreamReadLengthHistogramResponse.__doc__ = """Attributes: + read_length_type: + The data source for the histograms Also specifies the units + for `data_selection` and `n50` See `ReadLengthType` for + further information about the possible options. + bucket_ranges: + The range covered by each bucket in the histogram data + source_data_end: + The right hand edge of the last source bucket which contains + data Measured across all source data, after excluding the + reads specified by `discard_outlier_percent` in the stream + request. + bucket_value_type: + The data accumulated in the read length histogram buckets See + `BucketValueType` for further information about the possible + options. + histogram_data: + The histogram data """ -ReadLengthN50Response.ReadN50Data.__doc__ = """Attributes: - estimated_n50: - The estimated N50 value in bases This is always set - basecalled_n50: - The basecalled N50 value If the acquisition did/does not have - live basecalling enabled, this will be 0.0 +StreamAcquisitionOutputResponse.__doc__ = """Attributes: + snapshots: + Snapshots split by requested filtering parameters. """ -TemperaturePacket.PromethIONTemperature.__doc__ = """Packet of temperatures appropriate for a PromethION. +StreamTemperatureRequest.__doc__ = """Attributes: + period_seconds: + How often temperature updates should be sent Defaults to a + period of 1 second, if not specified, or set to 0 + acquisition_run_id: + The acquisition id of the experiment. + data_selection: + The desired data selection. The units for all values are + `seconds since the start of the experiment`. +""" +StreamDutyTimeResponse.BucketRange.__doc__ = """Attributes: + start: + The range covered by a bucket Values are in seconds The range + [start, end) is half open (i.e. the start value is included, + the end value is not). +""" +AcquisitionOutputSnapshot.__doc__ = """A snapshot of acquisition output data, for a given set of filtering +criteria. Attributes: - flowcell_temperature: - Temperature as measured by thermistor TH2 on the P-Chip. - chamber_temperature: - Mean of 12 pixel-blocks temperatures measured with sensors in - the ASIC. + seconds: + The time the snapshot was collected, in seconds. Represents + the number of seconds since the start of the experiment Will + usually stream in minute chunks, so will first see 60, then + 120 etc + yield_summary: + The yield summary data. """ -GetReadLengthTypesResponse.__doc__ = """Attributes: - available_types: - Array of the types of bucket for which a histogram is - currently available +StreamQScoreHistogramRequest.__doc__ = """Attributes: + acquisition_run_id: + The `acquisition_run_id` of the acquisition to obtain data for + If this is set to the `acquisition_run_id` of an acquisition + which is in-progress, then updates containing the latest + histogram data for that acquisition will be streamed regularly + until that acquisition finishes (see `poll_time_seconds` + below) Otherwise, if this is set to the `acquisition_run_id` + of an acquisition which is finished, and for which final + histogram data is available, then the final histogram data for + that acquisition will be returned. Final histogram data is + available until it is cleared. Otherwise, if this parameter + is not set, or is set to a value which is neither the + `acquisition_run_id` of an acquisition which is in-progress, + nor the `acquisition_run_id` of an acquisition for which final + histogram data is available, then this call will fail with the + status `INVALID_ARGUMENT`. + poll_time_seconds: + How often to return new histogram data, in seconds If not + specified, or set to `0`, then the poll time will be set to 60 + seconds If data is being returned for an acquisition which is + in progress, then one update will be sent when the call is + first performed, then subsequently every `poll_time` after + that, and then finally once again when the acquisition + finishes. Otherwise, if final histogram data is being + returned for an acquisition that has already finished, this + parameter has no effect. The final histogram data will be + returned, and the call will complete. + data_selection: + The desired q score range which histograms should cover. + bucket_value_type: + What data to accumulate in the histogram buckets See + `QScoreHistogramBucketValueType` for further information about + the available options. """ -StreamReadLengthHistogramRequest.__doc__ = """Attributes: +StreamQAccuracyHistogramRequest.__doc__ = """Attributes: acquisition_run_id: The `acquisition_run_id` of the acquisition to obtain data for If this is set to the `acquisition_run_id` of an acquisition @@ -252,99 +312,27 @@ returned for an acquisition that has already finished, this parameter has no effect. The final histogram data will be returned, and the call will complete. - read_length_type: - The source of the read lengths in the histogram If MinKNOW is - unable to supply data from the requested source (e.g. if the - user requests BasecalledBases, but basecalling is not - enabled), then this call will fail with the status - `FAILED_PRECONDITION`. See `ReadLengthType` for further - information about the available options. data_selection: - The desired read length range which histograms should cover. - Units are as set in `read_length_type`, above. + The desired q accuracy range which histograms should cover. bucket_value_type: - What data to accumulate in the read length histogram buckets - See `BucketValueType` for further information about the - available options. - discard_outlier_percent: - If set greater than zero then discard some percent of data at - the upper end of the source data before producing histograms - and N50 values. This is intended to assist in the case where - a small number of outliers with very long read lengths cause - the histogram axes and N50 to be skewed. Defaults to 0 - no - data discarded. Values should be specified in percent - a - value of 0.05 will cause the top 5% of the data to be - discarded before producing outputs. For histograms, the data - discarded depends on the bucket_value_type. If `ReadCounts`, - then a percentage of the total number of reads reads will be - discarded; if `ReadLengths` then a percentage of the total - read lengths will be discarded. For the N50 value, - `discard_outlier_percent` always causes a percentage of the - total read lengths to be discarded (since it is always - calculated from read length data) - filtering: - Define filtering parameters for streamed data. - split: - Define how results are split for returned data. + What data to accumulate in the histogram buckets See + `QAccuracyHistogramBucketValueType` for further information + about the available options. """ -AcquisitionOutputKey.__doc__ = """Attributes: - barcode_name: - Only return data for the given barcode. Special values: - - Specify "unclassified" for data which does not have a barcode. - - Specify "classified" for all data which has a barcode. If - unspecified all barcodes are returned. - alignment_reference: - Only return data for the given alignment reference. Special - values: - Specify "unaligned" for data which does not align - to a reference - Specify "aligned" for all data which aligns - to a reference If unspecified all alignment targets are - returned. - alignment_bed_file_region: - Only return data for the given target region. Target regions - are defined in bed files. The region is a string which - identifies an entry in the bed file. Special values: - - Specify "offtarget" for data which does not have a bed region. - - Specify "ontarget" for all data which has a bed region. If - unspecified all alignment regions are returned. - alignment_bed_file_region_name: - An alias to `alignment_bed_file_region` An optional name can - be used to identify a target region in the bed file - lamp_barcode_id: - Only return data for the given lamp barcode. Special values: - - Specify "unclassified" for data which does not have a lamp - barcode. - Specify "classified" for all data which has a - lamp barcode. If unspecified all lamp barcodes are returned. - lamp_target_id: - Only return data for the given lamp target. Special values: - - Specify "unclassified" for data which does not have a lamp - target. - Specify "classified" for all data which has a lamp - target. Using barcode terms here as lamp is part of barcoding - pipeline If unspecified all lamp target are returned. - barcode_alias: - The barcode alias corresponding to the `barcode_name` and - `lamp_barcode_id` - read_end_reason: - Only return data for the given ReadEndReason. Special values: - - Specify `ReadEndReason::All` to return data for all read end - reasons If unspecified all read end reasons are returned. +TemperaturePacket.__doc__ = """Attributes: + target_temperature: + The range is based on the requested target temperature and + tolerance. For example, if the target temperature is 35, and + the tolerance is 1 then target temperatures will return as + 34(min) and 36(max). """ -AcquisitionOutputSplit.__doc__ = """Attributes: - barcode_name: - Split data for every individual barcode. - alignment_reference: - Split data for each individual alignment reference. - References are defined in alignment references. - alignment_bed_file_region: - Split data for each target region. Target regions are defined - in bed files. - lamp_barcode_id: - Split data for each lamp barcode id. Lamp barcodes are - defined by the active lamp kit. - lamp_target_id: - Split data for each lamp targets id. Lamp targets are defined - by the active lamp kit. - read_end_reason: - Split returned data by read_end_reason +StreamBiasVoltagesRequest.__doc__ = """Attributes: + acquisition_run_id: + The acquisition id of the experiment. +""" +ReadLengthN50Response.__doc__ = """Attributes: + n50_data: + The N50 return data """ StreamQScoreHistogramResponse.__doc__ = """Attributes: bucket_value_type: @@ -361,60 +349,6 @@ is enabled, then Simplex, Duplex and "All" (i.e. overall) histogram data will be returned """ -TemperaturePacket.__doc__ = """Attributes: - target_temperature: - The range is based on the requested target temperature and - tolerance. For example, if the target temperature is 35, and - the tolerance is 1 then target temperatures will return as - 34(min) and 36(max). -""" -BoxplotResponse.__doc__ = """Attributes: - datasets: - Result boxplots are stored in this array. This is an overview - of the stored data from the START of the acquisition period. - This includes ALL the basecalled stats from MinKNOW, not just - updates since previous calls! -""" -StreamDutyTimeResponse.__doc__ = """Attributes: - bucket_ranges: - The range covered by each entry in state_times - channel_states: - Map between channel state names, and a list of bucketed duty - time data -""" -StreamQAccuracyHistogramResponse.QAccuracyHistogramData.__doc__ = """Attributes: - filtering: - The filtering parameters which contributed to this bucket. - bucket_values: - Counts for each histogram bucket Units and type of - accumulated values are as specified in `bucket_value_type` The - range covered by each bucket is as in `bucket_ranges` - modal_q_accuracy: - The modal q accuracy, calculated using the `bucket_value_type` -""" -GetReadLengthTypesRequest.__doc__ = """Attributes: - acquisition_run_id: - The acquisition id of the experiment. -""" -StreamReadLengthHistogramResponse.ReadLengthHistogramData.__doc__ = """Attributes: - filtering: - The filtering parameters which contributed to this bucket. - bucket_values: - Counts for each histogram bucket Units are as specified in - `read_length_type` The range covered by each bucket is as in - `bucket_ranges` The type of data accumulated in each bucket is - given by `bucket_value_type` - n50: - The N50 value for the read length data for the selected - `read_length_type` and `read_end_reasons`. Units are as - specified by `read_length_type`. Measured across all source - data, after excluding the reads specified by - `discard_outlier_percent` in the stream request. -""" -ReadLengthN50Response.__doc__ = """Attributes: - n50_data: - The N50 return data -""" FloatDataSelection.__doc__ = """Specify a desired data selection, using floating point values The actual data selection used may differ from the desired one. They are adjusted in the following sequence: 1. The selection is set equal to @@ -466,95 +400,54 @@ time series data. If this is the case, then the maximum valid value will be determined when the experiment ends, and values in use will be adjusted accordingly.""" -StreamWriterOutputRequest.__doc__ = """Attributes: - acquisition_run_id: - The acquisition id of the experiment. - data_selection: - The desired data selection. The units for all values are - `seconds since the start of the experiment`. -""" -TemperaturePacket.MinIONTemperature.__doc__ = """Packet of temperatures appropriate for a MinION. +TemperaturePacket.PromethIONTemperature.__doc__ = """Packet of temperatures appropriate for a PromethION. Attributes: - asic_temperature: - Temperature as measured by the probe inside the asic. - heatsink_temperature: - Temperature as measured by the probe in the minion heatsink. -""" -ReadLengthN50Request.__doc__ = """Attributes: - acquisition_run_id: - The `acquisition_run_id` of the acquisition to obtain data for + flowcell_temperature: + Temperature as measured by thermistor TH2 on the P-Chip. + chamber_temperature: + Mean of 12 pixel-blocks temperatures measured with sensors in + the ASIC. """ -StreamDutyTimeRequest.__doc__ = """Attributes: - acquisition_run_id: - The acquisition id of the experiment. - data_selection: - The desired data selection. The units for all values are - `seconds since the start of the experiment`. +StreamQAccuracyHistogramResponse.QAccuracyHistogramData.__doc__ = """Attributes: + filtering: + The filtering parameters which contributed to this bucket. + bucket_values: + Counts for each histogram bucket Units and type of + accumulated values are as specified in `bucket_value_type` The + range covered by each bucket is as in `bucket_ranges` + modal_q_accuracy: + The modal q accuracy, calculated using the `bucket_value_type` """ -StreamQAccuracyHistogramResponse.__doc__ = """Attributes: - bucket_value_type: - The data accumulated in the histogram buckets See - `QAccuracyHistogramBucketValueType` for further information - about the possible options. - bucket_ranges: - The range covered by each bucket in the histogram data - source_data_range: - The range covered by non-empty buckets in the source data - histogram_data: - The histogram data If duplex basecalling is not enabled, then - Simplex histogram data will be returned If duplex basecalling - is enabled, then Simplex, Duplex and "All" (i.e. overall) - histogram data will be returned +BoxplotResponse.BoxplotDataset.__doc__ = """Attributes: + min: + Minimum value for any point in the dataset. + q25: + 25th quartile value for all points in the dataset. + q50: + 50th quartile or median value for all points in the dataset. + q75: + 75th quartile value for all points in the dataset. + max: + Maximum value for any point in the dataset. + count: + Number of items in this box plot's stats. + lower_full_width_half_maximum: + Estimated lower value where there is half the data compared to + the mode. provides some estimate on the sharpness of the mode + peak. + mode: + Estimated mode for the dataset. + upper_full_width_half_maximum: + Estimated upper value where there is half the data compared to + the mode. provides some estimate on the sharpness of the mode + peak. """ -StreamQAccuracyHistogramResponse.BucketRange.__doc__ = """Attributes: +StreamQScoreHistogramResponse.BucketRange.__doc__ = """Attributes: start: The range covered by a bucket The range [start, end) is half open (i.e. the start value is included, the end value is not). """ -StreamDutyTimeResponse.ChannelStateData.__doc__ = """Attributes: - state_times: - How much time (in samples) spent in this channel state, for - each bucket -""" -ReadLengthHistogramSplit.__doc__ = """Attributes: - read_end_reason: - Split returned data by read_end_reason -""" -StreamAcquisitionOutputResponse.__doc__ = """Attributes: - snapshots: - Snapshots split by requested filtering parameters. -""" -StreamAcquisitionOutputRequest.__doc__ = """Attributes: - acquisition_run_id: - The acquisition id of the experiment. - data_selection: - The desired data selection. The units for all values are - `seconds since the start of the experiment`. - filtering: - Define filtering parameters for streamed data. - split: - Define how results are split for returned data. -""" -StreamEncounteredAcquisitionOutputKeysRequest.__doc__ = """Attributes: - acquisition_run_id: - The acquisition id of the experiment. -""" -WriterOutputSnapshot.__doc__ = """A snapshot of writer data. - -Attributes: - seconds: - The time the snapshot was collected, in seconds. Represents - the number of seconds since the start of the experiment Will - usually stream in minute chunks, so will first see 60, then - 120 etc - writer_output: - The writer data for this bucket. -""" -StreamBiasVoltagesRequest.__doc__ = """Attributes: - acquisition_run_id: - The acquisition id of the experiment. -""" StreamBoxplotRequest.__doc__ = """Attributes: acquisition_run_id: The acquisition id of the experiment. @@ -584,92 +477,14 @@ basecalled_stats_refresh_rate_seconds in the configs (set to 1 second in MinKNOW 3.2). If unspecified, defaults to 1 minute. """ -StreamTemperatureRequest.__doc__ = """Attributes: - period_seconds: - How often temperature updates should be sent Defaults to a - period of 1 second, if not specified, or set to 0 - acquisition_run_id: - The acquisition id of the experiment. - data_selection: - The desired data selection. The units for all values are - `seconds since the start of the experiment`. -""" -StreamDutyTimeResponse.BucketRange.__doc__ = """Attributes: - start: - The range covered by a bucket Values are in seconds The range - [start, end) is half open (i.e. the start value is included, - the end value is not). -""" -BoxplotResponse.BoxplotDataset.__doc__ = """Attributes: - min: - Minimum value for any point in the dataset. - q25: - 25th quartile value for all points in the dataset. - q50: - 50th quartile or median value for all points in the dataset. - q75: - 75th quartile value for all points in the dataset. - max: - Maximum value for any point in the dataset. - count: - Number of items in this box plot's stats. - lower_full_width_half_maximum: - Estimated lower value where there is half the data compared to - the mode. provides some estimate on the sharpness of the mode - peak. - mode: - Estimated mode for the dataset. - upper_full_width_half_maximum: - Estimated upper value where there is half the data compared to - the mode. provides some estimate on the sharpness of the mode - peak. -""" -ReadLengthHistogramKey.__doc__ = """Attributes: - read_end_reason: - Only return data for the given ReadEndReason. Special values: - - Specify `ReadEndReason::All` to return data for all read end - reasons If unspecified all read end reasons are returned. -""" -StreamReadLengthHistogramResponse.BucketRange.__doc__ = """Attributes: - start: - The range covered by a bucket Units are as set in - `read_length_type`, above The range [start, end) is half open - (i.e. the start value is included, the end value is not). -""" -StreamReadLengthHistogramResponse.__doc__ = """Attributes: - read_length_type: - The data source for the histograms Also specifies the units - for `data_selection` and `n50` See `ReadLengthType` for - further information about the possible options. - bucket_ranges: - The range covered by each bucket in the histogram data - source_data_end: - The right hand edge of the last source bucket which contains - data Measured across all source data, after excluding the - reads specified by `discard_outlier_percent` in the stream - request. - bucket_value_type: - The data accumulated in the read length histogram buckets See - `BucketValueType` for further information about the possible - options. - histogram_data: - The histogram data -""" -StreamQScoreHistogramResponse.QScoreHistogramData.__doc__ = """Attributes: - filtering: - The filtering parameters which contributed to this bucket. - bucket_values: - Counts for each histogram bucket Units and type of - accumulated values are as specified in `bucket_value_type` The - range covered by each bucket is as in `bucket_ranges` - modal_q_score: - The modal q score, calculated using the `bucket_value_type` -""" -StreamAcquisitionOutputResponse.FilteredSnapshots.__doc__ = """Attributes: - filtering: - The filtering parameters which contributed to this bucket. +ReadLengthN50Response.ReadN50Data.__doc__ = """Attributes: + estimated_n50: + The estimated N50 value in bases This is always set + basecalled_n50: + The basecalled N50 value If the acquisition did/does not have + live basecalling enabled, this will be 0.0 """ -StreamQAccuracyHistogramRequest.__doc__ = """Attributes: +StreamReadLengthHistogramRequest.__doc__ = """Attributes: acquisition_run_id: The `acquisition_run_id` of the acquisition to obtain data for If this is set to the `acquisition_run_id` of an acquisition @@ -697,16 +512,149 @@ returned for an acquisition that has already finished, this parameter has no effect. The final histogram data will be returned, and the call will complete. + read_length_type: + The source of the read lengths in the histogram If MinKNOW is + unable to supply data from the requested source (e.g. if the + user requests BasecalledBases, but basecalling is not + enabled), then this call will fail with the status + `FAILED_PRECONDITION`. See `ReadLengthType` for further + information about the available options. data_selection: - The desired q accuracy range which histograms should cover. + The desired read length range which histograms should cover. + Units are as set in `read_length_type`, above. bucket_value_type: - What data to accumulate in the histogram buckets See + What data to accumulate in the read length histogram buckets + See `BucketValueType` for further information about the + available options. + discard_outlier_percent: + If set greater than zero then discard some percent of data at + the upper end of the source data before producing histograms + and N50 values. This is intended to assist in the case where + a small number of outliers with very long read lengths cause + the histogram axes and N50 to be skewed. Defaults to 0 - no + data discarded. Values should be specified in percent - a + value of 0.05 will cause the top 5% of the data to be + discarded before producing outputs. For histograms, the data + discarded depends on the bucket_value_type. If `ReadCounts`, + then a percentage of the total number of reads reads will be + discarded; if `ReadLengths` then a percentage of the total + read lengths will be discarded. For the N50 value, + `discard_outlier_percent` always causes a percentage of the + total read lengths to be discarded (since it is always + calculated from read length data) + filtering: + Define filtering parameters for streamed data. + split: + Define how results are split for returned data. +""" +StreamQAccuracyHistogramResponse.__doc__ = """Attributes: + bucket_value_type: + The data accumulated in the histogram buckets See `QAccuracyHistogramBucketValueType` for further information - about the available options. + about the possible options. + bucket_ranges: + The range covered by each bucket in the histogram data + source_data_range: + The range covered by non-empty buckets in the source data + histogram_data: + The histogram data If duplex basecalling is not enabled, then + Simplex histogram data will be returned If duplex basecalling + is enabled, then Simplex, Duplex and "All" (i.e. overall) + histogram data will be returned +""" +AcquisitionOutputKey.__doc__ = """Attributes: + barcode_name: + Only return data for the given barcode. Special values: - + Specify "unclassified" for data which does not have a barcode. + - Specify "classified" for all data which has a barcode. If + unspecified all barcodes are returned. + alignment_reference: + Only return data for the given alignment reference. Special + values: - Specify "unaligned" for data which does not align + to a reference - Specify "aligned" for all data which aligns + to a reference If unspecified all alignment targets are + returned. + alignment_bed_file_region: + Only return data for the given target region. Target regions + are defined in bed files. The region is a string which + identifies an entry in the bed file. Special values: - + Specify "offtarget" for data which does not have a bed region. + - Specify "ontarget" for all data which has a bed region. If + unspecified all alignment regions are returned. + alignment_bed_file_region_name: + An alias to `alignment_bed_file_region` An optional name can + be used to identify a target region in the bed file + lamp_barcode_id: + Only return data for the given lamp barcode. Special values: + - Specify "unclassified" for data which does not have a lamp + barcode. - Specify "classified" for all data which has a + lamp barcode. If unspecified all lamp barcodes are returned. + DEPRECATED 6.0: Lamp support has been removed and this option + will always be ignored. + lamp_target_id: + Only return data for the given lamp target. Special values: + - Specify "unclassified" for data which does not have a lamp + target. - Specify "classified" for all data which has a lamp + target. Using barcode terms here as lamp is part of barcoding + pipeline If unspecified all lamp target are returned. + DEPRECATED 6.0: Lamp support has been removed and this option + will always be ignored. + barcode_alias: + The barcode alias corresponding to the `barcode_name` + read_end_reason: + Only return data for the given ReadEndReason. Special values: + - Specify `ReadEndReason::All` to return data for all read end + reasons If unspecified all read end reasons are returned. """ TemperaturePacket.Range.__doc__ = """Represents a range of values.""" -AcquisitionOutputSnapshot.__doc__ = """A snapshot of acquisition output data, for a given set of filtering -criteria. +StreamQScoreHistogramResponse.QScoreHistogramData.__doc__ = """Attributes: + filtering: + The filtering parameters which contributed to this bucket. + bucket_values: + Counts for each histogram bucket Units and type of + accumulated values are as specified in `bucket_value_type` The + range covered by each bucket is as in `bucket_ranges` + modal_q_score: + The modal q score, calculated using the `bucket_value_type` +""" +StreamDutyTimeRequest.__doc__ = """Attributes: + acquisition_run_id: + The acquisition id of the experiment. + data_selection: + The desired data selection. The units for all values are + `seconds since the start of the experiment`. +""" +GetReadLengthTypesRequest.__doc__ = """Attributes: + acquisition_run_id: + The acquisition id of the experiment. +""" +AcquisitionOutputSplit.__doc__ = """Attributes: + barcode_name: + Split data for every individual barcode. + alignment_reference: + Split data for each individual alignment reference. + References are defined in alignment references. + alignment_bed_file_region: + Split data for each target region. Target regions are defined + in bed files. + lamp_barcode_id: + Split data for each lamp barcode id. Lamp barcodes are + defined by the active lamp kit. DEPRECATED 6.0: Lamp support + has been removed and this option will always be ignored. + lamp_target_id: + Split data for each lamp targets id. Lamp targets are defined + by the active lamp kit. DEPRECATED 6.0: Lamp support has been + removed and this option will always be ignored. + read_end_reason: + Split returned data by read_end_reason +""" +StreamReadLengthHistogramResponse.BucketRange.__doc__ = """Attributes: + start: + The range covered by a bucket Units are as set in + `read_length_type`, above The range [start, end) is half open + (i.e. the start value is included, the end value is not). +""" +WriterOutputSnapshot.__doc__ = """A snapshot of writer data. Attributes: seconds: @@ -714,42 +662,99 @@ the number of seconds since the start of the experiment Will usually stream in minute chunks, so will first see 60, then 120 etc - yield_summary: - The yield summary data. + writer_output: + The writer data for this bucket. """ -StreamQScoreHistogramRequest.__doc__ = """Attributes: +ReadLengthN50Request.__doc__ = """Attributes: acquisition_run_id: The `acquisition_run_id` of the acquisition to obtain data for - If this is set to the `acquisition_run_id` of an acquisition - which is in-progress, then updates containing the latest - histogram data for that acquisition will be streamed regularly - until that acquisition finishes (see `poll_time_seconds` - below) Otherwise, if this is set to the `acquisition_run_id` - of an acquisition which is finished, and for which final - histogram data is available, then the final histogram data for - that acquisition will be returned. Final histogram data is - available until it is cleared. Otherwise, if this parameter - is not set, or is set to a value which is neither the - `acquisition_run_id` of an acquisition which is in-progress, - nor the `acquisition_run_id` of an acquisition for which final - histogram data is available, then this call will fail with the - status `INVALID_ARGUMENT`. - poll_time_seconds: - How often to return new histogram data, in seconds If not - specified, or set to `0`, then the poll time will be set to 60 - seconds If data is being returned for an acquisition which is - in progress, then one update will be sent when the call is - first performed, then subsequently every `poll_time` after - that, and then finally once again when the acquisition - finishes. Otherwise, if final histogram data is being - returned for an acquisition that has already finished, this - parameter has no effect. The final histogram data will be - returned, and the call will complete. +""" +TemperaturePacket.MinIONTemperature.__doc__ = """Packet of temperatures appropriate for a MinION. + +Attributes: + asic_temperature: + Temperature as measured by the probe inside the asic. + heatsink_temperature: + Temperature as measured by the probe in the minion heatsink. +""" +ReadLengthHistogramKey.__doc__ = """Attributes: + read_end_reason: + Only return data for the given ReadEndReason. Special values: + - Specify `ReadEndReason::All` to return data for all read end + reasons If unspecified all read end reasons are returned. +""" +GetReadLengthTypesResponse.__doc__ = """Attributes: + available_types: + Array of the types of bucket for which a histogram is + currently available +""" +StreamDutyTimeResponse.__doc__ = """Attributes: + bucket_ranges: + The range covered by each entry in state_times + channel_states: + Map between channel state names, and a list of bucketed duty + time data +""" +StreamReadLengthHistogramResponse.ReadLengthHistogramData.__doc__ = """Attributes: + filtering: + The filtering parameters which contributed to this bucket. + bucket_values: + Counts for each histogram bucket Units are as specified in + `read_length_type` The range covered by each bucket is as in + `bucket_ranges` The type of data accumulated in each bucket is + given by `bucket_value_type` + n50: + The N50 value for the read length data for the selected + `read_length_type` and `read_end_reasons`. Units are as + specified by `read_length_type`. Measured across all source + data, after excluding the reads specified by + `discard_outlier_percent` in the stream request. +""" +StreamAcquisitionOutputRequest.__doc__ = """Attributes: + acquisition_run_id: + The acquisition id of the experiment. data_selection: - The desired q score range which histograms should cover. - bucket_value_type: - What data to accumulate in the histogram buckets See - `QScoreHistogramBucketValueType` for further information about - the available options. + The desired data selection. The units for all values are + `seconds since the start of the experiment`. + filtering: + Define filtering parameters for streamed data. + split: + Define how results are split for returned data. +""" +StreamDutyTimeResponse.ChannelStateData.__doc__ = """Attributes: + state_times: + How much time (in samples) spent in this channel state, for + each bucket +""" +StreamWriterOutputRequest.__doc__ = """Attributes: + acquisition_run_id: + The acquisition id of the experiment. + data_selection: + The desired data selection. The units for all values are + `seconds since the start of the experiment`. +""" +BoxplotResponse.__doc__ = """Attributes: + datasets: + Result boxplots are stored in this array. This is an overview + of the stored data from the START of the acquisition period. + This includes ALL the basecalled stats from MinKNOW, not just + updates since previous calls! +""" +StreamAcquisitionOutputResponse.FilteredSnapshots.__doc__ = """Attributes: + filtering: + The filtering parameters which contributed to this bucket. +""" +StreamQAccuracyHistogramResponse.BucketRange.__doc__ = """Attributes: + start: + The range covered by a bucket The range [start, end) is half + open (i.e. the start value is included, the end value is not). +""" +ReadLengthHistogramSplit.__doc__ = """Attributes: + read_end_reason: + Split returned data by read_end_reason +""" +StreamEncounteredAcquisitionOutputKeysRequest.__doc__ = """Attributes: + acquisition_run_id: + The acquisition id of the experiment. """ # @@protoc_insertion_point(module_scope) diff --git a/python/minknow_api/testutils.py b/python/minknow_api/testutils.py index 7caf2e9..ec51ca6 100644 --- a/python/minknow_api/testutils.py +++ b/python/minknow_api/testutils.py @@ -9,6 +9,7 @@ Consider taking inspiration from python/test/mock_server.py in the minknow_api source repository instead. """ + import inspect import logging import warnings diff --git a/python/minknow_api/tools/any_helpers.py b/python/minknow_api/tools/any_helpers.py index 44e3e71..4e7e0f4 100644 --- a/python/minknow_api/tools/any_helpers.py +++ b/python/minknow_api/tools/any_helpers.py @@ -1,6 +1,5 @@ """Tools for packing/unpacking `google.protobuf.Any` messages""" - from google.protobuf import ( any_pb2, timestamp_pb2, diff --git a/python/minknow_api/tools/protocols.py b/python/minknow_api/tools/protocols.py index 6a7f864..e88aaf9 100644 --- a/python/minknow_api/tools/protocols.py +++ b/python/minknow_api/tools/protocols.py @@ -150,10 +150,6 @@ def find_protocol( "kits", "trim_barcodes", "barcodes_both_ends", - "detect_mid_strand_barcodes", - "min_score", - "min_score_rear", - "min_score_mid", ], ) AlignmentArgs = collections.namedtuple("AlignmentArgs", ["reference_files", "bed_file"]) @@ -257,7 +253,7 @@ def on_off(value: bool): protocol_args.append("--base_calling=on") if basecalling.config: - protocol_args.append("--guppy_filename=" + basecalling.config) + protocol_args.append("--basecaller_filename=" + basecalling.config) if basecalling.barcoding: barcoding_args = [] @@ -281,31 +277,6 @@ def on_off(value: bool): + on_off(basecalling.barcoding.barcodes_both_ends) ) - if basecalling.barcoding.detect_mid_strand_barcodes: - # detect_mid_strand_barcodes=on/off - barcoding_args.append( - "detect_mid_strand_barcodes=" - + on_off(basecalling.barcoding.detect_mid_strand_barcodes) - ) - - if basecalling.barcoding.min_score: - # min_score=66 - barcoding_args.append( - "min_score={}".format(basecalling.barcoding.min_score) - ) - - if basecalling.barcoding.min_score_rear: - # min_score_rear=66 - barcoding_args.append( - "min_score_rear={}".format(basecalling.barcoding.min_score_rear) - ) - - if basecalling.barcoding.min_score_mid: - # min_score_mid=66 - barcoding_args.append( - "min_score_mid={}".format(basecalling.barcoding.min_score_mid) - ) - protocol_args.extend(["--barcoding"] + barcoding_args) if basecalling.alignment: @@ -398,7 +369,8 @@ def on_off(value: bool): if not disable_active_channel_selection: protocol_args.append("--mux_scan_period={}".format(mux_scan_period)) - protocol_args.extend(args) + if args: + protocol_args.extend(args) return protocol_args diff --git a/python/test/example_tests/sample_sheets/bad_column_names/conflicting_barcoding_columns.csv b/python/test/example_tests/sample_sheets/bad_column_names/conflicting_barcoding_columns.csv index edda2ca..e15b7b4 100644 --- a/python/test/example_tests/sample_sheets/bad_column_names/conflicting_barcoding_columns.csv +++ b/python/test/example_tests/sample_sheets/bad_column_names/conflicting_barcoding_columns.csv @@ -1 +1 @@ -flow_cell_id,barcode,rapid_barcode,fip_barcode \ No newline at end of file +flow_cell_id,barcode,internal_barcode,external_barcode \ No newline at end of file diff --git a/python/test/example_tests/sample_sheets/bad_records/fip_barcode.csv b/python/test/example_tests/sample_sheets/bad_records/fip_barcode.csv deleted file mode 100644 index 5453a92..0000000 --- a/python/test/example_tests/sample_sheets/bad_records/fip_barcode.csv +++ /dev/null @@ -1,2 +0,0 @@ -flow_cell_id,rapid_barcode,fip_barcode,alias -FC001,barcode01,bad,alias \ No newline at end of file diff --git a/python/test/example_tests/sample_sheets/bad_records/rapid_barcode.csv b/python/test/example_tests/sample_sheets/bad_records/rapid_barcode.csv deleted file mode 100644 index e23cbce..0000000 --- a/python/test/example_tests/sample_sheets/bad_records/rapid_barcode.csv +++ /dev/null @@ -1,2 +0,0 @@ -flow_cell_id,rapid_barcode,fip_barcode,alias -FC001,bad,FIP01,alias \ No newline at end of file diff --git a/python/test/example_tests/sample_sheets/good/lampore_barcoding.csv b/python/test/example_tests/sample_sheets/good/lampore_barcoding.csv deleted file mode 100644 index b5171ab..0000000 --- a/python/test/example_tests/sample_sheets/good/lampore_barcoding.csv +++ /dev/null @@ -1,3 +0,0 @@ -flow_cell_id,fip_barcode,rapid_barcode,alias -FC001,FIP01,barcode01,alias01 -FC001,FIP01,barcode02,alias02 \ No newline at end of file diff --git a/python/test/example_tests/test_extract_run_statistics.py b/python/test/example_tests/test_extract_run_statistics.py index cb9db16..2b34f3f 100644 --- a/python/test/example_tests/test_extract_run_statistics.py +++ b/python/test/example_tests/test_extract_run_statistics.py @@ -41,8 +41,6 @@ filtering=[ statistics_pb2.AcquisitionOutputKey( barcode_name="barcode1234", - lamp_barcode_id="unclassified", - lamp_target_id="unclassified", alignment_reference="unaligned", ) ], @@ -174,9 +172,9 @@ def test_basic_run_statistics(): # Everything in place - should generate a valid report protocol_servicer.protocol_runs = [TEST_PROTOCOL_WITH_ACQUISTIIONS] acquisition_servicer.acquisition_runs = [TEST_ACQUISITION] - statistics_servicer.acquisition_outputs_per_run[ - TEST_ACQUISITION.run_id - ] = TEST_ACQUISITION_OUTPUT_STATS + statistics_servicer.acquisition_outputs_per_run[TEST_ACQUISITION.run_id] = ( + TEST_ACQUISITION_OUTPUT_STATS + ) with tempfile.TemporaryDirectory() as output_dir: run_extract_run_statistics_example( server.port, ["--position=MN00000", "--output-dir", output_dir] @@ -187,8 +185,8 @@ def test_basic_run_statistics(): Acquisition report ================== - Output snapshots for barcode: barcode1234, lamp_barcode_id: unclassified, lamp_target_id: unclassified, alignment_reference: unaligned - -------------------------------------------------------------------------------------------------------------------------------------- + Output snapshots for barcode: barcode1234, alignment_reference: unaligned + ------------------------------------------------------------------------- Timestamp(s)\tPassed Called reads\tFailed Reads\tBasecalled samples 60\t600\t0\t0 diff --git a/python/test/example_tests/test_load_sample_sheet.py b/python/test/example_tests/test_load_sample_sheet.py index e626b8d..20f9570 100644 --- a/python/test/example_tests/test_load_sample_sheet.py +++ b/python/test/example_tests/test_load_sample_sheet.py @@ -34,9 +34,9 @@ def sort_entries(el): return el.flow_cell_id, el.position_id def sort_barcode_info(el): - return el.barcode_name, el.lamp_barcode_id + return el.barcode_name - for (actual_entry, expected_entry) in zip( + for actual_entry, expected_entry in zip( sorted(actual, key=sort_entries), sorted(expected, key=sort_entries) ): self.assertEqual(actual_entry.flow_cell_id, expected_entry.flow_cell_id) @@ -145,35 +145,6 @@ def test_dual_barcoding(self): ], ) - def test_lampore_barcoding(self): - sample_sheet = load_sample_sheet_csv( - sample_sheet_csv_path("good", "lampore_barcoding") - ) - - self.compare_sample_sheet( - sample_sheet, - [ - ParsedSampleSheetEntry( - flow_cell_id="FC001", - position_id=None, - sample_id=None, - experiment_id=None, - barcode_info=[ - BarcodeUserData( - barcode_name="barcode01", - lamp_barcode_id="FIP01", - alias="alias01", - ), - BarcodeUserData( - barcode_name="barcode02", - lamp_barcode_id="FIP01", - alias="alias02", - ), - ], - ), - ], - ) - def test_multiple_positions(self): sample_sheet = load_sample_sheet_csv( sample_sheet_csv_path("good", "multiple_positions") @@ -241,7 +212,7 @@ def test_bad_column_names(self): "duplicate_columns": "Duplicate columns in sample sheet: 'sample_id'", "no_position_information": "Invalid position information in sample sheet. Must have exactly one of 'flow_cell_id' and 'position_id'", "both_position_information": "Invalid position information in sample sheet. Must have exactly one of 'flow_cell_id' and 'position_id'", - "conflicting_barcoding_columns": "Conflicting barcode column names: 'barcode', 'rapid_barcode', 'fip_barcode'", + "conflicting_barcoding_columns": "Conflicting barcode column names: 'barcode', 'internal_barcode', 'external_barcode'", "missing_barcoding_column": "Missing barcoding column names: 'external_barcode'", "barcoding_no_alias": "Missing 'alias' column", "alias_no_barcoding": "'alias' column supplied, but no other barcode information in sample sheet", @@ -268,8 +239,6 @@ def test_bad_records(self): "barcode": "Line 2: Bad 'barcode' name 'bad'; expected a name like 'barcode01'", "internal_barcode": "Line 2: Bad 'internal_barcode' name 'bad'; expected a name like 'internal01'", "external_barcode": "Line 2: Bad 'external_barcode' name 'bad'; expected a name like 'external01'", - "rapid_barcode": "Line 2: Bad 'rapid_barcode' name 'bad'; expected a name like 'barcode01'", - "fip_barcode": "Line 2: Bad 'fip_barcode' name 'bad'; expected a name like 'FIP01'", "duplicate_barcode": "Line 3: Duplicate barcode: 'barcode01'", "duplicate_alias": "Line 3: Duplicate alias: 'alias'", } diff --git a/python/test/example_tests/test_start_protocol.py b/python/test/example_tests/test_start_protocol.py index b6821fa..ae23cad 100644 --- a/python/test/example_tests/test_start_protocol.py +++ b/python/test/example_tests/test_start_protocol.py @@ -467,7 +467,7 @@ def test_basecalling_start_protocol(): assert protocol.identifier == TEST_PROTOCOL_IDENTIFIER assert protocol.args == [ "--base_calling=on", - "--guppy_filename=%s" % TEST_BASECLL_MODEL_OTHER, + "--basecaller_filename=%s" % TEST_BASECLL_MODEL_OTHER, "--fast5=off", "--pod5=off", "--fastq=off", @@ -582,10 +582,6 @@ def test_barcoding_start_protocol(): "barcoding_kits=['foo-barcodes',]", "trim_barcodes=on", "require_barcodes_both_ends=on", - "detect_mid_strand_barcodes=on", - "min_score=5.0", - "min_score_rear=6.0", - "min_score_mid=7.0", "--fast5=off", "--pod5=off", "--fastq=off", @@ -959,10 +955,6 @@ def test_sample_sheet_start_protocol(): "barcoding_kits=['foo-barcodes',]", "trim_barcodes=on", "require_barcodes_both_ends=on", - "detect_mid_strand_barcodes=on", - "min_score=5.0", - "min_score_rear=6.0", - "min_score_mid=7.0", "--fast5=off", "--pod5=off", "--fastq=off", @@ -978,7 +970,7 @@ def test_sample_sheet_start_protocol(): ] def barcode_user_info_key(el): - return el.barcode_name, el.lamp_barcode_id + return el.barcode_name actual_barcode_user_info = sorted( actual_barcode_user_info, key=barcode_user_info_key @@ -1043,10 +1035,6 @@ def barcode_user_info_key(el): "barcoding_kits=['foo-barcodes',]", "trim_barcodes=on", "require_barcodes_both_ends=on", - "detect_mid_strand_barcodes=on", - "min_score=5.0", - "min_score_rear=6.0", - "min_score_mid=7.0", "--fast5=off", "--pod5=off", "--fastq=off", @@ -1062,7 +1050,7 @@ def barcode_user_info_key(el): ] def barcode_user_info_key(el): - return el.barcode_name, el.lamp_barcode_id + return el.barcode_name actual_barcode_user_info = sorted( actual_barcode_user_info, key=barcode_user_info_key diff --git a/python/test/testutils_tests/test_bidirectional_rpc.py b/python/test/testutils_tests/test_bidirectional_rpc.py index 6ea192f..ddd5a10 100644 --- a/python/test/testutils_tests/test_bidirectional_rpc.py +++ b/python/test/testutils_tests/test_bidirectional_rpc.py @@ -8,6 +8,7 @@ # TODO: Explanation of data flow in this RPC """ + import logging import random import time @@ -42,7 +43,6 @@ def _read_data_generator(self): sample_number = 0 defaults = dict( id=str(uuid4()), - number=random.randint(1, 10000), start_sample=sample_number, chunk_start_sample=sample_number, chunk_length=sample_length, @@ -174,7 +174,7 @@ def test_get_live_reads(self): minknow_api.data_pb2.GetLiveReadsRequest.Action( action_id=str(uuid4()), channel=key, - number=r.number, + id=r.id, unblock=minknow_api.data_pb2.GetLiveReadsRequest.UnblockAction( duration=1, ),