Mostrando entradas con la etiqueta R. Mostrar todas las entradas
Mostrando entradas con la etiqueta R. Mostrar todas las entradas

13 de octubre de 2024

códigos QR que no caducan en el terminal

A menudo necesitamos crear un código QR, por ejemplo para insertarlo en un póster científico que vas a llevar a un congreso, y acabas usando una de las múltiples opciones que encuentras en la Web, para descubrir unos días más tarde que ha caducado y deja de funcionar. Justo lo que le pasó a mi colega Ana Conesa hace unos días.

Twitter hizo su trabajo y una usuaria recomendó el software qrencode, que instalé y probé como muestro a continuación en mi Ubuntu WSL para generar el QR de esta entrada:

$ sudo apt install qrencode
$ qrencode -o testQR.png https://bioinfoperl.blogspot.com/2024/10/codigos-qr-que-no-caducan-en-el-terminal.html


Otras opciones para R y perl incluyen https://thierryo.github.io/qrcode y https://metacpan.org/pod/Imager::QRCode ,

hasta pronto,

Bruno

 

 

29 de agosto de 2023

Comprueba URLs en archivos R markdown

Hola,

una tarea habitual cuando mantienes material didáctico en la Web es comprobar si los enlaces/URLs contenidos funcionan. Es justo lo que acabo de hacer con un curso que tenemos en https://github.com/eead-csic-compbio/bioinformatics ,  compuesto por varios ficheros en formato R markdown, como por ejemplo https://github.com/eead-csic-compbio/bioinformatics/blob/main/session1.Rmd

En este caso son ochenta y pico enlaces y los he validado con el siguiente one-liner en Perl, que llama al módulo LWP::UserAgent:

perl -MLWP::UserAgent -lne 'if(/\((http[^\)]+)/){ print $1," ",LWP::UserAgent->new(timeout => 10)->get($1)->is_success ? "OK":"KO" }' *.Rmd 

Espero que os ayude, hasta pronto,

Bruno

 


25 de abril de 2023

Por qué Perl?

De vez en cuando en este blog toca escribir sobre Perl, uno de los lenguajes que usamos en nuestro trabajo, en mi caso el que más uso la verdad.

Voy a traducir y resumir https://two-wrongs.com/why-perl , porque creo que plasma mi experiencia bastante bien [en negrita mis comentarios]:

"A veces me preguntan porqué uso tanto el Perl. No soy acaso fan de los lenguajes fuertemente tipados? Sí. Pídeme que escriba algo que sepa a ciencia cierta que se convertirá en un gran sistema y elegiré un lenguaje fuertemente tipado sin duda [...]. Pero la mayor parte de lo que escribo nunca se convertirá en un gran sistema. Esto es lo que Perl hace bien:

  1. Está instalado por defecto en todas partes y no necesito ser superusuario para ejecutarlo.
  2. Con mucha disciplina, los scripts Perl pueden escalar hasta construir sistemas grandes y complejos.
  3. Sé que un script Perl que escriba hoy funcionará sin cambios en 10 años, sobre todo si me limito a importar módulos core.
  4. Perl puede reemplazar en la práctica a cualquier lenguaje shell, aunque combina muy bien con bucles bash.
  5. Perl tiene una sintaxis core relativamente pequeña, flexible y extensible. 

Estos requerimientos están ordenados por prioridad, siendo el primero el más importante. Cuando quiero hacer un prototipo rápidamente no quiero que mi primera tarea sea 'Primero instala el ambiente ...'. Como los prototipos suelen usarse más allá de lo que inicialmente pensamos, es importante que sea posible escribir software en ese lenguaje que se pueda mantener y que funcione mientras haya personas interesadas en usarlo.

Perl es único en cuanto a estas condiciones. La siguiente tabla resume otras alternativas que he probado al menos un mes, donde los asteriscos marcan condiciones que se cumplen de manera incompleta:

"
 

En general estoy bastante de acuerdo con esta carta de presentación del lenguaje. Creo que el principal problema de Perl es que su extrema flexibilidad permite escribir programas que pueden ser difíciles de leer por otros, queda en tu mano documentar y estructurar bien el código para que eso no ocurra,

Bruno

 


22 de junio de 2021

leer datos desde GitHub en R

Hola, esta es una entrada muy breve, donde describo cómo leer datos desde un fichero alojado en un repositorio GitHub en la Web. El problema tiene dos partes. 

Primero, nos aseguramos de acceder al formato original de los datos. Por ejemplo, para leer el fichero https://github.com/eead-csic-compbio/bioinformatics/blob/main/test_data/Ensembl_repeats.tsv , en formato TSV (texto separado por tabuladores), podemos obtener la ruta o path al fichero crudo haciendo click en el botón "Raw" a la derecha en la figura, que en este caso es https://raw.githubusercontent.com/eead-csic-compbio/bioinformatics/main/test_data/Ensembl_repeats.tsv :


 

Segundo, leemos el fichero directamente pasando su URL a la función read.csv de R indicando que las columnas están separadas por tabuladores y que la primera línea del fichero son los nombres de las columnas:

datos <- read.csv(
url("https://raw.githubusercontent.com/eead-csic-compbio/bioinformatics/main/test_data/Ensembl_repeats.tsv"),
sep="\t",
header=TRUE) 

 

Hasta pronto,

Bruno


14 de enero de 2021

Introduction to Bioinformatics for plant breeders

Hi, Najla Ksouri and me recently put together teaching material about Bioinformatics resources and best-practices for plant-breeders.

The material can be found at https://eead-csic-compbio.github.io/bioinformatics

It comprises four sessions and the goal is for you to explore some bioinformatics resources and databases which can be useful in plant breeding and genomics, using both standalone and Web-based tools. The last two sessions are about reproducible analysis practices and software benchmarks.

session title required time URL



1 Annotation of coding sequences 4h session 1
2 Analysis of non-coding sequences 4h session 2
3 Reproducible analysis practices 2h session 3
4 Benchmarks 2h session 4





 

If you spot errors please send pull requests, hope this helps some of you out there,

Bruno