Examples of Templet Configuration File

Jianfeng Li

2017-06-24

BioInstaller using configr to parse all of configuration files, so you can use some of code to set all of item in configuration file which can be parsed by configr package. Example of code can be found below.

github.toml and nongithub.toml

Built-in configuration files: github.toml and nongithub.toml let us to download/install several softwares/dependence by default parameters of BioInstaller. install.bioinfo(show.all.names = TRUE) can found all of avaliable softwares, dependence in github.toml and nongithub.toml.

Github Softwares

Github softwares version control can be done git2r package. Source url be setted by github_url.

If use_git2r be setted to false, BioInstaller will use the git of your system.

In addition, when use_git2r be setted to false and recursive_clone be setted to true, the behaviour is like that git clone --recursive https://path/repo

[bwa]
github_url = "https://github.com/lh3/bwa"
after_failure = "echo 'fail!'"
after_success = "echo 'successful!'"
make_dir = ["./"]
bin_dir = ["./"]

[bwa.before_install]
linux = ""
mac = ""

[bwa.install]
linux = "make"
mac = "make"

Non-Github Softwares or Databases

Non-Github softwares version control need to write a function parsing URL and use {{version}} to replace in the source_url.

url_all_download be setted to true if need to download mulitple files. rvest and RCurl packages can be used to parse the version infomation of non-github softwares or databases. version_order_fixed can be setted to true if you don’t want to using the built-in version reorder function.

If you set url_all_download to false, which can let us using multiple mirror to avoid one of invalid URL.

[gmap]
# {{version}} will be parsed to your install.bioinfo `version` parameter
# or the newest version parsed from fetched data.
source_url = "http://research-pub.gene.com/gmap/src/{{version}}.tar.gz"
after_failure = "echo 'fail!'"
after_success = "echo 'successful!'"
make_dir = ["./"]
bin_dir = ["./"]

[gmap.before_install]
linux = ""
mac = ""

[gmap.install]
linux = "./configure --prefix=`pwd` && make && make install"
mac = ["sed -i s/\"## CFLAGS='-O3 -m64' .*\"/\"CFLAGS='-O3 -m64'\"/ config.site",
"./configure --prefix=`pwd` && make && make install"]

nongithub_databases_blast.toml

The configuration file can be used to download NCBI blast database. You can use this file: install.bioinfo(nongithub.cfg = system.file('extdata', 'nongithub_databases_blast.toml', package = 'BioInstaller'), show.all.names = TRUE).

BioInstaller using configr glue to reduce the length of files name. That can let us using less word to storage more files name. More usefile databases FTP url can be accessed in the future. I hope you can set your own configuration file not only using the BioInstaller built-in configuration files.

library(configr)
library(BioInstaller)
blast.databases <- system.file('extdata', 
  'nongithub_databases_blast.toml', package = 'BioInstaller')

read.config(blast.databases)$blast_nr$source_url
#> [1] "!!glue ftp://ftp.ncbi.nih.gov/blast/db/nr.{ids=sprintf('%02d', 0:68);rep(ids, 2)}.tar.gz{c(rep('', length(ids)), rep('.md5', length(ids)))}"
read.config(blast.databases, glue.parse = TRUE)$blast_nr$source_url
#>   [1] "ftp://ftp.ncbi.nih.gov/blast/db/nr.00.tar.gz"    
#>   [2] "ftp://ftp.ncbi.nih.gov/blast/db/nr.01.tar.gz"    
#>   [3] "ftp://ftp.ncbi.nih.gov/blast/db/nr.02.tar.gz"    
#>   [4] "ftp://ftp.ncbi.nih.gov/blast/db/nr.03.tar.gz"    
#>   [5] "ftp://ftp.ncbi.nih.gov/blast/db/nr.04.tar.gz"    
#>   [6] "ftp://ftp.ncbi.nih.gov/blast/db/nr.05.tar.gz"    
#>   [7] "ftp://ftp.ncbi.nih.gov/blast/db/nr.06.tar.gz"    
#>   [8] "ftp://ftp.ncbi.nih.gov/blast/db/nr.07.tar.gz"    
#>   [9] "ftp://ftp.ncbi.nih.gov/blast/db/nr.08.tar.gz"    
#>  [10] "ftp://ftp.ncbi.nih.gov/blast/db/nr.09.tar.gz"    
#>  [11] "ftp://ftp.ncbi.nih.gov/blast/db/nr.10.tar.gz"    
#>  [12] "ftp://ftp.ncbi.nih.gov/blast/db/nr.11.tar.gz"    
#>  [13] "ftp://ftp.ncbi.nih.gov/blast/db/nr.12.tar.gz"    
#>  [14] "ftp://ftp.ncbi.nih.gov/blast/db/nr.13.tar.gz"    
#>  [15] "ftp://ftp.ncbi.nih.gov/blast/db/nr.14.tar.gz"    
#>  [16] "ftp://ftp.ncbi.nih.gov/blast/db/nr.15.tar.gz"    
#>  [17] "ftp://ftp.ncbi.nih.gov/blast/db/nr.16.tar.gz"    
#>  [18] "ftp://ftp.ncbi.nih.gov/blast/db/nr.17.tar.gz"    
#>  [19] "ftp://ftp.ncbi.nih.gov/blast/db/nr.18.tar.gz"    
#>  [20] "ftp://ftp.ncbi.nih.gov/blast/db/nr.19.tar.gz"    
#>  [21] "ftp://ftp.ncbi.nih.gov/blast/db/nr.20.tar.gz"    
#>  [22] "ftp://ftp.ncbi.nih.gov/blast/db/nr.21.tar.gz"    
#>  [23] "ftp://ftp.ncbi.nih.gov/blast/db/nr.22.tar.gz"    
#>  [24] "ftp://ftp.ncbi.nih.gov/blast/db/nr.23.tar.gz"    
#>  [25] "ftp://ftp.ncbi.nih.gov/blast/db/nr.24.tar.gz"    
#>  [26] "ftp://ftp.ncbi.nih.gov/blast/db/nr.25.tar.gz"    
#>  [27] "ftp://ftp.ncbi.nih.gov/blast/db/nr.26.tar.gz"    
#>  [28] "ftp://ftp.ncbi.nih.gov/blast/db/nr.27.tar.gz"    
#>  [29] "ftp://ftp.ncbi.nih.gov/blast/db/nr.28.tar.gz"    
#>  [30] "ftp://ftp.ncbi.nih.gov/blast/db/nr.29.tar.gz"    
#>  [31] "ftp://ftp.ncbi.nih.gov/blast/db/nr.30.tar.gz"    
#>  [32] "ftp://ftp.ncbi.nih.gov/blast/db/nr.31.tar.gz"    
#>  [33] "ftp://ftp.ncbi.nih.gov/blast/db/nr.32.tar.gz"    
#>  [34] "ftp://ftp.ncbi.nih.gov/blast/db/nr.33.tar.gz"    
#>  [35] "ftp://ftp.ncbi.nih.gov/blast/db/nr.34.tar.gz"    
#>  [36] "ftp://ftp.ncbi.nih.gov/blast/db/nr.35.tar.gz"    
#>  [37] "ftp://ftp.ncbi.nih.gov/blast/db/nr.36.tar.gz"    
#>  [38] "ftp://ftp.ncbi.nih.gov/blast/db/nr.37.tar.gz"    
#>  [39] "ftp://ftp.ncbi.nih.gov/blast/db/nr.38.tar.gz"    
#>  [40] "ftp://ftp.ncbi.nih.gov/blast/db/nr.39.tar.gz"    
#>  [41] "ftp://ftp.ncbi.nih.gov/blast/db/nr.40.tar.gz"    
#>  [42] "ftp://ftp.ncbi.nih.gov/blast/db/nr.41.tar.gz"    
#>  [43] "ftp://ftp.ncbi.nih.gov/blast/db/nr.42.tar.gz"    
#>  [44] "ftp://ftp.ncbi.nih.gov/blast/db/nr.43.tar.gz"    
#>  [45] "ftp://ftp.ncbi.nih.gov/blast/db/nr.44.tar.gz"    
#>  [46] "ftp://ftp.ncbi.nih.gov/blast/db/nr.45.tar.gz"    
#>  [47] "ftp://ftp.ncbi.nih.gov/blast/db/nr.46.tar.gz"    
#>  [48] "ftp://ftp.ncbi.nih.gov/blast/db/nr.47.tar.gz"    
#>  [49] "ftp://ftp.ncbi.nih.gov/blast/db/nr.48.tar.gz"    
#>  [50] "ftp://ftp.ncbi.nih.gov/blast/db/nr.49.tar.gz"    
#>  [51] "ftp://ftp.ncbi.nih.gov/blast/db/nr.50.tar.gz"    
#>  [52] "ftp://ftp.ncbi.nih.gov/blast/db/nr.51.tar.gz"    
#>  [53] "ftp://ftp.ncbi.nih.gov/blast/db/nr.52.tar.gz"    
#>  [54] "ftp://ftp.ncbi.nih.gov/blast/db/nr.53.tar.gz"    
#>  [55] "ftp://ftp.ncbi.nih.gov/blast/db/nr.54.tar.gz"    
#>  [56] "ftp://ftp.ncbi.nih.gov/blast/db/nr.55.tar.gz"    
#>  [57] "ftp://ftp.ncbi.nih.gov/blast/db/nr.56.tar.gz"    
#>  [58] "ftp://ftp.ncbi.nih.gov/blast/db/nr.57.tar.gz"    
#>  [59] "ftp://ftp.ncbi.nih.gov/blast/db/nr.58.tar.gz"    
#>  [60] "ftp://ftp.ncbi.nih.gov/blast/db/nr.59.tar.gz"    
#>  [61] "ftp://ftp.ncbi.nih.gov/blast/db/nr.60.tar.gz"    
#>  [62] "ftp://ftp.ncbi.nih.gov/blast/db/nr.61.tar.gz"    
#>  [63] "ftp://ftp.ncbi.nih.gov/blast/db/nr.62.tar.gz"    
#>  [64] "ftp://ftp.ncbi.nih.gov/blast/db/nr.63.tar.gz"    
#>  [65] "ftp://ftp.ncbi.nih.gov/blast/db/nr.64.tar.gz"    
#>  [66] "ftp://ftp.ncbi.nih.gov/blast/db/nr.65.tar.gz"    
#>  [67] "ftp://ftp.ncbi.nih.gov/blast/db/nr.66.tar.gz"    
#>  [68] "ftp://ftp.ncbi.nih.gov/blast/db/nr.67.tar.gz"    
#>  [69] "ftp://ftp.ncbi.nih.gov/blast/db/nr.68.tar.gz"    
#>  [70] "ftp://ftp.ncbi.nih.gov/blast/db/nr.00.tar.gz.md5"
#>  [71] "ftp://ftp.ncbi.nih.gov/blast/db/nr.01.tar.gz.md5"
#>  [72] "ftp://ftp.ncbi.nih.gov/blast/db/nr.02.tar.gz.md5"
#>  [73] "ftp://ftp.ncbi.nih.gov/blast/db/nr.03.tar.gz.md5"
#>  [74] "ftp://ftp.ncbi.nih.gov/blast/db/nr.04.tar.gz.md5"
#>  [75] "ftp://ftp.ncbi.nih.gov/blast/db/nr.05.tar.gz.md5"
#>  [76] "ftp://ftp.ncbi.nih.gov/blast/db/nr.06.tar.gz.md5"
#>  [77] "ftp://ftp.ncbi.nih.gov/blast/db/nr.07.tar.gz.md5"
#>  [78] "ftp://ftp.ncbi.nih.gov/blast/db/nr.08.tar.gz.md5"
#>  [79] "ftp://ftp.ncbi.nih.gov/blast/db/nr.09.tar.gz.md5"
#>  [80] "ftp://ftp.ncbi.nih.gov/blast/db/nr.10.tar.gz.md5"
#>  [81] "ftp://ftp.ncbi.nih.gov/blast/db/nr.11.tar.gz.md5"
#>  [82] "ftp://ftp.ncbi.nih.gov/blast/db/nr.12.tar.gz.md5"
#>  [83] "ftp://ftp.ncbi.nih.gov/blast/db/nr.13.tar.gz.md5"
#>  [84] "ftp://ftp.ncbi.nih.gov/blast/db/nr.14.tar.gz.md5"
#>  [85] "ftp://ftp.ncbi.nih.gov/blast/db/nr.15.tar.gz.md5"
#>  [86] "ftp://ftp.ncbi.nih.gov/blast/db/nr.16.tar.gz.md5"
#>  [87] "ftp://ftp.ncbi.nih.gov/blast/db/nr.17.tar.gz.md5"
#>  [88] "ftp://ftp.ncbi.nih.gov/blast/db/nr.18.tar.gz.md5"
#>  [89] "ftp://ftp.ncbi.nih.gov/blast/db/nr.19.tar.gz.md5"
#>  [90] "ftp://ftp.ncbi.nih.gov/blast/db/nr.20.tar.gz.md5"
#>  [91] "ftp://ftp.ncbi.nih.gov/blast/db/nr.21.tar.gz.md5"
#>  [92] "ftp://ftp.ncbi.nih.gov/blast/db/nr.22.tar.gz.md5"
#>  [93] "ftp://ftp.ncbi.nih.gov/blast/db/nr.23.tar.gz.md5"
#>  [94] "ftp://ftp.ncbi.nih.gov/blast/db/nr.24.tar.gz.md5"
#>  [95] "ftp://ftp.ncbi.nih.gov/blast/db/nr.25.tar.gz.md5"
#>  [96] "ftp://ftp.ncbi.nih.gov/blast/db/nr.26.tar.gz.md5"
#>  [97] "ftp://ftp.ncbi.nih.gov/blast/db/nr.27.tar.gz.md5"
#>  [98] "ftp://ftp.ncbi.nih.gov/blast/db/nr.28.tar.gz.md5"
#>  [99] "ftp://ftp.ncbi.nih.gov/blast/db/nr.29.tar.gz.md5"
#> [100] "ftp://ftp.ncbi.nih.gov/blast/db/nr.30.tar.gz.md5"
#> [101] "ftp://ftp.ncbi.nih.gov/blast/db/nr.31.tar.gz.md5"
#> [102] "ftp://ftp.ncbi.nih.gov/blast/db/nr.32.tar.gz.md5"
#> [103] "ftp://ftp.ncbi.nih.gov/blast/db/nr.33.tar.gz.md5"
#> [104] "ftp://ftp.ncbi.nih.gov/blast/db/nr.34.tar.gz.md5"
#> [105] "ftp://ftp.ncbi.nih.gov/blast/db/nr.35.tar.gz.md5"
#> [106] "ftp://ftp.ncbi.nih.gov/blast/db/nr.36.tar.gz.md5"
#> [107] "ftp://ftp.ncbi.nih.gov/blast/db/nr.37.tar.gz.md5"
#> [108] "ftp://ftp.ncbi.nih.gov/blast/db/nr.38.tar.gz.md5"
#> [109] "ftp://ftp.ncbi.nih.gov/blast/db/nr.39.tar.gz.md5"
#> [110] "ftp://ftp.ncbi.nih.gov/blast/db/nr.40.tar.gz.md5"
#> [111] "ftp://ftp.ncbi.nih.gov/blast/db/nr.41.tar.gz.md5"
#> [112] "ftp://ftp.ncbi.nih.gov/blast/db/nr.42.tar.gz.md5"
#> [113] "ftp://ftp.ncbi.nih.gov/blast/db/nr.43.tar.gz.md5"
#> [114] "ftp://ftp.ncbi.nih.gov/blast/db/nr.44.tar.gz.md5"
#> [115] "ftp://ftp.ncbi.nih.gov/blast/db/nr.45.tar.gz.md5"
#> [116] "ftp://ftp.ncbi.nih.gov/blast/db/nr.46.tar.gz.md5"
#> [117] "ftp://ftp.ncbi.nih.gov/blast/db/nr.47.tar.gz.md5"
#> [118] "ftp://ftp.ncbi.nih.gov/blast/db/nr.48.tar.gz.md5"
#> [119] "ftp://ftp.ncbi.nih.gov/blast/db/nr.49.tar.gz.md5"
#> [120] "ftp://ftp.ncbi.nih.gov/blast/db/nr.50.tar.gz.md5"
#> [121] "ftp://ftp.ncbi.nih.gov/blast/db/nr.51.tar.gz.md5"
#> [122] "ftp://ftp.ncbi.nih.gov/blast/db/nr.52.tar.gz.md5"
#> [123] "ftp://ftp.ncbi.nih.gov/blast/db/nr.53.tar.gz.md5"
#> [124] "ftp://ftp.ncbi.nih.gov/blast/db/nr.54.tar.gz.md5"
#> [125] "ftp://ftp.ncbi.nih.gov/blast/db/nr.55.tar.gz.md5"
#> [126] "ftp://ftp.ncbi.nih.gov/blast/db/nr.56.tar.gz.md5"
#> [127] "ftp://ftp.ncbi.nih.gov/blast/db/nr.57.tar.gz.md5"
#> [128] "ftp://ftp.ncbi.nih.gov/blast/db/nr.58.tar.gz.md5"
#> [129] "ftp://ftp.ncbi.nih.gov/blast/db/nr.59.tar.gz.md5"
#> [130] "ftp://ftp.ncbi.nih.gov/blast/db/nr.60.tar.gz.md5"
#> [131] "ftp://ftp.ncbi.nih.gov/blast/db/nr.61.tar.gz.md5"
#> [132] "ftp://ftp.ncbi.nih.gov/blast/db/nr.62.tar.gz.md5"
#> [133] "ftp://ftp.ncbi.nih.gov/blast/db/nr.63.tar.gz.md5"
#> [134] "ftp://ftp.ncbi.nih.gov/blast/db/nr.64.tar.gz.md5"
#> [135] "ftp://ftp.ncbi.nih.gov/blast/db/nr.65.tar.gz.md5"
#> [136] "ftp://ftp.ncbi.nih.gov/blast/db/nr.66.tar.gz.md5"
#> [137] "ftp://ftp.ncbi.nih.gov/blast/db/nr.67.tar.gz.md5"
#> [138] "ftp://ftp.ncbi.nih.gov/blast/db/nr.68.tar.gz.md5"
mask.github <- tempfile()
file.create(mask.github)
#> [1] TRUE
install.bioinfo(nongithub.cfg = blast.databases, github.cfg = mask.github,
  show.all.names = TRUE)
#>  [1] "blast_env_nr"                  "blast_est_human"              
#>  [3] "blast_est_mouse"               "blast_est_others"             
#>  [5] "blast_gss"                     "blast_htgs"                   
#>  [7] "blast_human_genomic"           "blast_landmark"               
#>  [9] "blast_mouse_genomic"           "blast_nr"                     
#> [11] "blast_nt"                      "blast_other_genomic"          
#> [13] "blast_pataa"                   "blast_patnt"                  
#> [15] "blast_pdbaa"                   "blast_pdbnt"                  
#> [17] "blast_ref_prok_rep_genomes"    "blast_ref_viroids_rep_genomes"
#> [19] "blast_ref_viruses_rep_genomes" "blast_refseq_genomic"         
#> [21] "blast_refseq_protein"          "blast_refseq_rna"             
#> [23] "blast_refseqgene"              "blast_sts"                    
#> [25] "blast_swissprot"               "blast_taxdb"                  
#> [27] "blast_tsa_nr"                  "blast_tsa_nt"                 
#> [29] "blast_vector"