查看原文
其他

fasta格式文件处理大全(一)

王通 基因学苑 2023-08-18


前面我们介绍了fastq格式文件的处理,大概有20多个案例,掌握了这些案例,后面拿到fastq格式之后就可以根据需求,使用合适的软件工具进行处理了,从这次内容开始,我们将逐渐介绍fasta格式文件的处理。相比于fastq格式,fasta格式处理更加容易。

1 文件格式介绍

FASTA文件主要用于存储生物的序列文件,例如基因组,基因的核酸序列以及氨基酸等,是最常见的生物序列格式,一般以扩展名fa,fasta,fna等。

>NP_214518.1 hypothetical protein
ATGACGGGTTCTGTTGACCGGCCCGACCAGAATCGCGGTGAGCGATCAATGAAGTCACCAGGGTTGGATTTGGTCAGGCGCACCCTGGACGAAGCTCGTGCTGCTGCCCGCGCGCGCGGACAAGACGCCGGTCGAGGGCGGGTCGCTTCCGTTGCGTCGGGTCGGGTGGCCGGACGGCGACGAAGCTGGTCGGGTCCGGGGCCCGACATTCGTGATCCACAACCGCTGGGTAAGGCCGCTCGTGAGCTGGCAAAGAAACGCGGCTGGTCGGTGCGGGTCGCCGAGGGTATGGTGCTCGGCCAGTGGTCTGCGGTGGTCGGCCACCAGATCGCCGAACATGCACGCCCGACTGCGCTAAACGACGGGGTGTTGAGCGTGATTGCGGAGTCGACGGCGTGGGCGACGCAGTTGAGGATCATGCAGGCCCAGCTTCTGGCCAAGATCGCCGCAGCGGTTGGCAACGATGTGGTGCGATCGCTAAAGATCACCGGGCCGGCGGCACCATCGTGGCGCAAGGGGCCTCGCCATATTGCCGGTAGGGGTCCGCGCGACACCTACGG
ATAA

fasta文件中,第一行是由大于号">"开头的任意文字说明,用于序列标记,为了保证后续分析软件能够区分每条序列,单个序列的标识必须是唯一的,序列ID部分可以包含注释信息。
从第二行开始为序列本身,只允许使用既定的核苷酸或氨基酸编码符号。序列部分可以在一行,也可以分成多行。

2 下载

fasta格式主要用来存储基因组或者基因序列,从ncbi,ebi上可以下载大量的fasta格式序列,ncbi提供了edirect工具可以通过Accession Number直接下载序列。

efetch -db=nuccore -format=fasta -id=AF086833 > AF086833.fa

也可以从ncbi获得下载链接地址,使用wget,curl后者axel命令直接下载。

wget ftp://ftp.ncbi.nlm.nih.gov/genomes/all/GCF/000/195/955/GCF_000195955.2_ASM19595v2/GCF_000195955.2_ASM19595v2_genomic.fna.gz
gunzip GCF_000195955.2_ASM19595v2_genomic.fna.gz
mv GCF_000195955.2_ASM19595v2_genomic.fna ref.fna
wget ftp://ftp.ncbi.nlm.nih.gov/genomes/all/GCF/000/195/955/GCF_000195955.2_ASM19595v2/GCF_000195955.2_ASM19595v2_cds_from_genomic.fna.gz
gunzip GCF_000195955.2_ASM19595v2_cds_from_genomic.fna.gz
mv GCF_000195955.2_ASM19595v2_cds_from_genomic.fna gene.fna

3 统计

fasta文件中每个“>”开头代表一条序列,如果想统计文件中序列的条数,最简单的方法就是grep出所有大于号开头的行,然后使用wc统计即可。

grep ">" gene.fna | wc
   3906   35809  762721

seqkit的统计功能能够提供更多统计信息。

$ seqkit stats gene.fna 
file      format  type  num_seqs    sum_len  min_len  avg_len  max_len
gene.fna  FASTA   DNA      3,906  3,958,320       90  1,013.4   12,456

4 格式化

一般的fasta格式第一行是ID,接下来一行或者多行是序列,每行长度固定。不过可以进行调整,例如一行ID一行序列,或者让每行显示固定长度内容。

#所有序列显示在一行
seqtk  seq -l 0 gene.fna
#每行显示50个碱基
seqtk  seq -l 50 gene.fna

---------- END ----------

(扫描小程序,观看在线课程)



您可能还会感兴趣的

生物信息暑期班(北京站)开始报名
基因学苑文章列表(201906)

上传数据,直接分析,1T内存服务器来了
手把手教你生信分析平台搭建专栏合集
生物信息重要资源站点合集
不会编程,如何进行批量操作
一个人全基因组完整数据分析脚本
一个细菌基因组完整分析脚本
如何在Linux下优雅的装X


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存