基本介紹
- 外文名:InChIKey
- 長度:27個字元
- 套用:化合物的網際網路和資料庫搜尋/索引
摘要,背景,版本,結構,分子的InChIKey的衝突,哈希的機率論與衝突阻力的估計,
摘要
InChIKeys 是一種用來識別化合物的文本。InChIKey的第一個哈希塊為分子骨架,第二個哈希塊表示各種異構(立體異構、互變異構等)。InChIKey被設計成一個InChI的替代品。然而,一個InChIKey可能偶爾會映射到兩個或更多的InChI字元串。
背景
國際化學標識符InChI是一種化學物質的獨特代表。InChI是在IUPAC的支持下開發的;它是免費的,InChi軟體的原始碼是開放的。InChI字元串是從物質的結構表示中派生出來的一系列字元,作為它的數字簽名。對於任何特定的化合物,總是生成相同的字元串。
InChIKey是Inchi的27字元壓縮版本,用於Internet和資料庫搜尋/索引,它基於Inchi字元串的sha256散列。
版本
在2007年,推出了lnChI的軟體版本:1.02-beta。2009年,標準InChIKey以1.02-Standard版本出現,它是從標準InChI計算出來的InChIKey;它是專門為交換化學信息的互操作性而設計的。自1.03版本以來,InChI軟體已經合併了一種功能,允許同時轉換標準和非標準的InChIKey。
結構
InChIKey字元串包含兩個哈希塊、三個標誌字元(指示鍵是否為Standard;使用了InChI的哪個版本;以及分子的質子化狀態是什麼)和兩個分隔設定(破折號)。
第一個哈希塊代表一個分子骨架,而第二個哈希塊代表各種額外的異構性(立體聲,同位素替代,以及在非標準鍵的情況下,互變異構)。第一個塊長14個字元,第二個塊長8個字元,字元是大寫英文字母。
分子的InChIKey的衝突
在2007年發布inchIKey之前的測試表明,幾個有著數百萬化合物記錄的資料庫沒有發生衝突,總大小為 個分子。
儘管如此,化合物數量的潛在大小顯然大大超過了InChIKey的容量,因此,在足夠大的集合中,衝突是不可避免的。當然,在計算機生成的分子庫中,發生衝突的可能性更大。
InChIKey的第一次塊狀衝突阻力的極限應該在三辛烷異構體時達到,而戊烷則遠遠超過這些極限。
2011年,有報導稱英奇凱第一哈希塊發生衝突。這兩個相互衝突的分子是一個醇和一個酮,含有長的支鏈烷基自由基,分別是C50和C56。
在這個報告的案例中,沒有公布關於衝突是如何獲得的詳細信息——特別是它們是偶然發生的,還是來自於其他原因——或者是關於碰撞結構是否存在於現實世界的化學中。
雖然上述複雜分子的衝突確實是預料中的,但這些報告促使我們為了更詳細地研究InChIKey的碰撞阻力是如何符合理論機率估計的。我們分別計算了InChIKey第一哈希塊和第二哈希塊計算實驗中的相關值,並與理論進行了比較。
結論是,觀測值與理論值吻合較好(見下文),即InChIKey符合預期。
哈希的機率論與衝突阻力的估計
當兩個不同的值具有相同的哈希碼時,就會發生衝突。當任何哈希函式將輸入值映射到更緊湊的空間時,衝突是不可避免的,唯一有效的問題是它們多久出現一次,而不是它們是否出現。
顯然,如果哈希值是理想的隨機值,並且遵循均勻分布(也就是說,如果為任意輸入產生任何哈希值的可能性相等),則可以獲得最佳的抗衝突性能。當然,這種理想是不可能的,因為純真正的隨機性是不可能得到的確定性哈希函式。無論如何,通過分析均勻分布的隨機變數,可以得出碰撞頻率的最佳情況估計.
在給定哈希長度和給定數據集大小的情況下,理論上預期的碰撞次數的估計與機率論中一個眾所周知的問題密切相關,比如生日悖論。這一矛盾之處在於,在派對上的一個房間裡發現兩個人生日相同的可能性與直覺相反。因此,在機率大於0.5的情況下,23個人就足以找到相同的生日相同的人(即生日衝突的人)。
實際上,生日悖論根本不矛盾,因為它完全符合機率論的規律。假設哈希函式的輸出值以完全一致的方式分布,那么可以估計數據集中給定數量的輸入項(在我們的示例中,k是房間中的人數)發生衝突的機率。所有輸出(哈希)值是不同的機率最大是當
(k越大,機率越小)
對於一年中的 天,這就意味著的 人數量。按照公式從生日到InChIKeys,可以很容易地計算出,對於一個37位的哈希, ,出現衝突的機會只有一半。對於一個65位的散列, 也是一樣。
或者,我們可以使用稍微不同的公式——而不是機率——來估計任意給定大小的數據集的衝突的期望數量(這個期望值可以方便地與實驗觀察到的平均值進行進一步的比較)
總之,InChIKey 在化合物的網際網路和資料庫的搜尋和索引大體上也是個不錯的選擇。