qslib

QSLib is a package for interacting with Applied Biosystems' QuantStudio qPCR machines, intended for non-qPCR uses, such as DNA computing and molecular programming systems.

https://github.com/cgevans/qslib

Science Score: 64.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
    Links to: zenodo.org
  • Committers with academic emails
    1 of 5 committers (20.0%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (16.1%) to scientific vocabulary

Keywords

dna molecular-computing python
Last synced: 6 months ago · JSON representation ·

Repository

QSLib is a package for interacting with Applied Biosystems' QuantStudio qPCR machines, intended for non-qPCR uses, such as DNA computing and molecular programming systems.

Basic Info
  • Host: GitHub
  • Owner: cgevans
  • License: eupl-1.2
  • Language: Python
  • Default Branch: main
  • Homepage:
  • Size: 1.26 MB
Statistics
  • Stars: 11
  • Watchers: 3
  • Forks: 0
  • Open Issues: 13
  • Releases: 29
Topics
dna molecular-computing python
Created over 4 years ago · Last pushed 7 months ago
Metadata Files
Readme Changelog License Citation Authors

README.md

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.9 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.

Owner

  • Name: Constantine Evans
  • Login: cgevans
  • Kind: user

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
  - family-names: "Evans"
    given-names: "Constantine"
    orcid: "https://orcid.org/0000-0002-7053-1670"
title: "QSlib"
license: "EUPL-1.2"
doi: 10.5281/zenodo.14219197
url: "https://doi.org/10.5281/zenodo.14219197"
version: "0.13.0"

GitHub Events

Total
  • Create event: 6
  • Issues event: 2
  • Release event: 1
  • Watch event: 2
  • Push event: 49
  • Pull request event: 2
Last Year
  • Create event: 6
  • Issues event: 2
  • Release event: 1
  • Watch event: 2
  • Push event: 49
  • Pull request event: 2

Committers

Last synced: almost 3 years ago

All Time
  • Total Commits: 277
  • Total Committers: 5
  • Avg Commits per committer: 55.4
  • Development Distribution Score (DDS): 0.264
Top Committers
Name Email Commits
Constantine Evans c****t@c****u 204
Constantine Evans c****t@c****g 55
Constantine Evans c****s@c****g 16
David Doty d****y@u****u 1
Constantine Evans c****s@e****g 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 23
  • Total pull requests: 12
  • Average time to close issues: 5 days
  • Average time to close pull requests: 2 days
  • Total issue authors: 2
  • Total pull request authors: 2
  • Average comments per issue: 0.09
  • Average comments per pull request: 0.83
  • Merged pull requests: 11
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 1
  • Pull requests: 2
  • Average time to close issues: 14 minutes
  • Average time to close pull requests: about 19 hours
  • Issue authors: 1
  • Pull request authors: 1
  • Average comments per issue: 0.0
  • Average comments per pull request: 0.0
  • Merged pull requests: 1
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • cgevans (22)
  • dave-doty (1)
Pull Request Authors
  • cgevans (11)
  • dave-doty (1)
Top Labels
Issue Labels
enhancement (6) tracking (3) documentation (1) bug (1)
Pull Request Labels
enhancement (1)

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 183 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 1
  • Total versions: 31
  • Total maintainers: 1
pypi.org: qslib

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

  • Versions: 31
  • Dependent Packages: 0
  • Dependent Repositories: 1
  • Downloads: 183 Last month
Rankings
Dependent packages count: 10.1%
Downloads: 12.4%
Average: 14.7%
Dependent repos count: 21.6%
Maintainers (1)
Last synced: 7 months ago

Dependencies

docs/requirements.txt pypi
  • recommonmark *
  • sphinx >=3.2.1