PART 2
你手上有一個名字,想知道 VFB 上跟它有關的一切——而這件事比打字進搜尋框複雜一層
ME_R、ME(R)、optic medulla,是三塊腦區還是一塊?一塊。你讀一篇用 FlyWire 資料的論文,裡面的腦區叫 ME_R;換一篇用 hemibrain 的,同一塊叫 ME(R);再翻一本解剖學的書,它叫 optic medulla。三個寫法指的是同一塊神經氈——那是 PART 1 用的詞,指神經纖維密集交織、突觸集中的那一團組織;這一塊位在視葉,也就是果蠅腦處理視覺的那一大區。
這件事聽起來只是麻煩,實際上會讓整個分析停擺:你想把兩套連線資料放在一起比,第一步就要知道甲方的 ME_R 等於乙方的哪一個。多數人的作法是自己維護一張對照表。VFB 的作法是,那張表已經在裡面了。
在 VFB 上,這塊腦區只有一個身分,編號 FBbt_00003748,正式名字是 medulla。上面那三個寫法,連同另外五種,全部登記成它的別名——也就是「同一個東西的另一種寫法」:
| 登記的寫法 | 登記成哪一種別名 | 誰這樣叫它 |
|---|---|---|
ME | 完全同義 | BrainName 命名法(Ito et al., 2014) |
| optic medulla | 完全同義 | Venkatesh and Shyamala, 2010 |
Med | 完全同義 | Chiang et al., 2011 |
ME_R ME_L | 相關同義 | BANC(Bates et al., 2025)與 FlyWire(Schlegel et al., 2024) |
ME(R) ME(L) | 相關同義 | hemibrain(Scheffer et al., 2020)、male-cns(Berg et al., 2025)、視葉連線體(Nern et al., 2025) |
m | 相關同義 | (登記時沒有附出處) |
ME_R 是右側的那一塊,而 medulla 這個詞本身沒有分左右。VFB 用這兩種標記把「同一個東西的另一個名字」和「幾乎是同一個東西」分開,你在讀的時候要跟著分開。
上表整理自 out/terminfo_region.json 的 Synonyms(scripts/vfb_probe.py 抓取,2026-09-14)。同一份內容在畫面上是 Term Info 的 Alternative Names 欄,逐列存在 out/ui/terminfo_v2_region.json(scripts/browser_probe.py 拍攝,2026-09-14):兩邊都是 13 列,畫面上每一列還附了出處論文。表裡的八種寫法就是這 13 列去掉重複登記的結果——ME_R、ME_L、ME(R)、ME(L) 各被不只一套資料集登記過一次。
VFB 底下掛著一份本體論——這個詞本課第一次用,先定義:本體論是一份把概念、概念的正式名字、它的別名、以及概念與概念之間的關係(哪個是哪個的一部分、哪個是哪個的一種)全部寫下來的詞表,每個概念配一個永久編號。VFB 用的那一份叫 FBbt,是 FlyBase 維護的果蠅解剖本體論,前面那個 FBbt_00003748 就是它的編號。
「查詞不查字串」的直接後果是:同一個詞會在結果裡佔不只一列。向 VFB 的公開介面查 medulla、要 10 筆,回來的 10 列對應的其實只有 9 個詞——FBbt_00003748 佔了兩列:
| 回來的那一列長這樣 | 它其實是哪個詞 |
|---|---|
medulla (FBbt_00003748) | FBbt_00003748 ← 同一個 |
optic medulla (medulla) | |
medulla cortex (cell body rind of adult medulla) | FBbt_00100205 |
larval medulla (medulla anlage) | FBbt_00001935 |
讀法是這樣:括號外面是配對到的那個寫法,括號裡面是這個詞的正式名字或編號。第一列是拿正式名字配對到的,所以括號裡直接給編號;第二列是拿別名 optic medulla 配對到的,所以括號裡提醒你「它的正式名字是 medulla」。兩列,一個詞。
上表出自 out/search_medulla.json(scripts/vfb_probe.py,2026-09-14),該檔存的是完整的 10 列;表上只列出前四列與重複的那一組。
你在 VFB 上會看到兩種編號開頭,它們不是新舊版本,是兩種不同性質的東西:
FBbt_… 類別一個概念:「medulla 這種腦區」。它不是任何一張圖、不屬於任何一隻果蠅。定義、別名、跟其他概念的關係都掛在這裡。
VFB_… 個體一個具體的東西:「畫在 JRC2018Unisex 這顆標準腦上的那一塊 medulla」。它有影像、有座標、有授權、有來源資料集。
把同一塊腦區的兩邊並排,差別一眼看得出來:
| 類別 | 個體 | |
|---|---|---|
| 編號 | FBbt_00003748 | VFB_00102107 |
| 名字 | medulla | ME on JRC2018Unisex adult brain |
| 別名 | 13 筆 | 0 筆 |
| 授權 | 沒有 | CC-BY-NC-SA 4.0 |
| 對位到哪顆腦 | 沒有這個欄位 | JRC2018U ← 畫面上寫的是短名;它的編號是 VFB_00101567,見第 4 節 |
| 來源資料集 | 沒有 | JRC 2018 templates & ROIs |
VFB_… 個體去看,查類別是查不到的(它那一欄根本不存在)。實際做法是把編號接在 virtualflybrain.org/reports/ 後面貼進瀏覽器。這一點跟 PART 1 第 3 節那張表是同一件事的兩面:VFB 上沒有一句話蓋得住全站的授權。
medulla 這個類別,知識庫(VFB 背後存放所有資料的那個資料庫,PART 1 第 3 節這樣叫它)裡掛著 2,424 個個體。其中有名字的只有 12 個,另外 2,412 個的編號長成 VFB_internal…、沒有名字也沒有影像——那些是用來承載「某一個基因表現模式,跟某一隻果蠅的這塊腦區有重疊」這類陳述的節點。
有名字的 12 個裡,只有 4 個有影像,就是 medulla 被畫在四套標準腦上的那四塊;剩下 8 個是 ME_L、ME_R、ME(L)、ME(R) ——四套連線資料集各自登記的左右兩塊。
整個知識庫的尺度也是同一個道理:登記在案的東西共 741,026 個,其中類別 122,360 個、個體 618,665 個。個體比類別多五倍,因為同一個概念會被畫在很多顆腦上、被很多套資料集各自登記一次。
並排表的欄位與值,出自 out/ui/terminfo_v2_region.json(類別那一欄)與 out/ui/terminfo_v2_individual.json(個體那一欄)——兩支都是 scripts/browser_probe.py 在 2026-09-14 用真的瀏覽器拍的。個體數出自 out/terminfo_individual.json(該檔的個體數用知識庫的 Cypher 查詢算,不是用介面的 Examples 欄——那一欄實測不穩定,同一個編號連問五次會交替回三套與四套)。有影像的 4 個出自 out/counts_region.json 的 ListAllAvailableImages。全站三個總數出自 out/facets.json。以上皆由 scripts/vfb_probe.py 於 2026-09-14 抓取。全站總數會隨資料更新而變,這裡標出來是要給你一個量級,不是一個常數。
在檢視器(virtualflybrain.org/reports/<編號> 會帶你到那裡)打開任何一個東西的 Term Info 面板,你會看到三個欄位,三個都是它的名字:
| 欄位 | 是什麼 | 以 JRC2018Unisex 為例 |
|---|---|---|
Name | 正式名字。面板上顯示得最大的那一個 | JRC2018Unisex |
Symbol | 短名。站上的查詢標籤、以及 Aligned To 欄用的是這一個 | JRC2018U |
ID | 永久編號。網址裡的那一串 | VFB_00101567 |
十套 template 裡,有五套的 Symbol 跟 Name 不一樣;其中三套的 Symbol 連一個字都不出現在 Name 裡——拿著其中一個去站上找另一個,會找不到:
| ID | Name | Symbol |
|---|---|---|
VFB_00101567 | JRC2018Unisex | JRC2018U ← 互相看不出來 |
VFB_00200000 | JRC2018UnisexVNC | JRCVNC2018U ← 互相看不出來 |
VFB_00101384 | JRC_FlyEM_Hemibrain | JRCFIB2018Fum ← 互相看不出來 |
VFB_00017894 | adult brain template JFRC2 | JFRC2 |
VFB_00100000 | adult VNS template - Court2018 | COURT2018VNS |
其餘五套的 Symbol 與 Name 完全相同(Ito2014、Wood2018、L1 ssTEM、McKellar2020、Kuan2020) | ||
ID。名字會因為你站在哪一個欄位、哪一個介面而不同,編號不會。這也是為什麼 PART 1 的作業單每一步都給 reports/<編號> 的網址,而不是叫你去搜尋框打名字。
十套的 Name 與 Symbol 出自 out/template_names.json(scripts/vfb_probe.py,2026-09-14)。三個欄位在畫面上的位置與寫法,出自 out/ui/terminfo_v2_template.json 與 out/ui/terminfo_v3_template.json(scripts/browser_probe.py 拍攝,2026-09-14)。
VFB 有三個網站,各有一個搜尋框。它們不是同一個東西換了個樣子——送出去的查詢就不一樣。同一個字 medulla,三個框送出三種東西:
| 在哪個網站 | 搜尋框在哪 | 打 medulla,實際送出的查詢 | 畫面上排出多少列 |
|---|---|---|---|
www.virtualflybrain.org說明文件站 |
頁首 Search VFB… ⌘K 那顆按鈕,點下去才長出輸入框 |
medulla原樣送出,不展開 |
8 列詞,外加 2 列說明文件的頁面 |
v2.virtualflybrain.org舊版檢視器 |
頂列的放大鏡圖示 | (medulla OR medulla* OR *medulla OR *medulla*) |
1,466 列 |
v3.virtualflybrain.org新版檢視器 |
頂列的 Find something... 輸入框 |
medulla OR medulla* OR *medulla* |
506 列 |
virtualflybrain.org/reports/<編號>),PART 1 與本頁的作業單都是這樣寫的。真的要用搜尋框的時候(你手上只有名字、沒有編號),避開說明文件站那一個:三個框裡只有它不展開萬用字元,而且只向搜尋服務要 40 筆——下一節就是它漏掉東西的例子。另外兩個框都會展開,取回的詞多得多(打 medulla 時 v2 取回 494 個、v3 取回 150 個),代價是你要自己從一長串裡挑。
1,466 跟 506 這種數字,是兩層放大疊出來的。以 v3 為例:
m、ME、Med、optic medulla 各自被拆成一列。三個框送出的查詢與畫面列數,由 scripts/browser_probe.py 用真的瀏覽器各操作一次取得(2026-09-14),原始輸出在 out/ui/palette.json、out/ui/search_v2.json、out/ui/search_v3.json;每一支都附了它攔到的完整查詢網址,以及拿那個網址重問一次得到的詞數,兩者並排存著。
JRC2018Unisex 找不到 JRC2018Unisex把前面幾節合起來,就解得開這門課最反直覺的一個現象。到說明文件站的搜尋框,打上這顆標準腦的正式名字 JRC2018Unisex——完全正確、一個字不差——畫面給你 8 列,每一列都長成 ME on JRC2018Unisex adult brain 這樣,而 JRC2018Unisex 本身不在裡面。
五件事疊在一起,缺一件都不會發生:
| 發生了什麼 | 為什麼這會害到你 | |
|---|---|---|
| ① | 這個框向搜尋服務要 40 筆 | 排在 40 名之後的,等於不存在 |
| ② | 送出之前,你打的字一律被轉成小寫 | 大小寫不在你手上,怎麼打都一樣 |
| ③ | 同一組條件,全小寫時目標排第 47 名(大小寫保留的話是第 1 名) | 第 47 名 > 40,根本沒被取回來 |
| ④ | 排在它前面的 46 列,是它自己的分區 | 每塊分區的名字裡都帶著母體的名字,比分因此比母體高 |
| ⑤ | 畫面只排得下 8 列 | 看到的全是分區 |
第 ③ 件事的差距不是勉強落敗:同一組條件、同一個字串,只差大小寫——
打 JRC2018U。那是它的 Symbol(第 4 節那張表的第一列)。用它去查,符合的只有一個,畫面上就一列,正是要找的那顆標準腦。
Symbol。第二,更省事的作法是根本不用搜尋框:只要知道編號,直接開 virtualflybrain.org/reports/<編號>。PART 1 的作業單每一步都這樣做,就是為了避開這一整節。
名次與分數出自 out/search_case.json(scripts/vfb_probe.py,2026-09-14,兩種大小寫各問一次)。「要 40 筆、顯示 8 列」與各種打法的結果出自 out/worksheet.json 的 docsite_search_box。「送出前一律轉小寫」與畫面上那 8 列的內容,出自 out/ui/palette.json——那一支是用真的瀏覽器打字、攔下送出的查詢、再把畫面上的列逐列記下來的(scripts/browser_probe.py,2026-09-14)。
四步,不用安裝也不用登入。前三步都直接給網址,貼到瀏覽器就會開在 VFB 的檢視器(v2.virtualflybrain.org)裡。
Name 欄,應該寫著 medulla [FBbt_00003748](編號在方括號裡)。Alternative Names 欄。exact synonym: ME (BRAIN_NAME_ABV, Ito et al., 2014)。找出 第 1 節那張表裡的 ME_R,確認它旁邊標的是 BANC 與 FlyWire 兩套資料。License(寫著 CC-BY-NC-SA_4.0)、Source(寫著 JRC 2018 templates & ROIs)與 Aligned To(寫著 JRC2018U,是短名不是編號);而上一頁有的 Alternative Names,這一頁沒有。這就是第 3 節那張並排表,在畫面上的樣子。Classification 欄:它寫著 medulla,也就是上一步那個類別——個體會指回自己的類別,你可以從這裡走回去。Search VFB… ⌘K 按鈕,打 medulla;再到 v3.virtualflybrain.org,用頂列的 Find something... 打同一個字。medulla (FBbt_00003748)。第 5 節解釋了為什麼長度會差這麼多——但不管差多少,那個編號是同一個,而編號才是你要的東西。這一節指名的每一個欄位名與它的現值,都由 scripts/browser_probe.py 在 2026-09-14 用真的瀏覽器把這四步做過一遍拍下來,原始輸出在 out/ui/(terminfo_v2_region.json、terminfo_v2_individual.json、palette.json、search_v3.json)。
v2.virtualflybrain.org 的欄位名,而 reports/<編號> 目前就是轉到那裡。新版的 v3.virtualflybrain.org 有幾欄名字不同:資訊欄分成 General Information 與 Metadata 兩區,授權那一欄叫 Licenses(v2 叫 License),現成查詢那一區叫 Queries(v2 叫 Query For)。Name、Symbol、Aligned To 三欄兩版同名。
out/ 底下的探針輸出