我正在尋找PostgreSQL中的支持來處理蛋白質序列,這些序列似乎是通用或足夠常見的任務,因此我懷疑我沒有應用正確的Google查詢術語或定義最佳問題辦法。我知道PostBIS和PostBio,但這些似乎更專注於檢測序列關係而不是應用它們。在PostgreSQL中屏蔽和映射對齊的1D陣列
,我最初尋找原始功能是沿着線:
掩蔽:給定字符的ARRAY1 1..N和ARRAY2的(布爾當量)1..N,返回ARRAY3這是由array2掩碼的array1(將array1中的列置零或拼接出array2爲'false'的列)。或者,array2可以是開始和結束位置,而不是完整的n列。
映射:給定array1 1..n,array2 1..m,以及一些映射,它告訴我,例如, array1中的第10列是array2中的第28列,返回在映射的array1位置具有array2值的array3。再次如上所述,映射實現可以是對齊段的開始和結束位置,而不是每個方向上的全部n和m列映射。
我可以設想在數據庫表中使用例如sequenceID,sequenceIndex和alignMap列,但似乎這會產生大量的行(每個序列位置)來索引和連接,當我的軟件訪問數據庫通常想要在全序列塊上工作時。
有沒有現有的模塊或方法我應該考慮?一個優雅的表達與unnest和array_agg(請概述)? PostgreSQL中的數組對我來說是新的,但我知道數據庫內的處理通常比外部處理要快。 perl的。我目前的PostgreSQL版本是9.1,但預計很快會轉移到9.2。
此應用將蛋白質序列A與結構Z對齊,因此A的特徵「x」在Z上出現在哪裏?