This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python3 | |
# | |
# This script will BLAST a series of GenBank IDs representing SSR sequences from | |
# Sirjusingh, C., Kohn, L.M., 2001. Characterization of microsatellites in the | |
# fungal plant pathogen, Sclerotinia sclerotiorum. Molecular Ecology 1, 267e269. | |
# | |
# This uses biopython to download the XML, save it to a file in the working | |
# directory, and then looks for matches that have Sclerotinia chromosome in the | |
# title and has a score of > 100. If there's a better way to do this, I would | |
# like to know it. Currently, it can download a few results at a time and then |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# shruggie | |
# Source: https://twitter.com/climagic/status/672862397015658496 | |
function shrug(){ echo -n "¯\_(ツ)_/¯" | pbcopy;echo "¯\_(ツ)_/¯ copied to your clipboard"; } | |
export -f shrug | |
# strollie | |
function stroll(){ echo -n "ᕕ( ᐛ )ᕗ" | pbcopy; echo "ᕕ( ᐛ )ᕗ copied to your clipboard"; } | |
export -f stroll | |
# flippy |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# This is from @drob on twitter: | |
# | |
# https://twitter.com/drob/status/915378838078722048 | |
# | |
library("purrr") | |
transition_mc <- function(steps, start, mat){ | |
i <- seq_len(nrow(mat)) | |
transition <- ~ sample(i, prob = (i == .) %*% mat) | |
accumulate(seq_len(steps), transition, .init = start) | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#' paste function that replaces NA characters with blanks | |
#' | |
#' All arguments are passed to paste. | |
#' | |
#' Usage: | |
#' pastena(letters, sample(c(1:10, NA), 26, replace = TRUE)) | |
pastena <- function(..., collapse = NULL, sep = " ") { | |
dots <- list(...) | |
dots <- lapply(dots, function(i) ifelse(is.na(i), "", i)) | |
res <- do.call("paste", c(dots, list(collapse = collapse, sep = sep))) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env bash | |
# This ridiculous script will take in a file as input and spit out comma-separated text for easier parsing. | |
# Usage: | |
# $ gvcf2csv.sh GVCF.err | column -t -s, | |
grep ProgressMeter $1 | \ | |
awk -F" - " '{print $2}' | \ | |
tail -n +2 | \ | |
sed -E 's/[ ]\|[ ]/,/g' | \ | |
sed -E "s/([0-9hmsw%])[ ]{3,}([0-9])/\1,\2/g" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# This will take a list of dois and convert them | |
# to a table containing the names of coauthers to | |
# populate a conflict of interest list. | |
# | |
# It's not perfect, but it's better than nothing. | |
# | |
library("rcrossref") | |
library("tidyverse") | |
# | |
# Change these to YOUR dois. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Note: this assumes that you have a custom library at the top of your .libPaths() | |
fields <- c("Package", "LibPath", "Version", "Priority", "Depends", "Imports", "LinkingTo", "Suggests", "Enhances", "OS_type", "Built", "RemoteSha", "Packaged", "biocViews") | |
x <- installed.packages(.libPaths()[1], fields = fields) | |
needs_update <- x[x[, "Built"] != "3.4.0", ] | |
bicond <- !is.na(needs_update[, "biocViews"]) | |
ghub <- !is.na(needs_update[, "RemoteSha"]) | |
remote <- !is.na(needs_update[, "Packaged"]) | |
bioconductor <- needs_update[bicond, ] | |
cran <- needs_update[!bicond & !ghub & remote, ] | |
install.packages(rownames(cran)) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Name this damn pattern. | |
\binom{N}{0}, \binom{N}{1}, \binom{N}{2}, ..., \binom{N}{floor(N/2)}, ... N! |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Replacing multilocus lineages with one representative sample | |
library(poppr) | |
data(monpop) | |
mlg.filter(monpop) <- 0 + .Machine$double.eps | |
mondf <- genind2df(monpop, usepop = FALSE) | |
mid <- mlg.id(monpop) | |
orders <- unlist(mid, use.names = FALSE) | |
monpop <- monpop[orders, ] | |
mondif <- mondf[orders, ] | |
n <- vapply(mid, length, integer(1)) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# poppr.plot.phylo definition: | |
# https://github.com/grunwaldlab/poppr/blob/9170398f6552f27ab69b294172c97c8ee7a97ce0/R/internal.r#L1529-L1545 | |
# You can also get it by simply typing poppr:::poppr.plot.phylo in your R console | |
library("ape") | |
library("phangorn") | |
poppr.plot.phylo <- function(tree, type = "nj", root = FALSE){ | |
barlen <- min(median(tree$edge.length), 0.1) | |
if (barlen < 0.1) barlen <- 0.01 | |
if (!root && type != "upgma"){ | |
tree <- ladderize(tree) |