Re: [R] inserting text lines in a dat frame

From: <Richard.Cotton_at_hsl.gov.uk>
Date: Wed, 6 Feb 2008 10:22:16 +0000


> I am trying to prepare a bed file to load as accustom track on the
> UCSC genome browser.
> I have a data frame that looks like the one below.
> > x
> V1 V2 V3
> 1 chr1 11255 55
> 2 chr1 11320 29
> 3 chr1 11400 45
> 4 chr2 21680 35
> 5 chr2 21750 84
> 6 chr2 21820 29
> 7 chr2 31890 46
> 8 chr3 32100 29
> 9 chr3 52380 29
> 10 chr3 66450 46
> I would like to insert the following 4 lines at the beginning:
> browser position chr1:1-10000
> browser hide all
> track type=wiggle_0 name=sample description=chr1_sample visibility=full
> variableStep chrom=chr1 span=1
> and then insert 2 lines before each chromosome:
> track type=wiggle_0 name=sample description=chr2_sample visibility=full
> vriableStep chrom=chr2 span=1
> The final result should be tab delimited file that looks like this:
> browser position chr1:1-10000
> browser hide all
> track type=wiggle_0 name=sample description=chr1_sample visibility=full
> variableStep chrom=chr1 span=1
> chr1 11255 55
> chr1 11320 29
> chr1 11400 45
> track type=wiggle_0 name=sample description=chr2_sample visibility=full
> variableStep chrom=chr2 span=1
> chr2 21680 35
> chr2 21750 84
> chr2 21820 29
> track type=wiggle_0 name=sample description=chr3_sample visibility=full
> variableStep chrom=chr3 span=1
> chr3 32100 29
> chr3 32170 45
> chr3 32240 45

#First write your preamble text to a file

preamble <- c("browser position chr1:1-10000",
              "browser hide all",
              "track type=wiggle_0 name=sample description=chr1_sample 
visibility=full",
              "variableStep chrom=chr1 span=1")
write(preamble, "myfile.txt")

#Now split your data frame up by the values in V1 x <- data.frame(V1=rep(c("chr1", "chr2", "chr3"),times=c(3,4,3)), V2=c(11255,11320,11400,21680,21750,21820,21890,32100,52380,66450),V3=c(55,29,45,35,84,29,46,29,29,46)) spx <- split(x, x$V1)

#Create lines of text to go before each piece of data frame lV1 <- levels(x$V1)
maintext <- paste("track type=wiggle_0 name=sample description=", lV1,

               "_sample visibility=full\nvariableStep chrom=", lV1,
               " span=1", sep="")

#Use a loop to write the pieces to the file for(i in 1: nlevels(x$V1))
  {
    write(maintext[i], "myfile.txt", append=TRUE)     write.table(spx[[i]], "myfile.txt", append=TRUE, sep="\t", quote=FALSE,

                col.names=FALSE, row.names=FALSE)
  }

Regards,
Richie.

Mathematical Sciences Unit
HSL



ATTENTION: This message contains privileged and confidential inform...{{dropped:20}}

R-help_at_r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code. Received on Wed 06 Feb 2008 - 10:29:25 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Wed 06 Feb 2008 - 11:30:12 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.

list of date sections of archive