Q-PCR results with ggplot2

The problem

Using bar plots to show Q-PCR results hides part of the information, which is un-necessary. In this post, I demonstrate the use of ggplot2 to build informative plots from Q-PCR results. The example data that will be used in the following example consists of four replicate experiments (“exp1” to “exp4”) for three different conditions that were tested (mutant “A” to “C”). The numerical values represent the change in the level of a specific RNA in the different mutant conditions, as compared with a wild-type strain:

     experiment mutantA mutantB mutantC
exp1       exp1     6.5     1.1     1.6
exp2       exp2     7.4     1.3     1.6
exp3       exp3     7.4     1.3     1.8
exp4       exp4     7.3     1.2     1.7

First, we convert the data to a “long-form” type, using the reshape2 package. We will use the first column, containing the identifier for replicated experiments, as the “variable” (see parameter of the melt function):

Loading required package: reshape2
melted <- melt(data = mydata, id.vars = 1)
names(melted) <- c("experiment", "mutant", "value")
melted$experiment <- as.factor(melted$experiment) #make sure we have factors
   experiment  mutant value
1        exp1 mutantA   6.5
2        exp2 mutantA   7.4
3        exp3 mutantA   7.4
4        exp4 mutantA   7.3
5        exp1 mutantB   1.1
6        exp2 mutantB   1.3
7        exp3 mutantB   1.3
8        exp4 mutantB   1.2
9        exp1 mutantC   1.6
10       exp2 mutantC   1.6
11       exp3 mutantC   1.8
12       exp4 mutantC   1.7

We can use the long-format data to make a first version of a plot:

Loading required package: ggplot2
baseplot <- ggplot(data=melted, aes(x=mutant, y=value, color=experiment))


As expected, the dots are overlapping. If we had plenty of replicates, a jittering can be useful, since it scatters the dots and we can see most of them, for example:

plot <- baseplot+
    geom_point(position = position_jitter(w = 0.7, h = 0.0))


This is better, but jittering scatters the dots and does not preserve any order. In our case, it is better to try to make the add regular spaces that preserve the order of experiments in the plot, using position_dodge:

plot <- baseplot+


A potential difference between mutantB and mutantC, can be seen better on a log scale, using the scale_y_continous variable:

plot <- baseplot+
    scale_y_continuous(trans='log10', breaks=c(1:10))


Adding descriptive statistics, like mean and standard deviation is done like this:

plot <- baseplot+
    scale_y_continuous(trans='log10', breaks=c(1:10))+
    stat_summary(fun.data="mean_cl_boot", geom="errorbar",width=0.05, colour="red")


mean_cl_boot is a wrapper of the smean.cl.boot function from the Hmisc package, and uses a bootstrap procedure to obtain cofidence intervals. You can also use other descriptive statistics, for example, mean and standard deviation. Easy to incorporate in stat_summary:

meanminsd <- function(x){
meanplussd <- function(x){
plot <- baseplot+
    scale_y_continuous(trans='log10', breaks=c(1:10))+
    stat_summary(fun.y="mean", fun.ymin="meanminsd", fun.ymax="meanplussd", 
                             geom="errorbar",width=0.05, colour="red")


A few more options later, this is the complete graph, that can be exported with ggsave("filename.svg", width=xinches, height=yinches):

plot <- ggplot(data=melted, aes(x=mutant, y=value, color=experiment))+
    geom_point(position=position_dodge(width=0.7), size=2)+
    scale_colour_manual(values=rep("black", 5))+
    ylab("Fold change X mRNA vs. wt (log scale)")+
    theme_bw()+theme(panel.grid.major = element_line(colour = "grey"))+
    scale_y_continuous(trans='log10', breaks=c(1:10))+
    scale_x_discrete(labels=c("mut. A", "mut. B", "mut. C"))+
    stat_summary(fun.y=mean, fun.ymax=meanplussd, fun.ymin =meanminsd, colour="red", geom="errorbar", width=0.1)+
    stat_summary(fun.y=mean, fun.ymax=mean, fun.ymin =mean, colour="red", geom="crossbar", width=0.2)


This final plot can be edited in Inkscape.

Any comment is welcome.


Heatmaps using ranks in R and ggplot2

The following fragments of R code illustrate one of the ways of showing quantitative data through a custom heatmap. For this example, I will be using a table of results containing growth changes observed under various conditions for yeast deletion gene mutants (published available data sources). The complete table, “selected_screens_top50_etal20150410raw.csv” can be downloaded from github.

1. Prepare a dataframe from tabular data:

read.csv("selected_screens_top50_etal20150410raw.csv", stringsAsFactors=F)
# [1] "X" "ORF" "Long_description" "haploids_SR7575_exp1" "haploids_SR7575_exp2"
# [6] "avghaplo" "rank1" "rank2" "Gene" "SGTC_352"
# [11] "SGTC_513" "SGTC_1789" "CDC48_YDL126C_tsq209" "CDC48_YDL126C_tsq208" "RPN4_YDL020C"
# [16] "INO2_YDR123C" "SRP101_YDR292C_damp" "HAC1_YFL031W" "OPI3_YJR073C" "PGA3_YML125C_damp"
# [21] "UBC7_YMR022W" "YNL181W_YNL181W_damp" "X4166_8_HOP_0148"

2. Define the function that will categorize the data nicely:

This function takes a vector of numerical values and returns, for each value, a category, that can be customized, via breaks and their associated labels. The important library here is scales, which does all the magic.

library(scales) #required for the rescale function
rank_pc <- function(vect, brks, labls){
    rks <- rank(vect, na.last="keep")
    #example breaks = c(-1, 0.1, 0.3, Inf), labels=c("lo", "mid", "other")
    endclass <- cut(rescale(rks), breaks = c(brks, Inf), labels=labls)
    #rescale(rks) just changes the ranks from 1:4000 to 0:1 interval
    #it becomes thus very easy to pick, with the "cut" function, 
    #the intervals we want

3. Massage the data to get a reduced set just for the plot:

cut_data <- lapply(thedata[,c(6, 10:13)], rank_pc, c(-1, 0.01, 0.025, 0.05), c("01", "025", "05", "other"))
cut_df <- data.frame(cut_data)
cut_df$ORF <- thedata$ORF
cut_df$Gene <- thedata$Gene
#rearrange columns
cut_df <- cut_df[, c(6, 7, 1:5)]
# ORF Gene avghaplo SGTC_352 SGTC_513 SGTC_1789 CDC48_YDL126C_tsq209
# Length:4909 Length:4909 01 : 50 01 : 41 01 : 41 01 : 41 01 : 30
# Class :character Class :character 025 : 73 025 : 60 025 : 60 025 : 60 025 : 45
# Mode :character Mode :character 05 : 123 05 : 100 05 : 100 05 : 100 05 : 74
# other:4663 other:3812 other:3812 other:3812 other:2823
# NA's : 896 NA's : 896 NA's : 896 NA's :1937

Select the ORFs of interest (or the genes, whatever):

goodorfs <- c("YOL013C", "YLR207W", "YDR057W", "YML029W", "YBR201W",
"YIL030C", "YMR264W", "YMR022W", "YML013W", "YML012C-A", "YBR170C",
"YMR067C", "YKL213C", "YMR276W", "YBL067C", "YDL190C", "YDL020C",
"YFL031W", "YHR079C", "YOR067C", "YBR171W", "YBR283C", "YER019C-A",
"YHR193C", "YCL045C", "YKL207W", "YGL231C", "YIL027C", "YLL014W",
"YLR262C", "YLR039C", "YDR137W", "YDR127W", "YGL148W", "YPR060C",
"YBR068C", "YGL013C", "YOR153W")

goodorfs_df <- data.frame(goodorfs)
goodorfs_df$order <- row.names(goodorfsdf)
#we will need the order later to keep them exactly as needed!
cut_subset <- cut_df[which(cut_df$ORF %in% goodorfs),]
#38 observation of 7 variables
toplot <- merge.data.frame(goodorfs_df, cut_subset, by.x="goodorfs", by.y="ORF", all.x=T, all.y=F)
toplot <- toplot[order(-as.integer(toplot$order)), ]
#reversed order, because the y axis grows from top to bottom (the first that we want will be on top)
toplot_simple <- toplot[, c(3:8)]

4. Define and use a plot function with some bells and whistles:

library(grid) # for unit function
plotheat <- function(mydf){
    #the data frame has the first column called 'Gene'
    #all the other columns are categorical
    nms <- names(mydf)
    lnms <- length(nms)
    rowsall <- length(mydf$Gene)
    colsall<- length(names(mydf[, c(2:lnms)]))
    rowIndex = rep(1:rowsall, times=colsall)
    # 1 2 3 ...
    colIndex = rep(1:colsall, each=rowsall)
    # 1 1 1 ...
    mydf.m <- cbind(rowIndex, colIndex ,melt(mydf, id=c("Gene")))
    p <- ggplot(mydf.m, aes(variable, Gene))
    p2 <- p+geom_rect(aes(x=NULL, y=NULL, xmin=colIndex-1,
    ymax=rowIndex, fill=value), colour="grey")
    p2=p2+scale_x_continuous(breaks=(1:colsall)-0.5, labels=colnames(mydf[, c(2:lnms)]))
    p2=p2+scale_y_continuous(breaks=(1:rowsall)-0.5, labels=mydf[, 1])
    p2=p2+theme_bw(base_size=8, base_family = "Helvetica")+
        panel.grid.major = element_blank(),
        panel.grid.minor = element_blank(),
        panel.border = element_blank(),
        axis.ticks.length = unit(0, "cm"),
        axis.text.x = element_text(vjust=0, angle=90, size=8)
    scale_fill_manual(values = c("black", "grey30", "grey60", "grey90"))


ggsave("myniceheatmap.pdf", width = 18, height = 15, unit="cm")

The result, after some polishing with Inkscape:

One year of desktop Linux


If you consider switching to Linux from a Windows or OS X machine, you will find some of my experience in this post, one year after starting to use Linux exclusively for my professional life as a scientist. With the ubiquity of web applications, the desktop environment might seem less important than a few years ago. Still, there are plenty of things that are better done on a desktop, including computation-heavy or specialized analyses. This post assumes you have some knowledge of Linux, specifically how to install applications and how to edit configuration files.

I first tested Linux on my laptop in 2001 and 2002 but was only convinced to permanently switch to using it for my personal use with the arrival of Ubuntu Dapper Drake in 2006. Using Ubuntu at home had an impact on my daily professional life. For example, our collection of reagents is maintained on a LabKey server on Ubuntu in a virtual machine. Experience with the command line definitely helped for the administration of our laboratory backup server, a Sinology network disk station. Last, but not least, the extensive experience with shell and shell scripts, was crucial for data analysis projects both for research and in teaching.

Before going further, I would like to share with you a desktop screenshot, showing my current theme in Gnome, OneStepBack. The easiest way to install the theme is to download and unzip the corresponding file in a .themes folder in your home directory. The theme can be applied with the Gnome Tweaks application.


An important choice when switching to Linux is the distribution, as it affects several aspects of the linuxian life . Based on my previous experience with Ubuntu, I chose it, because “it just works”. The size of the Ubuntu users community is very important, since many questions that I might have had were already asked and answered by someone. Many thanks to those which asked and answered questions, as well as to those sharing their experience with specific issues of application install or configuration. In addition to generic Linux documentation, one of the best sources of information on arcane Linux configuration options is the ArchWiki, a documentation portal for ArchLinux (which you can try in a user-friendly version called Manjaro).

Installation and basic configuration

It was not an easy choice to change after 18 years of Mac use. I still like the way Macs work and how the desktop looks, but the lack of a Pro solution in latest years, as well as the steady development of user-friendliness in Linux, settled the decision. Ubuntu 17.04 was thus installed on a Dell machine with plenty of RAM, an SSD disk for the system (more on this later) and two 2 Tb data disks.

Initial installation required endless updates for the preinstalled Windows system, reducing the size of the Windows partition and installation of Ubuntu. The most difficult part was the assignment of the two data disk to a zfs pool in a ‘mirrored’ configuration. The data, which are also mirrored daily to an external network disk, are thus duplicated among the two disks, without any need for further configuration. The use of ZFS is probably a headache for most users, and unfortunately I did not have enough time to do more than basic configuration.

While it might seem a minor issue for most of the system administrators who use Linux  servers mostly through a command line interface, the desktop environment has a major impact on Linux used through a graphical user interface. It has been my pleasure to test and work for some time with most of the major desktop environments and, strangely enough, I like them all. So, no, you won’t find here any of the “The 5 best desktop environments for Linux” non-sense. The current blog post is written under a Gnome Shell environment, which, with extensions, works mostly as I want it to work. KDE Plasma is probably my “go to” distribution if I take my laptop on a journey, since I am sure that external monitors, for example, are correctly recognized. On the workstation, Cinnamon, a GTK3-based DE from the Linux Mint creators, works flawlessly. I spent some time as well with XFCE, my distribution of choice for my 12 year old laptop, and with MATE.

Advantages and annoyances of using Linux

My major problem since using Linux has been the death of the system SSD in December last year, 8 months after buying the workstation. Maybe it was not Linux’s fault, but I tend to believe that somehow, the very frequent writing of logs and other information to the disk had a catastrophic effect. I am not a specialist, but I prefer to use now a 7200 rpm hard disk for the system. So, be cautious on what type of media your operating system lives. You might want to follow some advice from Pjotr, a Linux user from Holland.

A clear advantage in using Linux is anything linked with development, from scripting in R or Python, to installing software that you need for mapping reads to DNA sequences (where Conda and Bioconda are fantastic tools). Many available text editors are fantastic, and I have a personal preference for Kate, both for its multiple customization options, speed, and overall usability.


A major advantage in using Linux daily is the existence of excellent open-source tools and their ease of installation, mostly with a apt install program command. For Python, I’m using Spyder and for R, RStudio. The manuscript figures benefit from editing in Inkscape and the manuscripts, as well as other documents are written with LibreOffice. Bibliography is handled gracefully by Zotero and its extensions, together with Firefox. For any kind of ideas, for collecting figures from papers, and general notes, CherryTree is a fantastic open-source program. PDF reading benefits from Okular. Image analysis and editing are the realm of ImageJ (and FIJI) and Gimp. For file searches, CatFish is fantastic. For a knowledge database with indexed pdf files, Recoll is my tool of choice. Handling pdf files can be done with an extremely flexible Java tool, jPdftweak.

Switching to Linux is not easy and you have to be ready to invest some time in customizing your experience with the system. Some very strange bugs manifested themselves with the printing system, for example. From time to time, the pages printed on a local network printer have a “Top secret” watermark :-(. Fonts can also be a problem, especially when exchanging files with your colleagues, who use Macs or Windows machines. Establishing a file share server is not painless either (the best solution I found was to install and configure a Samba server on my machine).

In view of the time and effort spent with setting up and customizing my Linux machines, it would be impossible for me to say that I regret my decision. Having invested in this installation, places me between the post-purchase rationalization and IKEA effect cognitive biases. I’ll be back with experience at two years post-switch, probably in April 2019….

Conclusion: if you are already a ‘power user’ for Linux and you don’t need proprietary applications for your work, switching to Linux is a lot of work coupled with a lot of fun.

If you have any specific question or want to share your positive or negative experience, please go to the comments section. Thank you.

Custom keyboard tweaks in 2017 for Ubuntu

Linux for the desktop changes with every year going by. So does the ability to change the keyboard layout. For many years, xmodmap was the way to go, if a Linux user wanted to alter the configuration of his or her keyboard. This is what I did, a few years ago, when I slightly altered my FRench keyboard layout to invert A with Q, J with O and K with E as described in one of my previous posts: Custom keyboard layouts on Linux and the jokeft version.

If wondering why such a change would be of any benefit at all, here is the heatmap of using the virtual keyboard of an Android phone after about 3000 words typed in a mix of French, Romanian and English (as provided by SwiftKey):


It is easy to see that A sees more use than Q, and that K and J are much less frequently used than E or O. Now, how can we change the keyboard layout on Linux, when xmodmap is no longer an option ?

It is both easy and complicated. Easy, because we only need to alter two text files, and complicated, because the alterations require reading and understanding, at least partially, what the manager of the keyboard, xkb, does. Of great help for the tweaks I describe was a post by Michał Kosmulski (http://michal.kosmulski.org/computing/articles/custom-keyboard-layouts-xkb.html).

The recipe was only tested on Ubuntu 16.04 and Ubuntu 17.04, and if you use another Linux system, the path to the files to modify might be different. In my case, I modified the file that contains the correspondence between the physical keyboard and the characters that are sent to the system through xkb. For my french keyboard, all the different layouts are found in the fr text file in the folder:


Make sure to keep a copy of the original file somewhere, if something goes wrong with the tweaks. Since I was only making small changes to the layout, I modified the original file by adding the following section at the end:

// My own keyboard changes
partial alphanumeric_keys
xkb_symbols "latin9_jokeqa" {

    // Modifies the basic fr-latin9 layout to invert aq, ek, oj

    include "fr(latin9)"

    name[Group1]="French (legacy, alternative, invert aq, ek, oj)";
    key     { [   q,    Q,  acircumflex,    adiaeresis ] };
    key     { [   k,    K,     EuroSign,    cent ] };
    key     { [   j,    J,  ocircumflex,    odiaeresis ] };

    key     { [   a,    A,  Acircumflex,    Adiaeresis ] };
    key     { [   o,    O,  Ucircumflex,    Udiaeresis ] };
    key     { [   e,    E,  Icircumflex,    Idiaeresis ] };

The rows of the keyboard are A, B, C, D, from the space bar row, so that AD01 corresponds to the first character key in the fourth row (a, on the azerty French keyboard). To get an idea about what this layout change does (colored pairs correspond to the modified keys):


The unique identifier of this layout is xkb_symbols "latin9_jokeqa"

The name[Group1] value is important and describes the keyboard layout, as it will be seen by the different GUIs for regional settings in GNOME, KDE or XFCE, here “French (legacy, alternative, invert aq, ek, oj)”.

Once the layout was defined, it needs to be referred in an xml description file, called evdev.xml, situated in a different folder:


Here, we need to insert the information that was specific to the newly defined tweak to the keyboard layout in the following form:

 <description>French (legacy, alternative, invert aq, ek, oj)</description>

Once the new files were saved in the original locations (as sudo), I’m not sure that the following command is required, but it could help:

sudo dpkg-reconfigure xkb-data

It helps also to reboot the system, because without a reboot, the keyboard indicator did not recognize the two versions of the keyboard.


That’s it. Compared with the xmodmap method, this one is persistent and works by default in KDE, GNOME and XFCE. It is also somewhat futureproof, as it should work with the Wayland protocol.

EDIT (April 2018). I am not using anymore a customized keyboard layout, mostly because it was very difficult to share my keyboard or laptop with colleagues or family.

PPA repositories for Ubuntu 16.04

Here are a few repositories that I found useful for recent versions of programs on Ubuntu 16.04 LTS. Using them allow one to have stable recent versions of R, LibreOffice, MS Visual Studio, NodeJS or Zotero stand-alone.

deb https://mirror.ibcp.fr/pub/CRAN/bin/linux/ubuntu xenial/ for R

deb http://ppa.launchpad.net/mozillateam/thunderbird-next/ubuntu xenial main for Thunderbird

deb http://ppa.launchpad.net/ne0sight/chrome-gnome-shell/ubuntu xenial main for GNOME extension shell

deb [arch=amd64] https://packages.microsoft.com/repos/vscode stable main for VisualStudio

deb http://ppa.launchpad.net/neovim-ppa/stable/ubuntu xenial main for NEOVIM

deb http://ppa.launchpad.net/numix/ppa/ubuntu xenial main for NUMIX

deb https://deb.nodesource.com/node_5.x xenial main for NODEJS

deb http://ppa.launchpad.net/dhor/myway/ubuntu xenial main for XNVIEW and other GRAPHICS

deb http://ppa.launchpad.net/kubuntu-ppa/backports/ubuntu xenial main for KUBUNTU

deb http://APT.spideroak.com/ubuntu-spideroak-hardy/ release restricted for SPIDEROAK

deb http://ppa.launchpad.net/libreoffice/ppa/ubuntu xenial main for LIBREOFFICE

deb http://ppa.launchpad.net/smathot/cogscinl/ubuntu xenial main for ZOTERO standalone

deb https://deb.opera.com/opera-stable/ stable non-free #Opera Browser (final releases) for OPERA

deb http://ppa.launchpad.net/inkscape.dev/stable/ubuntu xenial main for INKSCAPE

The list was obtained with a simple command line (from https://askubuntu.com/questions/148932/how-can-i-get-a-list-of-all-repositories-and-ppas-from-the-command-line-into-an):

grep -r --include '*.list' '^deb ' /etc/apt/sources.list /etc/apt/sources.list.d/

To add any of the PPAs to the list of available software sources:

sudo add-apt-repository ppa:<name of the PPA>

Installing a deb package can also automatically add a repository to the list. Some repositories are more complicated (example for Opera browser):

sudo add-apt-repository 'deb https://deb.opera.com/opera-stable/ stable non-free'
wget -qO- https://deb.opera.com/archive.key | sudo apt-key add -


Twitter archive for 2016

A collection of my tweets in the past two years (only a very limited number of retweets), recovered from Twitter, with the option to be found in everyone’s profile. Chronologically reversed order.

Will probably edit later to highlight what looks most important for me.


A ‘get things done’ file manager for any Java-enabled platform, recently revived is muCommander (with pretty ghosts) mucommander.com/index.html
Teachers need to use a historical perspective when teaching mathematics, but who will teach the teachers ? https://t.co/ic7ZVEduES
Sad how Twitter thinks that the most *popular* tweets are the *best* tweets. No, they are the most *popular* and should be labeled as such.
If politicians do not understand the language of science, scientists should learn the language of politics and translate for them.
If interested in science, mostly physics, its history and science-fiction, a blog to follow is Greg Gbur’s :skullsinthestars.com
Creating a Python3 environment is painless: >conda create -n py3k python=3 anaconda …wait >source activate py3k continuum.io/blog/developer…
Maybe I know myself less than the #Google+ algorithm knows me, but no, I’m not interested that much in the Bitcoin G+ community. Thank you. pic.twitter.com/qI6l89mCk7
Music streaming services, like subscribing to ‘unlimited books’ offers have the side-effect that *no* sharing of music or books can occur.
#Spyder is the #Python equivalent of #RStudio, easy to configure, with completions, block comments and #iPython console. Slow on OSX though.
The fact that tweets most retweeted contain a higher proportion of images does not mean that adding an irrelevant image will increase impact
I like the #StarWars saga because its broad context is the struggle of democratic Rebels to replace a dictatorship, the Empire.
@ToKTeacher Naive questions: are there testable predictions the multiverse model makes that other theories do not ? Has it more reach ?
Realistic human face rendering in movies still not there in 2016. #RogueOne
@Elysee @fhollande @najatvb Le numerique, oui, mais mettre l’accent sur la methode scientifique aurait plus d’impact à long terme.
To manage strains, plasmids or reagents, an open and mature solution is @LabKey . Used every day in our laboratory labkey.org/home/project-b…
Wondering what is the ratio bot/human in my Twitter #followers. Is this ratio variable, in general ?
Some people spend tremendous amounts of energy to share knowledge, without any obvious immediate benefit for themselves. Why ?
A nice explanation about the hard to grasp concept of wave-particle duality: https://t.co/blojbN35Wa
Open source success: lots of scientific presentations use the open source mouse image by @Lemmling on @openclipart openclipart.org/detail/17558/s…
When nothing else works, or you just want to select columns in a text file, try #jEdit, a great text editor: jedit.org
Have questions about globalization ? Interesting answers and predictions: https://t.co/b2VrNVk0Ef
Some tweets should be retweeted twice: Ten rules for structuring papers @biorxivpreprint https://t.co/22kUubEASv
‘In 2016, lies, the whole lies and nothing but the lies’ Joel Stein’s title of ‘The awesome column’, Time December 2016
@TIME – sad to see your #CRISPR story failing to mention that the discovery was the result of many years of publicly funded research.
Deep learning and expert systems are not artificial intelligence but sophisticated and useful tools for complex data.
My best teachers helped me understand the value of well crafted books for learning chemistry, physics or mathematics.
Going slightly mad with GFFs, GTFs, #gffutils, #Salmon, #bedtools, etc. So many tools, so short the time …
Calling coding sequences “cDNA” is misleading in the #Ensemblgenomes, please correct README files (e.g. ftp.ensemblgenomes.org/pub/fungi/curr…)
«Tweeting is teaching, for better or for worse.» Anonymous
Sur BFM – les ‘experts’ pensent qu’apprendre une langue etrangere à l’ecole diminue le temps pour le francais… En fait, c’est le contraire
Will not click on links in tweets that begin with “Scientists have discovered a causal link between something and else.” Just #correlations.
@TIME – please refrain from using axes with arbitrary starting values for percentages. It distords the message. pic.twitter.com/mpyzWAMetF
Learnt today one of my long time interests is called epistemiology – a scary word designating the study of ways to gain knowledge.
Sun Tzu’s 2500 years old ‘The Art of War’ is probably famous because it reads like a scientific report. Concise, precise and pragmatic.
Wondering how much equivalent of Random Access Memory, #RAM, humans have. Most efficient ways to increase it ?
The innate desire of humans to teach others was probably selected during evolution. *What* we teach is a deliberate choice.
Video tutorials in which a guy explains his slides are a waste of time compared with an equivalent written document.
When you can’t see the top of the head for men in cropped pictures on the net, probability is high that they are bald.Apprendre l’anglais à l’école permettrait l’accès à des superbes livres, non-traduits, comme celui de John Stillwell: Maths and its history.


Fantastic open-source Android note taking application: OmniNotes. play.google.com/store/apps/det… pic.twitter.com/Z7CqG7Vtn9
Read 16 out of the 17 science fiction ‘classics’ listed by lifehacker: lifehacker.com.au/2016/09/17-sci… . But why 17 ?
After lots of phylosophy today, pragmatic observations on how to touch-type on an Android device with Multiling O: aboutfoto.wordpress.com/2016/11/21/and…
Looked yesterday into a book about happiness through meditation. Scientists should all be cheerful because they never stop meditating.
People think economic progress depends on making more and better ‘products’, when in reality all progress depends on advancing ‘knowledge’.
Est-ce-que c’est normal d’aller voter pour soi-même quand on est candidat ? Surtout quand le seul enjeux est de choisir une personne ?
About impact: even the most influential books, like those by Darwin or Popper, needed people, active proponents, to spread the word.
‘Refocus journal club discussion from findings to methods and approaches.’ Great advice. mbio.asm.org https://t.co/T4b19quaIW
“It is easy to obtain confirmations, or verifications, for nearly every theory – if we look for confirmations.” stephenjaygould.org/ctrl/popper_fa…
Converting one font format to another works beautifully with #FontForge, a complex program for font design (fontforge.github.io/en-US/)
Philosophers are to science what critics are to art. Good ones are true scientists, just like good art critics are great writers. pic.twitter.com/LlLTxxeDiU
Bizarre comment je suis content de voir une place de parking libre même si je suis à pied…


The historical origins of ‘seconds’ and ‘minutes’ explained by a reddit user: reddit.com/comments/5a1mh… pic.twitter.com/mVljHDNZYe
Human intervention *still* required for #Sanger DNA #sequencing. There are only two “T” bases there. pic.twitter.com/jeyaWeqQt9
“Science is what we have learned about how to keep from fooling ourselves.” Richard Feynman
Dommage qu’avec #Bayard et #jaimelirestore les e-book pour enfants sont disponibles seulement sur une app iPad. ePub sans DRM resoudrait ça.
Not satisfied by an #eBay seller, I tend to leave no evaluation. A lack of evaluations might be a robust indicator of not that great sellers
Great to see how yeast genetic screens with fungal viruses led to insights into mRNA degradation in humans (#SKIcomplex) #EESmRNA
Removing those annoying newsletters does not require any special program to assist you in clicking on the ‘unsubscribe’ link at msg end. pic.twitter.com/Ee7pw0e7M7
Many kids today believe that #Amazon is a kind of god that answers prayers done on your home computer. Next day delivery.
The person most likely to re-read this tweet some day is my future self. The same with blog entries.
The smartwatch of 1981, with perpetual calendar until … 2019. Pricely #Citizen at that time. 8940 movement. pic.twitter.com/arnlXqTyoR
Batch renaming files is done in OS X #Finder through right click on a list of selected files. Should be a default option in other OSes. pic.twitter.com/IiwU9NXG1M
Cut-throat academia leads to ‘natural selection of bad science’, claims study theguardian.com/science/2016/s…
Wondering if everyone stops dreaming about flying, with age.
Learning to program by making a game is like trying to get a driving licence with a 2 inch replica car.
Most annoying error in simple #bash scripts so far: COMMA not used in array variables.
Instead of dealing with with GEO sra files, search for the equivalent fastq files in the European Nucleotide Archive ebi.ac.uk/ena/browse
Why not allow comments on #GooglePlay for apps without having to give “stars” ? Constructive criticism could be done without a rating change
Un exemple des limites des methodes de “deep-learning”, completer l’information manquante deforme trop l’image. twitter.com/dlouapre/ https://t.co/02eyS79WFh


BBC News – How to be mediocre and be happy with yourself bbc.com/news/business-…
If only R could warn stupid/ignorant/beginner users when they push “Enter” on a command that risks to run forever …
I dream of smarter command line interfaces. Imagine a shell that can correct typing mistakes and gives usage hints when things go wrong.
Only 85.5% of viewers will like this cartoon #smbc #hiveworks smbc-comics.com/comic/explosiv…
#PokemonGo illustrates in the real what Vernor Vinge described as widespread in the Hugo awarded Rainbows end book. en.wikipedia.org/wiki/Rainbows_…
“The Feynman Lectures on Physics,” The Most Popular Physics Book Ever Written, Now Online goo.gl/TRsYFg pic.twitter.com/Ifpu4Pl5cV
A beautiful large-scale study of the impact of combinations of codons on gene expression in yeast. cell.com/cell/fulltext/… https://t.co/siszOQN2Dy


Ca fait plaisir de voir #Musnet en vitrine. Superbe bande déssinée de #Kickliy. pic.twitter.com/dqP88IF1Su
CRISPR-directed mitotic recombination enables genetic mapping without crosses science.sciencemag.org/content/early/…
Switching the Linux kernel from 4.4.8 to 4.6 in #Ubuntu is easy and dramatically affected idle energy load from 15 to 9W.
L”application #Android #OrangeRadio est excellente pour les radios FM par Internet. radio.orange.com/home
If #Gimp or #Inkscape look fuzzy on a high resolution screen in Windows 10, inactivate scaling in the “compatibility” tab of properties.
Switching back to #Windows after 10 years of Linux desktop use. 5 hours of battery life for Windows 10 vs 1.5 hours on #Ubuntu 16.04.
Translation dynamics of single mRNAs in live cells and neurons (Singer lab) science.sciencemag.org/content/early/…


#DoubleCommander can rename a bunch of files with or without regular expressions. Works well and replaces other batch file renamers.
Trouver un trèfle à quatre feuilles n’est pas une question de chance mais de persévérance. pic.twitter.com/R2JE6CVX2E
UpSetR, our #rstats based alternative to venn diagrams has now more than 5k downloads! github.com/hms-dbmi/UpSetR pic.twitter.com/flqDLtXhrd
App stores should have separate ratings for buginess, annoyance and ergonomy of apps.
Most scientific, ‘expert’, reviews repeat the conclusions of published papers instead of discussing actual data and potential pitfalls.
Feather: A Fast On-Disk Format for Data Frames for R and Python. This may interest you @biocs. blog.rstudio.org/2016/03/29/fea… #rstats #python
Comment #SFR va garder ses clients tout en augmentant leur tarifs? En proposant des services dont on n’a pas besoin? pic.twitter.com/MXZkHjg7TX
Upgrading to the latest version of the #TiddlyWiki is simple like drag and drop: tiddlywiki.com/upgrade.html
PIN digits distribution, math puzzles and more: datagenetics.com/blog.html
Authentic mail excerpt: “X salutes you for your compendium of writings which immensely help the global society and their #descendants…”
“[Scientific] work is not done for the sake of an application. It is done for the excitement of what is found out.” R. Feynman
#SQL on delim #textfiles as databases. Ex: $ cat some.txt | q -H -t “select * from – where Type like ‘%pattrn%'” harelba.github.io/q/index.html
There is a choice between Tree Style Tab and Tab Tree for tab handling in #Firefox on a wide screen. pic.twipic.twitter.com/X4uHYKSmk4
#Inkscape and #Sozi work well together for presentations nicely rendered by any web browser: aboutfoto.wordpress.com/2016/03/28/svg…
One of the reasons why using #TeX is more cumbersome that it could be. We should not need tips to write “32°F”. twitter.com/TeXtip/status/…
Essential #genes might be essential because there was no need to duplicate them in evolution. “Essential” is different from “Important”.
After Ubuntu’s cloud storage, #Copy.com goes extinct. I hope #Hubic and #SpiderOak will continue to operate. pic.twitter.com/QQ8ZrowpSC
“The X journal invites you to view your publication performance” – I didn’t know my poor publication was in a competition for “performance”.
This is when you know you are followed by #bots. pic.twitter.com/0Pu5J1SWRb
Testing #Sozi sozi.baierouge.fr for an #Inkscape based presentation shown in a web browser. Looks promising so far.
Thank you #PlayOnLinux and #wine for the easy install of #AdobeReader on a #Ubuntu machine. Sad that #Adobe dropped support for Linux.
A useful dock in #XFCE is #DockBarX, in its panel integrated version. Install on #Ubuntu: webupd8.org/2015/09/dockba… pic.twitter.com/xO2dgSGxQ6
All JS libraries should be authored in TypeScript staltz.com/all-js-librari… via @andrestaltz
/Soft drop shadows/ is a feature that would greatly improve the aspect of #LibreOffice presentations pic.twitter.com/IDEXaP8E1s
Scientists tend to discover beautiful equations in maths and physics because the brain is rewarded by “beauty” project-syndicate.org/commentary/why…
If a 7 yo kid asks about what fractions are, tell them they were invented. #Mathematics is a mind construct and should be taught as such.
Another highly readable #font for #ebooks mobile devices is #Fontin: exljbris.com/fontin.html pic.twitter.com/tYF9pzrZ3J
Font preferences in #Thunderbird may need the “Other Writing Systems” option to be modified (not only Latin). pic.twitter.com/HamU4jTMz2
Recovered my tweets from #Twitter and found that none of the uploaded images were present in the archive, just links to them. Frustrating…
Quick list of customizations that can be done on a laptop after installing #Ubuntu 14.04. #selfpromotion aboutfoto.wordpress.com/2016/03/07/cus…
You never know for how long you can read your bought #DRMed books. Sadly, #Nook #ebooks and tablets cease operation.
#wordpressdotcom seems to have a technical bug with two-factor authentication. Sending messages to phones all over the world might be hard..
Once well implemented, #Ubuntu #Unity features are time and screen space-saving: the launcher, integrated menus and the dock.
The comment for the article about how basic maths are known and used are very interesting too. twitter.com/treycausey/sta…


#Zootopie est l’equivalent moderne de #Monstresetcie. Drole, positif et bourré de blagues visuelles et textuelles. #films
Non-Long Term Support versions of #Ubuntu should be called Experimental. Best tested in a virtual environment of an LTS version.
Back to #Ubuntu after a year of using a Mac. Waiting for the next Unity release, to be able to adjust global menus. pic.twitter.com/K5qeCxsdJu
Funny how Windows needs installation of a dozen of drivers when Linux mostly just works. Unless you happen to have an M.2 SSD drive :-((
#Acer built into the #Z630 phone a perfect set of endurance and expandabiliy for 200€. Crop of a ISO 280 image, f/2. pic.twitter.com/nlVd8Xfgzv
Taking notes on #Android is made easy with #ColorNote. play.google.com/store/apps/det…. Plenty of nice ergonomy features. pic.twitter.com/IxfG8xPrHg
Savoir les dates des vacances scolaires par zone, c’est plus facile avec des calendriers officiels: data.gouv.fr/fr/datasets/le…
Hard to decide if the home (and work) laptop should run an #ArchLinux-based (#Manjaro) or a #Debian-based distribution (#Ubuntu, #Mint).
The only thing I learnt from lousy lectures delivered by boring teachers was that I should not inflict the same treatment to my students.
Code: “Good style is important because while your code only has one author, it will usually have multiple readers.” r-pkgs.had.co.nz/r.html
The #Outlook web app asks users to wait until the attachments are uploaded. Much less elegant than #Gmail.
Making interactive plots with #ggiraph and #ggplot2: davidgohel.github.io/ggiraph/introd…. Other extensions here: (ggplot2-exts.github.io/index.html).
@TiddlyWiki is wonderful as a note-keeper – sync on any platform (e.g. Hubic) and easy to use with #TiddlyFox. pic.twitter.com/X1QuhLMKpU
The system font of the old Nokia #Symbian S60 phones is one of the most readable for #ebooks. pic.twitter.com/6X7FWWgUHT
Update on my blog post about sharing folders between host and #VirtualBox machines (important -o gid=1000,uid=1000) aboutfoto.wordpress.com/2016/02/01/vir…
#Doublecommander, a file manager that can synchronize the content of two folders #LinMacWin. doublecmd.sourceforge.net pic.twitter.com/K6vgm4SgJo
Bravo pour l’enseignant qui montre aux enfants de CE1 l’edition des documents avec #LibreOffice. Ce n’est pas une initiative du ministere…
Wondering if there is any dual pane file manager that can do folder content synchronization #rsync-like.
“The criterion /upon which we base our decision to reject/ the hypothesis” -> The criterion /used to reject/ the hypothesis. #Gopen/writing
Stable #Debian that plays nice in virtualbox and allows easy install of recent versions of many apps: MX15 Linux. mepiscommunity.org/mx
The worse error of an aspiring statistician is to look at models instead of visualizing the data.
#opensuse is the first distribution tested in the last monhs that would not install on a virtualbox architecture
Qui a dit que #windowsxp est périmé? Toujours en vie et vaillant sur des machines ouvertes au public… en 2016. pic.twitter.com/4cWznMEm3K
One day, regular users might use #containers on their operating systems, to test new features without adding bloat. linuxcontainers.org/lxc/getting-st…
Visualize how different means vary together; one of the gems in “Street-fighting maths” mitpress.mit.edu/books/street-f… pic.twitter.com/akwz12U4wV
“Quotidiennitude” – une perle entendue à la radio #OMGlangue
‘Trying is the first step towards failure.’ — Homer Simpson
“…updating a blog post with new content makes more sense than creating a new post that continues the discussion.” wehart.blogspot.fr/2012/01/differ…
“[…]Much of an expert’s competence stems from having learned to avoid the most common bugs.[…]” – Marvin Minsky web.media.mit.edu/~minsky/OLPC-1…
#Conversations add-on for @mozthunderbird allows easy finding of mails and replies, better than Gmail’s thread view addons.mozilla.org/en-US/thunderb…
“Never use a complex word when a simple word will do.” cgi.duke.edu/web/sciwriting…
At last the Apple FR keyboard behaving on #Linux: setxkbmap -layout fr -model macintosh. Make it persistent by adding to .profile.
Efficient data #backup in #Linux is easier from a specific disk partition than from a /home directory overcrowded by hidden files.
Un excellent investissement pour 10 euros – “Les clés de l’#orthographe” par André Porquet. Petit livre, excellentes explications.
Not checking mail for a few work hours could be effective. Doing this is not likely to require a special service. twitter.com/hadleywickham/…
A post about how I move columns of a text file or do small but global changes fast in text files with #awk and #sed: aboutfoto.wordpress.com/2016/01/13/col…
“Improving the quality of writing actually improves the quality of thought.” Not only in science. americanscientist.org/issues/id.877,… Gopen, Swan 1990
Keeping offline copies of my #GoogleCalendar and #gmail is pretty easy (takeout.google.com/settings/takeo…).
For an #Xfce panel that overlays windows (webupd8.org/2011/05/get-mi…) use and add a False ‘disable-struts’ to panel.
#Geany is a cross-platform alternative to #TextWrangler for editing or source code print (geany.org). pic.twipic.twitter.com/IGS4FPHPWG
#Thunderbird is a more reliable IMAP mail client than #Outlook, on Mac. N=3, but still…
If you like the no-nonsense approach of #Xfce, #Manjaro is an alternative to #Xubuntu. Derived and user-friendlier than #ArchLinux.
#Archlinux is an interesting choice when you need #Linux in a virtual env. Very reasonable minimal install size. pic.twitter.com/yhQRXArjGO
‘With four parameters I can fit an elephant, and with five I can make him wiggle his trunk.’ — John von Neumann


What’s the secret of good writing? gu.com/p/4efj9/stw
En verlan, le “iPhone” devient “Phonei” (phoney = “imposteur” en anglais).
Using +scale+ when saving #ggplots, and other tips twitter.com/leejoeyk/statu…
Slide changed before I could manage to understand a #Venn diagram. Images with 3 or more Venn regions are utterly unreadable.
Un “sociologue” sur Fr info: “Les classes pop votent moins malgré le fait qu’ils ont plus de temps libre le weekend.” #abstention (????)
Programmer un bon outil en #bioinfo, et en général en #informatique, n’est possible que si le developpeur veut cet outil pour soi-même.
Trying #Rodeo, a #Python IDE that makes an #RStudio – like interface with #Electron/#Jupyter. Promising but freezes at first tab key press.
Just like a redditor said: reading tweets and reddit front page in the morning replaced the daily newspaper.
“This is a sickness in Europe,” Galbraith says: “The past is valued more than the future.” gu.com/p/4dgvf/stw
Humor: “Users can be very dumb but it’s still the developer’s fault for not making something easy enough.” from davidwalsh.name/impostor-syndr…
#Coding for one hour provides about 0.01% of a programmer’s knowledge. “Teach Yourself Programming in Ten Years” norvig.com/21-days.html
#TiddlyWiki (tiddlywiki.com) became more user-friendly with the #TiddlyFox extension (addons.mozilla.org/en-US/firefox/…). Personal or shared.
#Zotero is used by one third of scientists who answered an online survey (N=882). 101innovations.wordpress.com/2015/06/23/fir…
A cheap way to promote clicks is to hide essential content of a tweet by truncation. This is why
Dismissed #plotly as a commercial tool in the past, but it recently became open source, seems very promising plot.ly/javascript/ope…
Mail clients should focus on standards and very long term support and compatibility instead of ‘revolutionary’ user interfaces.

Reading ‘Tom Sawyer’ for my son is like rediscovering a beautiful landscape filled with delightful details.
#IGV, #ImageJ, #JavaTreeView, #LabKey – some of the most used programs for research are written in #Java. Should reconsider attitude on J.
Défi: expliquer à un enfant de 7 ans ce que c’est un “groupe nominal” et surtout à quoi ça sert de connaitre ça… #écoleprimaire
Well written and thorough explanations on the benefits of SVG for animated graphs or icons. twitter.com/newsycombinato…
@mozilla developers – please read and take into account the users. @zotero is a major tool for science. twitter.com/adam42smith/st…
Excellent explanations on stat overinterpretations. twitter.com/ClausWilke/sta…
#ElCapitan makes the pointer larger if you wiggle the mouse fast enough. No mouse pointer lost anymore!
I thought I knew English from reading on the Internet, but then I started reading a #book. pic.twitter.com/zJ7mPwaYI4
Moins d’éducation corrélé à une méfiance envers la vaccination parmi les participants à l’etude @GrippeNet. pic.twitter.com/FvFoAAFZQn
Are people more likely to attend a talk knowing that sweets and coffee is offered afterwards ? An experiment to test this would be fun.
#ElCapitan – slight lack of attention to the detail even before installing it. Polished and nice otherwise. pic.twitter.com/uaPA5IRbxF
Videos and postcasts should not be used as replacements of good old written articles.
How nice would it be if #Zotero could tell me if the article I’m viewing right now is already in the database or not…
Seeing the pixels of the glorious qHD 534 ppi screen of the #LGG3. Because water droplets work as lenses.
Identical size selection in #Gimp is easy by writing the size in the tool option dialog. Handy with #scientific figs pic.twitter.com/rMNj4RiThF
Invitations to ‘guest edit’ an issue of an obscure journal are like ‘free lunch, bring your food’.
The #Nexus5X is available but, at 479€, too expensive for the number of compromises they made (no FM, no SD card, no user-replaceble batt).

How git works? No idea! twitter.com/xkcdComic/stat…
There is a need for an #antitweet – to cancel tweets or blog posts that are notoriously made just to go viral and for that, distord reality.
For an avid #reader, replacing a #smartphone with one with a bigger screen is like changing from the paperback to #hardcover edition.
#Themartian me: ‘Nobody will like this movie, there are no fights, no action’ 7 yo: ‘But dad, he’s fighting with the entire planet’ me: …
“Motivation: It’s Not the Carrot or the Stick” by @callmemrmorris medium.com/synapse/motiva…
Current reading font: #Andada – beautiful and highly lisible. google.com/fonts/specimen…
Apparently #DavMail can be used to access goodies from an Exchange server. Good do know but setup seems cplx: davmail.sourceforge.net/thunderbirdima…
Scored an estimated 43 wpm writing speed with #MessagEase #keyboard on #Android. bit.ly/hAjG4W. Without predictive mode!
Entering the second phase of #twittership: ‘blasé’
“Great products happen when people build a product for themselves.” Eric Schmidt medium.com/cs183c-blitzsc…
Did not really feel like a hacker when copy-pasting commands from a forum in a terminal to gain root access to a phone. But it worked.
A few simple and not that simple data analysis tasks done with #R AND #Python and various packages. twitter.com/newsycombinato…
It would make sense to have Twitter as a #publicservice rather than a private company.
Wondering if there is some weekly periodicity when loosing weight (with the help of #R and #ggplot2). pic.twitter.com/3nhy55hIFk
Elephants: Large, Long-Living and Less Prone to Cancer nyti.ms/1OnYzVE
Understand why there is no FM radio in so many new devices including #GalaxyS6, #iPhone6s or #Nexus phones: npr.org/sections/allte…
L’information des affiches électorales frôle le zéro car 99% de leur surface n’est qu’un grand #sourirevotepourmoi. Et ca marche?
Laziness must correlate pretty well with the retweets to tweets ratio. Or is is lack of self-confidence?
The advanced search dialog in #Thunderbird should be promoted as the only search system, easily accesible from the toolbar.
Fast shoe lace tying – works with reasonably long laces: fieggen.com/shoelace/iankn…
Funny online tool to see what a short script does: Learning programming at scale radar.oreilly.com/2015/08/learni… via @radar
Realized today that I was following a prolific Twitter bot (#YCombinator). Impressed.
Just discovered that the Google #keyboard can assist in orthograph corrections on a previously written text. play.google.com/store/apps/det…
Le campus de Stanford a commencé à utiliser #WordPress il y a 8 ans, maintenant ils ont un accès privilegié à #Overleaf. A réfléchir.
Potentially a way to use a single image file and load various resolutions of it on a web page or on screen. twitter.com/newsycombinato…
The #nexus5x has a nice camera but non-removable #battery, no #SD card an no #FM radio. Too expensive in Europe too.

Nice discussion and study on the ergonomy of screens while driving, for lovers of #typography and #design : ustwo.com/blog/cluster/
Great advice for faster weight loss: Don’t.
My post about #Substance.io, the library that serves as the basis of Lens viewer in the #eLife journal and others aboutfoto.wordpress.com/2015/09/23/any…
CEO who raised price of old pill more than $700 calls journalist a ‘moron’ for asking why wpo.st/ePSb0
Eating less without knowing it: smaller portions in smaller plates. cochrane.org/news/portion-p…
Nobody looks smart when driving a Ferarri in a traffic jam.
Reseautage – moche mot ‘moderne’ pour ‘se creer des relations’ – entendu à la radio.
Reminder: a tweet a day keeps the bad doctor away.
@Science_Open Thank you. So, the term ‘peer review’ is recent, not the process in itself. It is an entirely different perspective.
Admiring scientists who seem to know what questions are worth exploring.
Me: Have you heard of Ebola ? Someone: Oh, yes! Me: It’s an RNA virus and I’m working on RNA. (better intro to my research?)
Still far from the time when the smartphone would automatically search for the bus schedule when you walk towards the bus station.
The humble #Nikon E 50mm f/1.8 is compact light and perfectly usable in low light for a scientific meeting. pic.twitter.com/4sfXVeZJhQ
Introducing computers in schools does not lead to improved performance for pupils, probably the opposite. phys.org/news/2015-09-t…
Wondering why online sellers would still send untracked parcels. Cheaper is definitely bad for the bussiness.
Bourré de trouvailles et d’images surprenantes, “Le tout nouveau testament”. Effectivement iconoclaste.
Possible solution pour inclure les annotations et descriptions des données dans un fichier #csv blog.datacite.org/using-yaml-fro… via @mfenner
Amusant – kibi, mébi, et autres unités de mesures des multiples des octets … twitter.com/ptilouk/status…
“Humans desire certainty, and science infrequently provides it.” sciencemag.org/content/349/62…
Ediacarans extinction was probably due to ‘new kids on the block’ organisms, currently known as animals. phy.so/360415286
There is a reason why 12, 60 or 360 are very much in use – they are all “collosally abundant numbers”. en.wikipedia.org/wiki/Colossall…

Interesting analogy between automatic elevators and Google cars – @NPR: n.pr/1eFebp9
Messy HTML that cannot be removed in a #gmail “Reply”, can be avoided by highlighting some text before clicking Reply gizmodo.com/5963768/the-be…
“Before the introduction of laboratory mice, scientists endured many difficult years with lab bears”. tinyurl.com/ncam8ca
Would love to see pre-defined shapes like arrows and Pacmans in #Inkscape.
Bioinformatics is about extracting meaning from data. Software engineering principles do not apply, mostly (liorpachter.wordpress.com/2015/07/10/the…)
Shouldn’t have invested any money in an e-book reader. An Android smartphone is a better reading device. #FBReader, #AlReader or #ZXReader.
#Unity interface of #Ubuntu fails completely for several colleague scientists. Their conclusion: “#Linux is hard to use and unfriendly”.
Diets are harmful both physically and emotionally. Slight mods of lifestyle are not. medium.com/@NoelDickover/…
Maigrir durablement c’est maigrir lentement – le propos bien documenté de “L’Anti-régime” de Michel #Desmurget (enquete-debat.fr/archives/inter…).
“Pour un sommeil reparateur … dormez sur un drap de cuivre.” Pub pour les fakirs embetes par les clous en fer.. pic.twitter.com/cGmfS2HEwA
“A key accomplishment of evolution is … piling up endless new ways of doing the same old thing”. Amazon wisdom: amazon.com/review/R1QHCXV…
#Ubuntu 14.04 with default Unity does not have a way to easily set up a time for programmed shutdown on non-laptops. Pretty annoying.

Et si MongoDB et NodeJS n’étaient pas le bon choix … Une présentation: mcfunley.com/choose-boring-… pic.twitter.com/ejHA1UtYF3
Le prince de Motordu est un grand plastique de la litterature francaise pour enfants. A deguster à partir de 6-7 ans.
For those scared of the flood of data in science, excellent reference. twitter.com/vsbuffalo/stat…
Retweeting a link gives credit to the one who found it but means more clicks for those who are interested in the original story.
For those who want a glimpse into the world of drug addiction : Junk de Burgess leslibraires.fr/livre/7123443-…
Comparing versions of text with #Meld (meldmerge.org) is both cool and efficient. Complements LaTeX and git. pic.twitter.com/2kybtGfd8f
Comments with examples about efficiency of numpy use and difficulties in using an alternative like Pypy or Cython (frama.link/numpy)
Pocket spectrophotometer paper – parallel intensity measurements of ligh filtered through an array of quantum dots: rdcu.be/dimT
“need a change of institutional culture so that, instead of being rewarded, unfeasibly lengthy CVs are discouraged.” bmj.com/content/351/bm…

The #ReaderView, switched on with the book icon in #Firefox’s address bar helps with diminishing eye strain. pic.twitter.com/fi3sAqfVCj
With ggvis and other web based solutions interactive visualizations might come at last to R (#rstudio). twitter.com/Rbloggers/stat…
Lars Arvestad @arvestad: I worry more about natural stupidity than artificial intelligence.
A colleague with prior #LaTeX experience is enthusiastic about #overleaf. Others prefer #GoogleDocs. Having choices is good.
Interesting documentary, showing that some scientists do not make much use of the scientific method. twitter.com/RichardDawkins…
“Data analysis is an easy, relaxing and wasteful part of research, especially if compared with true bench work giving true results” – yeah.
Struggling for quite some time with hard to understand and remember syntax in R – could #dplyr solve that ?
Correlations, correlations. twitter.com/TRyanGregory/s…
Basics of operations on data frames in R, including how to initialize an empty one with named columns and types: blog.datacamp.com/15-easy-soluti…
Strange that major e-ink #ebook readers do not use an #Android-based OS, since #CoolReader, #FBReader are such great reading apps. #DRM?
#RStudio knows now about code snippets: writing the dreadful *stringsAsFactors=F* becomes so much easier. support.rstudio.com/hc/en-us/artic…
Learn how to obtain best estimate for the length of the nose of the China’s emperor, from Feynman’s autobiography (frama.link/feynman)
RNA degradation intermediates give post-mortem details about how many ribosomes had once travelled along an mRNA. dx.doi.org/10.1016/j.cell…
Carefully crafted tweets with no links are like advice being given without being asked. Makes one think. Pocket literature.

Funny how RSS feeds become redundant after setting up a Twitter account.
Including Python results in a LaTeX document – did not know about Pweave. twitter.com/TeXtip/status/…
Graphics from code – optical illusion images made with LaTeX and TikZ/PSTricks – bit.ly/1SDFVuL twitter.com/DrHammersley/s…
Promising tool (overleaf.com) for shared document editing. Helps students to see how nice reports can be generated with LaTeX.
Science article data analysis suggests fraud and will likely lead to retraction. twitter.com/lakens/status/…
Explaining p value misuse, doing stats in science, also in book form (found on O’Reilly) statisticsdonewrong.com
Managing and recruiting advice from Google (2013) nyti.ms/11MuanK

Pervasiveness of quantitative data in biology raises questions about abusing statistical significance. twitter.com/generalising/s…
Showing more data and using better plots. Yes! twitter.com/KamounLab/stat…
Brilliant, even for the most reluctant students. twitter.com/Rbloggers/stat…

Tweeting more to do better science ? bit.ly/1DlDeZK
“Do the best experiments you can, and always tell the truth. That’s all.” -Sydney Brenner – nautil.us/issue/21/infor…

Android touch-typing

How many times did you see phone users cursing their tiny buttons of phone keyboards or their strange sent messages or e-mails ending with ‘Love’ instead of the intended ‘Sincerely yours’?

One of the most widespread solution to this problem is ‘smart guessing’ of what you wanted to write either by pushing the virtual keyboard buttons or by gesturing over them. This solution is great both for the developpers – it requires an expert system to work – and for many users who did not find something better.

An alternative keyboard system, which with some training allows almost blind touch typing on a phone, was developed well before the current smartphones and is called MessageEase. The ME keyboard served me to a fantastic extent in the past 3 years and was never challenged by any other tool (even if I tried every released Android keyboard under the sun). It works by reducing the number of buttons on a keyboard to 9 main ones. Each button corresponds to a main letter, with 8 other possible characters that can be obtained by sliding the finger from the center towards the 4 sides or the 4 corners of the square forming the button. My current layout, helpful for both French and English, is shown below.

MessageEase key layout, for French.

What will happen if, for some reason, ME development stops some day? Having alternatives is good and, as long as it allows one to explore some new ways to do the same things differently, it can be fun. I was thus happy to see the very active development of Han Honso’s Multiling O keyboard for Android. One of the customization modes, obtained by starting on the ‘space’ key and going to ‘Layouts’ is called Do It Yourself (DIY). A simple text description allows one to change all the keys to your liking, including a ‘4D’ mode that givest to any key 9 possible values (center and 8 directions).

A very usable implementation of a MessageEase-like layout is obtained with the code found at the end of this post, that you can paste afte choosing the DIY+ option: The keyboard will look similar to the next picture, depending on the theme settings:

Multiling O keyboard, ME-layout

The current version of the layout I’m using is not perfect, especially the position of numbers. 8, for example, is not easy to obtain as it involves an unnatural positioning of the fingers. Still a lot of fun.

{“title”:”mesgease1″,”onScreen”:{“main”:[“[4D:0 1234][4D:a -â àv ][4D:n+^!l][4D:i?_ = x][4D:5 [COPY] [PASTE]6789]”,”[LEFT][4D:u(ôkç][4D:ochbdqpjg][4D:rm*) @][RIGHT]”,”[SHIFT][4D:t<êè/ y][4D:eéwz. ‘:,][4D:s# > f ;][DEL]”,”[TOOL][ALTGR:,][SPACE][][SYM:.][ENTER]”]}}