nanoporetech / minknow_api

Protobuf and gRPC specifications for the MinKNOW API
Other
50 stars 12 forks source link

starting a run on a local MinION failed to find protocol #19

Closed neuropathbasel closed 3 years ago

neuropathbasel commented 3 years ago

On a local machine (all changes suggested the other post were undone) I do have a Minon with ID MN32638 running. It contains a flowcell with the ID FAO64252 loaded with an DNA sample. I tried to follow the code given in the header of start_protocol.py

The Minion is detected: $python list_sequencing_positions.py --localhost --port 9501 usage: list_sequencing_positions.py [-h] [--host HOST] [--port PORT] list_sequencing_positions.py: error: unrecognized arguments: --localhost (gRPC) user@meqneuropat15:~/minknow_api/python/examples$ python list_sequencing_positions.py --host localhost --port 9501 Available sequencing positions on localhost:9501: MN32638: running secure: 8001 insecure: 8000

However adapting the code in the header does prompt "Failed to find protocol for position MN32638"

~/minknow_api/python/examples$ python start_protocol.py \ --host localhost \ --position MN32638 \ --sample-id "my_sample" --experiment-group "my_group" \ --experiment-duration 1 \ --kit SQK-RBK004 \ --basecalling \ --fastq --bam Failed to find protocol for position MN32638 Requested protocol: product-code: None kit: SQK-RBK004 basecalling: True basecall_config: None barcode-kits: None barcoding: False

Replacing the position with the flowcell id does not help. Looking in start_protocol.py I should provide additional info protocol_info = protocols.find_protocol( position_connection, product_code=product_code, kit=args.kit, basecalling=args.basecalling, basecall_config=args.basecall_config, barcoding=args.barcoding, barcoding_kits=args.barcode_kits,

I am not clear where to barcode ID code and other parameters requested. Or how to provide the requested protocol.

thanks claus

0x55555555 commented 3 years ago

The example does have some more verbose logging - so you could try to add --verbose when starting the example.

I think the issue here specifically is the product code is missing. There is a command line argument to supply this. The example does try to extract the information from the flow cell, but that doesnt seem to be working in this instance.

You could try inspecting flow_cell_info on line 490 of the example - and seeing what information is available for the flowcell.

neuropathbasel commented 3 years ago

To rule out any problems resulting form previous experiments on adaptive sequencing, I did install a fresh Xubuntu18.04 and updated to the latest Minkow version according to https://community.nanoporetech.com/protocols/experiment-companion-minknow/v/mke_1013_v1_revbm_11apr2016/installing-minknow-on-linu, I performed a flowcell check on a flowcell in a Minion attached to this PC via USB and a short sequencing run. Both were completed successfully.

Script for detecting seqencing position detected the attached MinIon ~/minknow_api/python/examples$ python list_sequencing_positions.py --host localhost --port 9501 Available sequencing positions on localhost:9501: MN32638: running secure: 8001 insecure: 8000

removed all extra spaces from the example code in start_protocol.py python start_protocol.py \

--host localhost --position MN32638 \ --sample-id "my_sample" --experiment-group "my_group" \ --experiment-duration 24 \ --kit SQK-LSK109 \ --basecalling \ --fastq --bam \ --verbose DEBUG:minknow_api.tools.protocols:Ignoring experiment with incorrect type: control vs sequencing DEBUG:minknow_api.tools.protocols:Protocol is for product FLO-MIN107, not FLO-MIN106 DEBUG:minknow_api.tools.protocols:Protocol is for product FLO-MIN107, not FLO-MIN106 DEBUG:minknow_api.tools.protocols:Ignoring experiment with incorrect type: control vs sequencing DEBUG:minknow_api.tools.protocols:Ignoring experiment with incorrect type: control vs sequencing DEBUG:minknow_api.tools.protocols:Ignoring experiment with incorrect type: control vs sequencing DEBUG:minknow_api.tools.protocols:Ignoring experiment with incorrect type: control vs sequencing DEBUG:minknow_api.tools.protocols:Ignoring experiment with incorrect type: control vs sequencing DEBUG:minknow_api.tools.protocols:Ignoring experiment with incorrect type: control vs sequencing DEBUG:minknow_api.tools.protocols:Ignoring experiment with incorrect type: control vs sequencing DEBUG:minknow_api.tools.protocols:Ignoring experiment with incorrect type: control vs sequencing DEBUG:minknow_api.tools.protocols:Ignoring experiment with incorrect type: control vs sequencing DEBUG:minknow_api.tools.protocols:Protocol supports kit SQK-RNA003, not SQK-LSK109 DEBUG:minknow_api.tools.protocols:Ignoring experiment with incorrect type: control vs sequencing DEBUG:minknow_api.tools.protocols:Protocol supports kit SQK-ULK001, not SQK-LSK109 DEBUG:minknow_api.tools.protocols:Ignoring experiment with incorrect type: control vs sequencing DEBUG:minknow_api.tools.protocols:Ignoring experiment with incorrect type: control vs sequencing DEBUG:minknow_api.tools.protocols:Ignoring experiment with incorrect type: control vs sequencing DEBUG:minknow_api.tools.protocols:Ignoring experiment with incorrect type: control vs sequencing DEBUG:minknow_api.tools.protocols:Ignoring experiment with incorrect type: control vs sequencing DEBUG:minknow_api.tools.protocols:Ignoring experiment with incorrect type: control vs sequencing DEBUG:minknow_api.tools.protocols:Ignoring experiment with incorrect type: control vs sequencing DEBUG:minknow_api.tools.protocols:Ignoring experiment with incorrect type: control vs sequencing DEBUG:minknow_api.tools.protocols:Ignoring experiment with incorrect type: control vs sequencing DEBUG:minknow_api.tools.protocols:Protocol is for product FLO-MIN110, not FLO-MIN106 DEBUG:minknow_api.tools.protocols:Protocol is for product FLO-MIN110, not FLO-MIN106 DEBUG:minknow_api.tools.protocols:Protocol is for product FLO-MIN110, not FLO-MIN106 DEBUG:minknow_api.tools.protocols:Protocol is for product FLO-MIN110, not FLO-MIN106 DEBUG:minknow_api.tools.protocols:Protocol is for product FLO-MIN110, not FLO-MIN106 DEBUG:minknow_api.tools.protocols:Protocol is for product FLO-MIN110, not FLO-MIN106 DEBUG:minknow_api.tools.protocols:Protocol is for product FLO-MIN110, not FLO-MIN106 DEBUG:minknow_api.tools.protocols:Protocol is for product FLO-MIN110, not FLO-MIN106 DEBUG:minknow_api.tools.protocols:Protocol is for product FLO-MIN110, not FLO-MIN106 DEBUG:minknow_api.tools.protocols:Protocol is for product FLO-MIN110, not FLO-MIN106 DEBUG:minknow_api.tools.protocols:Protocol is for product FLO-MIN110, not FLO-MIN106 DEBUG:minknow_api.tools.protocols:Protocol is for product FLO-MIN110, not FLO-MIN106 DEBUG:minknow_api.tools.protocols:Protocol is for product FLO-MIN110, not FLO-MIN106 DEBUG:minknow_api.tools.protocols:Protocol is for product FLO-MIN110, not FLO-MIN106 DEBUG:minknow_api.tools.protocols:Protocol is for product FLO-MIN110, not FLO-MIN106 DEBUG:minknow_api.tools.protocols:Protocol is for product FLO-MIN110, not FLO-MIN106 DEBUG:minknow_api.tools.protocols:Protocol is for product FLO-MIN110, not FLO-MIN106 DEBUG:minknow_api.tools.protocols:Protocol is for product FLO-MIN110, not FLO-MIN106 DEBUG:minknow_api.tools.protocols:Protocol is for product FLO-MIN110, not FLO-MIN106 DEBUG:minknow_api.tools.protocols:Protocol is for product FLO-MIN110, not FLO-MIN106 DEBUG:minknow_api.tools.protocols:Protocol is for product FLO-MIN110, not FLO-MIN106 DEBUG:minknow_api.tools.protocols:Protocol is for product FLO-MIN110, not FLO-MIN106 DEBUG:minknow_api.tools.protocols:Protocol is for product FLO-MIN110, not FLO-MIN106 DEBUG:minknow_api.tools.protocols:Protocol is for product FLO-MIN110, not FLO-MIN106 DEBUG:minknow_api.tools.protocols:Protocol is for product FLO-MIN110, not FLO-MIN106 DEBUG:minknow_api.tools.protocols:Protocol is for product FLO-MIN110, not FLO-MIN106 DEBUG:minknow_api.tools.protocols:Protocol is for product FLO-MIN110, not FLO-MIN106 DEBUG:minknow_api.tools.protocols:Protocol is for product FLO-MIN110, not FLO-MIN106 DEBUG:minknow_api.tools.protocols:Protocol is for product FLO-MIN110, not FLO-MIN106 DEBUG:minknow_api.tools.protocols:Protocol is for product FLO-MIN110, not FLO-MIN106 DEBUG:minknow_api.tools.protocols:Protocol is for product FLO-MIN107, not FLO-MIN106 DEBUG:minknow_api.tools.protocols:Protocol is for product FLO-MIN107, not FLO-MIN106 DEBUG:minknow_api.tools.protocols:Ignoring experiment with incorrect type: control vs sequencing DEBUG:minknow_api.tools.protocols:Ignoring experiment with incorrect type: control vs sequencing DEBUG:minknow_api.tools.protocols:Ignoring experiment with incorrect type: control vs sequencing DEBUG:minknow_api.tools.protocols:Ignoring experiment with incorrect type: control vs sequencing DEBUG:minknow_api.tools.protocols:Ignoring experiment with incorrect type: control vs sequencing DEBUG:minknow_api.tools.protocols:Ignoring experiment with incorrect type: control vs sequencing DEBUG:minknow_api.tools.protocols:Ignoring experiment with incorrect type: control vs sequencing DEBUG:minknow_api.tools.protocols:Ignoring experiment with incorrect type: control vs sequencing DEBUG:minknow_api.tools.protocols:Ignoring experiment with incorrect type: control vs sequencing DEBUG:minknow_api.tools.protocols:Ignoring experiment with incorrect type: control vs sequencing DEBUG:minknow_api.tools.protocols:Ignoring experiment with incorrect type: control vs sequencing DEBUG:minknow_api.tools.protocols:Protocol is for product FLO-MIN111, not FLO-MIN106 DEBUG:minknow_api.tools.protocols:Protocol supports kit SQK-16S024, not SQK-LSK109 DEBUG:minknow_api.tools.protocols:Protocol supports kit SQK-CAS109, not SQK-LSK109 DEBUG:minknow_api.tools.protocols:Protocol supports kit SQK-CS9109, not SQK-LSK109 DEBUG:minknow_api.tools.protocols:Protocol supports kit SQK-LSK108, not SQK-LSK109 Starting protocol on 1 positions Starting protocol sequencing/sequencing_MIN106_DNA:FLO-MIN106:SQK-LSK109 on position MN32638 DEBUG:minknow_api.tools.protocols:Built protocol arguments: --base_calling=on --experiment_time=72 --fast5=off --fastq=on --fastq_data compress --fastq_reads_per_file=4000 --bam=on --active_channel_selection=on --mux_scan_period=1.5 Started protocol e07f1b7d-d69a-4375-9dad-0cbbb8851186

A sequencing run started and was displayed in the GUI and could be terminated from this GUI. However I do find the warnings about incorrect experiment type and kit confusing and do not feel comfortable to progress. In particular since a simple replacement of the sequnecing kit string from SQK-LSK109 to SQK-RBK004 (we are using) did not result in a useful script starting a run.

Please advice changes to start script without and errors/ warnings for the SQK-RBK004 kit on a Minion. Many thanks & best wishes Claus

0x55555555 commented 3 years ago

Hello @neuropathbasel,

The DEBUG message are nothing to worry about - they are because you have enabled --verbose logging. The issue you are encountering is due to the SQK-RBK004 kit being a native barcoding kit. The example isn't set up to start this kind of protocol - so doesn't find a valid kit to use.

I've got changes ready to go into the next release of minknow to fix this. Then you will either need to start with additional arguments (to enable --barcoding and --barcode-kit SQK-RBK004), or the script will log a warning that you are using a barcoding kit and not running barcoding, but start the experiment.

neuropathbasel commented 3 years ago

Hi George,

Many thanks for your rapid feedback.

We made significant progress in running MinKnow and Guppy in GPU mode on a Jetson Xavier AGX in parallel to a computationally intense analysis pipeline (please refer to https://gist.github.com/sirselim/2ebe2807112fae93809aa18f096dbb94#gistcomment-3720002). We have finalized porting of the entire classification toolchain to ARM64.

Currently, we start our diagnostic sequencing runs with the MinKnow GUI then launch the analysis pipeline manually. We pass along the run/sample ID to the analysis pipeline. The resulting fast5 files will then be analyzed as they appear on the hard drive. We manually stop the sequencing run once our pipeline indicates that the data density has reached a sufficient level, i.e. to classify a tumor appropriately.

We would like to automate the steps described above as soon as possible to A) better automate our workflow and further reduce time needed to produce a diagnostic report, B) standardize the data density level across runs which depends on tumor type and sample quality. To do so, we need active feedback from the analysis pipeline to MinKnow.

We have the following questions:

  1. Would you be so kind as to indicate a timeline for the changes in MinKnow you mentioned?
  2. Is there a way (as of right now) to launch an SQK-RKB004 run without the MinKnow GUI?
  3. If not, is there a way to use the "custom script" option from MinKnow in order to automatically initiate our analysis pipeline in parallel to sequencing and terminate sequencing upon a trigger from our pipeline? If so, an example script would be fantastic.

We believe that integrating downstream analysis tools in portable platforms based on the Jetson modules could also be of large interest to ONT - in particular the MK1c device.

Kind regards from Basel

Claus and colleagues

0x55555555 commented 3 years ago

Hi @neuropathbasel, I've attached a patch below that you can apply to your minknow_api installation to try this now, and see if it works for you.

I was running a protocol using arguments: --position X2 --sample-id "my_sample" --experiment-group "my_group" --experiment-duration 24 --basecalling --fastq --bam --verbose --kit SQK-RBK004 --barcoding --barcode-kits "SQK-RBK004"

I expect this to fully ship with the next relese in the next few weeks.


diff --git a/python/minknow_api/tools/protocols.py b/python/minknow_api/tools/protocols.py
index 9ad6e0d..329d3c4 100644
--- a/python/minknow_api/tools/protocols.py
+++ b/python/minknow_api/tools/protocols.py
@@ -98,9 +98,11 @@ def find_protocol(
         if tags["barcoding"].bool_value != barcoding:
             if barcoding:
                 LOGGER.debug("Protocol does not support barcoding")
+                continue
             else:
+                if basecalling:
+                    LOGGER.warning("Not using barcoding for a barcoding kit")
                 LOGGER.debug("Protocol requires barcoding")
-            continue

         supported_kits = tags["barcoding kits"].array_value
         # workaround for the set of barcoding kits being returned as a string rather
@@ -109,6 +111,8 @@ def find_protocol(
             supported_kits = (
                 tags["barcoding kits"].array_value[1:-1].replace('"', "").split(",")
             )
+        if tags["barcoding"].bool_value:
+            supported_kits.append(tags["kit"].string_value)
         if barcoding_kits and not set(barcoding_kits).issubset(supported_kits):
             LOGGER.debug(
                 "barcoding kits specified %s not amongst those supported %s",```
neuropathbasel commented 3 years ago

thanks for your prompt reply. Unfortunately I could not apply the patch to the protocols. py. I copied the patch code into a file I called patch_protocols_py.txt that was saved in /home/user/minknow_api/

Running user@meqneuropat25:~/minknow_api$ git apply --verbose patch_protocols_py.txt

Resulted Checking patch python/minknow_api/tools/protocols.py... Hunk #1 succeeded at 97 (offset -1 lines). error: while searching for: supported_kits = ( tags["barcoding kits"].array_value[1:-1].replace('"', "").split(",") ) if barcoding_kits and not set(barcoding_kits).issubset(supported_kits): LOGGER.debug( "barcoding kits specified %s not amongst those supported %s",```

error: patch failed: python/minknow_api/tools/protocols.py:109 error: python/minknow_api/tools/protocols.py: patch does not apply

To me this implies the patch is referring to a protocols.py different form the file I downloaded from this repository.

Could you please provide the target protocols.py directly?

Many thanks Claus

0x55555555 commented 3 years ago

Hi @neuropathbasel,

My apologies - I had failed to push a 4.2 API release publicly.

I've now done this: https://github.com/nanoporetech/minknow_api/releases/tag/4.2.2

This contains the patch fix - no need to modify the source - please try this release.

neuropathbasel commented 3 years ago

Many thanks 4.22 APi relases

Now I am encountering MinKNOW's CA SSL certificate issues

I did unpack the archive to /home/user/minknow_api-4.2.2/

created a new virtual environment user@meqneuropat25:~/minknow_api-4.2.2$ /opt/ont/minknow/ont-python/bin/python3.7 -m venv start_seq

after upgrading pip (start_seq) user@meqneuropat25:~/minknow_api-4.2.2$ pip install --upgrade pip

I did install the api (accrding to the instructions) (start_seq) user@meqneuropat25:~/minknow_api-4.2.2$ pip install minknow_api

installation works in principle: (start_seq) user@meqneuropat25:~/minknow_api-4.2.2/python/examples$ python list_sequencing_positions.py --host localhost --port 9501 Available sequencing positions on localhost:9501: MN32638: running secure: 8001 insecure: 8000

(start_seq) user@meqneuropat25:~/minknow_api-4.2.2/python/examples$ python start_protocol.py \

--host localhost \ --port 9501 \ --position MN32638 \ --sample-id "my_sample_04" \ --experiment-group "my_group_04" \ --experiment-duration 24 \ --basecalling \ --fastq --bam \ --verbose \ --kit SQK-RBK004 \ --barcoding \ --barcode-kits "SQK-RBK004" Traceback (most recent call last): File "/home/user/minknow_api-4.2.2/start_seq/lib/python3.7/site-packages/minknow_api/init.py", line 190, in grpc_credentials return grpc_credentials.cached_credentials AttributeError: 'function' object has no attribute 'cached_credentials'

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "start_protocol.py", line 449, in main() File "start_protocol.py", line 303, in main manager = Manager(host=args.host, port=args.port, use_tls=not args.no_tls) File "/home/user/minknow_api-4.2.2/start_seq/lib/python3.7/site-packages/minknow_api/manager.py", line 103, in init use_tls=use_tls, File "/home/user/minknow_api-4.2.2/start_seq/lib/python3.7/site-packages/minknow_api/manager.py", line 37, in init minknow_api.grpc_credentials(), File "/home/user/minknow_api-4.2.2/start_seq/lib/python3.7/site-packages/minknow_api/init.py", line 196, in grpc_credentials "Couldn't find a valid path to MinKNOW's CA SSL certificate to initiate a secure connection" minknow_api.MissingMinknowSSlCertError: Couldn't find a valid path to MinKNOW's CA SSL certificate to initiate a secure connection

removing "--port 9501" does not change the error message.

Where do I have to add code to add a path to the certificate (https://github.com/nanoporetech/minknow_api/issues/16)?

thanks Claus

0x55555555 commented 3 years ago

You need to copy the certificate locally, then when you run the example, set the environment variable to the path of the cert:

The certificate is available at "/opt/ont/minknow/conf/rpc-certs/ca.crt" for linux sequencers.

$ MINKNOW_TRUSTED_CA="PATH_TO_CERT/ca.crt"
$ python start_protocol.py ...
neuropathbasel commented 3 years ago

The certificate is on this machine in the path you gave:

(start_seq) user@meqneuropat25:~/minknow_api-4.2.2/python/examples$ ls /opt/ont/minknow/conf/rpc-certs/ca.crt /opt/ont/minknow/conf/rpc-certs/ca.crt

(start_seq) user@meqneuropat25:~/minknow_api-4.2.2/python/examples$ MINKNOW_TRUSTED_CA="/opt/ont/minknow/conf/rpc-certs/ca.crt"

However: (start_seq) user@meqneuropat25:~/minknow_api-4.2.2/python/examples$ python start_protocol.py \

--host localhost \ --port 9501 \ --position MN32638 \ --sample-id "my_sample_05" \ --experiment-group "my_group_05" \ --experiment-duration 24 \ --basecalling \ --fastq --bam \ --verbose \ --kit SQK-RBK004 \ --barcoding \ --barcode-kits "SQK-RBK004" Traceback (most recent call last): File "/home/user/minknow_api-4.2.2/start_seq/lib/python3.7/site-packages/minknow_api/init.py", line 190, in grpc_credentials return grpc_credentials.cached_credentials AttributeError: 'function' object has no attribute 'cached_credentials'

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "start_protocol.py", line 449, in main() File "start_protocol.py", line 303, in main manager = Manager(host=args.host, port=args.port, use_tls=not args.no_tls) File "/home/user/minknow_api-4.2.2/start_seq/lib/python3.7/site-packages/minknow_api/manager.py", line 103, in init use_tls=use_tls, File "/home/user/minknow_api-4.2.2/start_seq/lib/python3.7/site-packages/minknow_api/manager.py", line 37, in init minknow_api.grpc_credentials(), File "/home/user/minknow_api-4.2.2/start_seq/lib/python3.7/site-packages/minknow_api/init.py", line 196, in grpc_credentials "Couldn't find a valid path to MinKNOW's CA SSL certificate to initiate a secure connection" minknow_api.MissingMinknowSSlCertError: Couldn't find a valid path to MinKNOW's CA SSL certificate to initiate a secure connection

the assignment to the path with the certificate worked: (start_seq) user@meqneuropat25:~/minknow_api-4.2.2/python/examples$ echo $MINKNOW_TRUSTED_CA /opt/ont/minknow/conf/rpc-certs/ca.crt

0x55555555 commented 3 years ago

Ah, sorry - you will need to export the variable if not running it on one line - i failed to specify:

$ export MINKNOW_TRUSTED_CA="PATH_TO_CERT/ca.crt"
$ python start_protocol.py ...
neuropathbasel commented 3 years ago

Where can I find the correct version of the certificate?

I did what you suggested (Sorry for the horizontal lines - not clear where they come from or how to remove them) (start_seq) user@meqneuropat25:~/minknow_api-4.2.2/python/examples$ export MINKNOW_TRUSTED_CA="/opt/ont/minknow/conf/rpc-certs/ca.crt" (start_seq) user@meqneuropat25:~/minknow_api-4.2.2/python/examples$ python start_protocol.py --host localhost --port 9501 --position MN32638 --sample-id "my_sample_05" --experiment-group "my_group_05" --experiment-duration 24 --basecalling --fastq --bam --verbose --kit SQK-RBK004 --barcoding --barcode-kits "SQK-RBK004" E0427 14:43:40.471386590 8301 ssl_transport_security.cc:1455] Handshake failed with fatal error SSL_ERROR_SSL: error:100000f7:SSL routines:OPENSSL_internal:WRONG_VERSION_NUMBER. Traceback (most recent call last): File "start_protocol.py", line 449, in main() File "start_protocol.py", line 303, in main manager = Manager(host=args.host, port=args.port, use_tls=not args.no_tls) File "/home/user/minknow_api-4.2.2/start_seq/lib/python3.7/site-packages/minknow_api/manager.py", line 108, in init minknow_api.manager_service.GetVersionInfoRequest() File "/home/user/minknow_api-4.2.2/start_seq/lib/python3.7/site-packages/grpc/_channel.py", line 946, in call return _end_unary_response_blocking(state, call, False, None) File "/home/user/minknow_api-4.2.2/start_seq/lib/python3.7/site-packages/grpc/_channel.py", line 849, in _end_unary_response_blocking raise _InactiveRpcError(state) grpc._channel._InactiveRpcError: <_InactiveRpcError of RPC that terminated with: status = StatusCode.UNAVAILABLE details = "failed to connect to all addresses" debug_error_string = "{"created":"@1619527420.471475802","description":"Failed to pick subchannel","file":"src/core/ext/filters/client_channel/client_channel.cc","file_line":5420,"referenced_errors":[{"created":"@1619527420.471473321","description":"failed to connect to all addresses","file":"src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc","file_line":398,"grpc_status":14}]}"

0x55555555 commented 3 years ago

Where can I find the correct version of the certificate?

Thats not the issue here - youre now specifying an explicit port, but the insecure minknow port.

I would suggest you remove the port argument, unless you really know you want to connect to that port. MinKNOW will work out the correct port:

python start_protocol.py --host localhost --position MN32638 --sample-id "my_sample_05" --experiment-group "my_group_05" --experiment-duration 24 --basecalling --fastq --bam --verbose --kit SQK-RBK004 --barcoding --barcode-kits "SQK-RBK004"

neuropathbasel commented 3 years ago

Brilliant, a run was started for our kit. Thank you very much. Below is the verbose logging

(start_seq) user@meqneuropat25:~/minknow_api-4.2.2/python/examples$ python start_protocol.py --host localhost --position MN32638 --sample-id "my_sample_05" --experiment-group "my_group_05" --experiment-duration 24 --basecalling --fastq --bam --verbose --kit SQK-RBK004 --barcoding --barcode-kits "SQK-RBK004" DEBUG:minknow_api.tools.protocols:Ignoring experiment with incorrect type: control vs sequencing DEBUG:minknow_api.tools.protocols:Protocol is for product FLO-MIN107, not FLO-MIN106 DEBUG:minknow_api.tools.protocols:Protocol is for product FLO-MIN107, not FLO-MIN106 DEBUG:minknow_api.tools.protocols:Ignoring experiment with incorrect type: control vs sequencing DEBUG:minknow_api.tools.protocols:Ignoring experiment with incorrect type: control vs sequencing DEBUG:minknow_api.tools.protocols:Ignoring experiment with incorrect type: control vs sequencing DEBUG:minknow_api.tools.protocols:Ignoring experiment with incorrect type: control vs sequencing DEBUG:minknow_api.tools.protocols:Ignoring experiment with incorrect type: control vs sequencing DEBUG:minknow_api.tools.protocols:Ignoring experiment with incorrect type: control vs sequencing DEBUG:minknow_api.tools.protocols:Ignoring experiment with incorrect type: control vs sequencing DEBUG:minknow_api.tools.protocols:Ignoring experiment with incorrect type: control vs sequencing DEBUG:minknow_api.tools.protocols:Ignoring experiment with incorrect type: control vs sequencing DEBUG:minknow_api.tools.protocols:Protocol supports kit SQK-RNA003, not SQK-RBK004 DEBUG:minknow_api.tools.protocols:Ignoring experiment with incorrect type: control vs sequencing DEBUG:minknow_api.tools.protocols:Protocol supports kit SQK-ULK001, not SQK-RBK004 DEBUG:minknow_api.tools.protocols:Ignoring experiment with incorrect type: control vs sequencing DEBUG:minknow_api.tools.protocols:Ignoring experiment with incorrect type: control vs sequencing DEBUG:minknow_api.tools.protocols:Ignoring experiment with incorrect type: control vs sequencing DEBUG:minknow_api.tools.protocols:Ignoring experiment with incorrect type: control vs sequencing DEBUG:minknow_api.tools.protocols:Ignoring experiment with incorrect type: control vs sequencing DEBUG:minknow_api.tools.protocols:Ignoring experiment with incorrect type: control vs sequencing DEBUG:minknow_api.tools.protocols:Ignoring experiment with incorrect type: control vs sequencing DEBUG:minknow_api.tools.protocols:Ignoring experiment with incorrect type: control vs sequencing DEBUG:minknow_api.tools.protocols:Ignoring experiment with incorrect type: control vs sequencing DEBUG:minknow_api.tools.protocols:Protocol is for product FLO-MIN110, not FLO-MIN106 DEBUG:minknow_api.tools.protocols:Protocol is for product FLO-MIN110, not FLO-MIN106 DEBUG:minknow_api.tools.protocols:Protocol is for product FLO-MIN110, not FLO-MIN106 DEBUG:minknow_api.tools.protocols:Protocol is for product FLO-MIN110, not FLO-MIN106 DEBUG:minknow_api.tools.protocols:Protocol is for product FLO-MIN110, not FLO-MIN106 DEBUG:minknow_api.tools.protocols:Protocol is for product FLO-MIN110, not FLO-MIN106 DEBUG:minknow_api.tools.protocols:Protocol is for product FLO-MIN110, not FLO-MIN106 DEBUG:minknow_api.tools.protocols:Protocol is for product FLO-MIN110, not FLO-MIN106 DEBUG:minknow_api.tools.protocols:Protocol is for product FLO-MIN110, not FLO-MIN106 DEBUG:minknow_api.tools.protocols:Protocol is for product FLO-MIN110, not FLO-MIN106 DEBUG:minknow_api.tools.protocols:Protocol is for product FLO-MIN110, not FLO-MIN106 DEBUG:minknow_api.tools.protocols:Protocol is for product FLO-MIN110, not FLO-MIN106 DEBUG:minknow_api.tools.protocols:Protocol is for product FLO-MIN110, not FLO-MIN106 DEBUG:minknow_api.tools.protocols:Protocol is for product FLO-MIN110, not FLO-MIN106 DEBUG:minknow_api.tools.protocols:Protocol is for product FLO-MIN110, not FLO-MIN106 DEBUG:minknow_api.tools.protocols:Protocol is for product FLO-MIN110, not FLO-MIN106 DEBUG:minknow_api.tools.protocols:Protocol is for product FLO-MIN110, not FLO-MIN106 DEBUG:minknow_api.tools.protocols:Protocol is for product FLO-MIN110, not FLO-MIN106 DEBUG:minknow_api.tools.protocols:Protocol is for product FLO-MIN110, not FLO-MIN106 DEBUG:minknow_api.tools.protocols:Protocol is for product FLO-MIN110, not FLO-MIN106 DEBUG:minknow_api.tools.protocols:Protocol is for product FLO-MIN110, not FLO-MIN106 DEBUG:minknow_api.tools.protocols:Protocol is for product FLO-MIN110, not FLO-MIN106 DEBUG:minknow_api.tools.protocols:Protocol is for product FLO-MIN110, not FLO-MIN106 DEBUG:minknow_api.tools.protocols:Protocol is for product FLO-MIN110, not FLO-MIN106 DEBUG:minknow_api.tools.protocols:Protocol is for product FLO-MIN110, not FLO-MIN106 DEBUG:minknow_api.tools.protocols:Protocol is for product FLO-MIN110, not FLO-MIN106 DEBUG:minknow_api.tools.protocols:Protocol is for product FLO-MIN110, not FLO-MIN106 DEBUG:minknow_api.tools.protocols:Protocol is for product FLO-MIN110, not FLO-MIN106 DEBUG:minknow_api.tools.protocols:Protocol is for product FLO-MIN110, not FLO-MIN106 DEBUG:minknow_api.tools.protocols:Protocol is for product FLO-MIN110, not FLO-MIN106 DEBUG:minknow_api.tools.protocols:Protocol is for product FLO-MIN107, not FLO-MIN106 DEBUG:minknow_api.tools.protocols:Protocol is for product FLO-MIN107, not FLO-MIN106 DEBUG:minknow_api.tools.protocols:Ignoring experiment with incorrect type: control vs sequencing DEBUG:minknow_api.tools.protocols:Ignoring experiment with incorrect type: control vs sequencing DEBUG:minknow_api.tools.protocols:Ignoring experiment with incorrect type: control vs sequencing DEBUG:minknow_api.tools.protocols:Ignoring experiment with incorrect type: control vs sequencing DEBUG:minknow_api.tools.protocols:Ignoring experiment with incorrect type: control vs sequencing DEBUG:minknow_api.tools.protocols:Ignoring experiment with incorrect type: control vs sequencing DEBUG:minknow_api.tools.protocols:Ignoring experiment with incorrect type: control vs sequencing DEBUG:minknow_api.tools.protocols:Ignoring experiment with incorrect type: control vs sequencing DEBUG:minknow_api.tools.protocols:Ignoring experiment with incorrect type: control vs sequencing DEBUG:minknow_api.tools.protocols:Ignoring experiment with incorrect type: control vs sequencing DEBUG:minknow_api.tools.protocols:Ignoring experiment with incorrect type: control vs sequencing DEBUG:minknow_api.tools.protocols:Protocol is for product FLO-MIN111, not FLO-MIN106 DEBUG:minknow_api.tools.protocols:Protocol supports kit SQK-16S024, not SQK-RBK004 DEBUG:minknow_api.tools.protocols:Protocol supports kit SQK-CAS109, not SQK-RBK004 DEBUG:minknow_api.tools.protocols:Protocol supports kit SQK-CS9109, not SQK-RBK004 DEBUG:minknow_api.tools.protocols:Protocol supports kit SQK-LSK108, not SQK-RBK004 DEBUG:minknow_api.tools.protocols:Protocol supports kit SQK-LSK109, not SQK-RBK004 DEBUG:minknow_api.tools.protocols:Protocol supports kit SQK-LSK109-XL, not SQK-RBK004 DEBUG:minknow_api.tools.protocols:Protocol supports kit SQK-LSK110, not SQK-RBK004 DEBUG:minknow_api.tools.protocols:Protocol supports kit SQK-LSK110-XL, not SQK-RBK004 DEBUG:minknow_api.tools.protocols:Protocol supports kit SQK-NBD110-24, not SQK-RBK004 DEBUG:minknow_api.tools.protocols:Protocol supports kit SQK-NBD110-96, not SQK-RBK004 DEBUG:minknow_api.tools.protocols:Protocol supports kit SQK-RAD004, not SQK-RBK004 Starting protocol on 1 positions Starting protocol sequencing/sequencing_MIN106_DNA:FLO-MIN106:SQK-RBK004 on position MN32638 DEBUG:minknow_api.tools.protocols:Built protocol arguments: --base_calling=on --barcoding barcoding_kits=['SQK-RBK004',] --experiment_time=72 --fast5=off --fastq=on --fastq_data compress --fastq_reads_per_file=4000 --bam=on --active_channel_selection=on --mux_scan_period=1.5 Started protocol 55500f91-7499-40f2-8338-c769b04070e9

Do you have a script to terminate a protocol with a known ID? Many Thanks Claus

0x55555555 commented 3 years ago

We dont have an example of that, the required APIs are here:

Stop a protocol: https://github.com/nanoporetech/minknow_api/blob/master/proto/minknow_api/protocol.proto#L20

Find protocol information: https://github.com/nanoporetech/minknow_api/blob/master/proto/minknow_api/protocol.proto#L44

This in combination with the start protocol API should be enough to write a script to do this - you would need to iterate all sequencing positions, check for current run + stop if you match.

neuropathbasel commented 3 years ago

Thanks for this clarification and the links. Please feel free to close this thread. I do not want to be rude and close this thread without your consent.