====== Fst Matrix ====== * file: matrix_FstMatrix.r * document page: 2 \\ **code:** read.table("D:/Heidi/Master/R_Daten/FstMatrix/DistanceMatrix_mic.txt", header=TRUE, skip=1 ,row.names=1, fill=TRUE ) -> Data as.matrix.data.frame(Data) -> Matrix Matrix a <- ncol(Matrix) b <- nrow(Matrix) x <- c(1:a) y <- c(1:b) library(fields) ColorRamp <- rgb( seq(1,0,length=256), # Red seq(1,0,length=256), # Green seq(1,1,length=256)) # Blue image.plot(x,y,Matrix, col=ColorRamp, main="Distance matrix: No. of different alleles (FST)", xlab="Populations", ylab="Populations", legend.lab="Number of different Allels (FST)") ===== rad data from a HTML file ===== * file: matrix_PairwiseFst_HTML.r * document page: 16 \\ **code:** #----read HTML/XML file---- whole <- readLines("D:/Heidi/Master/R_Daten/XML/PairwiseFst_HTML_geändert.html") whole x <- 1 while(x <= length(whole)){ if(whole[x] == ""){ Begin <<- x } if(whole[x] == ""){ End <<- x } x <- x + 1 } #----how much rows to read---- Data <- scan("D:/Heidi/Master/R_Daten/XML/PairwiseFst_HTML_geändert.html", skip=End-2, nlines=1) Columns <- (length(Data)) Row <- Columns #----read data row by row:---- x <- (Begin+2) n <- 1 DistanceMatrix <- as.matrix(scan("D:/Heidi/Master/R_Daten/XML/PairwiseFst_HTML_geändert.html", what=double(0), skip=x, nlines=1, nmax=n)) DistanceMatrix <- cbind(DistanceMatrix, matrix(NA, ncol=(Columns), nrow=1)) DistanceMatrix <- DistanceMatrix[,2:Columns] n <- n + 1 x <- x + 1 while(n<(Row)){ nextrow <- as.matrix(scan("D:/Heidi/Master/R_Daten/XML/PairwiseFst_HTML_geändert.html", what=double(0), skip=x, nlines=1, nmax=n)) nextrow <- cbind(t(nextrow), matrix(NA, ncol=(Columns), nrow=1)) nextrow <- nextrow[,2:Columns] DistanceMatrix <- rbind(DistanceMatrix, nextrow) n <- n + 1 x <- x + 1 } #----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.mar=4.3, legend.width=0.8, legend.lab="Number of different allels (Fst)") 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() ===== read data from a XML file ===== * file: Node auslesen_matrix_PairwiseFst.r * document page: 20 \\ **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() ===== move legend ===== * file: matrix_PairwiseFst.r * document page: 22 \\ **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()