美文网首页linux
学生信的那些事儿之十三 - 生信技能树Linux练习20题

学生信的那些事儿之十三 - 生信技能树Linux练习20题

作者: 李白爱吃橙子 | 来源:发表于2019-07-07 18:48 被阅读0次

    1. 在任意文件夹下面创建形如 1/2/3/4/5/6/7/8/9 格式的文件夹系列。

    # 在自己的目录下创建一个专门用于做练习的文件夹先
    cd /trainee/Jude
    mkdir pracitce
    cd practice
    mkdir -p 1/2/3/4/5/6/7/8/9
    

    2. 在创建好的文件夹下面,比如我的是 /Users/jimmy/tmp/1/2/3/4/5/6/7/8/9 ,里面创建文本文件 me.txt

    # 需要明确去什么地方,做什么
    cd 1/2/3/4/5/6/7/8/9
    touch me.txt
    

    3. 在文本文件 me.txt里面输入如下内容:
    Go to: http://www.biotrainee.com/
    I love bioinfomatics.
    And you ?

    # 编辑文本内容用vim
    vim me.txt
    i
    Go to: http://www.biotrainee.com/
    I love bioinfomatics.
    And you ?
    esc
    :wq
    

    4. 删除上面创建的文件夹1/2/3/4/5/6/7/8/9 及文本文件me.txt.

    # 强制删除目录
    cd /trainee/Jude/practice
    rm -rf 1
    

    5. 在任意文件夹下面创建 folder1~5这5个文件夹,然后每个文件夹下面继续创建 folder1~5这5个文件夹。

    # 我的方法(开始以为简单,后来发现很naive)
    mkdir folder{1..5} #第一步创建5个文件夹
    vim script #第二步写脚本
    i
    #!/bin/bash
    for folder in folder1 folder2 folder3 folder4 folder5
    do cd $folder; mkdir folder{1..5}; cd ..
    done
    esc
    :wq
    ./script #第三部运行脚本,创建套娃文件夹
    
    # 其他同学的方法,主要在第二步
    mkdir -p folder{1..5}/folder{1..5}
    

    6. 在第五题创建的每一个文件夹下面都创建第二题文本文件 me.txt ,内容也要一样.

    # 开始是不会的,看了别人的答案,需要用到 xargs
    touch me.text
    echo folder{1..5}/folder{1..5} | xargs -n 1 cp -v me.txt
    

    注释
    xargs:并不是所有命令都可以把管道符前面的输出作为输入,xargs就可以实现这个转换,建议参考:xargs命令详解
    -n:表示每次传递给后面命令几个参数,后面跟数字“1”表示传递1个参数

    7. 再次删除掉前面几个步骤建立的文件夹及文件.

    rm -rf folder*
    

    8. 下载 http://www.biotrainee.com/jmzeng/igv/test.bed 文件,后在里面选择含有 H3K4me3的那一行是第几行,该文件总共有几行。

    wget http://www.biotrainee.com/jmzeng/igv/test.bed
    cat -n test.bed | grep H3K4me3
    cat -n test.bed | wc
    

    9. 下载 http://www.biotrainee.com/jmzeng/rmDuplicate.zip 文件,并且解压,查看里面的文件夹结构.

    wget http://www.biotrainee.com/jmzeng/rmDuplicate.zip
    unzip rmDuplicate.zip
    cd rmDuplicate/
    tree -d
    
    1. 打开第九题解压的文件,进入 rmDuplicate/samtools/single 文件夹里面,查看后缀为.sam的文件,搞清楚 生物信息学里面的SAM/BAM 定义是什么。
    cd rmDuplicate/samtools/single
    less -S -N tmp.sam 
    

    注释*:
    SAM文件:是sequence alignment/map format的缩写,记录序列比对信息的文件,分为标头注释部分和序列比对部分,其中序列比对部分至少11列。
    BAM文件是SAM文件的二进制格式,可用samtools view命令查看,格式转化便于储存更多的数据。

    11. 安装 samtools软件

    # 如果已经安装了conda,很简单
    conda install samtools
    
    # 如果单独安装
    wget -c https://github.com/samtools/samtools/releases/download/1.9/samtools-1.9.tar.bz2
    tar -jxvf samtools-1.9.tar.bz2
    cd samtools-1.9/
    ./configure --prefix=/trainee/Jude/practice/samtools-1.9
    make
    make install
    echo 'export PATH="/trainee/Jude/practice/samtools-1.9:$PATH"'>>~/.bahsrc
    source ~/.bashrc
    

    12. 打开后缀为BAM的文件,找到产生该文件的命令。

    # 打开BAM文件
    samtools view tmp.sorted.bam | less -SN
    # 产生bam文件的命令一般都在头部注释信息中,不过是在头部信息的最后一行,所以用tail命令
    which samtools
    /usr/bin/samtools view -H tmp.sorted.bam | tail
    # 经过上面的操作可知生成BAM文件的命令如下:
    /home/jianmingzeng/biosoft/bowtie/bowtie2-2.2.9/bowtie2-align-s --wrapper basic-0 -p 20 -x /home/jianmingzeng/reference/index/bowtie/hg38 -S /home/jianmingzeng/data/public/allMouse/alignment/WT_rep2_Input.sam -U /tmp/41440.unp
    

    13. 根据上面的命令,找到我使用的参考基因组 /home/jianmingzeng/reference/index/bowtie/hg38 具体有多少条染色体。

    # 方法一:通过看BAM文件标头信息确认染色体数量,筛选时用到正则表达式
    samtools view -H tmp.rmdup.bam | grep -o -E "SN:chr[0-9]+|SN:chr[a-zA-Z]"| sort | uniq -c | wc -l
    
    # 方法二:直接找打hg38.fa文件查看染色体数量(hg38.fa需要绝对路径)
    less -S hg38.fa | grep ">chr" | cut -d "_" -f 1 | sort | uniq -c | wc -l
    

    14. 上面的后缀为BAM 的文件的第二列,只有016 两个数字,用 cut/sort/uniq等命令统计它们的个数。

    # 方法一(复杂)
    samtools view tmp.sorted.bam | less -SN | cut -f 2 | grep 0 | wc
    samtools view tmp.sorted.bam | less -SN | cut -f 2 | grep 16 | wc
    
    # 方法二(简单)
    samtools view tmp.sorted.bam | less -SN | cut -f 2 | sort | uniq -c
    

    15. 重新打开rmDuplicate/samtools/paired文件夹下面的后缀为BAM的文件,再次查看第二列,并且统计。

    cd /trainee/Jude/practice/rmDuplicate/samtools/paired
    samtools view tmp.sorted.bam | less -SN | cut -f 2 | sort | uniq -c
    

    16. 下载 http://www.biotrainee.com/jmzeng/sickle/sickle-results.zip 文件,并且解压,查看里面的文件夹结构, 这个文件有2.3M,注意留心下载时间及下载速度。

    wget -c http://www.biotrainee.com/jmzeng/sickle/sickle-results.zip
    unzip sickle-results.zip
    cd sickle-results/
    tree
    

    17. 解压 sickle-results/single_tmp_fastqc.zip文件,并且进入解压后的文件夹,找到fastqc_data.txt 文件,并且搜索该文本文件以 >>开头的有多少行?

    cd sickle-results
    unzip single_tmp_fastqc.zip
    cd single_tmp_fastqc/
    less -SN fastqc_data.txt | grep \>\> | wc
    

    18. 下载 http://www.biotrainee.com/jmzeng/tmp/hg38.tss 文件,去NCBI找到TP53/BRCA1等自己感兴趣的基因对应的 refseq数据库 ID,然后找到它们在hg38.tss 文件的哪一行。

    # 涉及到refseq数据库中对应基因的ID查找
    wget http://www.biotrainee.com/jmzeng/tmp/hg38.tss
    less -SN hg38.tss | grep -n NM_001126115
    less -SN hg38.tss | grep -n NM_007294
    

    :一文看懂NCBI的refseq

    19. 解析hg38.tss 文件,统计每条染色体的基因个数。

    # 某染色体有多少个重复就对应着多少个基因
    less hg38.tss | awk '{print$2}' | cut -c 1-5 | sort |uniq -c
    
    # 或者
    less hg38.tss | cut -f 2 | cut -c 1-5 | sort |uniq -c
    
    

    注释
    .tss 文件记录基因坐标,第一列是基因的Refseq ID,第二列是染色体号,第三列是基因起始坐标,第四列是基因终止坐标。

    20. 解析hg38.tss 文件,统计NMNR开头的数量,了解NMNR开头的含义。

    less -SN hg38.tss | grep NM | wc
    less -SN hg38.tss | grep NR | wc
    

    注释*:
    NM含义:表示标准序列(转录产物序列,成熟mRNA转录本序列)
    NR含义:非编码蛋白的mRNA序列

    参考文章

    1. Linux练习题
    2. 生信linux20题测试
    3. Linux常规操作笔记

    相关文章

      网友评论

        本文标题:学生信的那些事儿之十三 - 生信技能树Linux练习20题

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