<?xml version="1.0" encoding="UTF-8"?>
<rss  xmlns:atom="http://www.w3.org/2005/Atom" 
      xmlns:media="http://search.yahoo.com/mrss/" 
      xmlns:content="http://purl.org/rss/1.0/modules/content/" 
      xmlns:dc="http://purl.org/dc/elements/1.1/" 
      version="2.0">
<channel>
<title>*Pan narrans* - the story telling ape</title>
<link>https://richardjacton.gitlab.io/pan-narrans-blog/</link>
<atom:link href="https://richardjacton.gitlab.io/pan-narrans-blog/index.xml" rel="self" type="application/rss+xml"/>
<description></description>
<generator>quarto-1.4.551</generator>
<lastBuildDate>Sat, 24 Jun 2023 00:00:00 GMT</lastBuildDate>
<item>
  <title>Review Bounties</title>
  <dc:creator>Richard J. Acton</dc:creator>
  <link>https://richardjacton.gitlab.io/pan-narrans-blog/posts/2023-06-24-review-bounties/review-bounties.html</link>
  <description><![CDATA[ 





<p>There is legitimate added value in <em>some</em> of the conventional functions of the academic publishing industry and the people adding that value should be remunerated fairly for their labour.</p>
<p>The ‘journal’ as currently constituted provides:</p>
<ul>
<li><p>The administrative functions of coordinating the review</p>
<ul>
<li>Finding, vetting, &amp; corralling, suitable reviewers</li>
<li>coordinating the correspondence with authors</li>
</ul></li>
<li><p>Proofreading &amp; typesetting</p></li>
<li><p>Hosting the websites from which the papers are served</p></li>
<li><p>There is a ‘curatorial’ function of dubious utility because of its biases and the disproportionate impact these unaccountable bodies have on which papers gain prominance.</p>
<ul>
<li>Deciding which papers to ‘bench reject’ and which to send out for review is a dated and inadaquate approach to the curation problem anyway in my view.</li>
</ul></li>
</ul>
<p>The bulk of the most vaulable labour performed in this process is performed by the reviewers who are unpaid. The rest of the labour and costs here simply detract from the bottom line of the publishers who because of the vertically integrated nature of the publsihing pipeline have little incentive to provide a high quality service in areas such proofreading. The bulk of the value acruces to the owners of the publshing companies who can extract rents on the copyrighted articles, and restrict access to artifically limited high presige publication space which they can charge to access via APCs. They pay their professional editors relatvely poorly, whilst expecting them to judge the quality of an unreasonablly large number of articles per unit time and according to dubious criteria. This leaves the door open to considerable corruption and gaming of this system.</p>
<section id="as-an-alternative-to-this-way-of-working-i-propose-review-bounties" class="level2">
<h2 class="anchored" data-anchor-id="as-an-alternative-to-this-way-of-working-i-propose-review-bounties">As an alternative to this way of working I propose ‘review bounties’</h2>
<p>In it’s simplest form it would look like this:</p>
<blockquote class="blockquote">
<p>Instead of paying an article processing charge authors offer a review bounty. the ‘Editor’ of a journal agrees to mediate the review process for some fraction of the review bounty. A portion of the remaining bounty is divided among the reviewers of this paper, if the editor deems the review of succicient quality, according to clearly indicated expectations of what constitutes a good qualtiy review. The remainder of the bounty is offered as a ‘bug bounty’ such that anyone identifying an error which materially alters a conclusion of the work can claim it.</p>
</blockquote>
<p>Bug bounty claims would be adjudicated by a pre-specified procedure or rules for deciding if the claim is valid, for example:</p>
<ul>
<li>If the Authors agree</li>
<li>or if the editor and a majority of the reviewers agree, (editor breaks ties)</li>
</ul>
<p>Under this model the journal performs its conventional functions of aranging review and hosting / distributing the published paper but the reviewers get paid for their labour and an incentive is created to find errors in the published literature. The papers are published under an open license such as a CC-BY or (preferably in my view) CC-BY-SA so that they can become a part of the knowledge commons. This incentive structure encourages authors and reviewers to avoid errors in the first place as they are staking some cash on the assertion that they have not made any errors whilst also incentivising 3rd parties to try and spot errors in the published literature</p>
</section>
<section id="extensions-to-the-review-bounty-model" class="level2">
<h2 class="anchored" data-anchor-id="extensions-to-the-review-bounty-model">Extensions to the review bounty model</h2>
<p>In it’s simplest form ‘journal’ combines a number of potential functions</p>
<ul>
<li>Additional parties
<ul>
<li>Proofreaders &amp; type-setters Instead of having a journal do this in house they could directly be in on the bounty cut</li>
<li>Hosting, host of sites for servering publications, and services for administering their publication could also be directly included, especially in a context where journals are no longer as relevant and publications might be shared independently of them.</li>
</ul></li>
<li>Extened bounties from interested parties e.g.&nbsp;a pharma company is contempating starting a new program based on this work they can put a large bug bounty on it to try and attract additional 3rd party srcutiny and save them money on the long run from on investing in a dead end if an error is discovered early.</li>
<li>Grant award bodies could require minimum bug-bounty amounts / proportions to ensure that work theat they fund gets adaquate srcutiny</li>
</ul>
</section>
<section id="integration-into-a-larger-picture-of-publication-workflow-reform" class="level2">
<h2 class="anchored" data-anchor-id="integration-into-a-larger-picture-of-publication-workflow-reform">Integration into a larger picture of publication workflow reform</h2>
<p>This proposal forms a part of a larger set of reforms to the conventional publishing model that I will be writing about here under the heading <a href="https://blog.pan-narrans.xyz/#category=literate%20science">literate science</a></p>

<p>:::</p>

</section>

<div id="quarto-appendix" class="default"><section class="quarto-appendix-contents" id="quarto-reuse"><h2 class="anchored quarto-appendix-heading">Reuse</h2><div class="quarto-appendix-contents"><div><a rel="license" href="https://creativecommons.org/licenses/by-sa/4.0](HTTPS://CREATIVECOMMONS.ORG/LICENSES/BY-SA/4.0/)/">CC BY-SA 4.0](HTTPS://CREATIVECOMMONS.ORG/LICENSES/BY-SA/4.0/)</a></div></div></section></div> ]]></description>
  <category>publications</category>
  <category>literate science</category>
  <guid>https://richardjacton.gitlab.io/pan-narrans-blog/posts/2023-06-24-review-bounties/review-bounties.html</guid>
  <pubDate>Sat, 24 Jun 2023 00:00:00 GMT</pubDate>
</item>
<item>
  <title>Podcast appearance on fixing academic publishing</title>
  <dc:creator>Richard J. Acton</dc:creator>
  <link>https://richardjacton.gitlab.io/pan-narrans-blog/posts/2023-05-17-bayesian-conspiracy-academic-publishing/</link>
  <description><![CDATA[ 





<p><img src="https://richardjacton.gitlab.io/pan-narrans-blog/posts/2021-10-06-bayesian-conspiracy-aging/cropped-TBC.png" class="img-fluid" width="180"></p>
<p>I made another appearance on the <a href="https://www.thebayesianconspiracy.com/2023/05/187-github-review-bounties-to-save-science-with-richard-acton/">bayesian conspiracy podcast</a> to talk about the sorry state of academic publishing and some things we might be able to do to fix it including my concept of Review Bounties.</p>

<p>:::</p>


 ]]></description>
  <category>rationalism</category>
  <category>podcasts</category>
  <category>literate science</category>
  <guid>https://richardjacton.gitlab.io/pan-narrans-blog/posts/2023-05-17-bayesian-conspiracy-academic-publishing/</guid>
  <pubDate>Wed, 17 May 2023 00:00:00 GMT</pubDate>
</item>
<item>
  <title>Showing our working</title>
  <dc:creator>Richard J. Acton</dc:creator>
  <link>https://richardjacton.gitlab.io/pan-narrans-blog/posts/2023-04-03_babraham-blog/</link>
  <description><![CDATA[ 





<section id="why-show-our-working" class="level2">
<h2 class="anchored" data-anchor-id="why-show-our-working">Why show our working?</h2>
<p>We all remember being told to show our working in school, usually in maths 🧮. Why were we asked to do this? So that someone else can follow our reasoning, step-by-step, and see (with a little effort) for themselves if they found our reasons sound, or at least partially so. This is one of the fundamental motivating factors for open science, sharing our data and methods so that others can assess our conclusions for themselves with all of the same information. This is core to the corrective mechanism that drives the scientific progress, you can’t progress if you can’t spot mistakes, gaps, and misunderstandings; importantly, you can’t spot these if you can’t see our working. Ideally anyone can ask: “how do you know what you think you know?” and we can provide a detailed and compelling answer that anyone can challenge and, with some effort, check for themselves. Trust in our conclusions is, rightly, derived from the transparency and accountability of our processes. This applies both within the scientific community and to our relationship with the public.</p>
<p>The number and complexity of the steps that take us from our starting point to our conclusions in modern science has grown as the depth of our understanding of the world has increased. This has made it harder, as a practical matter, to show all of our working from start to finish. Doing so however is no less important now than it was ever been, if anything the complexity of modern science makes it more important than ever. The length of the story that now has to be told to get from basic assumptions to conclusions is quite long. In many cases there is also a great deal of context needed to understand some of the questions we now tackle. This can present a significant communication challenge when interacting with the public and even specialists in other disciplines. The effort necessary to asses the strength of others’ conclusions has risen, this makes the importance of explanatory clarity greater than ever. One of the factors which makes completeness of description challenging is that It is rarely one person, or even one research group, that is responsible for the full chain of steps that produce a modern research paper, especially ‘prestigious’ ones with lots experiments often making use of varied methods. Thus, there is no single person with full insight into the granular details of every experiment and method used in many modern papers. Consequently, ensuring that every detail needed for reproducible work can be a significant coordination challenge among co-authors.</p>
<p>So how are we, the scientific community doing at this task of showing our work? Unfortunately not as well as you might hope.</p>
</section>
<section id="are-we-any-good-at-showing-our-working-how-hard-can-it-be" class="level2">
<h2 class="anchored" data-anchor-id="are-we-any-good-at-showing-our-working-how-hard-can-it-be">Are we any good at showing our working? How hard can it be?</h2>
<p>To start with, across disciplines our work is getting harder to read. It has become laden with ‘science-ese’ or general scientific jargon, or so conclude Plaven-Sigray and co-authors in a 2017 paper in eLIFE “The readability of scientific texts is decreasing over time” <span class="citation" data-cites="plavén-sigray2017">(Plavén-Sigray et al. 2017)</span>. This does not help the general accessibility of our work to colleagues, students, science journalists or the public. Nor does it appear to driven by specific technical jargon which is a useful communication shorthand, it’s apparently mostly the addition of seemingly superfluous polysyllabic obfuscationalisms presumably so that we can show-off our erudition 😉.</p>
<p>Richard F. Harris’s 2017 book “Rigor mortis: how sloppy science creates worthless cures, crushes hope, and wastes billions” <span class="citation" data-cites="harris2017">(Harris 2017)</span> &amp; Stuart Ritchie’s 2020 book “Science fictions: exposing fraud, bias, negligence and hype in science” <span class="citation" data-cites="ritchie2020">(Ritchie 2020)</span> called popular attention to issues of reproducibility especially in the life sciences. In 2021 a series of papers was published by the ‘<a href="https://www.cos.io/rpcb">Reproducibility Project: Cancer Biology</a>’ summarising the results of efforts spanning 8 years to reproduce the findings of 193 experiments from 53 prominent papers in field of cancer biology. Their results were not particularly reassuring. <strong>0 of the 193 experiments were described in sufficient detail for the project team to design protocols to repeat them</strong> 😅, yes none of them could be repeated without additional information from the original researchers. Of the 193 experiments the researchers were eventually able to repeat 50, where they were able to get some additional information from the original researchers, 32% of whom did not respond helpfully or at all to their inquiries. Between 40% and 80% of these 50 experiments, were successfully replicated, depending on how the criteria for successful replication were applied. Reproducing biological work is genuinely a difficult task, lab work requires significant skill that is often hard to fully codify in protocols. Biology has a lot of inherent variability even when you are going to great lengths to get the same starting conditions there are sometimes factors that it is difficult to control. Analysing your data though, reproducing that should be easy right 😎? It’s all on the computer you can just run the same thing again right 🥺? Alas it is not as simple as you might think 🤦. It can take several months to reproduce a bioinformatic analysis in a published paper if it is possible at all, see: “Quantifying Reproducibility in Computational Biology: The Case of the Tuberculosis Drugome” <span class="citation" data-cites="garijo2013">(Garijo et al. 2013)</span>. (Significant strides have been made in reproducible analysis since that paper was written but I’ve not found a more recent attempt to quantify the problem.)</p>
<p>Why is this the case? What makes reproducibility hard and what can we do to make it better?</p>
</section>
<section id="how-can-we-do-better" class="level2 page-columns page-full">
<h2 class="anchored" data-anchor-id="how-can-we-do-better">How can we do better?</h2>
<p>As the data outputs manager for the <a href="https://www.hdbi.org">Human Developmental Biology Initiative (HDBI)</a> It’s my role to make it easier for the other scientists in HDBI to make their data available to others, and easier for them to make both their experiments and analyses reproducible.</p>
<section id="whats-needed-for-data-methods-to-be-open-and-reproducible" class="level3 page-columns page-full">
<h3 class="anchored" data-anchor-id="whats-needed-for-data-methods-to-be-open-and-reproducible">What’s needed for data &amp; methods to be open and reproducible?</h3>
<p>If you begin looking into the area of reproducibility you will, before too long, encounter the somewhat nebulous term ‘metadata’. <em>Meta</em> is from the Greek meaning something like “higher” or “beyond”, metadata, therefore is data about data. So what sorts of things are metadata? Who generated it? When? With what machine? With what settings on that machine? Why? What properties did the samples measured have? Species, type(s) of cell, stage of development? What where the sample preparation steps? The answers to all these questions and more can be considered metadata. This abundance of possible properties that could be recorded leads to the following questions:</p>
<ul>
<li>How do we decide which pieces of metadata we need for a given experiment?</li>
<li>How do we store and organise them nicely so people and computers can read them?</li>
</ul>
<p>The answers to these questions are complex and context dependent but in general scientific communities have to get together and decide for themselves what they need to know and how best to represent that information by creating community standards that they can agree to adhere to.</p>
<p>This has varying degrees of success…. 🤷 <img src="https://imgs.xkcd.com/comics/standards.png" class="img-fluid"></p>
<p>Fortunately, There are some general principles that we can adhere to when designing domain specific metadata standards and things it is sensible for everyone to consider when sharing their data. These are the principles of ‘linked data’ where we can used the ‘resource description framework’ to devise a suitable representation of our metadata. This is not always the most practical format of metadata for day-to-day use but if you can automatically translate your working format to a linked data format then others can use a shared set of tools to combine data from your domain with data from theirs. In this way components common to different domains can be re-used e.g.&nbsp;an agreed set of standard terms to refer to certain classes of things like cell-types or sequencing technologies so that we don’t use different words for the same thing. For more on metadata standards checkout <a href="https://hdbi.gitlab.io/data-management/hdbi-data-resource/01-what-constitutes-data.html#sec-metadata">the section in my book</a>.</p>
<p>One of the ways of thinking about making our data available for others to use, so that they can not only use it in their own work, but also check existing conclusions is based around the acronym FAIR:</p>
<section id="fair-findable-accessible-interoperable-re-usable" class="level4 page-columns page-full">
<h4 class="anchored" data-anchor-id="fair-findable-accessible-interoperable-re-usable">FAIR (Findable, Accessible, Interoperable, Re-usable)</h4>
<ul>
<li>Findable
<ul>
<li>Has a unique identifier that can be looked up in a database, plus some associated terms so you can find the id with a search.</li>
</ul></li>
<li>Accessible
<ul>
<li>If I’ve got the ID I can download a copy, or figure out who to ask for permission to download a copy if there are e.g.&nbsp;privacy restrictions.</li>
</ul></li>
<li>Interoperable
<ul>
<li>It’s in a file format I can read (without expensive proprietary software).</li>
<li>It’s described in standard terminology so I can easily search for it and connect it with data about the same/related things.</li>
</ul></li>
<li>Re-usable
<ul>
<li>Where is came from/how it was generated and other attributes are well documented according to community standards.</li>
<li>It’s licensed so it can be used.</li>
</ul></li>
</ul>
<p>Reproducing lab work 👨‍🔬 and computational work 👨‍💻 analogises quite well to cooking 👨‍🍳, a recipe is comprised of a list of ingredients (Data, Materials &amp; Reagents), a set of steps to follow (Code, Protocols), and descriptions of the environment in which the food is cooked. e.g. The type and temperature of the oven (Compute environment, Lab environment) and additional information that helps me find, contextualise and appropriately use the recipe (metadata): Some recipes are overly vague and some highly specific, this might depend on the difficultly and stakes of getting a tasty or at least edible result. Science can be like high stakes cooking (Think, a meal for diplomats from two countries with a tense relationship who also happen to be restaurant critics with a bunch of mutually incompatible food allergies and religious dietary restrictions) so the recipes have to be good, <em>really good</em> 😅.</p>
<p>Here’s a table fleshing out the analogy with some small examples of the sorts of information that can fall into these categories as they apply to these different disciplines:</p>
<div class="column-screen-inset">
<table class="table">
<thead>
<tr class="header">
<th style="text-align: center;">
<p>
</p>
</th>
<th style="text-align: left;">
<p>
Cooking 🧑‍🍳
</p>
</th>
<th style="text-align: left;">
<p>
Lab Work 🧑‍🔬
</p>
</th>
<th style="text-align: left;">
<p>
Computational Analysis 🧑‍💻
</p>
</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td style="text-align: center;">
<p>
Inputs
</p>
</td>
<td style="text-align: left;">
<p>
<strong>Ingredients</strong>
</p>
<ul>
<li>
<p>
❌ 7oz Flour (vague)
</p>
</li>
<li>
<p>
✅ 200g Plain Wheat Flour (all-purpose/550/55/0)
</p>
</li>
</ul>
</td>
<td style="text-align: left;">
<p>
<strong>Materials &amp; Reagents</strong>
</p>
<ul>
<li>
<p>
❌ HeLa cells
</p>
</li>
<li>
<p>
✅ <a href="https://hpscreg.eu/about/naming-tool">UKBi001-A</a>
</p>
</li>
</ul>
</td>
<td style="text-align: left;">
<p>
<strong>Data</strong>
</p>
<ul>
<li>
<p>
❌ Human Genome
</p>
</li>
<li>
<p>
✅ <em>Homo sapiens</em> (NCBI:txid9606) genome (Ensembl 109, GRCh38.p13)
</p>
</li>
</ul>
</td>
</tr>
<tr class="even">
<td style="text-align: center;">
<p>
Process
</p>
</td>
<td style="text-align: left;">
<p>
<strong>Cooking Instructions</strong>
</p>
<ul>
<li>
<p>
❌ Bake at medium temperature until bronzed (vague)
</p>
</li>
<li>
<p>
✅ Bake at 190C for 35mins if using a fan oven
</p>
</li>
</ul>
</td>
<td style="text-align: left;">
<p>
<strong>Protocols</strong>
</p>
<ul>
<li>
<p>
❌ Gel electrophoresis (vague)
</p>
</li>
<li>
<p>
✅ Agarose gel electrophoresis (0.5%) TBE buffer, 120V, ethidium bromide, 10kb ladder from…
</p>
</li>
</ul>
</td>
<td style="text-align: left;">
<p>
<strong>Code</strong>
</p>
<ul>
<li>
<p>
❌ <code>random-script-from-email.R</code>
</p>
</li>
<li>
<p>
✅ <code>git</code> repository
</p>
</li>
</ul>
</td>
</tr>
<tr class="odd">
<td style="text-align: center;">
<p>
Environment
</p>
</td>
<td style="text-align: left;">
<p>
<strong>Kitchen Conditions</strong>
</p>
<ul>
<li>
Ambient temperature, pressure, and humidity (What’s the boiling point of water in your kitchen?)
</li>
</ul>
</td>
<td style="text-align: left;">
<p>
<strong>Lab Environment</strong>
</p>
<ul>
<li>
<p>
Ambient temperature, pressure, and humidity (What’s the boiling point of water in your <del>kitchen</del> Lab?)
</p>
</li>
<li>
<p>
How you wash you glassware (no really this has affected the reproducbility of experiments)
</p>
</li>
</ul>
</td>
<td style="text-align: left;">
<p>
<strong>Compute Environment</strong>
</p>
<ul>
<li>
<p>
OS 🐧/🪟/🍎
</p>
</li>
<li>
<p>
🩹 R v4.2.0
</p>
</li>
<li>
<p>
✅ Environment management tools &amp; Containers <code>renv.lock</code>
</p>
</li>
</ul>
</td>
</tr>
<tr class="even">
<td style="text-align: center;">
<p>
Context
</p>
</td>
<td style="text-align: left;">
<p>
<strong>Discernment</strong>
</p>
<ul>
<li>
<p>
History, Culture, &amp; Origins of a Dish 🌍
</p>
</li>
<li>
<p>
Allergens 😵
</p>
</li>
<li>
<p>
Appropriate pairings 🍷
</p>
</li>
</ul>
</td>
<td style="text-align: left;">
<p>
<strong>Metadata</strong>
</p>
<ul>
<li>
<p>
❌ Who: Steve, When: Tuesday (vague)
</p>
</li>
<li>
<p>
✅ Who: Steven Stickler (ORCID: 0000-1234-1234-1234), When: 2023-03-30 15:34 (UTC+0)
</p>
</li>
</ul>
</td>
<td style="text-align: left;">
<p>
<strong>Metadata</strong> (same as Lab +)
</p>
<ul>
<li>
<p>
Who: PGP fingerprint: 96C2 0929 FA88 DD89 9270
</p>
</li>
<li>
<p>
When: commit hash: 954086fdf13d8…
</p>
</li>
</ul>
</td>
</tr>
</tbody>
</table>
</div>
<p>When a protocol can’t quite capture your bench work well enough that someone else could do your experiment if they read it, then you can take the approach of <a href="https://www.jove.com/">JoVE</a> (The Journal of Visualised Experiments). If that’s a bit much the less formal approach is available, anyone with a smartphone or action camera can film their experimental work upload it to figshare and get a DOI to reference in a protocol on <a href="https://www.protocols.io/">protocols.io</a> or in a paper. (Enlist the help of a student an alarming fraction of them are surprisingly capable videographers thanks to social media.)</p>
<p>What does a ‘computational environment’ mean? When doing an analysis you don’t re-implement all steps from scratch you use existing tools to perform many calculations, these in turn use other tools creating a ‘tree’ of ‘dependencies’. The way these tools work can change if the software gets updates so to re-run your analysis exactly I need to know not just the steps that you took but the versions of the tools you were using and the versions of the tools your tools where using, and so on. It’s tools all the way down. Fortunately there are tools for taking inventory of all the versions of all the tools that you’ve used, sharing this list and even re-creating the same computational environment from these inventories. Checkout <a href="https://hdbi.gitlab.io/data-management/hdbi-data-resource/04-working-with-data.html#sec-reproducible-computational-analysis">the section in my book</a> to learn more about this.</p>
</section>
</section>
</section>
<section id="how-can-we-encourage-the-adoption-of-these-practices" class="level2">
<h2 class="anchored" data-anchor-id="how-can-we-encourage-the-adoption-of-these-practices">How can we encourage the adoption of these practices?</h2>
<p>So why are we not working more reproducibly already? It’s quite hard to do in certain cases often because tooling and automations have not caught up to make it easier. It’s also not yet a norm to which we expect one-another to conform in the scientific community, either when we review others’ work or when we have our own reviewed. In his article Five selfish reasons to work reproducibly <span class="citation" data-cites="markowetz2015">(Markowetz 2015)</span> Florian Markowetz lays out some excellent reasons to get ahead of the curve on working reproducibly.</p>
<p>The laboriousness of recording and providing this level of detail can be a major impediment to researchers actually sharing their processes if they don’t feel that doing so will be time well spent. So we should ask what can be automated, what tools, practices and standard procedures can scientists adopt to make the provision of sufficiently detailed structured information a part of their workflow that does not get in their way, and if anything makes their lives easier?</p>
<section id="crafting-a-pit-of-sucess" class="level3">
<h3 class="anchored" data-anchor-id="crafting-a-pit-of-sucess">Crafting a ‘pit of sucess’</h3>
<p>Make FAIR data and reproducibility the default and the expectation in every area, such that if you ‘go with the flow’ your work will be FAIR and reproducible. Not everyone will have the time, inclination or incentive to strive relentlessly towards a ‘pinnacle of excellence’ so raise to floor not the ceiling and construct a ‘pit of success’ into which we can all trip without trying too hard. We can do our best to make it easy &amp; useful to do so but this may not be quite enough to get up over the hump in all cases. So in some cases we may have to take a slightly more “Nice paper/grant/dataset you’ve got there ’be a shame if you couldn’t publish/fund/generate it, unless…” approach.</p>
<p>Here is my advice for people in various roles for using a mixture of carrots 🥕 and sticks📏 to improve FAIR data practices and working reproducibility.</p>
<ul>
<li>Core facility Staff
<ul>
<li>If you run/work in Microscopy, flow cytometry, bioinformatics, proteomics, sequencing, etc. facilities develop policies which make good metadata annotations a condition of researchers using your facilities and getting access to the data once it has been generated. Make it as frictionless as possible so as not to put them off, and showcase how useful it is to be able to call on well structured and anotated datasets.</li>
</ul></li>
<li>Human Resources
<ul>
<li>Make proper data stewardship part of the on-boarding and leaving process. You shouldn’t be able to clear HR when you are leaving if your data is not in a suitable state to hand over to others.</li>
</ul></li>
<li>Software Developers &amp; IT Staff
<ul>
<li>Build tools and systems which make the ingestion, annotation, sharing, accessing, and processing of data as intuitive, seamless and integrated a process as possible with open-source tools.</li>
<li>(Don’t develop a proprietary platform or product to try and solve these issue or people like me will tell others not to use it as the incentives don’t line up with the degree of interoperability and portability needed in science. Go with an open-source business model that is compatible with the openness required by scientific process.)</li>
<li>Package your software so that it can easily be included in portable reproducible environments like Docker simply and declaratively.</li>
</ul></li>
<li>Peer Reviewers
<ul>
<li>When you review things ask questions about reproducibility, and FAIR data. This is where the expectation of higher standards in this area can begin to be set. (Also if you get asked to review stuff a lot and would like to reduce incoming requests suddenly becoming a reproducibility nut might lighten your load 😉). If you are asking these questions in your reviews of papers it may clue editors in that academics now expect this and shape their decisions on what to put out for review in the first place.</li>
</ul></li>
<li>Journal Editors
<ul>
<li>If you are a journal editor and you are deciding between many good submissions make this a criterion for what you choose.</li>
</ul></li>
<li>Grant Reviewers
<ul>
<li>If you review grants ask about peoples plans for making their data FAIR and their analyses reproducible. This will get them thinking about it well in advance and hopefully planning for it, especially if they think it might be the difference between getting funded or not.</li>
</ul></li>
<li>Press
<ul>
<li>If you are a member of the press or a populariser of science, report favourably on publications that show their work and skeptically of those that don’t.</li>
<li>Ask questions about reproducibility and openness when interviewing scientist and push university PR departments about these qualities in the papers they choose to make press releases about.</li>
</ul></li>
<li>Public <em>(also applies if you fall into any of the other categories)</em>
<ul>
<li>Ask your elected representative or the relevant minister (At time of writing <a href="https://www.gov.uk/government/people/michelle-donelan">Michelle Donelan</a> Secretary of State for Science, Innovation and Technology) why the research councils aren’t holding their grant awardees to a higher standard on reproducibility and FAIR data so that the best use can be made of public research funds?</li>
</ul></li>
</ul>
</section>
</section>
<section id="where-can-i-start-learn-more" class="level2">
<h2 class="anchored" data-anchor-id="where-can-i-start-learn-more">Where Can I Start / Learn More?</h2>
<p>I’ve written a short ebook as a resource for HDBI members “<a href="https://hdbi.gitlab.io/data-management/hdbi-data-resource/">Data: Inception to Publication &amp; Beyond</a>” this is directed at a more technical audience but aims to be written in an accessible style. It features many links to external resources to learn more about a given topic in various media. It’s a living document and I’m working on some new material for it, I’m always looking for feedback, comments and suggestions for improvement from any readers.</p>
<p>To get a sense of what it covers here’s a table of contents:</p>
<ol type="1">
<li>What Constitutes Data?</li>
<li>When Should I Generate Data?</li>
<li>How to Store Your Data</li>
<li>Working With Data</li>
<li>When to Publish Data</li>
<li>Where to Publish Data</li>
<li>What Data to Publish</li>
<li>How to License Your Data</li>
<li>How to Manage References</li>
</ol>

<p>:::</p>


</section>

<div id="quarto-appendix" class="default"><section class="quarto-appendix-contents" id="quarto-bibliography"><h2 class="anchored quarto-appendix-heading">References</h2><div id="refs" class="references csl-bib-body hanging-indent" data-entry-spacing="0">
<div id="ref-garijo2013" class="csl-entry">
Garijo, Daniel, Sarah Kinnings, Li Xie, Lei Xie, Yinliang Zhang, Philip E. Bourne, and Yolanda Gil. 2013. <span>“Quantifying Reproducibility in Computational Biology: The Case of the Tuberculosis Drugome.”</span> Edited by Christos A. Ouzounis. <em>PLoS ONE</em> 8 (11): e80278. <a href="https://doi.org/10.1371/journal.pone.0080278">https://doi.org/10.1371/journal.pone.0080278</a>.
</div>
<div id="ref-harris2017" class="csl-entry">
Harris, Richard F. 2017. <em>Rigor Mortis: How Sloppy Science Creates Worthless Cures, Crushes Hope, and Wastes Billions</em>. New York: Basic Books.
</div>
<div id="ref-markowetz2015" class="csl-entry">
Markowetz, Florian. 2015. <span>“Five Selfish Reasons to Work Reproducibly.”</span> <em>Genome Biology</em> 16 (1). <a href="https://doi.org/10.1186/s13059-015-0850-7">https://doi.org/10.1186/s13059-015-0850-7</a>.
</div>
<div id="ref-plavén-sigray2017" class="csl-entry">
Plavén-Sigray, Pontus, Granville James Matheson, Björn Christian Schiffler, and William Hedley Thompson. 2017. <span>“The Readability of Scientific Texts Is Decreasing over Time.”</span> <em>eLife</em> 6 (September). <a href="https://doi.org/10.7554/elife.27725">https://doi.org/10.7554/elife.27725</a>.
</div>
<div id="ref-ritchie2020" class="csl-entry">
Ritchie, Stuart. 2020. <em>Science Fictions: Exposing Fraud, Bias, Negligence and Hype in Science</em>. London: The Bodley Head.
</div>
</div></section><section class="quarto-appendix-contents" id="quarto-reuse"><h2 class="anchored quarto-appendix-heading">Reuse</h2><div class="quarto-appendix-contents"><div>CC-BY 4.0</div></div></section></div> ]]></description>
  <category>publications</category>
  <category>literate science</category>
  <guid>https://richardjacton.gitlab.io/pan-narrans-blog/posts/2023-04-03_babraham-blog/</guid>
  <pubDate>Mon, 03 Apr 2023 00:00:00 GMT</pubDate>
</item>
<item>
  <title>My new ebook ‘Data: Inception to Publication &amp; Beyond’</title>
  <dc:creator>Richard J. Acton</dc:creator>
  <link>https://richardjacton.gitlab.io/pan-narrans-blog/posts/2023-01-31-HDBI-Data-Resource/</link>
  <description><![CDATA[ 





<p>I recently published a short ebook that I’ve been working on as a part of my role at the Human Developmental Biology Initiative. I’m calling it “Data: Inception to Publication &amp; Beyond”.</p>
<p>The focus is on creating a workflow for streamlined generation, analysis, &amp; publication of FAIR research data with reproducible analyses both in theory and practice.</p>
<p><a href="https://hdbi.gitlab.io/data-management/hdbi-data-resource/">HDBI data resource</a></p>
<p>To anyone who reads it I would much appreciate any feedback or contributions, details of how best to provided are in the intro to the book.</p>

<p>:::</p>


 ]]></description>
  <category>publications</category>
  <category>literate science</category>
  <guid>https://richardjacton.gitlab.io/pan-narrans-blog/posts/2023-01-31-HDBI-Data-Resource/</guid>
  <pubDate>Mon, 30 Jan 2023 00:00:00 GMT</pubDate>
  <media:content url="https://richardjacton.gitlab.io/pan-narrans-blog/posts/2023-01-31-HDBI-Data-Resource/HDBI-data-logo.svg" medium="image" type="image/svg+xml"/>
</item>
<item>
  <title>FLOSS Exobrains Braindump</title>
  <dc:creator>Richard J. Acton</dc:creator>
  <link>https://richardjacton.gitlab.io/pan-narrans-blog/posts/2022-06-12-FLOSS-exobrain-braindump/</link>
  <description><![CDATA[ 





<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><img src="https://richardjacton.gitlab.io/pan-narrans-blog/posts/2022-06-12-FLOSS-exobrain-braindump/brain-1.svg" class="img-fluid figure-img" width="180"></p>
<figcaption>brain-1 icon by Servier https://smart.servier.com/ is licensed under CC-BY 3.0 Unported https://creativecommons.org/licenses/by/3.0/</figcaption>
</figure>
</div>
<p>LAST UPDATED: 2023-09-22 (see this files history in the <a href="https://gitlab.renkulab.io/racton/pan-narrans-blog/-/commits/master/posts/2022-06-12-FLOSS-exobrain-braindump">repo</a>)</p>
<p>I set myself the constraint of using of Free/Libre and open source (FLOSS) software tools for the task of creating an exobrain.</p>
<p>Here are some of the tool’s I’ve considered and in some case am using to do this. First Why did I impose this constraint? I regard it as as an essential feature of a exobrain that it can be private, secure and will always accessible to me in an open an interoperable format into the future. This way you can own the data in your exobrain and still have access to it if the company that makes the product/service that you are using goes out of business. I have philosophical and ethical problems with proprietary software (see: <a href="https://www.gnu.org/philosophy/">GNU philosophy</a>) &amp; consider a right to privacy to be of fundamental political importance (see: <a href="https://openlibrary.org/works/OL24353841W/Privacy_is_Power">Privacy is Power</a>. I’ve added a password manager as an essential component of a modern exobrain and some notes on private communications.</p>
<section id="meta-apps-platforms-tools" class="level2">
<h2 class="anchored" data-anchor-id="meta-apps-platforms-tools">meta (apps / platforms / tools)</h2>
<p>These are tools which facilitate building an exobrain on your own private cloud so you can access it anywhere and retain data ownership.</p>
<ul>
<li><p><strong><a href="https://nextcloud.com/">Nextcloud</a></strong> is the first (meta)application to mention. is is a self-hosted google drive / drop box / one drive etc. replacement. It has many features and extensions that could potential fulfil all your exobrain app categories for notes, calandar &amp; tasks. The key feature for me is calendar and contacts (this can include calendar based tasks for those who use their email’s todo list)</p>
<ul>
<li>Nextcloud features (too many to mention so some highlights, there are also extensions with <a href="https://apps.nextcloud.com/">apps</a>
<ul>
<li>Nextcloud Deck for Kanban - style task boards</li>
<li>Calendar/contacts sync and management via webDAV with web interfaces</li>
<li>Integration with A choice of 2 collaborative document editors Collabra (libreoffice) and onlyoffice</li>
<li>dedicated Mobile apps for tasks, recipes and other things.</li>
</ul></li>
<li>How to Host nextcloud
<ul>
<li>To self-host nextcloud I recommend setting up a <a href="box https://www.truenas.com/">TrueNAS</a> on which to host a nexcloud instance. It has a simple interface to do this and is built of the highly robust ZFS file system which provides the advanced user with what I regard as the best available guarantees or data integrity and security available in any storage solution, especially for secure encrypted off-site backups.
<ul>
<li><em>Advanced note</em>, encrypted ZFS raw snapshots should be pulled from your NAS by a remote backup system which never sees the encryption key and by a user with only the permissions necessary to do this sync over ssh. Your NAS should not be able to access the remote system over ssh only the other way around and limited to only running the sync command by configuring restrictions in authorized_keys (consult <a href="https://arstechnica.com/gadgets/2021/06/a-quick-start-guide-to-openzfs-native-encryption/">Jim Salter ARS technica blog</a> for advanced ZFS tips)</li>
</ul></li>
<li>Advanced mode - roll your own Linux host, there are many ways to do this.</li>
<li>Many virtual private server providers offer ‘1-click’ deployments of Nextcloud e.g.&nbsp;Linode however you are still entrusting your data to a 3rd party if you take this approach</li>
</ul></li>
<li>Nextcloud alternatives:
<ul>
<li><strong><a href="https://cryptpad.fr/">Cryptpad</a></strong> - very good lacks the extensibility of Nextcloud, <strong>has a paid hosting option</strong> Security and encryption model are baked into the design unlike Nextcloud which it is easier to insecurely misconfigure</li>
<li>File sync only **<a href="https://syncthing.net/">syncthing</a>*</li>
</ul></li>
</ul></li>
<li><p><em>NOT FULLY OPEN</em> <a href="https://tailscale.com/">tailscale</a> VPN This tool makes it very simple to keep your home servers on closed VPN whilst easily being able to access them from anywhere. The service for which there is a free (financially) tier handles the key exchange but once established all traffic is peer to peer over a wireguard based mesh network. There is a self-hostable but less featurefull key exchange server for the uber-paranoid with some extra computer networking skills. (Note that this is distinct from using a VPN to obscure the point of origin of your web traffic for this I currently recommend <a href="https://mullvad.net/en/">Mullvad VPN</a> for a number of reasons including that you can pay anonymously with monero)</p></li>
<li><p><strong>Notes Apps</strong></p>
<ul>
<li><strong><a href="https://logseq.com/">logseq</a></strong> - My Current Favourite. Somewhat similar to obsidian</li>
<li>emacs org mode &amp; org roam (emacs is ostensibly a text editor but it’s more of a lifestyle)</li>
<li><a href="https://apps.nextcloud.com/apps/carnet">Carnet</a> a google keep-like Nextcloud note app</li>
<li><strong><a href="https://joplinapp.org/">Joplin</a></strong> - markdown based notes app (web/desktop/mobile), cloud hosted option or many other could sync options including nextcloud, quick grab browser plugins</li>
<li><a href="https://tiddlywiki.com/index.html">tiddlywiki</a> A non-linear personal notebook in the form of a WIKI, local or hostable</li>
<li><a href="https://www.focalboard.com/">focalboard</a> notion-like, same dev as mattermost</li>
<li><a href="https://appflowy.io/">appflowy</a> notion-like</li>
<li><a href="https://standardnotes.com">standard notes</a> notion-like, open? but with paid option that has annoying up-sells?</li>
<li><a href="https://notesnook.com">notesnook</a> went open not originally so, open server is in the roadmap - we’ll see</li>
<li><a href="https://affine.pro/">AFFiNE</a> monday / notion-like, some interesting UI innovations, (MIT client, source available server)</li>
<li><a href="https://anytype.io/">anytype</a> - notion-like source available</li>
<li><a href="https://github.com/zadam/trilium/wiki">trilium</a> extensible scriptable ans customisable notes apps with md, freehand drawing, latex, mermaid etc.</li>
<li><a href="https://zettlr.com">zettlr</a> MD editor with Zotero integration pandoc document export.</li>
<li><a href="https://qownnotes.org">QownNotes</a> Simple MD notes with tagging in the QT framwork</li>
<li>Stylus / handwritten
<ul>
<li><a href="https://rnote.flxzt.net">Rnote</a> good alternative to Xournal++ with cleaner UI great for stylus / handwritten notes</li>
<li><a href="https://styluslabs.com">styluslabs</a></li>
</ul></li>
<li>mind map
<ul>
<li><a href="https://github.com/phase1geo/minder/">minder</a> for fans of mind mapping</li>
</ul></li>
<li><a href="https://www.dendron.so/">Dendron</a> for VScode/(<a href="https://itsfoss.com/vscodium/">VScodium</a>) aficionados</li>
<li><a href="https://www.zotero.org/">Zotero</a> Ideal for academics who need a reference manager, supports notes and PDF annotations tags etc. has many integrations including with logseq. This make a good supplement to a notes system for managing source materials that you reference in your notes. It also has a built in feed reader which facilitates the import of new articles ets. into your library. For biosciences people this pairs nicely with the feature in <a href="https://pubmed.ncbi.nlm.nih.gov/">PubMed</a> that lets you turn any search into an RSS feed (just click the create rss button under the search box). There is a web version with a nice sharing feature.</li>
</ul></li>
<li><p><strong>Task management</strong></p>
<ul>
<li><a href="https://super-productivity.com/">super-productivity</a> - sleek task and time management with web, desktop &amp; mobile apps. Syncs via popular cloud storage options and webDAV</li>
<li><a href="https://apps.nextcloud.com/apps/deck">Nextcloud deck</a> - kanban like task management within Nexcloud</li>
<li><a href="https://apps.nextcloud.com/apps/tasks">Nextcloud Tasks</a></li>
<li><a href="https://flathub.org/apps/details/com.github.alainm23.planner">planner</a> - has todoist integration and sync, alternatively CalDAV based sync (desktop only)</li>
<li>todo.txt format editors e.g.&nbsp;<a href="https://github.com/mank319/Go-For-It">go-for-it</a> &amp; <a href="https://github.com/ransome1/sleek">sleek</a> for those who like text files but also pretty guis. sync is just file sync.</li>
<li><a href="https://weektodo.me/">WeekToDo</a> a task manager/planner which may integrate well with the weekly review strategy (desktop &amp; webapp only)</li>
</ul></li>
<li><p><strong>Calendar</strong></p>
<ul>
<li>KOrganiser - a desktop calendar client which can sync with remote calendars, excellent views and highly customisable (alternatively <a href="https://apps.kde.org/kalendar/">kalendar</a> for a slightly simpler interface)</li>
<li><a href="https://apps.nextcloud.com/apps/calendar">Nextcloud Calendar</a></li>
<li><a href="https://www.thunderbird.net/en-US/calendar/">lightning calendar</a> for thunderbird mail interfaces with a calDAV calendar</li>
<li>(NON-FREE proton and tutanota calandars for privacy)</li>
</ul></li>
<li><p>Password / private key management</p>
<ul>
<li><strong><a href="https://bitwarden.com/">bitwarden</a></strong>
<ul>
<li>cloud based password manager with a self-hostable option, very featureful</li>
</ul></li>
<li><strong><a href="https://keepass.info/">keepass</a></strong>
<ul>
<li>see <a href="https://keepassxc.org/project/">keepassxc</a> for a better frontend</li>
</ul></li>
<li><em>NOT FULLY OPEN</em> but get some <strong><a href="https://www.yubico.com/">Yubikeys</a></strong> to use as your Second factor in multi factor authentication, this is better than TOTP codes. (avoid SMS 2FA if at all possible, number spoofing is an issue)</li>
</ul></li>
<li><p>(Specially for data science types)</p>
<ul>
<li>If you need a collaborative environment for analysis/development with reproducible containerised computation in Python/R (with jupyter/Rstudio) and dataset sharing, gitlab integrations and git-lfs then <a href="https://renkulab.io/">Renku</a> is for you</li>
</ul></li>
</ul>
</section>
<section id="private-comms" class="level2">
<h2 class="anchored" data-anchor-id="private-comms">Private comms</h2>
<ul>
<li><strong>email</strong>
<ul>
<li>self-hosting email is nightmarish if you want it to be actually reliable for communications it is unlikely to be a good idea for you unless you have a very specific threat model.
<ul>
<li>This said what are the <strong>best Non-free options</strong>?
<ul>
<li><a href="https://proton.me/">ProtonMail</a> - mostly interoperable with standard PGP email encryption</li>
<li><a href="https://tutanota.com/">tutanota</a> - different approach to mail encryption, better metadata protection</li>
</ul></li>
<li>Use these in-conjunction with an email aliasing service such as <a href="https://simplelogin.io/">simplelogin</a> (now owned by proton) This also has integrations with bitwarden so that you can generate a random email alias as well as a random password when signing up for services. (This reduces your risk when account info is lost in data breaches as your email no longer identifies you for things like credential stuffing attacks)</li>
</ul></li>
</ul></li>
<li>Secure Messaging apps
<ul>
<li><a href="https://www.signal.org/">Signal</a> - perhaps the most popular alternative, does have a single central server infrastructure</li>
<li>Element (and other matrix protocol apps) - operates a federated server model, <strong>encryption is not required by the protocol</strong>
<ul>
<li><a href="https://element.io/">Element</a> - somewhat discord like in it’s community and group features</li>
<li>Coming soon to the matrix protocol is <a href="https://rocket.chat/">RocketChat</a> and excellent mature slack alternative</li>
</ul></li>
<li><a href="https://zulip.com/">Zulip</a> - highly performant team chat app replacement for slack, teams etc.</li>
<li><a href="https://simplex.chat/">simpleX</a> - messenger with no fixed user ID and a decentralsied newtork</li>
<li><a href="https://getsession.org/">Session</a> - a Signal fork with no need to phone number, blockchain based global unique identifiers</li>
<li><a href="https://briarproject.org/">Briar</a> XMPP protocol based with local mesh network options over wifi/bluetooth when cellular networks are unavailable - good for disasters when infrastructure might be down</li>
</ul></li>
<li>Side note on Phone security
<ul>
<li>Phone security is particularly challenging right now, there are no truely good options which do not entail significant functionality compromise. Hardware wise nothing ideal exists, what would be desirable is a phone with hardware dip switches which physically disconnect the wi-fi/bluetooth, cellular modem, camera &amp; microphone as well as having a removable battery, an eSIM and a re-lockable boot-loader. Many phones running a mainline linux kernel still lack or have buggy basic functionality though android app emulation options are improving with the waydroid project.
<ul>
<li><a href="https://grapheneos.org/">GrapheneOS</a> probably the best secure degoogled android option, limited to google pixel hardward for the secure bootloader functionality, good profiles system that will allow you to install google play services if you need it but with limited privledges instead of their default system level access</li>
<li><a href="https://calyxos.org/">calyxOS</a> is among my prefered de-googled android options, but limited to specific hardware mainly google pixel phones</li>
<li><a href="https://lineageos.org/">Lineage OS</a> is less hardcore and will permit you to have a minimum viable google services option and work if you don’t have a locked boot-loader, available on many more handsets</li>
</ul></li>
<li><a href="https://silent.link/">silent-link</a> will permit you to acquire an anonymous phone number which can be used with your calyxOS phone with an eSIM This number is <strong>data only or SMS and inbound voice only, NO OUTBOUND CALLS</strong> It should be used in conjunction with a VOIP service for all actual calls. It can be paid for anonymously with monero.
<ul>
<li>note use a roaming phone not one from your own country this dramatically reduced the data available about you to the telecoms providers.</li>
<li>Your phone’s IMEI is still a unique identifier so you can be de-anonymised by cross referencing it with your location data from other sources. It is often illegal to change this number but swapping between a few different eSIMs can get you part way of the way there as this changes your IMEI with each eSIM.</li>
</ul></li>
<li>Desktop PCs are if anything worse in some regards than phones but less of a liability with respect to location data and at least with better alternative software options which match or exceed the capabilities of the main commercial options. Use a well regarded Linux Distro encrypt your data and update regularly, macOS and windows are privacy nightmares.</li>
</ul></li>
</ul>

<p>:::</p>

</section>

 ]]></description>
  <category>rationalism</category>
  <category>FLOSS</category>
  <guid>https://richardjacton.gitlab.io/pan-narrans-blog/posts/2022-06-12-FLOSS-exobrain-braindump/</guid>
  <pubDate>Sun, 12 Jun 2022 00:00:00 GMT</pubDate>
</item>
<item>
  <title>Ageing &amp; Immortality Special Episode</title>
  <dc:creator>Richard J. Acton</dc:creator>
  <link>https://richardjacton.gitlab.io/pan-narrans-blog/posts/2022-05-15-Xenogenesis-Special-Ageing-and-immortality/</link>
  <description><![CDATA[ 





<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><img src="https://richardjacton.gitlab.io/pan-narrans-blog/posts/2022-05-15-Xenogenesis-Special-Ageing-and-immortality/aging_vector_thumb.svg" class="img-fluid figure-img" width="180"></p>
<figcaption>progression of siluettes from and infant to an old man</figcaption>
</figure>
</div>
<p>Episode 53 of Xenothesis the podcast I cohost with my friend Michael Glinka is a <a href="https://www.xenothesis.com/53_xenogenesis_ageing_and_immortality_special/">special episode on Ageing &amp; Immortality</a></p>

<p>:::</p>


 ]]></description>
  <category>podcasts</category>
  <guid>https://richardjacton.gitlab.io/pan-narrans-blog/posts/2022-05-15-Xenogenesis-Special-Ageing-and-immortality/</guid>
  <pubDate>Sun, 15 May 2022 00:00:00 GMT</pubDate>
</item>
<item>
  <title>Performant R - how to do things faster in R</title>
  <dc:creator>Richard J. Acton</dc:creator>
  <link>https://richardjacton.gitlab.io/pan-narrans-blog/posts/2022-05-12-performant-r-workshop/</link>
  <description><![CDATA[ 





<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><img src="https://richardjacton.gitlab.io/pan-narrans-blog/posts/2022-05-12-performant-r-workshop/Rlogo.png" class="img-fluid figure-img" width="180"></p>
<figcaption>Logo of the R progamming language</figcaption>
</figure>
</div>
<p>I recently ran a workshop on writing performant R code you can find the slides at <a href="https://richardjacton.github.io/performantR/Performant_R.html">Performant R</a>.</p>
<p>I took a very wide overview of the subject covering profiling and benchmarking, vectorising, parallelism, Rcpp, and working with larger than memory datasets as well as caching of computationally results with compressed data object outputs and pipeline managment tools. There are links to further reading/watching in the presenter notes and the <a href="https://renkulab.io/gitlab/racton/performantR">gitlab repo</a>.</p>
<p>[UPDATE 2022-11-12] I ran an extended version of this workshop at the Babraham institute and migrated the code to <a href="https:renkulab.io">Renku</a> so that you can spin up an R environment to follow along with the exercises in the cloud of in a local container see the <a href="https://renkulab.io/projects/racton/performantR">Renku project page</a>.</p>

<p>:::</p>


 ]]></description>
  <category>R</category>
  <guid>https://richardjacton.gitlab.io/pan-narrans-blog/posts/2022-05-12-performant-r-workshop/</guid>
  <pubDate>Thu, 12 May 2022 00:00:00 GMT</pubDate>
</item>
<item>
  <title>Why multi-panel figures are terrible &amp; we should stop using them.</title>
  <dc:creator>Richard J. Acton</dc:creator>
  <link>https://richardjacton.gitlab.io/pan-narrans-blog/posts/2022-04-02-Why-multi-panel-figures-are-terrible-and-we-should-stop-using-them/</link>
  <description><![CDATA[ 





<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><img src="https://richardjacton.gitlab.io/pan-narrans-blog/posts/2022-04-02-Why-multi-panel-figures-are-terrible-and-we-should-stop-using-them/first-paper-on-cell-multipanel-figure.jpg" class="img-fluid figure-img" width="180"></p>
<figcaption>Literally from the fisrt cell paper I found on their site: https://doi.org/10.1016/j.cub.2023.02.013 (no offense if this was yours it’s a systemic thing I’m not picking on this figure in particular)</figcaption>
</figure>
</div>
<p>We need to talk about Multi-panel figures. To start with let us consider what information do you usually need to interpret a panel in a ‘figure’?</p>
<ul>
<li>The figure itself</li>
<li>The figure legend</li>
<li>The place in the text which references the figure</li>
<li>more often than not at least one disambiguation of a novel acronym</li>
</ul>
<p>Each of these 4 pieces of information can be located <strong>on different pages</strong> in a modern manuscript. Yes the figure and its legend are sometimes on different pages (I’m looking at you Cell WTF?). To drive this point home you can be looking at a situation like this: Figure 6(i) was discussed on page 4, printed on page 5 and the legend for which is, for some ungodly reason, printed on page 6! Oh and also the title for the figure is not on the figure but in the legend and helpfully features (YATA) yet another terrible acronym that was defined once in the abstract on page 1.</p>
<p>I don’t know about you but a mere mortal such as myself needs some working memory spare to think about the underlying concepts that a manuscript is trying to communicate to me, and <strong>I do not appreciate having to cache as many a 4 look-up tables in my head just to be able to effectively read a figure</strong>, let alone reason further about it!</p>
<p>I contend that <strong>this problem is worse when looking at electronic representations of formats meant to be printed</strong>, at least in part because it is easier to form a mental map of the relationships between these different parts of the manuscript when it is printed. When you have a physical copy the parts have relationships to one another in 3D space that take less effort to construct a mental model of. Also, it’s just easier to arrange the pages so can actually look at the different parts and the same time. e-reader like formats also suffer from this issue as they don’t have fixed pagination so the relationships between objects are still harder to model as they are not even in fixed relationship to one another in a virtual 2D space.</p>
<p><strong>I hypothesize that breaking up figure panels and placing figures in line in the text as they occur would increase reading speed and comprehension, especially in electronic media.</strong> I term this information-non locality minimization. This also entails placing information such as titles, abbreviations, and other small details like summary statistics in the figure itself. This instead of unnecessarily relegating this information to figure legends.</p>
<section id="specific-hypotheses-id-like-to-see-tested" class="level2 callout-info">
<h2 class="anchored" data-anchor-id="specific-hypotheses-id-like-to-see-tested">Specific hypotheses I’d like to see tested:</h2>
<ul>
<li>Time taken to read a paper with multi-panel figures will be longer than the time taken when information-non locality is minimised.</li>
<li>Reading comprehension tests will be worse for papers with multi-panel figures than when information-non locality is minimised.</li>
<li>Hypotheses 1 &amp; 2 will be true of both electronic and physical media but the effect size will be larger for electronic media.</li>
<li>Bound copies of papers with multi-panel figures will provide less of an advantage over information-non locality minimised copies than loose-leaf / unbound prints.</li>
<li>Effect size of the advantage information-non locality minimized versions have over multi-panel figure versions will be larger in people with dyslexia. (I’m dyslexic and it’s been thought of as an issue related to working memory, it may be why this issue jumps out at me.)</li>
</ul>
</section>
<p>If anyone wants to do this research <strong>please get in touch</strong>. If my hypotheses on reading speed and comprehension work out it would be a <em>‘fun’</em> exercise to compute an estimate for how much our collective time and money we have wasted because of bad formatting choices.</p>
<p>Why are we <strong>wasting time, energy and mental cycles mentally reassembling properly constructed figures from their component parts which we have strewn willy-nilly throughout our manuscripts?</strong> To sum up Multi-panel figures are an anachronistic concession to typesetting colour prints to a compact format for printing and they have no place in modern electronic publishing. They <strong>ruin the flow</strong> of reading a paper. They represent an unreasonable assault on the working memory resources of a reader who is trying to understand what is likely a complex topic and create undue cognitive load for readers who need their full mental faculties about them to grapple with complex scientific ideas.</p>
<p>Additionally, I think that they encourage bad graphical practices. <strong>Panels are labelled not with meaningfully interpretable titles</strong>, as both our schooling and basic common sense about presenting information dictates they should, be but with alphabet soup. <strong>These are bad practices for which we take school children to task in science classes but which we seem to have collectively forgotten in the peer-reviewed literature.</strong> <strong>Multi-panel figures should be used ONLY when it is actually useful for the understanding of the content for visuals to be placed together.</strong> <strong>We don’t need to optimize for printing in electronic formats we can have as many full-size colour figures as we need to optimally convey our point.</strong> This would be an improvement even if we stick to pdfs as the primary endpoint paradigm for published articles, the case against which deserves its own discussion.</p>

<p>:::</p>


 ]]></description>
  <category>literate science</category>
  <guid>https://richardjacton.gitlab.io/pan-narrans-blog/posts/2022-04-02-Why-multi-panel-figures-are-terrible-and-we-should-stop-using-them/</guid>
  <pubDate>Sat, 02 Apr 2022 00:00:00 GMT</pubDate>
</item>
<item>
  <title>Why rationalists should care (more) about free software</title>
  <dc:creator>Richard J. Acton</dc:creator>
  <link>https://richardjacton.gitlab.io/pan-narrans-blog/posts/2022-01-23-Why-rationalists-should-care-more-about-free-software/</link>
  <description><![CDATA[ 





<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><img src="https://richardjacton.gitlab.io/pan-narrans-blog/posts/2022-01-23-Why-rationalists-should-care-more-about-free-software/gnu-plus-linux.png" class="img-fluid figure-img" width="180"></p>
<figcaption>Tux the Linux penguin and the GNU project’s Gnu</figcaption>
</figure>
</div>
<p><em>cross-posted to <a href="https://www.lesswrong.com/posts/SoqQ3ShW2xmdpjeZ7/why-rationalists-should-care-more-about-free-software">lesswrong</a></em></p>
<section id="why-rationalists-should-care-more-about-free-software" class="level1">
<h1>Why rationalists should care (more) about free software</h1>
<p><em>especially if you want to upload your brain</em></p>
<blockquote class="blockquote">
<p>In the limit condition freedom of compute is freedom of thought.</p>
</blockquote>
<p>As we offload more of our cognition to our computational devices we expose a new threat surface for attacks on our ability to think free of malign or otherwise misaligned influence. The parties who control the computational systems to which you have outsourced your cognition have a vector by which to influence your thinking. This may be a problem for you if their interests are not aligned with your own as they can use this power to manipulate you in service of their goals and against your own.</p>
<p>The fundamental operations of our brains remain difficult to reliably and effectively interfere with primarily because of our ignorance of how to achieve this. This, however, may change as understanding of our wetware increases and subtle direct <strong>manipulations of our brain</strong> chemistry can be employed to influence our behaviour. A highly granular version of this approach is likely still quite far off but it <strong>generally feels more viscerally scary than influencing us via our technology</strong>. Surfing the web without ad-block already feels uncomfortably close to the <a href="https://youtu.be/hlCrcMeVZHs">futurama gag about ads in your dreams</a>. Increasing though this is amounting to the same thing. Indeed our technology is already doing this to us, albeit fairly crudely for now, by exploiting our reward circuits and many other subtle systematic flaws in the human psyche.</p>
<blockquote class="blockquote">
<p><strong>What is “free” software?</strong> Free as in liberty no as in gratuity, as in speech not beer, politically and not necessarily financially. The free software foundation defines free software as adhering to the <a href="https://www.gnu.org/philosophy/free-sw.html">four essential freedoms</a> which I paraphrase here:</p>
<ol start="0" type="1">
<li>The freedom to run the code however you wish</li>
<li>The freedom to examine its source code so that you can understand and modify it for your own purposes</li>
<li>The freedom to distribute the source code as is</li>
<li>The freedom to distribute modified versions of the source code</li>
</ol>
<p>Note that code which is ‘source available’ only really gets you freedom 1, depending on how the code is licenced and built this may not get you any of the others including freedom 0. Much ink has been spilt over the use of the term ‘open source’ as not going far enough as a result. Free software is often referred to by the acronyms FOSS &amp; FLOSS (Free/Libre and open source software)</p>
</blockquote>
<p>The occasionally controversial but ever prescient <a href="https://en.wikipedia.org/wiki/Richard_Stallman">Richard Stallman</a> (AKA RMS, AKA <a href="https://stallman.org/saint.html">saint IGNUcius</a>) has been banging on about the problems of proprietary software for nearly forty years at this point. Having essentially predicted the abuses of today’s software giants because he got a bad printer diver in the early 1980s.</p>
<p>The problem that Stallman saw with ‘proprietary’ software, i.e.&nbsp;software which does not meet the criteria of the four essential freedoms, is one of game theoretic incentives. <strong>Making software free serves as a pre-commitment mechanism by the software authors to not abuse the users of their software</strong>. This works by <strong>empowering users to exercise a credible threat of forking the project</strong> and cutting devs abusing their position out of the project and any associated revenue streams. Revenue from free software projects can take a number of forms e.g.&nbsp;premium-hosting, donations/pay-what-it’s-worth schemes, &amp; service/support agreements, though how to successfully monetise free software remains a hard problem.</p>
<p><strong>As the maker of a piece of propriety software, you are not subject to this kind of check on your power</strong> and it is often in your interest to increase lock-in to your product from your users to make it hard for them to leave for a competitor, should they become dissatisfied. The lack of transparency on how proprietary software works can also hide a multitude of sins such as bad security practices and provides scope for extensive surveillance of the users whilst maintaining deniability. Thus <strong>free software can serve as a solution to an alignment problem between makers and users of the software</strong>.</p>
<p>The speculative fiction of <a href="https://craphound.com/bio/">Cory Doctorow</a> and <a href="https://www.gregegan.net/">Greg Egan</a> in ‘<a href="https://www.gregegan.net/PERMUTATION/Permutation.html">permutation city</a>’, along with the speculative (non-fiction?) of <a href="https://www.overcomingbias.com/">Robin Hanson</a> in ‘<a href="https://en.wikipedia.org/wiki/The_Age_of_Em">Age of em</a>’ has painted pictures of numerous diverse dystopian futures in which software is used to curtail individual liberties, as well as to gas-light, <a href="https://www.lesswrong.com/posts/bQ6zpf6buWgP939ov/frame-control">frame control</a>, and otherwise manipulate or abuse people and other conscious entities.</p>
<p>Concerns over these potential abuses have been gaining increasing popular attention in recent years though the emphasis has been placed on <a href="https://shoshanazuboff.com/book/shoshana/">Shoshana Zuboff</a>‘s concept of <a href="https://en.wikipedia.org/wiki/Surveillance_capitalism">surveilance capitalism</a> rather than framing the problem, as I suspect Stallman would, as having its root causes in non-free software. In particular, the popularity of the Netflix documentary’<a href="https://www.thesocialdilemma.com/">The Social Dilema</a>’ made in collaboration with <a href="https://www.tristanharris.com/">Tristan Harris</a> &amp; <a href="https://aza.wtf/">Aza Raskin</a>’s <a href="https://www.humanetech.com/">Centre for human technology</a> has increased public awareness of the problems, solutions, however, remain relatively unspecified.</p>
<p>Computing is becoming ever more ubiquitous, connected and is <a href="https://www.xenothesis.com/20_cyberpunk_special/">beginning to be embedded in our bodies</a>, though mostly still as medical devices for now. Whose phone numbers do you know, what about addresses or how to travel there? How’s your mental arithmetic? <strong>how good is your recall of your chat history with all your friends - would you notice it if was subtly edited in retrospect?</strong> Do you have a voice assistant? When was the last time you left your house without your phone? <strong>The more of our cognition takes place external to our brains the more vulnerable we are to the technological capture of our thought processes by misaligned entities</strong>. <strong>If we do not take measures to ensure the alignment of software makers interests with those of software users we invite dystopias galore</strong>.</p>
<p>Over the years there have been many explicit efforts by technology companies to lock general-purpose computing devices to vendor-approved applications (e.g.&nbsp;many game consoles &amp; iPhones). This is often in the name of copyright protection and increasingly in recent years in the name of providing better security. <strong>‘Better security’ of course begs the question, against what threat model?</strong> It’s better security against malicious 3rd parties but what if I’m worried about what the 1st parties are doing? It comes down to the question of <strong>who holds the keys to the locks</strong>. I know I’d want to be the one deciding who’s signing keys I trust to go in the future-<a href="https://en.wikipedia.org/wiki/Trusted_Platform_Module">TPM</a>-analog of the computer system emulating my brain and given their track records it’s probably not Google, Apple, Amazon, Facebook <em>I’m sorry Meta - rolls eyes</em>, or Microsoft. (The basic competencies, understanding, and good widely adopted low friction systems needed for individuals to be good stewards of their own private keys is a problem in the locked bootloader space as well as the cryptocurrency space.) <strong>It is worth noting that at this point in time it is almost impossible and extremely impractical to get a completely free software computer <a href="https://libreboot.org/faq.html">down to the firmware level</a>.</strong></p>
<p><strong>I think a strong case could be made that a ‘freedom of compute’ should be enshrined in future constitutional settlements on par with freedom of speech as a protection of fundamental freedoms, in service to preserving freedom of thought</strong>. FOSS development has been <a href="https://forum.effectivealtruism.org/posts/rfpKuHt8CoBtjykyK/how-impactful-is-free-and-open-source-software-development">discussed in the EA community</a> as a potentially valuable intervention. Developers seem to be overrepresented in the rationalist community so maybe this is a bit of a touchy subject for any of us working on proprietary code. I’m of the opinion that we as a community should advocate for free software and that there is a certain synergy between the free software movement’s goals and those of the rationality community, I’d be interested to hear contrary opinions.</p>
<p><strong>Well-aligned software has the potential to massively improve our lives both at the individual and societal levels</strong>, <a href="https://www.youtube.com/playlist?list=PLNEfwKn4eF0Viixb5Np6YDrWFw17PvH9z">look at what Taiwan is doing with open software in digital governance</a>. Making use of some of the same behavioural modification tricks currently used to sell us crap we don’t need and immiserate us as a side effect so that we can be sold the cure can be turned to good. Helping us to establish good habits, to break bad ones and beat <a href="https://www.lesswrong.com/tag/akrasia">akrasia</a>. To collaborate and communicate more deeply and effectively, instead of more shallowly and ineffectually. To be understood not misunderstood, seen for who we are and not through the funhouse mirror of beautification filters. To build a <a href="https://www.lesswrong.com/tag/fun-theory">fun</a> world together, not a depressing and solipsistic one.</p>
<p><strong>Disclosure: I am an associate member of the FSF, and pay them an annual membership fee &amp; the link on ‘<a href="https://www.xenothesis.com/20_cyberpunk_special/">beginning to be embedded in our bodies</a>’ is a shamelessly self-promotional link to an episode of my podcast were my co-host and I discuss embedded tech and its implications at length</strong></p>

<p>:::</p>

</section>

 ]]></description>
  <category>rationalism</category>
  <category>FLOSS</category>
  <guid>https://richardjacton.gitlab.io/pan-narrans-blog/posts/2022-01-23-Why-rationalists-should-care-more-about-free-software/</guid>
  <pubDate>Sun, 23 Jan 2022 00:00:00 GMT</pubDate>
</item>
<item>
  <title>My First First Author paper!</title>
  <dc:creator>Richard J. Acton</dc:creator>
  <link>https://richardjacton.gitlab.io/pan-narrans-blog/posts/2021-10-06-tRNA-paper/</link>
  <description><![CDATA[ 





<p>I published my first first author paper: <a href="https://doi.org/10.1038/s41467-021-22639-6">The genomic loci of specific human tRNA genes exhibit ageing-related DNA hypermethylation Download PDF</a>. Many thanks to my PhD supervisor and main co-author on this Chris Bell for all his help getting this out.</p>

<p>:::</p>


 ]]></description>
  <category>publications</category>
  <guid>https://richardjacton.gitlab.io/pan-narrans-blog/posts/2021-10-06-tRNA-paper/</guid>
  <pubDate>Wed, 06 Oct 2021 00:00:00 GMT</pubDate>
</item>
<item>
  <title>PhD Thesis</title>
  <dc:creator>Richard J. Acton</dc:creator>
  <link>https://richardjacton.gitlab.io/pan-narrans-blog/posts/2021-10-06-Thesis/</link>
  <description><![CDATA[ 





<p>Now that my <a href="https://richardjacton.github.io/thesis/">PhD Thesis</a> is available online I thought I would update my blog to point to it in case anyone want to read it. It’s hosted here on github pages and was written in Rmarkdown and built with the <a href="https://pkgs.rstudio.com/bookdown/">bookdown</a> package.</p>

<p>:::</p>


 ]]></description>
  <category>publications</category>
  <guid>https://richardjacton.gitlab.io/pan-narrans-blog/posts/2021-10-06-Thesis/</guid>
  <pubDate>Wed, 06 Oct 2021 00:00:00 GMT</pubDate>
</item>
<item>
  <title>Xenothesis</title>
  <dc:creator>Richard J. Acton</dc:creator>
  <link>https://richardjacton.gitlab.io/pan-narrans-blog/posts/2021-10-06-Xenothesis/</link>
  <description><![CDATA[ 





<p><img src="https://richardjacton.gitlab.io/pan-narrans-blog/posts/2021-10-06-Xenothesis/xenothesis-logo.png" class="img-fluid" width="180"></p>
<p>I have a Podcast with my friend Michael Glinka, It’s called <a href="https://www.xenothesis.com">Xenothesis</a>. In it Michael reads Octavia E. Butler’s Xenogenesis trilogy (alternatively known as Lilith’s brood) for the first time and we discuss the books including any scientific topics, especially biological one that come up. I regard Xenogenesis as essential sci-fi for anyone working in the biological sciences.</p>
<p>We have also done two special episodes one discussing <a href="https://www.xenothesis.com/20_cyberpunk_special/">cyberpunk</a> and on <a href="https://www.xenothesis.com/25_gattaca_special/">GATTACA</a>.</p>

<p>:::</p>


 ]]></description>
  <category>books</category>
  <category>podcasts</category>
  <guid>https://richardjacton.gitlab.io/pan-narrans-blog/posts/2021-10-06-Xenothesis/</guid>
  <pubDate>Wed, 06 Oct 2021 00:00:00 GMT</pubDate>
</item>
<item>
  <title>Podcast appearance on aging biology</title>
  <dc:creator>Richard J. Acton</dc:creator>
  <link>https://richardjacton.gitlab.io/pan-narrans-blog/posts/2021-10-06-bayesian-conspiracy-aging/</link>
  <description><![CDATA[ 





<p><img src="https://richardjacton.gitlab.io/pan-narrans-blog/posts/2021-10-06-bayesian-conspiracy-aging/cropped-TBC.png" class="img-fluid" width="180"></p>
<p>I made an appearance on the <a href="https://www.thebayesianconspiracy.com/2020/12/127-all-about-aging-with-richard-acton/">bayesian conspiracy podcast</a> to talk about the current understanding of aging in biology and share my thoughts on the field.</p>

<p>:::</p>


 ]]></description>
  <category>rationalism</category>
  <category>podcasts</category>
  <guid>https://richardjacton.gitlab.io/pan-narrans-blog/posts/2021-10-06-bayesian-conspiracy-aging/</guid>
  <pubDate>Wed, 06 Oct 2021 00:00:00 GMT</pubDate>
</item>
<item>
  <title>Cyberpunk Special Episode</title>
  <dc:creator>Richard J. Acton</dc:creator>
  <link>https://richardjacton.gitlab.io/pan-narrans-blog/posts/2021-01-03-Xenothesis-Cyberpunk-Special/</link>
  <description><![CDATA[ 





<p>Episode 20 of Xenothesis, the podcast I cohost with my friend Michael Glinka is a <a href="https://www.xenothesis.com/20_cyberpunk_special/">special episode on the Cyberpunk genre</a></p>

<p>:::</p>


 ]]></description>
  <category>podcasts</category>
  <guid>https://richardjacton.gitlab.io/pan-narrans-blog/posts/2021-01-03-Xenothesis-Cyberpunk-Special/</guid>
  <pubDate>Sun, 03 Jan 2021 00:00:00 GMT</pubDate>
</item>
<item>
  <title>GATTACA Special Episode</title>
  <dc:creator>Richard J. Acton</dc:creator>
  <link>https://richardjacton.gitlab.io/pan-narrans-blog/posts/2021-03-30-GATTACA-Special/</link>
  <description><![CDATA[ 





<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><img src="https://richardjacton.gitlab.io/pan-narrans-blog/posts/2021-03-30-GATTACA-Special/25_GATTACA_Special_thumb.png" class="img-fluid figure-img" width="180"></p>
<figcaption>half cell half ringed planet with GATTACA superimposed</figcaption>
</figure>
</div>
<p>Episode 25 of Xenothesis, the podcast I cohost with my friend Michael Glinka is a <a href="https://www.xenothesis.com/25_gattaca_special/">special episode on the 1997 film GATTACA</a></p>

<p>:::</p>


 ]]></description>
  <category>podcasts</category>
  <guid>https://richardjacton.gitlab.io/pan-narrans-blog/posts/2021-03-30-GATTACA-Special/</guid>
  <pubDate>Sun, 03 Jan 2021 00:00:00 GMT</pubDate>
</item>
<item>
  <title>Advanced Rmarkdown YAML headers</title>
  <dc:creator>Richard J. Acton</dc:creator>
  <link>https://richardjacton.gitlab.io/pan-narrans-blog/posts/2019-04-24-Advanced-Rmarkdown-YAML-headers/</link>
  <description><![CDATA[ 





<section id="rnotebooks---what-and-why" class="level1">
<h1>Rnotebooks - What and Why?</h1>
<p>For anyone unfamiliar with <a href="https://bookdown.org/yihui/rmarkdown/">Rnotebooks</a> here is a quick overview of why you might want to use them more experienced users can skip ahead. Rnotebooks are scientific notebooks for <code>R</code>, somewhat like <a href="https://jupyter.org/">jupyter</a> for anyone coming from <code>python</code> but baked right into the Rstudio IDE which offers some benefits over the browser based interface of jupyter. It permits you to organise your code, notes, reasoning and references in one place. Combining Rnotebooks with a version management system such as git gives a robustness similar paper lab book records when it comes to seeing what you did and when coupled with dynamism, portability, share-ability and ease of backup of electronic working. Rnotebooks use a simple flavour of markdown with options to render output to HTML and PDF (via LaTeX) formats. Rnotebooks also have big pluses for reproducibility, creating an Rnotebook that does, explains and references your analysis makes it very easy to give to another at least somewhat competent <code>R</code> user and have them re-run your analysis - potentially with their own variants. Reproducibility and verifiability are substantial issues in scientific computing, including my own field of biology. <a href="https://doi.org/10.7717/peerj-cs.158">A recent article in PeerJ</a> provides a nice discussion of these issues and a look at what the future of scientific computing notebooks might resemble.</p>
<section id="basic-structure" class="level2">
<h2 class="anchored" data-anchor-id="basic-structure">Basic Structure</h2>
<p>Raw Rmarkdown looks like this:</p>
<pre><code>---
title: "Example Rnotebook" # a yaml header with document properties and options
---

# Introduction

Mardown formatted text, with __Bold__ and *exciting!* Scientific claims
about $in-line math^2$ at least according to @Smith2007.


::: {.cell}

```{.r .cell-code}
print("some actual R code in chunks")
```
:::


saved with a .Rmd file extension</code></pre>
<p>Rstudio of course adds nice syntax highlighting, and various bells and whistles.</p>
</section>
</section>
<section id="body" class="level1">
<h1>The acctual YAML header stuff</h1>
<section id="inliner" class="level2">
<h2 class="anchored" data-anchor-id="inliner">Inline R</h2>
<p>You can use inline <code>R</code> in the YAML header of an Rnotebook to produce dynamic content. This takes the general form:</p>
<div class="sourceCode" id="cb2" style="background: #f1f3f5;"><pre class="sourceCode yaml code-with-copy"><code class="sourceCode yaml"><span id="cb2-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">option</span><span class="kw" style="color: #003B4F;
background-color: null;
font-style: inherit;">:</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> </span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"&lt;some R&gt;"</span></span></code></pre></div>
<p>For example you can include the current date with:</p>
<div class="sourceCode" id="cb3" style="background: #f1f3f5;"><pre class="sourceCode yaml code-with-copy"><code class="sourceCode yaml"><span id="cb3-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">date</span><span class="kw" style="color: #003B4F;
background-color: null;
font-style: inherit;">:</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> </span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"2024-03-16"</span></span></code></pre></div>
<p>I’m partial to the YYYY-MM-DD format due to it’s unambiguousness and nice sorting behaviour but you can of course employ <code>format()</code> to render the date in other ways.</p>
</section>
<section id="params" class="level2">
<h2 class="anchored" data-anchor-id="params">Params</h2>
<p>The params option allows you to add arguments to your Rnotebook. The params you add to your header are accessible from within the notebook from the immutable <code>params</code> list. Rstudio makes the contents of this list available in interactive sessions so you can use them whilst working on your code not just when you build the notebook. Note that you can reference <code>params</code> in other options (see).</p>
<div class="sourceCode" id="cb4" style="background: #f1f3f5;"><pre class="sourceCode yaml code-with-copy"><code class="sourceCode yaml"><span id="cb4-1"><span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;">---</span></span>
<span id="cb4-2"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">params</span><span class="kw" style="color: #003B4F;
background-color: null;
font-style: inherit;">:</span></span>
<span id="cb4-3"><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">  </span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">includeThing</span><span class="kw" style="color: #003B4F;
background-color: null;
font-style: inherit;">:</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> </span><span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;">TRUE</span><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"> # set the default to TRUE</span></span>
<span id="cb4-4"><span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;">---</span></span></code></pre></div>
<pre><code>::: {.cell}

```{.r .cell-code}
print(
    paste0(
        "Some R that is only evaluated if and included in the notebook if",
        " params$includeThing is true"
    )
)
```

::: {.cell-output .cell-output-stdout}

```
[1] "Some R that is only evaluated if and included in the notebook if params$includeThing is true"
```


:::
:::</code></pre>
</section>
<section id="document-format-options" class="level2">
<h2 class="anchored" data-anchor-id="document-format-options">Document Format Options</h2>
<p>For an HTML output these are a few of my favourite options. There are numerous additional options described in the <a href="https://bookdown.org/yihui/rmarkdown/documents.html">outputs section</a> of the manual, setting the depth of the table of contents for example.</p>
<div class="sourceCode" id="cb6" style="background: #f1f3f5;"><pre class="sourceCode yaml code-with-copy"><code class="sourceCode yaml"><span id="cb6-1"><span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;">---</span></span>
<span id="cb6-2"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">output</span><span class="kw" style="color: #003B4F;
background-color: null;
font-style: inherit;">:</span></span>
<span id="cb6-3"><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">  </span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">html_document</span><span class="kw" style="color: #003B4F;
background-color: null;
font-style: inherit;">:</span></span>
<span id="cb6-4"><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">    </span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">df_print</span><span class="kw" style="color: #003B4F;
background-color: null;
font-style: inherit;">:</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> paged</span><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">       # print paged tables - like the default 'html_notebook' format</span></span>
<span id="cb6-5"><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">    </span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">fig_caption</span><span class="kw" style="color: #003B4F;
background-color: null;
font-style: inherit;">:</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> </span><span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;">yes</span></span>
<span id="cb6-6"><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">    </span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">number_sections</span><span class="kw" style="color: #003B4F;
background-color: null;
font-style: inherit;">:</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> </span><span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;">yes</span><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">  # prepend x.y style numbering to you sections</span></span>
<span id="cb6-7"><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">    </span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">toc</span><span class="kw" style="color: #003B4F;
background-color: null;
font-style: inherit;">:</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> </span><span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;">yes</span><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">              # Add a table of contents</span></span>
<span id="cb6-8"><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">    </span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">toc_float</span><span class="kw" style="color: #003B4F;
background-color: null;
font-style: inherit;">:</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> </span><span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;">yes</span><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">        # have to TOC float at the side of your HTML page so you do have to keep scrolling to the top</span></span>
<span id="cb6-9"><span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;">---</span></span></code></pre></div>
<p>For a PDF output <code>pdf_document</code> can be used instead of <code>html_document</code> though my preferred table format for PDF is <code>df_print: kable</code>. More advanced LaTeX customisations can also be used in conjunction with PDF outputs.</p>
</section>
<section id="bibyaml" class="level2">
<h2 class="anchored" data-anchor-id="bibyaml">Bibliograghy and Citation YAML options</h2>
<p>Placing a <code>bibliography</code> option in your Rnotebook’s header and pointing it to a bibtex file containing your citation information permits you to create citations in Rnotebooks using the following syntax: <code>@Smith2016</code> for an in-line citation e.g.&nbsp;‘work by Smith <em>et al.</em> 2016 showed that cheese…’ or <code>[@Smith2016]</code> for a reference like this: ‘assertion (Smith <em>et al.</em> 2016)’, or even lists of citations to be contracted where possible given the citation style e.g.&nbsp;<code>[@Smith2016; @Jones2018]</code>, (note the semi-colon list separator) yielding something like this: ‘assertion [1-2]’</p>
<p>I frequently use a header that contains code like this:</p>
<div class="sourceCode" id="cb7" style="background: #f1f3f5;"><pre class="sourceCode yaml code-with-copy"><code class="sourceCode yaml"><span id="cb7-1"><span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;">---</span></span>
<span id="cb7-2"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">bibliography</span><span class="kw" style="color: #003B4F;
background-color: null;
font-style: inherit;">:</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> </span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"bib.bib"</span></span>
<span id="cb7-3"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">params</span><span class="kw" style="color: #003B4F;
background-color: null;
font-style: inherit;">:</span></span>
<span id="cb7-4"><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">  </span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">bib</span><span class="kw" style="color: #003B4F;
background-color: null;
font-style: inherit;">:</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> </span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"~/Documents/bibtex/library.bib"</span></span>
<span id="cb7-5"><span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;">---</span></span></code></pre></div>
<p>The reason I do this is my bibliography has the same path relative to my home directory on my laptop, desktop and computing clusters but the absolute paths differ and <strong>these headers seem to prefer absolute paths</strong>. Thus, if I compose a notebook on one system it won’t execute on another unless I change the path or use a set-up like this to do so dynamically when building the notebook.</p>
<p>I also frequently set the path to my working directory as a parameter to my Rnotebooks and use relative paths to any files I want to load/write in the body of the Rnotebook so as to achieve similar portability between the different system’s I work on as I get with my bibliography files.</p>
<p>The following chunk sets the working directory for when you ‘knit’ your Rnotebook into the desired format in the first line and for interactive sessions in the second.</p>
<pre><code>::: {.cell}

```{.r .cell-code}
knitr::opts_knit$set(root.dir = normalizePath(params$pwd))
setwd(params$pwd)
```
:::</code></pre>
<p><strong>A note on generating your bibtex file(s).</strong> I currently use <a href="https://www.mendeley.com/">Mendeley</a> as my refernce manager and it has a nice bibtext output option which is automatically updated whenever you sync (On balance I would probably recomend <a href="https://www.zotero.org/">Zotero</a> to someone starting out afresh with reference management but its bibtex output is not quite as convenient as Mendeley’s)</p>
<p>If you have multiple bibliography files this can be done:</p>
<div class="sourceCode" id="cb9" style="background: #f1f3f5;"><pre class="sourceCode yaml code-with-copy"><code class="sourceCode yaml"><span id="cb9-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">bibliography</span><span class="kw" style="color: #003B4F;
background-color: null;
font-style: inherit;">:</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> </span><span class="kw" style="color: #003B4F;
background-color: null;
font-style: inherit;">[</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">multiple.bib</span><span class="kw" style="color: #003B4F;
background-color: null;
font-style: inherit;">,</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> dotbib.bib</span><span class="kw" style="color: #003B4F;
background-color: null;
font-style: inherit;">,</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> files.bib</span><span class="kw" style="color: #003B4F;
background-color: null;
font-style: inherit;">]</span></span></code></pre></div>
<p>Including a <code>csl</code> option allows you to specify a citation style using the <code>.csl</code> format. The specific citations styles of numerous journals in <code>.csl</code> format can be found <a href="https://github.com/citation-style-language/styles">here</a>. Including the <code>link-citations: yes</code> option will create hyperlinks from the in-text references to the full citations at the end of the document.</p>
<p>By default the bibliography is placed at the very end of your document, so simply placing a <code># References</code> header at the end of your document helps to separate your bibliography from the body of your text and puts an entry for it in the table of contents. If however you have some appendices to add after your references placing this HTML snippet in your Rnotebook should set the position at which the references will be rendered: <code>&lt;div id="refs"&gt;&lt;/div&gt;</code>. Helpfully this will set the postion in both HTML and PDF outputs. (This may not work with older versions of <code>pandoc</code>).</p>
</section>
</section>
<section id="executing-an-rnotebook-with-params" class="level1">
<h1>Executing an Rnotebook with params</h1>
<p>Whilst you can render your Rnotebook with a one line <code>R</code> command from your terminal if you have a lot of params it can get unwieldy, you may also want to be able to reproduce your render at a later time or even submit it as a job to a batch computing manager. To do this you can create simple bash scripts like the one below to render your Rnotebook.</p>
<div class="sourceCode" id="cb10" style="background: #f1f3f5;"><pre class="sourceCode bash code-with-copy"><code class="sourceCode bash"><span id="cb10-1"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">#!/bin/bash</span></span>
<span id="cb10-2"><span class="ex" style="color: null;
background-color: null;
font-style: inherit;">R</span> <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">--no-save</span> <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">--no-restore</span> <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&lt;&lt;EOF</span></span>
<span id="cb10-3"><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">rmarkdown::render(</span></span>
<span id="cb10-4"><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">  'notebook.Rmd',</span></span>
<span id="cb10-5"><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">  output_file = 'notebook.html',</span></span>
<span id="cb10-6"><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">  params = list(</span></span>
<span id="cb10-7"><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">      bib = "path/to/some/bib.bib"</span></span>
<span id="cb10-8"><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">  )</span></span>
<span id="cb10-9"><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">)</span></span>
<span id="cb10-10"><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">EOF</span></span></code></pre></div>
<p>The <code>--no-save</code> option prevents <code>R</code> from saving your notebook’s R session, and the <code>--no-restore</code> option prevents your Rnotebook from loading whatever random previous <code>R</code> session files you have lying around in your working directory into it’s session.</p>
</section>
<section id="full-length-example-yaml-header" class="level1">
<h1>Full Length Example YAML header</h1>
<div class="sourceCode" id="cb11" style="background: #f1f3f5;"><pre class="sourceCode yaml code-with-copy"><code class="sourceCode yaml"><span id="cb11-1"><span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;">---</span></span>
<span id="cb11-2"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">title</span><span class="kw" style="color: #003B4F;
background-color: null;
font-style: inherit;">:</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> </span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"A thing I'm Working on - Ideally with a more descriptive title"</span></span>
<span id="cb11-3"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">author</span><span class="kw" style="color: #003B4F;
background-color: null;
font-style: inherit;">:</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> </span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Richard J. Acton"</span></span>
<span id="cb11-4"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">date</span><span class="kw" style="color: #003B4F;
background-color: null;
font-style: inherit;">:</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> </span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"2024-03-16"</span></span>
<span id="cb11-5"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">output</span><span class="kw" style="color: #003B4F;
background-color: null;
font-style: inherit;">:</span><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"> # Specifying multiple outputs appears to favour the first</span></span>
<span id="cb11-6"><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">  </span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">pdf_document</span><span class="kw" style="color: #003B4F;
background-color: null;
font-style: inherit;">:</span></span>
<span id="cb11-7"><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">    </span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">toc</span><span class="kw" style="color: #003B4F;
background-color: null;
font-style: inherit;">:</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> </span><span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;">yes</span></span>
<span id="cb11-8"><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">    </span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">fig_caption</span><span class="kw" style="color: #003B4F;
background-color: null;
font-style: inherit;">:</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> </span><span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;">yes</span></span>
<span id="cb11-9"><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">    </span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">df_print</span><span class="kw" style="color: #003B4F;
background-color: null;
font-style: inherit;">:</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> kable</span></span>
<span id="cb11-10"><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">  </span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">html_document</span><span class="kw" style="color: #003B4F;
background-color: null;
font-style: inherit;">:</span></span>
<span id="cb11-11"><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">    </span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">fig_caption</span><span class="kw" style="color: #003B4F;
background-color: null;
font-style: inherit;">:</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> </span><span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;">yes</span></span>
<span id="cb11-12"><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">    </span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">number_sections</span><span class="kw" style="color: #003B4F;
background-color: null;
font-style: inherit;">:</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> </span><span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;">yes</span></span>
<span id="cb11-13"><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">    </span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">toc</span><span class="kw" style="color: #003B4F;
background-color: null;
font-style: inherit;">:</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> </span><span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;">yes</span></span>
<span id="cb11-14"><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">    </span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">toc_float</span><span class="kw" style="color: #003B4F;
background-color: null;
font-style: inherit;">:</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> </span><span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;">yes</span></span>
<span id="cb11-15"><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">    </span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">df_print</span><span class="kw" style="color: #003B4F;
background-color: null;
font-style: inherit;">:</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> paged</span></span>
<span id="cb11-16"><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">  </span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">html_notebook</span><span class="kw" style="color: #003B4F;
background-color: null;
font-style: inherit;">:</span><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"> # This determines the RStuido preview format</span></span>
<span id="cb11-17"><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">    </span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">fig_caption</span><span class="kw" style="color: #003B4F;
background-color: null;
font-style: inherit;">:</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> </span><span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;">yes</span></span>
<span id="cb11-18"><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">    </span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">number_sections</span><span class="kw" style="color: #003B4F;
background-color: null;
font-style: inherit;">:</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> </span><span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;">yes</span></span>
<span id="cb11-19"><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">    </span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">toc</span><span class="kw" style="color: #003B4F;
background-color: null;
font-style: inherit;">:</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> </span><span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;">yes</span></span>
<span id="cb11-20"><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">    </span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">toc_float</span><span class="kw" style="color: #003B4F;
background-color: null;
font-style: inherit;">:</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> </span><span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;">yes</span></span>
<span id="cb11-21"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">bibliography</span><span class="kw" style="color: #003B4F;
background-color: null;
font-style: inherit;">:</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> </span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"/root/Documents/bibtex/library.bib"</span></span>
<span id="cb11-22"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">csl</span><span class="kw" style="color: #003B4F;
background-color: null;
font-style: inherit;">:</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> </span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"/root/Documents/bibtex/genomebiology.csl"</span></span>
<span id="cb11-23"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">link-citations</span><span class="kw" style="color: #003B4F;
background-color: null;
font-style: inherit;">:</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> </span><span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;">yes</span><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"> # make citations hyperlinks</span></span>
<span id="cb11-24"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">linkcolor</span><span class="kw" style="color: #003B4F;
background-color: null;
font-style: inherit;">:</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> blue</span></span>
<span id="cb11-25"><span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;">---</span></span></code></pre></div>
</section>
<section id="resources" class="level1">
<h1>Resources</h1>
<ul>
<li><a href="https://bookdown.org/yihui/rmarkdown/">R Markdown The Definitive Guide</a></li>
<li><a href="https://github.com/citation-style-language/styles">Citation Style Launguage Styles Repository</a></li>
</ul>
<p><em>Feedback is always welcome, especially if you spot any mistakes.</em></p>

<p>:::</p>

</section>

 ]]></description>
  <category>R</category>
  <guid>https://richardjacton.gitlab.io/pan-narrans-blog/posts/2019-04-24-Advanced-Rmarkdown-YAML-headers/</guid>
  <pubDate>Wed, 24 Apr 2019 00:00:00 GMT</pubDate>
</item>
<item>
  <title>An intuitive explanation of inferential distance</title>
  <dc:creator>Richard J. Acton</dc:creator>
  <link>https://richardjacton.gitlab.io/pan-narrans-blog/posts/2017-11-26-An-Intuitive-Explanation-of-Inferential-Distance/</link>
  <description><![CDATA[ 





<p>Let us represent our beliefs as nodes in a network. Most nodes in your network of beliefs have dependencies, they are connected to other beliefs the truth value of which they are contingent on.</p>
<p>Picture a subset of your network of beliefs, let us take a simplified section that looks like a tree, stripping away the complex interconnections to aid in visualization.</p>
<p>Beliefs B and C are predicated on belief A, beliefs D and E on belief B, and beliefs F and G on belief C. Thus belief A is need for beliefs B and C, belief B for D and E, and C for F and G. (see the <a href="inferencialDistance.png">figure</a>)</p>
<p><img src="https://richardjacton.gitlab.io/pan-narrans-blog/posts/2017-11-26-An-Intuitive-Explanation-of-Inferential-Distance/inferencialDistance.png" class="img-fluid"></p>
<hr>
<p><strong>The One:</strong> Apples grow on trees - lets us call this belief F.</p>
<p><strong>The Other:</strong> What are trees? and why are you labeling your beliefs with letters?</p>
<p><em>The one is trying to convince the other of F but the other lacks belief C (the belief in trees), the one is unable to successfully graft the branch of their tree containing F onto the other’s tree as their is no suitable node at which to affix it.</em></p>
<p><em>The one must then traverse back down their tree to node C and first convince the other of C. The one made the mistake of thinking the inferential distance between themself and the other was but 1 node when in actuality it was 2. The one must convince the other not merely that apples grow on trees but must also introduce the concept of trees.</em></p>
<p><strong>The One:</strong> Trees are large upright plants with stiff bodies due in part to large amounts of lignin in some of their cell walls, a property not shared by they bendier cousins. There is one over their with apples growing on it. <em>(points to a nearby apple tree)</em></p>
<hr>
<p>Assessing the inferential distance between yourself and your interlocutor can often be accomplished by the asking of questions which prompt an explication of their belief structure. It also helps here if you have exercised good epistemic hygiene and can clearly identify the path you must take in order to converge. The concept of inferential distance is interestingly related to finding the <a href="https://www.lesserwrong.com/posts/exa5kmvopeRyfJgCy/double-crux-a-strategy-for-resolving-disagreement">double crux</a> of a disagreement, you must traverse back through your belief network until you find the relevant point of difference in your network or the genuine source of your disagreement. Indeed inferential distance may be measured by the number of iterations of the double crux game algorithm you have to execute find the crux. Once the extent of the gulf between you has been assayed you may begin to devise a path to traverse it.</p>
<p>There is a distinction to be drawn between adding a new node to an interlocutor’s belief network when the desired new node is not in obvious tension with other beliefs held by the interlocutor, and the condition where you are attempting to displace an existing node with a different mutually exclusive one. The former is often much easier than the latter.</p>
<hr>
<p><strong>The Other:</strong> There is not such thing as trees.</p>
<p><strong>The One:</strong> let us call that belief C’, What then is yonder plant with apples growing on it? <em>(points to a nearby apple tree)</em></p>
<p><strong>The Other:</strong> That is just an unusually large fern. <strong>The One:</strong> <em>sigh</em></p>
<p><em>The Other believes C’ which they are aware is mutually exclusive with C.</em></p>
<hr>
<p>Playing the double crux game with those not initiated in it (the <em>weak</em> version) can can be challenging. Taking a Socratic approach with genuine expressions of curiosity about what exactly your interlocutor believes can be effective at causing your interlocutor to notice when they are expressing a <a href="https://www.lesserwrong.com/posts/CqyJzDZWvGhhFJ7dY/belief-in-belief">belief in belief</a> as opposed to one that <a href="https://www.lesserwrong.com/posts/a7n8GdKiAZRX86T5A/making-beliefs-pay-rent-in-anticipated-experiences">pays rent in anticipated experiences</a> as they should be encouraged by your curiosity to explain to you exactly why they believe what they believe.</p>
<p>Depending on your interlocutor and subject you may wish to begin incrementally to bridge the void, node by node. It is a common error to attempt to plant whole sections of your belief tree in infertile soil and to grow frustrated when it fails to take root. Complex, obscure or controversial issues are frequently best tackled stepwise, especially when in dialog with someone not yet explicitly committed to a rationalist approach or otherwise high in Doxastic Openness.</p>
<p>Some branches of the tree which you may wish to graft onto others will have deeply rooted dependencies which run back to fundamental epistemic differences and will present a major challenge to make them successfully take. Some branches however have shallow dependencies and can easily be transfered even between those with but a single necessary belief in common. This can be strategically important as people may believe the same thing for different or even invalid reasons and pointing this out can be detrimental in the short term if you are running a “Mothers Against Drunk Driving” style single issue campaign (Potential Dark Side Applications Warning).</p>
<p><a href="https://www.lesserwrong.com/posts/DdoDzNT8Y99aEAdvh/an-intuitive-explanation-of-inferential-distance">See This post at Less wrong</a></p>

<p>:::</p>


 ]]></description>
  <category>rationalism</category>
  <guid>https://richardjacton.gitlab.io/pan-narrans-blog/posts/2017-11-26-An-Intuitive-Explanation-of-Inferential-Distance/</guid>
  <pubDate>Sun, 26 Nov 2017 00:00:00 GMT</pubDate>
</item>
<item>
  <title>Cognitive Bias Cards!</title>
  <dc:creator>Richard J. Acton</dc:creator>
  <link>https://richardjacton.gitlab.io/pan-narrans-blog/posts/2017-07-08-Cognitive-Bias-Cards/</link>
  <description><![CDATA[ 





<p><img src="https://github.com/RichardJActon/CognitiveBiasCards/blob/master/Cognitive_Bias_Cards_Photo.JPG?raw=true" class="img-fluid" width="180"></p>
<p>Check out the <a href="https://github.com/RichardJActon/CognitiveBiasCards">Cognitive Bias Cards Repo</a> for a deck of cards featuring 104 cognitive biases.</p>
<p>Among other things these can be used to play Biased Pandemic: http://lesswrong.com/lw/ar2/biased_pandemic/</p>

<p>:::</p>


 ]]></description>
  <category>rationalism</category>
  <guid>https://richardjacton.gitlab.io/pan-narrans-blog/posts/2017-07-08-Cognitive-Bias-Cards/</guid>
  <pubDate>Sat, 08 Jul 2017 00:00:00 GMT</pubDate>
</item>
</channel>
</rss>
