好长时间没有写课程相关的东西了,学过好几门生物信息学课程,从中可以学到不同老师的教学风格。现在回首,看看研究生时期的生物信息学II(动物所韩老师 -_-b 第一次错写成春雨了,自己都吓了一跳),仅一次内容,介绍了LAMP的初级核心命令,照顾了不同平台尤其是windows平台的同学(在课上使用Cygwin和PuTTY)。

这学期学Bioinformatics computing,每次课程内容很多,连上4个小时,让非计算背景的人无从下手(尤其是连windows安装软件都困难的360用户们对,我就是在喷国内的流氓软件)。 虽然内容极为丰富使用,但没有照顾到非linux用户,前两次课程效果不好。

先对比一下之前的生物信息学II,讲述了linux的相关内容有:

  • PuTTY
  • passwd
  • exit
  • pwd
  • ls
  • man
  • cp
  • vi
  • more
  • cd
  • mkdir
  • su
  • chmod
  • chgrp
  • usermod
  • cat
  • rm
  • find
  • 执行程序
  • 如何进入www目录
  • mysql
  • php (简单带过)
  • alias

CB2讲述的linux相关内容有:

  • –help
  • man
  • info
  • apropos
  • 重定向和管道
  • cat
  • more
  • wc
  • head
  • tail
  • alias
  • 路径(pwd, ., ..)
  • 环境变量 (export)
  • 执行程序
  • echo
  • 打包和解压缩(tar, gz, bzip2, xz -_,- 一下子讲这么多,记得过来就怪了
  • cut
  • sort
  • uniq
  • wget
  • grep
  • tr
  • find
  • rsync
  • unison
  • ls
  • cp
  • rm
  • mv
  • cd
  • mkdir

两个列表凑一凑,就是最全的常用命令集合了。

如果让我讲这个课程的话,如果非要统一使用linux,那就绝对不使用虚拟机,直接用u盘安装可写入型的linux系统安装盘。每次上课,插上u盘换系统,直接使用,可以更新安装软件,所有文件都保存在挂载的电脑磁盘上。可以省掉不少麻烦。

这次还来回换了2次系统,去年上课用fedora,今年上课,一开始让我装32位xubuntu,结果上课当天换成了64位的CentOS,结果我帮助的人在建立虚拟机时我都给人家装错了(RedHat/Ubuntu)_-_

还有最开始的学的生物信息学I,这个怎么评价呢?院士的课怎么学都是好(听老师侃侃而谈很有意思),算法部分还是很有用的,虽然都是课下自学,当时在礼堂课上根本就听不懂,我问的问题竟然由于声音太小,在视频里什么都听不见orz。不知道他老人家现在还开不开课了。

不多说了,赶紧写总结,希望这次BioComp的课程学生对老师的评价不要太低。-,-


这篇博客起始于2016年8月,完成于来年的2月,中间经历了9月份的初稿,请不要纠结文章中的时间。

炎热的季节终于要过去了,这个夏天我在做什么?在忍受炎热。 进入九月份终于凉快多了。 所以给自己的忠告就是夏天一定要找个凉快一点的地方,否则连正常的工作都没法做。每天同炎热作斗争,电脑也因为过热而经常罢工。 另外觉得自己应该无法在北纬30度附近生活,只能向北,不能向南。在美国德州的人们夏天都是怎么度过的?

2016年这个夏天对我来说到底有多热?我在7月份的博客草稿箱里就有一个待完成的北京夏天气温统计相关的文章,结果8月份草稿箱里又躺了一篇同样标题的,终于在2017年2月份完成了。

关于热的概念,不是因温度升高难受,而是因空气湿度大而感到更热,但是我没有下载湿度的数据进行分析,如果以后有机会再补上。

分析完数据,我发现最好用的气象数据下载网站还属NOAA.GOV,大学时做数学建模当时要下载美国Florida的气象水文数据,直接NOAA,FTP下载。现在NOAA更加智能化的帮助用户提取时间点的数据。反观国内的气象数据下载网站,国家气象局,中科院,实名注册都要费老半天时间,谁用谁放弃。

那么大家肯定会问,这点屁事,写一篇博客就成了,为啥你水了2篇? 因为没空调真的是太热了


八月一日将系统升级,拥抱Fedora24,谢天谢地升级很顺利。

新版本的字体有了很大改进,在终端下显示很清晰舒服,但是在文件浏览器下字体有些单薄。

Fedora

字体如下所示:

Font in Fedora

不是为什么升级完,jekyll没法用了。

提示错误信息

/usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require’: libruby.so.2.2: cannot open shared object file: No such file or directory

索性删除ruby*和所有Gem安装的包(gem uninstall -aIx),重新安装一次,即可。


我所在的屋子没有空调,所以夏天会很热,但是我没要想到竟然会这么热。

由于热得是在是受不了了,所以找来了从我出生到现在,北京的每日气温数据,我想看一下今年究竟处于__我所经历的所有时间里__同期的什么水平。

经多简单的统计,我发现,在7月北京的最高平均气温是34.4摄氏度,最低气温是18.8摄氏度,而这两个温度都是进入新世纪(21世纪)后的温度。 最高气温是41.66度,进入2001年后,最高气温是41.11度。

(注意,这篇文章是我后补的,所以我获取了2016年七月份每天的数据。)

从下图可以看到,北京的平均气温在进入七月的第一个7天里会有一个小幅度的上升然后回落,在月末最后5天又会重复一次同样的过程。

Beijing Average Temperature in July

值得注意的是7月9日,这一天的1st四分位数和3rd四分位数都非常接近中位数,说明这一天的温度差异非常的小。所以我可以预测,2017年的7月9日,北京的日平均气温应在26摄氏度左右(7月里最舒服的一天)。

我刚想“神棍”得预测一下7月9日的气温,但当我把2015和2016年的气温放到直方图上时,这两年的气温都高于历史同期水平,是图上的两个outlier!! 并且这两年的气温走势也不符合我刚才说的月初7天一个小坡,月末5天一个小坡。

Beijing Average Temperature in July(2015-2016)

近两年完全不按照历史规律来办事(╯°Д°)╯︵ ┻━┻

2016年7月的平均气温,有3天是进入2001年以来的最高气温,这估计是我会觉得这么热的主要原因。

当然光考虑气温不代表人感受到的实际热度,还要考虑湿度的影响,湿度大,外加气温高,会让人感到更热。

我直接找到2016年7月的日湿度数据,发现不下雨的时候平均湿度维持在50%~60%左右,下雨的时候,会维持在80%~90%。由于北京多为阵雨,并且经常出现海淀下雨,朝阳没雨的情况(一个城市竟然会按“城区”下雨),并且每天最高湿度都能达到80%~90%,所以整个7月内人们都会感到很闷热。


突然发现一个悲剧的事情,类似inoreader的RSS订阅应用无法正常显示我博客里的数学公式,如果你发现在阅读文章时非常的不通顺,请移步到博客阅读。20170705

找驱动基因是癌症研究领域的永恒话题。这篇文章是三个月前看的了,笔记耽误了三个月(已经变成)一年,有些当时的想法可能已经不记得了。标题中“推定的癌症驱动基因”就是假定的癌症驱动基因。 本文主要介绍一下这篇文章中推定驱动基因的ContrastRank方法,以及我看的另一篇文章 Identifying cancer driver genes in tumor genome sequencing studies 中的方法。

ContrastRank

ContrastRank方法中作者认为在基因组上出现的罕见突变对于癌症的发生发展起到了重要的作用。所以找驱动基因,就是要估计基因上出现的罕见的非同义突变。然后定义罕见的致病变异(PDV)为allele frequency < 0.5%的突变,存在至少一个PDV的基因叫做假定的受损基因(PIGs)。对于每一个样本中的基因,他们还计算了假定缺陷率(PDR)。最后根据假定的受损基因(PIGs)的概率的log10数值作为分值,来断定驱动基因。

数据样本

选自TCGA的三种腺癌,每种腺癌至少有200个配对的样本(正常组织/肿瘤组织)。分别是结肠腺癌,肺癌和前列腺癌。

Identifying cancer driver genes

作者首先介绍了之前人们推定驱动基因时忽略的几个问题:

  1. 非silent mutation的种类包括很多(missense, nonsense, deletions(indels), mutation in splice sites),对于蛋白质的影响也不同,mutation的选择压力也因为mutation的种类和其所在基因组位置不同而不同。
  2. 不同的样本有着不同的背景突变频率。如果一个基因的突变只存在于有大量突变的样本中,那么这些突变很可能是属于特异性样本有大量突变的结果,而不是癌症的原因。
  3. 不同的三联密码子产生非同义突变的概率不同。

接下来作者定义了driver-like non-silent mutation在某个样本中发现的事件是伯努利随机变量\(Y_{ij}\)。接下来又定义一个样本中出现的non-silent突变的最大值\(T_{ij}\)以及经验分布函数\(F_{ij}=P(T_{ij}<x|Y_{ij}=1,M_{0})\),然后通过\(logP(Y_{ij}=y_{ij}, T_{ij}>t_{ij}, j=1,...,J|M_0)\) 得到检验所需的统计量\(Z_i\)(我不清楚logP这个是怎么回事)。 在求背景分布时,作者假设transitions(转换)和transversion(颠换)突变的频率不相同,并且根据mutation出现在CpG区域和非CpG岛区域进行了mutation类型的划分。通过从背景分布中算统计量的p-value的方法,来推定驱动基因。

数据样本

肺腺癌数据:Ding, L. et al. (2008) Somatic mutations affect key pathways in lung adenocarcinoma. Nature, 455, 1069–1075.

小结

这两种方法, Identifying cancer driver genes的结果更符合我对驱动基因的定义。首先驱动基因不一定是有罕见突变的基因,可能很多样本中都有这样的突变。 另外ContrastRank方法在结直肠腺癌的样本中,没找出APC这个关键的基因,我个人觉得效果不好。