2019-03-24 |Linux上课笔记

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上课笔记)