specieslevel: Calculate various indices for network properties at the...

Description Usage Arguments Details Value Note Author(s) References See Also Examples

View source: R/specieslevel.R


Apart from the properties of the entire web, also its participants can be described specifically. Various simple numbers and indices are calculated and returned.


specieslevel(web, index="ALLBUTD", level="both", logbase=exp(1), low.abun=NULL, 
	high.abun=NULL, PDI.normalise=TRUE, PSI.beta=c(1,0), nested.method="NODF", 
	nested.normalised=TRUE, nested.weighted=TRUE, empty.web=TRUE)



Web is a matrix representing the interactions observed between higher trophic level species (columns) and lower trophic level species (rows). Usually this will be number of pollinators on each species of plants or number of parasitoids on each species of host.


Vector of indices to be calculated for each trophic level of the web; options are:

  • degree,

  • ND for normalised degrees,

  • species strength as sum of dependencies for each species,

  • nestedrank as rank in a nested matrix,

  • interaction push pull for interaction push/pull (our version of dependence asymmetry: see details),

  • PDI for Paired Differences Index,

  • resource range for Poisot et al. (2012)'s index of unused resources,

  • species specificity (or coefficient of variation of interactions),

  • PSI for pollination service index (or pollinator support index, depending on the trophic level),

  • NS for node specialisation index,

  • betweenness for betweenness,

  • closeness (both automatically also return their weighted counterparts proposed by Tore Opsahl in package tnet),

  • Fisher for Fisher's alpha index,

  • diversity for Shannon diversity of interactions of that species,

  • effective partners for the effective number of interacting partners,

  • proportional generality a quantitative version of normalised degree,

  • proportional similarity specialisation measured as similarity between use and availability,

  • d for Blüthgen's d',

  • ALL for all the aforementioned.

  • ALLBUTD (default) excludes only the dependence matrix and leads to the output being simplified to a matrix per trophic level.


For which level(s) should the indices be computed? Options are both (default), lower and higher. Output for one trophic level will be returned as a data.frame (unless dependencies are also reported), while for two levels a list of two matrices (higher and lower) will be returned.


numeric; gives the base to which the various diversity indices (partner diversity, effective partners) shallb be calculated, typcially exp(1) (default) or 2. Log2 is the proposal for generality and vulnerability by Bersier et al. (2002), while Shannon typically uses the natural logarithm, ln. The choice of the base will not affect the results qualitatively, only by a scaling factor.


Optional vector of independent abundances of the lower trophic level to be passed on to dfun and used as ‘resource availability’ in indices proportional similarity and proportional generality.


Optional vector of independent abundances of the higher trophic level to be passed on to dfun and used as ‘resource availability’ in indices proportional similarity and proportional generality.


Logical; should the normalised PDI be computed? Defaults to TRUE. See function PDI for details and reasoning.


A length 2 vector of parameter determining the effect of floral constancy and pollen mixing on the proportion of same-species pollen delivered to a plant. Defaults to c(1, 0). See section details for details.


One of NODF, binmatnest, wine or sort. See nestedrank for details.


Logical; defaulting to TRUE. Divides the nestedrank-1 by the number of species -1, thereby ranging it between 0 (most generalist) and 1 (most specialised). Species sequences from different networks are now comparable.


Logical; should the “nestedrank” be computed based on weighted network (default) or binary version (FALSE)?


Shall the empty columns and rows be deleted? Defaults to TRUE. option FALSE not yet fully tested


This function implements a variety of the many (and still procreating) indices describing species properties. Some are embarrassingly simple (such as number of interacting species for each species). Others are variations on Shannon's diversity index applied to within species.

Indices based on graph theory (such as NDI, closeness, betweenness) require the data to form a connected graph. When the network is compartmented (as would be seen when plotting it using plotweb), these indices will be computed for the each compartment. However, single-link compartments (only one partner in each trophic level) will not form a proper graph and hence the indices will have a value of NA.

Most indices are straightforward, one-line formulae; some, such as d', also require a re-arranging of the matrix. We (Dormann, Blüthgen, Gruber) came up with a new one, called “Pollination Service Index” or psi, for which a few more details seem appropriate.

Pollination Service Index (PSI)

This index estimates the importance of a pollinator for all plant species. PSI is comprised of three calculation steps: firstly, we calculate, for each pollinator species, the proportion to which it visits each plant species (or, phrased anthropomorphically, the number to the question: which proportion of my visits are to dandelion?). Secondly, we calculate the proportion to which a plant is visited by each bee species (Which proportion of my pollinators are red mason bees?). Multiplying, these two proportions gives the portion of own pollen for each plant species (because this depends both on a pollinators specialisation (step 1) and the plant's specific receptiveness (step 2). Finally, we sum the proportions own pollen delivered across all plant species. This value is the PSI-value. At its maximum, 1, it shows that all pollen is delivered to one plant species that completely depends on the monolectic pollinator. At its minimum, 0, it indicates that a pollinator is irrelevant to all plant species. Note that PSI can assume values from 0 to 1 for species of any frequency: a bee been found only once on a plant species visited by no-one else receives a PSI of 1, even if in total 14 million visits were recorded.

(This is all very complicated. So here is another attempt (by Jochen) to explain the PSI: For PSI, importance of a pairwise interaction (for the plant) is calculated as: 'dependence'_i_on_j * per.visit.efficiency_i_visitedby_j, where per.visit.efficiency_i_visitedby_j = (average proportion visits to i by j in all visits by j)^beta.

It assumes that the order of plant species visited is random (no mixing, no constancy). To account for that not being true, beta could be adjusted. However, this really waits for good empirical tests.)

We envisage a penalty for the fact that a pollinator has to make two (more or less successive) visits to the same plant species: the first to take the pollen up, the second to pollinate the next. Thus, using beta=2 as an exponent in step 1 would simulate that a pollinator deposits all pollen at every visit. In a sense, beta=2 represents a complete turnover of pollen on the pollinator from one visit to the next; only the pollen of the last-visited species is transferred. That is certainly a very strong penalisation. At present we set the exponent to beta=1, because the step of controlling for “pollen purity” is already a major improvement. It assumes, implicitly, that pollen is perfectly mixed on the pollinator and hence pollen deposited directly proportional to frequency of visits to the different plants Also, we have no idea to which extent pollen gets mixed and/or lost during foraging flights, and the true exponent remains elusive. For a value of beta=0, PSI simplifies (and is equal) to species strength.

For the perspective of the plant's effect on pollinators (then PSI = pollinator support index), this index makes less sense. Here we would rather use beta=0, because pollen value is not related to number of visits, so we cannot compute it from the network. Similarly, for other networks, such as host-parasitoids, beta=0 seems plausible, since for the host it does not matter, whether a parasitoid has visited another species before or not. In this case (beta=0), PSI is simply equal to species strength. Not just pollen turnover/carryover on the pollinator is important and influences beta, but all these considerations depend on the assumption how the proportion of conspecific pollen affects pollination (assuming many visits per flower visitation sequence). (a) If only presence of any conspecific pollen on bee is sufficient for pollination, carryover (how long pollen from one visits remains on bee) matters, beta is anywhere between 0 (infinite carryover) and 2 (one-step carryover). (b) If the proportion of conspecific pollen on bee determines pollination success (linear relationship), carryover does not matter, the proportion can be assumed to be in an equilibrium, and beta=1.

Our choice of defaults (c(1,0)) will yield species strength for plants, and PSI for pollinators, assuming, for the latter, that pollen mixes perfectly.


For both the “higher trophic level” and the “lower trophic level” a list with the following components:

species degree

Sum of links per species.

normalised degree

As degree, but scaled by the number of possible partners; see ND.

species strength

Sum of dependencies of each species (used, e.g., in Bascompte et al. 2006). It aims at quantifying a species' relevance across all its partners. The alternative version of Barrat et al. (2004; also used by Poisot et al. 2012) as the sum of interactions of a species seems too trivial a measure, reflecting abundance rather than anything else. Do not take this to be the much-discussed “interaction strength” in food web papers, which focusses on pairwise interactions (reviewed in Berlow et al. 2004)!

interaction push pull

Direction of interaction asymmetry based on dependencies: positive values indicate that a species affects the species of the other level it interacts with stronger then they affect it (“pusher”); negative values indicate that a species is, on average, on the receiving end of the stick (“being pulled”); formula based on Vázquez et al. (2007), but push/pull is our own nomenclature. Values are highly correlated with species strengths (see below), but standardised to fall between -1 (being pulled) and 1 (pushing). Compared to “strength”, this index quantifies the net balance, rather than the average effect.


Quantifies generalism by the rank of a species in a network matrix re-arranged for maximal nestedness (Alarcon et al. 2008). A low rank (e.g. 1, 2) indicates high generality, while high ranks (up to the number of species in that level) indicate specialism or rarity.


Paired Differences Index as proposed by Poisot et al. (2011a,b), by default using a normalised version (PDI.normalise=TRUE); ranges between 0 (generalist) and 1 (specialist); see PDI for details and comments.

resource range

Poisot et al.'s (2012) “resource range” is a somewhat strange name for something that has a value of 0 when all resources are used, but a value of 1 when only one resource is used. It is, in fact, closer to an “unused resource range”. The aforementioned Paired Difference Index is a generalisation of resource range, which is equal to resource range when the web is binary.

species specificity

Coefficient of variation of interactions, normalised to values between 0 and 1, following the idea of Julliard et al. (2006), as proposed by Poisot et al. (2012). Values of 0 indicate low, those of 1 a high variability (and hence suggesting low and high specificity). Since not corrected for number of observations, this index will yield high specificity for singletons, even though there is no information to support this conclusion.


Pollination Service Index for the higher trophic level, and the equivalent Pollinator Support Index for the lower trophic level. See Details above for more explanations.

node specialisation index

Another measure of specialisation, based on the path length between any two higher-trophic level species. Species sharing hosts/prey have an FS-value of 1. See specific function nodespec for details, problems and reference.


A value describing the centrality of a species in the network by its position between other nodes; see BC and betweenness in sna.

weighted betweenness

Computes betweenness (proportion of shortest paths through this species), but based on weighted representation of the network. It calls betweenness_w from tnet and often differs considerably from its binary counterpart!


A value describing the centrality of a species in the network by its path lengths to other nodes; see CC and closeness in sna.

weighted closeness

Computes closeness (in one of its varieties), but based on weighted representation of the network. It calls closeness_w from tnet and is usually very similar to its binary counterpart. Note that NAs indicate that these species belong to a different compartment and hence no closeness distance could be calculated.

Fisher alpha

Fisher's alpha diversity for each species (see fisher.alpha in vegan for details).

partner diversity

Shannon diversity (when using logbase="e") or per-species generality/vulnerability (when using logbase=2) of the interactions of each species. See also networklevel for the aggregated version of this index (i.e. averaged across all species in a trophic level).

effective partners

logbase to the power of “partner.diversity”: Bersier et al. (2002) interpret this as the effective number of partners, if each partner was equally common. Note that “partner” is a bit euphemistic when it comes to predator-prey or host-parasitoid networks.

proportional generality

'Effective partners' divided by effective number of resources ('logbase' to the power of 'resource diversity'; which is calculated from high.abun/low.abun if provided, and else from marginal totals); this is the quantitative version of proportional resource use or normalised degree (i.e., the number of partner species in relation to the potential number of partner species); note that this index can be larger than 1, e.g. when a species selects for a balanced diet.

proportional similarity

Specialization measured as dissimilarity between resource use and availability (estimated from high.abun/low.abun if provided, else from marginal totals); proposed by Feinsinger et al. (1981).


Specialisation of each species based on its discrimination from random selection of partners. More specifically, it returns d', which is calculated based on the raw d, dmin and dmax for each species (see dfun). See Blüthgen et al. (2006) for details.


A comparison of specialisation indices is provided in Dormann (2011); the PDI is missing (since it was published later).

Dependencies are still an open field of debate. Dependencies are calculated as the value in a matrix divided by the rowSums (for the lower trophic level) or the colSums (for the higher trophic level). As such, any pollinator observed only once will receive a dependency-value of 1, indicating perfect dependence on this plant species. That may or may not be true. In any case it is based on a sample size of 1, that is why the dependency asymmetry (which is based on the dependencies for both trophic levels) has come under criticism and may be rather sensitive to singletons.

We here provide the code to calculate the strength of a species (i.e. sum of its dependencies), based on the current proposal by Bascompte et al. (2006). It may be a good idea to remove all singletons from the web before calculating this index, to investigate whether it is indeed driven by those scarce observations.

The maximum value of the uncorrected d (i.e. the maximal potential specialization defining d'=1) is not a trivial issue. We treat it here in the same way as given in the BMC Ecology paper, but please have a look at the (raw) code for further comments.


Carsten F. Dormann [email protected] \& Jochen Fründ


Alarcon, R., Waser, N.M. and Ollerton, J. 2008. Year-to-year variation in the topology of a plant-pollinator interaction network. Oikos 117, 1796–1807

Barrat, A., M. Barthélemy, R. Pastor-Satorras, and A. Vespignani. 2004. The architecture of complex weighted networks. Proceedings of the National Academy of Sciences of the USA 101, 3747–-3752. doi: 10.1073/pnas.0400087101.

Bascompte, J., Jordano, P. and Olesen, J. M. (2006) Asymmetric coevolutionary networks facilitate biodiversity maintenance. Science 312, 431–433

Berlow, E. L., A. M. Neutel, J. E. Cohen, P. C. de Ruiter, B. Ebenman, M. Emmerson, J. W. Fox, V. A. A. Jansen, J. I. Jones, G. D. Kokkoris, D. O. Logofet, A. J. McKane, J. M. Montoya & O. Petchey (2004) Interaction strengths in food webs: issues and opportunities. Journal of Animal Ecology 73, 585-–598

Blüthgen, N., Menzel, F. and Blüthgen, N. (2006) Measuring specialization in species interaction networks. BMC Ecology 6, 9

Dormann, C.F. (2011) How to be a specialist? Quantifying specialisation in pollination networks. Network Biology 1, 1–20

Feinsinger, P., Spears, E.E. and Poole,R. W. (1981) A simple measure of niche breadth. Ecology 62, 27–32.

Julliard, R., Clavel, J., Devictor, V., Jiguet, F. and Couvet, D. (2006) Spatial segregation of specialists and generalists in bird communities. Ecology Letters 9, 1237-–1244

Martín Gonzáles, A.M., Dalsgaard, B. and Olesen, J.M. (2010) Centrality measures and the importance of generalist species in pollination networks. Ecological Complexity, 7, 36–43

Opsahl, T. & Panzarasa, P. (2009). Clustering in weighted networks. Social Networks, 31, 155–163

Poisot, T., Lepennetier, G., Martinez, E., Ramsayer, J., and Hochberg, M.E. (2011a) Resource availability affects the structure of a natural bacteria-bacteriophage community. Biology Letters 7, 201–204

Poisot, T., Bever, J.D., Nemri, A., Thrall, P.H., and Hochberg, M.E. (2011b) A conceptual framework for the evolution of ecological specialisation. Ecology Letters 14, 841–851

Poisot, T., E. Canard, N. Mouquet, and M. E. Hochberg (2012) A comparative study of ecological specialization estimators. Methods in Ecology and Evolution 3, 537-–544. doi: 10.1111/j.2041-210X.2011.00174.x.

Vázquez, D. P., Melian, C. J., Williams, N. M., Blüthgen N., Krasnov B. R. and Poulin, R. (2007) Species abundance and asymmetric interaction strength in ecological networks. Oikos 116, 1120–1127

See Also

networklevel for some further comments; dfun, nodespec, which are called by this function


## Not run: 
## End(Not run)
specieslevel(Safariland, index="ALLBUTD")[[2]]

bipartite documentation built on May 22, 2019, 1:02 a.m.