Secondary extinctions in bipartite networks

Share:

Description

Calculates the consequences of removing a species from a bipartite network. With plotting and slope-estimation functionality.

Usage

1
2
second.extinct(web, participant = "higher", method = "abun", nrep = 10,
  details = FALSE, ext.row=NULL, ext.col=NULL)

Arguments

web

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 prey.

participant

high (default) or low or both, depending if you want to exterminate higher trophic level species, lower trophic level species, or randomly choose species of both levels.

method

Random deletion of a species (random); according to its abundance, with least abundant going extinct first (abundance; default) or "degree" to build a sequence from the best-to-least connected species. This is the most extreme case, where the most generalist species goes extinct first (see Memmott et al. 1998). (Note that method="abundance" does not work with participant="both"; in this case a random sequence of species from both trophic levels is generated.) external will use the externally provided vector to determine extinction sequence.

nrep

Number of replicates of extermination sequence. Will not be considered for method abundance.

details

Logical; returns details, i.e. for each replicate the sequence of secondary extinctions. If set to FALSE (default), replicated runs will be averaged. Using anything but FALSE will not yield the correct object for further analysis. This switch is really only for understanding what second.extinct does and for possible debugging.

ext.row

Optional vector giving the sequence in which lower-level species are to be deleted.

ext.col

Optional vector giving the sequence in which higher-level species are to be deleted.

Details

The procedure of this function is simple. For example imagine the web to represent a pollination web, in which pollinators die one by one. Set all entries of a column to zero, see how may rows are now also all-zero (i.e. species that are now not pollinated any more), and count these as secondary extinctions of the primary exterminated pollinator.

Internally, each extermination is achieved by a call to extinction, followed by a call to empty, which counts the number of all-zero columns and rows.

Although written for pollination webs (hence the nomenclature of pollinator and plant), it can be similarly applied to other types of bipartite networks. It is called by networklevel.

Value

Function returns an object of class “bipartite” to ensure proper working of function plot.bipartite.

If details=FALSE, the returned object contains a matrix with columns representing the number of species going extinct from one step to the next, averaged across all runs.

If details=FALSE, the returned object will be a list of matrices containing the number of species going extinct at each step.

The objects attribute “exterminated” gives the name of the trophic level (pollinator or plant).

Note

Note: The length of an extinction sequence is obviously given by the number of species in the selected trophic level. When setting participant="both", lengths will differ for each replicate run, since it is unpredictable in which sequence species go extinct, and hence how many secondary extinctions will pre-empt further primary extinctions.

Author(s)

Carsten F. Dormann

References

Memmott, J., Waser, N. M. and Price, M. V. (2004) Tolerance of pollination networks to species extinctions. Proceedings of the Royal Society B 271, 2605–2611.

See Also

networklevel calls second.extinct; extinction and empty are internal helper functions, and slope.bipartite calculates extinction slopes from the output of second.extinct.

Examples

1
2
3
4
5
6
7
8
## Not run: 
data(Safariland)
(ex <- second.extinct(Safariland, participant="lower", method="random", nrep=50, 
	details=TRUE))
(ex <- second.extinct(Safariland, participant="lower", method="random", nrep=50, 
	details=FALSE))

## End(Not run)

Want to suggest features or report bugs for rdrr.io? Use the GitHub issue tracker.