彭 景,許 杰,程 威,尹重超,陳恒玲
(中南民族大學 生物醫學工程學院,湖北 武漢 430074)
CRISPR/Cas系統是一種獲得性免疫系統,最初被發現來源于細菌。它能識別并結合特定的DNA片段,cas9蛋白可以在其轉錄產物crRNA的介導下對靶基因進行剪切,實現對外源DNA的防御[1~3]。CRISPR/Cas的功能過程可以概括如下:得到CRISPR的間隔區序列、CRISPR基因座的表達、相關復合體對靶DNA進行剪切。精確有效的基因組編輯是基因功能鑒定的關鍵。到目前為止,CRISPR相關系統已成功地應用于動物和植物[4~7]。
在上述理論基礎上,一種新穎高效的基因編輯技術應運而生,它是由Wiedenheft等設計出的,具體內容包括:設計出的sgRNA可以識別并結合Cas9蛋白,并介導cas9蛋白對靶基因進行剪輯(圖1),其中sgRNA是根據crRNA與tracrRNA的復合體設計出來的[2~4]。由細菌中復雜的CRISPR/Cas9系統精簡為sgRNA與Cas9作用結構模式,使得只需要簡單地將其導入到細胞便可實現對靶基因進行定點編輯,很大程度上提高了基因編輯效率。因為該技術具備高效性、低成本性和簡易性等優點,所以生物研究界對CRISPR/Cas9系統十分關注,并應用到了更廣闊的研究領域[1,3]。

圖1 sgRNA指導的CRISPR/Cas9基因剪切系統(圖片來源于《一種新型的構建CRISPR/Cas9 KnockOut載體的方法》)
Cas9可以被引導到一個與sgRNA互補的20 mer基因組位點,介導DNA雙鏈斷裂。5’-NGG原引物鄰近基序(PAM)必須位于目標序列的鄰近位置[8,9]。為了選擇合理的目標位置和最小化偏離目標的影響,已經建立了一些優化sgRNA選擇的計算工具。在獲得sgRNA序列的基礎上,普遍采用的Zhang Lab寡核苷酸序列設計的方法(圖2)來設計oligo的生成(概括起來就是:在設計oligo時,首先要保證模板序列的開頭為G,以確保穩定性。oligo1是在上述序列基礎上在其5’端加上CACC形成的,而oligo2則是在堿基配對所得的反轉序列的5’端加上AAAC形成的)[4,5]。然而,從sgRNA生成oligo非常需要有效的計算工具。在當前的分析中,創建了一個基于Python的Crispr/cas9 oligos生成器的本地應用程序工具,允許用戶批量地在輸入sgRNA序列中設計oligos。Crispr/cas9 oligos生成器可以免費下載。該軟件是專門設計用于引物序列變換的工具,能有效解決人工自反轉問題,很大程度地提高設計精度,節省時間。

圖2 oligo序列設計示意圖(圖片來源于 zhanglabcloningprotocol引用張鋒的文章)
由于python語言的簡潔、易懂、易開發等特點,十分適合用來編寫本課題的生成器[10,11]。Python內有常用于科學研究的科學數據包anaconda和數據庫tkinter,這為本次程序編寫提供了研究背景[13],其中tkinter是tk的python接口,而tk原本是Tcl的graphical user interface(GUI),就是圖形界面用戶接口,可以類比于許多編程語言涉及到的“控制臺”的命令行化分的編輯模式[12,13]。因此,該軟件是基于python環境下,以PyCharm為編輯代碼工具,主要利用anaconda和tkinter開發完成的[15]。設計流程主要包括:軟件前期的設想與準備、搭建操作平臺、導入所需要的數據庫和函數、編寫功能函數、設計用戶界面、軟件的測試與改良。主要功能是檢驗靶序列是否正確,完成靶序列的轉換和存儲,最終獲得oligo1和oligo2兩個序列。
2.2.1 軟件界面
軟件界面如圖3所示。

圖3 軟件界面
圖3中有5個功能框:引物名稱、靶序列、+G、oligo1、oligo2,包含3個功能鍵:start、clear、save。其中引物名稱、靶序列是必填項,+G、oligo1、oligo2是按start后自動生成的,
這個軟件可以進行批量生產,最后可將所得到的數據保存成Excel格式。
2.2.2 軟件功能
軟件正常操作及結果如圖4所示。

圖4 軟件功能實例
圖4中所示為對3個引物:A18、G14、D3進行引物處理。start鍵的功能是檢查序列是否符合規范,它能檢查到每一位堿基是否符合規定,并且能精確到每一位,并對靶序列進行操作。只有當檢查到序列滿足要求時,才能進行下步操作,編輯出符合規定的+G、oligo1、oligo2序列,并顯示在功能框中。clear鍵的功能是清除方框中的數據,并可以接著進行下一序列的設計。save鍵的功能是將運行后的結果選擇存儲位置,并將該數據以Excel格式進行保存。引物名稱框需要用戶輸入靶序列的名稱。靶序列框需要用戶輸入將要處理的靶序列。+G框內是可以判斷靶序列的頭端是否包含“G”,若包含“G”則不處理,若不包含,則需要在序列開頭+G。oligo1框內功能是把+G后的靶序列前端加上“5-CACC”,在最后端加上“-3”。oligo2框內功能是在序列前端加上“5-AAAC”,然后連接對oligo1從3端按照堿基互補配對原則進行匹配的序列,最后在最后端加上“-3”。
2.2.3 序列結果保存
結果保存如圖5所示。

圖5 序列結果保存
上述操作的結果會按照規定的格式存儲在表格中,用戶可以自行選擇存儲路徑,這樣的結果簡潔規范,不需要進行人工地核對,節省了時間提高了精確度。其結果文件方便發給引物公司,進行后續工作,加快了研究工作進度。
因為編輯的序列只有20堿基,且只能包含“A、T、G、C”四個字母。當使用者在功能框輸入序列信息,并點擊相應功能按鈕時,軟件會對輸入的序列進行檢測。程序將首先檢驗輸入序列的長度,序列長度若大于20或者小于20,將會彈出提示框,若長度剛好為20,程序將檢驗序列的字母,確保輸入的序列只含有“A、T、G、C”,若輸入正確,程序將會為輸入序列進行相關操作并保存相應信息。若輸入的為“A、T、G、C”以外的字母,程序將會出現提示對話框并要求用戶重新輸入正確的序列。下面提供了檢測序列的函數(圖6)。

圖6 檢測序列函數代碼
(1)靶序列出錯,堿基沒有按照要求填寫,輸入的序列不是滿足只有“A、T、C、G”這四個字母含有其他的字母。如圖7所示。

圖7 檢測序列錯誤
(2)靶序列至少有一行長度不符合長度不符合要求(即不滿足20個堿基數)。如圖8所示。

圖8 檢測長度錯誤
(3)在沒有輸入靶序列時,還進行操作出錯。如圖9所示。

圖9 未輸入靶序列錯誤
本課題組所研發的基于Python的Crispr/Cas9 oligos批量生成器順利完成了測試,可以自動地以特定方式對靶序列進行添加和編輯,以生成符合要求的oligos序列。與手動編寫相比,該軟件不僅節約了科研人員的時間與精力,提高了工作效率,而且大大降低了錯誤率。如果可以繼續推廣這個軟件,將加快相關科研工作的展開,更有利于Crispr/Cas技術的發展與應用。
盡管Crispr/Cas9 oligos批量生成器尚存在一些不足:比如讀取序列文件功能還未實現、序列查錯可以更加人性化以及可以添加更豐富的引物設計方案等。而且相信隨著我們不斷地完善,這款軟件一定會變得更加人性化,功能也會更加強大,更快地成為科研工作者的友好工具。
基于Python的Crispr/Cas9 oligos批量生成器源代碼可在GitHub和谷歌云盤上免費獲得,上傳網址分別為:https://github.com/scuec-channel/oligo-generator.git和https://drive.google.com/open?id=1nNRzZ9u0rTLbmiv2L-xG4eUHRK9ZLcQ8(The source code for the python-based Crispr/cas9 oligos batch generator is freely available on GitHub and Google cloud disk,Upload url:https://github.com/scuec-channel/oligo-generator.git and https://drive.google.com/open?id=1nNRzZ9u0rTLbmiv2L-xG4eUHRK9ZLcQ8)。