首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >特殊.bed到.fa转换(基因组坐标/.fa序列)

特殊.bed到.fa转换(基因组坐标/.fa序列)
EN

Stack Overflow用户
提问于 2022-08-16 14:21:32
回答 1查看 58关注 0票数 0

我的目标是从基因组坐标(origin.bed)创建一个定制的蛋白质序列参考文件(origin.bed)。

(origin.bed;与染色体,起始,结束,TranscriptID,链,GeneID)

代码语言:javascript
复制
chr1    109202569       109202584       ENST00000370031.1_uORF_0        -       ENSG00000162639.11
chr1    109203584       109203617       ENST00000370031.1_uORF_0        -       ENSG00000162639.11
chr11   102188276       102188302       ENST00000263464.3_uORF_0        +       ENSG00000023445.9
chr11   10830291        10830306        ENST00000530211.1_uORF_1        -       ENSG00000110321.11
chr11   10830400        10830451        ENST00000530211.1_uORF_0        -       ENSG00000110321.11

期望的两步输出:基因组核苷酸序列文件(nucleotide.fa;0)和蛋白质序列文件(protein.fa)。

(插图;序列不适合于片段中的坐标)

代码语言:javascript
复制
>chr1:109202569-109203617(ENST00000370031.1_uORF_0)
TCACCCGGAACAGATTTTTTCCTCCTTGGATGACTCCGTCATGGACAC
>chr11:102188276-102188302(ENST00000263464.3_uORF_0)
nucleotide sequence xyz
>chr11:10830291-10830306(ENST00000263464.3_uORF_0)
nucleotide sequence xyz
>chr11:10830400-10830451(ENST00000263464.3_uORF_0)
nucleotide sequence xyz
代码语言:javascript
复制
>chr1:109202569-109203617(ENST00000370031.1_uORF_0)
SPGTDFFLLGULRHGH
>chr11:102188276-102188302(ENST00000263464.3_uORF_0)
protein sequence xyz
...

重要的一点是,具有相同TranscriptID的条目应该在蛋白质序列翻译之前连接起来。如chr1 TranscriptID条目所示,有两个坐标对(TranscriptID长度):15和33),它们应该形成一个序列。基于GeneID的级联是不可能的,因为相同的GeneID (chr11的最后两个条目)的转录is可能不同,这将导致错误的序列。此外,这些序列应该是链特异性的,因此nucleotide.fa.需要反向补充(-)链序列。

我试图获得的核苷酸序列是基于的床上工具getfasta (https://bedtools.readthedocs.io/en/latest/content/tools/getfasta.html)。然而,正如在文档中所看到的,所需的输出是不可能的,但是对于我的下游质量控制来说确实是必要的。

示例nucleotide.fa的转换在faTrans中确实很简单。因此,对于如何将nucleotide.fa.转换为origin.bed,我非常感激。您是否知道其他的软件包或转换工具是合适的?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-08-16 20:30:39

根据您链接的床头工具文档,它似乎会做您想做的事情,使用-s选项反向补充(-)链上的特性,并使用-split选项连接相同文本的外显子。

您首先需要将您的床文件转换为"BED12“格式,每记录一行,当使用-split选项运行时,便携工具getfasta期望这样做。

您可以编写自己的代码来完成此转换,或者使用类似于bed6ToBed12的脚本。下面是一个例子:

代码语言:javascript
复制
awk 'BEGIN{FS=OFS="\t"} {print $1, $2, $3, gensub(/_.*/, "", 1, $4), 0, $5}' origin.bed |\
bed6Tobed12.sh -i stdin > origin.bed12

(前面的AWK调用只是将输入文件转换为正确的BED6格式,其中字符串是第6个字段,并将文本名称提取到第四个字段中。)

在此之后,您可以运行bedtools getfasta来获取核苷酸序列:

代码语言:javascript
复制
bedtools getfasta -fi reference.fa -bed origin.bed12 -s -name -split > nucleotide.fa
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73375577

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档