(「DNA相同性検索とAI(3) 16SrDNA塩基配列で細菌分類(2)」の続きです。)

16SrDNA塩基配列で細菌分類(2)」とほぼ同じ構成で、ライブラリは TFLearn から Keras に変え、出力層を softmax から sigmoid に変えてみました。
出力層 sigmoid では、それぞれの細菌(属)について0~1の間で出力され、
出力値の最大の細菌(属)を「◎あたり」、上位5位以内を「△おしい」、それ以下を「☓はずれ」として表示するようにしました。

Pythonプログラム 16SrDNA塩基配列で細菌分類 sigmod 出力
dnadnnsig.py (ライブラリ tensorflow, keras) (UTF-8)

ネットワーク構成の部分(一部抜粋)―――――――――――――

model = kr.models.Sequential()
model.add(kr.layers.Dense(units=4096, input_shape=(maxdnalength,), activation=’relu’))
model.add(kr.layers.Dense(units=4096, activation=’relu’))
model.add(kr.layers.Dense(units=4096, activation=’relu’))
model.add(kr.layers.Dense(units=4096, activation=’relu’))
# 出力層
model.add(kr.layers.Dense(units=generacount, activation=’sigmoid’))

実行結果(一部抜粋)―――――――――――――

DNA No.01 ——–
推定 No.01=Sphingomonas 0.0004 : No.02=Ochrobactrum 0.0000 : No.03=Methylobacterium 0.0000 : No.04=Paracoccus 0.0000 : No.05=Brevundimonas 0.0000 :
◎あたり 正解=Sphingomonas
DNA No.02 ——–
推定 No.01=Bifidobacterium 0.9251 : No.02=Kocuria 0.0019 : No.03=Arthrobacter 0.0017 : No.04=Curtobacterium 0.0010 : No.05=Actinomyces 0.0009 :
◎あたり 正解=Bifidobacterium
DNA No.03 ——–
推定 No.01=Streptococcus 0.6962 : No.02=Lactococcus 0.0001 : No.03=Oceanobacillus 0.0000 : No.04=Fusobacterium 0.0000 : No.05=Brevibacillus 0.0000 :
◎あたり 正解=Streptococcus
DNA No.04 ——–
推定 No.01=Clostridium 0.0068 : No.02=Brevundimonas 0.0000 : No.03=Helicobacter 0.0000 : No.04=Sphingomonas 0.0000 : No.05=Peptostreptococcaceae 0.0000 :
◎あたり 正解=Clostridium
DNA No.05 ——–
推定 No.01=Staphylococcus 0.0001 : No.02=Bacillus 0.0000 : No.03=Lactococcus 0.0000 : No.04=Virgibacillus 0.0000 : No.05=Streptococcus 0.0000 :
◎あたり 正解=Staphylococcus

(中略)

DNA No.112 ——–
推定 No.01=Halorubrum 0.3010 : No.02=Actinomyces 0.0002 : No.03=Paracoccus 0.0002 : No.04=Ruegeria 0.0001 : No.05=Citrobacter 0.0001 :
◎あたり 正解=Halorubrum
DNA No.113 ——–
推定 No.01=Nostoc 0.0000 : No.02=Acidovorax 0.0000 : No.03=Pseudomonas 0.0000 : No.04=Variovorax 0.0000 : No.05=Micrococcus 0.0000 :
☓はずれ 正解=Erythrobacter 順位[70]
DNA No.114 ——–
推定 No.01=Kocuria 0.0001 : No.02=Pseudonocardia 0.0000 : No.03=Micromonospora 0.0000 : No.04=Actinomycetales 0.0000 : No.05=Nocardiopsis 0.0000 :
△おしい 正解=Pseudonocardia 順位[2]
——end.(◎ 94.7 % △ 2.6 % ☓ 2.6 % )

全結果(UTF-8 テキストファイル) dnadnn_result.txt

実行結果では、「×はずれ」が3件ほどありました。

DNA No.23 ——–
推定 No.01=Agrobacterium 0.0018 : No.02=Rhizobium 0.0001 : No.03=Ensifer 0.0000 : No.04=Sinorhizobium 0.0000 : No.05=Ochrobactrum 0.0000 :
☓はずれ 正解=Candidatus 順位[10]

Candidatus は培養に成功していない原核生物に与えられる分類学上の暫定的な地位です。特定の細菌ではないので判断が難しいと思われます。

DNA No.109 ——–
推定 No.01=Curtobacterium 0.0000 : No.02=Planococcus 0.0000 : No.03=Stenotrophomonas 0.0000 : No.04=Brevibacillus 0.0000 : No.05=Brevibacterium 0.0000 :
☓はずれ 正解=Synechococcus 順位[26]

DNA No.113 ——–
推定 No.01=Nostoc 0.0000 : No.02=Acidovorax 0.0000 : No.03=Pseudomonas 0.0000 : No.04=Variovorax 0.0000 : No.05=Micrococcus 0.0000 :
☓はずれ 正解=Erythrobacter 順位[70]

最大でも0.0000で、この場合は「不明」と表示したほうが良いかもしれません。

 

(S.Onda 2018/8/13)