美文网首页
2019-03-24 |Linux上课笔记

2019-03-24 |Linux上课笔记

作者: 力达兄弟 | 来源:发表于2019-07-29 16:20 被阅读0次

    Linux | March 24, 2019

    markdown语法

    3个实用的markdown语法

    • 标题: ###
    • 引用: >号
    • 代码块:```
    This is where you put your codes.
    

    xshell简介

    服务器登录的三种方式

    ### windows电脑
    # 1. ssh usrID@ip
    # 2. 使用xshell输入
    # 3. 点击收藏夹
    ### mac电脑
    # 1. 使用终端登录
    # 2. 传输文件使用FIlezilla
    

    linux相关词汇

    • 环境变量

      1. $PATH:都是由路径组成的环境变量
      2. 软件的路径加到环境变量中就可以在任意地方调用
    • 任务、权限、ftp传输、通配符等

    • linux命令

      1. 命令 空 [argument][info] 空 操作对象

      2. 默认标准:

        1. $PATH一定要以':'分割,且有前后顺序(调用的时候可能会因为顺序,发生错误)
        2. 变量赋值:PATH="$PATH:/home/bin"

        对变量进行操作的一个例子

    # 变量需要加上$符号
    a=1
    a #会报错:command not found
    echo $a
    
    • linux的目录结构

      • /:根目录;即再无上层目录
      • 其它目录做了解
    • linux系统

      • 不同的发行版
      • 优势
        • 批量处理
        • 处理大文本
        • 运行速度快
        • 远程登录
    • 报错

      • 权限
      • 命令输错
      • 学会搜索解决报错
    • 常见分隔符

      • Tab 分割:\t
        • cut命令默认\t切割文件
      • 换行符\n:即enter键
      • csv常用","分割
    • 小技巧

      • tab快速匹配
      #命令+tab补全
      ## 包括命令的补全以及路径的补全
      mk + tab #mac 下可能需要按两次
      mkd + tab # 可以出现相关命令
      # 能匹配就不要复制,能复制不要手打
      cd /tea # +tab 
      
      • mac的跳到行尾、行首、Home、end键以及删除的快捷键
      # ctrl+A: 到句首,到Home键的效果
      # Ctrl+E: 到句尾,达到End键的效果
      # Ctrl+N: 到下一行
      # Ctrl+P: 到上一行
      # Ctrl+K: 从光标处开始删除,直到行尾
      # fn+←:HOME
      # fn+→:END
      # fn+↑:page up
      # fn+↓:page down
      
    • linxu常用命令

      #创建文件夹 mkdir
      mkdir test # + [参数] 目录名
      mkdir -p # 建多层目录
      #目录切换 cd
      cd ~ #家目录
      cd / #根目录
      cd .. #后退
      # 目录展示 ls
      ls # + [参数][目录]
      ## 参数
      ## -l: 显示长的完整细腻
      ## -a: 显示隐藏文件(all)
      ## -tr:按修改时间反向排序
      ## -h: 查看文本大小
      # 创建文本 touch
      touch new.txt
      touch del{1..10}.txt #批量操作
      # 注意权限
      # 文件、目录删除: rm
      rm txt.txt 
      ## 参数:
      # -i: 删除前询问
      # -r: 递归删除|删除路径
      # -f: 强制删除
      # 删除后不能修复,要慎重,可以用ls确认之后,再进行删除
      # 拷贝/改名 cp
      cp [参数] 源文件 目标文件
      ## 参数
      # -i :覆盖前询问,防止同名文件覆盖
      # -r :复制目录及目录内的所有内容
      # -f :强制覆盖
      # 需要两个路径
      # 拷贝与软连接的区别:不要拷贝只存在一份的东西,占内存,可以直接调用
      # 查看文本(只能查看不能编辑) less
      ## 参数
      ## -S:单行显示
      ## -N:行号加入编号
      ## 查看大文本时必用,不能编辑
      # 输出/入文本 cat
      cat [参数] 文本
      ## 查看小文本
      cat >newfile
      cat >>test.txt #追加
      # 从头从尾展示文件- head/tail
      ## 参数
      ## -n num: 展示文本前num行
      
    • Linux 命令进阶

       cut # 切割文件,按照要求对列进行选择,默认分割是\t
       less 文件 | cut -f 1,3-5|less -S
       # zless 看压缩文件
       paste #可以对文件进行左右合并的功能
       seq10
       seq10 >t1.txt
       seq20 >t2.txt
       paste t1.txt t2.txt #默认分隔符是\t
       # 使用参数 -d:可以指定分隔符。 也可以使用tr的转换功能
       paste t1.txt t2.txt |tr '\t' '#'
      # less -S/teach/database/gtf/gencode.v29.annotation.gtf.gz |cut -f 1,3-5|less -S
      # zless -S /teach/project/1.rna/3.raw_fq_25000reads/SRR1039512_2_100000.rawfq.gz|paste - - - - |cut -f 1-2|tr '\t' '\n'| tr '@' '>'|less -S
      ## - - - - 代表的是每一行的转置,由于fq的格式是四行,space把每一行进行分割
      sort uniq
      # 搭配,uniq去重功能只去掉临近功能
      # sort按照ASCII码排序,-n可以按照数字
      # 指定区域 -k;按照数字相反的: -n -r
      # sort -r -n -k 3 tmp == sort -k 3nr tmp
      uniq #去除文件中的重复行
      #参数: -c: 显示每行连续出现的次数
      find [参数] 目录/文本
      find / -name '*fa' >~/tmp.txt
      find /teach/ -name '*gz'
      find ~/ -size +500M 
      tr # 替换 例子:碱基互补配对
      cat seq.txt 
      cat seq.txt|tr [atcg] [tagc]|cat >seq2.txt 
      wc #统计行数、字符、文本大小
      bc #数学运算
      scale =2 #保存两个小数点
      quit 退出
      
    • 文本处理的三个工具:sed, grep, awk

      vim:https://www.jianshu.com/p/8c150a68a277

      通配符:https://www.jianshu.com/p/b7f8c97b2ba6

      grep :https://www.jianshu.com/p/22a4324ddfdf

      sed:https://www.jianshu.com/p/1a853a0315d5

      awk:https://www.jianshu.com/p/b6aec932adcf

      vim .bashrc # 用vim 打开.bashrc,GG到最后一行,粘贴以下内容。
      PS1="\[\033]2;\h:\u \w\007\033[33;1m\]\u \033[35;1m\t\033[0m \[\033[36;1m\]\w\[\033[0m\]\n\[\e[32;1m\]$ \[\e[0m\]
      source .bashrc #source之后才能生成
      
      less .bashrc |grep 'ing$'|less -S
      less .bashrc |grep '^#'|less -S
      
      https://www.jianshu.com/p/22a4324ddfdf
      # 实例: 对gtf来进行操作,gtf是fq的注释文件,-w 参数,精确匹配第三列是'gene'的行
      # -i 忽略大小写
      # -ie either,忽略大小写并且可以多搜几个
      nl /etc/passwd | grep -ie 'Server' -e 'root' -e 'qmcui'
      
      https://www.jianshu.com/p/1a853a0315d5
      # 对文本的行了进行处理
      
      https://www.jianshu.com/p/b6aec932adcf
      #awk
      echo 1 2 3 |awk '{ print "total pay for", $1, "is", $2 * $3 }'
      echo $PATH|awk -F ':' '{print $1}'
      echo $PATH|awk -v FS=":" '{print $1}'
      cat /etc/passwd |awk  -F ':' -v OFS="\t" '{print $1,$7}'
      cat /etc/passwd |awk  -F ':'  'BEGIN {print "name,shell"}  {print $1","$7} END {print "blue,/bin/nosh"}'
      echo 1 2 3 |awk '{ print "total pay for", $1, "is", $2 * $3 }'
      
      echo $PATH|awk -F ':' '{print $1}'
      echo $PATH|awk -v FS=":" '{print $1}'
      cat /etc/passwd |awk  -F ':' -v OFS="\t" '{print $1,$7}'
      cat /etc/passwd |awk  -F ':'  'BEGIN {print "name,shell"}  {print $1","$7} END {print "blue,/bin/nosh"}'
      
      对第四列求和:
      zless -S /teach/database/gtf/gencode.v29.annotation.gtf.gz |grep -v '^#'|head -n 5|awk '{sum=sum+$4}END{print sum}'
      
      准确输入第100行:
      zless -S  /teach/database/gtf/gencode.v29.annotation.gtf.gz|nl|awk 'NR==100{print $0}'
      
      zless -S /teach/database/gtf/gencode.v29.annotation.gtf.gz |awk '$1=="chr1" && $3=="gene" && $4>10000 && $5<50000{print $14}'
      zless -S /teach/database/gtf/gencode.v29.annotation.gtf.gz |awk '{if($1=="chr1" && $3=="gene" && $4>10000 && $5<50000)print $14}'
      
      
    • 软件安装

      #使用conda安装软件
      # 安装miniconda
      # 配置镜像
      conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
      conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
      conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda
      conda config --set show_channel_urls yes
      # 创建软件安装的环境
      conda create -n rna python=2
      # 由于很多生信软件基于python2,所以安装python2,如果碰到不兼容的软件,则可以重新安装新的环境来安装,小环境可以无限安装(激活特定的python)
      # 查看当前的conda环境
      conda info -envs
      # 激活进入conda的rna环境
      

    RNA-seq分析

    
    #mapping
    hisat2 -x /teach/database/index/hisat/hg38/genome -1 /teach/project/1.rna/4.clean_data_25000reads/SRR1039512_1_val_1.100000.fq.gz  -2 /teach/project/1.rna/4.clean_data_25000reads/SRR1039512_2_val_2.100000.fq.gz  |  samtools  sort  -o  ~/SRR1039512.sort.bam  -
    # 查看bam
    samtools view -h SRR1039512.sort.bam|less -S
    # 计数,拿到表达矩阵
    ## 需要一个注释文件以及所有样品的bam文件
    featureCounts  -T  5  -p  -t  exon -g  gene_id  -a  /teach/database/gtf/gencode.v29.annotation.gtf.gz -o  ~/all.id.txt   /teach/project/1.rna/5.sort.bam/*sort.bam
    ## 对数据进行提取
    less -S /home/qmcui/all.id.txt|cut -f 1,7-|grep -v '^#'|less -S
    

    相关文章

      网友评论

          本文标题:2019-03-24 |Linux上课笔记

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