Skip to content

Instantly share code, notes, and snippets.

View vjcitn's full-sized avatar

Vince Carey vjcitn

View GitHub Profile
@vjcitn
vjcitn / bedarray.R
Last active November 13, 2025 18:33
DelayedArray back end for plink2 bed, before I learned about BEDMatrix
library(DelayedArray)
setClass("plBedSeed",
contains="Array",
slots = c(
dim = "integer",
bedreaderRef = "ANY",
dimnames = "list"
)
)
@vjcitn
vjcitn / make1zip.R
Last active November 10, 2025 22:09
create one zip file for a source package on windows
make1zip = function(pname, target="zips322") {
if (!dir.exists(target)) dir.create(target)
target = file.path(getwd(), target)
ins = try(BiocManager::install(pname, ask=FALSE, update=FALSE, type="binary",
dependencies=TRUE, force=TRUE)) # acquire dependencies as needed
if (inherits(ins, "try-error")) stop(sprintf("can't install %s with BiocManager", pname))
#real_inst = try(install.packages(pname, type="source", repos=NULL)) # this uses native windows build tools from Rtools
bpath = pkgbuild::build(pname)
if (inherits(bpath, "try-error")) stop(sprintf("can't build %s from source", pname))
install.packages(bpath, type="source", repos=NULL)
@vjcitn
vjcitn / getsrc322.R
Created November 10, 2025 16:45
set up source folders for bioc 3.22
library(BiocPkgTools)
all322 = biocPkgList(version="3.22", repo="BioCsoft")$Package
library(BiocBuildTools) # from github vjcitn
set322=PackageSet(all322, biocversion="3.22", branchname="RELEASE_3_22")
dir.create("srcs_322")
populate_local_gits(set322, gitspath="srcs_322")
@vjcitn
vjcitn / reas.py
Created November 6, 2025 10:31
a reasoning demonstration produced by perplexity.ai
from owlready2 import get_ontology, onto_path, sync_reasoner
def find_terms_by_keyword(ontology, keyword):
# Simple case: search class labels and names
results = []
for cls in ontology.classes():
label = cls.label.first() if hasattr(cls, "label") and cls.label else cls.name
if keyword.lower() in label.lower():
results.append(cls)
return results
@vjcitn
vjcitn / term_specificity.py
Created November 6, 2025 10:10
for a combination of string and ontology (importable via owlready2) compute term specificity
from owlready2 import get_ontology, onto_path
import numpy as np
def term_to_class(user_term, onto):
all_terms = list(onto.classes())
excluded_terms = get_excluded_terms(onto)
# Try to find by label first, then by name
found = None
for cls in all_terms:
if cls in excluded_terms:
@vjcitn
vjcitn / ibiplot.R
Created November 1, 2025 13:09
adjustable biplot for SummarizedExperiment
library(SummarizedExperiment)
library(irlba)
ibiplot = function(se, choices=1:2, nfeat=5, ircomp=6, ...) {
dat = t(assay(se))
pcs = prcomp_irlba(dat, ircomp)
rot = pcs$rotation
ss = rowSums(abs(rot[,choices])^2)
kp = order(ss, decreasing=TRUE)[seq_len(nfeat)]
labs = rep(" ", nrow(rot))
labs[kp] = rownames(se)[kp]
@vjcitn
vjcitn / bm2SE.R
Created October 9, 2025 09:06
use GDSArray to interact with bigmelon serialization as SummarizedExperiment
library(S4Vectors)
library(SummarizedExperiment)
library(GDSArray)
library(bigmelon)
data(melon)
tf = tempfile()
es2gds(melon, tf)
bm2SE = function(gdsf, elem="betas",
fdkeep=c("ProbeID_A", "ProbeID_B", "ILMNID", "NAME",
@vjcitn
vjcitn / naprun.R
Last active September 25, 2025 01:55
silly approach to starting napari from R
# based on https://alisterburt.com/napari-workshops/notebooks/viewer_intro.html
library(reticulate)
py_require("napari[all]")
py_require("scikit-image")
nap = import("napari")
v = nap$Viewer()
si = import("skimage")
#id = si$data$cells3d()
if (!file.exists("nuclei.tif")) {
system("wget --no-check-certificate https://raw.githubusercontent.com/alisterburt/napari-workshops/main/napari-workshops/notebooks/data/nuclei.tif")
@vjcitn
vjcitn / hexsetup.R
Created July 20, 2025 10:13
workflow for hex sticker given an image (owl.jpg for ontoProc)
library(cropcircles)
library(magick)
y = image_read("owl.jpg") # https://commons.wikimedia.org/wiki/File:Great_Horned_Owl_(30706490070).jpg
library(cropcircles)
img_cropped_path <- hex_crop(
images = "owl.jpg",
border_colour = "#107e54",
border_size = 24
)
@vjcitn
vjcitn / testsvd.R
Created July 18, 2025 09:16
code and tests for BLAS setup in macOS
# reference for managing BLAS usage -- https://cran.r-project.org/bin/macosx/RMacOSX-FAQ.html#Which-BLAS-is-used-and-how-can-it-be-changed_003f-1
# script
print(extSoftVersion()["BLAS"])
# global matrix value
set.seed(1234)
x = rnorm(500)
y = x %*% t(x)
# compute svd