NGS之数据格式

简介: NGS之数据格式

生物信息中常见的几种数据格式有:fasta、fastq、bam、sam、vcf、bed、gff。


参考:http://www.biotrainee.com/thread-42-1-1.html


FASTQ

参考:https://en.wikipedia.org/wiki/FASTQ_format

fastq格式是文本格式。它有对应序列字符的质量分数,出于简洁的目的用ASCII字符来表示,所以fastq格式常用于高通量测试数据的存储。


fastq格式常以四部分组成。


第一部分:序列名称。以 @ 开始紧接着是序列的标识符和可选择的描述信息,和fasta格式的头行很相似。


第二部分:序列碱基。是原始序列信息。


第三部分:以 + 开始,后面可再接与第一部分的相同的序列标识符或者描述信息。


第四部分:碱基的质量。以ASCII字符表示第二行碱基序列的测序质量。! 表示最低的质量而 ~ 表示最高质量。

 

@IL38_2670:1:42:1707:2025/2
CTTTTTTTTTTTTTTTTTTTTTTTTTGTTCTTTTTTTCTTTTTTTTTTTTTTTT
+
())+22;;99-A0B=/=--<=?4+;*=*+A,A<?992()==9<9---=9?A@>@

fastq转换fasta格式:

zcat input_file.fastq.gz | awk 'NR%4==1{printf ">%s\n", substr($0,2)}NR%4==2{print}' > output_file.fa

FASTA


参考:https://en.wikipedia.org/wiki/FASTA_format

fasta格式是生物信息最基本的文本格式,用来展示碱基序列或者氨基酸序列。fasta格式的简洁性有利于文本编辑工具和脚本语言如:Python,Rudy,Perl的编辑操作。


在fasta文件的第一行(header line)通常以";" 或者 ">"开头,用来分割不同的序列。

>MAL1
CTAAACCTAAACCTAAACCCTGAACCCTAAACCCTAAACCCTGAACCCTAAACCCTGAAC
CCTGAACCCTAAACCCTGAACCCTAAACCCTGAACCCTGAACCCTAAACCCTAAACCCTA

下面的代码中,


第一部分:NCBI用seqID定义了一个唯一的标识在header line并且指出了序列来源的数据库等信息,即 >gi|55417888|dbj|BA000005.3|。一个空格符之后的 Homo sapiens genomic DNA, chromosome 21q 为描述信息。


第二部分:即是氨基酸或者碱基序列。

>gi|55417888|dbj|BA000005.3| Homo sapiens genomic DNA, chromosome 21q
CATGTTTCCACTTACAGATCCTTCAAAAAGAGTGTTTCAAAACTGCTCTATGAAAAGGAATGTTCAACTC
TGTGAGTTAAATAAAAGCATCAAAAAAAAGTTTCTGAGAATGCTTCTGTCTAGTTTTTATGTGAAGATAT

SAM


参考:http://samtools.github.io/hts-specs/SAMv1.pd

sam格式是文本格式,用来表示短序列片段比对参考序列片段的结果(reads map reference genome)。在高通量测序时经常使用。


sam格式以两部分组成。


第一部分:头行(header line)以 @ 开始,紧接着一个或两个字母,比如下列代码中的 SQ 表示参考序列信息,SN表示参考序列名称,LN表示参考序列长度,PG表示软件,ID表示项目记录号(唯一),PN表示软件名称,VN表示软件版本,CL表示命令行等等(全部解释信息可见参考链接)。


   第二部分:比对结果部分(alignment section),每一行表示片段比对信息,共有十一列。


       1 查询序列名称(query template name),是字符串类型,即下列代码的 IL38_2670:1:42:1707:2025  

       2 标识(flag)以整数的形式表示比对的结果,如 16

       3 参考序列的名称(reference sequence name),如 MAL1

       4 第一个碱基比对上的位置(position),没有比对上用0表示,比对上了从1开始计数,如 153717

       5 比对质量(mapping quality),用-10log 10 Pr{mapping position is wrong}计算,粗略近似为从0开始的整数,如:0

       6 CIGAR字符串,是比对的详细信息,使用数字加字母表示比对结果,如31M1D23M 表示31个比对上了1个缺失了最后23个比对上了(还有I表示相对 参考序列是插入的碱基,N跳过了这个区域??(什么叫skip掉?不懂求大神解释和deletion有什么区别),P有缺口等等)

       7 测序中下一个短片段比对上参考序列的名称,没有用*表示,和上一个相同用=表示,如下列代码的*

       8 测序中下一个短片段比对上参考序列的位置,没有用0表示,如下列代码的0

       9 序列模板长度(signed observed template length),如果同一个片段都比对上了同一个参考序列,为最左边的碱基位置到最右边的碱基位置(左为正,右为负),当是single-segment比对上或者不可用时记为0

       10 短序列(reads/segments)的信息,如下图中的AAAAAAAAAAAAAAAAGAAAAAAAGAACAAAAAAAAAAAAAAAAAAAAAAAAAG

       11 比对的质量和fastq文件中记录的相同,如下图的@>@A?9=---9<9==)(299?

       最后还有可以选择的信息用TAG:TYPE:VALUE表示。


BAM


bam是sam的二进制格式,为了减少sam文件的储存量。


附格式转换:


sam格式转换成bam格式:

————————————————

版权声明:本文为CSDN博主「DrugAI」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/u012325865/article/details/88606306SAM


参考:http://samtools.github.io/hts-specs/SAMv1.pd

sam格式是文本格式,用来表示短序列片段比对参考序列片段的结果(reads map reference genome)。在高通量测序时经常使用。


sam格式以两部分组成。


第一部分:头行(header line)以 @ 开始,紧接着一个或两个字母,比如下列代码中的 SQ 表示参考序列信息,SN表示参考序列名称,LN表示参考序列长度,PG表示软件,ID表示项目记录号(唯一),PN表示软件名称,VN表示软件版本,CL表示命令行等等(全部解释信息可见参考链接)。


   第二部分:比对结果部分(alignment section),每一行表示片段比对信息,共有十一列。


       1 查询序列名称(query template name),是字符串类型,即下列代码的 IL38_2670:1:42:1707:2025  

       2 标识(flag)以整数的形式表示比对的结果,如 16

       3 参考序列的名称(reference sequence name),如 MAL1

       4 第一个碱基比对上的位置(position),没有比对上用0表示,比对上了从1开始计数,如 153717

       5 比对质量(mapping quality),用-10log 10 Pr{mapping position is wrong}计算,粗略近似为从0开始的整数,如:0

       6 CIGAR字符串,是比对的详细信息,使用数字加字母表示比对结果,如31M1D23M 表示31个比对上了1个缺失了最后23个比对上了(还有I表示相对 参考序列是插入的碱基,N跳过了这个区域??(什么叫skip掉?不懂求大神解释和deletion有什么区别),P有缺口等等)

       7 测序中下一个短片段比对上参考序列的名称,没有用*表示,和上一个相同用=表示,如下列代码的*

       8 测序中下一个短片段比对上参考序列的位置,没有用0表示,如下列代码的0

       9 序列模板长度(signed observed template length),如果同一个片段都比对上了同一个参考序列,为最左边的碱基位置到最右边的碱基位置(左为正,右为负),当是single-segment比对上或者不可用时记为0

       10 短序列(reads/segments)的信息,如下图中的AAAAAAAAAAAAAAAAGAAAAAAAGAACAAAAAAAAAAAAAAAAAAAAAAAAAG

       11 比对的质量和fastq文件中记录的相同,如下图的@>@A?9=---9<9==)(299?

       最后还有可以选择的信息用TAG:TYPE:VALUE表示。


BAM


bam是sam的二进制格式,为了减少sam文件的储存量。


附格式转换:


sam格式转换成bam格式:

samtools view -bS toy.sam > toy.bam

VCF


vcf(variant calling format)用来表示突变的信息。


vcf格式以两部分组成。第一部分:头行(vcf header),以##开头,有文件格式,使用软件信息,参考序列信息,重叠群(contig)的相关信息(拼接时reads之间的overlap区域)等等。


第二部分:具体的突变信息,共有八列。


1 染色体名称(chromosome),哪一个参考序列上发现了突变,如MAL1


2 发生突变的位置,以1开始计算,如265854


3 突变的ID


4 参考序列上的碱基,如T


5 发生突变的碱基,如C


6 发生突变的碱基质量,如6.2


7 过滤后的状态


8 额外的信息


image.pngimage.png

image.png

##fileformat=VCFv4.1
##samtoolsVersion=0.1.19-44428cd
##reference=file://3D7.version2.1.4.fasta
##contig=<ID=MAL1,length=643292>
##contig=<ID=MAL10,length=1687655>
##INFO=<ID=DP,Number=1,Type=Integer,Description="Raw read depth">
##INFO=<ID=DP4,Number=4,Type=Integer,Description="# high-quality ref-forward bases, ref-reverse, alt-f
##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">
##FORMAT=<ID=GQ,Number=1,Type=Integer,Description="Genotype Quality">
##FORMAT=<ID=GL,Number=3,Type=Float,Description="Likelihoods for RR,RA,AA genotypes (R=ref,A=alt)">
##FORMAT=<ID=DP,Number=1,Type=Integer,Description="# high-quality bases">
##FORMAT=<ID=DV,Number=1,Type=Integer,Description="# high-quality non-reference bases">
##FORMAT=<ID=SP,Number=1,Type=Integer,Description="Phred-scaled strand bias P-value">
##FORMAT=<ID=PL,Number=G,Type=Integer,Description="List of Phred-scaled genotype likelihoods">
#CHROM  POS     ID      REF     ALT     QUAL    FILTER  INFO    FORMAT  cam10.sorted.bam
MAL1    265854  .       T       C       6.2     .       DP=37;VDB=2.699794e-03;RPB=-2.646189e+00;AF1=0.4999;AC1=1;DP4=5,3,9,0;MQ=36;FQ=8.65;PV4=0.082,2.4e-10,0.18,0.37 GT:PL:DP:SP:GQ  0/1:35,0,127:17:11:36##fileformat=VCFv4.1
##samtoolsVersion=0.1.19-44428cd
##reference=file://3D7.version2.1.4.fasta
##contig=<ID=MAL1,length=643292>
##contig=<ID=MAL10,length=1687655>
##INFO=<ID=DP,Number=1,Type=Integer,Description="Raw read depth">
##INFO=<ID=DP4,Number=4,Type=Integer,Description="# high-quality ref-forward bases, ref-reverse, alt-f
##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">
##FORMAT=<ID=GQ,Number=1,Type=Integer,Description="Genotype Quality">
##FORMAT=<ID=GL,Number=3,Type=Float,Description="Likelihoods for RR,RA,AA genotypes (R=ref,A=alt)">
##FORMAT=<ID=DP,Number=1,Type=Integer,Description="# high-quality bases">
##FORMAT=<ID=DV,Number=1,Type=Integer,Description="# high-quality non-reference bases">
##FORMAT=<ID=SP,Number=1,Type=Integer,Description="Phred-scaled strand bias P-value">
##FORMAT=<ID=PL,Number=G,Type=Integer,Description="List of Phred-scaled genotype likelihoods">
#CHROM  POS     ID      REF     ALT     QUAL    FILTER  INFO    FORMAT  cam10.sorted.bam
MAL1    265854  .       T       C       6.2     .       DP=37;VDB=2.699794e-03;RPB=-2.646189e+00;AF1=0.4999;AC1=1;DP4=5,3,9,0;MQ=36;FQ=8.65;PV4=0.082,2.4e-10,0.18,0.37 GT:PL:DP:SP:GQ  0/1:35,0,127:17:11:36

参考:http://www.iwhgao.com/?p=1304

https://en.wikipedia.org/wiki/Variant_Call_Format

@SQ     SN:MAL1 LN:643292
@SQ     SN:MAL10        LN:1687655
@SQ     SN:MAL11        LN:2038337
@SQ     SN:MAL12        LN:2271477
@SQ     SN:MAL13        LN:2895605
@SQ     SN:MAL14        LN:3291871
@SQ     SN:MAL2 LN:947102
@SQ     SN:MAL3 LN:1060087
@SQ     SN:MAL4 LN:1204112
@SQ     SN:MAL5 LN:1343552
@SQ     SN:MAL6 LN:1418244
@SQ     SN:MAL7 LN:1501717
@SQ     SN:MAL8 LN:1419563
@SQ     SN:MAL9 LN:1541723
@PG     ID:bwa  PN:bwa  VN:0.7.12-r1039 CL:/export/common/programs/bwa-0.7.12 samse -f cam10.sam 3D7.version2.1.4.fasta cam10.sai cam10.fastq
IL38_2670:1:42:1707:2025        16      MAL1    153717  0       54M     *       0       0       AAAAAAAAAAAAAAAAGAAAAAAAGAACAAAAAAAAAAAAAAAAAAAAAAAAAG  @>@A?9=---9<9==)(299?<A,A+*=*;+4?=<--=/=B0A-99;;22+))(  XT:A:R  NM:i:2  X0:i:3  X1:i:2  XM:i:2  XO:i:0  XG:i:0  MD:Z:27A17G8


目录
相关文章
|
前端开发 Java C#
java/C#语言开发的医疗信息系统11套源码
java/C#语言开发的医疗信息系统11套源码
399 2
|
2月前
|
传感器 Web App开发 监控
【开源免费】基于STM32+uC/OS+阿里云物联网平台的家庭安全防控系统
基于STM32与uC/OS打造的开源家庭安全系统,集成门锁控制、火焰监测、温湿度采集,通过ESP8266连接阿里云物联网平台,支持刷卡/密码开锁、远程监控与报警,OLED实时显示,安全可靠,可扩展性强,助力智能家居安防。
|
6月前
|
缓存 监控 Linux
Linux系统清理缓存(buff/cache)的有效方法。
总结而言,在大多数情形下你不必担心Linux中buffer与cache占用过多内存在影响到其他程序运行;因为当程序请求更多内存在没有足够可用资源时,Linux会自行调整其占有量。只有当你明确知道当前环境与需求并希望立即回收这部分资源给即将运行重负载任务之前才考虑上述方法去主动干预。
1978 10
|
Web App开发 数据采集 JavaScript
CDP与Selenium相结合——玩转网页端自动化数据采集/爬取程序
本文介绍了Selenium、Chrome DevTools及Chrome DevTools Protocol (CDP) 的基本功能与应用。Selenium是一款开源自动化测试工具,适用于网页端应用程序测试和数据采集,具备跨平台特性。Chrome DevTools内置浏览器中,提供调试、分析Web应用程序的功能,包括元素、控制台、源代码和网络选项卡等。CDP是一套用于与Chromium内核浏览器通信的API,支持自动化测试和性能分析。文中还展示了Selenium与CDP结合使用的示例,如捕获网络请求数据和打印网页内容,并推荐了相关书籍和资源以供深入学习。
1750 39
CDP与Selenium相结合——玩转网页端自动化数据采集/爬取程序
|
存储 Rust 搜索推荐
KaOS Linux 2024.09 发布
【10月更文挑战第6天】
393 2
KaOS Linux 2024.09 发布
解决Vscode使用LeetCode报错Failed to test the solution. Please open the output channel for details.
本文提供了解决在VScode中使用LeetCode插件时遇到“Failed to test the solution. Please open the output channel for details.”错误的方法,主要是通过修改setting.json文件中的输出文件夹配置来解决。
1569 1
|
安全 网络安全 数据安全/隐私保护
单域名、多域名、通配符 SSL 证书,你选对了吗?
SSL证书是保护上网安全的重要工具,相当于网站的身份证,确保信息不被窃取。单域名证书保护一个网站,多域名证书可保护多个网站,通配符证书则保护主域名下的所有子域名。选择哪种证书取决于网站规模和需求
|
Kubernetes 负载均衡 开发者
容器编排技术的选择与比较
【8月更文挑战第3天】选择合适的容器编排技术需要综合考虑多个因素。无论选择哪种技术,深入学习和理解,合理规划和设计容器环境,都是发挥容器编排技术最大价值的关键。希望本文能为读者在选择和比较容器编排技术时提供有价值的参考。
|
SQL 开发框架 .NET
代码更简洁,开发更高效:从零开始使用Entity Framework Core与传统ADO.NET构建数据持久化层的比较
【8月更文挑战第31天】在.NET平台上开发数据驱动应用时,选择合适的ORM框架至关重要。本文通过对比传统的ADO.NET和现代的Entity Framework Core (EF Core),展示了如何从零开始构建数据持久化层。ADO.NET虽强大灵活,但需要大量手写代码;EF Core则简化了数据访问,支持LINQ查询,自动生成SQL命令,提升开发效率。从创建.NET Core项目、定义数据模型、配置`DbContext`到执行数据库操作,EF Core提供了一套流畅的API,使数据持久化层的构建变得简单直接。
320 0
|
NoSQL 网络安全 Redis
【docker】部署的redis突然连接不上了
【docker】部署的redis突然连接不上了
549 2

热门文章

最新文章