User Tools

Site Tools


fst_matrix

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
fst_matrix [2007/12/21 13:49] heidifst_matrix [2008/07/22 13:31] (current) – external edit 127.0.0.1
Line 25: Line 25:
               ylab="Populations", legend.lab="Number of different Allels (FST)")               ylab="Populations", legend.lab="Number of different Allels (FST)")
 </code> </code>
 +
  
 ===== rad data from a HTML file ===== ===== rad data from a HTML file =====
Line 113: Line 114:
         box()         box()
 </code> </code>
 +
 +
 +===== read data from a XML file =====
 +  * file: Node auslesen_matrix_PairwiseFst.r
 +  * document page: 20
 +
 +\\
 +**code:**
 +<code>
 +#----open XML package-------------------------------------------------
 +library(XML)
 +
 +#----read data between an XML tag-------------------------------------
 +filename = "D:/Heidi/Master/R_Daten/XML/PairwiseFst_XML.xml"
 +tag = "//Fst"
 +doc = xmlTreeParse(filename, useInternal = TRUE)
 +ch = getNodeSet(doc, tag)
 +
 +subDoc = xmlDoc(ch[[1]])
 +tagData <- xpathApply(subDoc, tag, xmlValue)
 +free(subDoc)
 +#print(tagData, indent=FALSE)
 +
 +#----convert string data to a numeric matrix---------------------------
 +#----split string----
 +tagData2 <- as.character(tagData)
 +
 +tagData3 <- strsplit(tagData2, "\n")  
 +tagMatrix <- as.matrix(as.data.frame(tagData3))
 +tagMatrix <- tagMatrix[4:nrow(tagMatrix)]
 +Data <- strsplit(tagMatrix,  ")
 +
 +#----to string matrix----
 +Row <- length(Data)
 +
 +Matrix <- as.matrix(as.data.frame(Data[1]))
 +Matrix <- rbind(Matrix, matrix(NA, ncol=1, nrow=(Row-1)))
 +
 +for(n in 2:(Row)){
 +  nextrow <- as.matrix(as.data.frame(Data[n]))
 +  nextrow <- rbind(nextrow, matrix(NA, ncol=1, nrow=(Row-n)))
 +  Matrix <- cbind(Matrix, nextrow)
 +}
 +Matrix <- Matrix[5:nrow(Matrix),]
 +
 +#----to numeric matrix----
 +numericList <- as.numeric(Matrix[,1])
 +numericMatrix <- t(as.matrix(numericList))
 +
 +for(n in 2:(Row)){
 +  numericList <- as.numeric(Matrix[,n])
 +  numericMatrix <- rbind(numericMatrix, t(as.matrix(numericList)))
 +}
 +numericMatrix
 +
 +# numericTable <- as.table(numericMatrix)     
 +# numericTable
 +
 +DistanceMatrix <- numericMatrix
 +
 +#----Mirror matrix (left-right)----
 +mirror.matrix <- function(x) {
 +  xx <- as.data.frame(x);
 +  xx <- rev(xx);
 +  xx <- as.matrix(xx);
 +  xx;
 +}
 +
 +#----Rotate matrix 270 clockworks----
 +rotate270.matrix <- function(x) {
 +  mirror.matrix(t(x))
 +}
 +
 +DistanceMatrix <- rotate270.matrix(DistanceMatrix)
 +
 +#----draw matrix plot----
 +library(fields)
 +
 +  a <- ncol(DistanceMatrix)
 +  b <- nrow(DistanceMatrix) 
 +  x <- c(1:a)
 +  y <- c(1:b)
 +
 +  ColorRamp <- rgb( seq(1,0,length=256),  # Red
 +                   seq(1,0,length=256),  # Green
 +                   seq(1,1,length=256))  # Blue
 +                   
 +    image.plot(x,y,DistanceMatrix, col=ColorRamp, main="Distance matrix: No. of different allels (FST)",
 +                xlab="Population", ylab="Population", axes = FALSE, legend.lab="Number of different allels (Fst)",
 +                legend.mar=4.3, legend.width=0.8)
 +        contour(DistanceMatrix, add = TRUE)
 +        axis(1, at = c(1:a),cex.axis=0.7)
 +        axis(2, at = c(1:b), labels=c(b:1),cex.axis=0.7)
 +        box()
 +</code>
 +
 +===== move legend =====
 +  * file: matrix_PairwiseFst.r
 +  * document page: 22
 +
 +\\
 +**code:**
 +<code>
 +#----read data--------------------------------------------------------------
 +read.table("D:/Heidi/Master/R_Daten/FstMatrix/PairwiseFst_mic.txt",
 +            header=TRUE, skip=5 ,row.names=1, fill=TRUE )-> Data
 +as.matrix.data.frame(Data) -> Matrix
 +
 +a <- ncol(Matrix)
 +b <- nrow(Matrix)
 +
 +x <- c(1:a)
 +y <- c(1:b)
 +
 +#----draw plot--------------------------------------------------------------
 +library(fields)
 +ColorRamp <- rgb( seq(1,0,length=256),  # Red
 +                  seq(1,0,length=256),  # Green
 +                  seq(1,1,length=256))  # Blue
 + 
 +#----Mirror matrix (left-right)----
 +mirror.matrix <- function(x) {
 +  xx <- as.data.frame(x);
 +  xx <- rev(xx);
 +  xx <- as.matrix(xx);
 +  xx;
 +}
 +
 +#----Rotate matrix 270 clockworks----
 +rotate270.matrix <- function(x) {
 +  mirror.matrix(t(x))
 +}
 +
 +Matrix <- rotate270.matrix(Matrix)
 +
 +#----draw matrix plot----
 +image.plot(x,y,Matrix, col=ColorRamp, main="Distance matrix: No. of different alleles (FST)",
 +            xlab="Population", ylab="Population", legend.args=list( text="Number of different Allels (FST)",
 +            cex=1.0, side=4, line=2), axes = FALSE)
 +        contour(Matrix, add = TRUE)
 +        axis(1, at = c(1:a))
 +        axis(2, at = c(1:b), labels=c(b:1))  
 +        box()
 +</code>
 +
  
  
fst_matrix.1198241343.txt.gz · Last modified: 2008/07/22 13:30 (external edit)