By Angus Ball
library(phyloseq)
library(speedyseq)
library(ggplot2)
library(dplyr)
Welcome! hopefully you just ran a relative abundance graph at the
kingdom level and look!
ggplot(physeq_melt_sum, aes(x = Sample, y = Abundance, fill = TaxChoice)) +
geom_bar(stat = "identity", aes(fill=TaxChoice)) +
labs(x="", y="%") +
facet_wrap(SamChoice1~SamChoice2, scales= "free_x", nrow=1) +
scale_fill_discrete(name = taxVal)+
theme_classic() +
#scale_x_discrete(guide=guide_axis(n.dodge=3))+
theme(strip.background = element_blank(),
axis.text.x.bottom = element_text(angle = -90))

What are Rhizaria and metazo doing in my dataset! lets remove
them
physeq_Key <- filter_tax_table(physeq_Key, Kingdom == "k__Fungi")
Im saying filter, from object physeq_key, everything that is (=)
k__fungi in column Kingdom and then put this into an object called
physeq_Key (ie replacing that data)
and rerun the relative abundance to see…
ggplot(physeq_melt_sum, aes(x = Sample, y = Abundance, fill = TaxChoice)) +
geom_bar(stat = "identity", aes(fill=TaxChoice)) +
labs(x="", y="%") +
facet_wrap(SamChoice1~SamChoice2, scales= "free_x", nrow=1) +
scale_fill_discrete(name = taxVal)+
theme_classic() +
#scale_x_discrete(guide=guide_axis(n.dodge=3))+
theme(strip.background = element_blank(),
axis.text.x.bottom = element_text(angle = -90))

That everything that isnt a fungi was removed YAYA
what if you wanted to remove a taxa instead?
physeq_Key_rm <- subset_samples(physeq_Key, sample_names(physeq_Key) != "S2P5BM" & sample_names(physeq_Key) != "S2P5BM")
and replot…
ggplot(physeq_melt_sum, aes(x = Sample, y = Abundance, fill = TaxChoice)) +
geom_bar(stat = "identity", aes(fill=TaxChoice)) +
labs(x="", y="%") +
facet_wrap(SamChoice1~SamChoice2, scales= "free_x", nrow=1) +
scale_fill_discrete(name = taxVal)+
theme_classic() +
#scale_x_discrete(guide=guide_axis(n.dodge=3))+
theme(strip.background = element_blank(),
axis.text.x.bottom = element_text(angle = -90))

cool it removed the specific samples, sample removal is easier or
more difficult depending on where you are in the pipeline. There doesn’t
seem to be a great way to remove all samples that start with S2 for
example in a phyloseq object. If youre working with a data frame than
thats a very different question so you have to really think about why
you want or dont want certain samples.
We’ve done alot of work to get here and it’d suck to rerun all this
code each time you restart R can we save our phyloseq object? yes!
filepathing <- "C:\\Users\\angus\\OneDrive - UNBC\\Angus Ball\\Lab work\\Bioinformatics\\Kenzies Data\\physeq_Key.rds" #add your file location here
saveRDS(physeq_Key, file = filepathing)
now we can read it…
filepathing <- "C:\\Users\\angus\\OneDrive - UNBC\\Angus Ball\\Lab work\\Bioinformatics\\Kenzies Data\\physeq_Key.rds" #add your file location here
physeq_Key <- readRDS(file = filepathing)
LS0tDQp0aXRsZTogIlJlbW92aW5nIHNhbXBsZXMgYW5kIHRheGEgZnJvbSB5b3VyIHBoeWxvc2VxIG9iamVjdCINCm91dHB1dDogaHRtbF9ub3RlYm9vaw0KLS0tDQpCeSBBbmd1cyBCYWxsDQoNCmBgYHtyfQ0KbGlicmFyeShwaHlsb3NlcSkNCmxpYnJhcnkoc3BlZWR5c2VxKQ0KbGlicmFyeShnZ3Bsb3QyKQ0KbGlicmFyeShkcGx5cikNCmBgYA0KDQoNCg0KV2VsY29tZSEgaG9wZWZ1bGx5IHlvdSBqdXN0IHJhbiBhIHJlbGF0aXZlIGFidW5kYW5jZSBncmFwaCBhdCB0aGUga2luZ2RvbSBsZXZlbCBhbmQgbG9vayEgDQpgYGB7cn0NCmdncGxvdChwaHlzZXFfbWVsdF9zdW0sIGFlcyh4ID0gU2FtcGxlLCB5ID0gQWJ1bmRhbmNlLCBmaWxsID0gVGF4Q2hvaWNlKSkgKyANCiAgZ2VvbV9iYXIoc3RhdCA9ICJpZGVudGl0eSIsIGFlcyhmaWxsPVRheENob2ljZSkpICsgDQogIGxhYnMoeD0iIiwgeT0iJSIpICsNCiAgZmFjZXRfd3JhcChTYW1DaG9pY2UxflNhbUNob2ljZTIsIHNjYWxlcz0gImZyZWVfeCIsIG5yb3c9MSkgKw0KICBzY2FsZV9maWxsX2Rpc2NyZXRlKG5hbWUgPSB0YXhWYWwpKw0KICB0aGVtZV9jbGFzc2ljKCkgKyANCiAgI3NjYWxlX3hfZGlzY3JldGUoZ3VpZGU9Z3VpZGVfYXhpcyhuLmRvZGdlPTMpKSsNCiAgdGhlbWUoc3RyaXAuYmFja2dyb3VuZCA9IGVsZW1lbnRfYmxhbmsoKSwgDQogICAgICAgIGF4aXMudGV4dC54LmJvdHRvbSA9IGVsZW1lbnRfdGV4dChhbmdsZSA9IC05MCkpICAgICAgIA0KYGBgDQpXaGF0IGFyZSBSaGl6YXJpYSBhbmQgbWV0YXpvIGRvaW5nIGluIG15IGRhdGFzZXQhIGxldHMgcmVtb3ZlIHRoZW0NCg0KDQpgYGB7cn0NCnBoeXNlcV9LZXkgPC0gZmlsdGVyX3RheF90YWJsZShwaHlzZXFfS2V5LCBLaW5nZG9tID09ICJrX19GdW5naSIpDQpgYGANCkltIHNheWluZyBmaWx0ZXIsIGZyb20gb2JqZWN0IHBoeXNlcV9rZXksIGV2ZXJ5dGhpbmcgdGhhdCBpcyAoPSkga19fZnVuZ2kgaW4gY29sdW1uIEtpbmdkb20gYW5kIHRoZW4gcHV0IHRoaXMgaW50byBhbiBvYmplY3QgY2FsbGVkIHBoeXNlcV9LZXkgKGllIHJlcGxhY2luZyB0aGF0IGRhdGEpDQoNCg0KYW5kIHJlcnVuIHRoZSByZWxhdGl2ZSBhYnVuZGFuY2UgdG8gc2VlLi4uDQpgYGB7cn0NCmdncGxvdChwaHlzZXFfbWVsdF9zdW0sIGFlcyh4ID0gU2FtcGxlLCB5ID0gQWJ1bmRhbmNlLCBmaWxsID0gVGF4Q2hvaWNlKSkgKyANCiAgZ2VvbV9iYXIoc3RhdCA9ICJpZGVudGl0eSIsIGFlcyhmaWxsPVRheENob2ljZSkpICsgDQogIGxhYnMoeD0iIiwgeT0iJSIpICsNCiAgZmFjZXRfd3JhcChTYW1DaG9pY2UxflNhbUNob2ljZTIsIHNjYWxlcz0gImZyZWVfeCIsIG5yb3c9MSkgKw0KICBzY2FsZV9maWxsX2Rpc2NyZXRlKG5hbWUgPSB0YXhWYWwpKw0KICB0aGVtZV9jbGFzc2ljKCkgKyANCiAgI3NjYWxlX3hfZGlzY3JldGUoZ3VpZGU9Z3VpZGVfYXhpcyhuLmRvZGdlPTMpKSsNCiAgdGhlbWUoc3RyaXAuYmFja2dyb3VuZCA9IGVsZW1lbnRfYmxhbmsoKSwgDQogICAgICAgIGF4aXMudGV4dC54LmJvdHRvbSA9IGVsZW1lbnRfdGV4dChhbmdsZSA9IC05MCkpICANCmBgYA0KVGhhdCBldmVyeXRoaW5nIHRoYXQgaXNudCBhIGZ1bmdpIHdhcyByZW1vdmVkIFlBWUENCg0Kd2hhdCBpZiB5b3Ugd2FudGVkIHRvIHJlbW92ZSBhIHRheGEgaW5zdGVhZD8gDQoNCmBgYHtyfQ0KcGh5c2VxX0tleV9ybSA8LSBzdWJzZXRfc2FtcGxlcyhwaHlzZXFfS2V5LCBzYW1wbGVfbmFtZXMocGh5c2VxX0tleSkgIT0gIlMyUDVCTSIgJiBzYW1wbGVfbmFtZXMocGh5c2VxX0tleSkgIT0gIlMyUDVCTSIpDQpgYGANCmFuZCByZXBsb3QuLi4NCmBgYHtyfQ0KZ2dwbG90KHBoeXNlcV9tZWx0X3N1bSwgYWVzKHggPSBTYW1wbGUsIHkgPSBBYnVuZGFuY2UsIGZpbGwgPSBUYXhDaG9pY2UpKSArIA0KICBnZW9tX2JhcihzdGF0ID0gImlkZW50aXR5IiwgYWVzKGZpbGw9VGF4Q2hvaWNlKSkgKyANCiAgbGFicyh4PSIiLCB5PSIlIikgKw0KICBmYWNldF93cmFwKFNhbUNob2ljZTF+U2FtQ2hvaWNlMiwgc2NhbGVzPSAiZnJlZV94IiwgbnJvdz0xKSArDQogIHNjYWxlX2ZpbGxfZGlzY3JldGUobmFtZSA9IHRheFZhbCkrDQogIHRoZW1lX2NsYXNzaWMoKSArIA0KICAjc2NhbGVfeF9kaXNjcmV0ZShndWlkZT1ndWlkZV9heGlzKG4uZG9kZ2U9MykpKw0KICB0aGVtZShzdHJpcC5iYWNrZ3JvdW5kID0gZWxlbWVudF9ibGFuaygpLCANCiAgICAgICAgYXhpcy50ZXh0LnguYm90dG9tID0gZWxlbWVudF90ZXh0KGFuZ2xlID0gLTkwKSkgDQpgYGANCmNvb2wgaXQgcmVtb3ZlZCB0aGUgc3BlY2lmaWMgc2FtcGxlcywgc2FtcGxlIHJlbW92YWwgaXMgZWFzaWVyIG9yIG1vcmUgZGlmZmljdWx0IGRlcGVuZGluZyBvbiB3aGVyZSB5b3UgYXJlIGluIHRoZSBwaXBlbGluZS4gVGhlcmUgZG9lc24ndCBzZWVtIHRvIGJlIGEgZ3JlYXQgd2F5IHRvIHJlbW92ZSBhbGwgc2FtcGxlcyB0aGF0IHN0YXJ0IHdpdGggUzIgZm9yIGV4YW1wbGUgaW4gYSBwaHlsb3NlcSBvYmplY3QuIElmIHlvdXJlIHdvcmtpbmcgd2l0aCBhIGRhdGEgZnJhbWUgdGhhbiB0aGF0cyBhIHZlcnkgZGlmZmVyZW50IHF1ZXN0aW9uIHNvIHlvdSBoYXZlIHRvIHJlYWxseSB0aGluayBhYm91dCB3aHkgeW91IHdhbnQgb3IgZG9udCB3YW50IGNlcnRhaW4gc2FtcGxlcy4gDQoNCg0KDQpXZSd2ZSBkb25lIGFsb3Qgb2Ygd29yayB0byBnZXQgaGVyZSBhbmQgaXQnZCBzdWNrIHRvIHJlcnVuIGFsbCB0aGlzIGNvZGUgZWFjaCB0aW1lIHlvdSByZXN0YXJ0IFIgY2FuIHdlIHNhdmUgb3VyIHBoeWxvc2VxIG9iamVjdD8NCnllcyEgDQpgYGB7cn0NCmZpbGVwYXRoaW5nIDwtICJDOlxcVXNlcnNcXGFuZ3VzXFxPbmVEcml2ZSAtIFVOQkNcXEFuZ3VzIEJhbGxcXExhYiB3b3JrXFxCaW9pbmZvcm1hdGljc1xcS2VuemllcyBEYXRhXFxwaHlzZXFfS2V5LnJkcyIgI2FkZCB5b3VyIGZpbGUgbG9jYXRpb24gaGVyZQ0Kc2F2ZVJEUyhwaHlzZXFfS2V5LCBmaWxlID0gZmlsZXBhdGhpbmcpDQoNCmBgYA0KDQoNCm5vdyB3ZSBjYW4gcmVhZCBpdC4uLg0KYGBge3J9DQpmaWxlcGF0aGluZyA8LSAiQzpcXFVzZXJzXFxhbmd1c1xcT25lRHJpdmUgLSBVTkJDXFxBbmd1cyBCYWxsXFxMYWIgd29ya1xcQmlvaW5mb3JtYXRpY3NcXEtlbnppZXMgRGF0YVxccGh5c2VxX0tleS5yZHMiICNhZGQgeW91ciBmaWxlIGxvY2F0aW9uIGhlcmUNCnBoeXNlcV9LZXkgPC0gcmVhZFJEUyhmaWxlID0gZmlsZXBhdGhpbmcpDQpgYGANCg==