Notes from my online journal [krishna-bhatt.com]

A collection of notes, random thoughts, and observations (mostly unintelligible). Unfortunately, I cannot post everything publicly due to IP. Cheers! -Krishna

Latest posts

THALis: trained-model artifact bundle

save the whole model bundle, not just the classifier!! CSP + normalizer + channel order need to match. future me is not going to remember which set of settings went with a random pkl Saved bundle ( c059325 ): data/models/tip-classifier-base/...

THALis: sorting and trimming EEG CSVs

sort + trim CSV, sounds harmless enough. keep the originals and make sure labels move WITH the rows; check duplicates and experiment boundaries utility: sortCSV.py , first recorded at src/utils/sortCSV.py in 5c83dda , later moved to src/tools/ ....

THALis: live EEG visualization modules

RMS / traces / topomap / quality display — different things, don't read them as interchangeable. deliberately awful synthetic input might be a good way to test whether these views actually help archived modules (adba8f3): console.py...

THALis: cue sequencing and skipped-trial bug

skipped trial bug = labels potentially wrong too, ugh. check screen sequence against saved cue times, especially pause/restart collector: Vite/React/Tailwind application originally under src/applets/eeg-collector/ , introduced in 87ea7d6 ....

THALis: December 26 labeled recordings

Dec 26 files belong together: EEG + cues + about.txt. need to sort out the row/event counts and clock alignment before treating this as labeled data Session artifacts: dec26lt1 and dec26lt2 , committed the following day in bafc10e . Each has EEG...

THALis: startup burn-in and DC removal

15 sec burn-in — wall time or actual samples received? reset behavior on reconnect too, don't carry an old running mean into a new stream archived change: e752b94 adds burn-in state management to streaming, running-mean DC removal to...

THALis: CSP features and LDA readout

CSP → normalizer → LDA → smoothed probabilities, keep the fitted order straight. smoothing is nice until the hand feels late... need to look at that tradeoff feature layer (eee5ef2): DualBandPairwiseCSP learns class-pair spatial filters...

THALis: preprocessing stages and namespace change

alpha + beta filters, notch, DC removal... need to keep track of what happens where. compare a sharp transient before/after each stage sometime, curious how much gets smeared implementation references: 9c8ef22 introduces EEGPreprocessor in...

THALis: streaming callback architecture

callback → buffer → processing, keep the sample shape consistent. plotting / writing to disk shouldn't be sitting there holding up acquisition archived change: commit 726b357 expands stream.py and adds src/main.py as the entry point. The...

THALis: Unicorn LSL acquisition

8 channels, 250 Hz, EEGdata.csv. note to self: channel order + timestamps + dropped samples BEFORE doing anything clever with the numbers Archived implementation: commit 784f088 adds main.py for connecting to the Unicorn Hybrid Black through Lab...

THALis: streaming and hand-simulation separation

hand sim first with predictable inputs, no EEG involved. if a joint does something weird i need to know which side broke; small command replay tool might be useful later archived reorganization: b249471 moves acquisition into...

THALis: repository starting point

basically an empty README here :) keeping the starting point around. useful to trace when the streaming + hand sim + analysis actually became separate pieces archived change: commit f09a4fe creates an empty README.md . No streaming, control or...

THALis: early architecture alternatives

EEG / reservoir / hand / maybe EMG + feedback... lots of possible pieces. keep the options here without making all of them prerequisites for the first version brainstorm structure: divide the prosthesis into mechanics, control, sensing and...

BAli-Phy: locating posterior artifacts

BAli-Phy wrote to baliphy-1, don't accidentally read the older folder. keep C1.run.json, numerical trace, trees + sampled alignments together; check the realized model there. SCOPt3 log: output is written under...

ReconBench: empirical parameter extraction

start from cleaned families, keep filter counts alongside the params. Especially the class imbalance — don't let the tiny SCOP groups disappear into one pooled histogram. Source pipeline: Pfam v36 seed alignments and associated FastTree trees,...

ReconBench: joint distribution sampling

sample within the birth–death regime, then invert the log / logit transforms carefully. Check rejection rates too, otherwise the nice fitted distribution isn't necessarily what comes out the other end. modelfit.py workflow: split parameter...

ReconBench: guide-tree construction and annealing

tree generation + annealing toward Colless / gamma targets. Need to see how far annealing moves things away from the original birth–death samples. Side rabbit hole: how many completely different trees share those same 2 stats? tree_gen_bd.py:...

ReconBench: trace parsing and scoring outputs

raw trace → TSV / alignments / trees → scores. check what survives a failed run, plus leaf names and burn-in at each step. TreeStat errors belong here too, not buried somewhere in the terminal. artifact chain: raw Historian/BAli-Phy output...

SCOPt3 simulation: control-file audit

actual control file has different insertion + deletion rates... compare against the symmetric-settings description. Need to pair this file w/ the exact inference command, not assume the report settings match. recorded run: the INDELible log names...

THALis: motor-manifold reading map

motor manifold papers → keep the observation map in mind, not just the nice latent-space plots. how much of that structure can i actually see through 8 scalp channels? also how much is just the task being simple research question: which aspects...

Holmes Lab: end-of-series reference index

putting the summer pointers here before everything becomes a mystery folder. keep commands, seeds, versions, control files... a plot alone is not going to help me rerun anything. dated record: August 11 is the final summer meeting in the shared...

ReconBench: empirical parameters, synthetic truth

biological params → synthetic cases w/ known history → reconstruction tests. Keep the dependencies between params, random plausible values individually could still make a very weird family together. Benchmark problem: using an already...

EvolDeeds: likelihood, mixing and user credit

high likelihood but chain stuck in one spot... not really the win to reward. Need credit for exploration too; revisit ESS + clade summaries before deciding what the score should mean. working distinction: a high joint log-likelihood and good...

Historian: July 15 gp120 sampler trace

gp120 trace: branch/node alignment moves, heights, rescale, prune/regraft. Count accepted / rejected / no-change separately, best likelihood alone misses most of what's happening. timestamped trace: Some log records MCMC starting July 15, 2025 at...

Genome-browser demonstrations to revisit

saving the JBrowse demos, especially the synchronized views. how does a selected sequence / column / node keep its identity across panes? also maybe a back button for selections would be useful, not just more settings. july 7 references:...

EvolDeeds: joint reconstruction objects

alignment + tree + ancestral history = one state. no casually swapping bits between samples and creating a franken-tree; scoring inputs need to travel together meeting topic: June 30 covered EvolDeeds, indel models and pairHMMs. The later...

PairHMM and substitution-model study pointers

substitutions vs indels vs alignment paths—separate piles before this becomes model soup. pairHMM: which paths get summed over, which one gets picked? meeting topic: the June 23 log identifies substitution models of sequence evolution and...

Holmes Lab: summer project map

summer reading map, otherwise these repos are going to blend together in my head. Main thing to keep asking: what's fixed input vs what the sampler can actually change? dated record: June 9 begins the 2025 summer lab meeting series. The meeting...

HomeBuilt: Benji-to-Build-Pack contract

Benji → review → sourcing, don’t lose the review bit. Need units / dimensions / quantities attached to the design revision, otherwise the pretty picture and the parts can drift apart Walkthrough in the pitch: photograph the intended space,...

HomeBuilt: demo artifacts and consistency checks

pack, laptop, Benji, app mockup, finance sheet. Check that the instructions can actually be followed w/ what’s in the box — tools needed separately? materials recorded in the summit checklist: Build Pack, marketing materials, laptop with...

HomeBuilt: five-minute demo structure

5 seconds over the pitch limit lol. Keep the same doghouse through the whole demo + count the time moving the actual Build Pack around pitch constraint: five minutes (300 s), followed by three minutes of questions. The summit script says the...

MesoNet: local-stability and conjecture checklist

coupled weight / plasticity system. negative plasticity-direction eigenvalue is only one piece; check the other slope + event updates too source evolution: the earlier packet labels the central result a theorem; the later preprint labels Section...

MesoNet: code archive navigation

code map for finding things again. PDF filenames can run into the preceding text—check the repo when the boundary looks strange Repository reference: blizzard-labs/NMCtests . The March 2025 Code Base.pdf is an archived listing containing...

MesoNet: benchmark data reconciliation

these tables need run IDs. match split + settings + version before picking numbers from different drafts There are at least two result-table versions. The native MesoNet Data sheet reports MNIST accuracy 98.11% and CIFAR-10 56.6% for MesoNet....

HomeBuilt: design review before sourcing

what exactly gets checked before sourcing? changed dimensions should invalidate old instructions + quote, not leave three convincing versions floating around recorded workflow in the submission checklist: design selection/customization →...

MesoNet: DSP terminology and algorithm revisions

DSP names changed between drafts. keep early distance/significance idea separate from later variable plasticity + triangulated attribution early formulation: the MIT THINK draft calls the mechanism Distributed Synaptic Plasticity (DSP). It...

MesoNet: convolution and linear-algebra reading map

convolution / SVD / eigenvalues reading pile. keep shapes + indexing next to the intuition, otherwise i lose track of what the matrix is even acting on February 1–3 reference cluster: convolution, finite geometric series, Kronecker delta,...

MesoNet: unresolved experiment matrix

too many possible combinations rn. make the encoder × architecture × update-rule grid before another round of parameter spaghetti questions collected in the January review: efficient multiscale STDP; adapting unsupervised clustering to spiking...

MesoNet: CIFAR-100 encoding and invariant features

CIFAR-100: what survives the image → spike conversion, esp color + spatial structure? save for later: shift the image one pixel, how much should the spike pattern change motivation: a more complex image dataset tests spatial structure beyond...

MesoNet: Difference-of-Gaussians latency encoder

DoG branch, different from bipolar TSC. flat image vs one sharp edge would be a useful tiny check—esp if thresholding leaves no latency events reference implementation: imgClassifierSDNN/src/dog_filter.py , explicitly attributed in the code to...