This is an R Markdown document for the 2D maps pipeline.

The input files required are:

  1. config.csv

  2. miRNA/mRNAs in separate csv files

Sample config.csv is present in: DSRG4new1/2Dmaps/files

conf = read.csv("config.csv", header = F)

print(conf)
##                       V1                    V2
## 1             miRNA_file            miRNAs.csv
## 2              mRNA_file invasion_genelist.csv
## 3        correlationWith                  both
## 4        correlationType              negative
## 5 correlationCoefficient                   0.5
#miRNA_file: filename.csv for miRNAs of interest
#mRNA_file: filename.csv for mRNAs/proteins of interest
#correlationWith: filtering criteria for miRNA correlation with either "mRNA", "protein", "both" or "either".
#correlationType: either "postive" or "negative"
#correlationCoefficient: correlation coefficient threshold

#The meta matrix file is placed at: DSRG4new1/2Dmaps/files
data =  readRDS("miRNA-mRNA-protein7.rds")
print(paste0("Total interactions: ", nrow(data)))
## [1] "Total interactions: 640019"
if(is.na(conf[1,2])){
  print("No miRNAs of interest provided")
} else {
  miRNAs = read.csv(as.character(conf[1,2]))
  data =  subset(data, (data$hsa_mir %in% miRNAs[,1]))
  print(paste0("miRNA filtered interactions: ", nrow(data)))
}
## [1] "miRNA filtered interactions: 1184"
if(is.na(conf[2,2])){
  print("No mRNAs of interest provided")
} else {
  mRNAs = read.csv(as.character(conf[2,2]))
  data =  subset(data, (data$mRNA %in% mRNAs[,1]) | (data$protein %in% mRNAs[,1]))
  print(paste0("mRNA/protein filtered interactions: ", nrow(data)))
}
## [1] "mRNA/protein filtered interactions: 158"
if(is.na(conf[3,2])){
  print("No correlation filtering done")
} else {
    if(conf[3,2] == "mRNA"){
        if(conf[4,2] == "negative"){
            if(is.na(conf[5,2])){
                data = subset(data, data$correlationmRNA < 0)
            } else {
                data = subset(data, data$correlationmRNA < as.numeric(conf[5,2]))
            }
        } else {
            if(is.na(conf[5,2])){
                data = subset(data, data$correlationmRNA > 0)
            } else {
                data = subset(data, data$correlationmRNA > as.numeric(conf[5,2]))
            }
        }
        print(paste0("mRNA correlation filtered interactions: ", nrow(data)))
    }  
    
    if(conf[3,2] == "protein"){
        if(conf[4,2] == "negative"){
            if(is.na(conf[5,2])){
                data = subset(data, data$correlationProtein < 0)
            } else {
                data = subset(data, data$correlationProtein < as.numeric(conf[5,2]))
            }
        } else {
            if(is.na(conf[5,2])){
                data = subset(data, data$correlationProtein > 0)
            } else {
                data = subset(data, data$correlationProtein > as.numeric(conf[5,2]))
            }
        }
        print(paste0("protein correlation filtered interactions: ", nrow(data)))
    }
    
    if(conf[3,2] == "both"){
        if(conf[4,2] == "negative"){
            if(is.na(conf[5,2])){
                data = subset(data, (data$correlationProtein < 0) & (data$correlationmRNA < 0))
            } else {
                data = subset(data, (data$correlationProtein < as.numeric(conf[5,2])) & (data$correlationmRNA < as.numeric(conf[5,2])))
            }
        } else {
            if(is.na(conf[5,2])){
                data = subset(data, (data$correlationProtein > 0) & (data$correlationmRNA > 0))
            } else {
                data = subset(data, data$correlationProtein > as.numeric(conf[5,2]) & (data$correlationmRNA > as.numeric(conf[5,2])))
            }
        }
        print(paste0("mRNA + protein correlation filtered interactions: ", nrow(data)))
    }
  
  if(conf[3,2] == "either"){
        if(conf[4,2] == "negative"){
            if(is.na(conf[5,2])){
                data = subset(data, (data$correlationProtein < 0) | (data$correlationmRNA < 0))
            } else {
                data = subset(data, (data$correlationProtein < as.numeric(conf[5,2])) | (data$correlationmRNA < as.numeric(conf[5,2])))
            }
        } else {
            if(is.na(conf[5,2])){
                data = subset(data, (data$correlationProtein > 0) | (data$correlationmRNA > 0))
            } else {
                data = subset(data, data$correlationProtein > as.numeric(conf[5,2]) | (data$correlationmRNA > as.numeric(conf[5,2])))
            }
        }
        print(paste0("mRNA + protein correlation filtered interactions: ", nrow(data)))
    }
}
## [1] "mRNA + protein correlation filtered interactions: 148"
data = subset(data, !is.na(data$functionalMTI))
print(paste0("Experimentally validated interactions: ", nrow(data)))
## [1] "Experimentally validated interactions: 18"
write.csv(data, file = "filteredInteractions.csv", row.names = F)