Sorry, your browser cannot access this site
This page requires browser support (enable) JavaScript
Learn more >

In bioinformatics visualization, we often need to handle plots containing tens of thousands of data points, such as scatter plots from single‑cell RNA‑seq data. When saved in vector formats like PDF, such graphics can suffer from huge file sizes and slow rendering (most software other than AI will simply freeze), because a vector file records the coordinates, color, size, and other attributes of every single point, resulting in a PDF with an enormous number of objects that hampers viewing and editing efficiency.

In a short period of time, I’ve encountered two situations where I needed to fix bugs in R functions, and I’ve also learned how to perform hot replacements…

If you live long enough, you’ll encounter plenty of awkward situations.

I’ve developed a habit of listening to videos during my bike ride home after work. This week, I came across a video by XPIN about RISC-V. The video presents a viewpoint: RISC-V, as an instruction set architecture, suffers from severe fragmentation in its chip products, which poses significant challenges to the development of its application ecosystem. Therefore, it’s argued that fragmentation must be addressed through unified standards to achieve rapid development. This perspective reminded me of my years of experience using Linux, Android, and the R language, leading me to believe that the video’s argument might not be entirely accurate.

When using pixi to manage bioinformatics analysis environments, we often encounter issues where some Bioconductor R packages show missing dependencies after installation. The exact cause of this problem is currently unclear. After using pixi for a year, this issue still hasn’t been fixed (as of October 2025). This article introduces how to use pixi’s tasks feature to resolve such problems.

In cancer research, comparing genomic features between tumor samples and organoid models is crucial for validating model reliability. Circos plots provide an intuitive way to visualize detected mutations across the genome, making them commonly used for representing overall detection results of representative samples. While reading the circlize documentation, I came across an example demonstrating paired samples, which I found suitable for showcasing paired primary samples and organoids. I’ve adapted it to create a plot for displaying paired samples. The code is primarily based on the official documentation’s 9.5 Concatenating two genomes

I currently rarely use R for data processing or cleaning because my daily work involves a lot of string extraction/processing, which is difficult to do in R. Additionally, the error tracking in R is very demanding on code proficiency and experience, making it almost unbearable for me to write and maintain R code (I tried at a previous company…). However, recently one of my colleagues asked me to use R to complete such tasks because he only knows R. In the process of copying code, I discovered another reason why I don’t need to use R for this type of work…

Recently, while helping a colleague create plots, I uncovered some new issues and solutions related to ggpubr and survival analysis packages. Here are the records.

Today I encountered a plotting problem and learned a new small trick, so I’ll record it here.

I didn’t expect to do regression again after four years… this time using R instead of SPSS. Previously, I was doing statistical analysis, but now… it’s machine learning.