Digital pipette: open hardware for liquid transfer in self-driving laboratories†
Received
14th June 2023
, Accepted 27th September 2023
First published on 4th October 2023
Abstract
Self-driving laboratories are being investigated as a potential means to accelerate the material discovery process. Accurate liquid handling is an essential operation in the context of chemical laboratories, and consequently a self-driving laboratory will require robotic liquid handling and transfer. Although many pipettes are available for human scientists, robots cannot manipulate these pipettes due to the limitations of current robot gripper morphology. We propose an intuitive yet elegant design for a 3D-printed digital pipette designed for robots to carry out chemical experiments. It costs less than 200 USD, and the simple design with three parts enables a new user to assemble one in 10 minutes. We conducted a performance evaluation that closely followed ISO 8655-6. Our results show that robots with the digital pipette could conduct accurate liquid delivery with 0.2% random error for the nominal volume (10 mL). This performance is comparable to commercially available liquid handling devices, whose typical random errors are 0.3%.
1 Introduction
In a self-driving lab, robots carry out experiments autonomously and select the next experiment to perform using AI or optimization approaches.1,2 Among different approaches toward self-driving laboratories, we aim to introduce a general-purpose robot that conducts chemical experiments, using common hardware and affordable customized tools. Specialized hardware for lab automation is expensive and often lacks flexibility. It usually requires additional hardware to expand its functionality. On the other hand, general-purpose robots are expandable with software and enable lab automation that maximizes existing resources. A large set of operations, such as reagent addition, stirring, and temperature control, can be implemented by programming a robot to use common lab tools. Since most existing chemistry instruments are designed for human use, introducing a robot that conducts experiments in a similar way to humans has the potential to realize a higher level of integration of instruments at a lower cost. One of the common tasks that robots must perform accurately in chemistry, materials science, and biology self-driving laboratories is the transfer of liquids. Pouring liquids for chemistry experiments using a robot arm and regular glassware has been proposed, but its accuracy is limited due to the delayed feedback from the sensors.3 This study seeks to overcome these limitations by providing a simple and affordable solution that can be extended to many robotic settings.
Accurate liquid handling is crucial in scientific experiments, and various liquid-transferring instruments have been developed to improve accuracy and safety, such as the Pasteur pipette, the volumetric pipette, and the micropipette. These pipettes are widely available, but they are mainly designed for manual human operation. Typical robotic hands are not as dexterous as human hands, so it is difficult to handle common manual pipettes found in labs. It would require laborious engineering to make robots use pipettes designed for humans. For example, when using a robot with a two-finger gripper, the gripper is used to hold the pipette, and it cannot push a button or rubber bulbs to dispense liquids. In addition, controlling the amount of transferred liquid requires visual perception skills, such as detecting the surface of liquids or reading the numbers on a scale. Solving these technical difficulties requires additional development time or specialized hardware. Specialized end-effectors for triggering pipettes have been proposed to operate commercially available pipettes.4,5 However, these end-effectors limit the capabilities of the robot hand to operate other objects. Anthropomorphic hands may handle manual pipettes, but they impose many technical challenges on software development.
Creating custom hardware for a particular usage is necessary when commercial items do not fulfill the requirements for the task. 3D printers have been utilized as an inexpensive and ubiquitous method to manufacture customized labwares.6,7 There have been proposed 3D-printed liquid handling devices, such as syringe pumps,8–11 liquid handling workstation12 and a desktop liquid dispenser.13 They are typically designed as independent devices and are not intended to be used with a general-purpose robot arm. A syringe pump operated by a robot arm14 is one of the few examples of 3D-printed liquid handling devices designed for a general-purpose robot. 3D printed micropipettes are also proposed; however, their actuation mechanisms are designed for dexterous human fingers, such as pushing a plunger15,16 or rotating gears.17
In this paper, we propose a 3D-printed digital pipette designed for two-finger robot grippers. The proposed pipette offers an accurate liquid handling skill to our chemistry lab automation framework3 shown in Fig. 1. Our pipette uses a low-cost commercial syringe to hold liquids and a linear actuator to handle the plunger of the syringe. The linear actuator enables precise control of the syringe plunger. To address the pipette handling problem with a two-finger robot gripper, our device aspirates and dispenses liquids by sending a command through a serial communication protocol. Moreover, the volume of liquid to transfer can be specified by a serial command from a PC. This command is later transformed into the linear actuator control signal. This control mechanism does not require any visual perception skills. The portable shape with flat surfaces makes grasping by two-finger robot grippers easier and more reliable. This open and affordable hardware equips a general-purpose robot with liquid handling ability without limiting its existing capabilities in performing other tasks, such as manipulation.
|
| Fig. 1 Chemistry lab automation framework.3 The framework takes instructions from users and generates a task and motion plan based on the input from perception modules. The generated plan is passed to the skill module for execution and realized by chemical instruments and robot arms. The proposed digital pipette works as the liquid handling skill in this framework. | |
The design of the pipette is publicly available under the creative commons license. In addition, the code for controlling the proposed pipette is available with the documentation. Users can expand our design to adjust to their individual needs. Our pipette design can be used with any general industrial robot with a simple gripper, making it easy to integrate into existing automated laboratory setups. The low cost of our design makes it feasible to develop and deploy multiple devices for use in different laboratory settings. These capabilities, combined with its precision and versatility, make our pipette an attractive solution for various applications in the self-driving laboratory field. Our device enhances the capabilities of robot arms, making them more accessible for self-driving lab development. The device can be applied to a variety of experiments that require quantitative analysis, such as solubility measurements. This study represents a step forward in the field of lab automation by providing a cost-effective and versatile solution for precise liquid handling.
2 Methods
Our digital pipette provides a low-cost liquid handling solution to a general-purpose robot arm. In this section, we will explain its design and our evaluation approach.
2.1 Pipette design
We will describe the design of the digital pipette and the cost to build one.
2.1.1 Overview.
The design of our digital pipette is shown in Fig. 2. The pipette is composed of three parts: a platform, a plunger holder, and a syringe cover. They are available on GitHub,‡ where rendered STL files can be viewed. A linear actuator is fastened to the platform with screws and a mounting bracket. The plunger of the 10 mL syringe and the tip of the linear actuator are connected together by the plunger holder. The syringe barrel is fastened by the platform and the syringe cover. The linear actuator is operated by an Arduino that communicates with the robot workstation through a USB-serial communication protocol. The total length of the pipette is 37 cm. Because of its simplicity, it takes less than 10 min for an inexperienced user to build the pipette. Detailed building instruction is also available in the GitHub repository.
|
| Fig. 2 (a) 3D CAD model for the digital pipette: (i) platform, (ii) plunger holder, (iii) syringe cover. (b) Picture of the assembled pipette. | |
2.1.2 3D printing.
The 3D models of the pipette were designed with Fusion 360 (Autodesk Inc.). The platform was printed with Form 3L (Formlabs Inc.) using Formlabs Rigid 10K Resin. The plunger holder and syringe cover were printed with a KP3S printer (KINGROON Tech Co., Ltd) using ANYCUBIC PLA 3D Printer Filament (Grey). The rigid resin was suitable for the platform because of its rigidness, and PLA was suitable for movable parts because of its lightness and flexibility.
2.1.3 Circuit.
The pipette operates a syringe with a linear actuator controlled by an Arduino that communicates with the controller PC. We used L16-100-63-6-R (Actuonix, Canada) as a linear actuator. The linear actuator is lightweight (74 g) and provides enough force (maximum 100 N) to operate a large syringe. It is connected to a 6 V DC power input and Arduino. NORM-JECT Luer Solo 10 mL was used as a common disposal syringe. We used Uno 328 AVR Dev Board (Creatron Inc., Canada), which is compatible with Arduino Uno Rev3. The circuit diagram is shown in Fig. 3. The Arduino is connected to a PC via a USB cable and controls the linear actuator. The actuator takes a 5 V pulse signal to decide the length of its extension. A 1.0 ms pulse signal fully retracts the actuator, and a 2.0 ms signal fully extends it. The controller PC sends an integer N to Arduino via serial communication, and the Arduino sends a N microsecond pulse to the actuator. The length of the pulse that corresponds to each volume may vary because of printing accuracy and the individual characteristic of the actuator. The pulse length was calibrated by measuring the weight of dispensed water using a weighing scale.
|
| Fig. 3 Circuit diagram of Arduino and the linear actuator. The signal pin (white) of the linear actuator is connected to pin 8 of Arduino Uno, the power pin (red) is connected to 6 V power, and the ground pin (black) is connected to the GND. Arduino is connected to a PC via a USB cable. | |
2.1.4 Cost analysis.
Table 1 shows the approximate prices for the components that were used in assembling the pipette. Please note that the cost of 3D printing depends on the printing methods. The cost of the printing materials we consumed to build one pipette was around 30 USD. The estimated costs of online printing services were 64.76 USD in Xometry,§ and 58.57 USD in Shapeways.¶ Our proposed pipette costs less than 200 USD in total, which is comparable to typical micropipettes used in a chemistry laboratory, whose cost ranges in 50–350 USD.
Table 1 Cost analysis of the proposed pipette
Parts |
Price |
Details |
Linear actuator |
70 USD |
Actuonix L16-100-63-6-R |
3D printing |
60 USD |
Estimated cost to print all parts |
Electronic parts |
40 USD |
Arduino, cables, connectors |
10 mL syringe |
1 USD |
NORM-JECT Luer Solo (10 mL) |
2.2 Manual gravimetric test
The digital pipette was evaluated by gravimetric testing based on the international standard on pipettes (ISO 8655-6 (ref. 18)). We measured the weight of the delivered water using a scale. The weighing value at i-th test mi is converted into a volume using a formulawhere Z is the Z correction factor that depends on the temperature and air pressure at measurement taken from the table in the standard.18 Since the water temperature was 22 °C and the air pressure was 100.8 kPa, Z = 1.0033 (mL mg−1) was used for calculation. The mean delivered volume is calculated by | | (2) |
The systematic error es and its percent expression ηs are calculated by
| es = − Vs | (3) |
| ηs = 100% × ( − Vs)/Vs | (4) |
where
Vs is the selected test volume. The random error
sr and its percent expression
CV are calculated by
| | (5) |
| CV = 100% × sr/ | (6) |
We used ultrapure water from the Thermo Barnstead GenPure xCAD Ultrapure Water system. The pipette aspirates water from a beaker and dispenses it onto a Petri dish. The weight of the delivered water was measured by a scale with a resolution of 0.1 mg. The scale was tared each time just before dispensing water to reduce the error caused by evaporation. Although the proposed device is designed for robots, this evaluation is performed by a human because we could not mount the high-resolution (0.1 mg) scale specified by the standard in our robot operation environment. The device was handled by sending a command from a laptop connected to the device. As specified by the standard, we tested 100%, 50%, and 10% of the nominal volume (i.e., 10 mL, 5 mL, and 1 mL). A commercial micropipette (Transferpette S 1–10 mL) was tested following the same protocol as a baseline. A graduate student with biochemistry experiment experience conducted this study, and the repeatability of errors was double-checked by an experimental chemist. Please note that we had to ignore some details in ISO 8655-6 because of the nature of the device and the limitation of the equipment. For example, we did not change the tip during the test because the proposed pipette does not support tip replacement, and the humidity of the room (25%) was out of the allowed range (45–85%).
2.3 Robotic pipetting test
We evaluated the performance of the pipette by transferring water with a Franka Emika robot equipped with a Robotiq 2F-85 gripper that has two fingers. The robot is equipped with an additional servo motor to increase the dexterity of the robot. Details of the robot are described elsewhere.3Fig. 4 shows the experimental setup. The robot grasps the pipette at the beginning of the experiment. The robot repeatedly delivers deionized water between two beakers. The amount of delivered water is measured by the difference in the weight of a beaker using a scale with a resolution of 0.01 g. To ensure the tip of the syringe was immersed in the water, the experiment was paused when the amount of water in the beaker was lowered and resumed after moving water between beakers. We continued the experiment until the total test number reached 100. The maximum number of continuous experiments was 100 for 1 mL, 50 for 5 mL, and 30 for 10 mL. The same calibration value was used throughout the experiment for each volume. We set a 5 s delay after sending a signal to the pipette to wait for the movement of the actuator. The systematic and random errors were calculated using the same formula in the previous section. Z = 1.0037 was used for 1 and 10 mL and Z = 1.0040 for 5 mL based on the air pressure and temperature at the time of the experiment.
|
| Fig. 4 Robotic pipetting test setup. (a) The robot moves the pipette on top of a beaker, (b) the robot immerses the pipette in water and aspirates it, (c) the robot moves the pipette on top of another beaker and dispenses the water. The amount of delivered water is measured by a scale. | |
2.4 Evaluation of calibration and resolution
The proposed pipette operates a syringe with a linear actuator controlled by a pulse signal with a resolution of 1 μs. The pulse length that corresponds to each target volume needs to be determined before use to consider printing and assembly errors and the characteristics of the individual actuator and syringe. The optimal pulse length is determined by measuring the transferred volume with different pulse lengths. The pipetting performance was measured by changing the pulse length at aspiration to demonstrate the calibration process and evaluate the resolution. Water delivery tests were conducted 10 times for each pulse length in the same manner as the robotic pipetting experiment. The pulse length to dispense liquid was fixed at 1820 μs, where the plunger is fully pushed. Based on the temperature and air pressure at test time, Z = 1.0037 was used in the calculation.
2.5 Evaluation of the effect of viscosity
To evaluate the effect of liquid viscosity on the pipette performance, the robotic liquid transfer test was conducted for sugar solutions with different concentrations. The viscosity of the sugar solution rapidly changes as its concentration increases. Sugar solutions were prepared by mixing granular sugar (Lantic Inc., Canada) and deionized water. The temperature of the solution used in the evaluation was 25 °C. The experiment was repeated ten times for each concentration, and the mean and standard deviation of the transferred weight were reported. The performance of the commercial micropipette (Transferpette S 1–10 mL) was measured as a baseline. We chose 5 mL as the target volume.
3 Results and discussion
3.1 Manual gravimetric test
The result of the gravimetric test is shown in Table 2. The systematic and random errors of the proposed pipette were below the maximal permissible errors for single channel pipettes specified in the standard,19 and the performance was comparable with a commercial micropipette. Please note that the system error for the micropipette was consistent with the value reported by the manufacturer (0.31%), but the random error was larger than the reported value (0.06%), possibly because of the difference in the proficiency of pipette handling.
Table 2 Gravimetric testing results (n = 10)
Volume |
Device/standard |
(mL) |
η
s (%) |
C
V (%) |
10.0 mL |
Ours |
10.0083 |
0.08 |
0.07 |
Micropipette |
10.0170 |
0.17 |
0.15 |
ISO 8655 |
— |
0.60 |
0.30 |
5.0 mL |
Ours |
4.9922 |
−0.16 |
0.14 |
Micropipette |
5.0025 |
0.05 |
0.12 |
ISO 8655 |
— |
1.2 |
0.60 |
1.0 mL |
Ours |
0.9887 |
−1.1 |
0.76 |
Micropipette |
1.0349 |
3.49 |
0.64 |
ISO 8655 |
— |
6.0 |
3.0 |
3.2 Robotic pipetting evaluation
Table 3 and Fig. 5 show the result of the evaluation. The systematic and random errors were within permissible errors in ISO 8655-2. The experiment did not involve any recalibration, and no significant degradation in performance was observed. For example, both the systematic and random errors for any continuous 10 tests during 100 pipetting were within the permissible range. It took 66 min to deliver 1 mL of water 100 times. The random error in this experiment was larger than the value reported in the manual experiment. One major reason is the lack of perception of the syringe status. When the pipette aspirated water, one drop of water often remained at the tip of the syringe. Humans could detect the drop and remove it, but the robot carried the pipette without removing the drop since it did not observe the syringe and the movement to remove a drop was not implemented. The weight of the drop could increase the random error. The vibration of the robot arm might affect the handling of the pipette and contribute to the higher error. Although the robot attained enough accuracy specified in the international standard, the perception of the syringe status and more human-like movement may help increase the performance.
Table 3 Robotic pipetting evaluation results (n = 100)
Volume (mL) |
(mL) |
η
s (%) |
C
V (%) |
10.0 |
10.011 |
0.11 |
0.20 |
5.0 |
4.989 |
−0.22 |
0.26 |
1.0 |
1.002 |
0.17 |
2.40 |
|
| Fig. 5 Distribution of the transferred liquid in the robotic pipetting experiment for three different volumes (n = 100). (a) 10.0 mL pipetting ( = 10.011, sr = 0.020), (b) 5.0 mL pipetting ( = 4.989, sr = 0.013), (c) 1.0 mL pipetting ( = 1.002, sr = 0.024). | |
3.3 Calibration and resolution
The relationship between the pulse length and transferred volume of water is shown in Fig. 6. The length of the pulse and transferred volume are in a linear relationship and 1 μs difference in pulse length roughly corresponds with 0.02 mL of the transferred volume. The detailed plot between 1280 and 1290 μs is shown in Fig. 7 to demonstrate the calibration process. The linear relationship still holds in this plot and we could calibrate the transferred volume by a resolution of 0.02 mL. Since the absolute random error stayed almost constant value for all pulse lengths, the relative random error increased when the target volume decreased, e.g., 5% for 0.5 mL, 15% for 0.1 mL. A different pipette with a small syringe may be necessary for the precise handling of liquid that is smaller than 10% of the nominal volume.
|
| Fig. 6 The relationship between pulse length and transferred volume of water. The robotic liquid transfer experiment was repeated 10 times for each pulse length. The formula of the regression line is y = −0.019x + 34.872. | |
|
| Fig. 7 The relationship between pulse length and transferred volume of water around 10 mL. The robotic liquid transfer experiment was repeated 10 times for each pulse length. All pulse lengths are integer values, but the points are dodged for the x-axis to increase visibility. The formula of the regression line is y = −0.018x + 33.684. Based on this result, 1286 μs pulse was used for 10 mL. | |
3.4 Effect of viscosity
Table 4 shows the result of the evaluation. The performance of the pipette remained stable under different viscosities and it was consistent with a commercial micropipette and the values expected from the literature. For example, at 40% concentration, our digital pipette showed a −0.12% deviation from the target value on average, whereas the commercial micropipette had a −0.68% deviation. This result suggests that the proposed pipette can support various liquids with a wide range of viscosity.
Table 4 Robotic pipetting for different viscosity (n = 10). Concentration is the mass percent of the solution, viscosity is the literature value for sucrose solution at 20 °C,20 the target is the weight of 5 mL solution expected from the literature density at 20 °C, and ours and micropipette are the weight of delivered solution by each method written in the format of average ± standard deviation (average relative deviation from the target in %)
Concentration (%) |
Viscosity (mPa s) |
Target (g) |
Ours (g) |
Micropipette (g) |
0.0 |
1.002 |
4.991 |
4.978 ± 0.011 (−0.26) |
4.984 ± 0.014 (−0.14) |
20.0 |
1.945 |
5.405 |
5.376 ± 0.019 (−0.54) |
5.389 ± 0.019 (−0.30) |
40.0 |
6.162 |
5.885 |
5.878 ± 0.013 (−0.12) |
5.845 ± 0.016 (−0.68) |
60.0 |
58.487 |
6.430 |
6.447 ± 0.017 (+0.26) |
6.354 ± 0.031 (−1.18) |
4 Conclusions
We have developed open-source hardware to conduct precise liquid handling with a two-finger robotic hand without customization. The performance was comparable to a commercially available micropipette in various liquid transfer tasks. The performance attained by the pipette is also comparable with other automatic commercial liquid dispensing hardware. For example, the liquid dispenser of Chemspeed (Chemspeed Technologies) provides 0.5% accuracy (systematic error) and 0.3% precision (random error) for 1–10 mL water, according to the manual. The largest pipette (P1000 GEN2) of OT-2 Liquid Handler (Opentrons) offers 0.7% accuracy and 0.15% precision for 1000 μL.21 The proposed low-cost hardware enables a general-purpose robot arm to deliver liquid in a similar performance to more expensive specialized hardware. This lowers the barrier to introducing accurate liquid handling for self-driving labs.
Although we used a 10 mL syringe in our design, the nominal volume can be adjusted by using a different syringe. Smaller syringe enables higher accuracy in small-amount pouring, and larger syringes are suitable for a different purpose that requires more amount of liquid. Since the design of the proposed pipette is freely available under the creative commons license, users can easily sketch new pipettes starting from our design.
Since attaching and replacing those parts with a robot arm makes the robot movement complex, our pipette currently does not have needles or pipette tips that would help to avoid contamination. Although we can prepare a separate pipette for each liquid, this solution is costly. Extending our device to handle multiple liquids without cross-contamination is part of our future work.
Data availability
The design files and source code used in this paper can be found at https://github.com/ac-rad/digital-pipette (DOI: https://doi.org/10.5281/zenodo.7893805).
Author contributions
Conceptualization, N. Y., K. D., A. G., A. A.-G.; methodology, N. Y.; software, N. Y.; resources: N. Y.; writing – original draft, N. Y.; writing – review & editing, K. D., M. G. V., A. G., and A. A.-G., funding acquisition, A. A.-G.
Conflicts of interest
There are no conflicts to declare.
Acknowledgements
We thank the Acceleration Consortium for financial support, Sebastian Arellano-Rubach and Kevin Angers for helping with graphics, and Florian Shkurti for the useful discussions. N. Y. thanks the support from the NSERC-Google Industrial Research Chair Award (IRCPJ 547644-18).
References
- M. Seifrid, R. Pollice, A. Aguilar-Granda, Z. Morgan Chan, K. Hotta, C. T. Ser, J. Vestfrid, T. C. Wu and A. Aspuru-Guzik, Acc. Chem. Res., 2022, 55, 2454–2466 CrossRef CAS PubMed.
- M. Abolhasani and E. Kumacheva, Nat. Synth., 2023, 1–10 Search PubMed.
-
N. Yoshikawa, A. Z. Li, K. Darvish, Y. Zhao, H. Xu, A. Kuramshin, A. Aspuru-Guzik, A. Garg and F. Shkurti, arXiv, 2023, preprint, arxiv:2212.09672v2, DOI:10.48550/arXiv.2212.09672.
-
D. Knobbe, H. Zwirnmann, M. Eckhoff and S. Haddadin, 2022 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), 2022, pp. 2335–2342 Search PubMed.
-
J. Zhang, W. Wan, N. Tanaka, M. Fujita and K. Harada, arXiv, 2022, preprint, arxiv:2207.01214, DOI:10.48550/arXiv.2207.01214.
- T. Baden, A. M. Chagas, G. Gage, T. Marzullo, L. L. Prieto-Godino and T. Euler, PLoS Biol., 2015, 13, e1002086 CrossRef.
- A. J. Capel, R. P. Rimington, M. P. Lewis and S. D. Christie, Nat. Rev. Chem., 2018, 2, 422–436 CrossRef.
- B. Wijnen, E. J. Hunt, G. C. Anzalone and J. M. Pearce, PLoS One, 2014, 9, e107216 CrossRef PubMed.
- M. S. Cubberley and W. A. Hess, J. Chem. Educ., 2017, 94, 72–74 CrossRef CAS.
- A. Samokhin, J. Anal. Chem., 2020, 75, 416–421 CrossRef CAS.
- A. Gervasi, P. Cardol and P. E. Meyer, HardwareX, 2021, 9, e00199 CrossRef PubMed.
- F. Barthels, U. Barthels, M. Schwickert and T. Schirmeister, SLAS Technol., 2020, 25, 190–199 CrossRef CAS PubMed.
- R. Keesey, R. LeSuer and J. Schrier, HardwareX, 2022, 12, e00319 CrossRef.
- J. X.-Y. Lim, D. Leow, Q.-C. Pham and C.-H. Tan, IEEE Trans. Autom. Sci. Eng., 2020, 18, 2185–2190 Search PubMed.
- M. D. Brennan, F. F. Bokhari and D. T. Eddington, Micromachines, 2018, 9, 191 CrossRef.
- S. Chinchane, H. Kadam, K. Mowade and J. M. Pearce, J. Open Hardw., 2022, 6, 1 CrossRef.
- J. Bravo-Martinez, HardwareX, 2018, 3, 110–116 CrossRef.
-
International Organization for Standardization, Piston-operated volumetric apparatus – part 6: gravimetric reference measurement procedure for the determination of volume, ISO 8655-6:2022(en), 2022 Search PubMed.
-
International Organization for Standardization, Piston-operated volumetric apparatus – part 2: pipettes, ISO 8655-2:2022(en), 2022 Search PubMed.
-
CRC Handbook of Chemistry and Physics, ed. J. R. Rumble, CRC Press/Taylor & Francis, Boca Raton, FL, 103rd edn (Internet Version 2022), 2022 Search PubMed.
-
OT-2 Pipettes by Opentrons, https://opentrons.com/products/pipettes/, (accessed: June 2023) Search PubMed.
Footnotes |
† Electronic supplementary information (ESI) available. See DOI: https://doi.org/10.1039/d3dd00115f |
‡ https://github.com/ac-rad/digital-pipette/ |
§ https://www.xometry.com/ We chose Standard option to make a quote. |
¶ https://www.shapeways.com/ We chose White Natural Versatile Plastic, Economy Manufacturing Speed, and Standard Shipping to United States to make a quote. |
|
This journal is © The Royal Society of Chemistry 2023 |
Click here to see how this site uses Cookies. View our privacy policy here.