By Angus
So you want to move your phyloseq object to qiime2 eh? well its a
pain in the ass but so are all things in life i suppose.
Load the packages you need
library(phyloseq)
library(tidyr)
library(dplyr)
library(ggplot2)
Load your phyloseq object, make sure it has sequence information
physeq_Key <- readRDS(file = "C:\\Users\\angus\\OneDrive - UNBC\\Angus Ball\\Lab work\\Bioinformatics\\ULTRA\\physeq_Key_merged.rds")
#I can tell it has sequence information by this
physeq_Key
phyloseq-class experiment-level object
otu_table() OTU Table: [ 48050 taxa and 52 samples ]
sample_data() Sample Data: [ 52 samples by 4 sample variables ]
tax_table() Taxonomy Table: [ 48050 taxa by 7 taxonomic ranks ]
refseq() DNAStringSet: [ 48050 reference sequences ]
Remove taxa that have zero counts in all of samples summed (why would
you have this? well I removed some samples from this analysis and merged
tables so there might be some hold over taxa)
physeq_Key <- prune_taxa(taxa_sums(physeq_Key) >0, physeq_Key)
physeq_Key
phyloseq-class experiment-level object
otu_table() OTU Table: [ 29865 taxa and 52 samples ]
sample_data() Sample Data: [ 52 samples by 4 sample variables ]
tax_table() Taxonomy Table: [ 29865 taxa by 7 taxonomic ranks ]
refseq() DNAStringSet: [ 29865 reference sequences ]
Take the OTU and taxa tables from the phyloseq object
OTU1 = as(otu_table(physeq_Key), "matrix")
OTUdf = as.data.frame(OTU1)
TAXA1 = as(phyloseq::tax_table(physeq_Key), "matrix")
TAXAdf = as.data.frame(TAXA1)
#Export sequences to .fna file
ShortRead::writeFasta(refseq(physeq_Key), "C:\\Users\\angus\\OneDrive - UNBC\\Angus Ball\\Lab work\\Bioinformatics\\ULTRA\\gemelli\\rep-seqs.fna")
#export taxa table
write.table(TAXAdf, "C:\\Users\\angus\\OneDrive - UNBC\\Angus Ball\\Lab work\\Bioinformatics\\ULTRA\\gemelli\\tax.txt", quote=FALSE, col.names=FALSE, sep="\t")
#for the boim command it needs a row of OTU names, and since the write table function wont automatically add the row names we will add them as a seperate column
OTUdf$OTU <- row.names(OTUdf) #make a column of row names
OTUdf<-relocate(OTUdf, OTU, .before = everything())#just moves the OTU column first
#export OTU table
write.table(OTUdf, "C:\\Users\\angus\\OneDrive - UNBC\\Angus Ball\\Lab work\\Bioinformatics\\ULTRA\\gemelli\\OTU.txt", quote=FALSE, col.names=TRUE, row.names = FALSE, sep="\t")
LS0tDQp0aXRsZTogIk1vdmluZyBzYW1wbGVzIHRvIFFpaW1lMiINCm91dHB1dDogaHRtbF9ub3RlYm9vaw0KLS0tDQpCeSBBbmd1cw0KDQoNClNvIHlvdSB3YW50IHRvIG1vdmUgeW91ciBwaHlsb3NlcSBvYmplY3QgdG8gcWlpbWUyIGVoPyB3ZWxsIGl0cyBhIHBhaW4gaW4gdGhlIGFzcyBidXQgc28gYXJlIGFsbCB0aGluZ3MgaW4gbGlmZSBpIHN1cHBvc2UuIA0KDQpMb2FkIHRoZSBwYWNrYWdlcyB5b3UgbmVlZA0KYGBge3J9DQpsaWJyYXJ5KHBoeWxvc2VxKQ0KbGlicmFyeSh0aWR5cikNCmxpYnJhcnkoZHBseXIpDQpsaWJyYXJ5KGdncGxvdDIpDQpgYGANCg0KDQpMb2FkIHlvdXIgcGh5bG9zZXEgb2JqZWN0LCBtYWtlIHN1cmUgaXQgaGFzIHNlcXVlbmNlIGluZm9ybWF0aW9uDQpgYGB7cn0NCnBoeXNlcV9LZXkgPC0gcmVhZFJEUyhmaWxlID0gIkM6XFxVc2Vyc1xcYW5ndXNcXE9uZURyaXZlIC0gVU5CQ1xcQW5ndXMgQmFsbFxcTGFiIHdvcmtcXEJpb2luZm9ybWF0aWNzXFxVTFRSQVxccGh5c2VxX0tleV9tZXJnZWQucmRzIikNCiNJIGNhbiB0ZWxsIGl0IGhhcyBzZXF1ZW5jZSBpbmZvcm1hdGlvbiBieSB0aGlzDQpwaHlzZXFfS2V5DQpgYGANCg0KUmVtb3ZlIHRheGEgdGhhdCBoYXZlIHplcm8gY291bnRzIGluIGFsbCBvZiBzYW1wbGVzIHN1bW1lZCAod2h5IHdvdWxkIHlvdSBoYXZlIHRoaXM/IHdlbGwgSSByZW1vdmVkIHNvbWUgc2FtcGxlcyBmcm9tIHRoaXMgYW5hbHlzaXMgYW5kIG1lcmdlZCB0YWJsZXMgc28gdGhlcmUgbWlnaHQgYmUgc29tZSBob2xkIG92ZXIgdGF4YSkNCmBgYHtyfQ0KcGh5c2VxX0tleSA8LSBwcnVuZV90YXhhKHRheGFfc3VtcyhwaHlzZXFfS2V5KSA+MCwgcGh5c2VxX0tleSkNCnBoeXNlcV9LZXkNCmBgYA0KDQoNCg0KVGFrZSB0aGUgT1RVIGFuZCB0YXhhIHRhYmxlcyBmcm9tIHRoZSBwaHlsb3NlcSBvYmplY3QNCmBgYHtyfQ0KT1RVMSA9IGFzKG90dV90YWJsZShwaHlzZXFfS2V5KSwgIm1hdHJpeCIpDQpPVFVkZiA9IGFzLmRhdGEuZnJhbWUoT1RVMSkNCg0KVEFYQTEgPSBhcyhwaHlsb3NlcTo6dGF4X3RhYmxlKHBoeXNlcV9LZXkpLCAibWF0cml4IikNClRBWEFkZiA9IGFzLmRhdGEuZnJhbWUoVEFYQTEpDQoNCmBgYA0KDQoNCg0KYGBge3J9DQojRXhwb3J0IHNlcXVlbmNlcyB0byAuZm5hIGZpbGUNClNob3J0UmVhZDo6d3JpdGVGYXN0YShyZWZzZXEocGh5c2VxX0tleSksICJDOlxcVXNlcnNcXGFuZ3VzXFxPbmVEcml2ZSAtIFVOQkNcXEFuZ3VzIEJhbGxcXExhYiB3b3JrXFxCaW9pbmZvcm1hdGljc1xcVUxUUkFcXGdlbWVsbGlcXHJlcC1zZXFzLmZuYSIpDQoNCmBgYA0KDQoNCmBgYHtyfQ0KI2V4cG9ydCB0YXhhIHRhYmxlDQp3cml0ZS50YWJsZShUQVhBZGYsICJDOlxcVXNlcnNcXGFuZ3VzXFxPbmVEcml2ZSAtIFVOQkNcXEFuZ3VzIEJhbGxcXExhYiB3b3JrXFxCaW9pbmZvcm1hdGljc1xcVUxUUkFcXGdlbWVsbGlcXHRheC50eHQiLCBxdW90ZT1GQUxTRSwgY29sLm5hbWVzPUZBTFNFLCBzZXA9Ilx0IikNCg0KYGBgDQoNCg0KYGBge3J9DQojZm9yIHRoZSBib2ltIGNvbW1hbmQgaXQgbmVlZHMgYSByb3cgb2YgT1RVIG5hbWVzLCBhbmQgc2luY2UgdGhlIHdyaXRlIHRhYmxlIGZ1bmN0aW9uIHdvbnQgYXV0b21hdGljYWxseSBhZGQgdGhlIHJvdyBuYW1lcyB3ZSB3aWxsIGFkZCB0aGVtIGFzIGEgc2VwZXJhdGUgY29sdW1uDQpPVFVkZiRPVFUgPC0gcm93Lm5hbWVzKE9UVWRmKSAjbWFrZSBhIGNvbHVtbiBvZiByb3cgbmFtZXMNCk9UVWRmPC1yZWxvY2F0ZShPVFVkZiwgT1RVLCAuYmVmb3JlID0gZXZlcnl0aGluZygpKSNqdXN0IG1vdmVzIHRoZSBPVFUgY29sdW1uIGZpcnN0DQoNCiNleHBvcnQgT1RVIHRhYmxlDQp3cml0ZS50YWJsZShPVFVkZiwgIkM6XFxVc2Vyc1xcYW5ndXNcXE9uZURyaXZlIC0gVU5CQ1xcQW5ndXMgQmFsbFxcTGFiIHdvcmtcXEJpb2luZm9ybWF0aWNzXFxVTFRSQVxcZ2VtZWxsaVxcT1RVLnR4dCIsIHF1b3RlPUZBTFNFLCBjb2wubmFtZXM9VFJVRSwgcm93Lm5hbWVzID0gRkFMU0UsIHNlcD0iXHQiKQ0KDQpgYGANCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0K