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.
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 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 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"]
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"