zl程序教程

您现在的位置是:首页 >  其他

当前栏目

Linux - grep

2023-03-07 09:44:52 时间

生信技能树学习笔记

grep

文本搜索工具,能使用正则表达式匹配模式搜索文本

image.png
image.png
>grep -nr 'TATATT' Data/  ##显示行号
>less Data/example.gtf | grep -w 'gene' ## 以单词的格式查找
>cat Data/example.gtf | grep -w -e 'gene' -e 'exon' ## 多个关键词

>cat file
gene
UTR
start_codon
stop_codon
>cat Data/example.gtf | grep -w -f file ##从文件中读取

正则表达式

image.png
cat readme.txt | grep '^T' ##找出行首为T
cat Data/example.fa | grep -n '^TATA' ##找出行首为TATA,并标出行号
cat Data/example.fa | grep -n 'TATA$' ##末尾是TATA

cat Data/example.fa | grep -n '^TATA$' ##这一行只有TATA

cat readme.txt | grep 'f.ee' ## . 替代除了换行符之外的任意字符
cat readme.txt | grep 'f\?ee'  ## xee 或 fee f出现一次或者零次
cat readme.txt | grep -E 'f?ee' ## 写-E就不用写反斜线
cat readme.txt | grep 'f\\?ee' ## 查找的是 f\?ee

cat readme.txt | grep [bB] ## b或B
cat readme.txt | grep [^Tt] ##排除T和t
cat Data/example.gtf | grep -E 'UTR|exon'

### 建议所有的正则表达式都带上-E
image.png
cat Data/example.gtf | grep -wc 'gene'

cat Data/example.gtf | grep -vc 'exon'

cat Data/example.gtf | grep -wE 'CDS|UTR'
cat Data/example.gtf | grep -w -e 'CDS' -e 'UTR'

cat Data/example.fq | grep -c '@'

cat Data/example.fq | grep -c '^@'

grep -r -E -n 'TATA[AT]A[AT][ATCG]' Data/
cat Data/example.fq | grep -c '^@'
>1006

wc -l Data/example.fq
>4000

## 多了6@开头的,因为有些质量行可能是@开头

cat Data/example.fq | grep -c '^@ERR'
>1000
cat Data/example.fq | grep '^@' | grep -vn '^@ERR'
267:@;;@=BBBBBB??=?DD==8CBB@=>BBA=8=@@;DBDBBBEEBEGGGDBEEBBEGDGG@4.+?88BB<?
272:@HHHFHGHEHHGHHD;@EDFBDBBGGGDG?GGEBEGEGGGGGEBE<F8F<>A>A>GGAGA??>A######
429:@E<?GGGGBGGBGBDEED<DE<DEBDG@GE>>B;;BEEB=??2>CACAC?>B??????CE??E8?G@DD#
620:@BGDGBGEGEFGGHHHGHGH=GGGGHHHHHHDHFHHGDGHHHHHHHHHHHHDGDHHGHHHHHHHFHGHGH
633:@@;@=BDDBDDGE4GG?FGGG<GBDEEDEEHGHHFHHHHHHHFHHGGGGGHHHFHHHGHHHEHHHEGEGG
831:@GBGG?CEEDEB:E8ED>:EBD=@D6=5=<AA>A1CC>E###############################

附加题

## 人类Y染色体上有多少个基因
$ zless Data/Homo_sapiens.GRCh38.102.chromosome.Y.gff3.gz | cut -f 3 | grep -v '#' | grep -w 'gene' -c
> 47
## 在Y染色体的注释文件中有第三列哪些类型呢?
zless Data/Homo_sapiens.GRCh38.102.chromosome.Y.gff3.gz | cut -f 3 | grep -v '#' | sort |uniq -c | sort -n
      1 chromosome
      3 snoRNA
      7 ncRNA
     17 snRNA
     47 gene
     92 ncRNA_gene
    149 mRNA
    196 three_prime_UTR
    222 five_prime_UTR
    258 lnc_RNA
    290 biological_region
    382 pseudogene
    382 pseudogenic_transcript
   1568 CDS
   4285 exon