Posted in: Perl/R

安装 R 包的一些事

一、普通用户安装R包

现代版本的 R(4.X) 已经模仿 Python、Ruby 等流行软件的做法,不再往系统目录里面安装包了,而是默认会把包安装在自身 R 对应的 Library 下面。例如,假设 R 的路径是:~/miniconda3/lib/R/bin/R,则包默认就会在 ~/miniconda3/lib/R/library/ 下面(在此我们再一次看到了用 conda 而非用系统内置的 R 的重要性)。所以此时已经完全不需要担心权限的问题,直接安装即可:

install.packages("packagename");
Posted in: Perl/R

CPAN 的配置与普通用户安装 Perl 模块

我以前曾经在讲 BioPerl 时有意无意地提到,安装 Perl 模块最简单的方法是:

把模块文件下载下来,放到自己的某个目录下面,再把该目录添加到自己的路径(~/.bashrc)里面。例如,以模块 List::MoreUtils 为例,它实际上代表一个名为 List 的文件夹,里面有一个名为 MoreUtils.pm 的文件。把这个文件夹放在自己的目录下面(例如,~/perlmodule/),再把~/perlmodule/目录添加到自己的 $PERL5LIB 变量里面就 OK 了。

export $PERL5LIB = $PERL5LIB:"~/perlmodule/"

自己曾经用这种傻瓜式的方法很长时间。但是这种方法只适合很简单的模块,稍微复杂一点的就不行了,比如依赖于其它模块的,或者需要复杂“处理”的。

Posted in: Perl/R

使用 dbfetch 从远程数据库中批量下载序列

以下2019/9/9更新

BioPython对efetch工具进一步做了整合,详情参考此博客以及BioPython中文页面。注意需要特别小心rettype的写法!

简单语法如下:

from Bio import Entrez

Entrez.email = 'you_email@abc.com'

fetch_handle = Entrez.efetch(db="nucleotide", id=["X55964"], rettype="fasta", retmode="text") # id是列表

data = fetch_handle.read() # 字符串搞定

以下为2011年原文: