从ensembl提取intron序列 更新中

从gff3提取intron的坐标信息:

# 提取mRNA和exon信息:

awk '{if ($3 == "mRNA" ) print $0}' Homo_sapiens.GRCh38.94.gff3 > mRNA.gff3

awk '{if ($3 == "exon" ) print $0}' Homo_sapiens.GRCh38.94.gff3 > exon.gff3

# 分别提取正负链的信息到bed:

awk 'BEGIN{FS="\t|:|;|=";OFS="\t"} {if($7=="+") print "chr"$1,$4,$5,$14,$16,$7,$11}' mRNA.gff3 | awk -F '\t' -v OFS='\t' 'gsub(/-[0-9]+/,"",$5)' > mRNA.+.bed

awk 'BEGIN{FS="\t|:|;|=";OFS="\t"} {if($7=="-") print "chr"$1,$4,$5,$14,$16,$7,$11}' mRNA.gff3 | awk -F '\t' -v OFS='\t' 'gsub(/-[0-9]+/,"",$5)' > mRNA.-.bed

awk 'BEGIN{FS="\t|:|;|=";OFS="\t"} {if($7=="+") print "chr"$1,$4,$5,$11,"rank="$23,$7}' exon.gff3 > exon.+.bed

awk 'BEGIN{FS="\t|:|;|=";OFS="\t"} {if($7=="-") print "chr"$1,$4,$5,$11,"rank="$23,$7}' exon.gff3 > exon.-.bed

# 取mRNA的exon补集:

bedtools subtract -a mRNA.+.bed -b exon.+.bed > intron.+.bed

bedtools subtract -a mRNA.-.bed -b exon.-.bed > intron.-.bed

# 取uniq的内含子坐标:

cat intron.+.bed intron.-.bed | sort -k1,1 -k2,2n | awk '{if($2!=start || $3!=end)print; start=$2;end=$3}'> intron.bed

# 构建成dict文件:

awk -v OFS='\t' '{if($6=="+") print $7,"intron",$1":"$2".."$3,$1,$2,$3,$6,".","intron:xxx",$4,$4","$7,$3-$2; else print $7,"intron",$1":complement("$2".."$3")",$1,$3,$2,$6,".","intron:xxx",$4,$4","$7,$3-$2}' intron.bed | awk -v OFS='\t' 'gsub(/chr/,"",$3)' > intron.dict

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 慢慢看,憋着急!很有用! 前言: 首先呢,在你的Linux系统中新建一个文件,Thanos.txt(紫薯侠赐予你力...
    刘小泽阅读 3,331评论 6 33
  • 转载 原文的排版和内容都更加友好,并且详细,我只是在这里贴出了一部分留作自己以后参考和学习,如希望更详细了解AWK...
    XKirk阅读 3,296评论 2 25
  • 本章主要学习内容awk介绍 awk基本用法 awk变量 awk格式化 awk操作符 awk条件判断 a...
    楠人帮阅读 1,309评论 0 8
  • awk:报告生成器,格式化文本输出 内容: awk介绍 awk基本用法 awk变量 awk格式化 awk操作符 a...
    BossHuang阅读 1,476评论 0 9
  • awk使用说明 awk是行处理器: 相比较屏幕处理的优点,在处理庞大文件时不会出现内存溢出或是处理缓慢的问题,通常...
    好好学习的蜗牛阅读 511评论 0 2