上一篇我們的基因體時代-AI, Data和生物資訊 Day26-取用基因序列資訊把整個Bioconductor從獲取基因註釋資料到序列整個流程會用到的R封包都講解也都有相關範例,因為時間有限的關係,我們只好忍痛往下介紹,希望能照者當初規劃的進度走。這邊先跳回介紹一下之前在前面部分沒有分享到的,關於如何設計自動化與AI跟資料整合的關係。
(另一方面,在第二十七天竟然感受到...非常疲倦感,看來一直寫也是會有點....需要休息)。
這邊則是有點跳痛想分享一下關於自動化過程中的規劃問題,這是開始編成自動手臂的操作時會遭遇到的問題,以前都是找廠商客製化,如今越來越多開源體系,讓具有編程能力的科學家能自己設計,一方便降低成本,另一方便,其實更能激發許多的創意。
像今日分享的這篇文章,就是在講他們開發的一套代碼介面,雖然是用在Hamilton系統上面的,但這篇文章有趣的點是在系統生物學的期刊裡面,竟然有一篇文章是在描述他們設計自動移液器的程式設計,非常有意思!
## General Method Outline
def main():
... ## insert each method code here
with HamiltonInterface() as ham_int, ClarioStar() as reader_int, LBPumps() as pump_int:
sys_state.instruments = ham_int, reader_int, pump_int
system_initialize()
main()
## Bacterial Assay Code
## service two 24-well plates at once
for assay_plates in get_2_plates():
## Define assay reagents and destination wells
reagents, bacteria, destination_well = get_8_wells(assay_plates)
## Perform necessary pipetting steps
prepare_assay(reagents, bacteria, dstination_wells)
## Population Dynamics Code
## Move dye from one plate or well to the next(in loop)
for source_plate, destination_plate in zip(plates, plates[1:]):
## Service one column at a time
for column in groups_of_8(range(96)):
##calculate liquid transffer volumes
transfers = nonzero_transfers(flow_matrix, source_plate, column)
## Perform pipetting steps (in loop)
for destinations, volumes in transfers:
load_new_tips() # pick up tips
## Aspirate liquid from source wells
aspirate_from(select_channels(source_plate, column, destinations), volumns)
## Dispense liquid to all destinations
dispense_to(destinations, volumns)
## Retrun tips to housing unit
put_tips_back()
仔細去看他的代碼,可以發現算是已經非常抽象且高級的語法了,並沒有太外顯他怎麼去處理移液時需要考慮到的一些計算問題。
閱讀參考:
Chory EJ, Gretton DW, DeBenedictis EA, Esvelt KM. Enabling high-throughput biology with flexible open-source automation. Mol Syst Biol. 2021 Mar;17(3):e9942. doi: 10.15252/msb.20209942. PMID: 33764680; PMCID: PMC7993322.
這個月的規劃貼在這篇文章中我們的基因體時代-AI, Data和生物資訊 Overview,也會持續調整!我們的基因體時代是我經營的部落格,如有對於生物資訊、檢驗醫學、資料視覺化、R語言有興趣的話,可以來交流交流!