Skip to main content

Posts

My journey with Bioconductor

My experience with Bioconductor I been involved with the Bioconductor project for several years and last year I attended the BioC2019 conference in New York. It was my first time in an international conference abroad. I'm posting here my experience with the project. Pre-conference The first time I heard about Bioconductor was in 2013 when in an internship, my main goal was to analyze data from Pichia pastoris and look at the functions of the differentially expressed genes through gene ontology. I did it with topGO and other packages included in Bioconductor. Later during the master in Bioinformatics for Health Science I studied, we used several packages from Bioconductor to analyze other data (the main project is still online ). Also as part of the master thesis I also used some other packages (the thesis involved using WGCNA ) but the main question roadblock was knowing the function and what are the genes doing. So I developed a package to compare the annotation of genes accord...

Sequencing: From the wet lab to the dry lab

Here I'll share some experiences for sequencing samples by RNA. Most of them will be useful for other techniques and also for single cell sequencing (or scRNA-seq). Here I'm assuming that you do a short-sequence technique from Illumina or similar companies. Also I'll provide some tips to make easier the life of the bioinformatician that will analyse the data. Don't expect to find how many reads for sample you need or which design is better or which machine. Neither I will talk about prices or provide a list of companies and scientific platforms to look for. I won't cover how to analyse the data, or compare pipelines to process RNA-seq. Hope this post is more practical than all that but less technical. Before sending: Get ready You carried out your experiments and have already extracted the RNA from patients, mice, rats, cell cultures or whatever are you studying. You have them named with sensible names for your experiment like A+B-, 4789/Diff, 256-w046 and u...

Reviewing a preprint

After a while I write back to comment about the preprint : "Benchmarking joint multi-omics dimensionality reduction approaches for cancer study". First, I'll explain why I comment here: On 20th September 2019 I saw on twitter a poster about multiomics mentioing RGCCA, which I have been using for a while. After asking somehting about it the first author of the poster commented that would notify me when the preprint would be ready. Now that the preprint is ready, the first author of the paper, Laura, asked for comments on the preprint. Abstract Already from the abstract one notices that there is an special emphasis on reproducible research. The methods used and how other readers can use them, can be easily accessed and reused. Background The integrations methods are classified after explaining why the integration methods are needed, and why do we need to compare them.  One of these classifications are the dimension reduction approaches, which this article foc...

Updating your mail on Bioconductor

If you have a package in Bioconductor and you need to change the email (say you change from university or company) it is not fast. You need to do the following: On the bioc-devel mailing list. On the support website through "edit my profile" On your BiocCredentials Send a request to the bioc-devel for updating the maintainer email for the related packages  Update the DESCRIPTION file in the release and devel branches of all the packages the email is listed in (this can be done by Bioconductor core members if you ask so in the previous point) This is because there isn't a centralized account to control the email on all these related services. It is not hard, but you could forget something. Thanks to Leonardo and Nitesh for reporting this on the mailing list

Accessing the vignettes

I am used to search in the web for the vignettes of the packages, but sometimes it is useful to access the one in the computer. In this occasions you can use: vignette(package="UpSetR") # To know if there are vignettes and their name vignette("set.metadata.plots", package = "UpSetR") # Open one of the vignettes

Views of a pet bioinformatician

My research group has three bioinformaticians, but the team is mostly wet lab focused. So I consider myself and my colleagues as pet bioinformaticians . I could also be considered a clinical bioinformatician , and I want to share my (little) experience so far: Communication My lab is mostly wet lab but my boss has several bioinformaticians, despite not understanding much the mathematical/technical aspect of what we do. She is mostly interested in which genes are up-regulated, or which microorganisms are involved in the disease (inflammatory bowel disease). It is often difficult to explain my concerns with using some methods. For instance, she wants to know which microorganisms are related to which genes from the mucosal intestine. She frequently asks me for the correlations between them, without considering that this way we might have lots of noise from different sources like the diet that different patients follow. At the same time I also need to make is easy to understand the m...

Pathway activation

For biologists using microarrays or sequencing one of the most intersting things is finding if a pathway related to a function is activated or not. To know if a pathway is activated or not usually we need to compare the same pathway in two conditions. It means a subject centered functional scoring method. Which in turns assumes that a pathway is conserved among people and time.   In addition the assumption that is done is that more expression of more genes of a pathways imply an increase of the metabolism of that pathway, which might not be true. Given that pathway has 5 genes, and that all of them are positive regulated implies that a pathway is activated? I have to dive to the origins of this, and see if there is some other way to measure how active a pathway is.

Gene Ontology changes

Until recently I didn't notice the changes on gene ontolology. For me it was a very reliable and stable resource. As my package BioCor is compared with GOSemSim which calculates similarities based on the gene ontologies I found that they change very much. There are constant changes on which terms are removed. I found that changes are shared via a github repository geneontology/go-announcements , which allows one to oppose to some changes.

Coding ecosistem

If you are looking for improvements in your software development you might have read or heard about test, licenses, styles, quality, ... This post is aimed to explain how and which pieces work together for a related goal. I have seen lots of post for each specific tools or steps, but not so much for a list of how do you work with all (or some). Here I list some of these tools related to R packages and GitHub. I edit as I go, so if I missed something let me know and I'll update the list. Previous work Before starting writing a new piece of software as usually avoid "reinventing the wheel", so search for similar packages, I recommend using packagefinder . Which allows you to search for keywords in the existing CRAN packages. Naming When I start a project I try to identify the name with what is its goal and then I check with available . It checks github and dictionaries to suggest a name for your package or check your name Coding just typing R code - Hadley...

Machine learning vs data learning

One of my last post was " I don't do machine learning ". Now, I realized that I am actually doing it (more on this below). However what I was doing previously? I would say I was doing data learning . What is different in machine learning to methods? After reading a lot, I think that the differences are on the focus, a regression (substitute for other procedures that model something) can be used for both machine learning and data learning. When I do a linear regression in data learning I focus on which variables have more weight and improve the adjusted R 2 . I learn from the data what is happening . When I do machine learning I focus on which linear regression is better with the data I have (or with new data). I learn from the data what models are better. That model can be a simple regression or a complicated deep neural network. Both have the same data, but the goal is different. Of course, nowadays where it is not too computationally expensive we want both: ...

RV coefficient

I have recently learned about the RV coefficient and I wanted to share it: The RV coefficient is like a correlation between several variables. In R I found so far several methods that seems to calculate it: FactoMineR::coeffRV subselect::rv.coef MatrixCorrelation::RV However the rv.coeff function from the subselect package works with only one matrix, and the coeffRV and the RV functions differ in they results. This lead me to search for its definition. All the papers mention Escoufier as the originator of these idea. The longest citation (and more relevant) can be found on a preprint , where it is mentioned the year, the author and that several of these papers are in French. In this document we can find the definition which is only followed by the RV function, in the coeffRV function the values are scaled. You can check that: RV(scale(X, scale = FALSE), scale(Y, scale = FALSE)) == coeffRV(X, Y)$rv

I don't do machine learning

Yes, the title is true even if I do data science in bioinformatics, I don't do machine learning. As seen recently if used correctly, regressions tend to work as well as machine learning. Classic tools (?) still work, I can't say I have tried all of them, but they are quite useful. Also in bioinformatics it is hard to get a big number of samples to make both a good and reliable generalization and to train reliable a model with enough confidence. Last, most machine learning methods are to me black boxes, I don't understand them (yet). I like to understand what I use. (Although I can't say I have deeply understood the differences between some regression methods I use). Then, why I am writing this? Because it seems like an hype to say things like "powerful network medicine tools", "machine learning model", without explaining them in detail. So it becomes a black box, and science is not about black boxes. In science we want to increase the know...

Functional enrichment methods and pathways

For some time I have been working on one topic. I am not sure if this is how it started but I fail to see other reasons. So I'll describe why I'm now working with gene sets collections. The trigger I usually try to help others in Biostars , Bioconductor , and in the StackExchange network (specially in Bioinformatics ). On one of these sites I was trying to help some person, and in one of the comments ( Jun 21 '17 ) it says: You don't build pathway maps from bioinformatics data, you build them from wet-lab experiments. And I was : " Why not? We already know (kind of) the number of genes, and we have an idea or the number of metabolites in a cell. We have many data, why can't we build pathways?" But I did a brief literature search and I couldn't find anything (if there is something let me know in the comments).   The background Let me explain why this comment got me puzzled: in my work I am usually asked what is the relevan...

RISK cohort

Since some time I am working with Crohn's Disease. One of the problems with the disease is that it is not known what happens. People has found associations with microorganisms, but the relationship between those microorganisms and the patient is still unknown. Also the risk factors for complications is largely unknown. This post follows up the use of a patient cohort data enrolled for identifying the risk factors of complications and health-care costs in pediatric and adult onset Crohn’s disease. Where we can see some usage of the data and the problems of unclear descriptions when using the same data. Articles describing the RISK cohort The first mention to the RISK cohort I could found is in this article [1] where they describe a cohort as: an observational research program that enrolled patients younger than age 17 diagnosed with in flammatory (nonpenetrating, nonstricturing) CD from 2008 through 2012 at 28 pediatric gastroenterology centers in North America. In that ar...

Bioconductor histories with git-svn

If you are developing a software you might be using a version control (If not do it :). Bioconductor until 05/2017 is using svn. However it is migrating to git, meanwhile a hybrid system is provided, where one submits the project through GitHub using git control version system and internally it uses svn. Here are some experiences developing in for Bioconductor in this configuration . After following the recommendations of the configuration .git/config ends up with: [core]     repositoryformatversion = 0     filemode = true     bare = false     logallrefupdates = true [remote "origin"]     url = https://github.com/llrs/BioCor.git     fetch = +refs/heads/*:refs/remotes/origin/* [branch "master"]     remote = origin     merge = refs/heads/master [remote "bioc"]     url = https://github.com/Bioconductor-mirror/BioCor.git     ...

GSEA in Bioconductor

Gene Set Enrichment Analysis is a test thought to find if the position of a group along a list implies some difference. The most know method is the one maintained by the Broad Institute . As it was the first widely used in biology and holds several collection of gene sets. A gene set is a collection of genes related, by either a function or an experiment, it is as fuzzy described as a pathway. In Bioconductor there is the under used tool of BiocViews , a topic for package classificacion. We can find a category for GSEAs under Software>BiologicalQuestion>GeneSetEnrichment . This category list 74 packages at the time of writing, which provide function for Gene Set Enrichment Analysis. It will be too long (and too hard for me) to describe all the packages in that category. However, it doesn't include all the packages that perform gene set enrichment. The first package for GSEA in Bioconductor one should look is GSEABase which provides with tools for reading files from...

BioCor: My first package in Bioconductor

Yesterday I received an amazing email: Congratulations, BioCor has been added to Bioconductor! Yes, I had submitted a package for the Bioconductor project at the beginning of the week. The package calculates similarities between pathways, genes and clusters of genes based on their pathways. A pathway is a group of functionally related proteins, thus this similarities calculates the functional similarity of the pathway or genes in question. If anyone is curious what the email had this was in the body (I didn't know what to expect when I knew that it would be accepted):  Hi Lluís, Congratulations, BioCor has been added to Bioconductor! Currently, the definitive location for your Bioconductor package is in our SVN repository. The following information is to help you in your role as a package maintainer. You’ll need the following credentials to maintain your package: Subversion user ID: myuser Password: mypassword Package ‘landing pages’ Every package in Bi...