生信人

找回密码
立即注册
搜索
热搜: 活动 交友 discuz
发新帖

0

收听

12

听众

279

主题
发表于 2022-7-1 20:41:28 | 查看: 600| 回复: 0
一、软件介绍
       grep 是 Linux 下非常重要的一个工具,grep 全称是 Global Regular Expression Print,表示全局正则表达式版本。grep 是一个文本筛选器,其实也是搜索的功能,grep 的工作原理是,给定一个条件,我们也叫作模式,然后从文本中筛选出符合这个条件的内容,然后将这一行输出出来。有点类似于搜索引擎,在一个很大的文本中,筛选出满足设定条件的部分。grep在生物信息分析中,可以快速从文本中筛选出需要的内容。

二、选项参数
       首先来介绍一下 grep 的选项参数,grep 的选项参数也很多,主要分为四部分,首先是正则表达式相关的选项,然后是 Miscellaneous,其余方面,输出控制,以及上下文控制等。
  1. -E 或--extended-regexp 扩展功能的 grep,也叫作 egrep,可以直接敲 egrep 命令。
  2. -F 或--fixed-regexp 将范本样式视为固定字符串的列表,也叫作 fgrep,可以直接敲 fgrep
  3. 命令。
  4. -G 或--basic-regexp 将范本样式视为普通的表示法来使用。
  5. -P 或--perl-regexp 使用 perl 的正则表达式。
  6. 不同模式的正则表达式之间稍微有些差别。
  7. -f --file=接一个模式的文件,让 grep 查找符合范本条件的文件内容,格式为每列一个范本样式;
  8. 当要搜索条件过多时,可以将条件写入一个文件。
  9. -i 或--ignore-case 忽略字符大小写的差别。
  10. -w 或--word-regexp 只显示全字符合的列。
  11. -x 或--line-regexp 只显示全列符合的列。
  12. #输出选项,
  13. -h 在显示符合范本样式的那一列之前,不标示该列所属的文件名称。
  14. -H 在显示符合范本样式的那一列之前,表示该列所属的文件名称。
复制代码
  1. -l 列出满足条件的文件名称,而不是具体内容,这个用在文件很多时,筛选出哪些文件包含条件
  2. 的内容。然后将这些文件筛选出来。
  3. -v,--revert-match ,显示不匹配模式的行,有时候我们需要输出哪些是不满足条件的行,这时
  4. 就可以使用-v 选项。
  5. -n 是在输出满足条件的内容前加行行号。
  6. -r 和-d 类似,用于搜索目录,可以用于搜索目录下的每一个文件;
  7. #上下文控制。
  8. -B 是 before 的意思,后面接一个数字,表示将满足条件的行,前面几行也输出出来。
  9. -A 是 After 的意思,和-B 类似,表示将满足条件的行,下面几行输出出来。
  10. -C 后面接一个数字, 除了显示符合范本样式的那一列之外,并显示该列之前后的内容。 也可以
  11. 不用-C,直接连字符接数字。比如-2 输出满足条件的上下几行。
  12. -c 或--count 计算符合范本样式的列数。
复制代码

三、使用案例
  1. #1 统计fasta条数
  2. grep ">" soapdenovo.fa | wc

  3. #2 去除#开头的行
  4. grep -v "^#" demo.gff | head

  5. #3 根据关键字搜索
  6. grep  "C2875"  soapdenovo.fa

  7. #4 关键字上下内容
  8. grep -A 1 "C2381"  soapdenovo.fa
  9. grep -B 1 "C2381"  soapdenovo.fa
  10. #拉直序列整长
  11. seqkit seq -w 0 soapdenovo.fa  | grep -A 1 "C2381"
  12. cat demo.gff | grep "lnc_RNA"

  13. #5 使用正则表达式
  14. seqkit seq -w 0 demo.fasta | grep "A\{7,10\}"

  15. #6 筛选关键字,并输出行号
  16. grep -n "EGFR" demo.bed

  17. #7 删除掉空行
  18. grep -v "^$" test.bed

  19. #8 设定锚定符
  20. locate bwa | grep "bwa"
  21. locate bwa | grep "bwa$"
  22. locate bwa | grep "\bbwa$"
  23. #相同效果可以使用locate正则
  24. locate -r "\bbwa$"

  25. #9 计算匹配字符行数
  26. grep -c "EGFR" demo.bed

  27. #10 计算数目并排序
  28. grep -v "^#" demo.gff | awk '{print $3}' | sort-uniq-count-rank

  29. #11 同时满足多个条件
  30. grep -e "ncRNA" -e "ncRNA_gene" demo.gff

  31. #12 显示包含关键字的文件
  32. grep -l aspera /share/*/*.sh
复制代码

您需要登录后才可以回帖 登录 | 立即注册

QQ|Archiver|手机版|小黑屋|生信人

GMT+8, 2024-5-3 11:11 , Processed in 0.036392 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表