## ---- setup, include = FALSE--------------------------------------------------
#set universal options
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>"
)

## ---- loading, echo=FALSE, include=FALSE--------------------------------------
#library
suppressWarnings(library(HaploCatcher))
suppressWarnings(library(ggplot2))

#read data from package
data("geno_mat")
data("gene_comp")
data("marker_info")

## ---- head_gene_comp, echo=FALSE----------------------------------------------
#display head of gene_comp file
knitr::kable(head(gene_comp), 
             align = "c", 
             caption = "Gene Compendium Input File")

## ---- display_calls, echo=FALSE-----------------------------------------------
#display unique calls
knitr::kable(data.frame(Call=unique(gene_comp$Call)), 
             align = "c", 
             caption = "Haplotype Calls")

## ---- data_example, echo=FALSE, echo=FALSE------------------------------------
#make example data frame
a<-data.frame(FullSampleName=c("Geno_1", "Geno_2", "Geno_3"),
              Chromosome=rep("5D", 3),
              Gene=rep("pm34", 3),
              Call=c("pm34", "het_pm34", "non_pm34"))

#display
knitr::kable(a, 
             align = "c", 
             caption = "Pm34 Example Input File")

## ---- head_geno_mat, echo=FALSE-----------------------------------------------
#must define as a matrix
geno_mat<-as.matrix(geno_mat)

#manipulate a little to demonstrate
geno_mat[1,1]=1
geno_mat[5,5]=2

#see head
knitr::kable(geno_mat[1:5, 1:5], 
             align = "c", 
             caption = "Marker Matrix Input File")

## ---- head_marker_info, echo=FALSE--------------------------------------------
#display marker_info
knitr::kable(head(marker_info), 
             align = "c", 
             caption = "Marker Info Input File")

## ---- marker_info_example, echo=FALSE-----------------------------------------
#make example data set
a<-data.frame(Marker=c("TRACE_00102",
                       "TRACE_13112",
                       "TRACE_43821"),
              Chromosome=c(1, 
                           1, 
                           1),
              BP_Position=c(0.0,
                            0.5,
                            1.2))
#display
knitr::kable(a, 
             align = "c", 
             caption = "Marker Info Input File Example")

## ---- figure_1, echo=FALSE, fig.align='center', out.width="100%"--------------
#pull figure from internet
url<-"https://raw.githubusercontent.com/zjwinn/HaploCatcher/main/Figure.png"
knitr::include_graphics(url)

## ---- example_read_data-------------------------------------------------------
#library
library(HaploCatcher)

#read data from package
data("geno_mat")
data("gene_comp")
data("marker_info")

## ---- example_make_training_and_test------------------------------------------
#set seed (for reproducible results)
set.seed(022294)

#randomly partition the training data and test from total
training_genotypes=sample(rownames(geno_mat), size = round(nrow(geno_mat)*0.8, 0))
testing_genotypes=rownames(geno_mat)[!rownames(geno_mat) %in% training_genotypes]

#nullify the seed we set so we don't mess with cross validation
set.seed(NULL)

## ---- example_models_1, fig.width=12, fig.height=8, fig.align='center', out.width="100%"----
#run without heterozygous individuals sequentially
results1<-auto_locus(geno_mat = geno_mat,
                     gene_file = gene_comp,
                     gene_name = "sst1_solid_stem",
                     marker_info = marker_info,
                     chromosome = "3B",
                     training_genotypes = training_genotypes,
                     testing_genotypes = testing_genotypes,
                     set_seed = 022294,
                     n_perms = 10,
                     verbose = FALSE)

## ---- display_results---------------------------------------------------------
#show results for with and without hets
knitr::kable(results1$predictions[1:15,], 
             align = "c", 
             caption = "Heterozygous Excluded Results")

## ---- visualize_cross_validation, fig.width=12, fig.height=8, fig.align='center', out.width="100%"----
#plot out the cross validation results
plot_locus_perm_cv(results1$cross_validation_results)

## ---- look_at_summary_results-------------------------------------------------
#look at overall and by_class performance
knitr::kable(results1$cross_validation_results$Overall_Summary[,1:5], 
             align = "c", 
             caption = "Subsection of Overall Summary for 'results1' Object")
knitr::kable(results1$cross_validation_results$By_Class_Summary[,1:5],
             align = "c", 
             caption = "Subsection of By-Class Summary for 'results1' Object")