Skip to main content

A Python API for the Chemspeed AutoSuite software.

Project description

Testing Coverage

GitLab issues open GitLab issues close

Release PyPI - Version License Python Version

DOI

Chemspyd

A Python API for the Chemspeed AutoSuite software.

Installation

PyPI

$ pip install chemspyd

From source

Clone this repository, navigate to the directory where setup.py is located, and install the package using pip:

$ pip install .

Manager app: installation & setup

  • Copy Manager.app to the computer running the Chemspeed AutoSuite software.
  • Create a folder on the Chemspeed computer where the commands will be sent.
  • Perform necessary adaptations for your system. This can be done automatically or manually.

Automatic setup

from chemspyd.autosuite import get_config, clean_config

get_config(
    output_json="path/to/elements_config.json",  # Choose appropriate location for the config files.
    manager_path="path/to/Manager.app",
)

clean_config(
    config_path="path/to/elements_config.json",
    spe_specs={"default": "SPE_D", "waste": "SPE_W"},  # Only necessary if you have a SPE rack.
    inject_specs={"default": "INJECT_I", "load": "INJECT_L"},  # Only necessary if you have an HPLC injection port.
)

Manual setup

Write the configuration JSON files manually to match your Chemspeed's configuration. Follow the examples in the configuration directory for examples of proper syntax and structure.

Further instructions can be found in the Installation section of the package documentation.

Usage

  • Execute the manager app on the computer running the Chemspeed AutoSuite software.
  • Import the chemspyd package in your Python script.
  • Specify the path to the commands folder using e.g. pathlib.
  • Instantiate a chemspyd.ChemspeedController object with the path to the commands folder as an argument.
  • simulation is a boolean argument that determines whether the commands are sent to the Chemspeed AutoSuite software or not. If it's false, commands will simply be printed to the console.

Example

from pathlib import Path

from chemspyd import Controller

# Instantiate controller
target = r"\\Chemspeed_PC\Users\Operator\Commands"
configuration: Path = Path(__file__).parent / "configuration"
elements: Path = configuration / "element_config.json"
sys_liquids: Path = configuration / "system_liquids.json"
statuses: Path = configuration / "statuses.json"
chmspd = Controller(
    cmd_folder=target,
    element_config=elements,
    system_liquids=sys_liquids,
    statuses=statuses,
    verbosity=2,
    simulation=False,
)

# Transfer liquid
chmspd.transfer_liquid("RACKL:1","RACKR:1",5,1)

Further examples can be found in the demos directory.

Features

Chemspyd provides a Python interface for the Chemspeed AutoSuite software that enables modular, dynamic control of Chemspeed operations. It currently allows for the following operations:

Basic

  • Liquid transfer
  • Solid transfer
  • ISYNTH drawer control
  • Temperature & atmosphere (ambient, vacuum, inert) control
  • Stir
  • Vial transport
  • Measure level
  • Read status
  • Unmount
  • Wait

Routines

  • Prime pumps
  • Inject to HPLC port
  • Carry out Schlenk cycles
  • Reflux
  • Filter
  • Set all ISYNTH drawers at once

Advanced

  • Automatic configuration upon installation
  • Track volume of liquid in wells by addition and removal
  • Track amount of solid added to or removed from wells NOTE: These are experimental features, and are not guaranteed to be robust.

Contributing

We welcome contributions from the community! If there are additional features that you would like to see added, please open an issue or a merge request, and suggest an implementation.

Acknowledgments

The following people are acknowledged for assisting in the development of Chemspyd and its functionality in various ways:

Cite this work

@article{
    Seifrid_2024,
    shorttitle={Chemspyd},
    title={Chemspyd: An Open-Source Python Interface for Chemspeed Robotic Chemistry and Materials Platforms},
    DOI={10.26434/chemrxiv-2024-33sfl},
    journal={ChemRxiv},
    author={Seifrid, Martin and Strieth-Kalthoff, Felix and Haddadnia, Mohammad and Wu, Tony and Alca, Emre and Bodo, Leticia and Arellano-Rubach, Sebastian and Yoshikawa, Naruki and Skreta, Marta and Keunen, Rachel and Aspuru-Guzik, Al{\'a}n},
    year={2024}
}

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

chemspyd-1.0.0.tar.gz (43.0 kB view details)

Uploaded Source

Built Distribution

chemspyd-1.0.0-py3-none-any.whl (41.9 kB view details)

Uploaded Python 3

File details

Details for the file chemspyd-1.0.0.tar.gz.

File metadata

  • Download URL: chemspyd-1.0.0.tar.gz
  • Upload date:
  • Size: 43.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.9.18

File hashes

Hashes for chemspyd-1.0.0.tar.gz
Algorithm Hash digest
SHA256 a80d4842a21511f558c4955273dff53c9ec65ec93a0792f9bd55a7192a06eba8
MD5 b442860f28c5acbaa103fee5f99ad684
BLAKE2b-256 3eedb8e09d372740f150b27065b3b176209362ee1e0b0f8216924496a057aedb

See more details on using hashes here.

File details

Details for the file chemspyd-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: chemspyd-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 41.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.9.18

File hashes

Hashes for chemspyd-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f9678f52af2743df4383b87eb9fb79b41357e54102cf309754e7488dd7fab710
MD5 d937206b77328c08faf85d6a3af92cbe
BLAKE2b-256 55a074e4330def0c166222468500eb012bf79fbce216620afd027b36c67e410d

See more details on using hashes here.

Supported by

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