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 hashes)

Uploaded Source

Built Distribution

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

Uploaded Python 3

Supported by

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