Category Archives: Software

paper newsletter #01

I’ve been meaning to do a newsletter to keep my readings/tabs organised for a while but I am terrible at getting things started. This is part of a motivation influx I had two months ago after a couple of congresses (the other part being having learned to code in functions and using markdowns) and after being subscribed to learnbyexample’s newsletter for almost a year now. I’ll do my best to explain in simple lay words the concept behind the papers/resources, most times having read only the abstract or skimmed through very quickly.

Let’s get started:

  • Unclearing microscopy : a novel method to visualise cells without the need of a microscope, by “revealing” the cell membranes using a chemical reaction that is expanded volumetrically while keeping the original cell shape.
  • Predicting evolution: a review on the major advances in evolutionary biology and population genetics, and how we can infer patterns on clonal competition across all biological systems studied. This hints at potential predictions of the principles of a modern evolutionary theory.
  • Anticor_features: finding anticorrelation patterns in single cell data that can help identify divergent cell types. Also a way of performing negative controls in these studies to prevent excessive sub-clustering. A twitter thread here.

More soon!

Making a workflow

 

Wow!

This is my first kind of serious project in bioinformatics. I had to prepare some de novo transcriptome assemblies from weird organisms using publicly available data, and I took the chance to learn a little bit how to automate processes using bash scripting, virtual environments, a a lot of variables and flags.

I have named this pristine, and it can be found in my github repository.

I will keep working on it as I learn how to code and make new things. I recently saw a way to download and transfer fastq data into other softwares on-the-go as it is downloaded using UNIX pipes. I will try to check if something like this could be done, how cool.

Cheers!

(and no, I did not forget about the last post of the multicellularity story. I just need free time and energies to sit down and finish it :’) )

Generate wordclouds of Gene Ontology GO terms using wordcloud, RColorBrewer and base::abbreviate() in R

I have two different Gene Ontology annotations for the genome annotation I am working with, and I’ve been trying different ways to quickly visualize Gene Ontology information, such as GO enrichment analysis using p-values as a proxy of significance (as per usual in genomic analyses). I thought of adapting this quick tutorial on wordcloud, but soon I noticed that sometimes the GO term human-readable descriptions are excruciatingly long, and the plots can become a total mess.

One option could be to inject a jumpline character after N words in the GO term string, which the R plotting engine seems to work fine with, but my first I thought was to abbreviate the words in the description. Perhaps unsurprised I learned that the foundational knowledge of R base has what I was looking for: the abbreviate() function.

Continue reading

Pseudocódigo para una idea de un meta-randomizador de Pokémon | Pseudocode for a Pokémon meta-randomizer

Tomado de la web de Sanqui randomizer – Taken from the Sanqui randomizer website.

(ES) (English Below)

Ando en una época de estar relativamente disperso con mis hobbies (hoy estoy escribiendo y actualizando entradas después de dos años y medio con esto olvidado), con lo que muchas veces recurro a emuladores para echar partidas rápidas o viciarme rápido a lo que sea. Durante 2020 ha habido un boom de nuevos ROM Hacks de Pokémon (¿por qué será…?), y he estado bastante pendiente de lo que se cocía en ThePokéCommunity y en el subreddit de PokemonROMHacks. Así volví a toparme con los randomizadores o aleatorizadores (más información, en inglés, aquí y aquí) y uno de mis trabajos favoritos de ingeniería reversa, las decompilaciones de los juegos de Pokémon (GitHub), concretamente el de primera generación (pokered).

Continue reading

[shared] Reproducible analysis for the very lazy | Análisis reproducibles para los más flojos

Lectura recomendadísima con unos cuantos consejos sobre cómo organizar los directorios de trabajo para facilitar la reproducibilidad, el orden homogéneo de todos nuestros proyectos, y nuestra salud mental en general. Cuanto menos, dan inspiración y refuerzan ideas o experiencias previas en el mundo de los sistemas de archivos. Además, molan porque son tan sencillos que ayudan hasta a los que más nos cuesta organizar las cosas. Traducidos al castellano, los comentarios más importantes serían:

  1. Crea una estructura estándar para tus proyectos, respétala en todo momento, conócela como la palma de tu mano, y reutilízala en cada proyecto que hagas. Por ejemplo:
    1. Ten un directorio por cada proyecto que tengas. Todo lo necesario para un proyecto debería estar en el mismo directorio raíz.
    2. Dentro del directorio principal del proyecto, al menos los tres siguientes sub-directorios:
      1. Código: todos los scripts, borradores de código, etc.
      2. Datos: todos los raw data, datos tabulares, etc. Todo lo que se generó durante un experimento, así como información proporcionada por otra persona.
      3. Resultados: todo lo generado usando código.
  2. Usa enlaces simbólicos (==symbolic links, o symlinks) (ln -s) para evitar la redundancia de datos. Importantísimo, que a la hora de llamar el comando ‘ln -s’ se haga usando la ruta completa del archivo de origen, incluyendo cuanto menos el directorio home (“~/ruta/al/archivo” en lugar de, por ejemplo, “../ruta/al/archivo”).
  3. Usa rutas (==paths) relativas entre sí. Por ejemplo, si trabajas en R, sitúa tu workingdirectory en “~/ProjectName” y haz las llamadas a lecturas de datos desde “Data/…”. ¿Que tienes algún dato o cosa que necesitas usar rápido y sin más importancia? Usa el consejo #2 (link simbólico a “Data/” ) para respetar la estructura decidida en la regla 1.

Si quieres más consejos a cuenta de la casa, continúa leyendo.

Continue reading