annotate TableMerge/tablemerge_script.R @ 2:fb42f8b52942 draft default tip

Uploaded
author melpetera
date Thu, 14 Nov 2019 15:20:52 +0000
parents a97044d8dd40
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
a97044d8dd40 version 1.0.1
melpetera
parents:
diff changeset
1 ################################################################################################
a97044d8dd40 version 1.0.1
melpetera
parents:
diff changeset
2 # TABLE MERGE #
a97044d8dd40 version 1.0.1
melpetera
parents:
diff changeset
3 # #
a97044d8dd40 version 1.0.1
melpetera
parents:
diff changeset
4 # User: Galaxy #
a97044d8dd40 version 1.0.1
melpetera
parents:
diff changeset
5 # Starting date: 16-04-2015 #
a97044d8dd40 version 1.0.1
melpetera
parents:
diff changeset
6 # V-0.1: First version of merge code #
a97044d8dd40 version 1.0.1
melpetera
parents:
diff changeset
7 # V-0.2: Addition of data check and handling of special characters #
a97044d8dd40 version 1.0.1
melpetera
parents:
diff changeset
8 # #
a97044d8dd40 version 1.0.1
melpetera
parents:
diff changeset
9 # #
a97044d8dd40 version 1.0.1
melpetera
parents:
diff changeset
10 # Input files: dataMatrix ; Metadata file #
a97044d8dd40 version 1.0.1
melpetera
parents:
diff changeset
11 # Output files: dataMatrix ; Metadata file #
a97044d8dd40 version 1.0.1
melpetera
parents:
diff changeset
12 # #
a97044d8dd40 version 1.0.1
melpetera
parents:
diff changeset
13 # Dependencies: RcheckLibrary.R ; miniTools.R #
a97044d8dd40 version 1.0.1
melpetera
parents:
diff changeset
14 # #
a97044d8dd40 version 1.0.1
melpetera
parents:
diff changeset
15 ################################################################################################
a97044d8dd40 version 1.0.1
melpetera
parents:
diff changeset
16
a97044d8dd40 version 1.0.1
melpetera
parents:
diff changeset
17 # Parameters (for dev)
a97044d8dd40 version 1.0.1
melpetera
parents:
diff changeset
18 if(FALSE){
a97044d8dd40 version 1.0.1
melpetera
parents:
diff changeset
19 DM.name <- "dataMatrix_CleanIons_CleanEch.txt"
a97044d8dd40 version 1.0.1
melpetera
parents:
diff changeset
20 meta.name <- "sampleMetadata_CleanEch.txt"
a97044d8dd40 version 1.0.1
melpetera
parents:
diff changeset
21 metype <- "sample"
a97044d8dd40 version 1.0.1
melpetera
parents:
diff changeset
22 output <- "Combined_${Metadata_in.name}"
a97044d8dd40 version 1.0.1
melpetera
parents:
diff changeset
23 }
a97044d8dd40 version 1.0.1
melpetera
parents:
diff changeset
24
a97044d8dd40 version 1.0.1
melpetera
parents:
diff changeset
25
a97044d8dd40 version 1.0.1
melpetera
parents:
diff changeset
26
a97044d8dd40 version 1.0.1
melpetera
parents:
diff changeset
27 tab.merge <- function(DM.name,meta.name,metype,output){
a97044d8dd40 version 1.0.1
melpetera
parents:
diff changeset
28 # This function allows to merge the dataMatrix with one metadata table.
a97044d8dd40 version 1.0.1
melpetera
parents:
diff changeset
29 #
a97044d8dd40 version 1.0.1
melpetera
parents:
diff changeset
30 # Parameters:
a97044d8dd40 version 1.0.1
melpetera
parents:
diff changeset
31 # - DM.name, meta.name: dataMatrix and metadata files' access respectively
a97044d8dd40 version 1.0.1
melpetera
parents:
diff changeset
32 # - metype: "sample" or "variable" depending on metadata content
a97044d8dd40 version 1.0.1
melpetera
parents:
diff changeset
33 # - output: output file's access
a97044d8dd40 version 1.0.1
melpetera
parents:
diff changeset
34
a97044d8dd40 version 1.0.1
melpetera
parents:
diff changeset
35
a97044d8dd40 version 1.0.1
melpetera
parents:
diff changeset
36 # Input --------------------------------------------------------------
a97044d8dd40 version 1.0.1
melpetera
parents:
diff changeset
37
a97044d8dd40 version 1.0.1
melpetera
parents:
diff changeset
38 DM <- read.table(DM.name,header=TRUE,sep="\t",check.names=FALSE)
a97044d8dd40 version 1.0.1
melpetera
parents:
diff changeset
39 meta <- read.table(meta.name,header=TRUE,sep="\t",check.names=FALSE,colClasses="character")
a97044d8dd40 version 1.0.1
melpetera
parents:
diff changeset
40
a97044d8dd40 version 1.0.1
melpetera
parents:
diff changeset
41 # Table match check
a97044d8dd40 version 1.0.1
melpetera
parents:
diff changeset
42 table.check <- match2(DM,meta,metype)
a97044d8dd40 version 1.0.1
melpetera
parents:
diff changeset
43 check.err(table.check)
a97044d8dd40 version 1.0.1
melpetera
parents:
diff changeset
44
a97044d8dd40 version 1.0.1
melpetera
parents:
diff changeset
45 # StockID
a97044d8dd40 version 1.0.1
melpetera
parents:
diff changeset
46 meta.id <- stockID(DM,meta,metype)
a97044d8dd40 version 1.0.1
melpetera
parents:
diff changeset
47 DM<-meta.id$dataMatrix ; meta<-meta.id$Metadata ; meta.id<-meta.id$id.match
a97044d8dd40 version 1.0.1
melpetera
parents:
diff changeset
48
a97044d8dd40 version 1.0.1
melpetera
parents:
diff changeset
49
a97044d8dd40 version 1.0.1
melpetera
parents:
diff changeset
50 # Merging tables -----------------------------------------------------
a97044d8dd40 version 1.0.1
melpetera
parents:
diff changeset
51
a97044d8dd40 version 1.0.1
melpetera
parents:
diff changeset
52 if(metype=="sample"){
a97044d8dd40 version 1.0.1
melpetera
parents:
diff changeset
53 ori.DM <- DM
a97044d8dd40 version 1.0.1
melpetera
parents:
diff changeset
54 rownames(DM) <- DM[,1]
a97044d8dd40 version 1.0.1
melpetera
parents:
diff changeset
55 DM <- DM[,-1]
a97044d8dd40 version 1.0.1
melpetera
parents:
diff changeset
56 DM <- t(DM)
a97044d8dd40 version 1.0.1
melpetera
parents:
diff changeset
57 DM <- data.frame(sample=row.names(DM),DM,check.names=FALSE)
a97044d8dd40 version 1.0.1
melpetera
parents:
diff changeset
58 rownames(DM) <- NULL
a97044d8dd40 version 1.0.1
melpetera
parents:
diff changeset
59 }
a97044d8dd40 version 1.0.1
melpetera
parents:
diff changeset
60
a97044d8dd40 version 1.0.1
melpetera
parents:
diff changeset
61 comb.data <- merge(x=meta,y=DM,by.x=1,by.y=1)
a97044d8dd40 version 1.0.1
melpetera
parents:
diff changeset
62
a97044d8dd40 version 1.0.1
melpetera
parents:
diff changeset
63
a97044d8dd40 version 1.0.1
melpetera
parents:
diff changeset
64 # Output -------------------------------------------------------------
a97044d8dd40 version 1.0.1
melpetera
parents:
diff changeset
65
a97044d8dd40 version 1.0.1
melpetera
parents:
diff changeset
66 # Getting back original identifiers
a97044d8dd40 version 1.0.1
melpetera
parents:
diff changeset
67 if(metype=="sample"){
a97044d8dd40 version 1.0.1
melpetera
parents:
diff changeset
68 id.ori <- reproduceID(ori.DM,comb.data,metype,meta.id)
a97044d8dd40 version 1.0.1
melpetera
parents:
diff changeset
69 }else{
a97044d8dd40 version 1.0.1
melpetera
parents:
diff changeset
70 id.ori <- reproduceID(DM,comb.data,metype,meta.id)
a97044d8dd40 version 1.0.1
melpetera
parents:
diff changeset
71 }
a97044d8dd40 version 1.0.1
melpetera
parents:
diff changeset
72 comb.data <- id.ori$Metadata
a97044d8dd40 version 1.0.1
melpetera
parents:
diff changeset
73
a97044d8dd40 version 1.0.1
melpetera
parents:
diff changeset
74 # Writing the table
a97044d8dd40 version 1.0.1
melpetera
parents:
diff changeset
75 write.table(comb.data,output,sep="\t",quote=FALSE,row.names=FALSE)
a97044d8dd40 version 1.0.1
melpetera
parents:
diff changeset
76
a97044d8dd40 version 1.0.1
melpetera
parents:
diff changeset
77
a97044d8dd40 version 1.0.1
melpetera
parents:
diff changeset
78 } # End of tab.merge
a97044d8dd40 version 1.0.1
melpetera
parents:
diff changeset
79
a97044d8dd40 version 1.0.1
melpetera
parents:
diff changeset
80
a97044d8dd40 version 1.0.1
melpetera
parents:
diff changeset
81 # Typical function call
a97044d8dd40 version 1.0.1
melpetera
parents:
diff changeset
82 # tab.merge(DM.name,meta.name,metype,output)