Skip to main content

Library for communicating with and using the QuantStudio qPCR machine, intended for non-qPCR uses.

Project description

Documentation Status Codecov GitHub Workflow Status PyPI CII Best Practices DOI PyPI - Python Version

Our DNA 28 poster is available here.

Documentation: Stable, Latest

qslib

QSLib is a package for interacting with Applied Biosystems' QuantStudio qPCR machines, primarily intended for non-qPCR uses, such as DNA computing and molecular programming systems. It allows the creation, processing, and handling of experiments and experiment data, and interaction with machines through their network connection and SCPI interface.

The package was originally written for 96-well-block QuantStudio 5 machines. However, it has some support for other machines, particularly for reading EDS files: it supports v1.3 and (partially) v2.0 specification EDS files, and should be able to read at least some data from files generated by Viia7, QuantStudio 3, QuantStudio 5, QuantStudio 6 Flex, and QuantStudio 6 Pro machines, with 96-well and 384-well blocks. If you have problems reading EDS files, or have found that it works with other machines, please let me know.

Amongst other features that it has:

  • Direct fluorescence data ("filter data") as Pandas dataframes, with times and temperature readings.

  • Running-experiment data access, status information, and control.

  • Protocol creation and manipulation, allowing functions outside of AB's software. Protocols can be modified and updated mid-run.

  • Temperature data at one-second resolution during experiments.

  • Machine control functions: immediate pauses and resumes, drawer control, power, etc.

  • With qslib-monitor: live monitoring of machine state information, with Matrix notifications, InfluxDB storage, and Grafana dashboards.

Installation and Setup

QSLib is pure Python, and can be installed via pip:

pip3 install -U qslib

Or, for the current Github version:

pip3 install -U --pre git+https://github.com/cgevans/qslib

It requires at least version 3.10 of Python. While it uses async code at its core for communication, it can be used conveniently in Jupyter or IPython.

To use the library for communication with machines, you'll need a machine access password with Observer (for reading data and statuses) and/or Controller (for running experiments and controlling the machine) access. You will also need access to the machine on port 7443 (machine software versions 1.3.4 and higher), or port 7000 (earlier software versions).

In machine software versions 1.3.4 and higher, you can set a password using the "OEM Connection Only" option in "Settings". Earlier software versions must have passwords set by other methods. Regardless of version, I strongly recommend against having the machines be accessible online: use a restricted VPN connection or port forwarding. See the documentation for more information.

Contributing and issue reporting

Issue reports and enhancement requests can be submitted via Github.

Potential contributions can be submitted via Github. These should include pytest tests, preferably both tests that can be run without outside resources, and, if applicable, tests that directly test any communication with a QuantStudio SCPI server. They will also need a Contributor Licence Agreement.

Private vulnerability reports can be sent to me by email, PGP-encrypted, or via Matrix to @cge:matrix.org.

Disclaimer

This package was developed for my own use. It may break your machine or void your warranty. Data may have errors or be incorrect. When used to send raw commands at high access levels, the machine interface could render your machine unusable or be used to send commands that would physically/electrically damage the machine or potentially be hazardous to you or others.

I am not any way connected with Applied Biosystems. I have developed this package using the machine's documentation system and standard file formats.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

qslib-0.15.0.tar.gz (1.1 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

qslib-0.15.0-cp314-cp314t-win_amd64.whl (19.0 MB view details)

Uploaded CPython 3.14tWindows x86-64

qslib-0.15.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (20.7 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ x86-64

qslib-0.15.0-cp314-cp314t-macosx_11_0_arm64.whl (19.1 MB view details)

Uploaded CPython 3.14tmacOS 11.0+ ARM64

qslib-0.15.0-cp313-cp313t-win_amd64.whl (19.0 MB view details)

Uploaded CPython 3.13tWindows x86-64

qslib-0.15.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (20.7 MB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ x86-64

qslib-0.15.0-cp313-cp313t-macosx_11_0_arm64.whl (19.1 MB view details)

Uploaded CPython 3.13tmacOS 11.0+ ARM64

qslib-0.15.0-cp310-abi3-win_amd64.whl (19.2 MB view details)

Uploaded CPython 3.10+Windows x86-64

qslib-0.15.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (20.7 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ x86-64

qslib-0.15.0-cp310-abi3-macosx_11_0_arm64.whl (19.2 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

File details

Details for the file qslib-0.15.0.tar.gz.

File metadata

  • Download URL: qslib-0.15.0.tar.gz
  • Upload date:
  • Size: 1.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for qslib-0.15.0.tar.gz
Algorithm Hash digest
SHA256 8b94218dc345509e0e25b212c244e10f36d9ecfeab21833248836bc0c90d2b5f
MD5 21378ef42afc8a920999209ade9285fa
BLAKE2b-256 8543864927ce54d287ff82f4808f2a119f5a341f63af82f9df4e1f8f903f26a6

See more details on using hashes here.

File details

Details for the file qslib-0.15.0-cp314-cp314t-win_amd64.whl.

File metadata

  • Download URL: qslib-0.15.0-cp314-cp314t-win_amd64.whl
  • Upload date:
  • Size: 19.0 MB
  • Tags: CPython 3.14t, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for qslib-0.15.0-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 c9febb90843061b7a9cb4ad8b6be2b18f39e0d9b4ac2715c96eb23d260029fa1
MD5 22d511da7d7062927564a4954aae828c
BLAKE2b-256 4b873774b889f27b075d1979b523e873c33abd71bc087c694787cc4f134c6dcf

See more details on using hashes here.

File details

Details for the file qslib-0.15.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

  • Download URL: qslib-0.15.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
  • Upload date:
  • Size: 20.7 MB
  • Tags: CPython 3.14t, manylinux: glibc 2.17+ x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for qslib-0.15.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 cce28dfc3c6db818160e615cc3019fb543156bceae11536efab8960cde144de2
MD5 39ab1c1f9ac6de0dbbb1a3116717ec2c
BLAKE2b-256 24af5a3d73ef0e04fcd60f7bc7bae8d2159c0b1503076af1384bd333e5cdb584

See more details on using hashes here.

File details

Details for the file qslib-0.15.0-cp314-cp314t-macosx_11_0_arm64.whl.

File metadata

  • Download URL: qslib-0.15.0-cp314-cp314t-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 19.1 MB
  • Tags: CPython 3.14t, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for qslib-0.15.0-cp314-cp314t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e6befb11062cf85d8f0aa521d9a4bf2471e88f4c1f258d7b9f690bce36cbd519
MD5 b8b851b0e32fcb3eefcc292969bf3147
BLAKE2b-256 47123ce2267fdc94fbd3820e6fa36dac8b23d7629d3ec425506b9917f7c9fdf2

See more details on using hashes here.

File details

Details for the file qslib-0.15.0-cp313-cp313t-win_amd64.whl.

File metadata

  • Download URL: qslib-0.15.0-cp313-cp313t-win_amd64.whl
  • Upload date:
  • Size: 19.0 MB
  • Tags: CPython 3.13t, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for qslib-0.15.0-cp313-cp313t-win_amd64.whl
Algorithm Hash digest
SHA256 4eb3755b5c94706b1ca714f220368dd8c40ba92a6427828ab5439efd866b55fa
MD5 260ced4f5caaacb8ba3773cf492c0b6b
BLAKE2b-256 6997a08d5d07b518116aa9a843579e6f1aece8ca3461c765e671a7dd632ce485

See more details on using hashes here.

File details

Details for the file qslib-0.15.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

  • Download URL: qslib-0.15.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
  • Upload date:
  • Size: 20.7 MB
  • Tags: CPython 3.13t, manylinux: glibc 2.17+ x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for qslib-0.15.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f8e1a2377553d757358251fbad7ef7246c3f007bc1c7862827de0faaf48a778e
MD5 e5ebb881a384d4b21272124d40961e1f
BLAKE2b-256 72b52dfed766c4c4e6d4be1114738df3f58ce4de1031185d76ebae3cf0454a50

See more details on using hashes here.

File details

Details for the file qslib-0.15.0-cp313-cp313t-macosx_11_0_arm64.whl.

File metadata

  • Download URL: qslib-0.15.0-cp313-cp313t-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 19.1 MB
  • Tags: CPython 3.13t, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for qslib-0.15.0-cp313-cp313t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4a8ace01ddcb454883665e4d8e0959fca0e4d9dc2b7fa3e81cb54054b2f770c0
MD5 18915b44b17c0e8b4303c123ab7ee761
BLAKE2b-256 7995757040bc8e1ac0cf14061f2c9b8b32744da32e6c868ed6ee25da2328c71f

See more details on using hashes here.

File details

Details for the file qslib-0.15.0-cp310-abi3-win_amd64.whl.

File metadata

  • Download URL: qslib-0.15.0-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 19.2 MB
  • Tags: CPython 3.10+, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for qslib-0.15.0-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 ea4c78a1365bcc87f38e58f81fac8b8e33a3eab4769d1f8ea093e94f13d9d724
MD5 a6f8684c6f80b5ce165a249d8b191924
BLAKE2b-256 cb8f24ea9c2573fda63d0abc2ced297760f92cad1dac1cff17d70a797fa32ccf

See more details on using hashes here.

File details

Details for the file qslib-0.15.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

  • Download URL: qslib-0.15.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
  • Upload date:
  • Size: 20.7 MB
  • Tags: CPython 3.10+, manylinux: glibc 2.17+ x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for qslib-0.15.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b322053c6fbecf8f21015175a47a5f7b5e94d0ec8aa83e2f7672b704b0867bd6
MD5 c808964e8ec7948df3cf630f35037c2d
BLAKE2b-256 ae10ea000eb41e89771b25f7e9ba5df4aca02eeb55db1a335799ecc291e5995b

See more details on using hashes here.

File details

Details for the file qslib-0.15.0-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

  • Download URL: qslib-0.15.0-cp310-abi3-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 19.2 MB
  • Tags: CPython 3.10+, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for qslib-0.15.0-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8d10bdfb69c11d67f7dba7696fb79e9b16cbf3205c03bf3d554defcdd9f1c7a8
MD5 314c76e9351e2977b6ad8cf65c9194c4
BLAKE2b-256 fb708b78e07208c317414b4afea750076cdfc513588ff5f7520b315c6ddd6e31

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page