# Copyright (C) Tal Galili # # This file is part of heatmaply. # # heatmaply is free software: you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 2 of the License, or # (at your option) any later version. # # heatmaply is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # A copy of the GNU General Public License is available at # http://www.r-project.org/Licenses/ # # ### add new branches: # ### http://r-pkgs.had.co.nz/git.html#git-branch # git checkout -b faster_01 # git push --set-upstream origin faster_01 #' @import dendextend #' @import ggplot2 #' @import magrittr #' @import RColorBrewer # http://stackoverflow.com/questions/10325231/when-writing-my-own-r-package-i-cant-seem-to-get-other-packages-to-import-corr #' @importFrom plotly plotly ggplotly plotly_empty subplot layout hide_colorbar config style add_trace #' @importFrom scales col_factor col_numeric #' @importFrom viridis viridis #' @importFrom stats as.dendrogram dendrapply dist hclust is.leaf order.dendrogram reorder sd #' @importFrom seriation seriate get_order #' @importFrom dendextend set is.dendrogram is.hclust seriate_dendrogram rotate color_branches find_k as.ggdend #' @importFrom stats ecdf na.omit as.dist cor #' @importFrom htmlwidgets saveWidget #' @importFrom plotly plot_ly add_segments #' @importFrom assertthat assert_that #' @importFrom grDevices dev.new #' @importFrom assertthat assert_that #' NULL # # # # # # # # # .onLoad <- function(libname, pkgname){ # # Thanks for Romain: http://stackoverflow.com/questions/4369334/first-lib-idiom-in-r-packages # # # adding and removing menus from the Rgui when loading and detaching the library # # setHook(packageEvent("installr", "attach"), {function(pkgname, libpath) {add.installr.GUI()} } ) # # setHook(packageEvent("heatmaply", "detach"), {function(pkgname, libpath) {remove_heatmaply_options()} } ) # # # set default options for heatmaply # setHook(packageEvent("heatmaply", "onLoad"), {function(pkgname, libpath) {assign_heatmaply_options()} } ) # # # Does NOT work! # # remove_heatmaply_options is currently an empty function. In the future, it should # # remove default options for heatmaply when unloading # setHook(packageEvent("heatmaply", "onUnload"), {function(pkgname, libpath) {remove_heatmaply_options()} } ) # setHook(packageEvent("heatmaply", "detach"), {function(pkgname, libpath) {remove_heatmaply_options()} } ) # # # heatmaply::heatmaply_options() # # # set default options for d3 dendrogram. # d3dendro_defaults(D3DENDRODEFAULTS) # } # # # menus are added and removed as needed: !! # .onAttach <- function(lib, pkg, ...) { packageStartupMessage(heatmaplyWelcomeMessage()) } # # heatmaplyWelcomeMessage <- function() { # library(utils) paste0( "\n", "======================\n", "Welcome to heatmaply version ", utils::packageDescription("heatmaply")$Version, "\n", # "\n", "\n", "Type citation('heatmaply') for how to cite the package.\n", "Type ?heatmaply for the main documentation.\n", "\n", "The github page is: https://github.com/talgalili/heatmaply/\n", "Please submit your suggestions and bug-reports at: https://github.com/talgalili/heatmaply/issues\n", "You may ask questions at stackoverflow, use the r and heatmaply tags: \n\t https://stackoverflow.com/questions/tagged/heatmaply\n", # "\n", # "\tTo suppress this message use: ", "suppressPackageStartupMessages(library(heatmaply))\n", "======================\n" ) } # using "zzz.r" like in devtools... # When adding new files, make sure they are listed in DESCRIPTION: # Collate: # 'create.global.library.r' # 'install.r' # 'updateR.r' # library(heatmaply) # environmentIsLocked(as.environment("package:heatmaply")) # lockEnvironment(env=as.environment("package:heatmaply"), bindings = FALSE) # lockEnvironment(env=as.environment("package:heatmaply"), bindings = TRUE) # IMPORTANT NOTICE: this will add Collate to the DESCRIPTION file, and if any new r file is added - it will need to be updated. # Collate: # + 'create.global.library.r' # + 'install.r' # + 'updateR.r' # + 'zzz.r' ############ ## OLD # Steps: # http://r.789695.n4.nabble.com/vignettes-problems-with-PDF-compaction-td4664909.html # 1) install gs - http://www.ghostscript.com/download/gsdnld.html # 2) find where it is, and update R_GSCMD: # Sys.setenv(R_GSCMD="C:\\Program Files\\gs\\gs9.10\\bin\\gswin64c.exe") # Sys.setenv(R_GSCMD="C:\\Program Files\\gs\\gs9.14\\bin\\gswin64c.exe") # Sys.setenv(R_GSCMD="D:\\temp\\qpdf-5.1.2\\bin\\qpdf.exe") # Sys.getenv("R_GSCMD") # 3) Check that it works: # system2(Sys.getenv("R_GSCMD"), args="--version") # 4) use: # library(tools) # tools::compactPDF("inst\\doc\\heatmaply-tutorial.pdf", gs_quality="printer") # tools::compactPDF("inst\\doc\\heatmaply-tutorial.pdf", # qpdf = "D:\\temp\\qpdf-5.1.2\\bin\\qpdf.exe", gs_cmd = "C:\\Program Files\\gs\\gs9.14\\bin\\gswin64c.exe") #### tools::compactPDF("inst\\doc\\heatmaply-tutorial.pdf", gs_quality="ebook") #### tools::compactPDF("inst\\doc\\heatmaply-tutorial.pdf", gs_quality="screen") #### tools::compactPDF("vignettes\\heatmaply-tutorial.pdf") ### compacted 'heatmaply-tutorial.pdf' from 964Kb to 737Kb #### tools::compactPDF("vignettes\\heatmaply-tutorial.pdf", gs_quality="ebook") # For checking: # 1) get qpdf # http://sourceforge.net/projects/qpdf/files/ # 2) put it somewhere # 3) set R_QPDF # Sys.setenv(R_QPDF="C:\\Rtools\\qpdf-5.1.1\\bin\\qpdf.exe") # Sys.which(Sys.getenv("R_QPDF", "qpdf")) # Also, make sure to add: # options(repos=c("http://cran.rstudio.com", "http://www.stats.ox.ac.uk/pub/RWin" )) # to D:\R\R-devel\etc\Rprofile.site ############## ########## ########## ########## ########## ## NEW # How to deal with compression: # 1) Download the latest qpdf: http://sourceforge.net/projects/qpdf/files/ (and place it somewhere) # 2) Install gs - http://www.ghostscript.com/download/gsdnld.html # 3) Run the following: # tools::compactPDF("inst\\doc\\heatmaply-tutorial.pdf", # qpdf = "C:\\Program Files (x86)\\qpdf-5.1.2\\bin\\qpdf.exe", # gs_cmd = "C:\\Program Files\\gs\\gs9.14\\bin\\gswin64c.exe", # gs_quality="ebook") ########## ########## ########## # https://stat.ethz.ch/pipermail/r-help/2010-September/251194.html # tools::showNonASCII( readLines("vignettes\\FAQ.Rmd")) # ####### Cool stuff to add: # library(devtools) # use_code_of_conduct() # use_cran_badge() # use_coveralls() # # # install.packages("C:\\Dropbox\\aaaa good R code\\AA - My packages\\heatmaply_1.0.0.tar.gz", repos = NULL, type="source") # # # Run once: # shell('set PATH=%PATH%;"C:\\Program%20Files%20(x86)\\Git\\bin"', intern = TRUE) # shell("echo %PATH% ", intern= TRUE) # # system('set PATH=%PATH%;C:\\xampp\\php') # # # # # Creating a changelog using git # First make sure git is in the path. Run the # following using cmd.exe, as admin: # setx PATH "C:\\Program Files (x86)\\Git\\bin" # # Then - run the script to create the ChangeLog before shipping the package. # # http://stackoverflow.com/questions/10330425/how-do-i-export-a-git-log-to-a-text-file # # http://stackoverflow.com/questions/3523534/good-ways-to-manage-a-changelog-using-git # # http://www.commandlinefu.com/commands/view/12420/generate-a-change-log-with-git # shell("git log --decorate > ChangeLog", intern = T) # Modify it using: http://git-scm.com/book/en/Git-Basics-Viewing-the-Commit-History # http://stackoverflow.com/questions/9007181/custom-log-format-omits-newline-at-end-of-output # shell('git log --graph --stat --date=iso > ChangeLog', intern = TRUE) # use this: # shell('git log --graph --stat --date=short --pretty=format:"%ad(%an) %s |%h" > ChangeLog', intern = TRUE) # # system.PATH() # shell("path") # shell("echo %PATH% ", intern= TRUE) # library(rmarkdown) # rmarkdown::render("NEWS",clean = TRUE,output_format = "html_document") # https://github.com/r-lib/styler # # install.packages("remotes") # remotes::install_github("krlmlr/styler") # styler::style_pkg() # devtools::spell_check() # Search [^\x00-\x7F]+ # with notepad++ with regex, in order to find non-ascii values. # Source: http://stackoverflow.com/questions/20889996/notepad-how-to-remove-all-non-ascii-characters-with-regex # when a function is renamed, its document in man must be removed - otherwise it may cause problems with the built check (it will try to run the code in the example, and will fail.) # When all is done, run: # library(devtools) # check() # browseURL(tempdir()) ### http://www.rstudio.com/ide/docs/packages/build_options # # devtools::check(build_args="--no-build-vignettes --no-manual", args = "--no-examples --no-build-vignettes --no-manual", cran = FALSE, cleanup = FALSE) # check(build_args="--no-build-vignettes --no-manual", args = "--no-build-vignettes --no-manual", cran = FALSE, cleanup = FALSE) # check(build_args="--no-build-vignettes ", args = "--no-build-vignettes", cran = FALSE, cleanup = FALSE) # devtools::check(args="--as-cran") # devtools::check("C:/Dropbox/aaaa good R code/AA - My packages/heatmaply", args="--as-cran") # Thanks to: http://stackoverflow.com/questions/10017702/r-cmd-check-options-for-more-rigorous-testing-2-15-0 # shell('git log --graph --stat --date=short --pretty=format:"%ad(%an) %s |%h" > ChangeLog', intern = TRUE) # system('git log --graph --stat --date=short --pretty=format:"%ad(%an) %s |%h" > ChangeLog', intern = TRUE) # file.copy("NEWS", "NEWS.md",overwrite = TRUE) # devtools::check_win_devel() # pkgdown::build_home() # pkgdown::build_site(run_dont_run = F) # pkgdown::build_news() # release()