收集了一些使用Python过程中的小技巧或者常见错误。

1. While–if–break

适用情况:当需要执行一个循环,但是不能事先判断何时终止。 可以在循环内部加入判断,符合要求时跳出。比如,使用程序在某个目录下新建一个文件夹,如果文件名已经存在,需要重新生成文件名;否则,创建文件夹。

While–if–break
1
2
3
4
5
6
7
8
9
10
import random, os

while True:
    letter = [chr(i) for i in range(97, 123)]
    folderName = [random.choice(letter) for i in range(5)]
    fn = ''.join(folderName)
    if os.path.exists(fn) is not True:
        # get an unique name 
        os.mkdir(fn)
        break

2. 链式比较操作

Python支持一个链式的比较操作。

comparison chain
1
2
3
4
5
6
testNum = 10

# 链式比较操作
# 区别if not和if a is not None
if (not 0 < testNum < 5):
    print('It passed!')

在进行RNA-seq数据分析时,需要从UCSC Table下载各种注释信息。比如Cufflinks等要求的转录组注释信息、Cufflinks建议去除的rRNA/tRNA/线粒体组注释。

1. 基因注释信息

下载转录组Ensembl注释文件:

UCSC下载Ensembl注释

对于双端测序RNA-seq数据,TopHat在运行时候,有两个参数-r/--mate-inner-dist--mate-std-dev分别标识一对reads的间隔长度的期望平均值和标准差,其默认值分别为50bp和20bp。这两个参数本身是个估计值,用于TopHat在map过程中确定一对reads是否匹配到基因组正确位置。如果能够准确设定这两个数值,将会提升TopHat结果的准确性和完整性,参考一个例子

有两种方法获得这对参数的准确值:

第一种:获取RNA-seq实验建库方法,之后按照以下网址说明计算,RNA-seq差异表达分析工作流程