2025.06.11【Ribo-seq】|根据注释文件获取外显子及ORF序列

文章目录

  • 一、准备材料
  • 二、提取外显子区间为BED文件
    • 1. 提取GTF中exon为BED
  • 三、用bedtools提取外显子fasta
  • 四、后续拼接外显子为ORF序列
  • 五、流程总结

一、准备材料

  1. 基因组fasta(如:genome.fa)
  2. RiboCode生成的GTF文件(如:ribocode.gtf,含ORF的exon注释)

二、提取外显子区间为BED文件

RiboCode的GTF文件每个ORF有多条exon记录。我们需要把这些exon条目提取出来,转为BED格式。

1. 提取GTF中exon为BED

这里我们使用RiboCode生成的GTF格式:

NC_000001.11    RiboCode    exon    17233   17310   .   -   .   orf_id "WASH7P_17310_16745_98"; ...

Python脚本示例:

# gtf_to_bed.py
with open("ribocode.gtf") as gtf, open("orf_exons.bed", "w") as bed:for line in gtf:if line.startswith("#"): continuefields = line.strip().split("\t")if fields[2] != "exon": continuechrom = fields[0]start = str(int(fields[3]) - 1)  # GTF是1-based闭区间,BED是0-based左闭右开end = fields[4]strand = fields[6]attrs = {kv.split(' ')[0]: kv.split(' ')[1].replace('"','').replace(';','') for kv in fields[8].split('; ') if kv}orf_id = attrs.get("orf_id", "NA")bed.write(f"{chrom}\t{start}\t{end}\t{orf_id}\t.\t{strand}\n")

运行:

python gtf_to_bed.py

三、用bedtools提取外显子fasta

确保你已安装bedtools。

bedtools getfasta -fi genome.fa -bed orf_exons.bed -s -name -fo orf_exons.fa
  • -fi genome.fa:输入基因组fasta
  • -bed orf_exons.bed:外显子区间
  • -s:考虑链向
  • -name:fasta头用bed第四列(即orf_id)

这样会得到每个外显子的fasta序列,头部格式如:

>WASH7P_17310_16745_98::NC_000001.11:17232-17310(-)
ATGCTG...

四、后续拼接外显子为ORF序列

用你之前优化的merge_exon_seq.py脚本即可,将同一orf_id的外显子按顺序拼接,得到完整的ORF核酸序列。


五、流程总结

  1. GTF转BED:提取exon条目,转为bed格式。
  2. bedtools getfasta:用bed文件和基因组fasta提取外显子序列。
  3. 拼接外显子:按orf_id分组拼接,得到完整ORF序列。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/427.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

python第48天打卡

知识点回顾: 随机张量的生成:torch.randn函数卷积和池化的计算公式(可以不掌握,会自动计算的)pytorch的广播机制:加法和乘法的广播机制 ps:numpy运算也有类似的广播机制,基本一致 作…

Day50 Python打卡训练营

知识点回顾: 1. resnet结构解析 2. CBAM放置位置的思考 3. 针对预训练模型的训练策略 a. 差异化学习率 b. 三阶段微调 现在我们思考下,是否可以对于预训练模型增加模块来优化其效果,这里我们会遇到一个问题 预训练模型的结构和权重是固定…

leetcode:42. 接雨水(秒变简单题)

题目要求 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 要求给出一列柱子,求该柱子能盛放多少雨水 解题思路: 这些柱子围城了一个“盆地”,雨水会积攒在低洼处&…

【JavaEE】-- HTTP

1. HTTP是什么? HTTP(全称为"超文本传输协议")是一种应用非常广泛的应用层协议,HTTP是基于TCP协议的一种应用层协议。 应用层协议:是计算机网络协议栈中最高层的协议,它定义了运行在不同主机上…

245. 2019年蓝桥杯国赛 - 数正方形(困难)- 递推

245. 数正方形(困难) 2019年蓝桥杯国赛 - 数正方形(困难) 标签:2019 国赛 递推 题目描述 在一个 N N N N N N 的点阵上,取其中 4 个点恰好组成一个正方形的 4 个顶点,一共有多少种不同的取…

python Day46 学习(日志Day15复习)

Q. 关于"range()" 手写笔记复习 今日学习到这里,明日继续加油!!!浙大疏锦行

深度解析 Linux 内核参数 net.ipv4.tcp_rmem:优化网络性能的关键

文章目录 引言一、认识 net.ipv4.tcp_rmem1. 最小值(min)2. 默认值(default)3. 最大值(max) 二、net.ipv4.tcp_rmem 的工作原理三、net.ipv4.tcp_rmem 的实际应用场景1. 高并发 Web 服务器2. 文件传输服务3…

商品中心—1.B端建品和C端缓存的技术文档一

大纲 1.商品中心的专业术语 2.商品中心的基本业务系统 3.商品中心整体架构设计以及运行流程 4.商品B端—商品编码生成逻辑 5.商品B端—商品核心数据模型 6.商品B端—转换建品请求数据为商品模型数据 7.商品B端—商品建品时商品编号补全与审核配置 8.商品B端—商品审核前…

Xcode 16.2 版本 pod init 报错

Xcode 版本升级到 16.2 后,项目执行 pod init 报错; ### Error RuntimeError - PBXGroup attempted to initialize an object with unknown ISA PBXFileSystemSynchronizedRootGroup from attributes: {"isa">"PBXFileSystemSynchron…

web vue 项目 Docker化部署

Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段: 构建阶段(Build Stage)&#xff1a…

LeetCode 高频 SQL 50 题(基础版)之 【高级字符串函数 / 正则表达式 / 子句】· 上

题目:1667. 修复表中的名字 题解: select user_id, concat(upper(left(name,1)),lower(right(name,length(name)-1))) name from Users order by user_id题目:1527. 患某种疾病的患者 题解: select * from Patients where con…

随机算法一文深度全解

随机算法一文深度全解 一、随机算法基础1.1 定义与核心特性1.2 算法优势与局限 二、随机算法经典案例2.1 随机化快速排序原理推导问题分析与策略代码实现(Python、Java、C) 2.2 蒙特卡罗方法计算 π 值原理推导问题分析与策略代码实现(Python…