Ended up choosing to go with a more step by step method for merging count matrices…
### set folder path to location of your kallisto outputs
folder_path <- "~/github/oyster-lnc/output/01-lncRNA-kallisto"
folders <- list.files(path = folder_path, pattern = "S\\d+[FM]$")
print(folders)
Load GraphQL package:
install.packages("ghql")
library("ghql")
Use a for loop to read in the abundance data from each folder using read.table(), and combine the data into a single count matrix using cbind():
count_matrix <- NULL
for (folder in folders) {
# specify the full file path to the abundance data
file_path <- paste0("/home/shared/8TB_HDD_02/zbengt/github/oyster-lnc/output/01-lncRNA-kallisto/", folder, "/abundance.tsv")
# read in the abundance data
data <- read.table(file_path, header = TRUE, sep = "\t")
# add the abundance data to the count matrix
count_matrix <- cbind(count_matrix, data[, "est_counts"])
}
print(count_matrix)
Add row names and column names to the count matrix:
rownames(count_matrix) <- data[, "target_id"]
colnames(count_matrix) <- gsub(".*/", "", folders)
print(count_matrix)
Save the count matrix to a file using write.table():
write.csv(count_matrix, file = "merged_kallisto.csv", row.names = TRUE)