forked from biometry/bipartite
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathWishlist.txt
executable file
·165 lines (136 loc) · 14.1 KB
/
Wishlist.txt
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
IMPORTANT
<>
* add to networklevel.Rd that modularity Q is now available!
EDITORIAL
...
LARGE CHANGES
* PLOTWEB: plotweb/visweb revision!
** explore plotting options outside bipartite (igraph, tidygraph): italics, unparasitised individuals, ...
** plotweb: add a new option ÒnamesÓ, which is a list of two vectors with names of species. The nice thing is that we then can pass on expression()s, so that we can have italics and partial italics (e.g. Episyrphus spec., where Episyrphus is italicised, but spec. is not).
** Borgatti & Everett 1997: visualise graph as bipartite graph but take positions from CA
** revise plotweb (incl. device settings, vertical option, margin control; easy and explained coloring per sp etc)
** allow for multiple networks next to each other (i.e. mfrow=c(1,2)) )
** customised alignment of webs (see Benjamin, 3rd chapter)
* recursive modules with Beckett; also check for how negative values are used (apparently different by the two algorithms); are they locally defined?
* for each network index, run timing on increasing large networks (up to millions of cells): which indices are available for REALLY large networks? -> add that as index choice!, possibly with interactive warning for large networks
* how small can a network be before it is a problem? --> funnel plot of network index against sample size: when does it start exhibiting a bias (for observed and null model values; put this with an example into the vignette)
* NULLMODEL-LIKE:
* r2dexternal/vaznullexternal: extend changes for too many 0s for rows also to columns and to vaznullexternal
* check that values are large enough for r2dtable (small values will be rounded down to 0, making the whole null model approach wrong!)
* use dirmult (in the same package) to fit Dirichlet-distribution to network data; use these to draw from random distributions in null models?
* Guillaume & Latapy: implement random bipartite graph algorithm!
* new method for nullmodel: visitsim (fixed frequency only for .higher level, probabilities for .lower from their marginal totals or other)
* add makeweb function(s) from FrŸnd et al 2016 Oikos
* nullmodel (r2dtable-like) for non-integer matrices (see email by Carmelo Gomez Martinez 30.4.2019) --> "reconsider your question" reply into help file
* mgen: preserve species names! also make check for probability matrix robust to floating point errors (if I divide by the sum before, the warning can still appear!)
* turn testfile into proper testthat routine
* Multilayer/NPARTITE/METAWEB (through trophic levels, time or space): npartite functionality for multilevel (parasitoid) data; e.g. makeweb.npart from a modelist {Species.higher, Species.lower, Freq, Level}; should correspond to plotweb2 or other multilevel functionality
SMALL CHANGES
* make option "empty.web=FALSE" available in "specieslevel". Test that "d" runs when some rows/columns are empty (encountered by Jie Hu)
* clean up help files (e.g. diversity terminology is not really uptodate: "diversity" is H, but exp(H) is "effective partners")
* clean help file for nullmodel, related to mgen (e.g. the example with binary web is nonsensical, unless rep.cell=F; and it should be stated that method "equiprobable" is used); also, how does nullmodel know what is binary and what is quantitative?
(improve existing functionality)
* frame2webs: option empty.list doesn't work if only one row or column (problem with dropping dimensions; BUT this cannot be fixed by simply adding drop=F in weblist[[i]] <- webarray[,,i]) --> find a solution
* frame2webs: maybe add the alternative for long lists from large datasets (as written for TrapnestSynthesis)
* revise dfun (& specieslevel) help, e.g. regarding abuns
* specieslevel/dfun: improve name-handling of abuns (e.g. re-sort if named, etc.); make consistent with species-name-handling in plotweb
* add UNWEIGHTED vulnerability/generality/linkagedensity/weighted connectance to networklevel (see Email by Mark Murphy, 17-Oct-2018)
* test specieslevel with empty.web=FALSE; decide where web.e must be used: that is, for each index think whether web or web.e is more meaningful!
* better treatment of allowed index synonyms in species/group/networklevel (currently they are "not recognised" if they don't come with an allindex-namevariant)
* specieslevel/grouplevel/networklevel: make spaces in names consistent: input(=index) should be the same as output (in list)
* add option "weighted" to links per species in networklevel (copy-paste from grouplevel!)
* implement normalised version of vulnerability and generality (in Bersier 2002)
* togetherness: allow for weighting: compute only the 0011-patterns and return this value. Then compute (weighted) averages in group level.
* C score: allow for weighting: compute only the 0110-patterns and return this value. Then compute (weighted) averages in group level.
* external extinction sequence across trophic levels for second.extinct
* in second.extinct, use plot.it="higher"/"lower" to plot only one of the trophic levels (wish of Georg Anderson).
* include robustnessLD50 (Dunne et al. 2002, MacFadyen et al. 2009) and revise help for robustness accordingly
* search for JFedit; then cleanup comments in species/group/networklevel .R / .Rd
* functions accepting external abundances (esp. plotweb); check what happens with unnamed abun-vectors and maybe give warnings
* enable networklevel / grouplevel to call specieslevel for all metrics therein (and thus have only one version of their calculation); and give warnings for those not useful above specieslevel; also offer specieslevel for grouplevel indices that not yet exist
(add new stuff)
* add multilayer centrality "Gnorm" to function "npartite" (Lofti et al. 2023, MEE)
* add "assortativity" of Newman 2002 as cited in Ona & Kost 2022
* add HS (Coux et al. 2016) to specieslevel() [basically just interaction evenness per sp]
* add spectral radius of network adjacency (Staniczenko et al. 2013 Nature comm.)
* Alarcon et al. 2008: nestedness temperatur per species; eigenvector centrality (similar to dependence asymmetry); "components": hierarchical sorting of links (based on a commercial software)
* DolŽdec 2000: OMI implementation
* add/implement the hub-species-detection procedure of Gonzales et al. (Ecol Complex)
* put Strona's NOS-index into bipartite (there is an R-package)
* Eigenvector, Katz, PageRank as well as a few similarity measures such as cosine, Pearson and Euclidean for weighted bipartite networks in the package
* make "small world" a directly accessible index
* check Poisot's python and matlab packages
* if everybody's index is added, why don't we add functional coverage as defined in our Ecology beediv-paper?
NICE TO HAVE
* check the C4b of Gilarranz: is it the same as Opsahl's?
* add setting seeds to C-code of "computeModules", which is passed down from R: make the algorithm perfectly reproducible
* make Rcpp-version of computeModule's LPA (why? it is already very fast!)
* add more networks from NCEAS and ask Jochen for other published networks; include all quantitative host-parasitoid webs (in different list as pollinators!) @Carsten: we should talk about the network data availability / database topic
* future outlook: rethink patefield (and modularity and H2') regarding non-integer weights as well as non-independent (overdispersed) counts
LARGELY IRRELEVANT
large
* sparseMatrix for Beckett algorithm?? (see email from Pierre Danelle (28 Aug 2017)
* parallelise computeModuleMeta
* quantitative modularity (Marco Araujo et al. 2008 Ecology: Dieta1): currently only a windows-exe is available!
small
* in second.extinct, allow for nrep of abundance-based sequences (that makes sense when there are ties in the marginal totals)!
* plotting control in degreedistr (colours, line types etc)
IRRELEVANT SIDENOTE:
In the .Rbuildignore file the syntax is a bit strange:
\..* means (in Perl): starts with . (has to be escaped, hence \.) and is followed by characters ("."), and as many as you want ("*" is a wildcard).
So \..* refers to any file/directory starting with a ".".
To exclude specifically .hg, I guess it would be \..hg or so.
It also doesn't seem to work ...
# done:
BIN (rejected feature)
* optionally redirect computeModule output to a file (using "sink" in the function before and after the C-call?); this will allow monitoring of larger for loops without wading through the likelihoods of the function
* include Hurlbert's PIE to compute interaction evenness (see Albrecht et al. 2010 Oikos); --> paleotree:::HurlbertPIE
* two-level czvalues (e.g. weighted mean of the two trophic levels; see help file) into species level, from there into networklevel | CFD no: czvalues are meaningless without null model reference and hence not suitable for inclusion in ~level functions
* warning "Rtools is required to build R packages but is not currently installed" should not appear for user install!! | CFD largely irreproducible and never complained about by users
* WINE-artiger von Marco: Araujo MS, Guimarães PR, Svanbäck R, Pinheiro A, Guimarães P, Reis SF, Bolnick DI (2008) Network analysis reveals contrasting effects of intraspecific competition on individual versus population diets. Ecology 89:1981-1993 (downloadable from https://webspace.utexas.edu/ma4775/software.html) | CFD 18.5.2021: by now, there are several weighted indices, not least nest.smdm; since hardly anybody has used/cited this approach, it may be save to ignore
FIXED/ADDED/DONE:
* add node overlap/segretation (Strona & Veech 2015 MEE)
* added Beckett's modularity algorithm (as default in computeModules)
* add a null model construction function from abundance data! --> r2dexternal
* clean up the functions, don't list any internal function in the help pages (I don't know how: remove alias? they are already not exported ...)
* add NODF to networklevel 9 Nov 2017 CFD
* add network of Olito & Fox (2015) http://doi.org/10.5061/dryad.7st32; 9 Nov 2017 CFD
* FIX ERROR: computeModules(netw, method="DormannStrauss", deep=T):
Error in validObject(.Object) :
invalid class “moduleWeb” object: invalid object for slot "modules" in class "moduleWeb": got class "numeric", should be or extend class "matrix"
Calls: computeModules -> new -> initialize -> initialize -> validObject
Execution halted: FIXED for version 2.09, but not released on CRAN until 2.10
* in nullmodel, the check for binary networks is flawed for numbers < 1; use length(unique(web)<3) instead | CFD 24.3.2019
* FIX VEGAN DEPENDENCY!! commsimulator goes out of business, see email by Oksanen 25.4.2018! | CFD (can't remember when): replaced by vegan::nullmodel !!
* add external abundances to decimalr2dtable CFD: in example on help page
* add vignette already existing as "BEN"; make new ideas/indices citable through vignette (e.g. external sequence of second extinct etc): CFD
* betalink (Poisot et al. 2012): add new function, incl. new modifications / extensions [JF: on the way]
* BETALINKR / webs2array:
** list input doesn't work currently, due to the evaluation syntax in webs2array when object "webarray" is given to webs2array from within a call of betalinkr
> betalinkr(list(webN1,webN2))
Error in eval(webinput) : object 'webarray' not found
** actually, the whole webs2array function seems impossible to call from within a function, neither with list nor normal input | CFD & JF, 17.5.2021
* fix bug in PSI (always 1 for beta=0 / lower level); and why is it supposed to be equal to species strength, when strength is not between 0 and 1? | CFD and JF, 17.5.2021
* fix bug in H2fun (maximum may not be found sometimes, introducing downward bias or NaN)
--> I guess this has been fixed now?!? | JF some time ago (2020 or so)
* provide links in vignette OR include function in bipartite for:
** dynsdm (by Miele et al., CRAN)
** infomapecology (github, not CRAN)
** bmotifs (...) | CFD 17.5.2021
* alias "edgelist2webs" with frame2webs, as more people think of this input as an edgelist! | CFD 17.5.2021
* retire bmn5: it is available from vegan (re-implemented) and NODF has taken over | CFD 17.5.2021
* add option to plot names in PAC! | CFD 17.5.2021
* make modularity available from networklevel | CFD 17.5.2021
* sort out the betweenness mess, which reports three qualitatively different values for three different approaches (see separate file on this). | CFD 18.5.2021; now a subsection in the vignette
* compare betweenness in sna and igraph and tnet and Pajek | CFD 18.5.2021: see vignette, section 5.4.1
* clean up authors and add ORCID (as in https://github.com/ropensci/codemetar/blob/master/DESCRIPTION) | CFD 18.5.2021
* web2edges/as.one.mode: check that only one direction is given; seems that some links are represented twice, even if both.directions=FALSE
* as.one.mode/web2edges: use the number of interactions to affect the edge.weight, so that the edge.weight is the weighted mean of weights of links (or so).
* as.one.mode: revise help page; should be more consistent with the different projection options, and what the default is; more clearly warn against the "inner projection" (loss of information); think about (and write about) if the default for "full" should really be a symmetric matrix (i.e. assuming interaction in both directions); at least for food webs (e.g. h-p) it would be more consistent to only fill the upper right corner
* this means make directions argument for as.one.mode | last 4 points are the same; CFD 18.5.2021
* revise startup note in bipartite-package.Rd, saying that we usually assume quantitative webs to be of interaction frequencies and examples are for plant-pollinators if not stated otherwise
This means:
- delete % before the first paragraph
- add "Networks can be either binary (0/1 or FALSE/TRUE matrices) or quantitative (matrices containing estimates of pairwise interaction strength, usually assumed here to be interaction frequency)."
- revise to be more inviting to other disciplines (social scientists) | CFD 18.5.2021
* check out Diego's collaborator in France algorithm for finding the best descriptor of a matrix structure; see also Runghen et al. 2021 | CFD 18.5.2021; paper by Miele, added to vignette other packages overview