本發(fā)明屬于基因編輯技術(shù)領(lǐng)域,涉及利用算法和功能模塊高效率篩選自定義基因編輯打靶序列,特別涉及rna引導(dǎo)的核酸內(nèi)切酶靶位點(diǎn)篩選。
背景技術(shù):
近二十年來,基因組編輯技術(shù)的發(fā)展促進(jìn)了生物技術(shù)領(lǐng)域和醫(yī)學(xué)領(lǐng)域研究的不斷進(jìn)步。rna介導(dǎo)核酸內(nèi)切酶(rgens:rna-guideddnaendonucleases)是近幾年來發(fā)展最迅速、研究最深入的基因組精確打靶體系,由于其具有易操作、高效率、普遍適用性等特點(diǎn)而取代了鋅指核酸酶(zfns)和類轉(zhuǎn)錄激活因子核酸酶(talens),成為目前廣泛應(yīng)用于生物學(xué)、醫(yī)學(xué)、分子遺傳學(xué)等領(lǐng)域的技術(shù)。
rgen是crispr/cas及其衍生體系的核酸內(nèi)切酶蛋白總稱,以cas9和cpf1蛋白為代表,通過向?qū)na(sgrna:single-guiderna)的引導(dǎo)識(shí)別基因組中靶位點(diǎn)的pam區(qū)域,切割與sgrna匹配的目標(biāo)序列,形成雙鏈、單鏈或粘性末端切口。利用dna斷裂切口引發(fā)片段插入、缺失或突變,從而對(duì)基因功能研究和轉(zhuǎn)基因模式生物構(gòu)建提供基礎(chǔ)。
隨著高通量測(cè)序技術(shù)的發(fā)展,利用rgen進(jìn)行的與細(xì)胞活性、抗藥性和腫瘤發(fā)生發(fā)展等相關(guān)的大規(guī)?;蚝Y選和鑒定成為當(dāng)前的研究熱點(diǎn)?,F(xiàn)有的crispr/cas相關(guān)程序僅能篩選cas9和cpf1兩種亞型核酸酶位點(diǎn),在大批量靶位點(diǎn)查找方面具有很大缺陷,不能滿足長(zhǎng)片段序列的分析。由于rgen系統(tǒng)的研究不斷擴(kuò)展和深入,越來越多的具有不同模式識(shí)別序列的核酸內(nèi)切酶蛋白投入應(yīng)用,因此迫切需要具有通用性和高效率的可以進(jìn)行全基因組大規(guī)??焖俸Y選靶位點(diǎn)序列的系統(tǒng)。
技術(shù)實(shí)現(xiàn)要素:
針對(duì)目前現(xiàn)有的rgen靶位點(diǎn)篩選工具的不足,本發(fā)明提供一種兼容性強(qiáng)、方便快捷的通用rgen基因編輯靶位點(diǎn)快速篩選系統(tǒng)。
為達(dá)到上述目的,本發(fā)明采用了以下技術(shù)方案:
該篩選系統(tǒng)整體采用“流水-管道”思想進(jìn)行設(shè)計(jì)。流水即為待分析的核酸序列(目標(biāo)核酸序列),流水簡(jiǎn)化為由連續(xù)排列的水滴組成,每滴水代表核酸序列的一個(gè)核苷酸堿基;管道具有預(yù)設(shè)的長(zhǎng)度,即僅能容納預(yù)設(shè)數(shù)量(數(shù)量根據(jù)靶位點(diǎn)的模式序列長(zhǎng)度確定)的水滴(核苷酸)。當(dāng)計(jì)算機(jī)讀取核酸序列后,核酸序列中的核苷酸依次通過管道,即水滴按順序一滴一滴流入管道又流出管道。每流動(dòng)一滴水,管道就對(duì)內(nèi)部的有序水滴(即核酸序列中的一段)分析一次,匹配該段核酸序列是否和模式序列、gc含量、連續(xù)相同堿基個(gè)數(shù)等要求相符,如果相符則輸出。
所述篩選系統(tǒng)包括核酸序列讀取模塊、集合容器以及綜合分析功能模塊,所述綜合分析功能模塊包括堿基模式匹配模塊。
核酸序列讀取模塊:以緩沖字符流形式讀取核酸序列,可以降低計(jì)算機(jī)i/o消耗,提高字符處理速度。
集合容器:集合容器用于存儲(chǔ)核酸序列中的一段,長(zhǎng)度與模式序列一致,在對(duì)集合容器中的該段核酸序列完成一次分析后,集合容器對(duì)所存儲(chǔ)的核酸序列片段進(jìn)行更新,更新后進(jìn)行下一次分析。
以集合容器采用數(shù)組為例,更新的優(yōu)選方案為:對(duì)于數(shù)組中單獨(dú)存儲(chǔ)的一段核酸序列中的各個(gè)核苷酸堿基,將其中排列于該段核酸序列中上游第一個(gè)位置的核苷酸堿基替換為與該段核酸序列緊鄰的下游第一個(gè)核苷酸堿基,并利用游標(biāo)變量對(duì)所存儲(chǔ)的所有核苷酸堿基在該段核酸序列中的位置進(jìn)行坐標(biāo)標(biāo)注。
集合容器也用于記錄模式序列。
堿基模式匹配模塊:建立模式序列匹配機(jī),包括所有簡(jiǎn)并堿基及其相應(yīng)的核苷酸字符集,初始化時(shí)針對(duì)模式序列中每個(gè)核苷酸位點(diǎn)(包括簡(jiǎn)并堿基位點(diǎn)和非簡(jiǎn)并堿基位點(diǎn))記錄其坐標(biāo)(即在序列中的位置)及堿基符號(hào),簡(jiǎn)并堿基的堿基符號(hào)通常包括n、s、k、r、w、d、v、h、b等,對(duì)于非簡(jiǎn)并堿基,堿基符號(hào)就是相應(yīng)的核苷酸字符。集合容器內(nèi)的每個(gè)核苷酸按序列順序依次進(jìn)入模式序列匹配機(jī),模式序列匹配機(jī)根據(jù)該核苷酸的坐標(biāo)找到模式序列中相同坐標(biāo)的堿基符號(hào),然后按字符的形式進(jìn)行判斷。若該堿基符號(hào)屬于集合{a,t,c,g},則直接判斷集合容器中具有相同坐標(biāo)的核苷酸字符和該堿基符號(hào)是否相同;若該堿基符是簡(jiǎn)并堿基,例如v={a,c,g},則判斷集合容器中具有相同坐標(biāo)的核苷酸字符是否屬于該堿基符號(hào)代表的核苷酸字符集。如果判斷結(jié)果為true,則判斷集合容器中下一個(gè)核苷酸;如果判斷結(jié)果為false,則終止判斷;如果集合容器中所有核苷酸都判斷為true,則表示核酸序列當(dāng)前處于集合容器中的那一部分序列片段符合模式序列,可進(jìn)入下一步進(jìn)行g(shù)c含量分析或/和連續(xù)相同堿基識(shí)別。
為此,所述綜合分析功能模塊還包括gc含量分析模塊或/和連續(xù)相同堿基識(shí)別模塊。
gc含量分析模塊:采用入記錄、出記錄、中間過程不記錄的思想。g以及c的數(shù)量統(tǒng)計(jì)主要步驟為:設(shè)定一整數(shù)變量gc_num記錄管道中所有核苷酸是g或c的數(shù)量。每個(gè)剛進(jìn)管道的核苷酸判斷一次它是否屬于{g,c},若是則gc_num數(shù)值加1;每個(gè)剛出管道的核苷酸判斷一次它是否屬于{g,c},若是則gc_num數(shù)值減1。對(duì)于集合容器而言,所述剛進(jìn)及剛出管道的核苷酸就是在集合容器更新中用于替換及被替換的核苷酸堿基。gc_num的初始化值在上述初始化中確定,即通過對(duì)最先存儲(chǔ)在集合容器中的位于核酸序列起始部分的核苷酸進(jìn)行g(shù)及c數(shù)量統(tǒng)計(jì)而得到。
連續(xù)相同堿基識(shí)別模塊:可采用以knuth-morris-pratt算法作為核心的字符串快速匹配機(jī)。當(dāng)預(yù)設(shè)的連續(xù)相同堿基參數(shù)為n個(gè)時(shí),初始化時(shí)分別生成用于查找長(zhǎng)度為n且核苷酸字符分別為a、t、g、c的連續(xù)相同堿基序列的匹配機(jī)。集合容器中的每個(gè)核苷核按序列順序同時(shí)進(jìn)入四個(gè)匹配機(jī),按字符的形式進(jìn)行判斷是否存在相匹配的n個(gè)連續(xù)相同的堿基。
在尋找rgen靶位點(diǎn)時(shí),當(dāng)集合容器中的核酸序列符合堿基模式匹配和gc含量?jī)蓚€(gè)條件時(shí),再進(jìn)行連續(xù)相同堿基識(shí)別,一旦發(fā)現(xiàn)匹配成功,則終止所有字符串匹配機(jī)進(jìn)程;若集合容器中的核酸序列不包含有n個(gè)以上連續(xù)相同的堿基,則輸出靶位點(diǎn)結(jié)果,然后更新集合容器。
與現(xiàn)有技術(shù)相比,本發(fā)明具有以下有益的技術(shù)效果:
本發(fā)明采用“流水-管道”思想來處理核酸序列,通過模擬水滴通過管道的過程,從而能夠邊讀邊處理,具有高通量的特性,且計(jì)算機(jī)內(nèi)存占用率低,對(duì)待處理核酸序列長(zhǎng)度無限制,適合任意模式序列在全基因組范圍的匹配與查找,有效應(yīng)對(duì)rna介導(dǎo)核酸內(nèi)切酶的快速發(fā)展。同時(shí),本發(fā)明對(duì)任意形式、任意長(zhǎng)度的字符序列都能查找,兼容性強(qiáng)。
進(jìn)一步的,本發(fā)明中建立了核酸字符集庫(kù),同時(shí)采用剪枝算法思想,即堿基模式匹配模塊根據(jù)設(shè)定的模式序列,在進(jìn)行核酸與模式序列匹配時(shí),一旦某個(gè)核苷酸匹配不成功,則終止核酸后續(xù)所有核苷酸的匹配運(yùn)算,避免無效運(yùn)算,在讀取入新的核苷酸后重新開始匹配,使核酸序列的匹配判斷具有通用性和高效性。
進(jìn)一步的,本發(fā)明提供的gc含量分析模塊和連續(xù)相同堿基識(shí)別模塊,能方便的篩選出符合用戶要求的靶位點(diǎn)核酸子序列。其中,gc含量分析模塊根據(jù)“流水-管道”思想,采用入記錄、出記錄、中間過程不記錄g或c堿基統(tǒng)計(jì)方式。使得每個(gè)核苷酸實(shí)際僅在進(jìn)行入管道和離開管道時(shí)各判斷一次,中間過程不用判斷,保證低運(yùn)算量。另外變量gc_num動(dòng)態(tài)記錄管道中核苷酸的gc含量,可方便調(diào)用。連續(xù)相同堿基識(shí)別模塊建立了字符串快速匹配機(jī)并采用剪枝算法思想,即在連續(xù)相同堿基識(shí)別時(shí),一旦四個(gè)匹配機(jī)中任意一個(gè)發(fā)現(xiàn)匹配成功,則終止所有匹配機(jī)進(jìn)程,判斷相應(yīng)段核酸序列不符合要求,避免無效運(yùn)算,節(jié)約了大量計(jì)算時(shí)間,避免了大量無用偏移匹配的判斷。
附圖說明
圖1為本發(fā)明實(shí)施例中通用rgen基因編輯靶位點(diǎn)篩選系統(tǒng)結(jié)構(gòu)示意圖。
圖2為本發(fā)明實(shí)施例中通用rgen基因編輯靶位點(diǎn)篩選系統(tǒng)工作界面示意圖。
圖3為本發(fā)明實(shí)施例中通用rgen基因編輯靶位點(diǎn)篩選系統(tǒng)輸出結(jié)果示意圖。
具體實(shí)施方式
下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明做進(jìn)一步詳細(xì)說明。所述是對(duì)本發(fā)明的解釋,而不是限定。
本發(fā)明所述通用rgen基因編輯靶位點(diǎn)篩選系統(tǒng)整體采用“流水-管道”思想,參見圖1,所述靶位點(diǎn)篩選系統(tǒng)包括工作界面(模式序列輸入及參數(shù)設(shè)定)、核酸序列讀取模塊、堿基模式匹配模塊、gc含量分析模塊(可選)以及連續(xù)n個(gè)相同堿基識(shí)別模塊(可選)。
流水即為需要進(jìn)行靶位點(diǎn)篩選的核酸序列,在工作界面上利用“dnasequencefile”指定文件目錄(圖2)。核酸序列讀取模塊令計(jì)算機(jī)以緩沖字符流形式讀取文件中的核酸序列。然后以循環(huán)的方式按5’至3’方向每次僅拋出一個(gè)核苷酸字符傳遞至管道進(jìn)行處理,直到最后一個(gè)核苷酸被處理。
管道被設(shè)計(jì)為一個(gè)對(duì)象,具有四個(gè)屬性:gc含量、連續(xù)n個(gè)相同堿基的排除閾值(eliminaten…n,圖2,即n)、一定長(zhǎng)度模式序列,以及當(dāng)前分析的核酸序列的片段。對(duì)前兩項(xiàng)均采用數(shù)值變量記錄,后兩項(xiàng)均采用相同大小的集合容器來記錄,例如,用戶輸入的模式序列(inputpattern,圖2),在初始化時(shí),其各個(gè)核苷酸位點(diǎn)的堿基符號(hào)可按5’至3’方向順序存儲(chǔ)在一個(gè)數(shù)組a中(點(diǎn)擊圖3中所示“gettargetsresult”即開始初始化以及分析過程,結(jié)果保存在“resultdirectory”給定的目錄下)。
核酸序列按5’至3’方向依次進(jìn)入管道中,每進(jìn)一個(gè)核苷酸,就有一個(gè)核苷酸被擠出管道。需要設(shè)計(jì)兩個(gè)游標(biāo)變量以及一個(gè)數(shù)組b來完成這一過程。游標(biāo)變量中,一個(gè)(稱首游標(biāo))記錄管道中第一個(gè)核苷酸位置,一個(gè)(稱末游標(biāo))記錄最后一個(gè)核苷酸位置,管道中每個(gè)核酸都可以通過游標(biāo)變量轉(zhuǎn)換成其坐標(biāo)值而在數(shù)組b中找到。如果輸入模式序列包括4個(gè)核苷酸,那么初始化時(shí),數(shù)組b的大小自動(dòng)設(shè)定為4,即可存儲(chǔ)核酸序列中的一段長(zhǎng)度為4個(gè)核苷酸的片段。匹配運(yùn)算開始時(shí),首先將核酸序列5’端起始的四個(gè)核苷酸存儲(chǔ)在數(shù)組b中,此時(shí),首游標(biāo)取值為1,末游標(biāo)取值為4,分別標(biāo)識(shí)核酸序列片段的首末核苷酸在數(shù)組b中的位置,當(dāng)需要讀入核酸序列中第5個(gè)核苷酸時(shí),將其替換第1個(gè)核苷酸,替換的同時(shí),令首末游標(biāo)取值分別增加1,即首末游標(biāo)數(shù)值分別為2和5,對(duì)于超過4的取值需要通過與4相除取余數(shù)變換為4以內(nèi)的自然數(shù)(本例為1),即數(shù)組b中存儲(chǔ)了核酸序列第2至第5位的核苷酸,且首核苷酸在數(shù)組b第2位,末核苷酸在數(shù)組b第1位。盡管隨模式序列長(zhǎng)度增加,數(shù)組的大小也會(huì)增加,但在存儲(chǔ)待分析的核酸序列片段時(shí),無需對(duì)其所包括的所有核苷酸在數(shù)組中的位置進(jìn)行調(diào)整或更新全部坐標(biāo),因此,極大的減低了計(jì)算量。
堿基模式匹配模塊:根據(jù)用戶輸入的模式序列,建立模式序列處理對(duì)象,其中內(nèi)置所有簡(jiǎn)并堿基及其相應(yīng)核苷酸字符集。初始化時(shí),針對(duì)模式序列中每個(gè)核苷酸記錄其坐標(biāo)及堿基符號(hào)。當(dāng)一個(gè)新核苷酸進(jìn)入管道,自動(dòng)觸發(fā)一次管道中的新核酸序列與模式序列匹配。核苷酸按游標(biāo)變量的記錄從第一個(gè)到最后一個(gè)核苷酸字符依次作為參數(shù)傳遞給處理對(duì)象。對(duì)象中的判斷函數(shù)可根據(jù)該核苷酸的坐標(biāo)找到模式序列中對(duì)應(yīng)坐標(biāo)的堿基符號(hào),并按字符的形式進(jìn)行判斷。若該堿基符號(hào)是{‘a(chǎn)’,‘t’,‘c’,‘g’}之一,則直接判斷管道中該核苷酸字符和堿基符號(hào)是否相同;若該堿基符是簡(jiǎn)并堿基,則調(diào)出其代表的核苷酸字符集,例如’v’={‘a(chǎn)’,‘c’,‘g’},再判斷管道中該核苷酸字符是否屬于核苷酸字符集。如果判斷結(jié)果為true,則判斷管道中下一個(gè)核苷酸;如果判斷結(jié)果為false,則終止判斷;如果管道中所有核苷酸都判斷為true,則表示管道中核酸序列符合模式序列,進(jìn)入下一步gc含量分析。
gc含量分析模塊:設(shè)定一整數(shù)變量gc_num記錄管道中所有核苷酸是g或c的數(shù)量。每個(gè)剛進(jìn)管道的核苷酸都判斷一次它是否屬于{g,c},若是,則gc_num數(shù)值加1;每個(gè)剛出管道的核苷酸都判斷一次它是否屬于{g,c},若是,則gc_num數(shù)值減1。當(dāng)管道中的核酸序列符合模式序列樣式,即通過模式匹配模塊檢測(cè),則計(jì)算該核酸序列g(shù)c百分比(gc_ratio),即gc_num除以管道中所有核苷酸個(gè)數(shù),再判斷gc_ratio是否在用戶設(shè)定的gc含量百分比范圍(gcpropotion,圖2)內(nèi)。若結(jié)果為false,則返回,管道新進(jìn)一個(gè)核苷酸,重新進(jìn)行堿基模式匹配;若結(jié)果為true,則進(jìn)入連續(xù)相同堿基識(shí)別分析。
連續(xù)n個(gè)相同堿基識(shí)別模塊:采用knuth-morris-pratt算法作為核心,開發(fā)字符串快速匹配對(duì)象。當(dāng)預(yù)設(shè)的連續(xù)相同堿基數(shù)為n個(gè),例如n=4,程序在初始化時(shí)自動(dòng)生成匹配對(duì)象為“aaaa”、“tttt”、“cccc”、“gggg”四個(gè)字符串匹配機(jī)。當(dāng)管道中的核酸序列符合堿基模式匹配和gc含量?jī)蓚€(gè)條件時(shí),再進(jìn)行連續(xù)相同堿基識(shí)別。管道中的核酸按游標(biāo)變量記錄的核苷酸從第一個(gè)到最后一個(gè)依次作為參數(shù)傳遞給字符串匹配機(jī),每個(gè)核苷酸同時(shí)進(jìn)入四個(gè)匹配機(jī),并按字符的形式進(jìn)行判斷。一旦發(fā)現(xiàn)匹配成功,即管道中的核酸序列包含有4個(gè)連續(xù)相同的堿基,則終止所有匹配機(jī)進(jìn)程,管道新進(jìn)一個(gè)核苷酸,重新進(jìn)行堿基模式匹配;若最后一個(gè)核苷酸被四個(gè)匹配機(jī)處理后仍無成功匹配,則說明管道中的核酸序列不包含有4個(gè)及以上的連續(xù)相同堿基,輸出該核酸序列作為潛在靶位點(diǎn),然后管道新進(jìn)一個(gè)核苷酸,繼續(xù)進(jìn)行靶位點(diǎn)尋找,直至核酸序列分析完畢,輸出結(jié)果如圖3所示。
本發(fā)明在各個(gè)模塊中均采用了快速算法設(shè)計(jì)思想,保證快速分析。對(duì)于人一號(hào)染色體(約250mb)尋找cas9/cpf1共同靶位點(diǎn),即模式序列為“tttvnnnnnnnnnnnnnnnnnnnnngg”,整個(gè)分析過程僅需15秒。其他形式的模式序列,例如“awdnnnnskr”僅需15秒、“atcgnnnnnnnnnnnnkhatcg”僅需15秒以及“bwknnnnnnnnnnnnnnnnnngg”僅需18秒。
本發(fā)明重新設(shè)計(jì)算法和功能模塊,rgen中的任意核酸酶本篩選系統(tǒng)都能適用。另外,本系統(tǒng)的模塊構(gòu)架也適用于解決“從任意長(zhǎng)度字符串中抓取特定要求的子字符串”這一類問題。