原标题:生信分析过程中这些常见文件的格式以及查看方式你都知道吗?

生信分析过程中,会与很多不同格式的文件打交道,除了原始测序数据 fastq 之外,还需要准备基因组文件 fasta 格式和基因注释文件 gtf 格式。在分析的过程中还会有众多中间文件的生成,如 bed 、 bed12 、 sam 、 bam 、 wig 、 bigwig 、 bedgraph 等,生成后我们一般会查看下内容了解文件每一列的含义,以此来决定需要提取哪些有用信息列来进行下一步分析。

插播一个小剧场

老板:“先查看一下bam文件内容。”

小白:嗒嗒嗒敲键盘。

$ less ehbio.bam

"ehbio.bam" may be a binaryfile. See it anyway?

小白:“哎呀,错了,应该这样。” 嗒嗒嗒敲键盘。

$ samtools view ehbio.bam # 回车一敲,灾难,电脑要卡死,赶紧按`control + c`

$ samtools view ehbio.bam | less # 这下终于可以查看了

老板:“你逗我呢……”(不失礼貌的批评)

刚接触生信分析的小白们这种尴尬的事情时有发生,为了帮助大家梳理这些剪不断理还乱的文件,本文 以分析流程为主线,介绍各文件的格式以及有哪些常用命令来查看或处理它们。

1. 测序数据FASTQ文件

1) 文件用途:样品测序返回的数据一般存储为fastq文件,通常是压缩文件 filename.fq.gz 的格式,节省存储空间和传输时间。 NGS基础 - FASTQ格式解释和质量评估

2) 查看方式

# zcat查看gzip压缩的文件

# head -n 8 显示前8行文件内容(前8行代表2条序列)

zcat filename.fq.gz | head -n 8

# @SRR1039521.13952745/1

# TTCCTTCCTCCTCTCCCTCCCTCCCTCCTTTCTTTCTTCCTGTGGTTTTTTCCTCTCTTCTTC

# +

# HIJIIJHGHHIJIIIJJJJJJJJJJJJJJJJJJJJJIIJJFIDHIBGHJIHHHHHHFFFFFFE

3) 格式说明:fastq文件每4行代表一条序列

第一行:记录序列测序时所用仪器以及在测序通道中坐标信息,以 @ 开头;

第二行:测序的序列信息,以 ATCGN 表示,由于荧光信号干扰无法判断是什么碱基时就用 N 表示;

第三行:通常一个 + ;

第四行:与第二行碱基信息一一对应,存储测序碱基的质量值。

4)其他常用命令

# 计算read数

# wc -l: 计算行数

# bc -l: 计算器 (-l:浮点运算)

# 为什么除以4,又除以1000000,计算的是million值

echo "`zcat trt_N061011_1.fq.gz | wc-l` / (4*1000000)" | bc -l

# 测序碱基数计算

zcat trt_N061011_1.fq.gz | awk'{if(FNR%4==0) base+=length}END{print base/10^9,"G";}'

awk的介绍见: 常用和不太常用的awk命令

2.基因组FASTA文件

此文件可以从ensemble数据库下载的(https://www.ensembl.org/info/data/ftp/index.html), 一般选择下载 primary assemblyfasta ( 想知道为什么,点这里 )。 fasta 文件用于序列存储,可以是DNA或蛋白序列,在此FASTA文件存储了基因组序列的信息。

序列名字行:以 > 符号开头,记录了该序列类型和所在基因组位置信息;

序列行(一行或多行):序列信息,soft-masked基因组会把所有重复区和低复杂区的序列用小写字母标出的基因组,小写字母 n 表示 未知碱基。

>1 dna_sm:chromosomechromosome:GRCh38:1:1:248956422:1 REF

nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn

nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn

.....

ttgggctggggcctggccatgtgtatttttttaaatttccactgatgattttgctgcatg

gccggtgttgagaatgactgCGCAAATTTGCCGGATTTCCTTTGCTGTTCCTGCATGTAG

TTTAAACGAGATTGCCAGCACCGGGTATCATTCACCATTTTTCTTTTCGTTAACTTGCCG

.....

nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn

# 通常要求序列名字行简单为好,而且一般加chr作为开头

# 给第一行添加chr标签,并去掉其他多余信息

# 下面的写法复杂了些,是为了避免给已经有chr信息的名字再加一次

# 帮助无脑操作

sed 's/^>([^chr])/>chr1/' Homo_sapiens.GRCh38.dna.primary_assembly.fa |cut -f 1 -d ' ' > GRCh38.fa 3. 基因组注释文件gff和gtf

gff 全称 General featureformat ,主要是用来注释基因组。 gtf 全称 Gene transfer format ,主要是用来对基因进行注释。两者均是一个9列的基因信息注释文件,前8列的信息几乎一样,区别在于第9列。具体可见历史推文 NGS基础 - GTF/GFF文件格式解读和转换 在此不再赘述。

从ensemble下载的 gtf 文件前5行一般是以 # 开头的注释信息,后续分析中用不上需要去除,同时需要给第一列添加 chr 标签(与基因组序列一致),可通过下面的命令对文件进行加工:

# grep 匹配查询 -v 输出不匹配的行

gunzip Homo_sapiens.GRCh38.94.gtf.gz -c |grep -v '^#' | sed '/^[^chr]/ s/^/chr/' >GRCh38.gtf 4. bed文件

分析过程中的bed文件一般代表区域信息,如表示 Peak 位置的 bed 文件,表示基因注释的 bed12 文件。

表示基因注释时,gtf/gff和bed文件的区别

1)gtf/gff文件一行表示一个 exon/CDS 等子区域,多行联合表示一个gene;bed文件一行表示一个gene;

2)gtf文件中碱基位置定位方式是 1-based ,而bed中碱基定位方式是 0-based ,如下图所示。

bed文件每一行对应信息

必须包含的3列信息:

1)chrom:染色体名字 (e.g.chr3, chrY, chr2_random或者scaffold10671)。

2)chromStart:基因在染色体或scaffold上的起始位置(0-based)。

3)chromEnd:基因在染色体或scaffold上的终止位置 (前闭后开)。

可选的9列信息:

4)name:bed文件的行名。

5)score:本条基因在注释数据集文件中的评分(0-1000),在Genome Browser中会根据不同区段的评分显示对应的阴影强度(评分越高灰度越高)。

6)strand:链的方向 + 、 - 或 . ( . 表示不确定链的方向)

7)thickStart:CDS区(编码区)的起始位置,即起始密码子的位置。

8)thickEnd:The endingposition at which the feature is drawn thickly (for example the stop codon ingene displays).

9)itemRgb:RGB颜色值(如:255,0,0),方便在GenomeBrowser中查看。

10)blockCount:bed行中外显子的数目。

11)blockSizes: 逗号 分割的列,数目与blockCount值对应,每个数表示对应外显子的碱基数。

12)blockStarts: 逗号 分割的列,数目与blockCount值对应,每个数表示对应外显子的起始位置(数值是相对ChromStart计算的)。

5. sam和bam文件

sam 文件全称The SequencingAlignment/Map Format,是Alignment/Map步骤bwa/STAR/HISAT2等软件对结果的标准输出文件, 用于存储reads比对到参考基因组的比对结果,是一个纯文本格式,文件一般较大。为了节省硬盘存储,一般使用其高效压缩的二进制格式 bam 文件。

利用 samtools view 的 -b 参数就能把 sam 文件转为 bam 文件。

1)sam文件查看方式

在linux终端直接用 less 即可进行查看;

2)bam文件查看方式

需要借助 samtools view 工具进行查看

samtools view filename.bam | less -S

samtools view -h filename.bam | less -S

NGS分析中大多数文件都是由 header 和 record 两部分组成,加上 -h 参数后可以将header显示出来,默认是不显示的。

@HD VN:1.5 SO:coordinate

@SQ SN:chr1 LN:248956422

@SQ SN:chr10 LN:133797422

......

@SQ SN:chrKI270392.1 LN:971

@SQ SN:chrKI270394.1 LN:970

@RG ID:BH_H3K27ac_2 LB:BH_H3K27ac_2 SM:BH_H3K27ac_2

@PG ID:bwa PN:bwa VN:0.7.15-r1140 CL:bwa mem -M -t 8 -R@RGtID:BH_H3K27ac_2tLB:BH_H3K27ac_2tSM:BH_H3K27ac_2tPL: /MP

@PG ID:MarkDuplicates VN:1.138(aa51703435dc6a423013e74e56b0b68405facd79_1439324166) CL:picard.sam.markduplicates.

K00141:244:HVL3NBBXX:8:2119:27235:3145399 chr1 10016 32 115M = 10016 115 CCCTAACCCTAACCCTAACCC

K00141:244:HVL3NBBXX:8:2119:27235:31453147 chr1 10016 32 115M = 10016 -115 CCCTTACCCTAACCCTAACCC

header内容 @HD:是必须的标准文件头,包含版本信息; @SQ:参考序列染色体名字和长度信息 (SN:scaffold name; LN: length); @RG:重要read group信息,通常包含测序平台,测序文库和样本ID等信息,分析时用于区分不同样本(重测序时用到); @PG:生成此文件的操作过程和参数信息 ( program )。

record内容 每一行就是一条read比对上参考基因组的信息,总共12列,用 tab 键分割。# 1. read名称;

# 2. 比对信息位flag值;

# 3. 参考序列染色体编号;

# 4. 5′端起始位置;

# 5. MAPQ:mapping quality,描述比对的质量,数字越大,特异性越高;

# 6. CIGAR字符串,记录插入、删除、错配等信息;

# 7. 配对read所比对到的染色体,仅双端测序的数据才有;

# 8. 配对read所比对到的位置,仅双端测序的数据才有;

# 9. 插入片段的长度,仅双端测序的数据才有;

# 10. read序列;

# 11. read质量值;

# 12. 12列以后的信息都是metadata,程序用标记

sam文件中第二列 flag信息很重要,下面做进一步解释。

利用samtools flagstat工具可以查看bam文件中比对的flag信息,并输出比对的统计结果。

samtools flagstat *.bam

flag一共有12个标签,使用 16 进制数表示,每个标签值是 2^(n-1) ,其中 n<=12 ,每个值有其对应的唯一解释含义,具体见下图。

你会发现随机挑选几个值做加和运算,他们的结果都是唯一的,所以在bam文件中第二列flag的值代表这条序列符合下图所示条件的值的和。

所以根据这个值我们可以判断这条序列是双端测序还是单端测序;如果是双端测序,reads来自左端还是右端。比如 65 只能是 1 和 64 组成,代表这个序列是双端测序,而且是 read1 。

每次转换很头疼?别担心,网上有很多解码flag含义的在线工具,如 SAM Format (网址:https://www.samformat.info/sam-format-flag)

输入 flag 的值,解析工具会返回匹配上的信息。如果是单端测序, flag 值都是偶数。

如果是双端测序,工具会帮我们把另外一端序列的 flag 值返回,并且将这些数字情况大致分为 5 类,在右侧进一步显示这个值对应的含义。

6. wig、bigwig和bedgraph文件

上述 bam 和 sam 文件可以帮助我们探索 reads 在参考基因组中的比对情况,导入基因组浏览器查看比对状态和突变信息。而 wiggle (简称 wig )、 bigwig (简写 bw )以及 bedgraph (简写 bdg )只包含区域和区域的覆盖度信息,文件更小,用于可视化更方便,可以导入基因组浏览器(Genome Browser)中进行可视化,以查看reads在参考基因组各个区域的覆盖度并检测测序深度。这几个文件在 ChIP-seq数据分析 Call Peak 阶段会生成,可以利用 IGV 等工具进行可视化,方便查看组蛋白修饰的程度。

wiggle :展示区域的密度或强度信息,如 GCpercent , probability scores , and tranome data .variableStep chrom=chr2

300701 12.5

300702 12.5

300703 12.5

300704 12.5

300705 12.5 fixedStep chrom=chr3 start=400601 step=100span=5

11

22

33

bedGraph : bed 与 wig 的结合,更省空间和灵活,展示信息与 wig 类似。(bedGraph的格式一般有四列,Chr、start、end和value,并且坐标是以 0为起始左闭右开 )chromA chromStartA chromEndA dataValueA

chromB chromStartB chromEndB dataValueB

bigWig : wig文件的二进制压缩格式,可通过 wigToBigWig 工具转换

推荐大家阅读UCSC官网对这几个文件的详细解释:

wiggle(WIG):https://genome.ucsc.edu/goldenPath/help/wiggle.html

bedGraph:https://genome.ucsc.edu/goldenPath/help/bedgraph.html

bigWig:http://genome.ucsc.edu/goldenPath/help/bigWig.html

赞”

责任编辑:

linux怎么查看一个bam文件,生信分析过程中这些常见文件的格式以及查看方式你都知道吗?...相关推荐

  1. 生信分析过程中这些常见文件(fastq/bed/gtf/sam/bam/wig)的格式以及查看方式你都知道吗?

    生信分析过程中,会与很多不同格式的文件打交道,除了原始测序数据fastq之外,还需要准备基因组文件fasta格式和基因注释文件gtf格式.在分析的过程中还会有众多中间文件的生成,如bed.bed12. ...

  2. 生信分析过程中这些常见文件的格式以及查看方式你都知道吗?

    生信分析过程中,会与很多不同格式的文件打交道,除了原始测序数据fastq之外,还需要准备基因组文件fasta格式和基因注释文件gtf格式.在分析的过程中还会有众多中间文件的生成,如bed.bed12. ...

  3. 文件传输服务器异常,文件在上传过程中发生异常 文件在上传过程前,安全组...

    文件在上传过程前,安全组件计算散列值失败是什么意思 需要把文件上传页面的网址添加到可信站点,具体操作步骤如下: 天黑路会滑,社会太复杂,还有什么东西比人心更可怕, 首先打开系统的internet选项卡 ...

  4. 生信分析之R语言常用R包一步下载

    系列文章目录 生信分析第一步:R语言基础应用以及数据前处理 文章目录 R包下载 使用GEOquery包下载原始数据 芯片数据读取 GEOquery 下载并读取数据 提取GEO表达矩阵 提取GEO注释信 ...

  5. 生信分析常用软件记录

    20190727,在学习二代分析的过程中,只是根据别人已经建好的轮子照抄照搬,并不能真正理解每一步为什么要用这个软件,以及软件之间的区别.因此今天记录一些生信分析过程(主要是二代测序)中常用的软件,若 ...

  6. 生信分析矫正P值_生物信息分析:从入门到精(fang)通(qi) 第1期FASTQ! BAM! VCF! 傻傻分不清楚...

    生信小白:肉哥,上次听完你的介绍,我满脑子跟这张图片一样...凌乱?!我们为什么不一次性把整本书读取了,非要把这本书撕碎呢? 西克孚肉:这主要受限于技术,测序仪一次只能读取几百.几千.几万个碱基,这与 ...

  7. 一览生信分析的各种工作环境—Linux子系统、双系统、虚拟机和Docker

    " 本文围绕计算机操作系统,概述了当下各种生信分析的工作环境." 一文掌握Conda软件安装:虚拟环境.软件通道.加速solving.跨服务器迁移 01 - Linux子系统 Wi ...

  8. 生信技能04 - 生信分析所需致病SNP位点Excel文件制作教程

    致病SNP位点Excel文件制作教程 在生信分析项目中,有遗传相关的项目会涉及到SNP位点的查找,将该SNP位点文件作为程序输入文件,本文将介绍如果通过NCBI查看目标基因的致病SNP位点,并制作成可 ...

  9. 生信分析流程构建的几大流派

    导言 构建生信分析流程是生物信息学从业人员必备的技能之一,对该项能力的评估常常是各大公司招录人员的参考项目之一. 在进行 ngsjs 项目时,我做了一张示意图来表示一些高通量测序数据分析项目重现性的要 ...

最新文章

  1. 帖子删除显示帖子名称?
  2. 设计模式(面向对象)设计的七大原则
  3. 新页面,简单的tree视图写法
  4. 你的目的是什么是谁指使你_电视剧《谁说我结不了婚》第25-27集剧情:魏书帮程璐搞定投资人...
  5. linux进程热更新 go,Golang热更新原理
  6. SQL Server中的文件流
  7. Python的条件判断与循环样例
  8. Grails 基础环境搭建及HelloWorld
  9. 解码H264视频出现花屏或马赛克的问题
  10. java 防止js注入----ESAPI结合Top10安全开发实战
  11. chrome 如何官网下载谷歌浏览器离线安装包
  12. 【基金学习】小白基金学习记录-从入门到实践(一)
  13. 用AI一夜看尽长安花?华为云喊你来打卡
  14. 狂野飙车4java游戏音乐_狂野飙车8赛车背景音乐名称大全
  15. 不平衡数据集评价指标及常用解决方法
  16. tableau常规操作
  17. 计算机图形学14:三维图形的投影变换
  18. android接收红外传感器发送的脉冲信号,esp8266_sdk_ir_rx_tx红外遥控示例
  19. python 可视化分析平台_python 数据分析数据可视化工具matplotlib
  20. 多账号统一登录实现方案

热门文章

  1. 吞吐量达到瓶颈后下降_TD-HSDPA空口吞吐量或成瓶颈-通信/网络-与非网
  2. windows的磁盘操作之八——格式化分区的思考
  3. 测试通达信终端数据接口
  4. java websphere mq_如何在java中使用WebSphere MQ
  5. golang logrus日志框架
  6. 基于 java springboot+layui仓库管理系统设计和实现
  7. 文件管理系统(2/3)FastDFS搭建分布式文件管理系统
  8. 罗斯蒙特3051S1CD3A2E12A1AB4D2M5变送器
  9. 金正恩选艳舞团欢乐组 女孩怕被相中自残
  10. 基于JAVA基于web的公益募捐网站计算机毕业设计源码+系统+mysql数据库+lw文档+部署