生信搬运工-03-测序文件格式介绍

生信搬运工-03


一、Peak文件介绍

在进行peak calling分析时,经常会接触到以下3种peak格式

  1. narrow peaks format

  2. broad peaks fotmat

  3. gapped peaks format

peak被定义为基因组上一段reads富集的区域,核心信息是在染色体上的起始和终止位置,除此之外,还有软件对于该peak区域的打分,比如常见的pvalue, qvalue, fold_enrichment等值。

和基因组比对信息用BAM格式来存储类似,为了标准化不同peak calling软件的输出,特意制定了以上3种数据格式。这三种格式本质上都是bed文件,只不过列数不太类似。

1. Narrow Peaks Format

该格式又称之为point-source peaks format, macs2默认输出就是这种格式,是一种BED6+4的格式,列数为10列,可以上传到UCSC浏览。该文件可以直接加载到UCSC基因组浏览器。示意如下
narrowPeak format

前四列分别代表chrom, chromStart, chromEnd, name, 用于描述peak区间和名称,注意bed格式中起始位置从0开始计数。

第五列score,在macs2的输出结果中为int(-10*log10qvalue),
第六列strand,,在macs2的输出结果中为 . ,
第七列signalvalue,通常使用fold_enrichment的值,
第八列pvalue,在macs2的输出结果中为-log10(pvalue),
第九列qvalue,在macs2的输出结果中为-log10(qvalue),
第十列peak,在macs2的输出结果中为peak的中心,即summit距离peak起始位置的距离。

2. Broad Peaks Format

这种格式就是在narrow peaks format的基础上丢掉了最后一列的信息,为BED6+3的格式, 列数为9列。

3. Gapped Peaks Format

前两种格式都是由于描述连续的peak区间,适用于DNA水平上的富集区域信息的存储,比如chip_seq, ATAC_seq鉴定到的peak区间,而gapped peaks format用于描述非连续的peak区间,这里的非连续通常指的是在peak的区间内会包含多个exon区域,适用于RNA水平上的富集区域信息的存储,比如m6A_seq鉴定到的peak区间。

该格式在BED12的基础上进行延伸,演变为BED12+3的格式,列数为15列,每列的含义示意如下
GappedPeak format

前6列的含义和上述两种peak格式完全相同,后3列的含义和broad peak完全相同,为了专区表示peak区间内包含的exon信息,借鉴转录本的BED12格式,引入了以下6列

  1. thickStart

  2. thickEnd

  3. itemRgb

  4. blockCount

  5. blockSizes

  6. blockStarts

thickStart和thickEnd有点类似转录本中CDS的起始和终止位置,在存储peak信息时,通常的做法是将这两列的值和chromStart和chromEnd的值设置成相同的,itemRgb是一个RGB颜色值,比如255,0,0, 如果没有对应的颜色信息,则用0来表示。

blockCount代表该peak区间包含的exon的个数,blockSizes代表每个exon区间的长度,多个exon用逗号连接,blockStarts代表每个exon区间在基因组上的起始位置,多个exon用逗号连接。

二、Macs2 peak calling实战

MACS是一款最为流行的peak calling软件,最初是针对转录因子的chip数据来设计的,在最新版本中,也添加了对组蛋白修饰的适配。目前最新版本为v2.0,官网如下

https://github.com/taoliu/MACS

在2.0版本中提供了以下多个子命令,每个子命令和对应的功能描述如下
Macs2 suncommand
本文主要介绍macs2最经典的使用场景peak calling, 基本用法如下

macs2 callpeak \
-t ip.bam \
-c input.bam \
--outdir out_dir \
-n chip \
-g hs

-t参数指定抗体处理的样本,-c指定input样本,值得一提的是,macs支持多种格式的输入文件,除了上述代码中使用的bam格式外,还支持SAM/BED格式。

–outdir指定输出结果的目录,-n参数指定输出文件名的前缀,-g参数指定基因组的有效大小,在NGS数据中,测序reads在基因组上的覆盖度并不是100%, 而且有些重复区域的比对信息是不可信的,剩下的能够利用的区域通常只占整个基因组区域的70%到90%,这个区域的大小就是有效大小,对于常见的物种,程序内置了有效大小,我们只需要指定物种的缩写即可,如

    • hs:2.7e9
    • mm: 1.87e9
    • ce: 9e7
    • dm: 1.2e8
对于其他物种,则需要自己指定有效基因组的大小,单位为bp。 输出文件如下
chip_model.r
chip_peaks.narrowPeak
chip_peaks.xls
chip_summits.bed

model.r是一个可执行的R脚本,通过以下代码可以产生一个PDF的输出文件

Rscript chip_model.r

第一页表示peak邻近区间正负链测序分布,用于评估d这个参数值,示意如下
在这里插入图片描述
第二页是cross-correlation分析的结果,示意如下
在这里插入图片描述

后缀为xls的文件是peak的输出结果,开头的是注释信息,显示了软件调用的具体命令和参数设置,便于核查;其他的行记录了peak的区间信息,这里的起始位置采用的是从1开始计数的方式。

后缀为narrowpeak的文件是一个BED格式的文件,bed格式中起始位置从0开始计数,xls文件的起始位置-1才和bed文件一致

后缀为bed的文件为peak中心,即summit对应的bed文件,

以上就是macs2 peak calling的基本用法,更多详细的参数和用法请参考官方文档。

三、测序常见文件格式

bam/sam/cram

sam: SAM是一种序列比对格式标准, 由sanger制定,是以TAB为分割符的文本格式。主要应用于测序序列mapping到基因组上的结果表示,当然也可以表示任意的多重比对结
bam: sam文件的二进制压缩文件,可使用samtools工具查看。由于其运行速度快,所以常常使用bam而不是sam。(B取自binary)
当测序得到的fastq文件map到基因组之后,我们通常会得到一个sam或者bam为扩展名的文件。SAM的全称是sequence alignment/map format。

CRAM: fastq/fasta

fastq: 一种存储了生物序列(通常是核酸序列)以及相应的质量评价的文本格式。
fasta: 是一种基于文本用于表示核酸序列或多肽序列的格式。其中核酸或氨基酸均以单个字母来表示,且允许在序列前添加序列名及注释。

##fastq to fasta
zcat input.fastq.gz | awk 'NR%4==1{printf ">%s\n", substr($0,2)}NR%4==2{print}' > output.fa
less -S SRR5586990.fastq| paste - - - -|cut -f 1-2|tr '\t' '\n'|tr '@' '>' |less -S > SRR5586990.fasta
##统计序列条数(reads)
zcat *R1.fq.gz |grep '@'| wc –l或者zcat  *.fastq.gz | awk 'NR%4==2{c++} END{print c}'
pigz -dc input.fastq.gz | awk 'NR%4==2{c++} END{print c}'   #速度快10倍
##GC含量及碱基数目
perl -ne  'if($.%4){chomp;$count_G=$count_G+($_=~tr/G//);$count_C=$count_C+($_=~tr/C//);$cur_length=length($_);$total_length+=$cur_length;}END{print qq{total count is $total_length bp\nGC%:},($count_G+$count_C)/$total_length,qq{\n} }' input.fq

gtf/gff3/GenePred

以gencode下人类的gtf文件为例,手册页https://www.gencodegenes.org/pages/data_format.html有详细的格式说明。
GENCODE和Ensembl数据库均提供具有基因组坐标的GTF / GFF3文件,但不提供BED文件。

gtf to bed

gtf转bed,如果想要提取基因的bed文件,可以根据第三列筛选gene,之后再获取需要的信息,其中基因名,比如gene symbol信息存在第九列。
grep -P "\tgene\t" gencode.xxxxxx.gtf | \  #第三列筛选gene,(或者transcripts之类的)
	cut -f1,4,5,7,9 | \   #提取所需列
	sed 's/[[:space:]]/\t/g' | \ #空格替换制表符
	sed 's/[;|"]//g' | \   #去掉;”
	awk -F $'\t' 'BEGIN { OFS=FS } { print $1,$2-1,$3,$6,".",$4,$10,$12,$14 }' | \ #bed文件起始位置从0开始,需要减一,这里你可以选择你需要的列,一般前三列加个gene symbol那一列就够了。
	>genecode_by_gene.txt

在R中操作
rtracklayer包(R的基因组浏览器接口)
将gtf在R中转为数据框进行筛选。[或者直接对GenomicRanges对象进行操作]

gtf <- rtracklayer::import("xxxxxxxx.gtf")
library(tidyverse)
gtf %>% as_tibble() %>% 
    filter(type == "gene") %>% 
	mutate(start = start -1) %>%
    select(1:3,gene_id,gene_name) %>% 
    write_tsv("xxx.bed")

gtf to gff3,GenePred

这三个文件本质包含相同内容,GenePred table格式主要用在基因浏览器中基因预测的track。而且GenePred table格式也是从0开始,跟bed文件一样。可以使用gtf to genepred工具。

总结

原文链接:https://blog.csdn.net/weixin_43569478/article/details/108079436
原文链接:https://blog.csdn.net/weixin_43569478/article/details/108079439
原文链接:https://blog.csdn.net/weixin_45433910/article/details/109149877

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
GTF(Gene Transfer Format)和BED(Browser Extensible Data)是两种常用的基因组数据格式,用于描述基因的注释和位置信息。 GTF是由基因组浏览器(如Ensembl和UCSC)使用的一种格式,用于记录基因和转录本的注释信息。它包含多个字段,包括染色体名称、基因类型、基因的起始和终止位置等。GTF格式适用于对基因和转录本级别的信息进行注释和分析。 而BED格式则更简洁,更适合进行基因组注释信息的快速处理和分析。BED文件由至少三列组成,包括染色体名称、区域的起始和终止位置。其它可选的列可以用来提供附加的注释信息,比如基因名、功能等。 转换GTF到BED,我们可以使用bedtools工具。bedtools是一个功能强大的命令行工具集,专门用于处理和分析BED格式的数据。它提供了多种功能,如取交集、合并、排序、过滤等,能够帮助我们高效地处理基因组注释数据。 具体操作可以按照以下步骤进行: 1. 安装bedtools工具,并将其添加到系统的环境变量中。 2. 使用bedtools的命令行工具,执行以下命令: ```shell bedtools convert -i input.gtf -o output.bed -g genome_file.txt ``` 其中,`input.gtf`是待转换的GTF文件名,`output.bed`是输出的BED文件名,`genome_file.txt`是包含基因组大小信息的文件。 `< input.gtf`表示将`input.gtf`作为标准输入,`> output.bed`表示将标准输出保存到`output.bed`文件中。 `-g genome_file.txt`用于提供染色体的长度信息,格式如下: ```plaintext chr1 123456 chr2 78910 ... ``` 其中,`chr1`、`chr2`等为染色体名称,`123456`、`78910`等为对应染色体的长度。 3. 执行上述命令后,即可将GTF文件转换为BED文件。 转换完成后,我们可以使用BED文件进行后续的数据处理和分析,比如基因区域的合并、查找、统计等操作,以满足不同的研究需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值