File: README.md

package info (click to toggle)
r-cran-bold 1.3.0-1
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 8,116 kB
  • sloc: sh: 11; makefile: 5
file content (325 lines) | stat: -rw-r--r-- 19,785 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
bold
====


[![Project Status: Active – The project has reached a stable, usable state and is being actively developed.](https://www.repostatus.org/badges/latest/active.svg)](https://www.repostatus.org/#active)
[![cran version](https://www.r-pkg.org/badges/version/bold)](https://cran.r-project.org/package=bold)
[![cran checks](https://badges.cranchecks.info/worst/bold.svg)](https://badges.cranchecks.info)
[![R-check](https://github.com/ropensci/bold/workflows/R-check/badge.svg)](https://github.com/ropensci/bold/actions/)
[![codecov.io](https://codecov.io/github/ropensci/bold/coverage.svg?branch=master)](https://app.codecov.io/gh/ropensci/bold?branch=master)
[![rstudio mirror downloads](https://cranlogs.r-pkg.org/badges/bold)](https://github.com/r-hub/cranlogs.app)

`bold` accesses BOLD barcode data.

The Barcode of Life Data Systems (BOLD) is designed to support the generation and application of DNA barcode data. The platform consists of four main modules: a data portal, a database of barcode clusters, an educational portal, and a data collection workbench.

This package retrieves data from the BOLD database of barcode clusters, and allows for searching of over 1.7M public records using multiple search criteria including sequence data, specimen data, specimen *plus* sequence data, as well as trace files.

Documentation for the BOLD API: http://v4.boldsystems.org/index.php/api_home

See also the taxize book for more options for taxonomic workflows with BOLD: https://taxize.dev/

## Installation

__Installation instructions__

__Stable Version__


```r
install.packages("bold")
```

__Development Version__

Install `sangerseqR` first if you're planning on downloading and reading trace files.
(The package is only used in the function `bold::bold_read_trace()`)

For R < 3.5


```r
source("http://bioconductor.org/biocLite.R")
biocLite("sangerseqR")
```

For R >= 3.5


```r
if (!requireNamespace("BiocManager", quietly = TRUE))
    install.packages("BiocManager")

BiocManager::install("sangerseqR")
```

Then install `bold`


```r
remotes::install_github("ropensci/bold")
```


## Usage

```r
library("bold")
```


### Search for sequence data only

Default is to get a list back


```r
bold_seq(taxon='Coelioxys')[[1]]
#> $id
#> [1] "ABEE117-17"
#> 
#> $name
#> [1] "Coelioxys elongata"
#> 
#> $gene
#> [1] "ABEE117-17"
#> 
#> $sequence
#> [1] "------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------TTATCATTATATACATATCATCCTTCCCCATCAGTTGATTTAGCAATTTTTTYTTTACATTTATCAGGAATTTYTTYTATTATCGGATCAATAAATTTTATTGTAACAATTTTAATAATAAAAAATTATTCAATAAATTATAATCAAATACCTTTATTTCCATGATCAATTTTAATTACTACAATTTTATTATTATTATCATTACCTGTATTAGCAGGAGCTATTACAATATTATTATTTGATCGTAATTTAAATTCATCATTTTTTGACCCAATAGGAGGAGGAGATCCTATTTTATATCAACATTTATTTTG------------------------------------"
```

You can optionally get back the `crul` response object


```r
res <- bold_seq(taxon='Coelioxys', response=TRUE)
res$response_headers
#> $status
#> [1] "HTTP/2 200 "
#> 
#> $server
#> [1] "nginx"
#> 
#> $date
#> [1] "Mon, 20 Apr 2020 16:11:50 GMT"
#> 
#> $`content-type`
#> [1] "application/x-download"
#> 
#> $`x-powered-by`
#> [1] "PHP/5.3.15"
#> 
#> $`content-disposition`
#> [1] "attachment; filename=fasta.fas"
#> 
#> $`x-frame-options`
#> [1] "SAMEORIGIN"
#> 
#> $`x-content-type-options`
#> [1] "nosniff"
#> 
#> $`x-xss-protection`
#> [1] "1; mode=block"
```

### Search for specimen data only

By default you download `tsv` format data, which is given back to you as a `data.frame`.


```r
res <- bold_specimens(taxon='Osmia')
head(res[,1:8])
#>      processid   sampleid recordID catalognum   fieldnum
#> 1  BEECA373-06 05-NT-0373   514740            05-NT-0373
#> 2  BEECA607-06 05-NT-0607   516959            05-NT-0607
#> 3  BEECA963-07 01-OR-0790   554153            01-OR-0790
#> 4  BEECB358-07 04-WA-1076   596920 BBSL697174 04-WA-1076
#> 5  BEECB438-07 00-UT-1157   597000 BBSL432653 00-UT-1157
#> 6 BEECC1176-09 02-UT-2849  1060879 BBSL442586 02-UT-2849
#>                    institution_storing collection_code      bin_uri
#> 1   York University, Packer Collection              NA BOLD:AAI2013
#> 2   York University, Packer Collection              NA BOLD:AAC8510
#> 3   York University, Packer Collection              NA BOLD:ABZ3184
#> 4 Utah State University, Logan Bee Lab              NA BOLD:AAC5797
#> 5 Utah State University, Logan Bee Lab              NA BOLD:AAF2159
#> 6   York University, Packer Collection              NA BOLD:AAE5368
```

### Search for specimen plus sequence data

By default you download `tsv` format data, which is given back to you as a `data.frame`.
You can get the sequences in a separated list with `sepfasta=TRUE`.


```r
res <- bold_seqspec(taxon='Osmia', sepfasta=TRUE)
res$fasta[1:2]
#> $`BEECA373-06`
#> [1] "-ATTTTATATATAATTTTTGCTATATGATCAGGTATAATCGGATCAGCAATAAGAATTATTATTCGTATAGAATTAAGAATTCCTGGTTCATGAATTTCAAATGATCAAACTTATAACTCTTTAGTAACTGCTCATGCTTTTTTAATAATTTTTTTCTTAGTTATACCTTTTTTAATTGGAGGATTTGGAAATTGATTAATTCCTTTAATATTAGGAATCCCGGATATAGCTTTCCCTCGAATAAATAATATTAGATTTTGACTTTTACCCCCTTCATTAATATTATTACTTTTAAGAAATTTTATAAATCCAAGACCAGGTACTGGATGAACTGTTTATCCTCCTCTTTCTTCTCATTTATTTCATTCTTCTCCTTCAGTTGATATAGCCATTTTTTCTTTACATATTTCCGGTTTATCTTCTATTATAGGTTCGTTAAATTTTATTGTTACAATTATTATAATAAAAAATATTTCTTTAAAACATATCCAATTACCTTTATTTCCATGATCTGTTTTTATTACTACTATCTTATTACTTTTTTCTTTACCTGTTTTAGCAGGAGCTATTACTATATTATTATTTGATCGAAATTTTAATACTTCATTTTTTGATCCTACAGGAGGTGGAGATCCAATCCTTTATCAACATTTATTT"
#> 
#> $`BEECA607-06`
#> [1] "AATATTATATATAATTTTTGCTTTGTGATCTGGAATAATTGGTTCATCTATAAGAATTATTATTCGTATAGAATTAAGAATTCCTGGTTCATGAATTTCAAATGATCAAGTTTATAATTCATTAGTTACAGCTCATGCTTTTTTAATAATTTTTTTTTTAGTTATACCATTTATAATTGGAGGATTTGGAAATTGATTAGTTCCTTTAATATTAGGAATTCCTGATATAGCTTTTCCTCGAATAAATAATATTAGATTTTGATTATTACCACCATCATTAATACTTTTACTTTTAAGAAATTTTTTTAATCCAAGTTCAGGAACTGGATGAACTGTATATCCTCCTCTTTCATCATATTTATTTCATTCTTCACCTTCTGTTGATTTAGCTATTTTTTCTCTTCATATATCAGGTTTATCTTCTATTATAGGTTCATTAAACTTTATTGTAACTATTATTATAATAAAAAATATTTCTTTAAAGTATATTCAATTGCCATTATTTCCATGATCTGTTTTTATTACTACAATTCTTTTATTATTATCATTACCAGTTTTAGCAGGTGCTATTACTATATTATTATTTGATCGAAATTTTAATACTTCATTTTTTGATCCTACAGGAGGGGGAG--------------------------"
```

Or you can index to a specific sequence like


```r
res$fasta['GBAH0293-06']
#> $`GBAH0293-06`
#> [1] "------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------TTAATGTTAGGGATTCCAGATATAGCTTTTCCACGAATAAATAATATTAGATTTTGACTGTTACCTCCATCTTTAATATTATTACTTTTAAGAAATTTTTTAAATCCAAGTCCTGGAACAGGATGAACAGTTTATCCTCCTTTATCATCAAATTTATTTCATTCTTCTCCTTCAGTTGATTTAGCAATTTTTTCTTTACATATTTCAGGTTTATCTTCTATTATAGGTTCATTAAATTTTATTGTTACAATTATTATAATAAAAAATATTTCTTTAAAATATATTCAATTACCTTTATTTTCTTGATCTGTATTTATTACTACTATTCTTTTATTATTTTCTTTACCTGTATTAGCTGGAGCTATTACTATATTATTATTTGATCGAAATTTTAATACATCTTTTTTTGATCCAACAGGAGGGGGAGATCCAATTCTTTATCAACATTTATTTTGATTTTTTGGTCATCCTGAAGTTTATATTTTAATTTTACCTGGATTTGGATTAATTTCTCAAATTATTTCTAATGAAAGAGGAAAAAAAGAAACTTTTGGAAATATTGGTATAATTTATGCTATATTAAGAATTGGACTTTTAGGTTTTATTGTT---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------"
```

Note: you can get several sequences for one process id.
For example:
```{r}
res <- bold_seqspec(taxon='Salix', sepfasta=TRUE)
res$fasta[names(res$fasta) == "SALIX204-08"]
#> $SALIX204-08
#> CCGCCCCTAA------ATTTACAAATTACCAAGATTCGAATTTATAACATTTACTATTCAATTTAACC-------------------TTTTTTTATAAGTCTTA-------------------------TAAGAAAGAAATACAAAAGTAAAAAAAAAA-TTATTTAAGGAGCAATGCCAACCCTCTTGATAGAACAAGAAATTGGCGATTGCTCCTTTTTTTTTTTT--CAAAAGCTCGTACACACTAAGACAAAAGTCTTATCCATTTACAAAAGTCTTATCCATTTGT
#> $SALIX204-08
#> [1] ATTGGAACGCCAAGTTGCTCTTGATTCGGGGGTTCCTGCTATAGCCGAACACGAGGGAAAGATAATTTATACCGACATTGACAAGATTATTTTATCGGGGAATGGTTATACTGTAAGCATTCCATTAGTTATGTATCAACGTTCCAACAAAAATACCTGTATGCATCAAAAAACTCAGGTTCAGCGAGGAAAATGCATTAAAAGGGGACAAGTTTTGGCGGACGGTGCCGCTACAGTTGGTGGCGAACTCGCCTTGGGCAAAAACATATTAGTAGCTTATATGCCATGGGAAGGCTACAATTTTGAAGATGCGGTACTCATTAGCGAACGTCTGGTATATGAAGATGTTTATACTTCT
#> $SALIX204-08
#> [1] TATTGGATTTGTTGCTAAAATATCGGTATTAAACCCGAAACTCCCGGCGGATGACCAGTGACCCAAGGAAACGAAAGAATCGGTTATATTTTTCATACGATCTCCTCTTATTATAGACAGACTAATTATCTATTTATTTTTTTTTTT---TTAT-TATTCATTTACCTATTTCTAAATAGTAACTAGAGTCAAAAATATATTCAATTTCTATTAA--------------------TTAGAAATTTATTTTTTGTTCAATTGTAAATTTCTAATTAAGAACAATACTTAGTAAAATTGGGTATCAGGTCTTGTGCCAATTGCAAAATATCTACTTTA--TTTTTTTTTGTTACAACACTTCCTTAAAAAAGT-TTGGATTGGACTAACGAAGAAAGGGGAAGGAAGAAAGTGAATCAGTATACTAATTCCTCATCCCCCAATCAATCCTTCCCGTTGGGTTATTGTCCCAAT-AAAAATAAAACGAAATAAATAATTGTAGGAGTAAAATCTTGATAGAATTCGAAAAAGCAAGTACAAGAAATAAT-AAAAAAAAAATACGTA----------TTTTTTTTTTATTTTATAGGATTAGATTAAACAAAT
#> $SALIX204-08
#> [1] CTGCTGTAAGTTTTCGATGAAATTTTGAATACTATCCTAGAATAATTAATAATTCATGAGTTATTCAAGAGAAAAAATTCTACTAATTGATAAGATCAGATA--------------------AGTCTTCTAGTTCTTTCTAGTTCTTTATAGTCTAGGCCCTTGATTCAAACATTGAAGTTATTGTATAAACGTGAAAAATCTGGATTACCTACCCCATCTCCTCATTCTGAACTTTTTTCCATTCTATT----------------AAAAAAAACCTATTCGGTTAGATCCACCCGAAATAT------GGAATTTTCGGTATAAAAGCAAATTTTTGGCACACAAGACTCGACTCTTATTACA--------------------AATGAATTTAGAAAAATGCTTTTCTATTTCGAAAAAGTTCTAGAAACCACTTCATTTCTTGGTGTCAAAATGGGATATATGGTATAAATATAGAGAATCTATTTTCTTTTTTTCCAAACAAAAAAAAAA----GATCTTGGAGATTGTCTA
#> $SALIX204-08
#> [1] TGAGACTATGCTTGGCAAACGGGTTGATTATTCGGGGCGTTCCGTTATTGTCGTAGGCCCCTCACTTTCATTACATCGATGTGGATTGCCTCGCGAAATTGCAATAGAGCTTTTCCAGACATTTGTAATTCGTGGTCTAATTAGGCAACATCTTGCTTCAAACATAGGAGTTGCTAAGAGTAAAATTCGGGAAAAAGAGCCAATTGTATGGGGAATACTTCAGGAGGTTATGCGAGGACATCCTATATTGCTAAATAGAGCGCCTACTCTGCATAGATTAGGCATACAGGCATTCCAACCCATTTTAGTGGAAGGACGTGCTATTTGTTTACATCCATTAGTTCGTAAGGGATTCAATGCAGATTTTGATGGGGATCAAATGGCTGTTCATGTACCTTTATCGTTGGAGGCTCAAGCGGAGGCTCGTTTACTTATGTTTTCTCATATGAATCTCT
#> $SALIX204-08
#> [1] CAAACAGAAACTAAAGCAAGTGTTGGATTCAAGGCTGGTGTTAAAGATTATAAATTGACTTATTATACTCCTGAATATGAAACCAAAGATACTGATATCTTGGCAGCATTCCGAGTAACTCCTCAACCTGGAGTTCCGCCCGAGGAAGCAGGGGCCGCGGTAGCTGCTGAATCTTCTACTGGTACATGGACAACTGTGTGGACCGACGGGCTTACCAGTCTTGATCGTTATAAGGGACGATGCTACGACATCGAGCCCGTTGCTGGAGAAGAAAATCAATATATTGCTTATGTAGCTTACCCCTTAGACCTTTTTGAAGAAGGTTCTGTTACTAACATGTTTACTTCCATTGTGGGTAATGTATTTGGGTTCAAAGCCCTACGCGCTCTACGTCTAGAGGATTTGCGAATTCCTACTGCTTATGTTAAAACTTTTCAAGGCCCACCTCATGGTATCCAAGTTGAGAGAGATAAATTGAATAAGTATGGTCGCCCCCTATTGGGCTGTACTATTAAACCTAAATTGGGGTTATCCGCTAAGAATTACGGTAGAGCAGTTTATGAATGTCTACGCGGTGGACTTGATTTTACCAAAGATGATGAGAACGTGAACTCCCAACCATTTATGCGTTGGA
#> $SALIX204-08
#> [1] TTTCCACATTTAAATTATGTGTCAAATGGACTAATACCCTACCCCATCCATCTAGAAAAATTGGTTCAAATCCTTCGCTATTGGGTGAAAGATCCCTCCTCTTTGCATTTATTACGACTCTTTCTTCACGAGTATTGGAATTTGAACAGTCGTATTATTCCAAAGAAATCTATTTCTTTTTTTGCAAAAAAGACTCCAAGATTCTTCTTGTTCTTATATAATTCTCATGTATATGAATACGAGTCCGTTTTCTTTTTTCTTTGTAATCAATCCTTTCATTTCCGATTAACATTTTCTCAGGTCTTTCTTGAGCGAATATATTTCTATGGAAAAATAGAACATTTTGTA---------GAAGTCTTTACTAAGGATTGGGGGGACAGCCTATGCTTGCTCAAGGATCCTTTCATACATTATCTTAGATATCAAGGAAAATCCATTTTTGTCTCAAAGGATACGCCTCTTCTGATGAAAAAATGGAAATATTACCTTGTCAATTTATGTCAATGTCATTTTGATGTGTGCTTTCAACCCCCCAGGATCCATATAAACCCATTTTCATTATACAAGCATTCTTTCGCCTTATTAGGTTATCTTTCAAGTTCAAGTGTACGACTAAACCTTTCAGTGGTACGGAGTCAAATGCTAGAAAATGCATTTCTAATAGATAATATTATGAATAAACTCGATACAACAGTTTCAATTATTCCTTTGATTGGATCATTAGCAAAACTGAAATTTTGTAACGCAGTAGGACATCCCATTAGTAAACCGGCCTGGGCCGATTTTTCGGATTCTGATATTATCGACCGATTTGTCCGTATATGCAGAAATCTTTCTCATTATTATAGCGGATCCTCAAGAAAAAAGAGTTTGTATCGAATAAAATATATAC
#> $SALIX204-08
#> [1] TGCAGAATCCCGTGAACCATCGAGTCTTTGAACGCAAGTTGCGCCCGAGGCCTCCTGGTCGAGGGCACGTCTGCCT---GGGTGTCACGCATCGTCGCCCCC-------ACTCCCCTCG-------------------------GCTCACGAGGGCGGGGGCGGATACTGGTCTCCCGCGCGCTCCCGCCCGTGGTTGGCCT-AAAATCGAGTCCT-CGGCGGCGGTTGCC----ACGACAAGCGGTGGTTG-----------------------AGAGACCCTCGGACACGGTCGTGCGCGTGCTTG---------------------TCGCCCCCGGGAC--------------CTCCCGGACCCCCGAGCATTGGCTTTC-----------AAG-------------GATGCTCTCGTTGCGACCCCAGGTCAGGCGGGACTACCCGCTGAGTTTAA
```
The reason being some process have different sequences for different markers.
```{r}
res$data[names(res$fasta) == "SALIX204-08", "markercode"]
#>[1] "trnH-psbA" "rpoB"      "atpF-atpH" "psbK-psbI" "rpoC1"     "rbcLa"     "matK"      "ITS2"
```

### Get trace files

This function downloads files to your machine - it does not load them into your R session - but prints out where the files are for your information.

```r
traces1 <- bold_trace(ids = 'ACRJP618-11', progress = FALSE)
traces1
#><bold trace files> 
#>
#>./bold_trace_files/ACRJP618-11[LepF1,LepR1]_F.ab1
traces2 <- bold::bold_trace(ids = 'SALIX204-08', progress = FALSE)
traces2
#> <bold trace files> 
#> 
#> ./bold_trace_files/ACRJP618-11[LepF1,LepR1]_F.ab1
#> ./bold_trace_files/SALIX204-08[MatK-1RKIM-f,MatK-3FKIM-r]_F.ab1
#> ./bold_trace_files/SALIX204-08[MatK-1RKIM-f,MatK-3FKIM-r]_R.ab1
#> ./bold_trace_files/SALIX204-08[rbcLa-F,rbcLa-R]_F.ab1
#> ./bold_trace_files/SALIX204-08[rbcLa-F,rbcLa-R]_R.ab1
```

Then to read the files, you can use `bold::bold_read_trace()` with either the boldtrace object or a subset of the paths.

```{r}
bold_read_trace(trace1)
#> $`ACRJP618-11[LepF1,LepR1]_F.ab1`
#> Number of datapoints: 8877
#> Number of basecalls: 685
#> 
#> Primary Basecalls: NNNNNNNNNNNNNNNNNNGNNNTTGAGCAGGNATAGTAGGANCTTCTCTTAGTCTTATTATTCGAACAGAATTAGGAAATCCAGGATTTTTAATTGGAGATGATCAAATCTACAATACTATTGTTACGGCTCATGCTTTTATTATAATTTTTTTTATAGTTATACCTATTATAATTGGAGGATTTGGTAATTGATTAGTTCCCCTTATACTAGGAGCCCCAGATATAGCTTTCCCTCGAATAAACAATATAAGTTTTTGGCTTCTTCCCCCTTCACTATTACTTTTAATTTCCAGAAGAATTGTTGAAAATGGAGCTGGAACTGGATGAACAGTTTATCCCCCACTGTCATCTAATATTGCCCATAGAGGTACATCAGTAGATTTAGCTATTTTTTCTTTACATTTAGCAGGTATTTCCTCTATTTTAGGAGCGATTAATTTTATTACTACAATTATTAATATACGAATTAACAGTATAAATTATGATCAAATACCACTATTTGTGTGATCAGTAGGAATTACTGCTTTACTCTTATTACTTTCTCTTCCAGTATTAGCAGGTGCTATCACTATATTATTAACGGATCGAAATTTAAATACATCATTTTTTGATCCTGCAGGAGGAGGAGATCCAATTTTATATCAACATTTATTTTGATTTTTTGGACNTCNNNNAAGTTTAAN
#> 
#> Secondary Basecalls:

bold_read_trace(trace2$ab1[1:2])
># $`ACRJP618-11[LepF1,LepR1]_F.ab1`
># Number of datapoints: 8877
># Number of basecalls: 685
># 
># Primary Basecalls: NNNNNNNNNNNNNNNNNNGNNNTTGAGCAGGNATAGTAGGANCTTCTCTTAGTCTTATTATTCGAACAGAATTAGGAAATCCAGGATTTTTAATTGGAGATGATCAAATCTACAATACTATTGTTACGGCTCATGCTTTTATTATAATTTTTTTTATAGTTATACCTATTATAATTGGAGGATTTGGTAATTGATTAGTTCCCCTTATACTAGGAGCCCCAGATATAGCTTTCCCTCGAATAAACAATATAAGTTTTTGGCTTCTTCCCCCTTCACTATTACTTTTAATTTCCAGAAGAATTGTTGAAAATGGAGCTGGAACTGGATGAACAGTTTATCCCCCACTGTCATCTAATATTGCCCATAGAGGTACATCAGTAGATTTAGCTATTTTTTCTTTACATTTAGCAGGTATTTCCTCTATTTTAGGAGCGATTAATTTTATTACTACAATTATTAATATACGAATTAACAGTATAAATTATGATCAAATACCACTATTTGTGTGATCAGTAGGAATTACTGCTTTACTCTTATTACTTTCTCTTCCAGTATTAGCAGGTGCTATCACTATATTATTAACGGATCGAAATTTAAATACATCATTTTTTGATCCTGCAGGAGGAGGAGATCCAATTTTATATCAACATTTATTTTGATTTTTTGGACNTCNNNNAAGTTTAAN
># 
># Secondary Basecalls: 
># 
># $`SALIX204-08[MatK-1RKIM-f,MatK-3FKIM-r]_F.ab1`
># Number of datapoints: 16299
># Number of basecalls: 877
># 
># Primary Basecalls: NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTACGACTCTTTCTTCACGAGTATTGGAATTTGAACAGTCGTATTATTCCAAAGAAATCTATTTCTTTTTTTGCAAAAAAGACTCCAAGATTCTTCTTGTTCTTATATAATTCTCATGTATATGAATACGAGTCCGTTTTCTTTTTTCTTTGTAATCAATCCTTTCATTTCCGATTAACATTTTCTCAGGTCTTTCTTGAGCGAATATATTTCTATGGAAAAATAGAACATTTTGTAGAAGTCTTTACTAAGGATTGGGGGGACAGCCTATGCTTGCTCAAGGATCCTTTCATACATTATCTTAGATATCAAGGAAAATCCATTTTTGTCTCAAAGGATACGCCTCTTCTGATGAAAAAATGGAAATATTACCTTGTCAATTTATGTCAATGTCATTTTGATGTGTGCTTTCAACCCCCCAGGATCCATATAAACCCATTTTCATTATACAAGCATTCNTTCGCCTTATTAGGTTATCTTTCNAGTTCNAGTGNNCNACTNANCCTTTCAGTGGTACGGAGTCAAATGCTANAAAATGCATTTCTAATANATAATATTATGAATAAACTCGATACAACAGTTTCAATTANTCCTTTGATTGGATCATTAGCANAACTGAAATTTTGTNACGCNGTANGACATCCCATTAGTNAAACNGGCCTGNGCCGATTTTTCGGATTCTGATATTANCNACNGANTTGTCCNTNNNNNCAGAAATCNNNNTCATTNTNANNNCNGATCCNNNAGAAANANGAANTNNTATCNAATANAATATANNNTTCNNCTTTCNTGNGNNANNNCTTNGGCTCNTNANCNNNNANTNNNNAANNGN
># 
># Secondary Basecalls: 
```

### Large data

Sometimes with `bold_seq()`, `bold_seqspec()` and `bold_specimen()` you request a lot of data, which can cause problems due 
to BOLD's servers. 

An example is the taxonomic name _Arthropoda_. When you send a request like 
`bold_seq(taxon = "Arthropoda")`, `bold_seqspec(taxon = "Arthropoda")` or `bold_specimen(taxon = "Arthropoda")` BOLD attempts to give you back sequences and/or specimen information for all records under _Arthropoda_. This, as you can imagine, is a lot of sequences. 

```r
library("taxize")
```

Using `taxize::downstream` get children of _Arthropoda_

```r
x <- downstream("Arthropoda", db = "ncbi", downto = "class")
#> ══  1 queries  ═══════════════
#> ✔  Found:  Arthropoda
#> ══  Results  ═════════════════
#> 
#> ● Total: 1 
#> ● Found: 1 
#> ● Not Found: 0
nms <- x$Arthropoda$childtaxa_name
```

Optionally, check that the name exists in BOLD's data. Any that are not in 
BOLD will give back a row of NAs

```r
checks <- bold_tax_name(nms)
# all is good
checks[,1:5]
#>     taxid         taxon tax_rank tax_division parentid
#> 1   26059   Pycnogonida    class     Animalia       20
#> 2      63     Arachnida    class     Animalia       20
#> 3      74   Merostomata    class     Animalia       20
#> 4  493944     Pauropoda    class     Animalia       20
#> 5   80390      Symphyla    class     Animalia       20
#> 6      85     Diplopoda    class     Animalia       20
#> 7      75     Chilopoda    class     Animalia       20
#> 8      82       Insecta    class     Animalia       20
#> 9     372    Collembola    class     Animalia       20
#> 10 734357       Protura    class     Animalia       20
#> 11     84     Remipedia    class     Animalia       20
#> 12     73 Cephalocarida    class     Animalia       20
#> 13     68  Branchiopoda    class     Animalia       20
#> 14 765970   Hexanauplia    class     Animalia       20
#> 15     69  Malacostraca    class     Animalia       20
#> 16 889450 Ichthyostraca    class     Animalia       20
#> 17     NA          <NA>     <NA>         <NA>       NA
#> 18     80     Ostracoda    class     Animalia       20
```

Then pass those names to `bold_seq()`. You could pass all names in at once,
but we're trying to avoid the large data request problem here, so run each 
one separately with `lapply` or a for loop like request. 


```r
out <- lapply(nms, bold_seq)
```

## Citation

Get citation information for `bold` in R by running: `citation(package = 'bold')`

## Meta

* Please [report any issues or bugs](https://github.com/ropensci/bold/issues)
* License: MIT
* Get citation information for `bold` in R doing `citation(package = 'bold')`
* Please note that this project is released with a [Contributor Code of Conduct](https://ropensci.org/code-of-conduct/). By participating in this project you agree to abide by its terms.