text: user691: I’m trying to find common names from a list of scientific names (not all will have them though).
  I was attempting to use taxize in R but it aborts if it doesn’t find an entry in EOL and I don’t know a way around this other than manually editing the list - in which case I might as well check all this way.
  Does anyone have a better way of doing this?
  
  user298: As Pierre suggested, you can get a dump of such names from NCBI. Then, to query it for the common name for a species using its Latin name, you can do:
  $ awk -F'\t' -vname="Mus musculus" '($7=="scientific name" && $3==name){
                                        a[$1]=$3
                                      } 
                                      ($1 in a && /genbank common name/){  
                                        print $3
                                      }' names.dmp
  house mouse
  
  
  user1572: Getting back to the original question about using taxize to search specifically in EOL, it looks like the most recent version of the package does not produce this error.
  The current version of R I'm using (3.4.2) produces the following output:
  
  sci2comm( c("Cancer", "Lophopanopeus"), db="eol" )
  $Cancer
     [1] "En art taskekrabbe"              "Felsenkrabbe"                    "Atlantic rock crab"
     [4] "Jaiba de roca amarilla"          "Tourteau poïnclos"               "Granciporro atlantico giallo"
     [7] "Atlantische rotskrab"            "Sapateira de rocha do Atlântico" "Bogenkrabbe"
    [10] "red rock crab"                   "Pacific rock crab"               "Jaiba del Pacífico"
    [13] "Tourteau du Pacifique"           "Granciporro del Pacifico"        "Pacifische rotskrab"
    [16] "Sapateira de rocha do Pacífico"  "Jonahkrabbe"                     "Jonah crab"
    [19] "Jaiba de roca Jonás"             "Tourteau jona"                   "Grancipporo atlantico rosso"
    [22] "Jonakrab"                        "Sapateira boreal"                "Bou"
    [25] "Almindelig taskekrabbe"          "Taskekrabbe"                     "Taschenkrebs"
    [28] "Edible crab"                     "rock crab"                       "Buey"
    [31] "Buey de mar"                     "Jaiba de roca masera"            "Masera"
    [34] "Paguro"                          "Pato"                            "Sabago"
    [37] "Isotaskurapu"                    "Crabe dormeur"                   "Dormeur"
    [40] "Tourteau"                        "crabe-dormeur"                   "Granchio di mare"
    [43] "Granciporro"                     "Noordzeekrab"                    "grote krab"
    [46] "grote noordzeekrab"              "hoofdkrab"                       "slagkrab"
    [49] "steenkrab"                       "toogkrab"                        "zeekrab"
    [52] "Sapateira"                      
  $Lophopanopeus
    [1] "blackclaw crestleg crab" "knobkneed crestleg crab" "knobknee crestleg crab"  "molarless crestleg crab"
  $'Pugettia foliata'
    character(0)
  
  A slightly older version of R (3.3.2) produces an error when one of the taxa was not found:
  
  sci2comm( c("Cancer", "Lophopanopeus", "Pugettia foliata"), db="eol" )
  Error in eol_pages(taxonconceptID = x, common_names = TRUE, ...) : 
      Not Found (HTTP 404).
  
  I am very thankful for the package updates!
  
  user71: use the NCBI taxon dump under ftp://ftp.ncbi.nih.gov/pub/taxonomy
  in taxdmp.zip you'll find all the names for a given NCBI taxon
  $ grep -w ^9606 names.dmp 
  9606    |   Homo sapiens    |       |   scientific name |
  9606    |   Homo sapiens Linnaeus, 1758 |       |   authority   |
  9606    |   human   |       |   genbank common name |
  9606    |   man |       |   common name |
  
  
  user191: As Pierre mentioned, NCBI is a good resource for this kind of transformation.
  You can still use taxize to perform the conversion:
  library("taxize")
  
  species <- c('Helianthus annuus', 'Mycobacterium bovis', 'Rattus rattus', 'XX', 'Mus musculus')
  
  uids <- get_uid(species)
  
  # keep only uids which you have in the database
  uids.found <- as.uid(uids[!is.na(uids)])
  # keep only species names  corresponding to your ids
  species.found <- species[!is.na(uids)]
  
  common.names <- sci2comm(uids.found, db = 'ncbi')
  names(common.names) <- species.found
  
  common.names
  
  ## output:
  ## $`Helianthus annuus`
  ## [1] "common sunflower"
  ## 
  ## $`Mycobacterium bovis`
  ## character(0)
  ## 
  ## $`Rattus rattus`
  ## [1] "black rat"
  ## 
  ## $`Mus musculus`
  ## [1] "house mouse"
  
  This works correctly if no common name is available, or if there is no species in the database. You can also try a different database, e.g. db='itis'.
  The advantage of this approach is that you do not have to parse a file yourself. The downside is that it can be slow for large list, since for every species a database request is performed.
  
original_text: 691: <p>I’m trying to find common names from a list of scientific names (not all will have them though).</p>
  
  <p>I was attempting to use <code>taxize</code> in R but it aborts if it doesn’t find an entry in EOL and I don’t know a way around this other than manually editing the list - in which case I might as well check all this way.</p>
  
  <p>Does anyone have a better way of doing this?</p>
   298: <p>As Pierre <a href="https://bioinformatics.stackexchange.com/a/579/298">suggested</a>, you can get a dump of such names from <a href="ftp://ftp.ncbi.nih.gov/pub/taxonomy" rel="nofollow noreferrer">NCBI</a>. Then, to query it for the common name for a species using its Latin name, you can do:</p>
  
  <pre class="lang-c prettyprint-override"><code>$ awk -F'\t' -vname="Mus musculus" '($7=="scientific name" &amp;&amp; $3==name){
                                        a[$1]=$3
                                      } 
                                      ($1 in a &amp;&amp; /genbank common name/){  
                                        print $3
                                      }' names.dmp
  house mouse
  </code></pre>
   1572: <p>Getting back to the original question about using <code>taxize</code> to search specifically in EOL, it looks like the most recent version of the package does not produce this error.</p>
  
  <p>The current version of R I'm using (3.4.2) produces the following output:</p>
  
  <blockquote>
    <p>sci2comm( c("Cancer", "Lophopanopeus"), db="eol" )</p>
    
    <p>$Cancer
     [1] "En art taskekrabbe"              "Felsenkrabbe"                    "Atlantic rock crab"<br>
     [4] "Jaiba de roca amarilla"          "Tourteau poïnclos"               "Granciporro atlantico giallo"<br>
     [7] "Atlantische rotskrab"            "Sapateira de rocha do Atlântico" "Bogenkrabbe"<br>
    [10] "red rock crab"                   "Pacific rock crab"               "Jaiba del Pacífico"<br>
    [13] "Tourteau du Pacifique"           "Granciporro del Pacifico"        "Pacifische rotskrab"<br>
    [16] "Sapateira de rocha do Pacífico"  "Jonahkrabbe"                     "Jonah crab"<br>
    [19] "Jaiba de roca Jonás"             "Tourteau jona"                   "Grancipporo atlantico rosso"<br>
    [22] "Jonakrab"                        "Sapateira boreal"                "Bou"<br>
    [25] "Almindelig taskekrabbe"          "Taskekrabbe"                     "Taschenkrebs"<br>
    [28] "Edible crab"                     "rock crab"                       "Buey"<br>
    [31] "Buey de mar"                     "Jaiba de roca masera"            "Masera"<br>
    [34] "Paguro"                          "Pato"                            "Sabago"<br>
    [37] "Isotaskurapu"                    "Crabe dormeur"                   "Dormeur"<br>
    [40] "Tourteau"                        "crabe-dormeur"                   "Granchio di mare"<br>
    [43] "Granciporro"                     "Noordzeekrab"                    "grote krab"<br>
    [46] "grote noordzeekrab"              "hoofdkrab"                       "slagkrab"<br>
    [49] "steenkrab"                       "toogkrab"                        "zeekrab"<br>
    [52] "Sapateira"                      </p>
    
    <p>$Lophopanopeus
    [1] "blackclaw crestleg crab" "knobkneed crestleg crab" "knobknee crestleg crab"  "molarless crestleg crab"</p>
    
    <p>$'Pugettia foliata'
    character(0)</p>
  </blockquote>
  
  <p>A slightly older version of R (3.3.2) produces an error when one of the taxa was not found:</p>
  
  <blockquote>
    <p>sci2comm( c("Cancer", "Lophopanopeus", "Pugettia foliata"), db="eol" )</p>
    
    <p>Error in eol_pages(taxonconceptID = x, common_names = TRUE, ...) : 
      Not Found (HTTP 404).</p>
  </blockquote>
  
  <p>I am very thankful for the package updates!</p>
   71: <p>use the NCBI taxon dump under <a href="ftp://ftp.ncbi.nih.gov/pub/taxonomy" rel="noreferrer">ftp://ftp.ncbi.nih.gov/pub/taxonomy</a></p>
  
  <p>in taxdmp.zip you'll find all the names for a given NCBI taxon</p>
  
  <pre><code>$ grep -w ^9606 names.dmp 
  9606    |   Homo sapiens    |       |   scientific name |
  9606    |   Homo sapiens Linnaeus, 1758 |       |   authority   |
  9606    |   human   |       |   genbank common name |
  9606    |   man |       |   common name |
  </code></pre>
   191: <p>As <a href="https://bioinformatics.stackexchange.com/a/579/191">Pierre mentioned</a>, NCBI is a good resource for this kind of transformation.</p>
  
  <p>You can still use <code>taxize</code> to perform the conversion:</p>
  
  <pre class="lang-r prettyprint-override"><code>library("taxize")
  
  species &lt;- c('Helianthus annuus', 'Mycobacterium bovis', 'Rattus rattus', 'XX', 'Mus musculus')
  
  uids &lt;- get_uid(species)
  
  # keep only uids which you have in the database
  uids.found &lt;- as.uid(uids[!is.na(uids)])
  # keep only species names  corresponding to your ids
  species.found &lt;- species[!is.na(uids)]
  
  common.names &lt;- sci2comm(uids.found, db = 'ncbi')
  names(common.names) &lt;- species.found
  
  common.names
  
  ## output:
  ## $`Helianthus annuus`
  ## [1] "common sunflower"
  ## 
  ## $`Mycobacterium bovis`
  ## character(0)
  ## 
  ## $`Rattus rattus`
  ## [1] "black rat"
  ## 
  ## $`Mus musculus`
  ## [1] "house mouse"
  </code></pre>
  
  <p>This works correctly if no common name is available, or if there is no species in the database. You can also try a different database, e.g. <code>db='itis'</code>.</p>
  
  <p>The advantage of this approach is that you do not have to parse a file yourself. The downside is that it can be slow for large list, since for every species a database request is performed.</p>
  