Python 基础知识

Python,是一种面向对象、解释型计算机程序设计语言,由Guido van Rossum于1989年底发发明。Python语法简捷而清晰,具有丰富和强大的类库,开发效率高。
Python的官方网站:https://www.python.org。Python中文学习大本营(http://www.pythondoc.com)提供很多Python的中文文档。中谷教育(http://www.csvt.net)提供了一个36集的Python入门视频教程(http://yunpan.cn/cZvRcrnwQ3T8e 访问密码 65bb)
Python有两个版本:Python 2.x和Python 3.x。3.x库还不完善,用得最多的还是2.x。
Python内置了众多预编译并可移植的功能模块,这些功能模块叫做标准库(standard library)。Python有一个叫做PyPI(Python Package Index, http://pypi.python.org/pypi)的公共资源库,它管理着Python相关的各个功能包。
Python源代码的文件以”py”为扩展名,由Python程序解释,不需要编译。Python程序可以分解成模块、语句、表达式以及对象:1、程序由模块构成,2、模块包含语句,3、语句包含表达式,4、表达式建立并处理对象。
表达式是将不同数据(包括变量、函数)用运算符号按一定规则连接起来的一种式子。Python的基本数据类型:数字(整型长、整型、浮点型、复数型)、字符串、列表、元组、字典。列表、元组和字符串都是序列。序列的两个主要特点是索引操作符和切片操作符:索引操作符让我们可以从序列中抓取一个特定项目,索引同样可以是负数,位置是从序列尾开始计算的。切片操作符让我们能够获取序列的一个切片,即一部分序列。字典是python中唯一的映射类型(哈希表)。Python运算符包括:赋值运算符、算术运算符、关系运算符、逻辑运算符。

python读写FASTA文件

FASTA格式
序列文件的第一行是由大于符号>打头的任意文字说明,主要为标记序列用。从第二行开始是序列本身,标准核苷酸符号或氨基酸单字母符号。通常核苷酸符号大小写均可,而氨基酸一般用大写字母。文件中和每一行都不要超过80个字符(通常60个字符)。
python读写FASTA文件
写一个循环加判断就可以将FASTA文件读取,然后处理。

fa_in = open("in.fa", "r")  #读入FASTA文件
fa_Info = []  #定义一个列表,用于存储序列的信息
fa_Seq = []  #定义一个列表,用于存储序列
fa_Num = -1
for line in fa_in.readlines():  #每次从FASTA文件中读取一行
    line = line.rstrip()  #去掉行末的换行符
    if line[0] == ">":  #判断如果是信息行,就存储在fa_Info,否则存储在fa_Seq
        fa_Info.append(line)
        fa_Num = fa_Num + 1
        fa_Seq.append("")
    else:
        fa_Seq[fa_Num] = fa_Seq[fa_Num] + line
fa_out = open("out.fa", "w")  #打开一个文件,用于写入
for i in range(fa_Num + 1):
    fa_out.write(fa_Info[i] + "\n")
    while len(fa_Seq[i]) > 60:  #每行写60个碱基
        fa_out.write(fa_Seq[i][:60] + "\n")
        fa_Seq[i] = fa_Seq[i][60:]
    else:
        fa_out.write(fa_Seq[i] + "\n")

Python random(随机)模块

>>>import random
>>>random.random()    #[0,1)中的随机浮点数
0.02343375500378797
>>>random.randint(1, 10)    #[x, y]中的随机整数
8
>>>L = [1, 2, 3, 4,]
>>>random.shuffle(L)    #就地打乱
>>>L
[2, 1, 3, 4]
>>>random.choice(L)    #选择随机一项
2
>>> random.sample(L, 2)    #不重复地选择多项
[1, 3]
>>> [random.choice(L) for _ in range(4)]    #可重复地选择多项,反复调用random.choice
[4, 4, 3, 4]

random模块实际上生成的基于一种内部状态的确定性的伪随机数。虽然是伪随机数,但是已经能够满足大部分统计分析的需求了,大胆用吧!如果你想得到可重复的结果,可用random.seed()生成随机数种子。

>>> random.seed(8)
>>> random.random()
0.2267058593810488
>>> random.seed(8)
>>> random.random()
0.2267058593810488

2015年5月30日更新

SRA格式转FASTQ格式

NCBI的高通量数据由于空间缘故都转换成了SRA格式,需要转换成FASTQ格式才能分析。
NCBI提供了SRA Toolkit这一工具,链接地址:
http://www.ncbi.nlm.nih.gov/Traces/sra/sra.cgi?view=software
使用fastq-dump命令将SRA格式转换成FASTQ格式:
基本用法:fastq-dump SRR123456.sra
参数说明:
-O 指定输出目录
–split-3 对于双末端测序,一定使用这个参数,将一个*.sra文件转换成*_1.fastq和*_2.fastq两个文件,否则就会转换成一个*.fastq文件,后续的分析会出错。
更多参数,使用–help查看
 
两个-,wordpress会显示成–,哎