用Circos表示基因组上的突变密度

不光是生信,感觉整个生物领域越来越靠图吃饭了。谁的图漂亮,谁的分析就好。好吧,我也承认,图多图漂亮了,确实显得高大上哈。在我眼中图的信息量比较大,能够给人直观的表示,为了说明图的意义,我没把持住,在本文多放了几张和circos图无关的图,见谅。本文有多图,都是本人自己画的,请勿盗图,如果你想知道怎么做或者由更好的表示办法,欢迎留言讨论。

想当年,我为了表示SNP在染色体上的数目分布,用python画了24个图,每个染色体一张SNP的密度分布。那可是我第一次用matplot。

先上我年yi轻qian时做的图,那个时候我都佩服自己能想出可以用图的形式来表示突变的密度,哈哈哈,因为这样就能很直观的看出哪些地方突变频率比较高,突变频率比较高的地方,可能是突变热点区域,在肿瘤研究中常常有意义。

利用ionice命令设置程序的IO调度与优先级

我合并多个文件,用cat将流重定向到一个文件,或者把一个大文件rm掉腾出空间,要进行IO,但如果这个时候服务器有进程进行IO时,同个进程同时进行IO,效率就会很慢。有时候我想把别的进程IO缓一缓,先把合并或者rm的任务有限解决掉,再继续别的进程的IO。

就google了下如何提高效率,查ionice这个命令。

ionice - 获取或设置程序的IO调度与优先级,通过设置命令或进程的IO调度优先级,加快IO效率

命令格式

跟命令时,设置命令的IO调度优先级,跟PID时,设置相应进程的IPD调度优先级。

1
2
ionice [[-c class] [-n classdata] [-t]] -p PID [PID]...
ionice [-c class] [-n classdata] [-t] COMMAND [ARG]... 

我也进行了测试,比如在有其进程进行IO工作时,我要在删除Fastq文件(R1文件20G,R2文件21G)时,用法详见下文。

1
2
3
4
5
6
7
8
9
time rm R1.fastq
real    0m37.306s
user    0m0.001s
sys     0m0.300s

time ionice -c 2 -n 0 rm R2.fastq
real    0m2.579s
user    0m0.002s
sys     0m0.682s

可以看到当提高IO的优先级后,效率还是非常快的,当然这暂时牺牲了其他进程的IO。

ionice -h用法

NC编号与对应的染色体

NC编号 染色体 NC_000001.10 Chr1 NC_000002.11 Chr2 NC_000003.11 Chr3 NC_000004.11 Chr4 NC_000005.9 Chr5 NC_000006.11 Chr6 NC_000007.13 Chr7 NC_000008.10 Chr8 NC_000009.11 Chr9 NC_000010.10 Chr10 NC_000011.9 Chr11 NC_000012.11 Chr12 NC_000013.10 Chr13 NC_000014.8 Chr14 NC_000015.9 Chr15 NC_000016.9 Chr16 NC_000017.10 Chr17 NC_000018.9 Chr18 NC_000019.9 Chr19 NC_000020.10 Chr20 NC_000021.8 Chr21 NC_000022.10 Chr22 NC_000023.10 ChrX NC_000024.9 ChrY NC_012920.1 ChrM PS:NC编号中的点后面代

wget命令小结

下载文件夹 $ wget -c -r -nd -np -k -L -p -A c,h www.xxx.org/pub/path/

-c 断点续传 -r 递归下载,下载指定网页某一目录下(包括子目录)的所有文件 -nd 递归下载时不创建一层一层的目录,把所有的文件下载到当前目录 -np 递归下载时不搜索上层目录,如wget -c -r www.xxx.org/pub/path/ 没有加参数-np,就会同时下载path的上一级目录pub下的其它文件 -k 将绝对链接转为相对链接,下载整个站点后脱机浏览网页,最好加上这个参数 -L 递归时不进入其它主机,如wget -c -r www.xxx.org/ 如果网站内有一个这样的链接: www.yyy.org,不加参数-L,就会像大火烧山一样,会递归下载www.yyy.org网站 -p 下载网页所需的所有文件,如图片等 -A 指定要下载的文件样式列表,多个样式用逗号分隔