从gtf文件提取gene长度.md 1.3 KB


title: 从GTF文件提取Gene长度 tags: [] id: '2117' categories:

  • - 组织测序 comments: false date: 2022-07-18 18:58:48 ---

先从TCGA的数据中提取一份标准的基因长度,作为正确结果的标准,然后开始提取工作。

Shell预处理

#!/bin/bash
GFT=/home/jovyan/upload/zl_liu/star/gencode.v36.primary_assembly.annotation.gtf
 
# 提取exon出来:
awk '{if ($3=="exon") print $0}' $GFT  > exon.gtf
# 去掉 exon.gtf 文件中的双引号:
sed -i 's/"//g' exon.gtf
# 提取需要的信息到txt:
awk 'BEGIN{FS="\t ;";OFS="\t"}{print $1,$3,$4,$5,$7,$10,$5-$4+1}' exon.gtf > exon.txt
  • nano 12.sh
  • chmod +x 12.sh
  • ./12.sh && rm exon.gtf

R进行组装

library(tidyverse)
df <- read.table('exon.txt', header = F, sep = '\t', allowEscapes = T, quote = '')
df
df <- df %>% group_by(V6)
df <- df %>% summarise(length=sum(V7), chr=unique(V1), strand=unique(V5), start=min(V3), end=max(V4))
df[['width']] = df[['end']] - df[['start']]
df
write.csv(df,'gene_length_human.csv')

和TCGA结果一致,说明结果可信,且length理论上比width更好