R: Передача имен файлов в аргумент - PullRequest
0 голосов
/ 13 октября 2018

В настоящее время работаю над диаграммами биоинформатики из списков видов, разделенных линиями.У меня есть пять покрытых генов, и я генерирую перекрытие совпадающих видов (то есть сравнения охвата рибосомного гена).

RScript VennGenSpec.R Gene1Spec Gene2Spec Gene3Spec Gene4Spec Gene5Spec Output

Сейчас я создаю пять диаграмм Венна в формате pdf, но хотел обобщить функцию, чтобы разрешить различное количество наборов видов.Как я могу создать несколько циклов, которые читают переменное количество списков?(Например, генерировать 4 набора венн, 7 комплектов, в зависимости от количества входов.)

# install venn package
# install.packages("venn")
library("venn")
# load taxa lists
args <- commandArgs(trailingOnly = TRUE)

fia<-args[1]
fib<-args[2]
fic<-args[3]
fid<-args[4]
fie<-args[5]
out<-args[6]

##get lists
a<-read.table(fia)
b<-read.table(fib)
c<-read.table(fic)
d<-read.table(fid)
e<-read.table(fie)

#set pdf output
pdf(paste(out,"pdf",sep="."))

#plot venn
venn(list(a[,1],b[,1],c[,1],d[,1],e[,1]), snames = c("G1","G2","G3","G4","G5"), counts = NULL, ellipse = FALSE, zcolor = "style", size = 15, cexsn = 1, borders = TRUE)

Пример вывода Венна: VennExample

for (i in (1:(arguments-1)) ) {
    fi[i] <-args[i]
}
else
output <-args[last]

for (i in (arguments -1) ) {
    ta[i] <-read.table(fi[i])
}

sys.call
match.call

Также требуется передатьназвания списка видов в самой диаграмме [где snames].У меня есть имена макетов, как G1 ген 1 и т. Д ... выше

batch_args <- read.table(args[1], sep=",")

for 

Я прошу прощения за более длинный пост.

1 Ответ

0 голосов
/ 13 октября 2018

Без данных для проверки кода невозможно узнать, выполняет ли следующее то, что вам нужно, но это, по крайней мере, очевидно, эквивалентно вашему коду и намного проще.

Считывает все data.frames за один раз и сохраняет их в списке, fi.Затем извлекает первый столбец каждого df и передает полученный список векторов в venn.

library("venn")

# load taxa lists
args <- commandArgs(trailingOnly = TRUE)

n <- length(args)
fi <- args[-n]
out <- args[n]

##get lists
a <- lapply(fi, read.table)
##get first column of each data.frame
a1 <- lapply(a, `[[`, 1)

#set pdf output
pdf(paste(out, "pdf", sep = "."))

#plot venn
venn(a1, 
     snames = paste0("G", seq_along(a1)), 
     counts = NULL, ellipse = FALSE, 
     zcolor = "style", size = 15, 
     cexsn = 1, borders = TRUE
     )
dev.off()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...