【基因組學】從基因組中提取基因序列,一段序列及相應的注釋文件

寫在前面
要讓從基因組中獲取信息變得像喝水那樣簡單。 --by zhougengxu

預先準備

我以水稻基因組為例,像大家介紹如何提取序列。

基因組文件:水稻基因組,水稻注釋文件,水稻CDS文件(用作檢驗)
工具:samtools,bedtools,awk

1.下載文件

wget https://rapdb.dna.affrc.go.jp/download/archive/irgsp1/IRGSP-1.0_genome.fasta.gz
gunzip IRGSP-1.0_genome.fasta.gz
wget https://rapdb.dna.affrc.go.jp/download/archive/irgsp1/IRGSP-1.0_representative_2020-12-02.tar.gz
tar xvf IRGSP-1.0_representative_2020-12-02.tar.gz

2.提取基因序列

2.1提取gff文件的所有基因位置,并轉換成bed格式

awk '{if($3~/^gene$/)print}' locus.gff > genes.gff
gff2bed <genes.gff> genes.bed

2.2計算染色體長度

samtools faidx IRGSP-1.0_genome.fasta
cut -f 1,2 IRGSP-1.0_genome.fasta.fai > sizes.chr

2.3在基因組序列中抓取基因的序列

bedtools getfasta -s -fi IRGSP-1.0_genome.fasta -bed genes.bed -fo genes.fa -name

打包成腳本如下

#bin/bash
GFF=locus.gff
GENOME=IRGSP-1.0_genome.fasta
awk '{if($3~/^gene$/)print}' $GFF > genes.gff
gff2bed <genes.gff> genes.bed
samtools faidx $GENOME
cut -f 1,2 $GENOME.fai > sizes.chr
bedtools getfasta -s -fi $GENOME -bed genes.bed -fo genes.fa -name

3.提取基因組中的一段序列

比如我只想提取一號染色體上的10000-50000這一段序列。
首先建立索引。

samtools faidx IRGSP-1.0_genome.fasta

然后根據染色體信息和物理位置直接提取。這里注意,如何要和目的4連用的話,要修改>后面的值與gff文件一致才可以。

samtools faidx IRGSP-1.0_genome.fasta chr01:10000-50000 > chr1.fa
>chr01:10000-50000
TAAGGAAAGTATAGTCAGGTTTACTTATAATGCAACTTATTGGCATATTAATGCATGTTT
ATTGTTTGCACTCCTGAAGTTGAGTTGGTCAATTTTTTCCATAGATGTTCAATGATAATA
TGCTGAAGATCAATGTAAAAAGATGCGTACGCATGGCTATCAAGCTGAGGAAGAagtata
tttacaaggtaaattgtgataagcatacatgagcaccatccatgtttttcaggtatattt
acaaggtaagttctaaTTTGGTCTTGGGATACAGTTATTGAAGGGGGGCTCGGAATGATG
AAAAAGTGGAAACTGAAGTTGAGAAATCGCCCTGGGGAACTAGATGTTTTTCAACCATGA
ACTTCTCGTAATTATGGGTGATGGAACTTTATATATTCATTAGAAGTCCAAAAAAAATCC
GTATACTCACGGTATGGATTCCCTCTTTCTGTTTATGTTTTGTTAGAGATGGATGACGTA
CATAATCTGCTTGTCTTGTTTCAGGGAATCTGTACATATGCACAGTATACTTGAAAACAA。。。。

4.提取3中對應的gff文件

首先提取目的區域的文件。

less -SN locus.gff | grep 'chr01' | awk '$4>=10000{print$0}' | awk '$5<=50000{print$0}' > trunted.gff
      1 chr01   irgsp1_locus    gene    11218   12435   .       +       .       ID=Os01g0100200;Name=Os01g0100200;Note=Conserved hypothetica
      2 chr01   irgsp1_locus    gene    11372   12284   .       -       .       ID=Os01g0100300;Name=Os01g0100300;Note=Cytochrome P450 domai
      3 chr01   irgsp1_locus    gene    12721   15685   .       +       .       ID=Os01g0100400;Name=Os01g0100400;Note=Similar to Pectineste
      4 chr01   irgsp1_locus    gene    12808   13978   .       -       .       ID=Os01g0100466;Name=Os01g0100466;Note=Hypothetical protein.
      5 chr01   irgsp1_locus    gene    16399   20144   .       +       .       ID=Os01g0100500;Name=Os01g0100500;Note=Immunoglobulin-like d
      6 chr01   irgsp1_locus    gene    22841   26892   .       +       .       ID=Os01g0100600;Name=Os01g0100600;Note=Single-stranded nucle
      7 chr01   irgsp1_locus    gene    25861   26424   .       -       .       ID=Os01g0100650;Name=Os01g0100650;Note=Hypothetical gene. (O
      8 chr01   irgsp1_locus    gene    27143   28644   .       +       .       ID=Os01g0100700;Name=Os01g0100700;Note=Similar to 40S riboso
      9 chr01   irgsp1_locus    gene    29818   34453   .       +       .       ID=Os01g0100800;Name=Os01g0100800;Note=Protein of unknown fu
     10 chr01   irgsp1_locus    gene    35623   41136   .       +       .       ID=Os01g0100900;Name=Os01g0100900;Note=Sphingosine-1-phospha

其次對目標區域的物理位置進行相加減,便可得出目的區域中的基因組注釋信息。這里注意,減去的數值是目的位置的數值減1,具體原因就是小學的切樹理論。這樣才能保證你用截短的注釋文件提取的序列和原文件中提取的序列保持一致。

less -SN trunted.gff | awk '{print$1"\t"$2"\t"$3"\t"$4-9999"\t"$5-9999"\t"$6"\t"$7"\t"$8"\t"$9}' > trunted2.gff
      1 chr01   irgsp1_locus    gene    1219    2436    .       +       .       ID=Os01g0100200;Name=Os01g0100200;Note=Conserved
      2 chr01   irgsp1_locus    gene    1373    2285    .       -       .       ID=Os01g0100300;Name=Os01g0100300;Note=Cytochrome
      3 chr01   irgsp1_locus    gene    2722    5686    .       +       .       ID=Os01g0100400;Name=Os01g0100400;Note=Similar
      4 chr01   irgsp1_locus    gene    2809    3979    .       -       .       ID=Os01g0100466;Name=Os01g0100466;Note=Hypothetical
      5 chr01   irgsp1_locus    gene    6400    10145   .       +       .       ID=Os01g0100500;Name=Os01g0100500;Note=Immunoglobulin-like
      6 chr01   irgsp1_locus    gene    12842   16893   .       +       .       ID=Os01g0100600;Name=Os01g0100600;Note=Single-stranded
      7 chr01   irgsp1_locus    gene    15862   16425   .       -       .       ID=Os01g0100650;Name=Os01g0100650;Note=Hypothetical
      8 chr01   irgsp1_locus    gene    17144   18645   .       +       .       ID=Os01g0100700;Name=Os01g0100700;Note=Similar
      9 chr01   irgsp1_locus    gene    19819   24454   .       +       .       ID=Os01g0100800;Name=Os01g0100800;Note=Protein
     10 chr01   irgsp1_locus    gene    25624   31137   .       +       .       ID=Os01g0100900;Name=Os01g0100900;Note=Sphingosine-1-phospha

最后得到的trunted2.gff便是我們想要的目標3里面基因組文件對應的注釋文件了。

參考鏈接

1.https://www.omicsclass.com/article/1169
2.https://mp.weixin.qq.com/s/0CvJNGM_MJGm-wbOxtczzw

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容