Windows系统中固定R的Library目录

每次R语言版本更新,都在Windows下面新安装一个目录,原来的Library无法继续使用。

通过设置R的环境变量,可以实现将R_LIBS_USER固定到一个地方。

在Linux系统中,方法很简单,只需要在~/.Rprofile文件中指定

在Windows下设置R_LIBS_USER的一个途径是在${R_HOME}\etc\Rprofile.site文件中添加一句:

别忘了运行下一条命令更新全部的包哦!

 

清理Windows 10系统盘

Windows最近发了个大更新。自国庆节期间更新系统之后,50G的系统盘已经几乎被填满了。Windows就是这么臃肿,越用越慢。这方面真是大不如Linux。用了几年的Ubuntu根目录才1G左右,简直把Windows吊打的渣都不剩。

吐槽归吐槽,但是还是不得不着手对系统进行清理。

首先打开系统自带的磁盘清理工具,19.2G的Windows.old清理之后,感觉清爽了不少。

其次,打开磁盘占用分析神器 RidNacs 扫描C盘,发现 System32\DriverStore 臃肿的不堪入目。居然占用了15G空间。

使用 DriverStore Explorer 查看,可以发现,绝大多数都是N卡的显卡驱动。每个驱动400M,总共有好几十个。

NVIDIA也是个怀旧的公司,每次更新驱动,都会将老版驱动做一个备份,于是这个文件夹就越来越大了。不得不说,在这一点上跟Windows还是挺一致的。

下一步,准备把所有旧驱动删掉。通过设备管理器确认现在正在使用的显卡驱动就是上面图片中最新的哪一款,于是将其它所有NV驱动选中,使用 DriverStore Explorer 删除。

此外,还发现一个文件夹非常大。就是这个:C:\Users\All Users\Microsoft\DataMart\PaidWiFi\OffersCache\Offers

从命名上来看,这纯粹是个广告嘛。于是保留了 zh-cn 以外,其余全部删除。

 

www.gqgtpc.com/thread-102248-1-1.html

在阿里云ECS上设置swap分区

对于内存比较小的ECS来说,开启swap可以避免偶尔的内存溢出。

以上的代码将创建1000M的swap分区(bs × count),即时启用。在剩余10% (swapiness)物理内存时将会使用swap。

同时,将配置写入系统文件。重启之后仍然会使用上述配置。

Origin:使用上标、下标、数学公式和希腊字母等特殊格式的文本

Origin是一个优秀的科学作图软件。在实际使用过程中,经常需要在坐标轴标签(Tick Label,axis label)中使用诸如上标、下标等特殊格式的文本。坐标轴标签可以直接用其中的内置编辑器,然而常用的Tick Label则一直不清楚如何设置。

那么,如何在Tick Label中使用特殊格式的文本呢?答案在于Origin提供的一系列格式化函数中。

如图所示,Origin提供了诸如上标、下标、上下标、斜体、粗体、希腊字母、指定字体、字号等各种各样的函数。

例如我们要在Tick Label中使用水(H2O)作为标记,那么只需要在数据表格中填写 H\-(2)O 就会转变为H2O的格式。

RSEM: rsem-prepare-reference with NCBI GenBank/GFF3 File

解决方案如下:

  1. Download Genbank from NCBI;
  2. Convert Genbank to GFF3 with BioPerl;
  3. Modify the GFF3 file;
  4. Download Fasta from NCBI or use Genbank conversion;
  5. Use the modified GFF3 file in rsem-prepare-reference;

主要代码如下:

bp_genbank2gff3 --GFF_VERSION 3 file.gb
awk '$3!~/pseudo/' file.gb.gff > file.rsem.gff
# or more restrictly with only protein coding genes
awk '$3~/^(gene|mRNA|exon|polypeptide)$/' file.gb.gff > file.cds.gff
# remove the version number in fasta accession if no transcript is extract
rsem-prepare-reference file.fasta --gff3 file.rsem.gff reference_name

这里主要解决了以下错误:
Line x does not have attribute Parent

由于rsem遵循gene->transcript->exon的结构,并利用exon来作为RNA的最后形式(经过剪切和后处理的RNA),要求exon都有(且仅有)一个Parent。而GFF3文件中pseudogene和pseudogenic_exon是没有Parent的。

以下为rsem-gff3-to-gtf line 27-32。细菌基因组的GFF3文件在gene->transcript->exon中的映射关系如下:gene = type_gene, mRNA(tRNA, etc) = type_transcript, CDS = exon.


type_gene = ["gene", "snRNA_gene", "transposable_element_gene", "ncRNA_gene", "telomerase_RNA_gene",
"rRNA_gene", "tRNA_gene", "snoRNA_gene", "mt_gene", "miRNA_gene", "lincRNA_gene", "RNA", "VD_gene_segment"]
type_transcript = ["transcript", "primary_transcript", "mRNA", "ncRNA", "tRNA", "rRNA", "snRNA", "snoRNA", "miRNA",
"pseudogenic_transcript", "lincRNA", "NMD_transcript_variant", "aberrant_processed_transcript",
"nc_primary_transcript", "processed_pseudogene", "mRNA_TE_gene"]
type_exon = ["exon", "CDS", "five_prime_UTR", "three_prime_UTR", "UTR", "noncoding_exon", "pseudogenic_exon"]