2022-03-03 snp gff提取注释信息

查看第9列有哪些注释信息:

awk 'BEGIN{FS=OFS="\t"} {split($9, a, ";"); for(i in a){split(a[i], b, "="); if(++c[b[1]]==1) print b[1]}}' XXX.gff


awk -F "\t" '{print $9}' XXX.gff | cat -n | less


下面使用awk进行注释信息提取(以提取QTL_ID、Name、VTO_name、breed等信息为例):


awk 'BEGIN{FS=OFS="\t"} {print $0}' 1.gff | sed 's/;/\t/g' | awk 'BEGIN{FS=OFS="\t"} {for(i=1; i<=NF; i++){split($i, a, "=");b[a[1]]=a[2]}} {print b["QTL_ID"],b["Name"],b["VTO_name"],b["Abbrev"],b["PUBMED_ID"],b["trait_ID"],b["Trait"],b["Coord_src"],b["breed"],b["CMO_name"],b["gene_ID"],b["gene_IDsrc"],b["Test_Base"],b["Additive_Effect"],b["Variance"],b["PTO_name"],b["F-Stat"],b["Dominance_Effect"],b["Likelihood_Ratio"],b["LOD-score"],b["LS-means"],b["Bayes-value"],b["Model"],b["Map_Type"],b["Significance"],b["P-value"]}{split("", b, ":")}'


awk 'BEGIN{FS=OFS="\t"} {print $0}' 1.gff | sed 's/;/\t/g' | awk 'BEGIN{FS=OFS="\t"} {for(i=1; i<=NF; i++){split($i, a,"=");b[a[1]]=a[2]"="a[3]}} {print b["QTL_ID"],b["Name"],b["VTO_name"],b["Abbrev"],b["PUBMED_ID"],b["trait_ID"],b["Trait"],b["Coord_src"],b["breed"],b["CMO_name"],b["gene_ID"],b["gene_IDsrc"],b["Test_Base"],b["Additive_Effect"],b["Variance"],b["PTO_name"],b["F-Stat"],b["Dominance_Effect"],b["Likelihood_Ratio"],b["LOD-score"],b["LS-means"],b["Bayes-value"],b["Model"],b["Map_Type"],b["Significance"],b["P-value"]}{split("", b, ":")}'


awk 'BEGIN{FS=OFS="\t"} {print $0}' 1.gff | sed 's/;/\t/g' | awk 'BEGIN{FS=OFS="\t"} {for(i=1; i<=NF; i++){split($i, a, "=");b[a[1]]=a[2]a[3]}} {print $1,"\t",$2,"\t",$3,"\t",$4,"\t",$5,"\t",$6,"\t",$7,"\t",$8,"\t",b["QTL_ID"],b["Name"],b["VTO_name"],b["Abbrev"],b["PUBMED_ID"],b["trait_ID"],b["Trait"],b["Coord_src"],b["breed"],b["CMO_name"],b["gene_ID"],b["gene_IDsrc"],b["Test_Base"],b["Additive_Effect"],b["Variance"],b["PTO_name"],b["F-Stat"],b["Dominance_Effect"],b["Likelihood_Ratio"],b["LOD-score"],b["LS-means"],b["Bayes-value"],b["Model"],b["Map_Type"],b["Significance"],b["P-value"]}{split("", b, ":")}'

注:输出rs列的信息

awk 'BEGIN{FS=OFS="\t"} {print $0}' 1.gff | sed 's/;/\t/g' | awk 'BEGIN{FS=OFS="\t"} {for(i=1; i<=NF; i++){split($i, a,"=");b[a[1]]=a[2]"="a[3]}} {print b["Coord_src"]}{split("",b, ":")}'

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 看下第三列: awk '$3 == "gene"' gencode.vM19.chr_patch_hapl_sca...
    苏牧传媒阅读 12,763评论 6 7
  • 生成连续的自然数 seq 1 20 #输出是1,2……20,分隔符是换行符seq -s "," 1 20 #输出是...
    wo_monic阅读 3,783评论 0 7
  • 转载 原文的排版和内容都更加友好,并且详细,我只是在这里贴出了一部分留作自己以后参考和学习,如希望更详细了解AWK...
    XKirk阅读 8,496评论 2 25
  • linux资料总章2.1 1.0写的不好抱歉 但是2.0已经改了很多 但是错误还是无法避免 以后资料会慢慢更新 大...
    数据革命阅读 14,338评论 2 33
  • awk介绍awk变量printf命令:实现格式化输出操作符awk patternawk actionawk数组aw...
    哈喽别样阅读 5,538评论 0 4

友情链接更多精彩内容