Package: chemspyd
ChemspydA Python API for the Chemspeed AutoSuite software.InstallationPyPI$pipinstallchemspydFrom sourceClone this repository, navigate to the directory wheresetup.pyis located, and install the package using pip:$pipinstall.Manager app: installation & setupCopyManager.appto 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 setupfromchemspyd.autosuiteimportget_config,clean_configget_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 setupWrite the configuration JSON files manually to match your Chemspeed's configuration. Follow the examples in theconfigurationdirectory for examples of proper syntax and structure.Further instructions can be found in theInstallationsection of the package documentation.UsageExecute the manager app on the computer running the Chemspeed AutoSuite software.Import thechemspydpackage in your Python script.Specify the path to the commands folder using e.g.pathlib.Instantiate achemspyd.ChemspeedControllerobject with the path to the commands folder as an argument.simulationis 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.ExamplefrompathlibimportPathfromchemspydimportController# Instantiate controllertarget=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 liquidchmspd.transfer_liquid("RACKL:1","RACKR:1",5,1)Further examples can be found in thedemosdirectory.FeaturesChemspyd provides a Python interface for the Chemspeed AutoSuite software that enables modular, dynamic control of Chemspeed operations. It currently allows for the following operations:BasicLiquid transferSolid transferISYNTH drawer controlTemperature & atmosphere (ambient, vacuum, inert) controlStirVial transportMeasure levelRead statusUnmountWaitRoutinesPrime pumpsInject to HPLC portCarry out Schlenk cyclesRefluxFilterSet all ISYNTH drawers at onceAdvancedAutomatic configuration upon installationTrack volume of liquid in wells by addition and removalTrack amount of solid added to or removed from wellsNOTE: These are experimental features, and are not guaranteed to be robust.ContributingWe 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.AcknowledgmentsThe following people are acknowledged for assisting in the development of Chemspyd and its functionality in various ways:Martin Seifrid (@mseifrid)Felix Strieth-Kalthoff (@felix-s-k)Mohammad Haddadnia (@mohaddadnia)Tony C. Wu (@verysure)Emre Alca (@alcaemre)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}
}