周二洲更在编辑群@我,好玩的题目又来了~
数据详见:生信练习题:调整GFF文件中的坐标位置——by徐洲更
一直拖到今天周五,正好娱乐一下。
先大概看一下数据吧。数据大概分为2个部分:注释部分和数据主体部分(也就是我们需要处理的部分。)
因此:
- 如果是#开头的注释部分,不处理
- 如果非#开头的部分,则需要将chr8后边的起始位置数值提取出来,实现将该值与后边两个位置列进行相加-1。具体对于第一行而言,就是使得第4列的30280+25234310-1,第5列的30951+25234310-1。并且在数据处理之后,去掉chr8后边这一串
:25234310-25266151
.
对于需要处理的数据,思路也比较简单,先按照冒号(:)、短横杠(-)和tab分隔符(\t)将数据分列。分列之后,我们需要加上的数值在第2列,需要被加的值则在第6列和第7列。此外,需要排除第2列和第3列进行输出。
我们一步步来看。
首先,我们先将注释文件挑出来不处理,直接打印:
awk '{if(/^#/){print $0}}' target.gff|head
$ awk '{if(/^#/){print $0}}' target.gff|more# This output was generated with AUGUSTUS (version 3.2.3).# AUGUSTUS is a gene prediction tool written by M. Stanke (mario.stanke@uni-greifswald.de),# O. Keller, S. König, L. Gerischer and L. Romoth.# Please cite: Mario Stanke, Mark Diekhans, Robert Baertsch, David Haussler (2008),# Using native and syntenically mapped cDNA alignments to improve de novo gene finding# Bioinformatics 24: 637-644, doi 10.1093/bioinformatics/btn013# No extrinsic information on sequences given.# arabidopsis version. Using default transition matrix.# We have hints for 0 sequences and for 0 of the sequences in the input set.## ----- prediction on sequence number 1 (length = 31842, name = chr8:25234310-25266151) -----## Constraints/Hints:# (none)# Predicted genes for sequence number 1 on both strands# start gene g1# protein sequence = [MERRKVEIKRIEKKSIRQVTFSKRRNGLMEKARQLSILCESSIAVLVVSDSGKLYNSTSGDKAFCSLQISCDLLLVFS# MKRPDACLEEAKSDNVSIDFLKSLEEQLKTALSITRDKKTELMMEFVKTLQEKVSVLVFIYWPFQAMLTLESSKTPSLEITIPS]# end gene g1###
简单解释一下:
- //:表示匹配<