0

我有一个表格格式的爆炸结果。以下是前三列。第一列是查询 ID(在本例中,我们有 2 个查询;6031753 和 60317532),第二列是针对查询序列的命中,有 3 个部分

a)  swiss prot id  sp|Q10CQ1| 
b)  gene name      MAD14
c)  organism       ORYSJ

我想制作存在基因的条形图以及它们针对每个查询出现的次数。

例如对于第一个查询 (60317531)

MAD14   2 times
MAD15   1 time      
AGL8    2 time
AP1     3 time

字段:query_id subject_id %_identity

gi|60317531|gb|AAX18712.1| sp|Q10CQ1|MAD14_ORYSJ 84.21
gi|60317531|gb|AAX18712.1| sp|P0C5B1|MAD14_ORYSI 83.40
gi|60317531|gb|AAX18712.1| sp|Q6Q9I2|MAD15_ORYSJ 68.91
gi|60317531|gb|AAX18712.1| sp|Q42429|AGL8_SOLTU 57.20
gi|60317531|gb|AAX18712.1| sp|O22328|AGL8_SOLCO 58.00
gi|60317531|gb|AAX18712.1| sp|Q41276|AP1_SINAL 65.79
gi|60317531|gb|AAX18712.1| sp|D7KWY6|AP1_ARALL 65.79
gi|60317531|gb|AAX18712.1| sp|Q8GTF4|AP1C_BRAOB 64.21
gi|60317532|gb|AAX18713.1| sp|B4YPV4|AP1C_BRAOA 64.21
gi|60317532|gb|AAX18713.1| sp|Q96355|1AP1_BRAOT 64.21
gi|60317532|gb|AAX18713.1| sp|P0DI14|AP1_BRARP   

在条形图中,x 轴应该是基因,y 轴应该是频率,查询 ID 应该是图表的标题。

有什么自动的方法可以做到这一点吗?我有大约 40,000 个查询和大约 100 个针对单个文件中的每个查询的命中。

4

1 回答 1

0

第 1 步:使用以下命令从输出文件中提取第二列:

awk '{print$2}'

Step2:然后在vim编辑器中打开文件,输入以下命令:

:%s!*..*_!!g

步骤 3:使用此文件绘制 R。

data <- read.table("ur_file_name.txt", header=F, sep=" ")
barplot(data$V2, xlab="Genes", ylab="Frequency", main="Query ID")
于 2016-01-14T22:11:06.903 回答