准备把Positron当主力IDE了

分析主要基于Rstudio Server的Rmarkdown,这样在线版的Rstudio可以无缝和服务器协同,Rmarkdown管理代码也方便。但免费版的Rstudio Server也有痛点:(1)不容易切换R,必须管理员统一设置,要变所有用户都变;(2)不能多开,只能打开一个Rstudio Server的页面。当然痛点也能解决,就是用Pro版本,最少要4,975(美刀)。

后来Rstudio的公司改名为Positron,又出了Positron IDE,运行R和python比vscode 方便,比如图片展示,变量查看,接近Rstudio,但不支持remote ssh,意味着我不能用远程服务器上的R。所以尝试了下就不在使用。

再后来Positron支持了remote ssh,但是AI这块的支持还是不如vscode,体验了一把又不用了。

再再后来,Positron支持了AI assistant,我又开始尝试用Positron。基于这次体验,我决定后续把Positron当主力了。

  • 对Rmardown的支持:我严重依赖Rmarkdown,特别是项目的函数多的时候,我分代码块,便于查找内容和管理。Postrion默认就支持R和Rmarkdown。特变是Rmarkdown的Table of Contents,可以快速跳转到不同代码块,Positron本来就基于vscode的壳,自带了outline的内容框,可以显示markdown的标题。
  • 变量和图片:我不喜欢vscode的原因就是变量不方便查看,图片不想Rstudio那样专门有个panel展示,Postiron的变量查看和图片展示逻辑和Rstudio一样,有专门的panel。
  • 自动补全:我下载了千问的灵码和字节的Marscode,也试了自带的copilot,尝试行内自动补全的功能,感觉真的太好了,可以通过上下文,把我想写的代码都提示出来,不仅仅是传统IDE那种函数提示,效率大大提高。Marcode支持jupyter,但不支持Rmarkdown,灵码支持Rmarkdown,不支持jupyter。如果支持quarto的话,我一定会切到quarto格式。

感觉不如Rstudio的地方:(1)图片的展示效果,不知道为什么感觉没有Rstudio好看;(2)数据框里面的数据搜索,我以前直接在搜索框搜索即可,Positron需要选定特定列,添加filter,稍微麻烦点。

关于Rmarkdown:我个人认为比jupyter方便,因为我可以在代码块运行,也可以把代码放到同一环境下的console里面。Rmarkdown绝对是我在Rstudio/Positron生态里的重要因素,现在的qmd和rmd都是类似,Positron主推qmd。可惜的是两年前Rmarkdown贡献者xieyihui被Positron解雇了。如果灵码或者Marscode支持qmd的话,我可能会用qmd写代码。

error in .rs.downloadfile(url = url, destfile = path, method = method)

新装的系统,刚开始装包都挺顺利了,今天突然遇到

error in .rs.downloadfile(url = url, destfile = path, method = method),不管用devtools::install_github还是remotes方法,都不能安装github上的包。

查了好多办法没解决,也看了很多配置都是正确的。

后来尝试把method改成git,就可以下载了,这也说明系统底层网络是通的,问题出在方法上。默认的方式是libcurl。libcurl需要SSL/TLS 协议。问题锁定在 R 内部对 libcurl 的调用配置上。R在用libcurl的时候,会调用系统的证书库进行,但现在R 不知道去哪里找系统的证书库。当它尝试连接 GitHub 的 HTTPS 地址时,无法验证 GitHub 的 SSL 证书,出于安全机制会直接报错中断。

1
2
3
# 先确认下是否有证书
>ls /etc/ssl/certs
ca-bundle.crt  ca-bundle.trust.crt

既然有证书,那就让系统知道证书的位置

1
2
3
4
5
6
vim ~/.bashrc

export CURL_CA_BUNDLE=/etc/ssl/certs/ca-bundle.crt
export SSL_CERT_FILE=/etc/ssl/certs/ca-bundle.crt

source ~/.bashrc

这样就可以解决了。但始终不清楚为什么系统找不到证书库这个问题,费解。

ARCHS4:大规模转录组预处理数据库

公开的转录组数据集多为原始形式,格式不统一、处理方式各异,难以有效利用,所以我想找一个经过标准流程清洗了GEO/SRA数据集的数据库,这样可以直接用清洗后的结果,而不用每个数据集单独处理。recount2(https://jhubiostatistics.shinyapps.io/recount/)就是类似的数据库,但只提供了2038个数据集,远远不够。

今天发现了ARCHS4(https://archs4.org/),感觉满足我目前的需求。ARCHS4数据源于GEO 和 SRA 数据库,还纳入了线虫、果蝇等其他物种的 35000 个样本数据,用的比对软件是Kallisto。数据维护一直在更新,还提供了分析和下载工具(https://github.com/MaayanLab/archs4py)。

RNA-Seq这块,提供了966693个样本比对结果,还提供了样本的tSNE结果,基因相关性结果。

2D color gradient

对于热图大家都熟悉,热图中的颜色表示值的大小。但前几天看到一个热图,里面的颜色含有两个维度的信息,专门有一个颜色的图注(非主图,而是热图里面的颜色说明),如下,横坐标表示D值的大小,纵坐标表示的P值,可以看出二维区域中不同位置的颜色,同时反应了D值和P值的信息。

找了很多工具和方法,都不太方便实现,或者不太容易控制颜色的分布。后来突然悟了,我可以自己生成这个图,从左到右反应的D值大小,两个颜色渐变,从上往下反应的是P值显著性,颜色越来越深。