создать один PDF с данными из всех вращений цикла - PullRequest
0 голосов
/ 14 марта 2012

У меня есть следующий цикл

for (chr in paste('chr',c(seq(1,22),'X','Y'),sep='')){
.
.
pdf(sprintf ('anna.%s.pdf',chr), paper='a4')
plot(exp,control,xlim=c(0,400),ylim=c(0,400),pch=20,col='black',main='Tiles',xlab='exp',ylab 'Control')
dev.off()

write.table(exp.sorted,file="list.txt",append = TRUE ,quote = FALSE,col.names =FALSE,row.names=TRUE,sep="\t")
}

с текущим кодом цикл создаст 24 pdf для anna, и каждый из них будет иметь данные от ОДНОГО вращения цикла

Что мне нужно, так это иметь только один файл anna.pdf и график, который добавляет данные о каждом повороте цикла. НЕ стирать предыдущие данные каждого поворота цикла, а просто добавлять данные из каждого цикла, чтобы иметь один общий граф, который будет содержать данные всех вращений цикла.

Почти то, что я делаю с append = TRUE, когда я создаю таблицу и у меня есть один list.txt, где цикл просто добавляет данные из каждого поворота

Заранее спасибо

С наилучшими пожеланиями Anna

PS:

итак, если я скажу, что все в порядке?

for (chr in c(paste('chr',seq(1,22),sep=''),'chrX','chrY')){ 
anna1<-exp
anna2<-control
 .
.
.
.
pdf('anna.pdf', paper='a4')
for (chr in paste('chr',c(seq(1,22),'X','Y'),sep='')){
if(!PLOT){
  plot(exp,control,xlim=c(0,400),ylim=c(0,400),   
   pch=20,col='black',main='Tiles',xlab='exp',ylab 'Control')
   PLOT <- TRUE
} else {
   lines(names(control.table), log10(control.table), col="blue")
}
legend('topright', legend=c('ChIP', 'Control'), col=c('red','blue'), lwd=1)
}
dev.off()
.
.
.
pdf('anna.enriched.pdf',paper='a4')
for (chr in paste('chr',c(seq(1,22),'X','Y'),sep='')){
plot(exp.peaks,control.peaks,xlim=c(0,400),ylim=c(0,400),pch=20,col='black')
}
dev.off()


}

Какой из этих двух PDF-файлов является правильным? оба скрипта верны?

спасибо

С наилучшими пожеланиями Anna

1 Ответ

0 голосов
/ 14 марта 2012

Вы можете добавить данные в существующий график, используя функции точек (...) или линий (...).Поэтому вам придется создать график в первой итерации.

например что-то вроде

PLOT <- FALSE
pdf('anna.pdf', paper='a4')
for (chr in paste('chr',c(seq(1,22),'X','Y'),sep='')){
    if(!PLOT){
      plot(exp,control,xlim=c(0,400),ylim=c(0,400),   
       pch=20,col='black',main='Tiles',xlab='exp',ylab 'Control')
       PLOT <- TRUE
    } else {
       points(exp,control, ...)
    }
}
dev.off()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...