Nothing
## ----eval=TRUE, warning=FALSE, message=FALSE----------------------------------
# Load required packages
library(alakazam)
library(igraph)
library(dplyr)
# Select a clone from the example database
data(ExampleDb)
sub_db <- subset(ExampleDb, clone_id == 3138)
## ----eval=TRUE----------------------------------------------------------------
# This example data set does not have ragged ends
# Preprocess clone without ragged end masking (default)
clone <- makeChangeoClone(sub_db, text_fields=c("sample_id", "c_call"),
num_fields="duplicate_count")
# Show combined annotations
clone@data[, c("sample_id", "c_call", "duplicate_count")]
## ----eval=FALSE---------------------------------------------------------------
# # Run PHYLIP and parse output
# phylip_exec <- "~/apps/phylip-3.69/dnapars"
# graph <- buildPhylipLineage(clone, phylip_exec, rm_temp=TRUE)
## ----echo=FALSE, warning=FALSE, message=FALSE---------------------------------
# Load data instead of running phylip
# Clone 3138 is at index 23
graph <- ExampleTrees[[23]]
## ----eval=TRUE, warning=FALSE, message=FALSE----------------------------------
# The graph has shared annotations for the clone
data.frame(clone_id=graph$clone,
junction_length=graph$junc_len,
v_gene=graph$v_gene,
j_gene=graph$j_gene)
# The vertices have sequence specific annotations
data.frame(sequence_id=V(graph)$name,
c_call=V(graph)$c_call,
duplicate_count=V(graph)$duplicate_count)
## ----eval=TRUE----------------------------------------------------------------
# Plot graph with defaults
plot(graph)
## ----eval=TRUE----------------------------------------------------------------
# Modify graph and plot attributes
V(graph)$color <- "steelblue"
V(graph)$color[V(graph)$name == "Germline"] <- "black"
V(graph)$color[grepl("Inferred", V(graph)$name)] <- "white"
V(graph)$label <- V(graph)$c_call
E(graph)$label <- ""
# Remove large default margins
par(mar=c(0, 0, 0, 0) + 0.1)
# Plot graph
plot(graph, layout=layout_as_tree, edge.arrow.mode=0, vertex.frame.color="black",
vertex.label.color="black", vertex.size=40)
# Add legend
legend("topleft", c("Germline", "Inferred", "Sample"),
fill=c("black", "white", "steelblue"), cex=0.75)
## ----eval=TRUE, warning=FALSE, results="hide"---------------------------------
# Preprocess clones
clones <- ExampleDb %>%
group_by(clone_id) %>%
do(CHANGEO=makeChangeoClone(., text_fields=c("sample_id", "c_call"),
num_fields="duplicate_count"))
## ----eval=FALSE---------------------------------------------------------------
# # Build lineages
# phylip_exec <- "~/apps/phylip-3.69/dnapars"
# graphs <- lapply(clones$CHANGEO, buildPhylipLineage,
# phylip_exec=phylip_exec, rm_temp=TRUE)
## ----echo=FALSE, warning=FALSE, message=FALSE---------------------------------
# Load data instead of running phylip
graphs <- ExampleTrees
## ----eval=TRUE----------------------------------------------------------------
# Note, clones with only a single sequence will not be processed.
# A warning will be generated and NULL will be returned by buildPhylipLineage
# These entries may be removed for clarity
graphs[sapply(graphs, is.null)] <- NULL
# The set of tree may then be subset by node count for further
# analysis, if desired.
graphs <- graphs[sapply(graphs, vcount) >= 5]
## ----eval=TRUE, show=FALSE----------------------------------------------------
# Modify graph and plot attributes
V(graph)$color <- categorical_pal(8)[1]
V(graph)$label <- V(graph)$name
E(graph)$label <- E(graph)$weight
## ----eval=TRUE, warning=FALSE, message=FALSE----------------------------------
# Convert to phylo
phylo <- graphToPhylo(graph)
# Plot using ape
plot(phylo, show.node.label=TRUE)
## ----eval=FALSE---------------------------------------------------------------
# # Read in Newick tree as phylo object
# phylo <- ape::read.tree("example.tree")
#
# # Write tree file in Newick format
# ape::write.tree(phylo, file="example.tree")
## ----eval=TRUE----------------------------------------------------------------
# Convert to graph object
graph <- phyloToGraph(phylo, germline="Germline")
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.