Skip to content

Instantly share code, notes, and snippets.

These functions are in response to StackOverflow questions like [this][], wanting to fill in missing NA values with preceeding values, optionally by group

fill_down <- function(v) {
    if (length(v) > 1) {
        keep <- c(TRUE, !is.na(v[-1]))
        v[keep][cumsum(keep)]
    } else v
@mtmorgan
mtmorgan / g_range.R
Last active December 10, 2016 15:47
endomorphic overlaps, etc
suppressPackageStartupMessages({
library(tibble)
library(GenomicRanges)
})
.g_range <- setClass("g_range", contains="GRanges")
.g_columns <- c("chr", "start", "end", "strand")
setAs("GRanges", "g_range", function(from) {
dna <- getFastaSeq()
## function for finding orfs. Returned as IRanges.
ORFdef <- find_in_frame_ORFs(dna, longestORF = FALSE, minimumLength = 8)
ORFdef <- ORFdef[lengths(ORFdef) > 0]
## Map (mapply) on each five prime leader
uORFs <- Map(
function(granges, tx_name, ORFdef) {
map_granges(ORFdef, granges, tx_name)
},
@mtmorgan
mtmorgan / uvlock_client.R
Last active May 26, 2018 17:32
Simple distributed lock using BiocParallel::ipclock() and httpuv
.host <- "localhost"
.port <- 5001
library(httr)
library(BiocParallel)
.get <-
function(fmt, ..., host = .host, port = .port)
{
query <- sprintf(fmt, host, port, ...)
@mtmorgan
mtmorgan / prettify.html
Created February 1, 2019 22:31
prettify support site example
<!DOCTYPE html>
<html lang="en">
<head>
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="//netdna.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.11.0/highlight.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.11.0/languages/r.min.js"></script>
<link rel="stylesheet" type="text/css" href="/static/lib/prism/prism.css">
## package biocViews dumbbell
library(BiocPkgTools)
library(dplyr)
library(tidyr)
library(graph)
library(biocViews)
data(biocViewsVocab)
@mtmorgan
mtmorgan / BiocManager_test.sh
Last active October 21, 2019 13:18
BiocManager test scripts
export BIOCVERSION_REPOS=~/b/git/BiocVersion
export BIOCMANAGER_REPOS=~/b/git/BiocManager
export BIOCMANAGER_SANDBOX=/Users/ma38727/tmp/BiocManagerSandbox
#
# R-4.0
#
echo "R-4.0"
export R_LIBS_USER=$BIOCMANAGER_SANDBOX/R-4.0-Bioc-3.10
@mtmorgan
mtmorgan / f.rda
Last active October 25, 2019 13:48
loud load debug
@mtmorgan
mtmorgan / bioc_first_appearance.R
Last active January 27, 2023 16:29
bioc_first_appearance
library(yaml)
library(dplyr)
library(tibble)
library(lubridate)
library(readr)
library(memoise)
get_releases <-
function()
{
@mtmorgan
mtmorgan / obo_graph.R
Last active April 12, 2020 16:20
construct distance between GO nodes from OBO file
obo = readLines("go.obo")
##
## Clean data
##
## blank lines separate different 'groups' in the obo
group <- cumsum(!nzchar(obo))
## keep groups that have the [Term] label