--- title: "Comprehensive Guide to evanverse" output: rmarkdown::html_vignette vignette: > %\VignetteIndexEntry{Comprehensive Guide to evanverse} %\VignetteEngine{knitr::rmarkdown} %\VignetteEncoding{UTF-8} --- ```{r setup, include = FALSE} knitr::opts_chunk$set( collapse = TRUE, comment = "#>", fig.width = 7, fig.height = 5, fig.align = "center", warning = FALSE, message = FALSE ) ``` # 📖 Comprehensive Guide to evanverse Welcome to the comprehensive guide for **evanverse** - a feature-rich R utility package providing 55+ functions for data analysis, visualization, and bioinformatics workflows. ## 🚀 Package Installation and Setup ```{r package-install, eval=FALSE} # Install from CRAN install.packages("evanverse") # Or install development version from GitHub evanverse::inst_pkg("evanbio/evanverse") ``` ```{r package-load} library(evanverse) ``` ## 📦 Package Management The evanverse package provides robust package management utilities: ```{r package-check} # Check if packages are installed required_packages <- c("dplyr", "ggplot2", "tidyr") check_pkg(required_packages) # Get package version (skip on CRAN due to network dependency) if (!identical(Sys.getenv("NOT_CRAN"), "false")) { try(pkg_version("evanverse"), silent = TRUE) } ``` ## 🎨 Color Palette System ### Available Palettes ```{r palettes-list} # List all available palettes palettes_info <- list_palettes() print(palettes_info) ``` ### Using Color Palettes ```{r palettes-demo} # Get specific palettes vivid_colors <- get_palette("vividset", type = "qualitative") blues_gradient <- get_palette("blues", type = "sequential") cat("Vivid qualitative palette:\n") print(vivid_colors) cat("\nBlues sequential palette:\n") print(blues_gradient) ``` ### Creating Custom Palettes ```{r custom-palette} # Create a custom palette (demonstration only - not executed to avoid file creation) custom_colors <- c("#FF6B6B", "#4ECDC4", "#45B7D1", "#96CEB4") # Example of how to create a custom palette (using temp directory): # create_palette( # name = "custom_demo", # colors = custom_colors, # type = "qualitative", # color_dir = tempdir() # Use temporary directory to avoid cluttering package # ) # Preview the custom colors print("Custom palette colors:") print(custom_colors) cat("This would create a palette named 'custom_demo' with", length(custom_colors), "colors\n") ``` ## 📊 Visualization Functions ### Venn Diagrams ```{r venn-demo, fig.cap="Venn diagram example"} # Create sample data for Venn diagram set1 <- c("A", "B", "C", "D", "E") set2 <- c("C", "D", "E", "F", "G") set3 <- c("E", "F", "G", "H", "I") # Create Venn diagram venn_plot <- plot_venn( set1 = set1, set2 = set2, set3 = set3, category.names = c("Set1", "Set2", "Set3"), title = "Three-way Venn Diagram Example" ) print(venn_plot) ``` ### Bar Plots ```{r bar-demo, fig.cap="Professional bar plot"} # Sample data sample_data <- data.frame( Category = c("Type A", "Type B", "Type C"), Count = c(25, 18, 12), Group = c("High", "High", "Medium") ) # Create bar plot with custom colors vivid_colors <- get_palette("vividset", type = "qualitative") bar_plot <- plot_bar(data = sample_data, x = "Category", y = "Count", fill = "Group") + ggplot2::scale_fill_manual(values = vivid_colors) + ggplot2::labs(title = "Sample Distribution by Category", x = "Sample Type", y = "Count") print(bar_plot) ``` ## 🧬 Bioinformatics Utilities ### Gene ID Conversion ```{r gene-conversion, eval=FALSE} # Convert gene symbols to Ensembl IDs gene_symbols <- c("TP53", "BRCA1", "EGFR") ensembl_ids <- convert_gene_id( ids = gene_symbols, from = "SYMBOL", to = "ENSEMBL", species = "human" ) print(ensembl_ids) ``` ### GMT File Processing ```{r gmt-processing, eval=FALSE} # Convert GMT file to data frame gmt_df <- gmt2df("path/to/geneset.gmt") head(gmt_df) # Convert GMT file to list gmt_list <- gmt2list("path/to/geneset.gmt") length(gmt_list) ``` ## 🔄 Data Processing and Void Handling ### Working with Void Values ```{r void-handling} # Create sample vector with void values messy_vector <- c("A", "", "C", NA, "E") print("Original vector:") print(messy_vector) # Check for void values cat("\nAny void values:", any_void(messy_vector), "\n") # Replace void values clean_vector <- replace_void(messy_vector, value = "MISSING") print("After replacing voids:") print(clean_vector) ``` ### Data Transformation ```{r data-transform} # Convert data frame to grouped list by cylinder count grouped_data <- df2list( data = mtcars[1:10, ], key_col = "cyl", value_col = "mpg" ) print("Cars grouped by cylinder, showing MPG values:") str(grouped_data) ``` ## ⚡ Custom Operators ```{r operators-demo} # Demonstrate custom operators x <- c(1, 2, 3, 4, 5) y <- c(3, 4, 5, 6, 7) # Check what's NOT in another vector print(x %nin% y) # Paste operator result <- "Hello" %p% " " %p% "World" print(result) # Check identity print(5 %is% 5) ``` ## 💾 File Operations ### Flexible File Reading ```{r file-operations, eval=FALSE} # Read various file formats flexibly data1 <- read_table_flex("data.csv") data2 <- read_excel_flex("data.xlsx", sheet = 1) # Get file information file_info("data.csv") # Display directory tree file_tree(".") ``` ## 🛠️ Development Tools ### Timing and Execution ```{r timing-demo} # Time execution of code result <- with_timer(function() { Sys.sleep(0.01) # Quick simulation sum(1:1000) }, name = "Sum calculation") print(result) ``` ### Safe Execution ```{r safe-execution} # Execute code safely safe_result <- safe_execute({ x <- 1:10 mean(x) }) print(safe_result) ``` ## 📈 Summary The evanverse package provides a comprehensive toolkit for: - **Package Management**: Multi-source installation and management - **Data Visualization**: Publication-ready plots with sensible defaults - **Color Management**: Professional palette system for consistent styling - **File Operations**: Robust I/O with enhanced error handling - **Bioinformatics**: Specialized tools for genomic data processing - **Data Processing**: Advanced transformation and void value handling - **Custom Operators**: Expressive syntax extensions for R - **Development Tools**: Productivity enhancing utilities With 55+ functions across 8 major categories, evanverse streamlines your data analysis workflow while maintaining flexibility and reliability. ## 🔗 Next Steps - Explore the [Color Palettes guide](color-palettes.html) for advanced palette management - Check out [Bioinformatics Workflows](bioinformatics-workflows.html) for domain-specific applications - Visit the [Function Reference](../reference/) for detailed documentation --- *For more information, visit the [evanverse website](https://evanbio.github.io/evanverse/) or the [GitHub repository](https://github.com/evanbio/evanverse).*