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.
- 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.
- İ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.
- Laboratuvarı aç düğmesine basın. Aynı adres canlı UI'a dönüşür.
- 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
- Davranış → Kokuya yönelme seçin.
- Hedefi X=12, Y=4 mm yapıp Hedefi uygula düğmesine basın.
- 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.
- Eğitimi başlat seçin. Önceki model ayrı korunur; canlı simülasyon eğitim boyunca seçili modeli kullanmaya devam eder.
- Öğ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.
- Yeni modeli simülasyona al düğmesine basın.
- 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.
- 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.
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:
- Kilitli Python 3.12 paketlerini ayrı
.venviçine kurar. - MaleCNS v1.0 anotasyon, nörotransmiter ve bağlantı tablolarını indirir.
- Sabit kaynak sürümü, boyut ve SHA256 özetlerini doğrular.
- Keşif matrisini, 28 seçilmiş SWC iskeletini ve anatomi yüzeyini hazırlar.
- ORN → ALPN → Kenyon → MBON devresini oluşturur.
- Başlangıç modeli yoksa 3.000 adım / tohum 42 ile yerelde eğitir.
- 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.
fruitfly uiaçın. Kokuya yönelme → Eğitim öncesi modelini seçin.- Hedefi X=12, Y=4 yapıp Hedefi uygula seçin; başlangıç hareketini izleyin.
- Adım=3000, Tohum=42 yazıp Eğitimi başlat düğmesine basın.
- 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.
- Eğitimden sonra altı ayrı fizik koşulu değerlendirilir. Tamamlandı durumunu bekleyin; “değerlendiriliyor” henüz bitmiş değildir.
- Yeni modeli simülasyona al seçin. Başka hedefleri deneyin, eski modeli menüden geri alarak karşılaştırın.
- Δ 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
- Uygulamayı
Ctrl+Cile durdurupfruitfly setup flightçalıştırın. Alternatif:fruitfly ui --setupekranında Uçuşu kur. - 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.
- X=25, Y=8 gibi ileri bir hedef deneyin. Sinek havada başlar.
- 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.
- 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.
- Sürümü
pyproject.tomlvesrc/fruitfly_lab/__init__.pyiçinde artırın. - Rehberi üretin, test/build/metadata kontrolünü çalıştırın. Arşiv listesini inceleyin.
- Kaynak değişikliklerini main'e pushlayın; CI sonucunu bekleyin.
v0.2.0gibi etiket ve GitHub release oluşturun; doğrulanmış wheel/sdist ekleyin.- 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.