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.14.0.tar.gz (984.7 kB view details)

Uploaded Source

Built Distributions

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

qslib-0.14.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (19.5 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

qslib-0.14.0-cp310-abi3-win_amd64.whl (18.1 MB view details)

Uploaded CPython 3.10+Windows x86-64

qslib-0.14.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (19.5 MB view details)

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

qslib-0.14.0-cp310-abi3-macosx_11_0_arm64.whl (18.1 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

qslib-0.14.0-cp310-abi3-macosx_10_12_x86_64.whl (18.9 MB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: qslib-0.14.0.tar.gz
  • Upload date:
  • Size: 984.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.10.2

File hashes

Hashes for qslib-0.14.0.tar.gz
Algorithm Hash digest
SHA256 dc8ef80564d82f659a76ec3eb50cded750073ed17c5bbf8dc13dcfa6f68ddc43
MD5 ac92ed90dfea2a06b8288e6ad9aa047a
BLAKE2b-256 7428c22d797d501b8827fc160e472c469109b05760699a3a40e68f14fcd16f30

See more details on using hashes here.

File details

Details for the file qslib-0.14.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for qslib-0.14.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7649384cc630b392d26424ee16a33fbb74cad0bd8bf29707a296c0b3d3b652cb
MD5 5930b2225e6eefb983e5de8f488ff30c
BLAKE2b-256 33dbfb170b296061f6a483261b0685585a77d9f0c162ecfad2f6e4bd05606eb4

See more details on using hashes here.

File details

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

File metadata

  • Download URL: qslib-0.14.0-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 18.1 MB
  • Tags: CPython 3.10+, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.10.2

File hashes

Hashes for qslib-0.14.0-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 b1d952967ddd080a8367461d8d8a26a396cccfd8cea5b49d55203cc89ed00abc
MD5 4a9649a2148f3467638de23d4644db7b
BLAKE2b-256 a403b0fd006764453f16417e4c2f666d1e9b28cc60ecf3825771b273809df50b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for qslib-0.14.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 52597d587c259e7daf2600f6fd2ae418c6baaca6bb1f039638da9a0d7e8815b1
MD5 489811dc9885dfc138e515b3de78eb6a
BLAKE2b-256 4adb2dbd3bb2ff430239dbde3d941c6b1aa9cb35d977ad68d73951b44c9db3e8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for qslib-0.14.0-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 af4ae4e3ad473b8c62305aa68dc6412cd5c642822134a8afd0d12a53618f5c8a
MD5 8741db0e63128302541f4cc5762252ff
BLAKE2b-256 6cf55a2401a5974fa4d4ce92ef63a73dc7421681cc4e5d7a5070ae9e62e54f67

See more details on using hashes here.

File details

Details for the file qslib-0.14.0-cp310-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for qslib-0.14.0-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 730feace7d7c0db148ac20cbc80a1719bb6494b64cefc6f8c427fcb998f096e2
MD5 60865eba3d81e2f649baaae85f8beb23
BLAKE2b-256 a3869579ad37db1f01ad011d85d86acf16a47253a2eb51101eeabd0b9c698b5f

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