Andrew Crawford’s Capstone Code

Author: “Andrew Crawford”

Purpose: Summarized R Script

Required Packages

```{r}
library(stringr)

library(taxize)

library(dplyr)

library(rentrez)

library(readr)
```
Input Data as .csv of taxaid

```{r}
setwd("C:/Users/crawf/Downloads/")

WWdata <- read.csv("C:/Users/crawf/Downloads/Wastewater TaxID.csv", stringsAsFactors = FALSE)

MWdata <- read.csv("C:/Users/crawf/Downloads/Marine TaxID.csv", stringsAsFactors = FALSE)
```

Method applied to WWdata was repeated for MWdata

Establish connection with NCBI

```{r}
set_entrez_key("c08f7a28dbf6d9f6dcf2d40a4b3ec7e7b709")
```
Obtain taxonomic classification from TaxID

```{r}
tax_info <- classification(WWdata, db = "ncbi")

print(tax_info)
```
Cleanout Dataset

```{r}
valid_entries <- sapply(tax_info, is.data.frame)

cleaned_taxa <- tax_info[valid_entries == TRUE]
```
Dataset to Table

```{r}
table_cleaned_taxa <- bind_rows(cleaned_taxa, .id = "tax_id")

View(table_cleaned_taxa)
```
Missing Data

```{r}
rank_name <- function(df, rank_name) {val <- df$name[df$rank == rank_name] if (length(val) == 0) {return("N/A")} else {return(val)}}
```
Finalized Table

```{r}
extract_tax_info <- lapply(names(cleaned_taxa), function(id) {df <- cleaned_taxa[[id]] 

df <- cleaned_taxa[[id]]
species_name <- rank_name(df, "species")
family_name <- rank_name(df, "family")
class_name <- rank_name(df, "class")

data.frame(
tax_id = id,
species = species_name,
family = family_name,
class = class_name,
stringsAsFactors = FALSE)})
```
Print Table as CSV

```{r}
final_WW_Taxa <- bind_rwos(extract_tax_info)

View(final_WW_Taxa)
```

Visualizations

library(ggplot2)
library(dplyr)
WWfam <- c("Straboviridae", "Schitoviridae", "Drexlerviridae", "Autoscriptoviridae", "Autotranscriptaviridae", "Herelleviridae", "Demerecviridae", "Mesyanzhinovviridae", "Ackermannviridae", "Salasmaviridae", "Aliceevansviridae", "Casjensviridae", "Zobellviridae", "Autonotataviridae", "Phycodnaviridae", "Microviridae", "Chaseviridae", "Kyanoviridae", "Rountreeviridae", "Virgaviridae", "Adenoviridae", "Poxviridae", "Mimiviridae", "Assiduviridae", "Intestiviridae", "Autosignataviridae", "Steigviridae", "Tombusviridae", "Marseilleviridae", "Polyomaviridae", "Fredfastierviridae", "Peduoviridae", "Tectiviridae", "Alphaflexiviridae", "Vertoviridae", "Orpheoviridae", "Parvoviridae", "Duneviridae", "Guelinviridae", "Grimontviridae", "Vilmaviridae", "Zierdtviridae", "Betaflexiviridae", "Papillomaviridae", "Pachyviridae", "Orthoherpesviridae")

WWPrev <- c(17.19, 9.46, 8.31, 7.16, 6.59, 4.87, 4.58, 4.58, 3.72, 3.15, 2.87, 2.58, 2.58, 2.29, 2.01, 1.43, 1.43, 1.15, 1.15, 1.15, 0.86, 0.86, 0.86, 0.57, 0.57, 0.57, 0.57, 0.57, 0.57, 0.57, 0.57, 0.57, 0.29, 0.29, 0.29, 0.29, 0.29, 0.29, 0.29, 0.29, 0.29, 0.29, 0.29, 0.29, 0.29, 0.29)

WWdf <- data.frame(family = c(WWfam), percent = c(WWPrev)) 
ggplot(data=WWdf, aes(x=reorder(family,percent), y=percent)) + geom_col() + labs(x="WW Families", y="Prevalence by Percentage", title="Families Contribution to Wastewater Dataset by Prevelance") + scale_y_continuous(breaks = seq(0,20, by = 5)) + coord_flip()

MWfam <- c("Kyanoviridae", "Straboviridae", "Peduoviridae", "Autotranscriptaviridae", "Inoviridae", "Zobellviridae", "Pachyviridae", "Herelleviridae", "Schitoviridae", "Lindbergviridae", "Autosignataviridae", "Drexlerviridae", "Rountreeviridae", "Autoscriptoviridae", "Demerecviridae", "Ackermannviridae", "Assiduviridae", "Pervagoviridae", "Mesyanzhinovviridae", "Obscuriviridae", "Andersonviridae", "Salasmaviridae", "Saffermanviridae", "Steigviridae", "Fredfastierviridae", "Leisingerviridae", "Chimalliviridae", "Corticoviridae", "Madridviridae", "Vertoviridae", "Graaviviridae", "Colingsworthviridae", "Casjensviridae", "Mktvariviridae") 

MWprev <- c(25.10, 12.16, 7.45, 5.88, 5.10, 3.53, 3.14, 3.14, 2.75, 2.75, 2.35, 2.35, 1.96, 1.96, 1.96, 1.96, 1.57, 1.57, 1.57, 1.57, 1.18, 1.18, 1.18, 0.78, 0.78, 0.78, 0.78, 0.78, 0.39, 0.39, 0.39, 0.39, 0.39, 0.39) 

MWdf <- data.frame(family = c(MWfam), percent = c(MWprev)) 
ggplot(data=MWdf, aes(x=reorder(family,percent), y=percent)) + geom_col() + labs(x="MW Families", y="Prevalence by Percentage", title="Families Contribution to Marine Dataset by Prevelance") + scale_y_continuous(breaks = seq(0,20, by = 5)) + coord_flip()

AMGCat <- rep(c("Amino Acids", "Carbohydrates", "Cofactor/Vitamin", "Energy", "Glycan Biosynthesis", "Terpenoids/Polyketides", "Other Secondary Metabolics"), each=2) 

AMGCount <- c(13.4,8.2,4.2,8.2,61.3,69.4,0,2.3,11.8,9.4,4.2,1.2,5.0,1.2) 

Dataset <- rep(c("WW", "MW"), times = 14) 

AMGCountdf <- data.frame(AMGCat, Dataset, AMGCount)

ggplot(data=AMGCountdf, aes(x=reorder(AMGCat,AMGCount),y=AMGCount)) + geom_col(aes(fill=AMGCat)) + labs(x="AMG Catagories", y="Prevelance in Dataset", title = "Prevalence of AMG Type within Environemtnal Datasets", subtitle = "WW = Wastewater, MW = Marine Water")

Enzyme <- rep(c("Dihydrofolate reductase ★", "Bifunctional NMN adenylyltransferase/nudix hydrolase", "Nicotinamide phosphoribosyltransferase", "UPD-3-0-[3-hydroxymyristoyl] glucosamine N-acyltransferase ★", "Glycine hydroxymethyltransferase", "Glutathinoylspermidine amidase/synthase", "Mannose-1-phosphate guanylyltransferase / phosphomannomutase", "Arabinose-5-phosphate isomerase", "K23144 ★","Heme synthase", "7-cyano-7-deazaguanine reductase", "7-carboxy-7-deazaguanine synthase", "7-cyano-7-deazaguanine synthase", "K06211", "GTP cyclohydrolase IA", "UDP-galactopyranose mutase", "Arabinose-5-phosphate isomerase", "Mannose-1-phosphate guanylyltransferase ★", "3-deoxy-7-phosphoheptulonate synthase", "Nicotinamide phosphoribasyltransferase", "DNA (cytosine-5)-methyltransferase 1 ★", "Chorismate mutase / prephenate dehydratase ★"), each =2)

Dataset <- rep(c("MW", "WW"), times = 22)

Prev <- c( 28.2352941176471, 32.7731092436975, 12.9411764705882, 6.72268907563025, 15.2941176470588, 10.0840336134454, 1.17647058823529, 0, 2.35294117647059, 0, 5.88235294117647, 0, 1.17647058823529, 0, 0, 5.88235294117647,1.17647058823529, 5.04201680672269, 1.17647058823529, 4.20168067226891, 2.35294117647059, 0.840336134453782, 1.17647058823529, 0.840336134453782, 2.35294117647059, 1.68067226890756, 2.35294117647059, 1.68067226890756, 1.17647058823529, 1.68067226890756, 4.70588235294118, 3.36134453781513, 1.17647058823529, 5.88235294117647, 0, 0.840336134453782, 0, 2.52100840336134, 0, 0.840336134453782, 0, 5.04201680672269, 0, 0.840336134453782)

AMGdf <- data.frame(Enzyme,Dataset,Prev)

ggplot(data=AMGdf, aes(x=reorder(Enzyme,Prev),y=Prev, size = Prev, color = Dataset)) + geom_count() + labs(x="AMG-encoded Enzymes", y="Percentage of Total", title="Types of AMG-encoded Enzyme From Straboviridae Phages", subtitle = "Wastewater Dataset = WW, Marine Water Dataset = MW", size = "Proportion", color= "Datasets") + coord_flip()