美文网首页NGS
生信入门day1-Linux

生信入门day1-Linux

作者: Stone_Stan4d | 来源:发表于2018-10-23 12:22 被阅读70次

    生信技能树简介

    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文件格式解读可知:

    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
    

    相关练习题

    sam和bam格式文件的shell小练习

    相关文章

      网友评论

        本文标题:生信入门day1-Linux

        本文链接:https://www.haomeiwen.com/subject/uwmnzftx.html