Skip to content

Instantly share code, notes, and snippets.

@abikoushi
abikoushi / TimerLogger.h
Last active June 27, 2025 05:23
Block-wise computational time evaluation for Rcpp
#include <chrono>
#include <iostream>
#include <fstream>
#include <mutex>
class TimerLogger {
public:
TimerLogger(const std::string& label, const std::string& filename = "timelog.csv")
: label_(label), filename_(filename) {
start_ = std::chrono::high_resolution_clock::now();
@abikoushi
abikoushi / PCA.stan
Created June 17, 2025 11:38
Probabilistic principan component analysis using Stan
data {
int<lower=0> N;
int<lower=0> D;
int<lower=0> R;
matrix[N,D] Y;
}
parameters {
row_vector[D] mu;
matrix[D,R] W;
real<lower=0> sig2;
@abikoushi
abikoushi / gumbel.jl
Created June 1, 2025 13:14
practice CairoMakie.jl
using Distributions
using CairoMakie
#https://docs.makie.org/stable/
xv = 0:0.1:20
f = Figure()
ax = Axis(f[1, 1])
l1 = lines!(ax, xv, pdf.(Gumbel(0,1), xv))
l2 = lines!(ax, xv, pdf.(Gumbel(1,1), xv), linestyle=:dash)
l3 = lines!(ax, xv, pdf.(Gumbel(0,2), xv), linestyle=:dot)
@abikoushi
abikoushi / abline_makie.jl
Created May 22, 2025 10:08
My first try CairoMakie.jl
using Random
using Distributions
using CairoMakie
using FileIO
beta = [1, 2]
rng = Random.default_rng(1234)
X = [ones(10) randn(rng, 10)]
y = X * beta + randn(rng, 10)
@abikoushi
abikoushi / Schrodinger.R
Created April 17, 2025 11:49
Learn Schrödinger's equation
makeLmat <- function (h){
x = seq(0,1,by=h)
N=length(x)
invh2 <- 1/(h^2)
res = diag(invh2, N)
res[cbind(1:(N-1),2:N)] <- -0.5*invh2
res[cbind(2:N,1:(N-1))] <- -0.5*invh2
return(list(L=res,x=x))
}
@abikoushi
abikoushi / multico.R
Created April 17, 2025 10:06
Contour plot of likelihood under multicollinearity
library(ggplot2)
library(dplyr)
library(mvtnorm)
set.seed(1)
x1 = rnorm(10, 0, 1)
x2 = x1+rnorm(10, 0, 0.1)
y = x1+x2 + rnorm(10, 0, 1)
print(cor(x1,x2))
@abikoushi
abikoushi / SEIR.R
Created April 6, 2025 06:29
The solution of SEIR model using `deSolve`
library(deSolve)
SEIRmod <- function(Time, State, Pars) {
with(as.list(c(State, Pars)), {
dS <- - beta*I*S
dE <- beta*I*S - alpha*E
dI <- alpha*E - gamma*I
dR <- gamma*I
return(list(c(dS, dE, dI, dR)))
})
@abikoushi
abikoushi / mixtureofpoisson.R
Created March 24, 2025 06:23
An Example of Stochastic Variational Bayes method: Mixture of Poisson distribution
# Reference:
# Hoffman et al. "Stochastic Variational Inference"
# browseURL("https://arxiv.org/abs/1206.7051")
####
# learning rate
lr <-function(t, lr_param){
(t + lr_param[1])^(-lr_param[2])
}
@abikoushi
abikoushi / Expectation_numtrunc.R
Created March 3, 2025 02:51
Expectation of number of right truncation; numerical integration
#intensity function
lambda <- function(x, shape){
shape*x^(shape-1)
}
#number of truncated observation
counttrunc <- function(tau, WS, weibull_param,
shape=1, maxit=10000){
Et = 0
count = 0L
@abikoushi
abikoushi / liger.R
Created February 26, 2025 05:08
first try rliger `runOnlineINMF`
#install.packages('RcppPlanc', repos = c('https://welch-lab.r-universe.dev', 'https://cloud.r-project.org'))
library(rliger)
library(RcppPlanc)
library(bench)
pbmc <- normalize(pbmc)
pbmc <- selectGenes(pbmc)
pbmc <- scaleNotCenter(pbmc)
getOption("ligerVerbose", TRUE)
bm <- bench::mark({