生信技能树简介
Jimmy版主的自我简介,里面信息量大的几段话:
我只是一条普普通通的误入歧途的本科生物狗,我爸妈都是农民,小学都没有读完,家中亲戚也没有上大学的,没人指导我的人生路该怎么走,跌跌撞撞走到今天勉强有了一技之长,可以混个温饱。
本博客适用于正在读大学硕士博士的生物实验操作学生
前提是他们愿意花70%的精力来转型,自学生物信息学这个交叉学科。
其实生物信息相关的英语资料还是挺多的,如果你英语不错,可以自行寻找。
你在这里可以学到的东西包括:
- 编程语言及技巧(perl/R/shell/)
- 服务器管理基础知识(linux,qsub,module,script)
- 常见的生物信息数据资源(NCBI/UCSC/ENSEMBL/TCGA/COSMIC/1000genomes)
- 常见生物信息分析软件使用笔记
- 常见生物信息数据分析流程(WES/WGS/RNA-seq/CHIP-seq)
- 一些我觉得有意义的paper分享
生信简介
详见生物信息学简史
生物信息从蛋白质研究开始
蛋白质到DNA: 1970-1980
- 读取DNA序列
- Sanger双脱氧链终止法
生物学和计算机并行发展:1980-1990
生物信息学和自由软件运动
基因组学、结构生物信息学和信息高速路:1990-2000
超越序列分析:结构生物信息学
高通量生物信息学:2000-2010
- 二代测序
- 生物大数据
高性能生物信息学和协作计算
现在和未来的前景:2010年至今
将生活整体建模:系统生物学20世纪后期见证了生物学中计算机的出现,它们的使用以及不断改进的实验室技术使得研究工作日益复杂。尽管对单个蛋白质或基因的测序可能是20世纪90年代早期的博士论文主题,但博士生现在可以在他/她的研究生阶段就分析许多微生物群落的集体基因组。当时确定蛋白质的一级结构都是复杂的,但是现在可以识别样品的整个蛋白质组。生物学现在已经采用了很多整体方法,但在不同的大分子类别(例如基因组学,蛋白质组学和糖组学)中,每个子学科之间还鲜有交叉。
人们可以预见到下一个飞跃:不是独立研究整个基因组,整个转录组或整个代谢组,而是对整个生物体及其环境进行计算建模,同时考虑所有分子类别。事实上,这一壮举已经在生殖支原体的全细胞模型中实现,其中所有基因,它们的产物和已知代谢相互作用都已在计算机中重建。也许我们很快就会见证一个电子计算机多细胞生物模型。尽管对于数百万到几万亿的细胞建模似乎是不可行的,但必须记住我们现在做的也是十年前在计算能力和技术上认为不可能实现的事情。
生信Linux基础
常见命令表单
File system Commands | 文件系统命令 | |
---|---|---|
ls | lists directories and files | 显示文件夹和文件 |
ls -a | lists all files including hidden files | 显示所有文件,含隐藏文件 |
ls -lh | formatted list including more data | 格式化的显示,含更多信息 |
ls -t | lists sorted by date | 按日期排序显示 |
pwd | returns path to working directory | 返回当前工作路径 |
cd dir | changes directory | 切换工作路径 |
cd .. | goes to parent directory | 切换到上级目录 |
cd / | goes to root directory | 切换到根目录 |
cd ~ | goes to home directory | 切换到用户home目录 |
touch file_name | creates en empty file | 创建空文件 |
cp file f_copy | copy a file | 复制文件 |
cp -r | copy files contained in directories | 复制文件夹下所含文件 |
rm file | deletes a file | 删除文件 |
rm -r dir | deletes a directory and its files | 删除文件夹及所含文件 |
mv file1 file2 | moves or renames a file | 移动或重命名文件 |
mkdir dir_name | creates a directory | 创建文件夹 |
rmdir dir_name | deletes a directory | 删除文件夹 |
locate file_name | searches a file | 搜索文件 |
man command | shows commands manual | 显示帮助文档 |
top | shows process activity | 显示活动进程 |
df -h | shows disk space info | 显示盘符空间信息 |
apt-get install | installs applications in linux | linux下安装程序 |
Text handling commands | 文本处理命令 | |
---|---|---|
command > file | saves STDOUT in a file | 保存标准输出到一个文件 |
command >> file | appends STDOUT in a file | 标准输出追加到一个文件 |
cat file | concatenate and print files | 合并、打印文件 |
cat file1 file2 > file3 | merges files 1 and 2 into file3 | 合并file1, file2到file3 |
cat *fasta > all.fasta | concatenates all fasta files in the current directory | 合并当前目录下所有fasta文件 |
head file | prints first lines from a file | 打印文件前几行 |
head -n 5 file | prints first five lines from a file | 打印文件前5行 |
tail file | prints last lines from a file | 打印文件末几行 |
tail -n 5 file | prints last five lines from a file | 打印文件末5行 |
less file | view a file | 查看文件 |
less -N file | includes line numbers | 显示行数 |
less -S file | wraps long lines | 折叠长行 |
grep ‘pattern’ file | Prints lines matching a pattern | 打印匹配行 |
grep -c ‘pattern’ file | counts lines matching a pattern | 匹配行计数 |
cut -f 1,3 file | retrieves data from selected columns in a tab-delimited file | 返回制表符分隔文件的选定列 |
sort file | sorts lines from a file | 文件行排序 |
sort -u file | sorts and return unique lines | 行排序且返回唯一列 |
uniq -c file | filters adjacent repeated lines | 过滤相邻重复行 |
wc file | counts lines, words and bytes | 计数行、词和字节 |
paste file1 file2 | concatenates the lines of input files | 合并文件的行 |
paste -d “,” | concatenates the lines of input files by commas | 按“,”合并行 |
sed | transforms text | 文本变换 |
Compression commands | 压缩命令 | |
---|---|---|
gzip/zip | compress a file | 压缩一个文件 |
gunzip/unzip | decompress a file | 解压一个文件 |
tar -cvf | groups files | 打包一组文件 |
tar -xvf | ungroups files | 去打包一组文件 |
tar -zcvf | groups and gzip files | 打包并压缩一组文件 |
tar -zxvf | gunzip and ungroups files | 解压并去打包一组文件 |
Networking commands | 网络处理命令 | |
---|---|---|
wget URL | download a file from an URL | 从一个URL下载文件 |
ssh user@server | connects to a server | 链接至一个服务器 |
scp | copy files between computers | 计算机间复制文件 |
相关推文:linux命令行文本操作一文就够
bowtie、samtools、IGV
参照给学徒的WES数据分析流程安装conda配置wes环境,其中python版本选择的是3。
(wes) cyshi 14:53:58 ~
$conda info --envs
# conda environments:
#
base /home/cyshi/anaconda3
wes * /home/cyshi/anaconda3/envs/wes
sam文件格式
参照生信人的linux考试第八、九、十题下载文件,弄清sam文件格式
八、下载 http://www.biotrainee.com/jmzeng/igv/test.bed 文件,后在里面选择含有 H3K4me3 的那一行是第几行,该文件总共有几行。
九、下载 http://www.biotrainee.com/jmzeng/rmDuplicate.zip 文件,并且解压,查看里面的文件夹结构
十、打开第九题解压的文件,进入 rmDuplicate/samtools/single 文件夹里面,查看后缀为 .sam 的文件,搞清楚 生物信息学里面的SAM/BAM 定义是什么。
$cat tmp.sam
SRR1042600.42157053 0 chr1 629895 42 51M * 0 0 ATAACCAATACTACCAATCANTACTCATCATTAATAATCATAATGGCTATA CCCFFFFFHHHHHJJJJJJJ#4AGHJJIIJJIIIIIJJJJIJIIIIJJIJI AS:i:-6 XN:i:0 XM:i:2 XO:i:0 XG:i:0 NM:i:2 MD:Z:11C8A30 YT:Z:UU
SRR1042600.42212881 0 chr1 629895 42 51M * 0 0 ATAACCAATACTACCAATCANTACTCATCATTAATAATCATAATGGCTATA @@<FDFFBFDHHFJEIIGJI#3AFHGEHEIJIIGIIGGIJIIJIGIIGIIJ AS:i:-6 XN:i:0 XM:i:2 XO:i:0 XG:i:0 NM:i:2 MD:Z:11C8A30 YT:Z:UU
SRR1042600.12010763 16 chr1 629895 24 51M * 0 0 ATAACCAATACTTCTAATCAAAACTCATCATTAATAATCATAATGGCTATA ?4B?1*4DD?11*1*?+22+<3F:3@EC:CC4EA,DEDDDDD?D3B:==+; AS:i:-10 XN:i:0 XM:i:4 XO:i:0 XG:i:0 NM:i:4MD:Z:11C0A1C6T29 YT:Z:UU
SRR1042600.29629551 16 chr1 629895 40 51M * 0 0 ATAACCAATACTACCAATCACTACTCATCATTAATAATCATAATGGCTATA HGF?JJHHFDHHGJJIHDFA+E?JIJJIIHGJJJJJJJHHHHHFFFFFCC@ AS:i:-8 XN:i:0 XM:i:2 XO:i:0 XG:i:0 NM:i:2 MD:Z:11C8A30 YT:Z:UU
SRR1042600.41910745 0 chr1 629896 42 51M * 0 0 TAACCAATACTACCAATCAANACTCATCATTAATAATCATAATGGCTATAG CC@FFFFFHHHHGIIHIJJJ#3<CFHCGGIIIJJJJJJJJIGGFHIIJFII AS:i:-6 XN:i:0 XM:i:2 XO:i:0 XG:i:0 NM:i:2 MD:Z:10C9T30 YT:Z:UU
SAM文件由两部分组成,头部区和主体区,都以tab分列。
- 头部区:以’@’开始,体现了比对的一些总体信息。比如比对的SAM格式版本,比对的参考序列,比对使用的软件等。
- 主体区:比对结果,每一个比对结果是一行,有11个主列和一个可选列。
主体区简介
- 第一列: QNAME:测序出来的reads序列数据名 如:SRR3101251.1
- 第二列:FLAG:0正链,16负链,4没比对上:
1 (1) 该read是成对的paired reads中的一个
2 (10) paired reads中每个都正确比对到参考序列上
4 (100) 该read没比对到参考序列上
8 (1000) 与该read成对的matepair read没有比对到参考序列上
16 (10000) 该read其反向互补序列能够比对到参考序列
32 (100000) 与该read成对的matepair read其反向互补序列能够比对到参考序列
64 (1000000) 在paired reads中,该read是与参考序列比对的第一条
128 (10000000) 在paired reads中,该read是与参考序列比对的第二条
256 (100000000) 该read是次优的比对结果
512 (1000000000) 该read没有通过质量控制
1024 (10000000000) 由于PCR或测序错误产生的重复reads
2048 (100000000000) 补充匹配的read
- 第三列:RNAME:参考基因组的染色体名,如:chr19
- 第四列:POS:比对到这个染色的具体位置(从1'端开始)如9486878
- 第五列:MAPQ:比对质量,是一个衡量比对好坏的打分结果,越高越好
- 第六列:CIGAR:简要比对信息表达式(Compact Idiosyncratic Gapped Alignment Report):如M:完全比配;D:缺失。以参考序列为基础,使用数字加字母表示比对结果,比如3S6M1P1I4M,前三个碱基被剪切去除了,然后6个比对上了,然后打开了一个缺口,有一个碱基插入,最后是4个比对上了,是按照顺序的;
- 第七列:RNEXT:下一个片段比对上的参考序列的编号,没有另外的片段,这里是'*',同一个片段,用 '=';
- 第八列:PNEXT: 配对片段(即mate)比对上的参考序列的编号,没有另外的片段,这里是'*',同一个片段,用'=';
- 第九列:TLEN:配对片段(即mate)比对到参考序列上的第一个碱基位置,若无mate,则为0;
- 第十列:SEQ:Template(文库插入序列)的长度,最左边得为正,最右边的为负,中间的不用定义正负,不分区段(single-segment)的比对上,或者不可用时,此处为0;
- 第十一列:QUAL:ASCII编码的序列reads质量。ASCII码偏移33。序列的质量信息,格式同FASTQ一样。
- 第十二列:可选字段(optional fields),格式如:TAG:TYPE:VALUE,其中TAG有两个大写字母组成,每个TAG代表一类信息,每一行一个TAG只能出现一次,TYPE表示TAG对应值的类型,可以是字符串、整数、字节、数组等。
sam文件
最简流程
$bowtie2 -x ../index/lambda_virus -1 reads_1.fq -2 reads_2.fq -S tmp.sam
sam文件
- 计算比对条数,总数除以2。
$cat tmp.sam | grep -v ^@ | wc
20000 391929 7049181
- 比对总类
$cat tmp.sam | grep -v ^@ | cut -f 2 | sort -n | uniq -c
24 65
165 69
153 73
213 77
2 81
4650 83
136 89
4516 99
125 101
16 113
24 129
153 133
165 137
213 141
4516 147
125 153
2 161
4650 163
136 165
16 177
查看比对失败的序列的特征
$cat tmp.sam | grep -v ^@ | awk '{if($6 == "*") print $10}'|he
ad
GCGTNGTACNNGNNGATGNTTACGACTAANACTTNNNNNTNCNGNNT
ANTGGNTNAGCGGNCGNAGNGNTCNGNAGCNANNAANCTGNTATGNTNNNTNNATCNNNCNNNNGTGNNAANNNCCAGNNNNGGCNNNNCATACANNNTNNNCNTNNNTACANNATANNCGNNATTNNACNGTNNCGNGNNCCGNGTNNNNN
NNTNNNNNAGNTNAANANANGTNTTGNGAANCTNNANACNNCTTTTNNNNTATGNTNNTNAGCCTAG
TTGNNCNNATATNNTAGATCGATATCTTTATNTCGAGCAAAGCAAA
NNNGANNNTGCTCGNCAANNNNANNNNTTTCCTTNTNCGGNCCNGNAATNATNACANNATGNNGNAANCGNNGNTTNTTNTNCAGGNCCTCTGNNGCNNANGCNCANGNNNTNTNNNNCNTNGNNGNCNNNCCGNAATNNNCTGNNGNCNTNGTNTCTGNCTNNNAGNNGNCGAANCTANNGANCCATANNTN
TTCGGNNCGCNNNNAAANAGGCTGAGCACGGTGTACGTCAGNCCGGAAAAGTGC
NNNGNTGTACCGGCTGTCTGGTATGTATGAGTTTGTGGTGAATAATGCCCCTGAACAGACAGAGGACGCCGGGCCCGCAGAGCCTGTTTCTGCGGGAAAGTGTTCGACGGTGAGCTGAGNTTTGCCCTGAAACTGG
CTCCCCNCCGNNCTNNCGNCTTCGTAATACTCACGCTGCT
NATTTGNGNCAGACCTTTTCCATGAATTGGTAACACCATCGATTGTGCTGGAACTGCTGGATGAACGGGAAAGAAACCAGCAATACATCAAACGCCGCGACC
TCGNNTNNTNNNNNNTNGNNNGTNANNCNGCCNGNTCCGCGTCNN
可以看出,N比较多。
序列质量在30以上的序列
$cat tmp.sam | grep -v ^@ | awk '{if($5 > 30) print $0}'| less -S
网友评论