ropensci / bold

Interface to the Bold Systems barcode webservice
https://docs.ropensci.org/bold
Other
17 stars 11 forks source link

'taxon' argument to bold_seqspec() #67

Closed jphill01 closed 4 years ago

jphill01 commented 4 years ago

Is there a way for 'taxon' to take multiple species names in a vector?

Something like:

taxa <- c("Dorosoma cepedianum", "Coregonus clupeaformis") 
bold_seqspec(taxon = taxa, marker = "COI-5P")

I have tried using a for loop as follows:

for (i in 1:length(taxa)) {
  bold_seqspec(taxon = taxa[i], marker = "COI-5P")
}

which runs, but only returns sequences for the first species in the vector.

sckott commented 4 years ago

thanks for your question. in the future always include the output of sessionInfo() after loading bold so we can see what version of R and bold you're running

taxon param takes 1 or more names.

taxa <- c("Dorosoma cepedianum", "Coregonus clupeaformis") 
x <- bold_seqspec(taxon = taxa, marker = "COI-5P")
unique(x$species_name)
#> [1] "Coregonus clupeaformis" "Dorosoma cepedianum"
jphill01 commented 4 years ago

Apologies...

I meant to use bold_seq() in place of bold_seqspec(). This function doesn't seem to take multiple arguments.

sckott commented 4 years ago

can you include your sessioninfo please

jphill01 commented 4 years ago

Sorry about that.

My session info is below:

R version 3.6.0 (2019-04-26)
Platform: x86_64-apple-darwin15.6.0 (64-bit)
Running under: macOS High Sierra 10.13.6

Matrix products: default
BLAS:       /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
LAPACK: /Library/Frameworks/R.framework/Versions/3.6/Resources/lib/libRlapack.dylib

locale:
[1] en_CA.UTF-8/en_CA.UTF-8/en_CA.UTF-8/C/en_CA.UTF-8/en_CA.UTF-8

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] bold_0.9.0

loaded via a namespace (and not attached):
 [1] compiler_3.6.0 magrittr_1.5   plyr_1.8.4     R6_2.4.0       tools_3.6.0   
 [6] httpcode_0.2.0 curl_3.3       Rcpp_1.0.1     xml2_1.2.0     stringi_1.4.3 
[11] reshape_0.8.8  crul_0.7.4     stringr_1.4.0  jsonlite_1.6  
sckott commented 4 years ago

thanks. does this not do what you want

taxa <- c("Dorosoma cepedianum", "Coregonus clupeaformis") 
x <- bold_seq(taxon = taxa, marker = "COI-5P")
nms <- vapply(x, "[[", "", "name")
unique(nms)
#> [1] "Coregonus clupeaformis" "Dorosoma cepedianum"
x[nms == taxa[1]][[1]]
#> $id
#> [1] "BCFB681-06"
#> 
#> $name
#> [1] "Dorosoma cepedianum"
#> 
#> $gene
#> [1] "BCFB681-06"
#> 
#> $sequence
#> [1] "CCTTTATCTAGTATTCGGTGCCTGAGCGGGGATAGTAGGGACCGCCCTAAGCCTCCTAATTCGAGCAGAATTAAGCCAACCTGGGGCGCTTCTTGGAGACGACCAGATCTACAATGTTATCGTTACGGCACATGCCTTCGTAATGATTTTCTTCATAGTAATACCAATCCTGATTGGAGGATTTGGAAACTGGCTCGTCCCCCTAATGATCGGAGCACCCGACATGGCATTCCCACGAATGAATAATATGAGCTTTTGACTCCTGCCGCCTTCTTTCCTTCTTCTTCTAGCTTCCTCAGGGGTGGAAGCCGGAGCAGGGACAGGATGAACAGTGTACCCCCCTCTATCGGGCAATCTGGCTCACGCCGGAGCATCCGTAGACCTGACTATTTTTTCACTTCATCTTGCGGGTATCTCATCAATTCTTGGGGAAATTAATTTTATTACCACAATTATTAACATGAAGCCCCCCGCAATCTCACAATACCAGACGCCCCTATTTGTCTGATCTGTCCTTGTGACTGCCGTCCTCCTTCTCCTCTCTCTCCCCGTTCTGGCCGCCGGAATTACTATACTACTTACGGACCGAAATCTAAACACAACTTTCTTTGACCCCGCAGGTGGAGGAGACCCCATCCTGTACCAGCACCTA"
x[nms == taxa[2]][[1]]
#> $id
#> [1] "BCF377-07"
#> 
#> $name
#> [1] "Coregonus clupeaformis"
#> 
#> $gene
#> [1] "BCF377-07"
#> 
#> $sequence
#> [1] "CCTTTATTTAGTATTTGGTGCCTGAGCCGGAATAGTCGGCACAGCCCTAAGCCTTTTAATCCGAGCGGAACTAAGCCAACCCGGGGCTCTTCTAGGGGATGATCAGATTTATAATGTGATCGTCACGGCCCACGCCTTCGTTATGATTTTCTTTATAGTTATGCCAATTATGATTGGAGGCTTTGGAAACTGATTAATCCCACTTATAATCGGGGCCCCCGACATGGCATTTCCCCGAATGAATAATATGAGCTTTTGGCTCCTTCCCCCCTCCTTTCTCCTTCTCCTGGCCTCGTCCGGAGTTGAAGCCGGTGCCGGCACAGGATGAACAGTCTACCCCCCTCTGGCAGGCAACCTCGCCCACGCAGGAGCCTCCGTCGATTTAACTATTTTCTCCCTCCACTTAGCTGGTATTTCCTCTATCTTGGGGGCCGTTAATTTTATTACAACCATTATTAATATGAAACCCCCAGCTATTTCCCAGTATCAAACCCCTCTTTTTGTCTGGGCCGTCTTAATTACCGCAGTCCTTCTACTGCTTTCCCTTCCTGTCCTAGCAGCAGGTATTACCATGCTACTCACAGACCGGAATCTGAACACCACTTTCTTTGACCCAGCGGGCGGGGGAGATCCAATCCTGTATCAACACCTC"
jphill01 commented 4 years ago

Yes, this works!