生物信息数据格式:bed格式

2024-02-15 12:58

本文主要是介绍生物信息数据格式:bed格式,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • BED format(基因组的注释文件)
  • 基本列
  • 附加列
  • 示例
  • [Bedtools简介](https://bedtools.readthedocs.io/en/latest/index.html)
    • 下载安装
    • 演示版的bed文件 (demo.bed)
    • 我们的基因组文件(genome.txt)
    • [bedtools slop](http://bedtools.readthedocs.io/en/latest/content/tools/slop.html)
    • 与GTF的关系

BED format(基因组的注释文件)

用来描述注释的数据。BED线有3个要求的字段(基本列)和9个额外的字段(附加列)

基本列

必不可少的

  • chrom 即chrom 或者scaffold 名称

  • chromStart Feature在chrom中的起始位置(前坐标),chrom的第一个碱基的坐标是0,chromStart如果等于2,其实表示的是第三个碱基,feature包含这个碱基

  • chromEnd feature在chrom中的终止位置(后坐标),chromEnd如果等于5,其实表示的是第六个碱基之前的碱基,feature不包含5这个碱基

详细见https://bedtools.readthedocs.io/en/latest/content/general-usage.html

如下FASTA格式的序列

>chr1
ATGCTTT

对应的bed文件就是:

BED file
chr1 2 5

如果用fastaFromBed提取,那么你能得到的序列是GCT(2号到5号之前的base,第一个base是0号)

附加列

  • name #feature 的名字

  • score 0到1000的分值,如果track线在注释时属性设置为1,那么这个分值会决定现示灰度水平,数字 越大,灰度越高。下面的这个表格显示Genome Browser

  • strand 定义链的’’+” 或者”-”

  • thickStart #feature的起始

  • thickEnd #feature的终止

  • itermRgb R, G, B (eg. 255, 0, 0), 如果track line itemRgb属性是设置为’On”, 这个RBG 值将 决 定数据的显示的颜色在BED 线。

  • blockCount #exon个数

  • blockSize #每个exon的大小

  • blockStarts #以chromStart为起点的各个exon的起始点

示例

BED3
A BED file where each feature is described by chrom, start, and end

chrom    start    end
chr1    11873    14409

BED4
A BED file where each feature is described by chrom, start, end, and name

chrom    start    end    name
chr1    11873    14409    uc001aaa.3

BED5
A BED file where each feature is described by chrom, start, end, name, and score

chrom    start    end    name        score
chr1    11873    14409    uc001aaa.3    0

BED6
A BED file where each feature is described by chrom, start, end, name, score, and strand

chrom    start    end    name        score    strand
chr1    11873    14409    uc001aaa.3    0    +

BED12
A BED file where each feature is described by all twelve columns listed above

.................

Bedtools简介

下载安装

cd ~/local/app/
curl -OL  https://github.com/arq5x/bedtools2/releases/download/v2.22.0/bedtools-2.22.0.tar.gz
tar zxvf bedtools-2.22.0.tar.gz
cd bedtools2
make
ln -sf ~/local/app/bedtools2/bin/bedtools ~/bin/bedtools

演示版的bed文件 (demo.bed)

vim demo.bedKM034562    100    200    one    0    +
KM034562    400    500    two    0    -

我们的基因组文件(genome.txt)

vim genome.txt
KM034562    18959

bedtools slop

restrict the resizing to the size of the chromosome

  • 参数 -b 增加两端的长度
  • 参数 -pct :片段的长度100bp ,-b 0.1 ,会使两端的长度增加10bp
bedtools slop -i demo.bed -g genome.txt -b 10
bedtools slop -i demo.bed -g genome.txt -b 0.1 -pct 
KM034562    90    210    one    0    +
KM034562    390    510    two    0    -
  • 参数 -l 增加开始端的长度
bedtools slop -i demo.bed -g genome.txt -l 10 -r 0
KM034562    90    203    one    0    +
KM034562    390    503    two    0    -
  • 参数 -r 增加末端的长度
bedtools slop -i demo.bed -g genome.txt -l 10 -r 3
KM034562    90    203    one    0    +
KM034562    390    503    two    0    -
  • 有链特异性的运算
  • 参数 -s 对正链无影响,对于负链 -l 10 不再是增加开始端的长度,而是增加末尾端的长度,而 -r 3 不再是增加末端的长度,而是增加开始端的长度
bedtools slop -i demo.bed -g genome.txt -l 10 -r 3 -s
KM034562    90    203    one    0    +
KM034562    397    510    two    0    -
  • 参数 -b
bedtools slop -i demo.bed -g genome.txt -b 20000
KM034562    0    18959    one    0    +
KM034562    0    18959    two    0    -

示意图 :
xxxx

与GTF的关系

genomic features通常使用Browser Extensible Data (BED) 或者 General Feature Format (GFF)文件表示,用UCSC Genome Browser进行可视化比较。 Bed文件和GFF文件最基本的信息就是染色体或Contig的ID或编号,然后就是DNA的正负链信息,接着就是在染色体上的起始和终止位置数值。

两种文件的区别在于,BED文件中起始坐标为0,结束坐标至少是1,; GFF中起始坐标是1而结束坐标至少是1。

把BED转成对应的GFF
这并非是真的正确地把BED转成GFF


cat demo.bed | bioawk -c bed '{print $chrom, ".", ".", $start+1, $end, $score, $strand, ".", "." }' > demo.gff
less demo.gff
KM034562        .       .       101     200     0       +       .       .
KM034562        .       .       401     500     0       -       .       .

它与其他格式可以很好地协同工作!


bedtools slop -i demo.gff -g genome.txt -l 10 -r 0 -s
KM034562    .    .    91    200    0    +    .    .
KM034562    .    .    401    510    0    -    .    .

更多用法详见

这篇关于生物信息数据格式:bed格式的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/711449

相关文章

Go语言开发实现查询IP信息的MCP服务器

《Go语言开发实现查询IP信息的MCP服务器》随着MCP的快速普及和广泛应用,MCP服务器也层出不穷,本文将详细介绍如何在Go语言中使用go-mcp库来开发一个查询IP信息的MCP... 目录前言mcp-ip-geo 服务器目录结构说明查询 IP 信息功能实现工具实现工具管理查询单个 IP 信息工具的实现服

使用Python从PPT文档中提取图片和图片信息(如坐标、宽度和高度等)

《使用Python从PPT文档中提取图片和图片信息(如坐标、宽度和高度等)》PPT是一种高效的信息展示工具,广泛应用于教育、商务和设计等多个领域,PPT文档中常常包含丰富的图片内容,这些图片不仅提升了... 目录一、引言二、环境与工具三、python 提取PPT背景图片3.1 提取幻灯片背景图片3.2 提取

HTML5表格语法格式详解

《HTML5表格语法格式详解》在HTML语法中,表格主要通过table、tr和td3个标签构成,本文通过实例代码讲解HTML5表格语法格式,感兴趣的朋友一起看看吧... 目录一、表格1.表格语法格式2.表格属性 3.例子二、不规则表格1.跨行2.跨列3.例子一、表格在html语法中,表格主要通过< tab

Linux下如何使用C++获取硬件信息

《Linux下如何使用C++获取硬件信息》这篇文章主要为大家详细介绍了如何使用C++实现获取CPU,主板,磁盘,BIOS信息等硬件信息,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录方法获取CPU信息:读取"/proc/cpuinfo"文件获取磁盘信息:读取"/proc/diskstats"文

Python将博客内容html导出为Markdown格式

《Python将博客内容html导出为Markdown格式》Python将博客内容html导出为Markdown格式,通过博客url地址抓取文章,分析并提取出文章标题和内容,将内容构建成html,再转... 目录一、为什么要搞?二、准备如何搞?三、说搞咱就搞!抓取文章提取内容构建html转存markdown

如何自定义Nginx JSON日志格式配置

《如何自定义NginxJSON日志格式配置》Nginx作为最流行的Web服务器之一,其灵活的日志配置能力允许我们根据需求定制日志格式,本文将详细介绍如何配置Nginx以JSON格式记录访问日志,这种... 目录前言为什么选择jsON格式日志?配置步骤详解1. 安装Nginx服务2. 自定义JSON日志格式各

python dict转换成json格式的实现

《pythondict转换成json格式的实现》本文主要介绍了pythondict转换成json格式的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下... 一开始你变成字典格式data = [ { 'a' : 1, 'b' : 2, 'c编程' : 3,

一文详解SQL Server如何跟踪自动统计信息更新

《一文详解SQLServer如何跟踪自动统计信息更新》SQLServer数据库中,我们都清楚统计信息对于优化器来说非常重要,所以本文就来和大家简单聊一聊SQLServer如何跟踪自动统计信息更新吧... SQL Server数据库中,我们都清楚统计信息对于优化器来说非常重要。一般情况下,我们会开启"自动更新

Python如何获取域名的SSL证书信息和到期时间

《Python如何获取域名的SSL证书信息和到期时间》在当今互联网时代,SSL证书的重要性不言而喻,它不仅为用户提供了安全的连接,还能提高网站的搜索引擎排名,那我们怎么才能通过Python获取域名的S... 目录了解SSL证书的基本概念使用python库来抓取SSL证书信息安装必要的库编写获取SSL证书信息

Win32下C++实现快速获取硬盘分区信息

《Win32下C++实现快速获取硬盘分区信息》这篇文章主要为大家详细介绍了Win32下C++如何实现快速获取硬盘分区信息,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 实现代码CDiskDriveUtils.h#pragma once #include <wtypesbase