一種規模化蛋白質鑑定中的索引加速方法及相應的系統的製作方法
2023-10-04 21:51:39 1
專利名稱:一種規模化蛋白質鑑定中的索引加速方法及相應的系統的製作方法
技術領域:
本發明涉及一種規模化蛋白質鑑定的加速方法,具體的說,涉及一種採用倒排索
弓I重新組織蛋白質資料庫從而提高蛋白質鑑定速度的方法。
背景技術:
"蛋白質組"(Proteome) —詞是由Wilkins等人於1997年首次提出的,用於描述 基因組的蛋白質對應物。蛋白質組描繪了特定生物樣品中在給定時刻和給定條件下表達 的蛋白質的全體。顧名思義,蛋白質組學就是對蛋白質組的研究,其最基本的任務就是確 定出哪些蛋白質在生物體內得到了表達、表達量是多少、翻譯後修飾以及蛋白與蛋白相互 作用等,由此獲得蛋白質水平上關於疾病發生、細胞代謝等過程的整體而全面的認識。在 當前的蛋白質組研究中,基於串聯質譜的蛋白質鑑定是最廣泛使用的技術之一,參考文獻 1《Aebersold, R. and Mann, M. Mass spectrometry-basedproteomics, Nature,2003,422 : 198-207》中對相關的內容有較為詳細的說明。 基於串聯質譜鑑定蛋白質的基本步驟是首先將混合蛋白樣品酶切為肽段,經 過液相色譜分離後,進入質譜儀,得到肽段的實驗串聯質譜圖,然後對質譜圖進行分析, 得到對應的肽段序列,最後通過肽到蛋白質歸併分析,得到混合蛋白樣品中的蛋白質 列表,從而達到對蛋白質進行鑑定的目的。在鑑定產生實驗串聯質譜的肽序列的過程 中,資料庫搜索的方法被廣泛採用。如在參考文獻2《Eng, J.K. , McCormack, A. L. and Yates, J. R. Anapproach to correlate tandem mass spectral data of peptides with amino acidsequences in a protein database. J Am Soc Mass Spectrom,1994, 5 :976-989》、參考文獻3《Perkins, D. N. , Pappin, D. J. , Creasy, D. M. and Cottrell, J. S. Probability—based protein identification by searching sequence databases usingmass spectrometry data. Electrophoresis, 1999, 20 :3551-3567》以及參考文獻 4《Field, H. I. , FenyG, D. and Beavis, R. C. RADARS, a bioinformatics solutionthat automates proteome mass spectral analysis, optimises proteinidentification, and archives data in a relational database. Proteomics, 2002, 2 :36_47》中者附採用數據 庫搜索的方法實現肽序列的鑑定做了詳細說明。 採用資料庫搜索的方法通過肽序列鑑定實現蛋白質鑑定的方法主要包括以下步 驟 首先,模擬生物學中的酶切規則將蛋白質資料庫中的蛋白質序列切分成肽序列; 然後計算切分得到的各個肽序列的質量;最後利用質譜數據中的母離子質量誤差窗口尋找 符合一定質量範圍內的肽序列,將符合要求的肽序列輸入給打分函數以實現對肽序列的鑑定。 在上述實現方法中,對於每個待鑑定的質譜數據都要重複上述操作,由於這一過 程中存在大量的重複操作而具有執行效率低的缺陷。此外,由於蛋白質序列酶切可能會產 生相同的肽序列,將有重複的肽序列輸入給打分函數也會影響鑑定效率。對規模較大的蛋白質資料庫和大批量待鑑定的質譜數據,如果採用上述的鑑定方法實現蛋白質鑑定需要花 費大量的時間與空間,整體效率偏低。 由於近年來隨著蛋白質資料庫的規模不斷增長,對非特異性酶切肽段的鑑定需求 不斷增加,導致肽序列的規模不斷增大,同時,質譜數據的生成速度也在不斷增長,因此對 蛋白質的鑑定速度提出了更高的要求。但前述的蛋白質鑑定方法在效率上卻有不足,因此 需要對上述的資料庫搜索方法加以改進,以加快蛋白質鑑定的速度。考慮到上述方法中的 關鍵問題在於如何快速地將肽序列與質譜數據的母離子質量誤差窗口做匹配操作,因此現 有技術中的常用加速策略是預先對蛋白質資料庫進行模擬酶切生成肽序列,根據各個肽序 列的質量對肽序列進行排序並去掉重複的肽序列,然後根據質譜數據的母離子誤差窗口在 有序表中做二分查找,從而加快肽序列的查找速度。這種加速方法在理論上具有良好的效 果,但在計算機上實現時卻面臨如下的技術難點。 由於蛋白質資料庫中所具有的蛋白質數目通常數以萬計,而由蛋白質所得到的 肽序列數目更可達百萬、千萬乃至上百億、上千億,且肽序列中的重複序列的比例不高,如 Yeast、 Human、 Swiss-prot和NCBInr庫中重複肽序列的比例不高於50%。因此,在計算 機內存中無法一次完成對所有肽序列的排序和去冗餘。為了解決這一問題,在現有技術 中通常採用外存歸併排序的方式創建肽序列詞典(有序、無冗餘的肽序列集合),例如,軟 件SEQUEST(V2. 7)採用該方法將肽序列的質量分成十個等間隔的左閉右開區間,分別是
0Da-1000Da、1000Da-2000Da、......、9000Da-10000Da,對蛋白質資料庫中的蛋白質序列模
擬酶切生產肽序列,根據肽序列的質量分別存放在十個臨時文件中,然後對各個文件進行 歸併排序,排序的同時保留非重複的肽序列並存放肽序列的原始序列。但是,這種方法在時 間與空間性能上仍有較大缺陷。首先,臨時文件的劃分方法並不合理,對於不同特點的蛋 白質資料庫,該方法可能導致肽序列在十個臨時文件中分布不均勻;其次,該方法涉及大量 的文件操作,對於規模較大的臨時文件需要採用外存排序。測試表明,在普通PC機上創建 NCBInr資料庫(約580萬條蛋白質序列)的索引,SEQUEST(V2. 7)創建肽序列索引需要時 間約10小時、佔用空間約9GB(特異性酶切,質量範圍600-8000Da、長度範圍4_100、遺漏酶 切位點數為2)。鑑於現有方法在計算機上實現時在時間與空間性能上的缺陷,提供一種時 間更快、空間更省的蛋白質鑑定索引加速方法在實際應用中具有重要意義。
發明內容
本發明的目的是克服現有技術在計算機上對肽序列的排序和去冗餘所要花費的 時間較長、效率較低的缺陷,從而提供一種能夠有效提高蛋白質鑑定效率的相關方法。
為了實現上述目的,本發明提供了一種規模化蛋白質鑑定中的索引加速方法,包 括 步驟1)、根據計算機內存空間的大小,預先將肽序列按照質量的大小分成多個質
量範圍段,使得對一個質量範圍段內肽序列的處理可以在計算機內存中完成;
步驟2)、對蛋白質資料庫做模擬酶切,將所得到的在一個質量範圍段內的肽序列 保存在所述計算機內存中,並在所述計算機內存中完成對所保存肽序列的排序、去冗餘以 及建立詞典和倒排表的操作; 步驟3)、對其餘質量範圍段重複上述步驟2)中的操作,為所述的每個質量範圍段建立詞典和倒排表。 上述技術方案中,所述的步驟1)包括
步驟1-1)、為肽序列設定質量區間; 步驟l-2)、為用於記錄肽序列數量的計數窗口設定大小,並結合步驟1)所設定的質量區間設定計數窗口的數目以及各個計數窗口的範圍; 步驟1-3)、對蛋白質資料庫做模擬酶切,根據模擬酶切所得到的肽序列的質量計算肽序列在各個計數窗口內的數量; 步驟1-4)、根據計算機內存的大小得到在計算機內存中一次可處理的肽序列的數量,根據在所述計算機內存中一次可處理的肽序列的數量以及步驟1-3)所得到的肽序列在各個計數窗口內的數量,得到在計算機內存中一次處理的肽序列的質量範圍段。
上述技術方案中,在所述的步驟1-3)中,所述的根據模擬酶切所得到的肽序列的質量計算肽序列在各個計數窗口內的數量包括 步驟1-3-1)、對模擬酶切所得到的一個肽序列,計算該肽序列的質量,將所得到的
質量與各個計數窗口的範圍相比較,為比較結果一致的計數窗口增加計數值; 步驟1-3-2)、對模擬酶切所得到的所有肽序列重複上述操作,得到所述序列在各
個計數窗口內的數量。 上述技術方案中,所述的步驟1-4)包括 步驟1-4-1)、根據計算機內存的大小與每個肽序列記錄的大小,得到在計算機內存中一次可處理的肽序列的數量; 步驟1-4-2)、將肽序列在計數窗口內的數量與在計算機內存中一次可處理的肽序列的數量進行比較,若肽序列在連續N個計數窗口內的數量小於在計算機內存中一次可處理的肽序列的數量,且肽序列在連續N+1個計數窗口內的數量大於在計算機內存中一次可處理的肽序列的數量,則將所述N個計數窗口所對應的質量範圍作為計算機內存一次處理的肽序列的質量範圍段,其中的N為正整數。N個連續窗口第一次從第一個計數窗口開始,然後從第N+l個計數窗口開始,以此類推。 上述技術方案中,在所述的步驟2)中,所述的排序操作包括將所述的肽序列按
照質量大小的順序做排列,當所述肽序列的質量相同時,根據表示肽序列的結構體中肽序
列起始位置和長度從蛋白質資料庫中讀取肽序列,然後根據字典序排序。 上述技術方案中,所述的肽序列用一個標準的定長結構體表示,所述結構體由18
個字節組成,包括肽序列在原始蛋白質資料庫中的出現位置、肽序列長度、肽序列質量、遺
漏酶切位點數、該肽序列對應的蛋白質在資料庫中位置以及指向倒排表位置的指針。
上述技術方案中,在所述的步驟2)中,採用位向量實現所述的去冗餘操作;其中, 所述位向量中的一位代表在一個質量範圍段內的中的一個肽序列是否為冗餘序
列,在對質量範圍段內的多個肽序列依次掃描時,若某一種肽序列是第一次出現,則在所述
位向量中將對應位的值設為l,若某一種肽序列不是第一次出現,則在所述位向量中將對應
位的值設為0。 上述技術方案中,在所述的步驟2)中,所述的去冗餘以及建立詞典和倒排表的操作包括 步驟2-l)、掃描位向量,找到標記為非重複的肽序列,將肽序列結構體中指向倒排表位置的指針指向當前倒排表文件的尾部; 步驟2-2)、將該肽序列結構體中的部分信息寫入到肽序列詞典文件中,所述部分信息包括肽序列在原始蛋白質資料庫中的出現位置、肽序列長度、肽序列質量、遺漏酶切位點數、指向倒排表位置的指針; 步驟2-3)、計算該肽序列在蛋白質資料庫中出現的蛋白質的數目,將所得到的值寫入倒排表文件的尾部,同時把對應的蛋白質在資料庫中的位置寫入所述倒排表中;
步驟2-4)、繼續掃描所述位向量,重複上述步驟2-2)以及2_3)直到所述位向量的尾部。 上述技術方案中,在所述的步驟2-3)中,所述的計算該序列在蛋白質資料庫中出現的蛋白質的數目包括 從所述位向量的當前位向後掃描直到遇到下一個值為1的位,讀取當前位到下一個值為1的位之間的肽序列,按照所述結構體中所述的該肽序列對應的蛋白質在資料庫中位置對所述肽序列做排序,然後順序遍歷計算該值的個數,其中將重複的算作一次,即可得到該序列在蛋白質資料庫中出現的蛋白質的數目。 本發明還提供了一種規模化蛋白質鑑定中的索引加速系統,包括質量區間設定模塊、計數窗口設定模塊、肽序列質量分布計算模塊、肽序列質量範圍段劃分模塊、詞典和倒排表創建模塊。其中, 所述的質量區間設定模塊為肽序列設定質量區間; 所述的計數窗口設定模塊為用於記錄肽序列數量的計數窗口設定大小,並結合質量區間設定模塊所設定的質量區間設定計數窗口的數目以及各個計數窗口的範圍;
所述的肽序列質量分布計算模塊對蛋白質資料庫做模擬酶切,根據模擬酶切所得到的肽序列的質量計算肽序列在各個計數窗口內的數量; 所述的肽序列質量範圍段劃分模塊根據計算機內存的大小得到在計算機內存中一次可處理的肽序列的數量,根據在所述計算機內存中一次可處理的肽序列的數量以及由肽序列質量分布計算模塊所得到的肽序列在各個計數窗口內的數量,得到多個在計算機內存中可一次處理的肽序列的質量範圍段; 所述的詞典和倒排表創建模塊對蛋白質資料庫做模擬酶切,將所得到的在一個質
量範圍段內的肽序列保存在所述計算機內存中,並在所述計算機內存中完成對所保存肽序
列的排序、去冗餘以及建立詞典和倒排表的操作。 本發明又提供了一種規模化蛋白質鑑定方法,包括 步驟1)、採用所述的索引加速方法創建肽序列的詞典和倒排表; 步驟2)、利用待鑑定的質譜數據中的母離子質量誤差窗口從所述的肽序列的詞典
和倒排表中尋找符合一定質量範圍內的肽序列,將符合要求的肽序列輸入給打分函數以實
現對肽序列的鑑定; 步驟3)、通過對所述肽序列的鑑定實現對蛋白質的鑑定。 本發明又提供了一種規模化蛋白質鑑定系統,其特徵在於,包括規模化蛋白質鑑定中的索引加速系統、肽序列鑑定模塊以及蛋白質鑑定模塊;其中, 所述的肽序列鑑定模塊利用待鑑定的質譜數據中的母離子質量誤差窗口從所述的肽序列的詞典和倒排表中尋找符合一定質量範圍內的肽序列,將符合要求的肽序列輸入給打分函數以實現對肽序列的鑑定; 所述的蛋白質鑑定模塊通過對所述肽序列的鑑定實現對蛋白質的鑑定。
本發明的優點在於 1、本發明通過預先計算肽序列質量分布密度,根據內存動態劃分每次索引的肽序列質量範圍,將詞典和倒排表的創建過程全部放在內存中完成,保證高效率的創建索引。
2、本發明在索引創建過程中,每次在內存中保留一定質量範圍的索引,不需要產生臨時文件,空間消耗低。 3、本發明中的肽序列用定長結構表示,有利於存儲和查詢。 4、本發明採用位向量來標記肽序列是否為冗餘序列,避免在肽序列數組中刪除元素; 5、本發明採用倒排索引的結構重新組織蛋白質資料庫,有效地提高了根據質譜數據母離子質量誤差窗口查詢肽序列的效率,同時提高查詢包含某條肽序列的所有蛋白質的效率。
圖1為現有技術中蛋白質鑑定過程的示意圖; 圖2為在一個實施例中所涉及的蛋白質資料庫中對蛋白質的數據表示方式的示例; 圖3為在一個實施例中對蛋白質序列做模擬酶切的示意圖; 圖4為在一個實施例中對肽序列根據質量劃分在不同的計數窗口的示意圖; 圖5為在一個實施例中如何由蛋白質序列生成肽序列詞典和倒排表的示意圖; 圖6為本發明的規模化蛋白質鑑定中的索引加速方法的流程圖。
具體實施例方式
在對本發明進行說明前,對於本發明中所涉及的一些名詞進行解釋 肽序列詞典一種用於存放非重複肽序列的文件。 一般而言,肽序列的存儲方式通
常有兩種第一,以實際的序列存儲;第二,以具有定長特性的結構體存儲,包括指針和長
度,指針指向肽序列在原始資料庫中出現的位置,長度表示了肽序列長度,通過該結構可以
在蛋白質資料庫中讀取肽序列。本發明的肽序列詞典以第二種存儲方式存放肽序列信息並
包括一個指向倒排表的指針。 倒排表一種用於存儲肽序列和蛋白質的對應關係的文件。 一個肽序列可能在若干個蛋白質中出現,倒排表的一條記錄存放一個肽段出現過的蛋白質數目,用N表示,然後順序存放這N個蛋白質在蛋白質資料庫中的起始位置。 倒排索引前述的肽序列詞典和倒排表在本發明中被統稱為倒排索引,並在本發明中簡稱為索引。 下面結合附圖和具體實施方式
對本發明作進一步詳細描述。 在本發明的一個實施例中,以一個蛋白質資料庫為例,對如何快速地實現對蛋白質的鑑定進行說明。在本實施例中,蛋白質資料庫以無結構的FASTA格式存放蛋白質信息,如圖2所示,蛋白質資料庫中關於蛋白質的一條記錄包括蛋白質名稱(AC)、蛋白質描述(DE)和蛋白質序列(SQ)。每條記錄以字符"〉"開始,到第一個空格處的內容是AC, AC之後直到本行結束的內容是DE,下一行開始到下一個字符"〉"之間的內容是SQ。例如,在圖2的第一條記錄中,"YAL002W"為AC,"VPS8 SGDID :S0000002"是DE,而該條記錄中後面的內容都為SQ。需要特別指出的是,在SQ中的每個字母代表一種類型的胺基酸,多個字母在一起形成蛋白質序列。 由於本發明的主要目的是提高針對肽序列的查詢效率,因此,在給定蛋白質資料庫後,需要由蛋白質資料庫中的蛋白質序列來得到肽序列。這一由蛋白質序列得到肽序列的過程被稱為模擬酶切。在本發明的整個實現過程中,涉及到多次模擬酶切操作,為了方便理解,首先對模擬酶切的實現過程統一進行說明。 模擬酶切實質上是模擬生物實驗中對蛋白質序列所做的酶切操作。生物學中有多種對蛋白質序列做酶切的方法,以常用的胰蛋白酶和特異性酶切為例,在對蛋白質序列進行酶切時,在賴氨酸(K)和精氨酸(R)的C端切斷,得到對應的肽序列,其中的賴氨酸(K)和精氨酸(R)也被稱為酶切位點。相應的,在模擬酶切時,就要在由字母組成的蛋白質序列中,當遇到K或R時,將K或R之前的一段字母從整段字母中分離出來(包括K或R),所得到的這段字母就代表了酶切得到的肽序列。如圖3所示,在一個蛋白質序列"AAIKGKIDVCIVHKAEPTIRNTDGRTA"中,當遇到字母"K"或"R"時,就對字母作酶切位點的標記(如圖中的下劃線"_"),然後對這些字母進行切分,從而得到"AAIK"、"GK"、"IDVCIVHK"、"AEPTIR"、"NTDGR"以及"TA"等肽序列。 值得注意的是,在實際的生物學實驗中,對蛋白質進行酶切會有遺漏酶切的現象存在,例如,假設圖3中所涉及的蛋白質序列中的"AAIKGK"的第一個"K"被遺漏,從而得到了遺漏酶切肽序列"AAIKGK"。對於這種現象,如果用戶事先指定了遺漏酶切位點數,假設為l,則對於前述的具有一個遺漏酶切位點的肽序列也要保留,即允許肽序列中最多可以有一個酶切位點,只有當蛋白質序列中的遺漏酶切位點數超出了用戶設定的值時(如肽序列中有兩個酶切位點),才會對遺漏的酶切位點做酶切操作。遺漏酶切位點的現象會產生新的肽序列,如果按照類似於SEQUEST軟體的存儲方式將表示肽序列的字母直接存儲,則可能會大量增加存儲肽序列時所需要的空間。 由於以序列形式存放具有遺漏酶切位點的肽序列會導致存儲大量冗餘的序列,因此在本發明中可以用一個標準的定長結構體表示模擬酶切後所得到的肽序列,該結構體用18個字節(Byte)表示,它包括肽序列在原始蛋白質資料庫中的出現位置(size_t)、肽序列長度(unsigned char)、肽序列質量(size_t)、遺漏酶切位點數(unsigned char)、該肽序列對應的蛋白質在資料庫中位置(size—t)、指向倒排表位置的指針(size_t)。通過標準的定長結構體來表示、存儲肽序列後,即使遺漏酶切肽序列很長,也可以用一個較短、固定長度的數據來表示遺漏酶切肽序列,減少了對存儲空間的需求。而且由於肽序列長度在20以上的比例要多於20以下比例,因此也能夠有效地節省存儲空間。此外,採用標準的定長結構體表示肽序列可以根據ID(序號)直接找到肽序列,在後續的二分查找時比較容易實現,無需像非定長結構那樣通過建立一級索引來實現根據ID查找肽序列。
以上是對模擬酶切以及模擬酶切所得到的肽序列的表示方法的舉例說明,本發明所涉及的模擬酶切並不局限於上述說明中所提到的具體實例,現有技術中的其它模擬酶切實現方式都可應用於本發明。此外,在本發明中,模擬酶切在多次實現時可以存在差異。例如,在一次模擬酶切中,可以只是簡單地計算模擬酶切後得到的肽序列的質量,而不對肽序列的其它信息加以保存;而在另一次模擬酶切中,則要對模擬酶切後的肽序列按照上述的標準定長結構體的要求對相應信息進行存儲。對模擬酶切的具體實現將根據需要而定。
在前述的模擬酶切的基礎上,如圖6所示,本發明採用如下操作建立蛋白質資料庫的索引 為所要統計的肽序列設定最小質量和最大質量,後續操作只對在最小質量和最大質量區間內的肽序列進行;設定計數窗口的大小,並結合前述的質量範圍設定計數窗口的數目以及每個計數窗口的範圍;對蛋白質資料庫進行一個模擬酶切,不保留肽序列,只計算肽序列的質量,根據所得到的肽序列的質量計算肽序列在各個計數窗口內的數量;根據計算機內存的容量計算一次可以處理的肽序列的數量,然後根據各個計數窗口內肽序列的數量得到在計算機內存中一次處理的肽序列的質量範圍;最後,對蛋白質資料庫做模擬酶切,將模擬酶切所得到的肽序列按照所劃定的質量範圍進行區分,分別將一個質量範圍內的肽序列進行包括排序、去冗餘、建詞典和倒排表在內的操作。 為了方便理解,結合一個具體的實例加以說明。假設在前面所列舉的蛋白質資料庫中的蛋白質序列在模擬酶切後所得到的肽序列的質量大致在400Da-10000Da範圍內,因此為肽序列所設定的質量範圍在400Da-10000Da之間,即最小質量為400Da,最大質量為10000Da。然後將肽序列的計數窗口的大小設定為10Da,結合前述的質量範圍可以知道計數窗口的數目以及每個計數窗口的範圍,即有計數窗口 960個((10000-400) /10),各個計數
窗口的範圍為400Da-410Da、410Da-420Da,......,9980Da-9990Da,9990Da-10000Da,所有
窗口都是左閉右開區間。 接著對蛋白質資料庫做一個模擬酶切,在這一模擬酶切過程中不保留肽序列,只計算肽序列的質量。根據對肽序列質量的計算結果可以知道某一肽序列在哪個質量範圍內,從而為這一質量範圍所對應的計數窗口中的計數器加1 。例如,在圖4中,質量為400. 15的肽序列EVDG按照如下公式計算(400. 15-400)/10 = 0,由此可知該肽序列屬於第一計數窗口,為該計數窗口所對應的計數器O加1。對模擬酶切所得到的所有肽序列都做上述操作,就可以記錄肽序列在各個計數窗口內的數量。在此基礎上,可以計算在內存中一次操作所涉及的肽序列質量的最大範圍。 假設在本實施例中所採用的計算機的內存大小為512MB,而從前面的說明中知道,每個肽序列記錄的大小為18B,因此,在計算機內存中一次可以處理的肽序列數目在理論上含約28M條(512MB/18B)。與此同時,通過前面的計算,也已經知道各個計數窗口中所記錄的對應質量範圍內的肽序列的條數,如在第一個計數窗口 (對應400Da-410Da)中記錄有100條肽序列,在第二個計數窗口 (對應410Da-420Da)中記錄有200條肽序列,將這些計數窗口中所記錄的肽序列的數目依次相加,若第一到第十個計數窗口中所記錄的肽序列相加後小於28M,而第一到第十一個計數窗口中所記錄的肽序列相加後大於28M,則將第一到第十個計數窗口中所具有的肽序列分為一段。依次類推,將後續的計數窗口分別做如
上的分段處理,從而得到多個肽序列質量段。如400Da-1400Da, 1400Da-2400Da,......,
9000Da-10000Da。 上述過程所得到的肽序列質量段表明在內存中一次可處理的肽序列的質量範圍,但此時計算機中並沒有保留肽序列。因此,需要在計算機內存中再次對蛋白質資料庫做模擬酶切,然後將模擬酶切所得到的肽序列的質量與計算機內存當前所處理的肽序列的質量範圍進行比較,只有質量在所述質量範圍內的肽序列才子以保留。例如,假設計算機內存當前所要處理的肽序列的質量範圍為400Da-1400Da,則只有在這個範圍的肽序列才保存在內存中。對蛋白質資料庫經過完整掃描後,在當前質量範圍內的肽序列都保存在計算機內存中,此時,再對這些肽序列做排序、去除重複序列、生成詞典和倒排表的操作。在排序時,將一個質量段內的肽序列,約28M個,按照質量從小到大的順序為肽序列排序,如果肽序列間的質量相同,則根據結構體中的肽序列起始位置和長度從蛋白質資料庫中讀取肽序列,然後根據字典序排序。以圖5為例,假設肽序列由三個蛋白質序列"IQPSKANME"、"DEARIQPSK"、"CSNKANME"模擬酶切得到,將肽序列按照質量排序,按照質量從小到大的順序包括"CSNK"、"ANME"、"A畫E"、"DEAR"、"IQPSK"、"IQPSK"。上述的肽序列除了包含質量信息外,還包括其來自哪個蛋白質的信息,在圖5中用蛋白質序號表示。
對肽序列完成排序操作後,還要去除冗餘肽序列。所述的冗餘肽序列是指肽序列段中的重複肽序列。為了去除冗餘肽序列,可以藉助一個位向量,該位向量代表了一個質量段內的肽序列,位向量中的一位代表了該質量段內的一個肽序列是否為冗餘序列。順次掃描肽序列,如果某一條肽序列第一次出現(與前一個序列比較,不同為第一次出現),則在位向量中將對應位的值設為l,表示該肽序列並非重複肽序列;如某一條肽序列不是第一次出現(與前一個序列比較,相同則不是第一次出現),則在位向量中將對應位的值設為O,表示該肽序列屬於重複肽序列。對於圖5中所描述的肽序列段,其位向量為110110。
在去除冗餘肽序列的過程中,掃描位向量,找到標記為非重複(即位向量為1)的肽序列,將肽序列結構體中指向倒排表位置的指針指向當前倒排表文件尾(即該肽序列對應的蛋白質信息寫入倒排表時的起始位置),然後將該肽序列結構體中部分信息寫入到肽序列詞典文件,包括肽序列在原始蛋白質資料庫中的出現位置(size—t)、肽序列長度(unsigned char)、肽序列質量(size_t)、遺漏酶切位點數(unsigned char)、指向倒排表位置的指針(size_t);然後計算該肽序列在蛋白質資料庫中出現的蛋白質的數目從位向量的當前位(值為l),向後掃描直到遇到下一個值為1的位,讀取該範圍的肽序列,按照結構體中"對應蛋白質在資料庫中位置"排序,然後順序遍歷計算該值的個數(重複的算一次),即為該序列在蛋白質資料庫中出現的蛋白質的數目,將該值寫入倒排表文件尾,同時把對應的蛋白質在資料庫中的位置寫入倒排表尾;最後繼續掃描位向量,重複上面兩步操作直到位向量尾,則對一個質量段內的的肽序列詞典和倒排表的創建過程完成。
對圖5所示的肽序列根據位向量以及上述步驟可創建肽序列詞典和倒排表,從圖中可以看出,該詞典包括"CSNK"、"ANME "、"DEAR"、" IQPSK"四個肽序列,並在倒排表中對相應肽序列的出現次數、在何種蛋白質序列中出現都做了相應的記錄。例如,對於肽序列"ANME",它在蛋白質序列中的次數為2,分別出現在第一個蛋白質序列和第三個蛋白質序列中。需要說明的是,為了方便理解,在圖5以及上述的說明中,都直接以字母的方式表示肽序列,如"CSNK",但實際存儲的是前面所提到的肽序列在原始蛋白質資料庫中出現的位置(size—t)、肽序列長度(unsigned char)、肽序列的質量(size_t)、遺漏酶切位點數(unsigned char)、指向倒排表位置的指針(size_t)等信息。 以上對肽序列的排序、去冗餘、建詞典和倒排表的操作都是以一個質量範圍內的肽序列為例所做的說明,對於蛋白質資料庫中的其它質量範圍的肽序列都可以按照類似的方式各自建立詞典和倒排表。 在前述方法的基礎上,本發明還可以提供相應的索引加速系統,該系統中包括質量區間設定模塊、計數窗口設定模塊、肽序列質量分布計算模塊、肽序列質量範圍段劃分模塊、詞典和倒排表創建模塊;其中, 所述的質量區間設定模塊為肽序列設定質量區間; 所述的計數窗口設定模塊為用於記錄肽序列數量的計數窗口設定大小,並結合質量區間設定模塊所設定的質量區間設定計數窗口的數目以及各個計數窗口的範圍;
所述的肽序列質量分布計算模塊對蛋白質資料庫做模擬酶切,根據模擬酶切所得到的肽序列的質量計算肽序列在各個計數窗口內的數量; 所述的肽序列質量範圍段劃分模塊根據計算機內存的大小得到在計算機內存中一次可處理的肽序列的數量,根據在所述計算機內存中一次可處理的肽序列的數量以及由肽序列質量分布計算模塊所得到的肽序列在各個計數窗口內的數量,得到多個在計算機內存中一次可處理的肽序列的質量範圍段; 所述的詞典和倒排表創建模塊對蛋白質資料庫做模擬酶切,將所得到的在一個質量範圍段內的肽序列保存在所述計算機內存中,並在所述計算機內存中完成對所保存肽序列的排序、去冗餘以及建立詞典和倒排表的操作。 在建立索引後,利用所得到的索引可以快速地實現對規模化蛋白質的鑑定。 一種規模化蛋白質鑑定方法包括首先採用前述的索引加速方法創建肽序列的詞典和倒排表;然後利用待鑑定的質譜數據中的母離子質量誤差窗口從所述的肽序列的詞典和倒排表中尋找符合一定質量範圍內的肽序列,將符合要求的肽序列輸入給打分函數以實現對肽序列的鑑定;最後通過對所述肽序列的鑑定實現對蛋白質的鑑定。 本發明除了前述的規模化蛋白質鑑定方法外,還可以提供與該方法相適應的規模化蛋白質鑑定系統,包括前述的規模化蛋白質鑑定中的索引加速系統、肽序列鑑定模塊以及蛋白質鑑定模塊;其中, 所述的肽序列鑑定模塊利用待鑑定的質譜數據中的母離子質量誤差窗口從所述的肽序列的詞典和倒排表中尋找符合一定質量範圍內的肽序列,將符合要求的肽序列輸入給打分函數以實現對肽序列的鑑定; 所述的蛋白質鑑定模塊通過對所述肽序列的鑑定實現對蛋白質的鑑定。 在上述的各個方法和系統中,由於與對蛋白質資料庫做模擬酶切相比,對肽序列
做排序、去冗餘、建詞典和倒排表的操作所要花費的時間更長,所要花費的代價更大,因此,
在本發明中儘管對蛋白質資料庫做了多次的模擬酶切,但在執行效率上仍有較大的提高。
與背景技術中所提到的現有技術相比,採用本發明的方法在普通PC機上創建NCBInr資料庫(約580萬條蛋白質序列)的索引只需要時間約2.5小時、佔用空間約8GB(特異性酶切,質量範圍600-8000Da、長度範圍4_100、遺漏酶切位點數為2),在時間效率上有很大的提高。 最後所應說明的是,以上實施例僅用以說明本發明的技術方案而非限制。儘管參照實施例對本發明進行了詳細說明,本領域的普通技術人員應當理解,對本發明的技術方案進行修改或者等同替換,都不脫離本發明技術方案的精神和範圍,其均應涵蓋在本發明的權利要求範圍當中。
權利要求
一種規模化蛋白質鑑定中的索引加速方法,包括步驟1)、根據計算機內存空間的大小,預先將肽序列按照質量的大小分成多個質量範圍段,使得在所述計算機內存中一次可對一個質量範圍段內的肽序列進行處理;步驟2)、對蛋白質資料庫做模擬酶切,將所得到的在一個質量範圍段內的肽序列保存在所述計算機內存中,並在所述計算機內存中完成對所保存肽序列的排序、去冗餘以及建立詞典和倒排表的操作;步驟3)、對其餘質量範圍段重複上述步驟2)中的操作,為所述的每個質量範圍段建立詞典和倒排表。
2. 根據權利要求1所述的規模化蛋白質鑑定中的索引加速方法,其特徵在於,所述的 步驟1)包括步驟1-1)、為肽序列設定質量區間;步驟l-2)、為用於記錄肽序列數量的計數窗口設定大小,並結合步驟1)所設定的質量 區間設定計數窗口的數目以及各個計數窗口的範圍;步驟1-3)、對蛋白質資料庫做模擬酶切,根據模擬酶切所得到的肽序列的質量計算肽 序列在各個計數窗口內的數量;步驟1-4)、根據計算機內存的大小得到計算機內存一次可處理的肽序列的數量,根據 在所述計算機內存中一次可處理的肽序列的數量以及步驟1-3)所得到的肽序列在各個計 數窗口內的數量,得到計算機內存一次處理的肽序列的質量範圍段。
3. 根據權利要求2所述的規模化蛋白質鑑定中的索引加速方法,其特徵在於,在所述 的步驟1-3)中,所述的根據模擬酶切所得到的肽序列的質量計算肽序列在各個計數窗口 內的數量包括步驟1-3-1)、對模擬酶切所得到的一個肽序列,計算該肽序列的質量,將所得到的質量 與各個計數窗口的範圍相比較,為比較結果一致的計數窗口增加計數值;步驟1-3-2)、對模擬酶切所得到的所有肽序列重複上述操作,得到所述序列在各個計 數窗口內的數量。
4. 根據權利要求2所述的規模化蛋白質鑑定中的索引加速方法,其特徵在於,所述的 步驟1-4)包括步驟1-4-1)、根據計算機內存的大小與每個肽序列記錄的大小,得到在計算機內存中 一次可處理的肽序列的數量;步驟1-4-2)、將肽序列在計數窗口內的數量與在計算機內存中一次可處理的肽序列的 數量進行比較,若肽序列在N個計數窗口內的數量小於在計算機內存中一次可處理的肽序 列的數量,且肽序列在N+l個計數窗口內的數量大於在計算機內存中一次可處理的肽序列 的數量,則將所述N個計數窗口所對應的質量範圍作為計算機內存一次處理的肽序列的質 量範圍段,其中的N為正整數。
5. 根據權利要求1所述的規模化蛋白質鑑定中的索引加速方法,其特徵在於,在所述 的步驟2)中,所述的排序操作包括將所述的肽序列按照質量大小的順序做排列,當所述 肽序列的質量相同時,根據結構體中的肽序列起始位置和長度從蛋白質資料庫中讀取肽序 列,然後根據字典序排序。
6. 根據權利要求1所述的規模化蛋白質鑑定中的索引加速方法,其特徵在於,所述的肽序列用一個標準的定長結構體表示,所述結構體由18個字節組成,包括肽序列在原始 蛋白質資料庫中的出現位置、肽序列長度、肽序列質量、遺漏酶切位點數、該肽序列對應的 蛋白質在資料庫中位置以及指向倒排表位置的指針。
7. 根據權利要求6所述的規模化蛋白質鑑定中的索引加速方法,其特徵在於,在所述 的步驟2)中,採用位向量實現所述的去冗餘操作;其中,所述位向量中的一位代表在一個質量範圍段內的一個肽序列是否為冗餘序列,在對質 量範圍段內的多個肽序列依次掃描時,若某一種肽序列是第一次出現,則在所述位向量中 將對應位的值設為l,若某一種肽序列不是第一次出現,則在所述位向量中將對應位的值設為0。
8. 根據權利要求7所述的規模化蛋白質鑑定中的索引加速方法,其特徵在於,在所述 的步驟2)中,所述的去冗餘以及建立詞典和倒排表的操作包括步驟2-l)、掃描位向量,找到標記為非重複肽序列的肽序列,將肽序列結構體中指向倒 排表位置的指針指向當前倒排表文件的尾部;步驟2-2)、將該肽序列結構體中的部分信息寫入到肽序列詞典文件中,所述部分信息 包括肽序列在原始蛋白質資料庫中的出現位置、肽序列長度、肽序列質量、遺漏酶切位點 數、指向倒排表位置的指針;步驟2-3)、計算該肽序列在蛋白質資料庫中出現的蛋白質的數目,將所得到的值寫入 倒排表文件的尾部,同時把對應的蛋白質在資料庫中的位置寫入所述倒排表中;步驟2-4)、繼續掃描所述位向量,重複上述步驟2-2)以及2-3)直到所述位向量的尾部。
9. 根據權利要求8所述的規模化蛋白質鑑定中的索引加速方法,其特徵在於,在所述 的步驟2-3)中,所述的計算該序列在蛋白質資料庫中出現的蛋白質的數目包括從所述位向量的當前位向後掃描直到遇到下一個值為1的位,讀取當前位到下一個值 為1的位之間的肽序列,按照所述結構體中所述的該肽序列對應的蛋白質在資料庫中位置 對所述肽序列做排序,然後順序遍歷計算該值的個數,其中將重複的算作一次,即可得到該 序列在蛋白質資料庫中出現的蛋白質的數目。
10. —種規模化蛋白質鑑定中的索引加速系統,其特徵在於,包括質量區間設定模塊、 計數窗口設定模塊、肽序列質量分布計算模塊、肽序列質量範圍段劃分模塊、詞典和倒排表 創建模塊;其中,所述的質量區間設定模塊為肽序列設定質量區間;所述的計數窗口設定模塊為用於記錄肽序列數量的計數窗口設定大小,並結合質量區 間設定模塊所設定的質量區間設定計數窗口的數目以及各個計數窗口的範圍;所述的肽序列質量分布計算模塊對蛋白質資料庫做模擬酶切,根據模擬酶切所得到的 肽序列的質量計算肽序列在各個計數窗口內的數量;所述的肽序列質量範圍段劃分模塊根據計算機內存的大小得到在計算機內存中一次 可處理的肽序列的數量,根據在所述計算機內存中一次可處理的肽序列的數量以及由肽序 列質量分布計算模塊所得到的肽序列在各個計數窗口內的數量,得到多個在計算機內存中 一次可處理的肽序列的質量範圍段;所述的詞典和倒排表創建模塊對蛋白質資料庫做模擬酶切,將所得到的在一個質量範圍段內的肽序列保存在所述計算機內存中,並在所述計算機內存中完成對所保存肽序列的 排序、去冗餘以及建立詞典和倒排表的操作。
11. 一種規模化蛋白質鑑定方法,包括步驟1)、採用權利要求1-9之一的索引加速方法創建肽序列的詞典和倒排表;步驟2)、利用待鑑定的質譜數據中的母離子質量誤差窗口從所述的肽序列的詞典和倒排表中尋找符合一定質量範圍內的肽序列,將符合要求的肽序列輸入給打分函數以實現對肽序列的鑑定;步驟3)、通過對所述肽序列的鑑定實現對蛋白質的鑑定。
12. —種規模化蛋白質鑑定系統,其特徵在於,包括權利要求IO所述的規模化蛋白質 鑑定中的索引加速系統、肽序列鑑定模塊以及蛋白質鑑定模塊;其中,所述的肽序列鑑定模塊利用待鑑定的質譜數據中的母離子質量誤差窗口從所述的肽 序列的詞典和倒排表中尋找符合一定質量範圍內的肽序列,將符合要求的肽序列輸入給打 分函數以實現對肽序列的鑑定;所述的蛋白質鑑定模塊通過對所述肽序列的鑑定實現對蛋白質的鑑定。
全文摘要
本發明提供一種規模化蛋白質鑑定中的索引加速方法,包括為肽序列設定質量區間;為計數窗口設定大小,並結合質量區間設定計數窗口的數目以及各個計數窗口的範圍;對蛋白質資料庫做模擬酶切,根據模擬酶切所得到的肽序列的質量計算肽序列在各個計數窗口內的數量;根據計算機內存的大小得到在計算機內存中一次可處理的肽序列的數量,結合肽序列在各個計數窗口內的數量,得到在計算機內存中一次處理的肽序列的質量範圍段;對蛋白質資料庫做模擬酶切,將所得到的在一個質量範圍段內的肽序列保存在計算機內存中,並在計算機內存中完成對所保存肽序列的排序、去冗餘以及建立詞典和倒排表的操作;為每個質量範圍段建立詞典和倒排表。
文檔編號G06F19/00GK101714187SQ20081022368
公開日2010年5月26日 申請日期2008年10月7日 優先權日2008年10月7日
發明者付巖, 劉超, 孫瑞祥, 李德泉, 李由, 王樂珩, 王文平, 王海鵬, 秀麗蘊, 袁作飛, 賀思敏, 遲浩 申請人:中國科學院計算技術研究所