annotate robis.r @ 1:5bae75c49f2e draft default tip

planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/obisindicators commit 13ac67c0a21d742b29e6273cdff058560abad770
author ecology
date Tue, 05 Nov 2024 14:17:49 +0000
parents 1fcd81d65467
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
1fcd81d65467 planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/obisindicators commit b377ff767e3051f301c2f02cfe3e1a17b285ede4
ecology
parents:
diff changeset
1 #Rscript
1fcd81d65467 planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/obisindicators commit b377ff767e3051f301c2f02cfe3e1a17b285ede4
ecology
parents:
diff changeset
2
1fcd81d65467 planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/obisindicators commit b377ff767e3051f301c2f02cfe3e1a17b285ede4
ecology
parents:
diff changeset
3 ###########################################
1fcd81d65467 planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/obisindicators commit b377ff767e3051f301c2f02cfe3e1a17b285ede4
ecology
parents:
diff changeset
4 ## Retrieve Obis occurences data ##
1fcd81d65467 planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/obisindicators commit b377ff767e3051f301c2f02cfe3e1a17b285ede4
ecology
parents:
diff changeset
5 ###########################################
1fcd81d65467 planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/obisindicators commit b377ff767e3051f301c2f02cfe3e1a17b285ede4
ecology
parents:
diff changeset
6
1fcd81d65467 planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/obisindicators commit b377ff767e3051f301c2f02cfe3e1a17b285ede4
ecology
parents:
diff changeset
7 ##### Packages : robis
1fcd81d65467 planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/obisindicators commit b377ff767e3051f301c2f02cfe3e1a17b285ede4
ecology
parents:
diff changeset
8 # https://iobis.github.io/robis/articles/getting-started.html
1fcd81d65467 planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/obisindicators commit b377ff767e3051f301c2f02cfe3e1a17b285ede4
ecology
parents:
diff changeset
9 # Get args
1fcd81d65467 planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/obisindicators commit b377ff767e3051f301c2f02cfe3e1a17b285ede4
ecology
parents:
diff changeset
10 args <- commandArgs(trailingOnly = TRUE)
1fcd81d65467 planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/obisindicators commit b377ff767e3051f301c2f02cfe3e1a17b285ede4
ecology
parents:
diff changeset
11
1fcd81d65467 planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/obisindicators commit b377ff767e3051f301c2f02cfe3e1a17b285ede4
ecology
parents:
diff changeset
12 if (length(args) < 1) {
1fcd81d65467 planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/obisindicators commit b377ff767e3051f301c2f02cfe3e1a17b285ede4
ecology
parents:
diff changeset
13 stop("This tool needs at least 1 argument : longitude, latitude, species or taxonID")
1fcd81d65467 planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/obisindicators commit b377ff767e3051f301c2f02cfe3e1a17b285ede4
ecology
parents:
diff changeset
14 }else {
1fcd81d65467 planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/obisindicators commit b377ff767e3051f301c2f02cfe3e1a17b285ede4
ecology
parents:
diff changeset
15 sname <- args[1]
1fcd81d65467 planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/obisindicators commit b377ff767e3051f301c2f02cfe3e1a17b285ede4
ecology
parents:
diff changeset
16 taxid <- args[2]
1fcd81d65467 planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/obisindicators commit b377ff767e3051f301c2f02cfe3e1a17b285ede4
ecology
parents:
diff changeset
17 lat_min <- args[3]
1fcd81d65467 planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/obisindicators commit b377ff767e3051f301c2f02cfe3e1a17b285ede4
ecology
parents:
diff changeset
18 lat_max <- args[4]
1fcd81d65467 planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/obisindicators commit b377ff767e3051f301c2f02cfe3e1a17b285ede4
ecology
parents:
diff changeset
19 long_min <- args[5]
1fcd81d65467 planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/obisindicators commit b377ff767e3051f301c2f02cfe3e1a17b285ede4
ecology
parents:
diff changeset
20 long_max <- args[6]
1fcd81d65467 planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/obisindicators commit b377ff767e3051f301c2f02cfe3e1a17b285ede4
ecology
parents:
diff changeset
21 }
1fcd81d65467 planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/obisindicators commit b377ff767e3051f301c2f02cfe3e1a17b285ede4
ecology
parents:
diff changeset
22
1fcd81d65467 planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/obisindicators commit b377ff767e3051f301c2f02cfe3e1a17b285ede4
ecology
parents:
diff changeset
23 if (lat_min == "0.0" & lat_max == "0.0" & long_min == "0.0" & long_max == "0.0") {
1fcd81d65467 planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/obisindicators commit b377ff767e3051f301c2f02cfe3e1a17b285ede4
ecology
parents:
diff changeset
24 lat_min <- ""
1fcd81d65467 planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/obisindicators commit b377ff767e3051f301c2f02cfe3e1a17b285ede4
ecology
parents:
diff changeset
25 lat_max <- ""
1fcd81d65467 planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/obisindicators commit b377ff767e3051f301c2f02cfe3e1a17b285ede4
ecology
parents:
diff changeset
26 long_min <- ""
1fcd81d65467 planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/obisindicators commit b377ff767e3051f301c2f02cfe3e1a17b285ede4
ecology
parents:
diff changeset
27 long_max <- ""
1fcd81d65467 planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/obisindicators commit b377ff767e3051f301c2f02cfe3e1a17b285ede4
ecology
parents:
diff changeset
28 }
1fcd81d65467 planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/obisindicators commit b377ff767e3051f301c2f02cfe3e1a17b285ede4
ecology
parents:
diff changeset
29
1fcd81d65467 planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/obisindicators commit b377ff767e3051f301c2f02cfe3e1a17b285ede4
ecology
parents:
diff changeset
30 ##### Import data
1fcd81d65467 planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/obisindicators commit b377ff767e3051f301c2f02cfe3e1a17b285ede4
ecology
parents:
diff changeset
31 # Get biological occurrences
1fcd81d65467 planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/obisindicators commit b377ff767e3051f301c2f02cfe3e1a17b285ede4
ecology
parents:
diff changeset
32 if (lat_min != "" & sname != "" & taxid != "") {
1fcd81d65467 planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/obisindicators commit b377ff767e3051f301c2f02cfe3e1a17b285ede4
ecology
parents:
diff changeset
33 my_occs <- robis::occurrence(scientificname = sname, taxonid = taxid, geometry = paste("POLYGON ((", long_min, lat_min, ", ", long_min, lat_max, ", ", long_max, lat_min, ", ", long_max, lat_max, ", ", long_min, lat_min, "))"))
1fcd81d65467 planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/obisindicators commit b377ff767e3051f301c2f02cfe3e1a17b285ede4
ecology
parents:
diff changeset
34 }else if (lat_min != "" & sname != "" & taxid == "") {
1fcd81d65467 planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/obisindicators commit b377ff767e3051f301c2f02cfe3e1a17b285ede4
ecology
parents:
diff changeset
35 my_occs <- robis::occurrence(scientificname = sname, geometry = paste("POLYGON ((", long_min, lat_min, ", ", long_min, lat_max, ", ", long_max, lat_min, ", ", long_max, lat_max, ", ", long_min, lat_min, "))"))
1fcd81d65467 planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/obisindicators commit b377ff767e3051f301c2f02cfe3e1a17b285ede4
ecology
parents:
diff changeset
36 }else if (lat_min != "" & sname == "" & taxid != "") {
1fcd81d65467 planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/obisindicators commit b377ff767e3051f301c2f02cfe3e1a17b285ede4
ecology
parents:
diff changeset
37 my_occs <- robis::occurrence(taxonid = taxid, geometry = paste("POLYGON ((", long_min, lat_min, ", ", long_min, lat_max, ", ", long_max, lat_min, ", ", long_max, lat_max, ", ", long_min, lat_min, "))"))
1fcd81d65467 planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/obisindicators commit b377ff767e3051f301c2f02cfe3e1a17b285ede4
ecology
parents:
diff changeset
38 }else if (lat_min != "" & sname == "" & taxid == "") {
1fcd81d65467 planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/obisindicators commit b377ff767e3051f301c2f02cfe3e1a17b285ede4
ecology
parents:
diff changeset
39 my_occs <- robis::occurrence(geometry = paste("POLYGON ((", long_min, lat_min, ", ", long_min, lat_max, ", ", long_max, lat_min, ", ", long_max, lat_max, ", ", long_min, lat_min, "))"))
1fcd81d65467 planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/obisindicators commit b377ff767e3051f301c2f02cfe3e1a17b285ede4
ecology
parents:
diff changeset
40 }else if (lat_min == "" & sname != "" & taxid != "") {
1fcd81d65467 planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/obisindicators commit b377ff767e3051f301c2f02cfe3e1a17b285ede4
ecology
parents:
diff changeset
41 my_occs <- robis::occurrence(scientificname = sname, taxonid = taxid)
1fcd81d65467 planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/obisindicators commit b377ff767e3051f301c2f02cfe3e1a17b285ede4
ecology
parents:
diff changeset
42 }else if (lat_min == "" & sname == "" & taxid != "") {
1fcd81d65467 planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/obisindicators commit b377ff767e3051f301c2f02cfe3e1a17b285ede4
ecology
parents:
diff changeset
43 my_occs <- robis::occurrence(taxonid = taxid)
1fcd81d65467 planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/obisindicators commit b377ff767e3051f301c2f02cfe3e1a17b285ede4
ecology
parents:
diff changeset
44 }else if (lat_min == "" & sname != "" & taxid == "") {
1fcd81d65467 planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/obisindicators commit b377ff767e3051f301c2f02cfe3e1a17b285ede4
ecology
parents:
diff changeset
45 my_occs <- robis::occurrence(scientificname = sname)
1fcd81d65467 planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/obisindicators commit b377ff767e3051f301c2f02cfe3e1a17b285ede4
ecology
parents:
diff changeset
46 }
1fcd81d65467 planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/obisindicators commit b377ff767e3051f301c2f02cfe3e1a17b285ede4
ecology
parents:
diff changeset
47
1fcd81d65467 planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/obisindicators commit b377ff767e3051f301c2f02cfe3e1a17b285ede4
ecology
parents:
diff changeset
48
1fcd81d65467 planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/obisindicators commit b377ff767e3051f301c2f02cfe3e1a17b285ede4
ecology
parents:
diff changeset
49 # Dispay results
1fcd81d65467 planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/obisindicators commit b377ff767e3051f301c2f02cfe3e1a17b285ede4
ecology
parents:
diff changeset
50
1fcd81d65467 planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/obisindicators commit b377ff767e3051f301c2f02cfe3e1a17b285ede4
ecology
parents:
diff changeset
51 # If empty
1fcd81d65467 planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/obisindicators commit b377ff767e3051f301c2f02cfe3e1a17b285ede4
ecology
parents:
diff changeset
52 if(length(my_occs) == 0) {
1fcd81d65467 planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/obisindicators commit b377ff767e3051f301c2f02cfe3e1a17b285ede4
ecology
parents:
diff changeset
53 cat("\nNo occurrences found.\nLittle tip : Check your input typo, some databases are case sensitive : Genus species.\n")
1fcd81d65467 planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/obisindicators commit b377ff767e3051f301c2f02cfe3e1a17b285ede4
ecology
parents:
diff changeset
54 }
1fcd81d65467 planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/obisindicators commit b377ff767e3051f301c2f02cfe3e1a17b285ede4
ecology
parents:
diff changeset
55
1fcd81d65467 planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/obisindicators commit b377ff767e3051f301c2f02cfe3e1a17b285ede4
ecology
parents:
diff changeset
56
1fcd81d65467 planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/obisindicators commit b377ff767e3051f301c2f02cfe3e1a17b285ede4
ecology
parents:
diff changeset
57 write.table(file = "output.tab", my_occs, sep = "\t", dec = ".", na = "", row.names = FALSE, col.names = TRUE, quote = FALSE)