Blog
Scientific research blog
In-depth, evidence-led articles on scientific computing, data analysis, and reproducible research.
How to Analyze Time Series with Aeon: DTW Classification, Clustering, and Similarity
Aeon provides a consistent Python toolkit for comparing, classifying, and clustering ordered signals without flattening away their temporal structure. In the worked example below, a DTW nearest-neighbor model identifies the direction of two unseen curves, time-series k-means recovers the two underly
How to Analyze Partitioned Scientific Data with Dask DataFrame, Array, Delayed, and Distributed
A reproducible Dask workflow can read partitioned measurements lazily, filter and aggregate them, write a partitioned Parquet dataset, transform a chunked numerical array, and evaluate an explicit task graph without forcing all intermediate data into memory. In the validated example, three CSV parti
How to Detect Scientific Computing Resources with Python, psutil, and a Reproducible System Inventory
A reliable scientific computation begins by measuring the machine that will run it. In the validated example documented here, a native resource detector identified 8 physical CPU cores, 16 logical CPU cores, 31.06 GiB of RAM, 16.06 GiB of currently available RAM, 103.12 GiB of available project-di
How to Find Biology Machine-Learning Models with a Reproducible Hugging Face Catalog Search
Direct answer: The validated live catalog query found 95 biology-related model records. It produced a 41,912-byte JSON snapshot and a 2,587-byte Markdown recommendation report; it did not download, benchmark, or endorse any model.
How to Solve and Audit a MATLAB-Compatible Linear Algebra Workflow with GNU Octave
GNU Octave solved the system as x = [2, 3] and independently verified that expected vector. Five signal observations had mean 6 and sample standard deviation 6.59545297913646. The workflow retained a MATLAB-compatible MAT workspace and both raster and vector plots. This result passed native executio
How to Create Publication-Ready Multi-Panel Scientific Figures with Matplotlib
The workflow read six measurements and created two object-oriented Matplotlib axes with line, error-bar, scatter, annotation, and legend artists. It exported a 1823 by 1223 pixel PNG at 200 dpi and an SVG configured to retain editable text. This result passed native execution, real chat-driven execu
How to Differentiate a Quantum Circuit with PennyLane Automatic Gradients
At θ = 0.432 radians, the Pauli-Z expectation on wire 1 was 0.908130190694961. PennyLane returned a gradient of −0.4186878989752795; the analytic value −sin(θ) was −0.41868789897527947, giving an absolute error of 5.55 × 10⁻17. This result passed native execution, real chat-driven execution, and sem
How to Build, Transpile, and Validate a Bell-State Experiment with Qiskit
Scientific introduction A Bell-state experiment is one of the smallest workflows that demonstrates a genuinely quantum relationship between two qubits. The circuit begins in the computational basis state |00〉, applies a Hadamard gate to the first qubit, and then applies a controlled-X gate from the
How to Simulate a Damped Harmonic Oscillator and Validate Photon Decay with QuTiP
Scientific introduction Open quantum systems exchange energy or information with an environment, so their evolution cannot generally be represented by a closed-system Schrödinger equation alone. A widely used Markovian description is the Lindblad master equation, which evolves a density operator und
How to Calculate Electronic Reaction Energy with Psi4 and Compare Basis Sets
Scientific introduction Reaction energies connect molecular electronic structure with chemical change. At the simplest quantum-chemical level, an electronic reaction energy is the stoichiometric difference between product and reactant electronic energies. Although the arithmetic is short, a defensib
How to Calculate Vertical Ionization Potentials and Electron Affinities with GFN2-xTB
Scientific introduction Oxidation and reduction involve removing or adding electrons, but a computed “redox value” is meaningful only when its state definition and thermodynamic scope are explicit. Ionization potential measures the energy cost of electron removal; electron affinity describes the ene
How to Develop an Evidence-Audited NSF Research Grant Planning Package
The run produced seven planning deliverables. The audit confirmed the three-year duration, total direct cost, and objective count against the input. It marked submissionready as false and returned passwithflags for unsupported-claim scanning, preserving issues that require investigator and instit
How to Develop Falsifiable Microplastics and Drought Hypotheses for Wheat
The validated dossier preserved the 12-week duration, four growth chambers, and USD 12,000 ceiling; generated seven mechanistically distinct, explicitly exploratory hypotheses; included four cross-disciplinary connections and six challenged assumptions; and prioritized three ideas under a chamber-aw
How to Critically Appraise a Prevention Trial with Attrition and Outcome Switching
Among analyzed participants, infection risk was 12/42 = 28.57% with Supplement X and 18/56 = 32.14% with control, an absolute risk difference of −3.57 percentage points. Because attrition was differential, concealment unclear, participants and assessors unblinded, and the registered primary outcome
How to Create a Publication-Ready Dose–Response Figure with Matplotlib and Seaborn
A validated two-panel dose–response workflow produced a 300-DPI PNG and an editable SVG from four dose levels. At 4 µM, the control endpoint was 90% and the treated endpoint was 43%, an observed separation of 47 percentage points. The final figure used Matplotlib 3.10.5, Seaborn 0.13.2, an expli
How to Explain Random Forest Predictions with SHAP, TreeExplainer, Beeswarm, Dependence, and Waterfall Plots
Scientific introduction Predictive models can achieve useful accuracy while remaining difficult to inspect. A random forest, for example, combines many decision trees whose splits and interactions cannot be summarized faithfully by reading one tree. Model explanation methods address a narrower quest
How to Simulate a Single-Server Queue with SimPy: Discrete-Event Simulation Tutorial
Four customers arriving at times 0, 1, 2, and 3 to one server, with deterministic two-time-unit service, produce waits of 0, 1, 2, and 3 time units. A real SimPy 4.1.1 execution therefore measured a mean wait of 1.5, a maximum wait of 3, and final completion at simulation time 8. These v
How to Calculate Electronic Excitations and a UV–Visible Stick Spectrum with Psi4 TD-SCF
Scientific introduction Electronic absorption spectroscopy probes transitions between molecular electronic states. Linear-response time-dependent methods estimate vertical excitation energies and transition strengths at a fixed nuclear geometry. Converting energy to wavelength is convenient for visu
How to Run Thompson Sampling over a Combinatorial Molecular Library
Scientific introduction Thompson sampling is a probability-matching strategy for sequential decisions under uncertainty. A posterior distribution is maintained for each action or component; one plausible value is sampled from each posterior, and the action favored by that sampled world is evaluated.
How to Train and Validate a Graph Convolutional Network with PyTorch Geometric
Scientific introduction Graph neural networks learn representations by combining node attributes with information propagated along edges. A graph convolutional network repeatedly aggregates neighbor features, applies trainable transformations, and produces embeddings that can support node, edge, or