## ----style, echo = FALSE, results = 'asis'------------------------------------
BiocStyle::markdown()

## ----loadData, echo = TRUE, message = FALSE, warning = FALSE------------------
library("pRoloc")
library("pRolocdata")

## Subset data for markers for example
data("hyperLOPIT2015")
hyperLOPIT2015 <- markerMSnSet(hyperLOPIT2015)

## ----queryparams--------------------------------------------------------------
params <- setAnnotationParams(inputs = c("Mouse genes",
										 "UniProtKB/Swiss-Prot ID"))

## ----addGO, echo = TRUE, message = FALSE, warning = FALSE, eval = TRUE--------
cc <- addGoAnnotations(hyperLOPIT2015, params,
					   namespace = "cellular_component")
fvarLabels(cc)

## ----filterGO, echo = TRUE, message = FALSE, warning = FALSE, eval = TRUE-----
## Next we filter the GO term matrix removing any terms that have
## have less than `n` proteins or greater than `p` % of total proteins
## in the dataset (this removes terms that only have very few proteins
## and very general terms)
cc <- filterMinMarkers(cc)
cc <- filterMaxMarkers(cc)

## ----orderMarkers, eval = TRUE, verbose = FALSE-------------------------------
## Extract markers can use n to specify to select top n terms
res <- orderGoAnnotations(cc, k = 1:3, p = 1/3, verbose = FALSE)

## ----viewGO, eval=FALSE-------------------------------------------------------
#  library("pRolocGUI")
#  pRolocVis(res, fcol = "GOAnnotations")

## ----clusterDist, eval = TRUE, verbose = FALSE--------------------------------
## Now calculate distances
dd <- clustDist(cc, fcol = "GOAnnotations", k = 1:3, verbose = FALSE)
dd[[1]]

## ----visualiseRes, fig.width=12, eval = TRUE----------------------------------
## Plot normalised distances
plot(dd, p = 1/3)

## Examine kmeans clustering
plot(dd[[1]], cc)

## ----minRank, eval = FALSE----------------------------------------------------
#  ## Normalise by n^1/3
#  minDist <- getNormDist(dd, p = 1/3)
#  
#  ## Get new order according to lowest distance
#  o <- order(minDist)
#  
#  ## Re-order `GOAnnotations` matrix in `fData`
#  fData(cc)$GOAnnotations <- fData(cc)$GOAnnotations[, o]

## ----visAgain, eval=FALSE-----------------------------------------------------
#  pRolocVis(cc, fcol = "GOAnnotations")

