diff --git a/python/minknow_api/_version.py b/python/minknow_api/_version.py index 800b808..9af9785 100644 --- a/python/minknow_api/_version.py +++ b/python/minknow_api/_version.py @@ -1 +1 @@ -__version__ = '5.9.1' \ No newline at end of file +__version__ = '5.9.5' \ No newline at end of file diff --git a/python/minknow_api/acquisition_pb2.py b/python/minknow_api/acquisition_pb2.py index f2e0177..d63bf5e 100644 --- a/python/minknow_api/acquisition_pb2.py +++ b/python/minknow_api/acquisition_pb2.py @@ -149,6 +149,18 @@ _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. +""" StopRequest.__doc__ = """Attributes: wait_until_ready: Defaults to false If false will return as soon as minknow @@ -174,51 +186,48 @@ configuration options for further details. This option has no effect on PromethIONs. Since 1.15.2 """ -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. -""" -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. +BreamInfo.__doc__ = """Information provided by Bream. Note that this is provided by the +protocol, and some protocols may choose not to provide this. 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). + mux_scan_metadata: + Presentation information for mux scan results. + mux_scan_results: + Mux scan results. + target_translocation_speed: + The ideal translocation speed range. This can be used to + provide context for speed graphs (see the statistics RPCs), + showing what range is considered "good". + target_q_score: + The ideal quality (Q) score range. This can be used to + provide context for q-score graphs (see the statistics RPCs), + showing what range is considered "good". + target_temperature: + The ideal temperature range. This can be used to provide + context for temperature (see the statistics RPCs), showing + what range is considered "good". Note that a protocol may + request a different temperature range than this (eg: it might + request a tighter range, or it may adjust the temperature it + is requesting throughout the run). This intended only to + provide context when presenting data to users. """ -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.""" -MuxScanMetadata.CategoryGroup.__doc__ = """Attributes: +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: - The name of the group. + 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 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. -""" -GetAcquisitionRunInfoRequest.__doc__ = """Attributes: - run_id: - The acquisition period to get information about. -""" -GetProgressResponse.RawPerChannel.__doc__ = """Attributes: - acquired: - Number of samples (per channel) acquired from the device. - processed: - Number of samples (per channel) passed to the analysis - pipeline for processing. This can be compared to acquired to - see how far behind the analysis is lagging. + 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 @@ -273,6 +282,109 @@ 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. +""" +ChannelStateInfo.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. +""" +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. + +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. +""" +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. +""" StartRequest.__doc__ = """ Protobuf messages for input/output of RPC calls Attributes: @@ -346,6 +458,8 @@ Start request that will be used to trigger analysis, used to union over all the different types of analysis possible. """ +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 @@ -357,6 +471,64 @@ bytes_to_write_completed: Number of bytes which minknow has written to final location. """ +StartResponse.__doc__ = """Attributes: + run_id: + Globally-unique identifier generated when the acquisition is + started. This is guaranteed to unique, including aross + sequencing devices. +""" +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 +""" +GetProgressResponse.RawPerChannel.__doc__ = """Attributes: + acquired: + Number of samples (per channel) acquired from the device. + processed: + Number of samples (per channel) passed to the analysis + 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 @@ -366,6 +538,10 @@ hdf_mode: Defaults to UNSPECIFIED, since this setting is optional """ +GetAcquisitionRunInfoRequest.__doc__ = """Attributes: + run_id: + The acquisition period to get information about. +""" AcquisitionYieldSummary.__doc__ = """Attributes: read_count: Number of reads selected by analysis as good reads. The reads @@ -433,180 +609,4 @@ bases, if "alignment_matches" is 2500, then "alignment_coverage" will be 0.5 Since 4.3 """ -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). -""" -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. -""" -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). -""" -GetProgressResponse.__doc__ = """Attributes: - raw_per_channel: - The amount of raw data (per channel) that has been acquired - and processed. -""" -StartResponse.__doc__ = """Attributes: - run_id: - Globally-unique identifier generated when the acquisition is - started. This is guaranteed to unique, including aross - sequencing devices. -""" -ChannelStateInfo.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. -""" -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. -""" -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. -""" -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. -""" -BreamInfo.__doc__ = """Information provided by Bream. Note that this is provided by the -protocol, and some protocols may choose not to provide this. - -Attributes: - mux_scan_metadata: - Presentation information for mux scan results. - mux_scan_results: - Mux scan results. - target_translocation_speed: - The ideal translocation speed range. This can be used to - provide context for speed graphs (see the statistics RPCs), - showing what range is considered "good". - target_q_score: - The ideal quality (Q) score range. This can be used to - provide context for q-score graphs (see the statistics RPCs), - showing what range is considered "good". - target_temperature: - The ideal temperature range. This can be used to provide - context for temperature (see the statistics RPCs), showing - what range is considered "good". Note that a protocol may - request a different temperature range than this (eg: it might - request a tighter range, or it may adjust the temperature it - is requesting throughout the run). This intended only to - provide context when presenting data to users. -""" -BreamInfo.Range.__doc__ = """Represents a range of values.""" # @@protoc_insertion_point(module_scope) diff --git a/python/minknow_api/analysis_configuration_pb2.py b/python/minknow_api/analysis_configuration_pb2.py index b00cb9a..005e96d 100644 --- a/python/minknow_api/analysis_configuration_pb2.py +++ b/python/minknow_api/analysis_configuration_pb2.py @@ -212,11 +212,42 @@ read_scale_tracking: Parameters for read scale tracking: """ -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.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 @@ -224,100 +255,43 @@ channels: Control the way channels are enabled for this data type. """ -WriterConfiguration.BulkConfiguration.__doc__ = """Control settings for the bulk writer - -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 -""" -DynamicAnalysisConfiguration.ReadScaleTracking.__doc__ = """Attributes: - conductance_scan_voltage: - Set the voltage the most recent conductance scan occured at. - channel_conductance: - Per channel/well conductance values -""" -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. -""" -WriterConfiguration.ReadPod5Configuration.__doc__ = """Attributes: - enable: - Control if a POD5 file should be generated per channel. - file_pattern: - The pattern used to find a POD5 files name. default: pod5{bas - ecall_status}/{flow_cell_id}_{run_id}_{batch_number}.pod5 - Where each {xxx} section is replaced with an attribute from - the minknow state when the file is written. See file pattern - attributes above. - 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) - disable_writing_passed_reads: - Prevent reads which have successfully basecalled being written - to pod5. - disable_writing_failed_reads: - Prevent reads which have failed basecalling being written to - pod5. - disable_writing_force_skipped_reads: - disable writing reads which have been force skipped by the - basecaller. - 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 +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. """ WriterConfiguration.ReadBamConfiguration.__doc__ = """Attributes: enable: @@ -361,6 +335,78 @@ 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 +""" +PoreTypeConfiguration.ChannelWellPoreTypeConfigurations.__doc__ = """Attributes: + pore_types: + Map with pore type as key, mapped to the list of wells to set + for. It is undefined what will happen if one call sets the + pore type of a channel and well to two pore types. +""" +ReadClassificationParams.__doc__ = """Attributes: + max_sample_size: + This tells minknow the maximum number of means to store in + memory before using a different strategy to calculate medians. + If the number of means goes over this size then the strategy + used may be less accurate, but will not use as much memory in + minknow + selected_classifications: + A list of classifications that are deemed interesting, and + will be marked to be written out to file + open_pore_classifications: + A set of classifications whose level should be tracked as the + level of open pore (fed back into read detection analysis). + Read chunks selected by this filter will be aggregated for use + in read detection. + open_pore_ewma_weight: + A weighting figure for the exponentially weighted moving + average given to the newest data. eg. 0.7 would weight new + data with 0.3 and all previous data with 0.7. By default 0.5 + is used. + open_pore_ignore_after_reset_seconds: + A number of seconds to ignore new chunks for after a reset + occurs on a channel this allows analysis to ignore spikes or + bad data on the channel for a small section of time. By + default 0.0 is used - and chunks are accepted immediately. + classification_strategy: + Determine how to classify a whole read based on the strategy + 'ultimate': Chooses the last (ultimate) read chunk's + classification 'penultimate': Chooses the second-to-last + read chunk's clasification 'modal': Chooses the most + common classification out of all read chunks 'threshold': + Chooses a classification based on the combination of threshold + parameters. If selected, values for the + "selected_classifications_fraction_required" + and "selected_chunks_required" fields will be used to + determine the read classification (see + below). + selected_classifications_fraction_required: + For the "threshold" classification strategy, specify the + minimum fraction (in duration) of a completed read that needs + to be in any of the "selected_classifications". For example, + using 0 means that all reads will written out unless further + constrained by the "selected_classifications_chunk_required" + field. Note that this option only applies to the 'threshold' + classification strategy and will be ignored for other + classification strategies. + selected_classifications_chunks_required: + For the "threshold" classification strategy, specify the + minimum number of chunks of a completed read that needs to be + in any of the "selected_classifications". For example, using 1 + means that the entire read will be written if ANY chunk has a + classification in "selected_classifications" unless further + constrained by the + "selected_classifications_fraction_required" field. Note that + this option only applies to the 'threshold' classification + strategy and will be ignored for other classification + strategies. +""" +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 @@ -377,142 +423,178 @@ ungrouped. This can be used to order the channel states after merging the groups. """ -BasecallerConfiguration.ReadFiltering.__doc__ = """Attributes: - min_duplex_qscore: - Since 5.8 +DynamicAnalysisConfiguration.ReadScaleTracking.ChannelConductance.__doc__ = """Attributes: + well_conductance: + Per well conductance values. """ -ChannelStates.Logic.Ranges.__doc__ = """Dont really like this way of doing it, but it has to match the old -way...""" -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. +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. + 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} 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 """ -WriterConfiguration.__doc__ = """Configuration for the output writers for MinKNOWs analysis pipeline. -Each writer has its own section in this message, where individual data -elements can be enabled or disabled. File pattern attributes ------------------------ Writers have a 'file_pattern' field which -controls where individual files will be written to. The pattern is -expanded for each individual read, and then the read placed in the -required file. The tokens used to expand depend on the file type: -Read centric files (fastq, (multi-)fast5, protobuf): - -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 -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 -the connected flow cell. - flow_cell_id: Flow cell integer as -read from eeprom. - machine_id: Name of the machine -(hostname or machine identifier depending on the sequencer type). - -device_id: Name of the connected sequencing device (eg. -MN12345). - sample_id: Sample id entered by the user when -starting a protocol. - version_string: Version string of the -running MinKNOW instance - protocol_group_id: Protocol group -entered by user when starting a protocol. - protocol_purpose: -Prupose of protocol (see protocol.set_protocol_purpose()) - -Attributes: - read_fast5: - Configuration for the fast5 writer. If not specified, no - multi fast5 outputs are generated. - read_fastq: - Configuration for the fastq writer. If not specified, no - fastq outputs are generated. - read_bam: - Configuration for the BAM writer. If not specified, no BAM - outputs are generated. - read_pod5: - Configuration for the POD5 writer. If not specified no POD5 - outputs are generated. - sequencing_summary: - Configuration for Sequencing Summary file If not specified, - no summary file is generated. - bulk: - Configuration for the bulk writer. If not specified, a basic - bulk output is generated. - report: - Configuration for the report writer If - acquisition.StartRequest.generate_report is set for the - acquisition period, and empty paths (or no report config) are - supplied for reports default paths are used. - read_filters: - Parameters for filtering reads for writing. If not present, - then no filtering will be applied, so no reads will be - excluded. +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). """ -DynamicAnalysisConfiguration.ReadScaleTracking.ChannelConductance.__doc__ = """Attributes: - well_conductance: - Per well conductance values. +WriterConfiguration.ReadPod5Configuration.__doc__ = """Attributes: + enable: + Control if a POD5 file should be generated per channel. + file_pattern: + The pattern used to find a POD5 files name. default: pod5{bas + ecall_status}/{flow_cell_id}_{run_id}_{batch_number}.pod5 + Where each {xxx} section is replaced with an attribute from + the minknow state when the file is written. See file pattern + attributes above. + 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) + disable_writing_passed_reads: + Prevent reads which have successfully basecalled being written + to pod5. + disable_writing_failed_reads: + Prevent reads which have failed basecalling being written to + pod5. + disable_writing_force_skipped_reads: + disable writing reads which have been force skipped by the + basecaller. + 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 """ -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.""" -AnalysisConfiguration.__doc__ = """Attributes: - read_scaling: - Add read scale tracking to the pipeline. If this message is - unspecified, read scaling is not 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. """ -BarcodingConfiguration.__doc__ = """Since 3.5 +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: - 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.ChannelList.__doc__ = """Attributes: - channels: - List of channel names (one based) which should be enabled for - writing. + 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. """ -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. +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: @@ -551,44 +633,6 @@ value of 0 will disable shifting of mux changes. Note: no longer used. """ -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. -""" ChannelStates.Logic.__doc__ = """Attributes: rank: Specifies the order in which channel state criteria will be @@ -611,63 +655,43 @@ ranges: Range is [lower_pa, upper_pa) """ -ReadClassificationParams.__doc__ = """Attributes: - max_sample_size: - This tells minknow the maximum number of means to store in - memory before using a different strategy to calculate medians. - If the number of means goes over this size then the strategy - used may be less accurate, but will not use as much memory in - minknow - selected_classifications: - A list of classifications that are deemed interesting, and - will be marked to be written out to file - open_pore_classifications: - A set of classifications whose level should be tracked as the - level of open pore (fed back into read detection analysis). - Read chunks selected by this filter will be aggregated for use - in read detection. - open_pore_ewma_weight: - A weighting figure for the exponentially weighted moving - average given to the newest data. eg. 0.7 would weight new - data with 0.3 and all previous data with 0.7. By default 0.5 - is used. - open_pore_ignore_after_reset_seconds: - A number of seconds to ignore new chunks for after a reset - occurs on a channel this allows analysis to ignore spikes or - bad data on the channel for a small section of time. By - default 0.0 is used - and chunks are accepted immediately. - classification_strategy: - Determine how to classify a whole read based on the strategy - 'ultimate': Chooses the last (ultimate) read chunk's - classification 'penultimate': Chooses the second-to-last - read chunk's clasification 'modal': Chooses the most - common classification out of all read chunks 'threshold': - Chooses a classification based on the combination of threshold - parameters. If selected, values for the - "selected_classifications_fraction_required" - and "selected_chunks_required" fields will be used to - determine the read classification (see - below). - selected_classifications_fraction_required: - For the "threshold" classification strategy, specify the - minimum fraction (in duration) of a completed read that needs - to be in any of the "selected_classifications". For example, - using 0 means that all reads will written out unless further - constrained by the "selected_classifications_chunk_required" - field. Note that this option only applies to the 'threshold' - classification strategy and will be ignored for other - classification strategies. - selected_classifications_chunks_required: - For the "threshold" classification strategy, specify the - minimum number of chunks of a completed read that needs to be - in any of the "selected_classifications". For example, using 1 - means that the entire read will be written if ANY chunk has a - classification in "selected_classifications" unless further - constrained by the - "selected_classifications_fraction_required" field. Note that - this option only applies to the 'threshold' classification - strategy and will be ignored for other classification - strategies. +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: enable: @@ -716,6 +740,136 @@ 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.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. + +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). +""" +WriterConfiguration.__doc__ = """Configuration for the output writers for MinKNOWs analysis pipeline. +Each writer has its own section in this message, where individual data +elements can be enabled or disabled. File pattern attributes +----------------------- Writers have a 'file_pattern' field which +controls where individual files will be written to. The pattern is +expanded for each individual read, and then the read placed in the +required file. The tokens used to expand depend on the file type: +Read centric files (fastq, (multi-)fast5, protobuf): - +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 +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 +the connected flow cell. - flow_cell_id: Flow cell integer as +read from eeprom. - machine_id: Name of the machine +(hostname or machine identifier depending on the sequencer type). - +device_id: Name of the connected sequencing device (eg. +MN12345). - sample_id: Sample id entered by the user when +starting a protocol. - version_string: Version string of the +running MinKNOW instance - protocol_group_id: Protocol group +entered by user when starting a protocol. - protocol_purpose: +Prupose of protocol (see protocol.set_protocol_purpose()) + +Attributes: + read_fast5: + Configuration for the fast5 writer. If not specified, no + multi fast5 outputs are generated. + read_fastq: + Configuration for the fastq writer. If not specified, no + fastq outputs are generated. + read_bam: + Configuration for the BAM writer. If not specified, no BAM + outputs are generated. + read_pod5: + Configuration for the POD5 writer. If not specified no POD5 + outputs are generated. + sequencing_summary: + Configuration for Sequencing Summary file If not specified, + no summary file is generated. + bulk: + Configuration for the bulk writer. If not specified, a basic + bulk output is generated. + report: + Configuration for the report writer If + acquisition.StartRequest.generate_report is set for the + acquisition period, and empty paths (or no report config) are + supplied for reports default paths are used. + read_filters: + Parameters for filtering reads for writing. If not present, + 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. +""" +BasecallerConfiguration.ReadFiltering.__doc__ = """Attributes: + min_duplex_qscore: + Since 5.8 +""" +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. +""" BasecallerConfiguration.__doc__ = """Since 3.0 Attributes: @@ -772,67 +926,63 @@ Note: Since 5.9 this option has no effect, the basecaller is responsible for deciding read splitting score. """ -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.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.TargetFiltering.__doc__ = """Since 3.7""" -ReadScalingParams.__doc__ = """Since 5.3 Quantile Information: +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. +""" +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. -""" -PoreTypeConfiguration.ChannelWellPoreTypeConfigurations.__doc__ = """Attributes: - pore_types: - Map with pore type as key, mapped to the list of wells to set - for. It is undefined what will happen if one call sets the - pore type of a channel and well to two pore types. + 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 """ WriterConfiguration.ReportConfiguration.__doc__ = """Control settings for the report writer @@ -910,202 +1060,52 @@ - "custom_report{suffix}.txt" See file pattern attributes above. """ -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: - 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). -""" -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. -""" -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) +AnalysisConfiguration.__doc__ = """Attributes: + read_scaling: + Add read scale tracking to the pipeline. If this message is + unspecified, read scaling is not enabled. """ -LampConfiguration.__doc__ = """Since 4.1 +ReadScalingParams.__doc__ = """Since 5.3 Quantile Information: 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. -""" -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.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.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. - 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} 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 -""" -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. + 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. """ # @@protoc_insertion_point(module_scope) diff --git a/python/minknow_api/basecaller_pb2.py b/python/minknow_api/basecaller_pb2.py index 1617180..8edf7fc 100644 --- a/python/minknow_api/basecaller_pb2.py +++ b/python/minknow_api/basecaller_pb2.py @@ -131,82 +131,24 @@ _globals['_SENDPINGRESPONSE']._serialized_end=4769 _globals['_BASECALLER']._serialized_start=5000 _globals['_BASECALLER']._serialized_end=6765 -RunInfo.__doc__ = """Attributes: +CancelRequest.__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. + An identifier as returned from a call to start() or list(). """ -StartAlignmentRequest.__doc__ = """Attributes: - name: - User specified name to identify the alignment run. - input_reads_directories: - Input directories to search for reads to be aligned. - 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 aligned reads will be placed. - recursive: - Recursively find fast5 files to align in the - `input_reads_directories`. If False, only the fast5 files - directly in one of the `input_reads_directories` will be - aligned. If True, subdirectories of those directories will - also be searched recursively. - alignment_configuration: - Options to control alignment performed once basecalling reads - is complete. +SendPingResponse.__doc__ = """Since 5.0""" +ListConfigsByKitResponse.PerFlowCell.__doc__ = """Attributes: + kit_configs: + Key: kit name (eg: "SQK-LSK109") Value: list of configuration + names """ -ListSettingsForPostProcessingProtocolRequest.__doc__ = """Attributes: - identifier: - specify the protocol with a string containing all the - protocol's identifying components, eg: - "SYSTEM:post_processing/artic" +StartBarcodingResponse.__doc__ = """Attributes: + id: + An identifier for the basecalling run that was started. This + can be used to monitor or cancel the run. """ -StartPostProcessingProtocolResponse.__doc__ = """Attributes: +StartAlignmentResponse.__doc__ = """Attributes: id: - An identifier for the protocol run that was started. This can + An identifier for the alignment run that was started. This can be used to monitor or cancel the run. """ StartPostProcessingProtocolRequest.__doc__ = """Attributes: @@ -228,21 +170,69 @@ basecaller.list_settings_for_protocol) keys missing from the original protocol will cause errors. """ -ListSettingsForPostProcessingProtocolResponse.__doc__ = """Attributes: - requires_fast5_input: - Does the protocol require fast5 files as input - requires_fastq_input: - Does the protocol require fastq files as input - requires_bam_input: - Does the protocol require bam files as input - protocol_settings: - List of protocol settings used by the post processing protocol +GetInfoResponse.__doc__ = """Attributes: + runs: + Information about the requested runs. +""" +StartAlignmentRequest.__doc__ = """Attributes: + name: + User specified name to identify the alignment run. + input_reads_directories: + Input directories to search for reads to be aligned. + 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 aligned reads will be placed. + recursive: + Recursively find fast5 files to align in the + `input_reads_directories`. If False, only the fast5 files + directly in one of the `input_reads_directories` will be + aligned. If True, subdirectories of those directories will + also be searched recursively. + alignment_configuration: + 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: + 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. +""" StartRequest.__doc__ = """ Protobuf messages for input/output of RPC calls Attributes: @@ -316,12 +306,27 @@ Start request that will be used to trigger analysis, used to union over all the different types of analysis possible. """ -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. +ListSettingsForPostProcessingProtocolResponse.__doc__ = """Attributes: + requires_fast5_input: + Does the protocol require fast5 files as input + requires_fastq_input: + Does the protocol require fastq files as input + requires_bam_input: + Does the protocol require bam files as input + 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: @@ -347,25 +352,12 @@ Options to control barcoding performed once basecalling reads is complete. """ -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. -""" -StartBasecallingResponse.__doc__ = """Attributes: - id: - An identifier for the basecalling run that was started. This - can be used to monitor or cancel the run. -""" -ListConfigsByKitResponse.__doc__ = """Attributes: - flow_cell_configs: - Key: flow cell type (eg: "FLO-MIN107") Value: FlowCellConfigs - describing configurations available for that flow cell. +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: @@ -383,24 +375,52 @@ provider: The source of the post-processing protocol. """ -GetInfoResponse.__doc__ = """Attributes: - runs: - Information about the requested runs. -""" -SendPingResponse.__doc__ = """Since 5.0""" -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' +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. """ SendPingRequest.__doc__ = """Since 5.0 @@ -412,17 +432,18 @@ Should the ping fail to send, the number of days the ping will be stored before being cleaned up. """ -ListConfigsByKitResponse.PerFlowCell.__doc__ = """Attributes: - kit_configs: - Key: kit name (eg: "SQK-LSK109") Value: list of configuration - names -""" -UpdateProgressRequest.__doc__ = """Attributes: +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: - id of the protocol to update (stored in environment variable - for python process) - progress: - Progress indicator, 0-1. + An identifier, as returned by start(). + list: + A list of identifiers, as returned by start(). """ StartBasecallingRequest.__doc__ = """Attributes: name: @@ -475,31 +496,10 @@ this option has no effect, the basecaller is responsible for deciding when read splitting should be enabled. """ -StartBarcodingResponse.__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: - id: - An identifier for the alignment run that was started. This can - be used to monitor or cancel the run. -""" -CancelRequest.__doc__ = """Attributes: - id: - An identifier as returned from a call to start() or list(). -""" -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(). +ListSettingsForPostProcessingProtocolRequest.__doc__ = """Attributes: + identifier: + specify the protocol with a string containing all the + protocol's identifying components, eg: + "SYSTEM:post_processing/artic" """ # @@protoc_insertion_point(module_scope) diff --git a/python/minknow_api/data_pb2.py b/python/minknow_api/data_pb2.py index 0e0c118..5f2e73a 100644 --- a/python/minknow_api/data_pb2.py +++ b/python/minknow_api/data_pb2.py @@ -177,25 +177,134 @@ _globals['_GETEXPERIMENTYIELDINFORESPONSE_FILEOPERATIONQUEUEPROGRESS_FILETYPEINFO']._serialized_end=9698 _globals['_DATASERVICE']._serialized_start=9701 _globals['_DATASERVICE']._serialized_end=10864 -GetReadStatisticsResponse.PerChannelData.__doc__ = """Attributes: - configurations: - Data for each channel configuration seen on this channel. - Note that each channel configuration will only appear once in - this list, and this list is *not* in any way ordered by time. - The only reason it is not a map is because of restrictions on - map key types. - samples_since_start: - The number of samples collected before this channel's first - sample. - seconds_since_start: - The number of seconds elapsed since data acquisition started. - This is the same as ``samples_since_start``, but expressed in - seconds. - samples_duration: - The number of samples collected for this channel. - seconds_duration: - The number of seconds of data captured for this session. This - is the same as ``samples_duration``, but expressed in seconds. +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. +""" +GetChannelStatesResponse.ChannelStateData.__doc__ = """Attributes: + channel: + Represents the channel number, indexed from one. (i.e. what + channel did the channel state change happened on) + state: + depending on the channel state request, MinKNOW can fill in + either the name or the criteria id of the channel state. The + criteria id (or state_id) is the number passed in the channel + states configuration. Note that MinKNOW also has some default + channel states (like unclassified, pending mux change) which + receive unique ids - these are numbers bigger than 200. + acquisition_raw_index: + Indices of when the channel state was first seen. For example, + if a request is done half way through the experiment, the + first message will contain the current state on the requested + channels. The acquisition/analysis index of these would be + from when the channel states were set. These are exactly the + same numbers we see in the bulk file, in the 'states' table + config: + Channel config (mux state) the channel state was determined + on. +""" +GetSignalBytesRequest.__doc__ = """Attributes: + length: + The amount of data to return. If this is omitted, data will + be streamed until the call is cancelled. + seconds: + The amount of data to return in seconds. The number of + samples returned will be just enough to cover this period of + time. Cannot be specified at the same time as ``samples``. + samples: + The amount of data to return in samples. The result will + contain exactly this many samples. If this is not possible, + the call will fail. Cannot be specified at the same time as + ``seconds``. + 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. + include_channel_configs: + Whether to include channel configuration settings. + include_bias_voltages: + Whether to include bias voltage information. + calibrated_data: + Whether the data should be calibrated. + return_when_listening: + When this value is set to true, then an empty message will be + sent back to the client to indicate that the backend has + acknowleged the request, and that any calls made that will + 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. +""" +GetDataTypesResponse.DataType.__doc__ = """Attributes: + type: + The basic type of the data item. + big_endian: + Whether the type is big-endian (high-byte first). For numeric + data types, if this is not set, they are little-endian (low- + byte first). + 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: @@ -217,84 +326,76 @@ classifications the user needs information about may allow the implementation to be more efficient. """ -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[...]) +GetReadStatisticsResponse.Statistics.__doc__ = """Attributes: + q_5: + Quantiles (percentiles) """ -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.__doc__ = """Attributes: + channels: + Data for each requested channel, in the same order as + requested. + 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 which all channels share in the calculated + statistics. Each individual channel may have samples from read + chunks previous to this sample due to read boundaries not + being consistent across channels. + seconds_since_start: + The number of seconds elapsed before the first sample included + in this response. This is the same as + ``samples_since_start``, but expressed 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. +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. """ -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. +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. """ -GetSignalMinMaxResponse.__doc__ = """Attributes: +GetSignalBytesResponse.ChannelConfigChange.__doc__ = """Attributes: + config: + The new channel configuration. + offset: + The offset in the returned data where the change was applied. +""" +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. +""" +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 @@ -309,13 +410,20 @@ The number of channels omitted at the start of the ``channels`` array. channels: - The window bounds for each requested channel. Note that + 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.Action.__doc__ = """Attributes: channel: @@ -329,25 +437,23 @@ Skip further data from this read, doesn't affect the read data. """ -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. -""" -UnlockChannelStatesRequest.__doc__ = """Attributes: +GetLiveReadsResponse.__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. channels: - The channels to activate (active = they will be considered for - channel state evaluation in the future). Channels are indexed - from 1. + 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. """ GetLiveReadsRequest.StreamSetup.__doc__ = """Attributes: first_channel: @@ -378,17 +484,118 @@ interested in. If a read starts with a classification not listed here the read is never sent to the client. """ -GetDataTypesResponse.DataType.__doc__ = """Attributes: - type: - The basic type of the data item. - big_endian: - Whether the type is big-endian (high-byte first). For numeric - data types, if this is not set, they are little-endian (low- - byte first). - size: - The size of the data type in bytes. +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. +""" +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[...]) +""" +GetLiveReadsRequest.__doc__ = """Attributes: + setup: + Read setup request, initialises channel numbers and type of + data returned. note: Must be specified in the first message + sent to MinKNOW. Once MinKNOW has the first setup message + reads are sent to the caller as requested. The user can then + resend a setup message as frequently as they need to in order + to reconfigure live reads - for example by changing if raw + data is sent with reads or not. + actions: + 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. + Note that each channel configuration will only appear once in + this list, and this list is *not* in any way ordered by time. + The only reason it is not a map is because of restrictions on + map key types. + samples_since_start: + The number of samples collected before this channel's first + sample. + seconds_since_start: + The number of seconds elapsed since data acquisition started. + This is the same as ``samples_since_start``, but expressed in + seconds. + samples_duration: + The number of samples collected for this channel. + seconds_duration: + The number of seconds of data captured for this session. This + is the same as ``samples_duration``, but expressed in seconds. """ -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 @@ -403,158 +610,13 @@ 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. -""" -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.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. -""" -GetSignalBytesRequest.__doc__ = """Attributes: - length: - The amount of data to return. If this is omitted, data will - be streamed until the call is cancelled. - seconds: - The amount of data to return in seconds. The number of - samples returned will be just enough to cover this period of - time. Cannot be specified at the same time as ``samples``. - samples: - The amount of data to return in samples. The result will - contain exactly this many samples. If this is not possible, - the call will fail. Cannot be specified at the same time as - ``seconds``. - 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. - include_channel_configs: - Whether to include channel configuration settings. - include_bias_voltages: - Whether to include bias voltage information. - calibrated_data: - Whether the data should be calibrated. - return_when_listening: - When this value is set to true, then an empty message will be - sent back to the client to indicate that the backend has - acknowleged the request, and that any calls made that will - affect the signal after that initial response will be - reflected in the next messages -""" -GetSignalBytesResponse.ChannelConfigChange.__doc__ = """Attributes: - config: - The new channel configuration. - offset: - The offset in the returned data where the change was applied. -""" -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. -""" -GetReadStatisticsResponse.Statistics.__doc__ = """Attributes: - q_5: - Quantiles (percentiles) -""" -GetLiveReadsResponse.__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. - 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. -""" -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. """ GetChannelStatesRequest.__doc__ = """Attributes: first_channel: @@ -581,72 +643,10 @@ message will be sent. This can be useful to force a minimum wakeup interval in the client code. """ -GetChannelStatesResponse.ChannelStateData.__doc__ = """Attributes: - channel: - Represents the channel number, indexed from one. (i.e. what - channel did the channel state change happened on) - state: - depending on the channel state request, MinKNOW can fill in - either the name or the criteria id of the channel state. The - criteria id (or state_id) is the number passed in the channel - states configuration. Note that MinKNOW also has some default - channel states (like unclassified, pending mux change) which - receive unique ids - these are numbers bigger than 200. - acquisition_raw_index: - Indices of when the channel state was first seen. For example, - if a request is done half way through the experiment, the - first message will contain the current state on the requested - channels. The acquisition/analysis index of these would be - from when the channel states were set. These are exactly the - same numbers we see in the bulk file, in the 'states' table - config: - Channel config (mux state) the channel state was determined - on. -""" -GetLiveReadsRequest.UnblockAction.__doc__ = """Attributes: - duration: - Duration of unblock in seconds. -""" -GetLiveReadsRequest.__doc__ = """Attributes: - setup: - Read setup request, initialises channel numbers and type of - data returned. note: Must be specified in the first message - sent to MinKNOW. Once MinKNOW has the first setup message - reads are sent to the caller as requested. The user can then - resend a setup message as frequently as they need to in order - to reconfigure live reads - for example by changing if raw - data is sent with reads or not. - actions: - Actions to take given data returned to the user - can only be - sent once the setup message above has been sent. -""" -GetReadStatisticsResponse.__doc__ = """Attributes: - channels: - Data for each requested channel, in the same order as - requested. - 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 which all channels share in the calculated - statistics. Each individual channel may have samples from read - chunks previous to this sample due to read boundaries not - being consistent across channels. - seconds_since_start: - The number of seconds elapsed before the first sample included - in this response. This is the same as - ``samples_since_start``, but expressed in seconds. -""" -LockChannelStatesRequest.__doc__ = """Attributes: +UnlockChannelStatesRequest.__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. + 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/device_pb2.py b/python/minknow_api/device_pb2.py index 92126db..1f7e994 100644 --- a/python/minknow_api/device_pb2.py +++ b/python/minknow_api/device_pb2.py @@ -256,187 +256,6 @@ _globals['_REGISTERFLOWCELLBARCODESRESPONSE']._serialized_end=6471 _globals['_DEVICESERVICE']._serialized_start=6741 _globals['_DEVICESERVICE']._serialized_end=10400 -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 -""" -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 -""" -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. -""" -UnblockRequest.__doc__ = """Attributes: - channels: - List of channels indexed from 1. - duration: - How long should an unblock last. -""" -SaturationConfig.UserThresholdSaturation.__doc__ = """User threshold is specified in pico amps - -Attributes: - enabled: - Set to enable or disable software saturation. - user_threshold_min_pa: - The minimum pA value that is not a saturation. If this value - is not specified, the previous value is kept. - user_threshold_max_pa: - The maximum pA value that is not a saturation. If this value - is not specified, the previous value is 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 -""" -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. -""" -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` -""" -SetTemperatureRequest.WaitForTemperatureSettings.__doc__ = """Attributes: - timeout: - Maximum duration (in seconds) to wait for the device to reach - temperature. Not specifying a value will wait for a maximum - of 5 minutes. - min_stable_duration: - Minimum duration (in seconds) that the reported temperature - must be continually within the target temperature range, - before the device is considered to have reached temperature. - A value of zero means that the device will be considered to - have reached temperature as soon as the reported temperature - is equal to the target temperature. Not specifying a value is - equivalent to specifying a value of zero. The - min_stable_duration must be less than or equal to the timeout - duration (if it were greater, then the temperature would never - be read as 'stable' before the time-out occurred). Since 3.4 - tolerance: - Specify an optional tolerance to apply to the wait. For - example, if the target temperature is 35, and the tolerance is - 1 any temperature in the range 34 - 36 will cause the request - to return. Default is 0.5 degree tolerance. -""" -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`. -""" -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. -""" -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 -delivered packet. software saturation is specified in adc units - -Attributes: - enabled: - Set to enable or disable software saturation. - software_min_adc: - The minimum adc value that is not a saturation. If this value - is not specified, the previous value is kept. - software_max_adc: - The maximum adc value that is not a saturation. If this value - is not specified, the previous value is kept. -""" -SetTemperatureRequest.SecondaryTemperatureLimits.__doc__ = """Attributes: - min: - The minimum permissible "secondary" temperature - max: - The maximum permissible "secondary" temperature -""" -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 -""" GetFlowCellInfoResponse.__doc__ = """Attributes: has_flow_cell: Whether there is a flow cell present. If both this and @@ -531,17 +350,65 @@ 384) that have been set by calls to register_flow_cell_barcodes() on this flow cell. Since 5.6 """ -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 +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. """ -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. +SetSampleRateResponse.__doc__ = """Attributes: + real_sample_rate: + The real sample rate is the actual sample rate that is set on + the device, which may be different from the actual value + passed into the rpc. For example on promethion, when it is + given a sample rate, it will round to the nearest 1000. So + 1499 becomes 1000 and 1500 becomes 2000 real sample rate For + a minion, the actual sample rate is determined via 3 separate + values; clock speed, integration time and clock divider, and + so not all values are possible. e.g. setting 3000 will return + 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`. +""" +SaturationConfig.UserThresholdSaturation.__doc__ = """User threshold is specified in pico amps + +Attributes: + enabled: + Set to enable or disable software saturation. + user_threshold_min_pa: + The minimum pA value that is not a saturation. If this value + is not specified, the previous value is kept. + user_threshold_max_pa: + 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 @@ -560,30 +427,24 @@ the type of component or cannot be read at the current time, then this field will be blank. """ -SetSampleRateResponse.__doc__ = """Attributes: - real_sample_rate: - The real sample rate is the actual sample rate that is set on - the device, which may be different from the actual value - passed into the rpc. For example on promethion, when it is - given a sample rate, it will round to the nearest 1000. So - 1499 becomes 1000 and 1500 becomes 2000 real sample rate For - a minion, the actual sample rate is determined via 3 separate - values; clock speed, integration time and clock divider, and - so not all values are possible. e.g. setting 3000 will return - 3012 real sample rate. See 'sampling_frequency' in - MinionDeviceService for a slightly more in depth explanation -""" -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`. +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 """ -ReturnedChannelConfiguration.__doc__ = """Describes the configuration of a channel on the device. Note that +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. @@ -605,28 +466,6 @@ (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. - unblock: - Whether the unblock voltage is connected to the integrator - (measurement circuit). Provides a reverse potential across - the connected well. This can be used to drive molecules back - out of the well. -""" -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 -""" -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 """ GetDeviceInfoResponse.__doc__ = """Attributes: device_id: @@ -671,45 +510,132 @@ distinct signal values that can be produced by the device's analog to digital converter (ADC). """ -GetChannelConfigurationResponse.__doc__ = """Attributes: +SetFlowCellBarcodeKitRequest.__doc__ = """Attributes: + id: + The Barcode Kit ID can be up to 8 characters long +""" +SetChannelConfigurationRequest.__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 + 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 """ -GetTemperatureResponse.MinIONTemperature.__doc__ = """Packet of temperatures appropriate for a MinION. +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 +""" +SetTemperatureRequest.WaitForTemperatureSettings.__doc__ = """Attributes: + timeout: + Maximum duration (in seconds) to wait for the device to reach + temperature. Not specifying a value will wait for a maximum + of 5 minutes. + min_stable_duration: + Minimum duration (in seconds) that the reported temperature + must be continually within the target temperature range, + before the device is considered to have reached temperature. + A value of zero means that the device will be considered to + have reached temperature as soon as the reported temperature + is equal to the target temperature. Not specifying a value is + equivalent to specifying a value of zero. The + min_stable_duration must be less than or equal to the timeout + duration (if it were greater, then the temperature would never + be read as 'stable' before the time-out occurred). Since 3.4 + tolerance: + Specify an optional tolerance to apply to the wait. For + example, if the target temperature is 35, and the tolerance is + 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 +""" +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 +""" +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 +""" +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: - 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 + 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 """ -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` +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. """ -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 +ReturnedChannelConfiguration.__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. + unblock: + Whether the unblock voltage is connected to the integrator + (measurement circuit). Provides a reverse potential across + the connected well. This can be used to drive molecules back + out of the well. """ SetTemperatureRequest.__doc__ = """Attributes: temperature: @@ -759,31 +685,105 @@ the call to `set_temperature()` returns, these limits are no longer checked. Since 5.5 """ -SetFlowCellBarcodeKitRequest.__doc__ = """Attributes: - id: - The Barcode Kit ID can be up to 8 characters long +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. """ -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. +GetTemperatureResponse.MinIONTemperature.__doc__ = """Packet of temperatures appropriate for a MinION. 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. + 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 +""" +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 +""" +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.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 +delivered packet. software saturation is specified in adc units + +Attributes: + enabled: + Set to enable or disable software saturation. + software_min_adc: + The minimum adc value that is not a saturation. If this value + is not specified, the previous value is kept. + software_max_adc: + 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. """ # @@protoc_insertion_point(module_scope) diff --git a/python/minknow_api/examples/start_protocol.py b/python/minknow_api/examples/start_protocol.py index 8385b7e..8c7a960 100644 --- a/python/minknow_api/examples/start_protocol.py +++ b/python/minknow_api/examples/start_protocol.py @@ -192,54 +192,73 @@ def parse_args(): parser.add_argument( "--fastq", action="store_true", - help="enables FastQ file output, defaulting to 4000 reads per file", + help="enables FastQ file output.", ) parser.add_argument( "--fastq-reads-per-file", type=int, - default=4000, help="set the number of reads combined into one FastQ file.", ) + parser.add_argument( + "--fastq-batch-duration", + type=int, + help="Duration (in seconds) of a single fastq file batch; if set to 0, time-based batching is disabled", + ) + parser.add_argument( "--fast5", action="store_true", - help="enables Fast5 file output, defaulting to 4000 reads per file, this will store raw, " - "fastq and trace-table data", + help="enables Fast5 file output, this will store raw, fastq and trace-table data.", ) parser.add_argument( "--fast5-reads-per-file", type=int, - default=4000, help="set the number of reads combined into one Fast5 file.", ) + parser.add_argument( + "--fast5-batch-duration", + type=int, + help="Duration (in seconds) of a single fast5 file batch; if set to 0, time-based batching is disabled", + ) + parser.add_argument( "--pod5", action="store_true", - help="enables Pod5 file output, defaulting to 4000 reads per file, this will store raw data.", + help="enables Pod5 file output, this will store raw data.", ) parser.add_argument( "--pod5-reads-per-file", type=int, - default=4000, help="set the number of reads combined into one Pod5 file.", ) + parser.add_argument( + "--pod5-batch-duration", + type=int, + help="Duration (in seconds) of a single pod5 file batch; if set to 0, time-based batching is disabled", + ) + parser.add_argument( "--bam", action="store_true", - help="enables BAM file output, defaulting to 4000 reads per file", + help="enables BAM file output.", ) parser.add_argument( "--bam-reads-per-file", type=int, - default=4000, - help="set the number of reads combined into one BAM file.", + help="set the number of reads combined into one bam file.", + ) + + parser.add_argument( + "--bam-batch-duration", + type=int, + help="Duration (in seconds) of a single bam file batch; if set to 0, time-based batching is disabled", ) # Read until @@ -658,7 +677,8 @@ def build_output_arguments(args, name): if not getattr(args, name): return None return protocols.OutputArgs( - reads_per_file=getattr(args, "%s_reads_per_file" % name) + reads_per_file=getattr(args, "%s_reads_per_file" % name, None), + batch_duration=getattr(args, "%s_batch_duration" % name, None), ) fastq_arguments = build_output_arguments(args, "fastq") diff --git a/python/minknow_api/instance_pb2.py b/python/minknow_api/instance_pb2.py index c0b4175..55ca2ed 100644 --- a/python/minknow_api/instance_pb2.py +++ b/python/minknow_api/instance_pb2.py @@ -97,6 +97,15 @@ _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. +""" N50.__doc__ = """Attributes: n50: N50 data, in basecalled bases This value is only streamed for @@ -140,6 +149,20 @@ 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` +""" +StreamDiskSpaceInfoRequest.__doc__ = """Attributes: + period: + Disk space information will be streamed with this value + determining the period in seconds between updates. A period of + 0 is invalid +""" DeviceInfo.__doc__ = """Attributes: device_state: The current state of the device @@ -193,23 +216,6 @@ guppy_connected_version: Version of guppy MinKNOW running with. Since 5.0 """ -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. -""" FilesystemDiskSpaceInfo.__doc__ = """disk-usage information for one file-system Attributes: @@ -242,10 +248,4 @@ A list of what types of file MinKNOW stores on this file- system, eg: reads, logs, intermediate-files, etc. """ -StreamDiskSpaceInfoRequest.__doc__ = """Attributes: - period: - Disk space information will be streamed with this value - determining the period in seconds between updates. A period of - 0 is invalid -""" # @@protoc_insertion_point(module_scope) diff --git a/python/minknow_api/keystore_pb2.py b/python/minknow_api/keystore_pb2.py index fd74e8c..5b96517 100644 --- a/python/minknow_api/keystore_pb2.py +++ b/python/minknow_api/keystore_pb2.py @@ -74,6 +74,25 @@ _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. + allow_missing: + Whether to allow missing values. If set, names that are not + present in the store will be ignored, but any present values + will still be removed. Otherwise, missing values will cause an + error to be returned (in which case nothing will be removed). + Defaults to 'false' +""" GetOneResponse.__doc__ = """Attributes: value: The requested value. @@ -92,33 +111,10 @@ message will be sent with the set values. Otherwise, missing values will cause an immediate error. Defaults to 'false' """ -RemoveRequest.__doc__ = """Attributes: - names: - The names of the values you wish to remove. - allow_missing: - Whether to allow missing values. If set, names that are not - present in the store will be ignored, but any present values - will still be removed. Otherwise, missing values will cause an - error to be returned (in which case nothing will be removed). - Defaults to 'false' -""" GetOneRequest.__doc__ = """Attributes: name: The name of the value to fetch. """ -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' -""" -GetResponse.__doc__ = """Attributes: - values: - The requested values. -""" StoreRequest.__doc__ = """Attributes: values: The values to store. See the notes in the KeyStore service @@ -143,4 +139,8 @@ removed_values: The values that have been removed. """ +GetResponse.__doc__ = """Attributes: + values: + The requested values. +""" # @@protoc_insertion_point(module_scope) diff --git a/python/minknow_api/log_pb2.py b/python/minknow_api/log_pb2.py index 68c1497..f6887a9 100644 --- a/python/minknow_api/log_pb2.py +++ b/python/minknow_api/log_pb2.py @@ -62,25 +62,6 @@ _globals['_COLLECTPINGSRESPONSE']._serialized_end=966 _globals['_LOGSERVICE']._serialized_start=1269 _globals['_LOGSERVICE']._serialized_end=1665 -GetUserMessagesRequest.__doc__ = """Attributes: - include_old_messages: - If set, any messages which have already been sent to listeners - will be sent to the new stream again, before new messages are - sent. If not specified - the default will not send messages - that were sent previously. note: there is a limit on how many - messages are recorded for replay. -""" -CollectPingsRequest.__doc__ = """Attributes: - collected_ping_file: - Any pings that are queued to be sent will be collected into a - zip file and written to this location. This location must be - in a folder writable by minknow. If the file name does not end - with ".zip", minknow will append ".zip" to the provided file - name. - include_previously_colleced_pings: - Normally previously collected pings are ignored, but by - setting this they will be included. Defaults to False. -""" SendPingRequest.__doc__ = """Since 5.0 Attributes: @@ -104,6 +85,25 @@ Any extra data associated with the user message, as a map from key to data. """ +GetUserMessagesRequest.__doc__ = """Attributes: + include_old_messages: + If set, any messages which have already been sent to listeners + will be sent to the new stream again, before new messages are + sent. If not specified - the default will not send messages + that were sent previously. note: there is a limit on how many + messages are recorded for replay. +""" +CollectPingsRequest.__doc__ = """Attributes: + collected_ping_file: + Any pings that are queued to be sent will be collected into a + zip file and written to this location. This location must be + in a folder writable by minknow. If the file name does not end + with ".zip", minknow will append ".zip" to the provided file + name. + include_previously_colleced_pings: + Normally previously collected pings are ignored, but by + setting this they will be included. Defaults to False. +""" UserMessage.__doc__ = """Attributes: time: Timestamp for when the log message was emitted diff --git a/python/minknow_api/manager_pb2.py b/python/minknow_api/manager_pb2.py index 7667051..ed5c9bf 100644 --- a/python/minknow_api/manager_pb2.py +++ b/python/minknow_api/manager_pb2.py @@ -261,23 +261,118 @@ _globals['_SETFEATURESRESPONSE']._serialized_end=11506 _globals['_MANAGERSERVICE']._serialized_start=11889 _globals['_MANAGERSERVICE']._serialized_end=15918 -CreateDirectoryResponse.__doc__ = """Attributes: - path: - The path to the created directory. +GetFlowCellTypesResponse.__doc__ = """Response message for `ManagerService.get_flow_cell_types`. + +Attributes: + types: + The flow cell types. +""" +GetFlowCellTypesResponse.Info.__doc__ = """Information about a flow cell type. + +Attributes: + product_code: + The product code for the flow cell type. This is the user- + visible name for the flow cell type. It is the name used to + order flow cells, and is also displayed on the packaging. + While most product codes are 10 characters, be aware that + longer product codes can exist and have been used in the past. + Example: "FLO-MIN106". + connector_type: + The connector type of this flow cell type. This determines + which flow cell positions it is possible to insert this flow + cell into. The connector type for a given flow cell position + can be determined using + `minknow_api.device.DeviceService.get_device_state`. This + will never be ``FCCON_NOT_SET``. + cannot_live_basecall: + Indicates that live basecalling is not possible on the flow + cell. Note that almost all flow cell types can be basecalled + on: that is why this indicates a negative (saving some bytes + 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. """ GetLampKitInfoResponse.__doc__ = """Attributes: lamp_kits: Lamp kit names """ -GetSequencingKitsResponse.__doc__ = """Response message for `ManagerService.get_sequencing_kits`. +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 +""" +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. +""" +RemoveSimulatedDeviceRequest.__doc__ = """Attributes: + name: + The name of the simulated device to be removed +""" +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. +""" +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). +""" +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. +""" +CreateDirectoryResponse.__doc__ = """Attributes: + path: + The path to the created directory. +""" +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. """ DescribeHostResponse.__doc__ = """Attributes: product_code: @@ -332,13 +427,47 @@ can_basecall: Whether the device can currently provide basecalling """ -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. +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: @@ -346,6 +475,66 @@ other feature flags If true, allows individual flags to be enabled and disabled """ +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. + 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. @@ -360,95 +549,56 @@ barcode01_lamp03 - barcode02_lamp01 - barcode02_lamp02 - barcode02_lamp03 """ -GetAlignmentReferenceInformationRequest.__doc__ = """Attributes: +ListProtocolOutputDirFilesRequest.__doc__ = """Attributes: path: - The full path of the alignment reference. Should be a .fasta, - or .mmi file. -""" -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 -""" -AssociationDeviceCodeRequest.__doc__ = """Offline association is now the default workflow The following are -therefore reserved/deprecated - -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. -""" -ListSettingsForProtocolResponse.__doc__ = """Attributes: - protocol_settings: - Any protocol settings not covered by the above structures, for - example those required for custom-scripts. -""" -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. -""" -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. -""" -CreateDeveloperApiTokenRequest.__doc__ = """Attributes: - name: - User facing name describing the token. - expiry: - Optional expiry time for the token. -""" -RevokeDeveloperApiTokenRequest.__doc__ = """Attributes: - id: - The id passed back from [CreateDeveloperApiTokenRequest] or - [DeveloperApiToken]. + 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 """ -ListSettingsForProtocolResponse.RunOptions.__doc__ = """Run options +FilesystemDiskSpaceInfo.__doc__ = """disk-usage information for one file-system Attributes: - active_channel_selection: - bool - mux_scan_period: - in hours + 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. """ -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. +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: @@ -474,199 +624,69 @@ default (AUTO), then a sensible default device type is selected. """ -GetFlowCellTypesResponse.__doc__ = """Response message for `ManagerService.get_flow_cell_types`. +ListSettingsForProtocolResponse.RunOptions.__doc__ = """Run options Attributes: - types: - The flow cell types. -""" -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. -""" -BasecallerApiResponse.__doc__ = """Attributes: - secure: - The port to use to access the minknow_api.basecaller API using - the standard gRPC protocol over TLS - secure_grpc_web: - The port to use to access the minknow_api.basecaller API using - the gRPC-Web protocol over TLS + active_channel_selection: + bool + mux_scan_period: + in hours """ -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. +GetBarcodeKitInfoResponse.__doc__ = """Attributes: + barcode_kit_info: + Map of barcode kit name to barcode kit info """ -LocalAuthenticationTokenPathResponse.__doc__ = """Attributes: +GetAlignmentReferenceInformationRequest.__doc__ = """Attributes: path: - The full path of the local authentication token -""" -ListSettingsForProtocolResponse.Output.__doc__ = """Output - -Attributes: - read_filtering_min_duplex_qscore: - Since 5.8 -""" -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. -""" -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). -""" -StreamDiskSpaceInfoRequest.__doc__ = """Attributes: - period: - Disk space information will be streamed with this value - determining the period in seconds between updates. A period of - 0 is invalid -""" -GetGuppyInfoResponse.__doc__ = """Attributes: - port: - The port Guppy is listening on. - ipc_path: - The path to an ipc file Guppy is using. Use "ipc://" - for a guppy connection string. - version: - The Guppy server version. -""" -GetFlowCellTypesResponse.Info.__doc__ = """Information about a flow cell type. - -Attributes: - product_code: - The product code for the flow cell type. This is the user- - visible name for the flow cell type. It is the name used to - order flow cells, and is also displayed on the packaging. - While most product codes are 10 characters, be aware that - longer product codes can exist and have been used in the past. - Example: "FLO-MIN106". - connector_type: - The connector type of this flow cell type. This determines - which flow cell positions it is possible to insert this flow - cell into. The connector type for a given flow cell position - can be determined using - `minknow_api.device.DeviceService.get_device_state`. This - will never be ``FCCON_NOT_SET``. - cannot_live_basecall: - Indicates that live basecalling is not possible on the flow - cell. Note that almost all flow cell types can be basecalled - on: that is why this indicates a negative (saving some bytes - on the wire by allowing the common case of basecalling being - possible to be omitted entirely). -""" -FindProtocolsResponse.__doc__ = """Attributes: - protocols: - Protocols available for starting. + The full path of the alignment reference. Should be a .fasta, + or .mmi file. """ -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. +GetBarcodeKeysRequest.__doc__ = """Attributes: + barcode_kit_names: + Names of barcode kits to obtain barcode names for Fails with + INVALID_ARGUMENT if any of the requested `barcode_kit_names` + are unavailable + lamp_kit_name: + Name of lamp kit to obtain barcode names for. Fails with + INVALID_ARGUMENT if the requested `lamp_kit_name` is + unavailable. """ -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. - 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. +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. """ GetFlowCellTypesRequest.__doc__ = """Request message for `ManagerService.get_flow_cell_types`.""" -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. +LocalAuthenticationTokenPathResponse.__doc__ = """Attributes: + path: + The full path of the local authentication token """ -ApplyOfflineAssociationUnlockCodeResponse.__doc__ = """Attributes: - associated: - True if the association was successful (the unlock_code was - accepted), false otherwise. +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. +""" +BasecallerApiResponse.__doc__ = """Attributes: + secure: + The port to use to access the minknow_api.basecaller API using + the standard gRPC protocol over TLS + secure_grpc_web: + The port to use to access the minknow_api.basecaller API using + the gRPC-Web protocol over TLS """ FlowCellPosition.__doc__ = """Attributes: name: @@ -734,24 +754,6 @@ the same as the `name` field. For a P2 Solo, this will be the name of the P2 Solo unit. Since 5.3 """ -GetBarcodeKitInfoResponse.__doc__ = """Attributes: - barcode_kit_info: - Map of barcode kit name to barcode kit info -""" -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 -""" -Feature.__doc__ = """Attributes: - enabled: - Enable or disable the feature -""" ListDeveloperApiTokensResponse.DeveloperApiToken.__doc__ = """Attributes: id: Unique ID assigned to the token. @@ -761,26 +763,6 @@ expiry: Optional expiry of the token. """ -RemoveSimulatedDeviceRequest.__doc__ = """Attributes: - name: - The name of the simulated device to be removed -""" -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 -""" -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). -""" GetSequencingKitsRequest.__doc__ = """Request message for `ManagerService.get_sequencing_kits`. Attributes: @@ -795,16 +777,18 @@ kits will claim to be barcoding capable (or compatible with any barcoding expansion kits). """ -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. +Feature.__doc__ = """Attributes: + enabled: + Enable or disable the feature +""" +GetGuppyInfoResponse.__doc__ = """Attributes: + port: + The port Guppy is listening on. + ipc_path: + The path to an ipc file Guppy is using. Use "ipc://" + for a guppy 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. @@ -817,52 +801,68 @@ product codes are 10 characters, be aware that longer product codes can exist. Example: "EXP-NBD104". """ -FilesystemDiskSpaceInfo.__doc__ = """disk-usage information for one file-system +RevokeDeveloperApiTokenRequest.__doc__ = """Attributes: + id: + The id passed back from [CreateDeveloperApiTokenRequest] or + [DeveloperApiToken]. +""" +ListSettingsForProtocolResponse.Output.__doc__ = """Output 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. + read_filtering_min_duplex_qscore: + Since 5.8 """ -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 +StreamDiskSpaceInfoRequest.__doc__ = """Attributes: + period: + Disk space information will be streamed with this value + determining the period in seconds between updates. A period of + 0 is invalid """ -GetBarcodeKeysRequest.__doc__ = """Attributes: - barcode_kit_names: - Names of barcode kits to obtain barcode names for Fails with - INVALID_ARGUMENT if any of the requested `barcode_kit_names` - are unavailable - lamp_kit_name: - Name of lamp kit to obtain barcode names for. Fails with - INVALID_ARGUMENT if the requested `lamp_kit_name` is - unavailable. +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. +""" +FindProtocolsResponse.__doc__ = """Attributes: + protocols: + Protocols available for starting. +""" +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. +""" +GetSequencingKitsResponse.__doc__ = """Response message for `ManagerService.get_sequencing_kits`. + +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. """ # @@protoc_insertion_point(module_scope) diff --git a/python/minknow_api/minion_device_pb2.py b/python/minknow_api/minion_device_pb2.py index 54ddace..1e5df5b 100644 --- a/python/minknow_api/minion_device_pb2.py +++ b/python/minknow_api/minion_device_pb2.py @@ -74,13 +74,49 @@ _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 + channel_config_default: + The default channel configuration. This provides the default + configuration to apply to any channels not listed in + settings.channel_config. +""" GetSettingsResponse.__doc__ = """Response for MinionDeviceService.get_settings Attributes: settings: MinION device settings """ -GetSettingsRequest.__doc__ = """Request for MinionDeviceService.get_settings""" +TemperatureRange.__doc__ = """Temperature range. + +Attributes: + min: + The minimum temperature in degrees Celsius. If temperature + control is enabled, the device will attempt to keep its + temperature at or above this value. Must be less than or + equal to max. When soft temperature control is enabled, this + value is not used. + max: + The maximum temperature in degrees Celsius. If temperature + control is enabled, the device will attempt to keep its + temperature at or below this value. Must be less than or + equal to min. When soft temperature control is enabled, this + is used as the target temperature, and ``min`` is not used. +""" 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. @@ -244,41 +280,5 @@ provided. The values have the same constraints as ``bias_voltage``. """ -ChangeSettingsRequest.__doc__ = """Attributes: - settings: - MinION device settings - channel_config_default: - The default channel configuration. This provides the default - configuration to apply to any channels not listed in - settings.channel_config. -""" -TemperatureRange.__doc__ = """Temperature range. - -Attributes: - min: - The minimum temperature in degrees Celsius. If temperature - control is enabled, the device will attempt to keep its - temperature at or above this value. Must be less than or - equal to max. When soft temperature control is enabled, this - value is not used. - max: - The maximum temperature in degrees Celsius. If temperature - control is enabled, the device will attempt to keep its - temperature at or below this value. Must be less than or - equal to min. When soft temperature control is enabled, this - is used as the target temperature, and ``min`` is not used. -""" -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 4b43773..6a5a654 100644 --- a/python/minknow_api/promethion_device_pb2.py +++ b/python/minknow_api/promethion_device_pb2.py @@ -116,38 +116,38 @@ _globals['_GETTEMPERATURERESPONSE']._serialized_end=5418 _globals['_PROMETHIONDEVICESERVICE']._serialized_start=5421 _globals['_PROMETHIONDEVICESERVICE']._serialized_end=6499 -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. +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. +""" +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`. """ GetPixelSettingsRequest.__doc__ = """Attributes: pixels: 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. - 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 -""" -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. -""" PixelBlockSettings.__doc__ = """Attributes: regen_current_voltage_clamp: Voltage clamp for regeneration circuit (in millivolts) The @@ -159,65 +159,6 @@ The unblock voltage to apply when a pixel is unblocking. The acceptable input range is -1000..1000 (inclusive) """ -WaveformSettings.__doc__ = """Attributes: - voltages: - The waveform data applied to the device (in millivolts) Must - contain 32 values, in order to be a valid waveform. - frequency: - The frequency of the applied waveform, in Hz. Valid values - are between 7.8125Hz and 500Hz. -""" -GetPixelBlockSettingsResponse.__doc__ = """Attributes: - pixel_blocks: - 1 based map of different pixel blocks settings, containing 12 - entries. -""" -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. -""" -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. -""" DeviceSettings.__doc__ = """Attributes: sampling_frequency: The number of measurements to take each second. Possible @@ -253,26 +194,50 @@ processes. The message includes a way of returning to default timings. This value cannot be changed during acquisition """ -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`. +WaveformSettings.__doc__ = """Attributes: + voltages: + The waveform data applied to the device (in millivolts) Must + contain 32 values, in order to be a valid waveform. + frequency: + The frequency of the applied waveform, in Hz. Valid values + are between 7.8125Hz and 500Hz. """ -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. +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: pixels: List of all requested pixel settings, in the order requested. """ +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 +""" 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 @@ -318,4 +283,39 @@ 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. + 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. +""" # @@protoc_insertion_point(module_scope) diff --git a/python/minknow_api/protocol_pb2.py b/python/minknow_api/protocol_pb2.py index 6d0f0da..2b87ce8 100644 --- a/python/minknow_api/protocol_pb2.py +++ b/python/minknow_api/protocol_pb2.py @@ -253,6 +253,91 @@ _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- @@ -261,6 +346,47 @@ 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. @@ -279,57 +405,44 @@ input data remain after this message (excluding of this message). """ -ListProtocolsRequest.__doc__ = """Attributes: - force_reload: - If this is false, then will try to use the cached value of the - protocol list where possible (still subject to changes in flow - cell). If this is true, then will force a reload of the - protocol list Defaults to false +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 """ -ExternalOffload.__doc__ = """Attributes: - offload_ids: - 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()`` +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 """ -GetVersionInfoResponse.__doc__ = """From instance.proto Since 5.6 - -Attributes: - minknow: - 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 includes the hash of the commit it is based on, and - whether the working copy is different from that has (-dirty) - bream: - The version of Bream that is installed. An invalid - installation will cause this to return "0.0.0". Prior to 5.0, - this field was called "protocols". Since 5.0 - distribution_version: - Describes the distribution that this MinKNOW installation is - part of, usually this will be the Metapackage version - number/identity, this will be "unknown" if the distribution- - version hasn't been set. This information is also communicated - in the Manager's DaemonMessage in daemon.proto - distribution_status: - Indicates if the MinKNOW distribution including components - such as Bream are stable, unstable or have been modified. - protocol_configuration: - The version of the protocol configuration files that is - installed. An invalid installation will cause this to return - "0.0.0". Prior to 5.0, this field was called "configuration". - Since 5.0 - installation_type: - 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 +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: @@ -339,22 +452,34 @@ This input data is represented as the data seen in report_data.proto """ -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 -""" -BeginPlatformQcResponse.__doc__ = """Attributes: +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. +""" +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). """ ProtocolRunInfo.__doc__ = """Attributes: run_id: @@ -445,22 +570,9 @@ software_versions: For storing version numbers to output to run report Since 5.6 """ -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 -""" -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). +AssociatePostProcessingAnalysisRequest.__doc__ = """Attributes: + run_id: + Protocol id to associate analysis with: """ Epi2meWorkflowReference.__doc__ = """Attributes: id: @@ -470,148 +582,6 @@ URL that links to the workflow report. Syntax for a local workflow: file:// otherwise: http(s):// """ -BeginProtocolResponse.__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 - -Attributes: - start_time: - Most recent start time for the protocol group id -""" -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 -""" -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. -""" -AssociatePostProcessingAnalysisRequest.__doc__ = """Attributes: - run_id: - Protocol id to associate analysis with: -""" -AssociatedPostProcessingAnalysis.__doc__ = """Attributes: - started_id: - Id of analysis if this has been triggered (otherwise empty). - start_request: - Start request for analysis -""" -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 -""" -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 -""" -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 -""" -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 -""" -RequestOrigin.ProtocolPhaseManagement.__doc__ = """The protocol script/bream is mainly responsible for making changes via -protocol_phase_management""" -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). -""" -StartProtocolResponse.__doc__ = """Attributes: - run_id: - UUID generated when the protocol is started, to uniquely - represent this protocol instance -""" -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 -""" -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. -""" WaitForFinishedRequest.__doc__ = """Attributes: run_id: Only consider a specific protocol run. @@ -626,67 +596,97 @@ response returns. By default the timeout will wait forever. Since 1.15 """ -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.RunUntil.__doc__ = """A request made by the run until script due to certain criteria being +met + +Attributes: + criteria: + What criteria caused the state change """ -GetRunInfoRequest.__doc__ = """Attributes: +ExternalOffload.__doc__ = """Attributes: + offload_ids: + 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()`` +""" +AssociatedPostProcessingAnalysis.__doc__ = """Attributes: + started_id: + Id of analysis if this has been triggered (otherwise empty). + start_request: + Start request for analysis +""" +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 +""" +BeginHardwareCheckResponse.__doc__ = """Attributes: run_id: - The protocol run to get information about. + UUID generated when the protocol is started, to uniquely + represent this protocol instance """ -SetPlatformQcResultRequest.__doc__ = """Attributes: - protocol_run_id: - The protocol_run_id that was given when the pqc run was - started +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 """ -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 +GetVersionInfoResponse.__doc__ = """From instance.proto Since 5.6 Attributes: - cause: - Optional further details on the cause of the request + minknow: + 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 includes the hash of the commit it is based on, and + whether the working copy is different from that has (-dirty) + bream: + The version of Bream that is installed. An invalid + installation will cause this to return "0.0.0". Prior to 5.0, + this field was called "protocols". Since 5.0 + distribution_version: + Describes the distribution that this MinKNOW installation is + part of, usually this will be the Metapackage version + number/identity, this will be "unknown" if the distribution- + version hasn't been set. This information is also communicated + in the Manager's DaemonMessage in daemon.proto + distribution_status: + Indicates if the MinKNOW distribution including components + such as Bream are stable, unstable or have been modified. + protocol_configuration: + The version of the protocol configuration files that is + installed. An invalid installation will cause this to return + "0.0.0". Prior to 5.0, this field was called "configuration". + Since 5.0 + installation_type: + 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 """ -BeginHardwareCheckResponse.__doc__ = """Attributes: +StartProtocolResponse.__doc__ = """Attributes: run_id: UUID generated when the protocol is started, to uniquely represent this protocol instance """ -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 -""" -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. +ListProtocolsRequest.__doc__ = """Attributes: + force_reload: + If this is false, then will try to use the cached value of the + protocol list where possible (still subject to changes in flow + cell). If this is true, then will force a reload of the + protocol list Defaults to false """ # @@protoc_insertion_point(module_scope) diff --git a/python/minknow_api/protocol_settings_pb2.py b/python/minknow_api/protocol_settings_pb2.py index 30fa405..f1cd8ff 100644 --- a/python/minknow_api/protocol_settings_pb2.py +++ b/python/minknow_api/protocol_settings_pb2.py @@ -50,6 +50,21 @@ _globals['_PROTOCOLSETTING_UNIT']._serialized_end=2081 _globals['_PROTOCOLSETTING_VISIBILITY']._serialized_start=2083 _globals['_PROTOCOLSETTING_VISIBILITY']._serialized_end=2146 +ProtocolIdentifierComponents.__doc__ = """Attributes: + location: + If not specified, will default to "ANY" + experiment_type: + one of "custom", "sequencing", "control", "ctc", "platform qc" + or "flowcell_plugin" + name: + Name (or path) of the protocol, without the .toml extension + eg: "sequencing/sequencing_MIN106_DNA" this is relative to the + system or user protocol directory + flow_cell_product_code: + eg: "FLO-MIN106" + kit: + eg: "SQK-RPB004" +""" ProtocolSetting.__doc__ = """Attributes: identifier: Identifier is the unique primary-key for referring to @@ -94,19 +109,4 @@ choices: when unit is CHOICE, this defines the acceptable choices. """ -ProtocolIdentifierComponents.__doc__ = """Attributes: - location: - If not specified, will default to "ANY" - experiment_type: - one of "custom", "sequencing", "control", "ctc", "platform qc" - or "flowcell_plugin" - name: - Name (or path) of the protocol, without the .toml extension - eg: "sequencing/sequencing_MIN106_DNA" this is relative to the - system or user protocol directory - flow_cell_product_code: - eg: "FLO-MIN106" - kit: - eg: "SQK-RPB004" -""" # @@protoc_insertion_point(module_scope) diff --git a/python/minknow_api/report_data_pb2.py b/python/minknow_api/report_data_pb2.py index 1c168e2..16a620e 100644 --- a/python/minknow_api/report_data_pb2.py +++ b/python/minknow_api/report_data_pb2.py @@ -42,8 +42,6 @@ _globals['_HOST']._serialized_end=1862 _globals['_REPORTDATA']._serialized_start=1865 _globals['_REPORTDATA']._serialized_end=2181 -Host.__doc__ = """This is a subset of the information available from the describe_host() -call""" AcquistionReportData.__doc__ = """This is spelt incorrectly (should be AcquisitionReportData) Attributes: @@ -73,4 +71,6 @@ 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 ebb5a51..35f3ffe 100644 --- a/python/minknow_api/run_until_pb2.py +++ b/python/minknow_api/run_until_pb2.py @@ -89,8 +89,14 @@ _globals['_STREAMUPDATESRESPONSE']._serialized_end=2851 _globals['_RUNUNTILSERVICE']._serialized_start=2854 _globals['_RUNUNTILSERVICE']._serialized_end=3359 -ScriptUpdate.CriteriaUpdated.__doc__ = """Indicates the the Run-Until Script has update its criteria in response -to receiving a `StreamTargetCriteriaResponse` message""" +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. @@ -98,18 +104,25 @@ criteria: The criteria associated with this action """ -EstimatedTimeRemainingUpdate.NotEstimated.__doc__ = """Indicates that a time is not estimated""" -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.""" -ErrorUpdate.OtherError.__doc__ = """An error that is not covered by one of the other error types, above.""" -WriteUpdatesRequest.__doc__ = """Attributes: - acquisition_run_id: - The acquisition this Run-Until update applies to -""" -StreamTargetCriteriaRequest.__doc__ = """Attributes: - acquisition_run_id: - The acquisition to obtain the Run-Until Criteria for +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 +estimated time is believed to be accurate (e.g. for a "runtime" +criterion), then `min_time` may be equal to `max_time`. Otherwise, if +the estimate is believed to be inaccurate (e.g. for a "pore_scan" +criterion which is not close to being fulfilled), then `min_time` and +`max_time` may differ significantly. + +Attributes: + min_time: + Estimated lower bound on the time at which the condition will + occur (UTC) + max_time: + Estimated upper bound on the time at which the condition will + occur (UTC) """ Update.__doc__ = """Attributes: current_progress_update: @@ -118,7 +131,18 @@ other: Space for custom updates from custom Run-Until scripts """ -ErrorUpdate.__doc__ = """Indicates that a problem has been encountered by the Run-Until Script""" +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 +""" StreamUpdatesRequest.__doc__ = """Attributes: acquisition_run_id: The acquisition to stream Run-Until updates for @@ -139,47 +163,23 @@ means that all updates from the first update onwards will be sent. """ -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.""" -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.__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.""" +StreamTargetCriteriaRequest.__doc__ = """Attributes: + acquisition_run_id: + The acquisition to obtain the Run-Until Criteria for """ WriteTargetCriteriaRequest.__doc__ = """Attributes: acquisition_run_id: The acquisition to set the Run-Until Criteria for """ -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 -estimated time is believed to be accurate (e.g. for a "runtime" -criterion), then `min_time` may be equal to `max_time`. Otherwise, if -the estimate is believed to be inaccurate (e.g. for a "pore_scan" -criterion which is not close to being fulfilled), then `min_time` and -`max_time` may differ significantly. - -Attributes: - min_time: - Estimated lower bound on the time at which the condition will - occur (UTC) - max_time: - Estimated upper bound on the time at which the condition will - occur (UTC) -""" -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.""" -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.""" +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""" # @@protoc_insertion_point(module_scope) diff --git a/python/minknow_api/statistics_pb2.py b/python/minknow_api/statistics_pb2.py index f6946bb..005fc45 100644 --- a/python/minknow_api/statistics_pb2.py +++ b/python/minknow_api/statistics_pb2.py @@ -198,49 +198,33 @@ _globals['_BOXPLOTRESPONSE_BOXPLOTDATASET']._serialized_end=7785 _globals['_STATISTICSSERVICE']._serialized_start=8260 _globals['_STATISTICSSERVICE']._serialized_end=9978 -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`. -""" -StreamBiasVoltagesRequest.__doc__ = """Attributes: - acquisition_run_id: - The acquisition id of the experiment. -""" -StreamAcquisitionOutputResponse.FilteredSnapshots.__doc__ = """Attributes: - filtering: - The filtering parameters which contributed to this bucket. +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). """ -ReadLengthN50Response.__doc__ = """Attributes: - n50_data: - The N50 return 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 """ -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 +TemperaturePacket.PromethIONTemperature.__doc__ = """Packet of temperatures appropriate for a PromethION. + +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. """ -ReadLengthHistogramSplit.__doc__ = """Attributes: - read_end_reason: - Split returned data by read_end_reason +GetReadLengthTypesResponse.__doc__ = """Attributes: + available_types: + Array of the types of bucket for which a histogram is + currently available """ -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 @@ -268,70 +252,82 @@ 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. - bucket_value_type: - What data to accumulate in the histogram buckets See - `QAccuracyHistogramBucketValueType` for further information - about the available options. -""" -StreamQAccuracyHistogramResponse.__doc__ = """Attributes: + The desired read length range which histograms should cover. + Units are as set in `read_length_type`, above. 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 -""" -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 -""" -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. -""" -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`. -""" -AcquisitionOutputSnapshot.__doc__ = """A snapshot of acquisition output data, for a given set of filtering -criteria. - -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 - yield_summary: - The yield summary data. + 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. """ -StreamEncounteredAcquisitionOutputKeysRequest.__doc__ = """Attributes: - acquisition_run_id: - The acquisition id of the experiment. +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.Range.__doc__ = """Represents a range of values.""" AcquisitionOutputSplit.__doc__ = """Attributes: barcode_name: Split data for every individual barcode. @@ -350,12 +346,41 @@ read_end_reason: Split returned data by read_end_reason """ -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 +StreamQScoreHistogramResponse.__doc__ = """Attributes: + bucket_value_type: + The data accumulated in the histogram buckets See + `QScoreHistogramBucketValueType` 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 +""" +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: @@ -367,187 +392,46 @@ modal_q_accuracy: The modal q accuracy, calculated using the `bucket_value_type` """ -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 +GetReadLengthTypesRequest.__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.__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). """ -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. -""" -TemperaturePacket.PromethIONTemperature.__doc__ = """Packet of temperatures appropriate for a PromethION. - -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. -""" -StreamAcquisitionOutputResponse.__doc__ = """Attributes: - snapshots: - Snapshots split by requested filtering parameters. -""" -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. -""" -StreamQScoreHistogramResponse.QScoreHistogramData.__doc__ = """Attributes: +StreamReadLengthHistogramResponse.ReadLengthHistogramData.__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` -""" -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. -""" -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 - 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. - 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. - 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. -""" -GetReadLengthTypesRequest.__doc__ = """Attributes: - acquisition_run_id: - The acquisition id of the experiment. + 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. """ -ReadLengthN50Request.__doc__ = """Attributes: - acquisition_run_id: - The `acquisition_run_id` of the acquisition to obtain data for +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 +the desired selection 2. Any selection value that is not set is +adjusted to its default value: - `start` and `step` will be set +to the minimum valid value - `end` will be set to the maximum +valid value 3. Values which are outside of the valid range are +clamped to the nearest valid value: - Values less than minimum +valid value will be set equal to the minimum valid value - Values +greater than the maximum valid value will be set equal to the maximum +valid value 4. Finally, all values are 'rounded' to a nearby valid +value - `start` and `step` will be rounded down to the first +valid value less than or equal to their current values - +`end` will be rounded up to the first valid value that is greater than +or equal to its current value - This means that the range +that is specified after rounding includes the range that was +specified prior to rounding""" DataSelection.__doc__ = """Specify a desired data selection. Units for values are as specified in the corresponding Request The actual data selection used may differ from the desired one. They are adjusted in the following @@ -582,22 +466,37 @@ 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.""" -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. +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`. """ -StreamDutyTimeResponse.ChannelStateData.__doc__ = """Attributes: - state_times: - How much time (in samples) spent in this channel state, for - each bucket +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. """ -StreamQScoreHistogramResponse.__doc__ = """Attributes: +ReadLengthN50Request.__doc__ = """Attributes: + acquisition_run_id: + The `acquisition_run_id` of the acquisition to obtain data for +""" +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.__doc__ = """Attributes: bucket_value_type: The data accumulated in the histogram buckets See - `QScoreHistogramBucketValueType` for further information about - the possible options. + `QAccuracyHistogramBucketValueType` for further information + about the possible options. bucket_ranges: The range covered by each bucket in the histogram data source_data_range: @@ -608,120 +507,53 @@ is enabled, then Simplex, Duplex and "All" (i.e. overall) histogram data will be returned """ -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. -""" -StreamReadLengthHistogramResponse.BucketRange.__doc__ = """Attributes: +StreamQAccuracyHistogramResponse.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). + 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). """ -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 -the desired selection 2. Any selection value that is not set is -adjusted to its default value: - `start` and `step` will be set -to the minimum valid value - `end` will be set to the maximum -valid value 3. Values which are outside of the valid range are -clamped to the nearest valid value: - Values less than minimum -valid value will be set equal to the minimum valid value - Values -greater than the maximum valid value will be set equal to the maximum -valid value 4. Finally, all values are 'rounded' to a nearby valid -value - `start` and `step` will be rounded down to the first -valid value less than or equal to their current values - -`end` will be rounded up to the first valid value that is greater than -or equal to its current value - This means that the range -that is specified after rounding includes the range that was -specified prior to rounding""" -GetReadLengthTypesResponse.__doc__ = """Attributes: - available_types: - Array of the types of bucket for which a histogram is - currently available -""" -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 """ -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` +ReadLengthHistogramSplit.__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. + Split returned data by read_end_reason """ -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.__doc__ = """Attributes: + snapshots: + Snapshots split by requested filtering parameters. """ -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). +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. """ -TemperaturePacket.MinIONTemperature.__doc__ = """Packet of temperatures appropriate for a MinION. +StreamEncounteredAcquisitionOutputKeysRequest.__doc__ = """Attributes: + acquisition_run_id: + The acquisition id of the experiment. +""" +WriterOutputSnapshot.__doc__ = """A snapshot of writer data. Attributes: - asic_temperature: - Temperature as measured by the probe inside the asic. - heatsink_temperature: - Temperature as measured by the probe in the minion heatsink. + 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. """ -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). +StreamBiasVoltagesRequest.__doc__ = """Attributes: + acquisition_run_id: + The acquisition id of the experiment. """ StreamBoxplotRequest.__doc__ = """Attributes: acquisition_run_id: @@ -752,4 +584,172 @@ 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. +""" +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 + 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 accuracy range which histograms should cover. + bucket_value_type: + What data to accumulate in the histogram buckets See + `QAccuracyHistogramBucketValueType` for further information + about the available options. +""" +TemperaturePacket.Range.__doc__ = """Represents a range of values.""" +AcquisitionOutputSnapshot.__doc__ = """A snapshot of acquisition output data, for a given set of filtering +criteria. + +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 + yield_summary: + The yield summary data. +""" +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. +""" # @@protoc_insertion_point(module_scope) diff --git a/python/minknow_api/tools/protocols.py b/python/minknow_api/tools/protocols.py index bcce741..6a7f864 100644 --- a/python/minknow_api/tools/protocols.py +++ b/python/minknow_api/tools/protocols.py @@ -160,7 +160,7 @@ def find_protocol( BasecallingArgs = collections.namedtuple( "BasecallingArgs", ["config", "barcoding", "alignment"] ) -OutputArgs = collections.namedtuple("OutputArgs", ["reads_per_file"]) +OutputArgs = collections.namedtuple("OutputArgs", ["reads_per_file", "batch_duration"]) @dataclasses.dataclass @@ -341,8 +341,6 @@ def on_off(value: bool): if read_until.last_channel: read_until_args.append("last_channel={}".format(read_until.last_channel)) - # --read_until filter_type='enrich' reference_files=['/data/my-alignment-file'] bed_file='/data/bed_file.bed' first_channel=1 last_channel=512 - print(read_until_args) protocol_args.extend(["--read_until"] + read_until_args) protocol_args.append("--fast5=" + on_off(fast5_arguments)) @@ -350,30 +348,48 @@ def on_off(value: bool): protocol_args.extend( ["--fast5_data", "trace_table", "fastq", "raw", "vbz_compress"] ) - protocol_args.append( - "--fast5_reads_per_file={}".format(fast5_arguments.reads_per_file) - ) + if fast5_arguments.reads_per_file is not None: + protocol_args.append( + "--fast5_reads_per_file={}".format(fast5_arguments.reads_per_file) + ) + if fast5_arguments.batch_duration is not None: + protocol_args.append( + "--fast5_batch_duration={}".format(fast5_arguments.batch_duration) + ) protocol_args.append("--pod5=" + on_off(pod5_arguments)) if pod5_arguments: - protocol_args.append( - "--pod5_reads_per_file={}".format(pod5_arguments.reads_per_file) - ) + if pod5_arguments.reads_per_file is not None: + protocol_args.append( + "--pod5_reads_per_file={}".format(pod5_arguments.reads_per_file) + ) + if pod5_arguments.batch_duration is not None: + protocol_args.append( + "--pod5_batch_duration={}".format(pod5_arguments.batch_duration) + ) protocol_args.append("--fastq=" + on_off(fastq_arguments)) if fastq_arguments: protocol_args.extend(["--fastq_data", "compress"]) - protocol_args.append( - "--fastq_reads_per_file={}".format(fastq_arguments.reads_per_file) - ) + if fastq_arguments.reads_per_file is not None: + protocol_args.append( + "--fastq_reads_per_file={}".format(fastq_arguments.reads_per_file) + ) + if fastq_arguments.batch_duration is not None: + protocol_args.append( + "--fastq_batch_duration={}".format(fastq_arguments.batch_duration) + ) protocol_args.append("--bam=" + on_off(bam_arguments)) if bam_arguments: - if bam_arguments.reads_per_file != 4000: - raise Exception("Unable to change reads per file for BAM.") - """protocol_args.append( - "--bam_reads_per_file={}".format(bam_arguments.reads_per_file) - )""" + if bam_arguments.reads_per_file is not None: + protocol_args.append( + "--bam_reads_per_file={}".format(bam_arguments.reads_per_file) + ) + if bam_arguments.batch_duration is not None: + protocol_args.append( + "--bam_batch_duration={}".format(bam_arguments.batch_duration) + ) if not is_flongle: protocol_args.append( diff --git a/python/test/example_tests/test_start_protocol.py b/python/test/example_tests/test_start_protocol.py index a2b76b0..b6821fa 100644 --- a/python/test/example_tests/test_start_protocol.py +++ b/python/test/example_tests/test_start_protocol.py @@ -197,7 +197,8 @@ def test_basic_start_protocol(): # Invalid position argument assert ( run_start_protocol_example( - server.port, ["--kit", TEST_KIT_NAME, "--position", "NotAPosition"] + server.port, + ["--kit", TEST_KIT_NAME, "--position", "NotAPosition"], )[0] == 1 ) @@ -206,7 +207,12 @@ def test_basic_start_protocol(): assert ( run_start_protocol_example( server.port, - ["--kit", TEST_KIT_NAME, "--flow-cell-id", "NotAFlowCellId"], + [ + "--kit", + TEST_KIT_NAME, + "--flow-cell-id", + "NotAFlowCellId", + ], )[0] == 1 ) @@ -215,7 +221,12 @@ def test_basic_start_protocol(): assert ( run_start_protocol_example( server.port, - ["--kit", TEST_KIT_NAME, "--sample-sheet", "NotASampleSheet"], + [ + "--kit", + TEST_KIT_NAME, + "--sample-sheet", + "NotASampleSheet", + ], )[0] == 1 ) @@ -744,6 +755,8 @@ def test_output_start_protocol(): "--fastq", "--fastq-reads-per-file", "5000", + "--fastq-batch-duration", + "3600", ], )[0] == 0 @@ -760,6 +773,7 @@ def test_output_start_protocol(): "--fastq_data", "compress", "--fastq_reads_per_file=5000", + "--fastq_batch_duration=3600", "--bam=off", "--active_channel_selection=on", "--mux_scan_period=1.5", @@ -777,6 +791,8 @@ def test_output_start_protocol(): "--fast5", "--fast5-reads-per-file", "501", + "--fast5-batch-duration", + "3600", ], )[0] == 0 @@ -794,6 +810,7 @@ def test_output_start_protocol(): "raw", "vbz_compress", "--fast5_reads_per_file=501", + "--fast5_batch_duration=3600", "--pod5=off", "--fastq=off", "--bam=off", @@ -813,6 +830,8 @@ def test_output_start_protocol(): "--pod5", "--pod5-reads-per-file", "502", + "--pod5-batch-duration", + "3600", ], )[0] == 0 @@ -826,6 +845,7 @@ def test_output_start_protocol(): "--fast5=off", "--pod5=on", "--pod5_reads_per_file=502", + "--pod5_batch_duration=3600", "--fastq=off", "--bam=off", "--active_channel_selection=on", @@ -842,6 +862,10 @@ def test_output_start_protocol(): TEST_KIT_NAME, "--position=MN00000", "--bam", + "--bam-reads-per-file", + "503", + "--bam-batch-duration", + "3600", ], )[0] == 0 @@ -856,6 +880,8 @@ def test_output_start_protocol(): "--pod5=off", "--fastq=off", "--bam=on", + "--bam_reads_per_file=503", + "--bam_batch_duration=3600", "--active_channel_selection=on", "--mux_scan_period=1.5", ]