Hashtag Neural Lab

Sinek simülasyonu, canlı nöron aktivitesi ve yönelme eğitimi için yerel laboratuvar.

Tek ekranda HD MuJoCo simülasyonu, MaleCNS anatomisinden türetilen devre, bağlantı inceleme, eğitim ilerlemesi ve fizik testleri. Nörona veya bağlantıya tıklayın; kaynağını ve modeldeki değerlerini görün. Eğitiminizi ayrı kaydedip seçtiğiniz modeli yürüyüşte veya uçuşta çalıştırın.

Bu repo büyük beyin verilerini, kişisel eğitimleri ve Python ortamlarını içermez. Küçük uygulama paketi dağıtılır. İlk açılış ekranı ortamları kurar, verileri resmi kaynaklardan indirir ve ilk modeli sizin bilgisayarınızda eğitir. API anahtarı gerekmez; kişisel eğitimler internete yüklenmez.

Tam beyin emülasyonu değildir. MaleCNS'ten türetilen 7.075 nöronluk basitleştirilmiş yönelme ağıdır. Yürüyüşte FlyGym bacak kontrolcüsü, uçuşta FlyBody hazır kanat politikası kullanılır. Eğitim yön kararını değiştirir; biyolojik öğrenme veya kanat eğitimi değildir. Bilimsel kapsam.

Hızlı başlangıç

Doğrulanan tam platform Apple Silicon macOS. Linux deneysel; Windows yerel simülasyonu desteklenmez. Python 3.11+, pipx ve uçuş için Git gerekir. Bilimsel kurulum için 15 GiB boş disk, en az 16 GB RAM, tercihen 32 GB RAM ile planlayın. Bunlar kapasite önerileridir; 16 GB cihaz performansı ölçülmüş değildir. Ayrıntılı gereksinimler ve Linux notları.

macOS'ta Homebrew kullanıyorsanız:

brew install pipx git
pipx ensurepath

Terminali yeniden açın. Sonra aşağıdaki yollardan birini seçin.

A — Repoyu klonlayın

git clone https://github.com/mertozbas/fruitfly-hashtag.git
cd fruitfly-hashtag
pipx install .
fruitfly ui

B — GitHub'dan doğrudan pipx ile

pipx install git+https://github.com/mertozbas/fruitfly-hashtag.git
fruitfly ui

C — PyPI sürümüyle

PyPI yayını tamamlandıktan sonra aynı paket aşağıdaki şekilde kurulur. Paket bulunamazsa GitHub yolunu kullanın; GitHub ve PyPI yayını ayrı işlemlerdir.

pipx install fruitfly-hashtag
fruitfly ui

Tarayıcıda http://127.0.0.1:8766/ açılır. Açılmazsa adresi kendiniz girin. Terminali açık tutun; Ctrl+C ile durdurun.

  1. Beyni indir ve kur düğmesine basın. Python 3.12, bilimsel paketler, yaklaşık 1,11 GB MaleCNS tablosu ve seçilmiş geometriler hazırlanır. İndirmeler SHA256 ile doğrulanır. İlk 3.000 adımlık model yerelde eğitilir; kısa bir gerçek fizik / HD render kontrolü yapılır. Bu, başarı oranı testi değildir.
  2. İsterseniz Uçuşu kur seçin. Ayrı Python 3.11 / TensorFlow ortamı ve yaklaşık 19,4 MB resmi FlyBody arşivi indirilir. Python paketleri ayrıca yer kaplar.
  3. Laboratuvarı aç düğmesine basın. Aynı adres canlı UI'a dönüşür.
  4. Davranış ve Simülasyondaki model seçin; hedefi değiştirip izleyin. Üstteki Rehber bağlantısı kılavuzu çevrimdışı açar.

Sonraki açılışlarda fruitfly ui yeterlidir. Kurulum ekranına dönmek için önce Ctrl+C, sonra fruitfly ui --setup çalıştırın.

İlk eğitiminizi yapın

  1. Davranış → Kokuya yönelme seçin.
  2. Hedefi X=12, Y=4 mm yapıp Hedefi uygula düğmesine basın.
  3. Adım=3000, Tohum=42 ile başlayın. Adım ağırlık güncelleme sayısıdır; tohum tekrarlanabilir rastgele başlangıcı belirler.
  4. Eğitimi başlat seçin. Önceki model ayrı korunur; canlı simülasyon eğitim boyunca seçili modeli kullanmaya devam eder.
  5. Öğrenme kaybı ve ardından 6 fizik koşulundaki test hesaplanır. Tamamlanmasını bekleyin; düşük kayıp tek başına başarılı hareket demek değildir.
  6. Yeni modeli simülasyona al düğmesine basın.
  7. Beyin panelinde Δ Ağırlık seçin. Mevcut bağlantıların anatomik başlangıca göre değişen çarpanlarını görün. Yeni anatomik bağlantı üretilmez.
  8. Model menüsünden eski ve yeni koşuları aynı hedefte karşılaştırın.

Her yeni eğitim aynı anatomik başlangıçtan başlar; seçili modelin kaldığı yerden devam etmez. Hedef X/Y canlı değerlendirme içindir; eğitim veri kümesini değiştirmez. Yeni koku türü, serbest ödül fonksiyonu veya kullanıcı veri kümesi tanımlama henüz yoktur.

Uçuş kuruluysa Uçuş · beyin bağlı seçip aynı akışı kullanın. Eğitim sonrası bu kez uçuş hedefleri değerlendirilir. Sinek havada başlar; kalkış, iniş ve irtifa öğrenimi bu sürümün kapsamı dışındadır. Tam eğitim rehberi.

Rehber dizini

Konu Kılavuz
Gereksinimler, pipx, ilk kurulum, disk ve port Kurulum
Mouse, metrikler, nöron ve bağlantılar UI kullanımı
Eğitim, uçuş, karşılaştırma ve bilimsel sınırlar Eğitim
URL'ler, boyutlar, doğrulama, veri dosyaları Veriler ve modeller
Hatalar, güncelleme, yedekleme, kaldırma Sorun giderme
Geliştirme, build ve yayın Geliştirici rehberi
Kaynaklar ve ayrı lisanslar Üçüncü taraf bildirimleri

Kılavuz paketin içindedir: fruitfly docs. Mevcut görevler tüm kaynaklar ve ortamlar hazırlandıktan sonra internetsiz çalışır; yeni indirme/güncelleme internet ister.

Veriler nerede?

Varsayılan ~/.fruitfly-hashtag/ dizini repo ve pipx ortamından ayrıdır:

~/.fruitfly-hashtag/
├── docs/                   # Çevrimdışı rehber ve Markdown
├── data/                   # Resmi MaleCNS ve FlyBody indirmeleri
├── models/odor_navigation/ # Yerelde oluşturulan başlangıç devresi/modeli
├── models/lab_runs/         # Her kişisel eğitim ayrı klasör
├── artifacts/              # Türetilen geometri ve değerlendirme çıktıları
├── .venv/                  # Python 3.12: yürüyüş/eğitim
├── flight/.venv/           # Python 3.11: isteğe bağlı uçuş
└── .runtime/               # Kurulum ve çalışma günlükleri

Farklı disk için her komutta aynı --home değerini, komut adından önce yazın. Git deposunu veri dizini olarak vermeyin.

fruitfly --home /Volumes/LabDisk/neural-lab ui
fruitfly --home /Volumes/LabDisk/neural-lab doctor

Paket kaldırılınca veya yükseltilince kişisel eğitimler silinmez. Yedekleme ve güncelleme.

Lisans ve kaynaklar

Orijinal kod MIT. MaleCNS verisi CC BY 4.0, FlyBody kodu Apache 2.0, Figshare politika/veri arşivleri GPL 3.0+, vendored Three.js MIT lisansındadır. Dış veriler uygulamanın MIT lisansına dönüşmez; veri ve politikalar wheel'e dahil edilmez. Atıflar: THIRD_PARTY_NOTICES.md.

MaleCNS · FlyGym · FlyBody · Politika/veri arşivleri

Kurulum

Gereksinimler

İlk aşama küçük UI/başlatıcı paketi, ikinci aşama bilimsel ortamdır. pipx install yalnızca ilk aşamayı yapar; beyin verisi indirmez.

Bileşen Gereksinim
Başlatıcı Python 3.11+ ve pipx
Doğrulanan platform Apple Silicon macOS; geliştirme doğrulaması M4 Max üzerinde
Linux Deneysel; x86_64, OpenGL/EGL veya OSMesa sürücüleri gerekir; tam Linux testi yapılmadı
Intel Mac Yürüyüş doğrulanmadı; mevcut TensorFlow uçuş kilidi desteklenmiyor
Windows Yerel bilimsel kurulum desteklenmez; WSL2/Linux deneysel, HD render garantisi yok
RAM En az 16 GB ile planlayın, 32 GB önerilir; tam bağlantı matrisi hazırlanır
Disk En az 15 GiB boş alanla başlayın; uv önbelleği ve eğitimler ek alan kullanır
İnternet İlk kurulum, güncelleme ve yeni kaynak indirme için
Tarayıcı WebGL destekli güncel masaüstü tarayıcı
Git Klonlama ve uçuş ortamındaki sabitlenmiş FlyBody kaynağı için

Python 3.12/3.11'i ayrı ayrı elle kurmanız gerekmez. Paketle gelen uv gerekirse bunları indirir; sistem Python'unuzu değiştirmez. uv Python yönetimi. Yönelme eğitimi Apple Silicon'da MPS, diğer ortamlarda CPU kullanır. GPU zorunlu değildir; otomatik CUDA eğitim yolu yoktur. Uçuş ayrı TensorFlow ortamındadır.

1. pipx'i hazırlayın

macOS/Homebrew:

brew install pipx git
pipx ensurepath

Ubuntu/Debian:

sudo apt update
sudo apt install pipx git
pipx ensurepath

Terminali yeniden açın; pipx --version çalışmalı. Eski Python seçilirse kuruluma --python python3.12 ekleyin. pipx rehberi. sudo pip install gerekmez; uygulama kullanıcı hesabında çalışır.

2. Uygulamayı kurun

pipx install git+https://github.com/mertozbas/fruitfly-hashtag.git
fruitfly --version
fruitfly ui

Klonlanmış repoda pipx install . kullanın. PyPI sürümü yayımlandığında pipx install fruitfly-hashtag aynı işi yapar. İndirilen wheel de kurulabilir: pipx install ./fruitfly_hashtag-0.2.0-py3-none-any.whl.

http://127.0.0.1:8766/ açılır. İlk açılışta kurulum ekranı gelir; veri olmadan çalışır. Büyük indirme düğmeye bastıktan sonra başlar. Terminali açık tutun.

3. Beyni ve yürüyüşü kurun

Beyni indir ve kur sırasıyla:

  1. Kilitli Python 3.12 paketlerini ayrı .venv içine kurar.
  2. MaleCNS v1.0 anotasyon, nörotransmiter ve bağlantı tablolarını indirir.
  3. Sabit kaynak sürümü, boyut ve SHA256 özetlerini doğrular.
  4. Keşif matrisini, 28 seçilmiş SWC iskeletini ve anatomi yüzeyini hazırlar.
  5. ORN → ALPN → Kenyon → MBON devresini oluşturur.
  6. Başlangıç modeli yoksa 3.000 adım / tohum 42 ile yerelde eğitir.
  7. UI geometrisini üretir; kısa gerçek fizik ve 1920×1080 render kontrolü yapar.

Bu başlangıç kontrolü altı hedeflik başarı testi değildir. İlk modelde fizik skoru henüz boş olabilir; UI'dan yeni eğitim başlatınca görev testi de yapılır.

Günlük ekranda ve .runtime/setup.log içinde görünür. İndirme bittikten sonra matris hazırlığı CPU/RAM kullanmaya devam eder; süre donanıma ve internete bağlıdır. Bağlantı kesilirse aynı düğmeyle tekrar deneyin. MaleCNS .part dosyaları mümkünse HTTP Range ile sürdürülür. Tam dosyalar yeniden indirilmeden doğrulanır. Bozuk tamamlanmış dosyanın üzerine sessizce yazılmaz; hata konumunu gösterir.

4. İsteğe bağlı uçuş

Ana kurulum bitince Uçuşu kur düğmesi açılır. Python 3.11 / TensorFlow 2.15.1 ayrı flight/.venv içine kurulur. FlyBody'nin sabit commit'i GitHub'dan, politika ve referans arşivleri Figshare'den alınır. Politika yüklenir ve kısa fizik kontrolü yapılır. Yürüyüş ortamı değişmez; kanat çırpmayı yeniden eğitmezsiniz. Yaklaşık 3 GB'lık resmi yürüyüş veri kümesi bu uçuş kurulumu için gerekmez.

5. Laboratuvar ve sonraki açılışlar

Laboratuvarı aç aynı adresi canlı UI'a dönüştürür. Sonraki oturum: fruitfly ui. Otomatik tarayıcı istemiyorsanız fruitfly ui --no-browser; port doluysa fruitfly ui --port 8770. Kurulum yöneticisine dönmek için Ctrl+C, sonra fruitfly ui --setup. Aynı dizinde ikinci bir UI/kurulum eşzamanlı başlatılamaz.

Terminalden kurulum

fruitfly setup walking
fruitfly setup flight
fruitfly doctor
fruitfly ui

Birlikte: fruitfly setup all. Durdurmak: Ctrl+C. doctor dosya/ortam varlığını kontrol eder; bilimsel geçerlilik testi yapmaz.

fruitfly --home /Volumes/LabDisk/neural-lab setup all
fruitfly --home /Volumes/LabDisk/neural-lab ui --port 8770

Tüm komutlarda aynı veri dizinini kullanın. Alternatif FRUITFLY_HOME ortam değişkenidir. Sistem HOME değerini değiştirmeyin. Veri dizini Git deposu olmamalı; yönetilen kod buraya sürüm güncellemelerinde yerleştirilir, veriler korunur.

UI kullanımı

Sağ üstte tam ekranı açar. Rehber ayrı sekmede çevrimdışı kılavuzu açar. Masaüstü düzeni tek ekran için tasarlanmıştır.

Deney seçimi

Davranış menüsünde kokuya yönelme ve kuruluysa beyne bağlı uçuş aktiftir. “Hazırlık” yazan kaçınma, görsel yönelme ve arazi uygulanmış eğitimler değildir. Simülasyondaki model hangi kayıtlı ağın çalıştığını gösterir; seçim eğitim başlatmaz.

Hedef X/Y milimetredir, sınırı ±30 mm. Hedefi uygula yeni bölüm başlatır. Her serbest hedefte başarı garanti edilmez; kısa uçuşta gerideki hedefe erişilemeyebilir.

Simülasyon ve mouse

İşlem Kontrol
Döndür Sol tuşla sürükle
Kaydır Sağ tuşla sürükle
Yakınlaş/uzaklaş Tekerlek / trackpad kaydırma
Sineğe odaklan Gövde kamera seçeneği
Hedefi ve ortamı gör Arena kamera seçeneği
Anı incele Duraklat; kamerayı kullanmaya devam et

Görüntü MuJoCo'da 1920×1080 üretilir; tarayıcı paneli daha küçük olabilir. HD gerçek zamanlı hız garantisi değildir. Uçuş yavaş çekimdir; simülasyon zamanı duvar saatinden farklı ilerler. Kanat hareketi hazır FlyBody politikasından gelir.

Beyni okumak

Aktivite, son beyin kararındaki hesaplanan nöron yanıtıdır; biyolojik ölçüm değildir. Duraklatınca son değerler sabit kalır. 7.075 yanıt hesaplanır; gerçek soma konumu olan 4.826 nöron 3B'de çizilir. Eksik konumlar uydurulmaz.

Sade 520 temsilci bağ, Nöronun bağları seçili nöronun bağları, Tüm bağlar konumu bilinen 82.747 model bağı gösterir. Son seçenek daha yoğundur. Parlaklık ve sinyal eşiği yalnızca görünümü değiştirir, çalışan ağı değiştirmez.

Düz çizgiler soma–soma bağlantı gösterimidir, akson geometrisi değildir. Arka plandaki 28 dallanan SWC gerçek anatomidir; yalnızca üçü çalışan alt devreye dahildir. Hesaplanmayan iskeletler gri kalır.

Nörona/bağa tıklayın: bodyId, sınıf, kaynak anotasyonları, temaslar ve seçili modeldeki katsayılar ayrıntı panelinde açılır. JSON indirme seçili kaydı dışa aktarır; bütün checkpoint'i indirmez.

Δ Ağırlık anatomik başlangıca göre katsayı değişimidir; iki eğitimin birbirine farkı değildir. İki modelde aynı bağlantıyı ayrı ayrı seçerek karşılaştırabilirsiniz.

Metrikler

Gösterge Anlamı
Hedef uzaklığı Hedefe uzaklık (mm)
Hız Gövde hızı (mm/s)
Simülasyon zamanı Fizikte geçen süre
Ödül Görevde raporlanan ilerleme; bu sürümde eğitim algoritmasının ödül fonksiyonu değildir
Sol/sağ koku Gerçek anten konumlarından sentetik alanda alınan yoğunluk
Motor komutu Yürüyüşte CPG sürüşü, uçuşta sınırlanmış yön hızı
Doğrulama MSE Ayrı örneklerde öğretmen yön komutuyla model çıktısının ortalama kare farkı
Fizik testi Seçili görevin son testindeki başarı sayısı; sonuç yoksa boş
İrtifa / kanat frekansı Uçuş fiziği; ayrı öğrenilmiş beyin çıktıları değildir
Aktivite haritası X/Z izdüşümünde model yanıtı; sıcaklık ölçümü değildir
Saydam kesit Gerçek konumların Y dilimi; X-ray veya tıbbi tarama değildir

ORN / ALPN / Kenyon / MBON hücre grupları ve hesaplama aşamalarıdır; anatomik bölge sınırlarının segmentasyonu olarak yorumlamayın.

Eğitim ve deney rehberi

İlk yürüyüş eğitimi

Akış: başlangıcı izle → eğit → fizik testini bekle → yeni modeli yükle → karşılaştır.

  1. fruitfly ui açın. Kokuya yönelme → Eğitim öncesi modelini seçin.
  2. Hedefi X=12, Y=4 yapıp Hedefi uygula seçin; başlangıç hareketini izleyin.
  3. Adım=3000, Tohum=42 yazıp Eğitimi başlat düğmesine basın.
  4. MSE grafiğini izleyin. Aynı anda bir iş çalışır; adım aralığı 200–10.000'dir. Eğitim + değerlendirme 600 saniyeyle sınırlıdır. Yavaş cihazda daha az adım deneyin.
  5. Eğitimden sonra altı ayrı fizik koşulu değerlendirilir. Tamamlandı durumunu bekleyin; “değerlendiriliyor” henüz bitmiş değildir.
  6. Yeni modeli simülasyona al seçin. Başka hedefleri deneyin, eski modeli menüden geri alarak karşılaştırın.
  7. Δ Ağırlık ile değişen katsayıları, Aktivite ile canlı yanıtı inceleyin.

3000/42 başlangıç önerisidir, başarı garantisi değildir. Tohum tekrarlanabilirliği artırır; cihaz/BLAS/MPS farklılıkları sayısal sonucu değiştirebilir.

Ne öğreniliyor?

İki antenin sentetik koku yoğunluğu giriş olur. ORN → ALPN → Kenyon → MBON gerçek MaleCNS topolojisine bağlanır. Program koku gradyanı örnekleri üretir; öğretmen kuralı sağ/sol yön komutu verir. Ağ bunları denetimli taklit öğrenmesiyle öğrenir.

Mevcut KC→MBON bağlarının sınırlı çarpanları ve yapay motor okuması değişir. Nöron kimlikleri, bağlantıların varlığı, diğer anatomik katmanlar ve gövde kontrolcüleri korunur. Yeni anatomik kenar üretilmez. “Beynin yeni hali” burada yeni katsayıları taşıyan checkpoint'tir.

Her iş 2.048 sentetik eğitim, ayrı 512 doğrulama örneği kullanır. Hedef X/Y bu veri kümesini değiştirmez. Her yeni iş aynı anatomik başlangıçtan başlar; seçili checkpoint'ten fine-tuning yapılmaz. Yeni koku kimliği, ödül tasarımı veya kendi veri kümenizi eklemek kod değişikliği ve yeni değerlendirme gerektirir.

Uçuş yönelmesi

  1. Uygulamayı Ctrl+C ile durdurup fruitfly setup flight çalıştırın. Alternatif: fruitfly ui --setup ekranında Uçuşu kur.
  2. Laboratuvarda Uçuş · beyin bağlı seçin. İlk geçişte yürüyüşte seçili ağ aktarılır; model menüsünden başka kayıt seçebilirsiniz.
  3. X=25, Y=8 gibi ileri bir hedef deneyin. Sinek havada başlar.
  4. Adım/tohum girip Yönelme ağını eğit seçin. Aynı ağ eğitilir; bu kez altı uçuş koşulunda test edilir.
  5. Yeni modeli yükleyin; aktivite, anten, yön, irtifa ve kanat telemetrisini birlikte okuyun.

Zincir: anten → MaleCNS alt ağı → MBON yön okuması → sınırlı yön referansı → hazır FlyBody kanat politikası → MuJoCo fiziği → yeni anten konumu. Eşit koku girdisindeki nötr değer çıkarılır; yön kazancı 60, sınırı ±8 rad/s'dir. Beyin 10 ms, kanat kontrolü 0,2 ms, fizik 0,05 ms adımlarıyla çalışır. Kanat politikası, irtifa, kalkış ve iniş bu eğitimle öğrenilmez. Bir yürüyüş checkpoint'inin uçuşta başarısı varsayılmaz; görev testi ayrı okunur.

Sonucu değerlendirme

MSE azalması sentetik komutların daha iyi taklit edildiğini gösterir. Fizik testi bunun gövdede işe yarayıp yaramadığına dair küçük bir sınamadır. 6/6 bile genel başarı oranı değildir. Yeni cihazda veya hedefte aynı sonuç garanti edilmez.

Test Koşullar
Yürüyüş (12,±4), (10,±5), (14,±3) mm; tohumlar 10–15
Uçuş (22,±6), (28,±9), (24,±10) mm; tohumlar 101–106

Serbest hedef bu sabit listeyi değiştirmez. Küçük karşılaştırma için adım sayısını koruyup tohumları 42/43/44 deneyin; MSE, başarı, düşme ve son uzaklığı birlikte kaydedin. Yalnızca en iyi koşuyu genel başarı diye sunmayın.

Kayıtlar

UI işleri models/lab_runs/run-<UTC zaman damgası>/ içine ayrı kaydolur:

Dosya İçerik
run.json Kimlik, görev, adım, tohum, iş durumu
trained.npz, untrained.npz Eğitim sonrası/öncesi ağırlık ve motor okuması
circuit.json, body_ids.npz, layer*.npz Devre kimliği ve anatomik katmanlar
training.json MSE geçmişi ve değişen katsayı sayısı
evaluation.json Göreve özgü fizik sonuçları
training.log, tensorboard/ Günlük ve eğitim olayları

Taşırken bütün koşu klasörünü ve kaynak sürümünü koruyun. UI uyumlu complete koşularını listeler. Uygulama açıkken dosyaları elle değiştirmeyin. Durdurma veya kapanma önceki başarılı koşuları silmez; yarım iş başarılı model olarak sunulmaz. Yarım eğitim adımından otomatik devam edilmez; yeni iş başlatabilirsiniz.

Bilimsel sınırlar

Anatomi gerçektir; aktivite hesaplama modelinin yanıtıdır. Fizyolojik uyarıcı/ baskılayıcı işaret, tekrarlayan dinamik, spike, gecikme, reseptör/koku kimliği ve biyolojik plastisite modellenmez. İskelet örnekleri tam sinir sistemi değildir. Isı/kesit görünümleri hesaplanan yanıtın görselleştirmesidir. Bu laboratuvar bu sınırlı varsayımlarla deney yapmak içindir; yaşayan sineğin bütün beyninin veya biyolojik öğrenmesinin yeniden üretildiğini iddia etmez.

Veriler ve modeller

“Beyni indirmek” ne demek?

Tek bir 3 GB hazır beyin checkpoint'i indirilmez. Önce MaleCNS'in anatomik bağlantı verisi alınır; sonra bu veriden basitleştirilmiş devre oluşturulup yönelme katsayıları yerelde eğitilir. FlyBody uçuş için ayrıca hazır motor politikası indirir. Bu üç kavramı ayrı düşünün: anatomi / yönelme modeli / gövde politikası.

Neler indirilir?

Kaynak Boyut Kullanımı
body-annotations-male-cns-v1.0-minconf-0.5.feather 14.483.314 bayt Nöron kimlikleri, sınıflar ve konumlar
body-neurotransmitters-male-cns-v1.0.feather 43.282.834 bayt Hücre düzeyi nörotransmiter anotasyonu; bu model fizyolojik işaret kullanmaz
connectome-weights-male-cns-v1.0-minconf-0.5.feather 1.051.241.946 bayt Anatomik temas sayıları
28 SWC + JRCFIB2022M yüzeyi Seçime bağlı ek geometri Gerçek anatomi görünümü
FlyGym HD mesh Ek render varlıkları 1920×1080 ayrıntılı gövde
FlyBody trained-fly-policies.zip 6.537.720 bayt Hazır uçuş motor politikası; arşiv başka resmi politikalar da içerir
FlyBody datasets_flight-imitation.zip 12.880.076 bayt Uçuş referansları ve kanat örüntüsü

Boyutlar sıkıştırılmış kaynak dosyaları içindir. Python, TensorFlow, Torch, bilimsel paketler, çıkarılan arşivler, türetilen matrisler ve uv ortak önbelleği bunlara ek yer kaplar. Yaklaşık 3 GB'lık resmi yürüyüş kümesi, 2,7 GB sinaps nörotransmiter tablosu ve ham elektron mikroskobu hacimleri indirilmez.

MaleCNS indirme URL'leri, nesne generation numaraları, boyutlar ve SHA256 değerleri pakette fruitfly_lab/sources.json, kaynak repoda src/fruitfly_lab/sources.json içindedir. İndirilince data/male-cns-v1.0/manifest.json yazılır. Kaynaklar resmi MaleCNS indirme sayfasındandır. SWC dosyaları indirildikleri nesne sürümüne sabitlenir, CRC32C/SHA256 doğrulanır.

FlyBody varlıkları Figshare v4 dosya kimlikleri 44815195 / 51196859 ile alınır. Boyut, sabit SHA256, varsa kaynak MD5 ve ZIP bütünlüğü kontrol edilir; çıkarma yolları arşiv dışına çıkamaz. Kayıt data/flybody/manifest.json içindedir.

Türetilenler

Ham tabloda 151.856.684 satır vardır. Keşif filtresi superclass dolu 166.700 kayıt ve her iki ucu bu kümede olan 25.582.938 yönlü kenarı tutar. Bu, makaledeki sayımı birebir yeniden üretme iddiası değildir. Sparse matris satırı kaynak, sütunu hedeftir. Pozitif anatomik temas sayısı fizyolojik uyarıcı/baskılayıcı işaret değildir.

Yönelme alt devresi: 2.228 ORN, 686 ALPN, 4.064 Kenyon, 97 MBON. Devre kimliği ve katman hash'leri checkpoint yüklerken doğrulanır. UI'nin konumsuz nöronlar ve temsili bağlantı çizimi sınırları kullanım rehberindedir.

Depolama ve gizlilik

data/, models/, artifacts/, ortamlar ve günlükler kişisel çalışma dizinindedir. Bunlar Git ve Python wheel/sdist paketine dahil edilmez. İndirme dış sunuculara standart HTTP istekleri yapar; kişisel model/eğitim yükleme veya telemetri servisi yoktur. UI yalnızca 127.0.0.1 dinler; kimlik doğrulamalı çok kullanıcılı bir servis değildir. LAN'a veya internete açmak bu dağıtımın hazır bir özelliği değildir.

Sorun giderme, bakım ve yedekleme

Komut bulunamıyor

fruitfly: command not found: pipx ensurepath çalıştırıp terminali yeniden açın. pipx list içinde fruitfly-hashtag görünmeli. pipx install hatası için Python sürümünü kontrol edin; Python 3.11+ gerekir. Paket PyPI'de bulunmuyorsa README'deki GitHub veya yerel wheel yolunu kullanın.

Port veya çalışma dizini meşgul

8766 doluysa ikinci sunucu mevcut oturumu durdurmaz. Yeni dizinde yeni port seçin: fruitfly --home ~/neural-lab-second ui --port 8770. Aynı veri dizini kilitliyse önce o dizini kullanan terminalde Ctrl+C ile durdurun. Kilit dosyasını silmek gerekmez; işletim sistemi süreç bitince kilidi bırakır.

İndirme kesildi / hash hatası

İnternet ve boş diski kontrol edip aynı kurulum düğmesini tekrar kullanın. MaleCNS yarım indirmeleri mümkünse devam eder. Tam dosya SHA256 uyuşmuyorsa hata konumunu gösterir; uygulama üzerine yazmaz. O dosyayı yedek bir konuma taşıyıp kurulumu tekrar başlatın. Manifest hash'ini dosyaya uydurmak için değiştirmeyin. Nesne generation kaynaktan kaldırıldıysa geliştiricinin kaynak manifestini güncellemesi gerekir; program sessizce başka veri sürümüne geçmez.

Siyah görüntü / OpenGL / EGL hatası

Önce terminal ve .runtime/setup.log içindeki son hata; uçuşta ayrıca .runtime/flight-worker.log. macOS'ta masaüstü oturumu ve Apple Silicon doğrulanan yoldur. Linux otomatik MUJOCO_GL=egl kullanır; uygun sistem sürücüleri gerekir. Yazılımsal render isteyen Linux kurulumunda OSMesa sistem kütüphanesi kuruluysa MUJOCO_GL=osmesa fruitfly ui denenebilir. Bunlar Linux'ta doğrulanmış performans vaadi değildir. Tarayıcı WebGL kapalıysa beyin paneli de çizilemez.

Kurulum bitti ama UI açılmadı

fruitfly doctor ile eksikleri görün. Bu yalnızca varlık kontrolüdür; çalışma başarısını kanıtlamaz. Terminaldeki Python/render hatasını düzeltin, sonra fruitfly ui --setup içinden kurulum düğmesini yeniden kullanın. Tam dosyalar doğrulanır ve mevcut başlangıç modeli yeniden eğitilmeden korunur.

Uçuş açılamıyor

Önce fruitfly setup walking, sonra fruitfly setup flight. Git'in kurulu olduğunu kontrol edin. Python 3.11 uçuş ortamıyla Python 3.12 yürüyüş ortamını karıştırmayın; birine elle farklı NumPy/TensorFlow sürümü kurmayın. Intel Mac uçuşu desteklenmez. Hazır politika yükleme kontrolü kanat eğitimi değildir.

Eğitim başarısız / listede yeni model yok

UI işinin son durumunu ve models/lab_runs/<koşu>/training.log dosyasını okuyun. complete olmadan yeni model başarılı sonuç olarak sunulmaz. 600 saniye sınırında yavaş cihazda daha az adım deneyin. Bellek yetersizse başka ağır uygulamaları kapatın. Önceki başarılı model menüde kalır; yarım koşu kaldığı adımdan devam etmez.

Güncelleme

Önce bütün Neural Lab oturumlarını ve eğitimleri durdurun; aşağıdaki yollardan kurduğunuz kaynağa uygun olanı kullanın:

pipx upgrade fruitfly-hashtag

Klonlanmış repo için git pull, sonra repo içinde pipx install --force .. Kaynak değiştirmek için pipx install --force git+https://github.com/mertozbas/fruitfly-hashtag.git. Ardından fruitfly ui --setup ile ortamların kilitli sürümlerini tekrar eşitleyin. Yönetilen kod güncellenir; data/, models/, kişisel değerlendirmeler silinmez. Yönetilen bir kod dosyasını elle değiştirdiyseniz üzerine yazmak yerine hata verir; değişikliği yedekleyin veya yeni --home seçin.

Yedekleme ve geri dönme

UI kapalıyken tüm ~/.fruitfly-hashtag/ klasörünü başka diske kopyalamak en kolay yedektir. En az models/, data/ manifestleri, .fruitfly-bundle.json ve ilgili artifacts/ sonuçlarını koruyun. Farklı bilgisayara taşırken .venv klasörlerini taşımak yerine yeni makinede kurulumu yeniden yapın. Koşu klasörlerini bütün taşıyın.

Eski uygulama sürümüne dönmek için kayıtlı wheel'inizi pipx install --force ./fruitfly_hashtag-0.2.0-py3-none-any.whl biçiminde kurun. Gelecekte devre şeması değişirse checkpoint uyumluluğunu ayrıca kontrol edin; eski veri dizinini yedekte tutun.

Kaldırma

pipx uninstall fruitfly-hashtag

Bu komut çalışma dizininizi silmez. Verileri kaldırmak isterseniz önce eğitimleri yedekleyin, sonra seçtiğiniz --home klasörünü dosya yöneticisinden kaldırın. uv ortak önbelleği başka projelerce kullanılabilir; tüm önbelleği gelişigüzel silmeyin.

Geliştirme ve yayın

Mimari

src/fruitfly_lab/ hafif CLI ve kurulum ekranıdır; yalnızca uv bağımlılığı vardır. Kök Python dosyaları, mevcut FastAPI + MuJoCo uygulamasıdır. ui/ vendored Three.js kullanan statik arayüzdür; Node build adımı gerekmez. environments/walking/ Python 3.12 bilimsel ortamının ayrı pyproject.toml ve uv.lock dosyalarını tutar. flight/ Python 3.11 ortamıdır; TensorFlow/NumPy uyumluluğu için ayrıdır.

Wheel, bu kaynak dosyalarının açık izin listesini fruitfly_lab/bundle/ içine yerleştirir. CLI kodu kullanıcı çalışma dizinine kopyalar; bilimsel ortam o dizinde oluşturulur. Bu yüzden site-packages içine veri/model yazılmaz. Her dosyanın özeti .fruitfly-bundle.json ile izlenir; yerel kod değişiklikleri sessizce ezilmez.

Kurulum ekranı standart Python HTTP sunucusudur; host/origin kontrolü ve tek iş sınırı vardır. Başlatma düğmesi aynı portu bilimsel FastAPI sunucusuna devreder. Kurulum 2 saatle, tek alt komut 1 saatle sınırlanır; durdurma alt süreç grubunu kapatır. Veri ve model işlemleri yereldir. Cloud/LLM/MCP servisi gerekmez.

Yerel geliştirme

uv sync --locked --group dev
uv run --no-sync python -m unittest discover -s tests -v
uv run --no-sync python tools/build_docs.py --check
uv build
uv run --no-sync python -m twine check dist/*

Kök ortam artık hafif uygulama içindir. Bilimsel bağımlılık için kaynak repoda eski doğrudan uv sync alışkanlığını kullanmayın; fruitfly setup walking ayrı çalışma dizinini hazırlar. Paket dışı bilimsel geliştirme gerekiyorsa ortam manifestini inceleyip izole test dizini kullanın. ui.sh eski yerel geliştirici ortamını açan yardımcıdır; son kullanıcı akışı fruitfly ui komutudur.

Doküman Markdown'ını değiştirdikten sonra uv run python tools/build_docs.py çalıştırın. docs/index.html çevrimdışı tek sayfa rehberidir; README ve bütün rehber bölümlerinden üretilir. CI eski kalan HTML'i yakalar.

Paket doğrulaması

pipx install ./dist/fruitfly_hashtag-0.2.0-py3-none-any.whl
fruitfly --home /tmp/neural-lab-clean ui --port 8770 --no-browser

Boş dizinde / kurulum ekranını, /guide/index.html kılavuzu, /api/setup hazır olmayan durumu döndürmelidir. Beyin verisi kendiliğinden indirilmemelidir. Test paketi wheel/sdist'te data/, models/, .venv/, .runtime/, anahtar veya kişisel eğitim bulunmadığını kontrol eder. Ağ indirmeleri ve bilimsel simülasyon birim testlerinde çalıştırılmaz; ayrıca temiz bilimsel kurulum kontrolü gerekir.

GitHub / PyPI

GitHub deposu: https://github.com/mertozbas/fruitfly-hashtag PyPI adı: fruitfly-hashtag. Paket build'i PyPI yayını anlamına gelmez.

  1. Sürümü pyproject.toml ve src/fruitfly_lab/__init__.py içinde artırın.
  2. Rehberi üretin, test/build/metadata kontrolünü çalıştırın. Arşiv listesini inceleyin.
  3. Kaynak değişikliklerini main'e pushlayın; CI sonucunu bekleyin.
  4. v0.2.0 gibi etiket ve GitHub release oluşturun; doğrulanmış wheel/sdist ekleyin.
  5. PyPI için aşağıdaki iki yöntemden birini kullanın; kimlik bilgilerini repoya koymayın.

Trusted Publishing: PyPI hesabında pending publisher oluşturup owner mertozbas, repo fruitfly-hashtag, workflow publish.yml, environment pypi tanımlayın. Sonra GitHub Actions'tan yayın işini elle başlatın. Bu işlem otomatik etiket push'unda yayın yapmaz. PyPI resmi rehber.

Yerel token: Ortamda yetkili TWINE_USERNAME=__token__ ve TWINE_PASSWORD güvenle tanımlıysa uv run python -m twine upload dist/* kullanılır. Token'ı komut satırına, günlük dosyasına veya README'ye yazmayın.

Yayın sonrası pipx install fruitfly-hashtag==0.2.0 ile gerçek PyPI kaynağından yeni izole kurulum doğrulanmalıdır. Kaynak kod, paket meta verisi ve PyPI hash'leri uyumlu olmalıdır. PyPI sürümü değiştirilemez; hata düzeltmesi yeni sürüm gerektirir.

Kaynaklar ve lisans bildirimleri

Neural Lab bağımsız bir Hashtag projesidir; aşağıdaki projelerle resmi bağlantı veya onların onayı iddia edilmez. Uygulamanın MIT lisansı dış veri/politikaları kapsamaz.

Kaynak Lisans / atıf Dağıtım şekli
MaleCNS v1.0 CC BY 4.0; FlyEM/HHMI Janelia, Cambridge, MRC LMB, Google Research; resmi veri sayfası Kullanıcı resmi depodan indirir; burada kaynak URL/hash'leri vardır
FlyGym / NeuroMechFly Resmi kaynak ve lisans; proje / bilimsel atıflar Ayrı bilimsel ortamda bağımlılık; HD mesh kaynak paketinin indirme mekanizmasıyla alınır
FlyBody Apache 2.0, TuragaLab; resmi repo Sabit commit d015e9bfe441bd90ae431bac24c55cb74bdbce26; wheel'e dahil değildir
FlyBody politika ve veri arşivleri GPL 3.0+, Figshare kaydının lisansı; Whole-body physics simulation of fruit fly locomotion destek verisi, v4 Kullanıcı indirir; yerel manifeste kaynak ve hash yazılır; wheel/Git içinde yoktur
flybrains / JRCFIB2022M Resmi paket, kaynak ve varlık bildirimleri Harici bağımlılık ve anatomi yüzeyi; upstream veri bildirimleri geçerlidir
MuJoCo Apache 2.0 kaynak Ayrı ortam bağımlılığı
Three.js 0.180.0 / OrbitControls MIT; Three.js authors; yerel lisans, kaynak UI JavaScript dosyaları lisansı ve checksum manifestiyle paketlenir
uv MIT veya Apache 2.0 Hafif başlatıcı bağımlılığı; kendi paket lisanslarıyla kurulur

Torch, TensorFlow, NumPy, SciPy, NAVis ve diğer geçişli bağımlılıklar kendi lisanslarıyla ayrı ortamlara kurulur; kilit dosyalarında sürümleri bulunur. İndirilen veri/politikaları başka bir ürünle yeniden dağıtırken ilgili kaynak lisansını, bildirimleri ve atıf gereksinimlerini ayrıca koruyun.

Anatomiden üretilen model bir mühendislik türevidir: pozitif normalize edilmiş ileri besleme, sentetik anten kodlaması, öğrenilmiş kenar çarpanları ve yapay motor eşlemesi içerir. Veri sağlayıcılarının biyolojik olarak doğruladığı bir öğrenme veya tam beyin emülasyonu değildir.