R

The dating game

Dates are not so sweet It is known: parsing dates entered by humans is a huge pain: Source: https://xkcd.com/1179/ ISO 8601 nerds: a crack has developed in the old way. The new year has wounded both the m/d/yy and the d/m/yy factions. The time is ripe for a new global order. TONIGHT (2020-01-01) WE RIDE https://t.co/1YTL1SWDm2 — Brooke Watson Madubuonwu (@brookLYNevery1) January 1, 2020 Dates are a never-ending source of fresh hell.

Don’t buy me a coffee

tl;dr I don’t get paid to maintain poppr anymore and do so on my own time, so if you use it and value the work that I put into it, please donate to RAICES Texas ( https://www.raicestexas.org/donate) to help provide legal services to underserved immigrant and refugee families in the United States. Last Tuesday, I released poppr version 2.8.3, which fixed a corner case in read.genalex() and enhanced minimum spanning network rendering by drawing single-population nodes as circles instead of pies (with contribution by Frédéric Chevalier).

nice selection

I started writing in R before the tidyverse became a thing and I never really had to think about non-standard evaluation when writing functions. Those days are long past and I’ve recently struggled with the challenge when writing functions for the R4EPIs project, which would stick out like ugly little trolls along side tidyverse functions. One of my biggest struggles was trying to figure out how, excactly to select a varaible from a user as either a character string or a bare variable.

Ask developers questions over forums, not emails

My package, poppr, has been on CRAN for over six years now and it has received more than 400 citations and just north of 70,000 downloads from the RStudio cran mirror. I can think of three reasons why this package has been successful: Our lab gave several workshops using our package over the years We have written extensive documentation with both web site and package documentation. I actively maintain and answer the vast majority of questions that appear on the poppr google group.

Splitting Hairs: poppr version 2.7

Positive Contact This version of poppr is a direct result of feedback that was prompted by my own feedback. I’m always grateful for eagle-eyed users of poppr who report when things are going awry. Recently, I had noticed that poppr was cited in a recent review on the analysis of polyploid genetic data (Meirmans, Liu, and Tienderen 2018) that highlighted some limitations with established methods, including Bruvo’s distance (Bruvo et al.

I C Bugs

A Brown marmorated stink bug female from a laboratory colony on a common bean leaf, photographed in the laboratory of Fondazione Edmund Mach, Italy. URL: https://commons.wikimedia.org/wiki/File:Halyomorpha_halys_lab.jpg Occasionally, I hear people complain about the strict policies of CRAN, but I for one quite apprecieate them, especially when dealing with hidden errors in compiled code. Not twenty-four hours after I had submitted poppr version 2.6.0 to CRAN did I receive an email from none other than Brian D.

Poppr 2.6.0: Better Network Plotting

Poppr version 2.6.0 has officially been released on CRAN and should be built for all operating systems within the next few days 🎉. You can check out the NEWS for full details. This release features a new function called boot.ia() to assess how the Index of Association responds to repeat observations (clones). Perhaps the biggest feature is the change in how minimum spanning networks are plotted. Minimum spanning networks were originally implemented in poppr by Javier Tabima and I, and since then they’ve gone through some tweaking, eventually including features like reticulation of equivalent paths and a GUI to help construct these networks.

Using a custom library in R

I’ve been using a custom library for R since 2012 and I’ve never looked back. I’ve not seen many tutorials for people do do this through R, so I figured I’d write a quick one. Where does your R package library live? You can usually find this out by typing .libPaths() in your R console. If you have an out-of-the-box installation, it will generally be somewhere like: C:/Program Files/R/R-3.

Squishing a big bad bug

As I was preparing to push a new version of poppr to CRAN , this tweet (appropriately) came across my feed: Mistakes happen in science. What matters is what you do next. Anyone want to share a story of a mistake & how they handled it? — Adriana Porter Felt (@apf) September 10, 2017 The reason I was updating poppr was to fix a mistake I had made a few years ago.

20,000 downloads under the C(RAN)

My R package poppr hit over 20,000 downloads on CRAN. I thought this would be a nice opportunity to briefly talk about what initiated the development. Before that, let’s look at the cumulative number of downloads: CRAN you dig it? Thanks to the fantastic cranlogs package, assessing the download history of a package is quite simple (with the caveat that these are logs from the rstudio mirror, so the value is almost always lower than the true value).

Recreating Figure 3

Motivation In February of 2016, I got an email asking if I could provide the code to recreate figure three from my article in Phytopathology on the outbreak of Phytophthora ramorum in Curry County OR from 2001 to 2014 (paywalled, but you can find a copy here). While I have the code used for the analysis on github, it’s a lot of stuff to sort through, considering that it was my first foray in attempting a reproducible analysis, so for this post, I’m going to recreate it using current tools.