В каталоге у меня есть много текстовых файлов, имена и формат файлов следующие:
SRS011061.txt
--------------------
contig SRS011061_idxstats.txt
BGC0000505 1
BGC0000505 1
SRS011090.txt
---------------------
contig SRS011090_idxstats.txt
BGC0000509 0
BGC0000509 1
SRS011271.txt
--------------------
contig SRS011271_idxstats.txt
BGC00001105 0
BGC00001105 0
Из этих файлов мне нужны результаты двух типов:
- В каждом файле, сколько генов (BG C**) присутствует, если учесть различный процент присутствия гена (1/0 - присутствие и отсутствие).
Для этого шага, Я использую:
setwd("~/Desktop/test")
filenames <- list.files(full.names=F, pattern=".txt")
output <-lapply(filenames,function(i){
t<-read.csv(i, header=T, check.names = F, sep = " ")
t$gene_count<-1
t[,2][t[,2]>0]<-1
pre_abs<-aggregate(. ~ contig, t, sum)
colnames(pre_abs)<-c("BGC_Accession","Gene_presence", "Gene_count")
pre_abs$Percentage<-(pre_abs$Gene_presence/pre_abs$Gene_count)*100
gene_pre_100_percent<-length(pre_abs$Percentage[pre_abs$Percentage>=100])
gene_pre_20_percent<-length(pre_abs$Percentage[pre_abs$Percentage>=20])
data.frame(Combinations=i,gene_pre_100_percent=gene_pre_100_percent,gene_pre_20_percent=gene_pre_20_percent)
})
Step2_TP_FP<-do.call(rbind,output)
Step2_TP_FP[,1] <- data.frame(gsub(".txt.*$", "", Step2_TP_FP[,1]))
Здесь я получаю результаты, которые показывают, что при 100% и 20% завершении генов количество генов присутствует в каждом файле.
Combinations gene_pre_100_percent gene_pre_20_percent
SRS011061 1 1
SRS011090 0 1
SRS011271 0 0
Для тех же процентных критериев я хочу сделать двоичную матрицу отсутствия присутствия. Для 100% критериев матрица должна выглядеть так:
SRS011061 SRS011090 SRS011271
BGC0000505 1 0 0
BGC0000509 0 0 0
BGC00001105 0 0 0
А для 20% критериев это должно быть:
SRS011061 SRS011090 SRS011271
BGC0000505 1 0 0
BGC0000509 0 1 0
BGC00001105 0 0 0
Как создать эти два файла матрицы после получить результаты step1? Спасибо!