diff --git a/_freeze/index/execute-results/docx.json b/_freeze/index/execute-results/docx.json index cacabc5..7790dd8 100644 --- a/_freeze/index/execute-results/docx.json +++ b/_freeze/index/execute-results/docx.json @@ -1,8 +1,8 @@ { - "hash": "458d68808a876f608d5cdb2ee8cbd560", + "hash": "f0c906f6b97c996454f4b3d3117de0c2", "result": { "engine": "jupyter", - "markdown": "---\ntitle: T is for Topology\nauthor:\n - name: Tanya Strydom\n id: ts\n orcid: 0000-0001-6067-1349\n corresponding: true\n email: t.strydom@sheffield.ac.uk\n roles:\n - Words\n - Nonsense\n - Rascality\n - Visualisation (although absent)\n affiliation:\n - id: sheffield\n name: University of Sheffield\n - name: Andrew P. Beckerman\n id: apb\n orcid: 0000-0002-7859-8394\n corresponding: false\n roles: []\n affiliations:\n - ref: sheffield\nfunding: 'The author(s) received no specific funding for this work. Well they did I just haven''t done the '\nkeywords:\n - food web\n - network construction\nabstract: |\n Pending...\nplain-language-summary: |\n We want to know a bit more about the different network topology generators (predict tools) and how they differ - *i.e.,* their strengths and weaknesses\ndate: last-modified\nbibliography: references.bib\ncitation:\n container-title: Some fancy journal\nnumber-sections: true\n---\n\n:::{#36375146 .cell .markdown}\n## Introduction\n\nThe standard run of the mill that we cannot always feasibly construct networks because 1. hard, 2. time (yay dinosaurs, but also the future and impending doom I guess), and 3. probably something else meaningful that's just slipping my mind at the moment. Some of the usual culprits will come in here like: @jordanoSamplingNetworksEcological2016; [@jordanoChasingEcologicalInteractions2016]; @poisotGlobalKnowledgeGaps2021; @strydomRoadmapPredictingSpecies2021 (shameless self plug)\n\nMaybe a brief history of the development of predictive tools/topo generators? Sort of where the theory/body of work was based and how that has changed? IS there a difference between toppo generator and predictive tool - I'm inclined to think that it aligns with the whole debate of high level structure vs node-level perfection\n\nMaybe start here with discussing the core mechanistic differences that models will work at --- some are really concerned about (and thus constrained by) structure, others are more mechanistic in nature *i.e.,* species *a* has the capacity to eat species *b* because traits (read gob size), and then you get @rohrModelingFoodWebs2010 and @strydomFoodWebReconstruction2022 that sit in the weird liminal latent space... \n\nHere I will probably get on my (newly discovered) soapbox and wax lyrical about how in certain situations structure is enough (and that will probably be for some high-level things like thinking about energy flows etc., I can also see a world in which maybe you want to do some sort of robustness/extinction work - since then you're usually doing 'random' (within limits) extinctions) but there may be use cases where we are really interested in the node-level interactions *i.e.,* species identity is like a thing we need to care about and also be able to retrieve specific interactions at specific nodes correctly. What is the purpose of generating a network? Is it an element of a bigger question we are asking, *e.g.,* I want to generate a series of networks to do some extinction simulations/bioenergetic stuff OR are we looking for a 'final product' network that is relevant to a specific location? (this can still be broad in geographic scope). \n\nAt some point we are going to need to discuss the key differences and implications between predicting a metaweb (*sensu* @dunneNetworkStructureFood2006) and a network realisation. And here I can't help but think about @poisotSpeciesWhyEcological2015 (and probably other papers) that discuss how the local factors are going to play a role and even the same pair of species may interact differently in different points in the landscape.\n\n> Do we need to delve into individual-based networks? (*sensu* Tinker 2012, Araújo 2008) I think its probably a step too far and one starts creeping into apples and pears type of comparisons. Especially since these work off of already existing networks (I seem to recall) and its more about about 'tweaking' those - so not so much *de novo* predictions. Although this might be useful to keep in mind when it comes to re-wiring... Also on that note do we opn the re-wiring door here in this ms or wait it out a bit.\n\n## Data & Methods {#sec-data-methods}\n\n### Overview of topology generators\n\nI know table are awful but in this case they may make more sense. Also I don't think I'm at the point where I can say that the table is complete/comprehensive but it getting there Not sure about putting in some papers that have used the model - totes happy to drop those I think...\n\n| Approach | Reference | Core Mechanism | *e.g.,* uses | Applications (potential) | End product | Theory basis | Assumptions |\n|-------------------|----------------------------------------------|--------------------|--------------------|----------------------------------------------|--------------------|--------------------|-------------|\n| Cascade model | @cohenCommunityFoodWebs1990; @cohenStochasticTheoryCommunity1997 | structural | | | | | |\n| Niche model | @williamsSimpleRulesYield2000; @williamsSuccessItsLimits2008 | structural | | | networks have a finite number of links and species are partitioned along a resource | A network configuration for a given number of species & connectance | connectance, and others |\n| PFIM | @shawFrameworkReconstructingAncient2024 | mechanistic | Dunhill (in review)| prehistoric networks (but can be modified) | Metaweb (I'd argue) | traits determine interactions | feeding mechanisms are trait correlated |\n| Log-ratio | @rohrModelingFoodWebs2010 | latent trait space | @yeakelCollapseEcologicalNetwork2014, @piresMegafaunalExtinctionsHuman2020 (?)| | | | |\n| Nested hierarchy | @cattinPhylogeneticConstraintsAdaptation2004 | | | | | | |\n| ADBM | @petcheySizeForagingFood2008 | mechanistic | probably multiple | | working on it... | diet and body size determine interactions | size and resources (many) limitations |\n| Stochastic | @rossbergFoodWebsExperts2006 | | | | | | | |\n| Graph Embedding | @strydomGraphEmbeddingTransfer2023 | latent trait space | @strydomFoodWebReconstruction2022 | Generate metaweb for specific species pool | Probabilistic metaweb | interactions are 'encoded' and can thus be extracted and transferred to similar species | evolutionary backbones/signals |\n| Trait-based | @caronAddressingEltonianShortfall2022 | mechanistic | @caronTrophicInteractionModels2023| | metaweb | traits determine interactions | feeding mechanisms are trait correlated |\n| Random | | | | | | | chaos and anarchy |\n\n: Lets make a table that gives an overview of the different topology generators that we will look at {#tbl-history}\n\n> Might be nice to have a little appendix/supp mat that breaks down the models in detail so that they are all in one place so that someone (grad student being told they need to build networks) some day can go and educate themselves with slightly lower effort. This will also be useful for me should I end up having to do some actual coding - think of this as step one in the pseudo code process.\n\n### Datasets used\n\nHere I think we need to span a variety of domains, at minimum aquatic and terrestrial but maybe there should be a 'scale' element as well *i.e.,* a regional and local network. I think there is going to be a 'turning point' where structural will take over from mechanistic in terms of performance. More specifically at local scales bioenergetic constraints (and co-occurrence) may play a bigger role in structuring a network whereas at the metaweb level then mechanistic may make more (since by default its about who can potentially interact and obviously not constrained by real-world scenarios) *sensu* @caronTrophicInteractionModels2023. Although having said that I feel that contradicts the idea of backbones (*sensu* Bramon Mora (sp?) et al & Stouffer et al) But that might be where we get the idea of core *structure* vs something like linkage density. So core things like trophic level/chain length will be conserved but connectance might not (I think I understand what I'm trying to say here)\n\nI think we should also use the Dunne (I think) Cambrian (also think) network (I was correct and its this one @dunneCompilationNetworkAnalyses2008). Because 1) it gives the paleo-centric methods their moment in the sun and 2) I think it also brings up the interesting question of can we use modern structure to predict past ones? Here one might expect a more mechanistic approach to shine.\n\nDraw the other datasets from `Mangal` because they will be nicely formatted and essentially at point and shoot level\n\n### Comparing different models\n\nFor now the (still essentially pending) workflow/associated code can be found at the following repository [BecksLab/topology_generators](https://github.com/BecksLab/topology_generators)\n\n1. Shortlist/finalise the different topo generators\n2. collate/translate into `Julia`\n * *e.g.,* some models wil be in SpeciesInteractionNetworks.jl (new EcoNet); I know (parts of) the transfer learning stuff is and the niche model\n * others will need to be coded out (the more simpler models should be easier)\n * can also consider `R` but then it becomes a case of porting things left and right depending on how we decide to do the post analyses\n3. Curate networks for the different datasets/scenarios we select - I feel like there might be some scenarios that we can't do all models for all datasets but maybe I'm being a pessimist.\n * Need to also think about where one might find the additional data for some of the models...\n * Body size: @herbersteinAnimalTraitsCuratedAnimal2022 - Although maybe Andrew has strong thotsTM RE the one true body size database to rule them all...\n * Other trait sources: @wilmanEltonTraitsSpecieslevelForaging2014 and @jonesPanTHERIASpecieslevelDatabase2009\n * This is where we'll get the paleo traits from if I'm correct @bambachAutecologyFillingEcospace2007\n * Phylogeny stuff: @uphamInferringMammalTree2019 (what we used for TL but its only mammals...) but I'm sure there will be others\n * Also limitation of scope... *e.g.,* do we even dare to think about including plants/basal producers (see *e.g.,* @valdovinosBioenergeticFrameworkAboveground2023)\n * Taxonomic harmonisation - something to think about and check\n4. compare model performance based on the ideas currently listed in the results section.\n5. Make a pretty picture that summarises things - maybe overlapping Venn circles that showcase which models do well in the different spheres/aspects of life\n\n## Results\n\nHow we want to compare and contrast. I think there won't be a 'winner' and thus we need to think of 'tests' that are going to measure performance in different situations/settings. With that in mind I think some valuable points to consider would be:\n\n* Structural vs pairwise link predictions (graph vs node level)\n * % of links correctly retrieved\n * connectance\n * trophic level\n * generalism vs specialism\n * something related to false positives/negatives\n * intervality\n* Data 'cost' (some methods might need a lot lot of supporting data vs something very light weight)\n* I think it would be remiss to not also take into consideration computational cost\n* something about the network output - I'm acknowledging my biases and saying that probabilistic (or *maybe* weighted) links are the way\n\n> maybe we can put these into broader categories - if we do start doing the venn overlap thing. *E.g.,* local scale predictions, regional scale predictions, pairwise interactions, structural (energetics), computationally cheap, low cost data\n\n### Qualitative stuff\n\n\n\n{{< embed notebooks/model_qualitative.qmd#fig-venn >}}\n\n\n\n\n\n## Discussion\n\nI think a big take home will (hopefully) be how different approaches do better in different situations and so you as an end user need to take this into consideration and pick accordingly. I think @petcheyFitEfficiencyBiology2011 might have (and share) some thoughts on this (thanks Andrew). I feel like I need to look at @berlowGoldilocksFactorFood2008 but maybe not exactly in this context but vaguely adjacent.\n\nAn interesting thing to also think about (and arguably it will be addressed based on some of the other thoughts and ideas) is data dependant and data independent 'parametrisation' of the models...\n\nI probably think about this point too much but a point of discussion that I think will be interesting to bring up the idea that if a model is missing a specific pairwise link but doing well at the structural level then when does it matter? I think this is covered with the whole node vs graph level performance but I kind of just want to bring it up here again because also one of those things that I think about a bit too much probably...\n\n> Thinking very long term here and maybe a bit beyond the scope but also thinking about a multi- model approach? So in other words using one model to build an initial network but maybe a second one to constrain it a bit better. I blame this thought on the over-connected PFIM food webs...\n\n## References {.unnumbered}\n\n::: {#refs}\n:::\n:::\n\n", + "markdown": "---\ntitle: T is for Topology\nauthor:\n - name: Tanya Strydom\n id: ts\n orcid: 0000-0001-6067-1349\n corresponding: true\n email: t.strydom@sheffield.ac.uk\n roles:\n - Words\n - Nonsense\n - Rascality\n - Visualisation (although absent)\n affiliation:\n - id: sheffield\n name: University of Sheffield\n - name: Andrew P. Beckerman\n id: apb\n orcid: 0000-0002-7859-8394\n corresponding: false\n roles: []\n affiliations:\n - ref: sheffield\nfunding: 'The author(s) received no specific funding for this work. Well they did I just haven''t done the '\nkeywords:\n - food web\n - network construction\nabstract: |\n Pending...\nplain-language-summary: |\n We want to know a bit more about the different network topology generators (predict tools) and how they differ - *i.e.,* their strengths and weaknesses\ndate: last-modified\nbibliography: references.bib\ncitation:\n container-title: Some fancy journal\nnumber-sections: true\n---\n\n:::{#91402243 .cell .markdown}\n## Introduction\n\nThe standard run of the mill that we cannot always feasibly construct networks because 1. hard, 2. time (yay dinosaurs, but also the future and impending doom I guess), and 3. probably something else meaningful that's just slipping my mind at the moment. Some of the usual culprits will come in here like: @jordanoSamplingNetworksEcological2016; [@jordanoChasingEcologicalInteractions2016]; @poisotGlobalKnowledgeGaps2021\n\n> TODO: standardise language between a topology generator and a topology predictor... I guess they can both be considered models but I'm not quite sure...\n\n### Philosophical contemplation when constructing interaction networks\n\n#### Why do we want to construct an interaction network?\n\nArguably the need for methods and tools for constructing interaction networks arises from two different (but still aligned) places of interest within the field of network ecology. On the one side of the spectrum sits the researcher who is interested in generating a set of ecologically plausible but not necessarily realised 'in the field' for the purpose of running further simulations (*e.g.,* extinction sim REF? **TODO**) or understanding some higher-level process (*e.g.,* energetics REF **TODO**). This researcher is contrasted by one that is interested in constructing real-world, location specific interactions networks in lieu of having access to data generated in the field (see @strydomRoadmapPredictingSpecies2021 for a discussion on this). Of course these two categories are not distinct, mutually exclusive, groups but can rather be viewed as operating on a gradient ranging from a need for generality (*something*) to a need for specificity (local-level predictions) when it comes to the quality(?) of the network that is constructed by a specific tool. Of course this research need would also reflected in the model development process itself and thus the idea of what a 'good enough' constructed network will be in the context of assessing the performance of a specific model. \n\n@cohenStochasticTheoryCommunity1985 states that *\"[Their] approach is more like gross anatomy than like physiology... that is, the gross anatomy is frozen, rather than in motion.\"*. \n\nInterestingly @williamsSuccessItsLimits2008 also explicitly talk about *structural* food-web models in their introduction... so how I see it that means that there has always been this inherent acknowledgement that models are function at a specific 'network level'.\n\n#### The history behind the approach\n\n\nMaybe a brief history of the development of predictive tools/topo generators? Sort of where the theory/body of work was based and how that has changed? IS there a difference between topo generator and predictive tool - I'm inclined to think that it aligns with the whole debate of high level structure vs node-level perfection\n\nMaybe start here with discussing the core mechanistic differences that models will work at --- some are really concerned about (and thus constrained by) structure, others are more mechanistic in nature *i.e.,* species *a* has the capacity to eat species *b* because traits (read gob size), and then you get @rohrModelingFoodWebs2010 and @strydomFoodWebReconstruction2022 that sit in the weird liminal latent space... \n\nHere I will probably get on my (newly discovered) soapbox and wax lyrical about how in certain situations structure is enough (and that will probably be for some high-level things like thinking about energy flows etc., I can also see a world in which maybe you want to do some sort of robustness/extinction work - since then you're usually doing 'random' (within limits) extinctions) but there may be use cases where we are really interested in the node-level interactions *i.e.,* species identity is like a thing we need to care about and also be able to retrieve specific interactions at specific nodes correctly. What is the purpose of generating a network? Is it an element of a bigger question we are asking, *e.g.,* I want to generate a series of networks to do some extinction simulations/bioenergetic stuff OR are we looking for a 'final product' network that is relevant to a specific location? (this can still be broad in geographic scope). \n\nAt some point we are going to need to discuss the key differences and implications between predicting a metaweb (*sensu* @dunneNetworkStructureFood2006) and a network realisation. And here I can't help but think about @poisotSpeciesWhyEcological2015 (and probably other papers) that discuss how the local factors are going to play a role and even the same pair of species may interact differently in different points in the landscape.\n\n> Do we need to delve into individual-based networks? (*sensu* Tinker 2012, Araújo 2008) I think its probably a step too far and one starts creeping into apples and pears type of comparisons. Especially since these work off of already existing networks (I seem to recall) and its more about about 'tweaking' those - so not so much *de novo* predictions. Although this might be useful to keep in mind when it comes to re-wiring... Also on that note do we opn the re-wiring door here in this ms or wait it out a bit.\n\n## Data & Methods {#sec-data-methods}\n\n### Overview of models\n\n#### Structural models\n\n**Random model** [@erdosRandomGraphs1959]: Links are assembled randomly, not developed within an ecological framework. But of course could still hold if we assume that communities are randomly assembled in terms of who is interacting with who (I seem to think that's sort of what May was arguing but I would need to remind myself)\n\n**Cascade model** [@cohenCommunityFoodWebs1990]: Much like the name suggests the cascade model rests on the idea that species feed on one another in a hierarchical manner. This rests on the assumption that the links within a network are variably distributed across the network; with the proportion of links decreasing as one moves up the trophic levels (*i.e.,* 'many' prey and 'few' predators). This is achieved by assigning all species a random rank, this rank will then determine both the predators and prey of that species. A species will have a particular probability of being fed on by any species with a higher ranking than it, this probability is constrained by the specified connectance of the network. Interestingly here 'species' are treated as any individual that consume and are consumed by the same 'species', *i.e.,* these are not taxonomical species [@cohenStochasticTheoryCommunity1985]. The original cascade model has altered to be more 'generalised' [@stoufferQuantitativePatternsStructure2005], which altered the probability distribution of the prey that could be consumed by a species. \n\n**Niche model** [@williamsSimpleRulesYield2000]: The niche model introduces the idea that species interactions are based on the 'feeding niche' of a species. Broadly, all species are randomly assigned a 'feeding niche' range and all species that fall in this range can be consumed by that species (thereby allowing for cannibalism). The niche of each species is randomly assigned and the range of each species' niche is (in part) constrained by the specified connectance of the network. The niche model has also been modified, although it appears that adding to the 'complexity' of the niche model does not improve on its ability to generate a more ecologically 'correct' network [@williamsSuccessItsLimits2008]. \n\n**Nested hierarchy model** [@cattinPhylogeneticConstraintsAdaptation2004]:\n\n#### Mechanistic models\n\n**Allometric diet breadth model (ADBM)** [@petcheySizeForagingFood2008]:\n\n**Log-ratio** [@rohrModelingFoodWebs2010]: Interestingly often used in paleo settings (at least that's what it currently looks like in my mind... (*e.g.,* @yeakelCollapseEcologicalNetwork2014, @piresMegafaunalExtinctionsHuman2020)\n\n**Stochastic** [@rossbergFoodWebsExperts2006]:\n\n**PFIM** [@shawFrameworkReconstructingAncient2024]:\n\n**Trait-based** [@caronAddressingEltonianShortfall2022]:\n\n**Graph embedding** [@strydomGraphEmbeddingTransfer2023]: *e.g.,* [@strydomFoodWebReconstruction2022]\n\nI know tables are awful but in this case they may make more sense. Also I don't think I'm at the point where I can say that the table is complete/comprehensive but it getting there Not sure about putting in some papers that have used the model - totes happy to drop those I think...\n\n| Model | Core Mechanism | End product | Data (?) |\n|---------------------|----------------|-------------|----------|\n| random | structural | network | |\n| cascade | structural | network | |\n| niche | structural | network | |\n| nested hierarchical | structural | network | |\n| ADBM | mechanistic | **TODO** | |\n| log-ratio | mechanistic | **TODO** | |\n| PFIM | mechanistic | metaweb | |\n| graph embedding | mechanistic | metaweb | |\n| trait-based | mechanistic | metaweb | |\n| stochastic | **TODO** | **TODO** | |\n\n: Lets make a table that gives an overview of the different topology generators that we will look at {#tbl-history}\n\n> Might be nice to have a little appendix/supp mat that breaks down the models in detail so that they are all in one place so that someone (grad student being told they need to build networks) some day can go and educate themselves with slightly lower effort. This will also be useful for me should I end up having to do some actual coding - think of this as step one in the pseudo code process.\n\n### Datasets used\n\nHere I think we need to span a variety of domains, at minimum aquatic and terrestrial but maybe there should be a 'scale' element as well *i.e.,* a regional and local network. I think there is going to be a 'turning point' where structural will take over from mechanistic in terms of performance. More specifically at local scales bioenergetic constraints (and co-occurrence) may play a bigger role in structuring a network whereas at the metaweb level then mechanistic may make more (since by default its about who can potentially interact and obviously not constrained by real-world scenarios) *sensu* @caronTrophicInteractionModels2023. Although having said that I feel that contradicts the idea of backbones (*sensu* Bramon Mora (sp?) et al & Stouffer et al) But that might be where we get the idea of core *structure* vs something like linkage density. So core things like trophic level/chain length will be conserved but connectance might not (I think I understand what I'm trying to say here)\n\nI think we should also use the Dunne (I think) Cambrian (also think) network (I was correct and its this one @dunneCompilationNetworkAnalyses2008). Because 1) it gives the paleo-centric methods their moment in the sun and 2) I think it also brings up the interesting question of can we use modern structure to predict past ones? Here one might expect a more mechanistic approach to shine.\n\nDraw the other datasets from `Mangal` because they will be nicely formatted and essentially at point and shoot level\n\n### Comparing different models\n\nFor now the (still essentially pending) workflow/associated code can be found at the following repository [BecksLab/topology_generators](https://github.com/BecksLab/topology_generators)\n\n1. Shortlist/finalise the different topo generators\n2. collate/translate into `Julia`\n * *e.g.,* some models wil be in SpeciesInteractionNetworks.jl (new EcoNet); I know (parts of) the transfer learning stuff is and the niche model\n * others will need to be coded out (the more simpler models should be easier)\n * can also consider `R` but then it becomes a case of porting things left and right depending on how we decide to do the post analyses\n3. Curate networks for the different datasets/scenarios we select - I feel like there might be some scenarios that we can't do all models for all datasets but maybe I'm being a pessimist.\n * Need to also think about where one might find the additional data for some of the models...\n * Body size: @herbersteinAnimalTraitsCuratedAnimal2022 - Although maybe Andrew has strong thotsTM RE the one true body size database to rule them all...\n * Other trait sources: @wilmanEltonTraitsSpecieslevelForaging2014 and @jonesPanTHERIASpecieslevelDatabase2009\n * This is where we'll get the paleo traits from if I'm correct @bambachAutecologyFillingEcospace2007\n * Phylogeny stuff: @uphamInferringMammalTree2019 (what we used for TL but its only mammals...) but I'm sure there will be others\n * Also limitation of scope... *e.g.,* do we even dare to think about including plants/basal producers (see *e.g.,* @valdovinosBioenergeticFrameworkAboveground2023)\n * Taxonomic harmonisation - something to think about and check\n4. compare model performance based on the ideas currently listed in the results section.\n5. Make a pretty picture that summarises things - maybe overlapping Venn circles that showcase which models do well in the different spheres/aspects of life\n\n## Results\n\nHow we want to compare and contrast. I think there won't be a 'winner' and thus we need to think of 'tests' that are going to measure performance in different situations/settings. With that in mind I think some valuable points to consider would be:\n\n* Structural vs pairwise link predictions (graph vs node level)\n * % of links correctly retrieved\n * connectance\n * trophic level\n * generalism vs specialism\n * something related to false positives/negatives\n * intervality\n* Data 'cost' (some methods might need a lot lot of supporting data vs something very light weight)\n* I think it would be remiss to not also take into consideration computational cost\n* something about the network output - I'm acknowledging my biases and saying that probabilistic (or *maybe* weighted) links are the way\n\n@cohenStochasticTheoryCommunity1985 actually tells us that the cascade model only really works for communities that range from 3-33 species... and @williamsSuccessItsLimits2008 also highlights how structural models really only work for small communities\n\n> maybe we can put these into broader categories - if we do start doing the venn overlap thing. *E.g.,* local scale predictions, regional scale predictions, pairwise interactions, structural (energetics), computationally cheap, low cost data\n\n### Qualitative stuff\n\n\n\n{{< embed notebooks/model_qualitative.qmd#fig-venn >}}\n\n\n\n\n\n## Discussion\n\nI think a big take home will (hopefully) be how different approaches do better in different situations and so you as an end user need to take this into consideration and pick accordingly. I think @petcheyFitEfficiencyBiology2011 might have (and share) some thoughts on this (thanks Andrew). I feel like I need to look at @berlowGoldilocksFactorFood2008 but maybe not exactly in this context but vaguely adjacent.\n\nAn interesting thing to also think about (and arguably it will be addressed based on some of the other thoughts and ideas) is data dependant and data independent 'parametrisation' of the models...\n\nI probably think about this point too much but a point of discussion that I think will be interesting to bring up the idea that if a model is missing a specific pairwise link but doing well at the structural level then when does it matter? I think this is covered with the whole node vs graph level performance but I kind of just want to bring it up here again because also one of those things that I think about a bit too much probably...\n\n> Thinking very long term here and maybe a bit beyond the scope but also thinking about a multi- model approach? So in other words using one model to build an initial network but maybe a second one to constrain it a bit better. I blame this thought on the over-connected PFIM food webs...\n\n## References {.unnumbered}\n\n::: {#refs}\n:::\n:::\n\n", "supporting": [ "index_files/figure-docx" ], diff --git a/_freeze/index/execute-results/html.json b/_freeze/index/execute-results/html.json index 632d611..931a0e7 100644 --- a/_freeze/index/execute-results/html.json +++ b/_freeze/index/execute-results/html.json @@ -1,8 +1,8 @@ { - "hash": "458d68808a876f608d5cdb2ee8cbd560", + "hash": "f0c906f6b97c996454f4b3d3117de0c2", "result": { "engine": "jupyter", - "markdown": "---\ntitle: T is for Topology\nauthor:\n - name: Tanya Strydom\n id: ts\n orcid: 0000-0001-6067-1349\n corresponding: true\n email: t.strydom@sheffield.ac.uk\n roles:\n - Words\n - Nonsense\n - Rascality\n - Visualisation (although absent)\n affiliation:\n - id: sheffield\n name: University of Sheffield\n - name: Andrew P. Beckerman\n id: apb\n orcid: 0000-0002-7859-8394\n corresponding: false\n roles: []\n affiliations:\n - ref: sheffield\nfunding: 'The author(s) received no specific funding for this work. Well they did I just haven''t done the '\nkeywords:\n - food web\n - network construction\nabstract: |\n Pending...\nplain-language-summary: |\n We want to know a bit more about the different network topology generators (predict tools) and how they differ - *i.e.,* their strengths and weaknesses\ndate: last-modified\nbibliography: references.bib\ncitation:\n container-title: Some fancy journal\nnumber-sections: true\n---\n\n:::{#082b882b .cell .markdown}\n## Introduction\n\nThe standard run of the mill that we cannot always feasibly construct networks because 1. hard, 2. time (yay dinosaurs, but also the future and impending doom I guess), and 3. probably something else meaningful that's just slipping my mind at the moment. Some of the usual culprits will come in here like: @jordanoSamplingNetworksEcological2016; [@jordanoChasingEcologicalInteractions2016]; @poisotGlobalKnowledgeGaps2021; @strydomRoadmapPredictingSpecies2021 (shameless self plug)\n\nMaybe a brief history of the development of predictive tools/topo generators? Sort of where the theory/body of work was based and how that has changed? IS there a difference between toppo generator and predictive tool - I'm inclined to think that it aligns with the whole debate of high level structure vs node-level perfection\n\nMaybe start here with discussing the core mechanistic differences that models will work at --- some are really concerned about (and thus constrained by) structure, others are more mechanistic in nature *i.e.,* species *a* has the capacity to eat species *b* because traits (read gob size), and then you get @rohrModelingFoodWebs2010 and @strydomFoodWebReconstruction2022 that sit in the weird liminal latent space... \n\nHere I will probably get on my (newly discovered) soapbox and wax lyrical about how in certain situations structure is enough (and that will probably be for some high-level things like thinking about energy flows etc., I can also see a world in which maybe you want to do some sort of robustness/extinction work - since then you're usually doing 'random' (within limits) extinctions) but there may be use cases where we are really interested in the node-level interactions *i.e.,* species identity is like a thing we need to care about and also be able to retrieve specific interactions at specific nodes correctly. What is the purpose of generating a network? Is it an element of a bigger question we are asking, *e.g.,* I want to generate a series of networks to do some extinction simulations/bioenergetic stuff OR are we looking for a 'final product' network that is relevant to a specific location? (this can still be broad in geographic scope). \n\nAt some point we are going to need to discuss the key differences and implications between predicting a metaweb (*sensu* @dunneNetworkStructureFood2006) and a network realisation. And here I can't help but think about @poisotSpeciesWhyEcological2015 (and probably other papers) that discuss how the local factors are going to play a role and even the same pair of species may interact differently in different points in the landscape.\n\n> Do we need to delve into individual-based networks? (*sensu* Tinker 2012, Araújo 2008) I think its probably a step too far and one starts creeping into apples and pears type of comparisons. Especially since these work off of already existing networks (I seem to recall) and its more about about 'tweaking' those - so not so much *de novo* predictions. Although this might be useful to keep in mind when it comes to re-wiring... Also on that note do we opn the re-wiring door here in this ms or wait it out a bit.\n\n## Data & Methods {#sec-data-methods}\n\n### Overview of topology generators\n\nI know table are awful but in this case they may make more sense. Also I don't think I'm at the point where I can say that the table is complete/comprehensive but it getting there Not sure about putting in some papers that have used the model - totes happy to drop those I think...\n\n| Approach | Reference | Core Mechanism | *e.g.,* uses | Applications (potential) | End product | Theory basis | Assumptions |\n|-------------------|----------------------------------------------|--------------------|--------------------|----------------------------------------------|--------------------|--------------------|-------------|\n| Cascade model | @cohenCommunityFoodWebs1990; @cohenStochasticTheoryCommunity1997 | structural | | | | | |\n| Niche model | @williamsSimpleRulesYield2000; @williamsSuccessItsLimits2008 | structural | | | networks have a finite number of links and species are partitioned along a resource | A network configuration for a given number of species & connectance | connectance, and others |\n| PFIM | @shawFrameworkReconstructingAncient2024 | mechanistic | Dunhill (in review)| prehistoric networks (but can be modified) | Metaweb (I'd argue) | traits determine interactions | feeding mechanisms are trait correlated |\n| Log-ratio | @rohrModelingFoodWebs2010 | latent trait space | @yeakelCollapseEcologicalNetwork2014, @piresMegafaunalExtinctionsHuman2020 (?)| | | | |\n| Nested hierarchy | @cattinPhylogeneticConstraintsAdaptation2004 | | | | | | |\n| ADBM | @petcheySizeForagingFood2008 | mechanistic | probably multiple | | working on it... | diet and body size determine interactions | size and resources (many) limitations |\n| Stochastic | @rossbergFoodWebsExperts2006 | | | | | | | |\n| Graph Embedding | @strydomGraphEmbeddingTransfer2023 | latent trait space | @strydomFoodWebReconstruction2022 | Generate metaweb for specific species pool | Probabilistic metaweb | interactions are 'encoded' and can thus be extracted and transferred to similar species | evolutionary backbones/signals |\n| Trait-based | @caronAddressingEltonianShortfall2022 | mechanistic | @caronTrophicInteractionModels2023| | metaweb | traits determine interactions | feeding mechanisms are trait correlated |\n| Random | | | | | | | chaos and anarchy |\n\n: Lets make a table that gives an overview of the different topology generators that we will look at {#tbl-history}\n\n> Might be nice to have a little appendix/supp mat that breaks down the models in detail so that they are all in one place so that someone (grad student being told they need to build networks) some day can go and educate themselves with slightly lower effort. This will also be useful for me should I end up having to do some actual coding - think of this as step one in the pseudo code process.\n\n### Datasets used\n\nHere I think we need to span a variety of domains, at minimum aquatic and terrestrial but maybe there should be a 'scale' element as well *i.e.,* a regional and local network. I think there is going to be a 'turning point' where structural will take over from mechanistic in terms of performance. More specifically at local scales bioenergetic constraints (and co-occurrence) may play a bigger role in structuring a network whereas at the metaweb level then mechanistic may make more (since by default its about who can potentially interact and obviously not constrained by real-world scenarios) *sensu* @caronTrophicInteractionModels2023. Although having said that I feel that contradicts the idea of backbones (*sensu* Bramon Mora (sp?) et al & Stouffer et al) But that might be where we get the idea of core *structure* vs something like linkage density. So core things like trophic level/chain length will be conserved but connectance might not (I think I understand what I'm trying to say here)\n\nI think we should also use the Dunne (I think) Cambrian (also think) network (I was correct and its this one @dunneCompilationNetworkAnalyses2008). Because 1) it gives the paleo-centric methods their moment in the sun and 2) I think it also brings up the interesting question of can we use modern structure to predict past ones? Here one might expect a more mechanistic approach to shine.\n\nDraw the other datasets from `Mangal` because they will be nicely formatted and essentially at point and shoot level\n\n### Comparing different models\n\nFor now the (still essentially pending) workflow/associated code can be found at the following repository [BecksLab/topology_generators](https://github.com/BecksLab/topology_generators)\n\n1. Shortlist/finalise the different topo generators\n2. collate/translate into `Julia`\n * *e.g.,* some models wil be in SpeciesInteractionNetworks.jl (new EcoNet); I know (parts of) the transfer learning stuff is and the niche model\n * others will need to be coded out (the more simpler models should be easier)\n * can also consider `R` but then it becomes a case of porting things left and right depending on how we decide to do the post analyses\n3. Curate networks for the different datasets/scenarios we select - I feel like there might be some scenarios that we can't do all models for all datasets but maybe I'm being a pessimist.\n * Need to also think about where one might find the additional data for some of the models...\n * Body size: @herbersteinAnimalTraitsCuratedAnimal2022 - Although maybe Andrew has strong thotsTM RE the one true body size database to rule them all...\n * Other trait sources: @wilmanEltonTraitsSpecieslevelForaging2014 and @jonesPanTHERIASpecieslevelDatabase2009\n * This is where we'll get the paleo traits from if I'm correct @bambachAutecologyFillingEcospace2007\n * Phylogeny stuff: @uphamInferringMammalTree2019 (what we used for TL but its only mammals...) but I'm sure there will be others\n * Also limitation of scope... *e.g.,* do we even dare to think about including plants/basal producers (see *e.g.,* @valdovinosBioenergeticFrameworkAboveground2023)\n * Taxonomic harmonisation - something to think about and check\n4. compare model performance based on the ideas currently listed in the results section.\n5. Make a pretty picture that summarises things - maybe overlapping Venn circles that showcase which models do well in the different spheres/aspects of life\n\n## Results\n\nHow we want to compare and contrast. I think there won't be a 'winner' and thus we need to think of 'tests' that are going to measure performance in different situations/settings. With that in mind I think some valuable points to consider would be:\n\n* Structural vs pairwise link predictions (graph vs node level)\n * % of links correctly retrieved\n * connectance\n * trophic level\n * generalism vs specialism\n * something related to false positives/negatives\n * intervality\n* Data 'cost' (some methods might need a lot lot of supporting data vs something very light weight)\n* I think it would be remiss to not also take into consideration computational cost\n* something about the network output - I'm acknowledging my biases and saying that probabilistic (or *maybe* weighted) links are the way\n\n> maybe we can put these into broader categories - if we do start doing the venn overlap thing. *E.g.,* local scale predictions, regional scale predictions, pairwise interactions, structural (energetics), computationally cheap, low cost data\n\n### Qualitative stuff\n\n\n\n\n\n{{< embed notebooks/model_qualitative.qmd#fig-venn >}}\n\n\n\n\n\n\n\n\n\n## Discussion\n\nI think a big take home will (hopefully) be how different approaches do better in different situations and so you as an end user need to take this into consideration and pick accordingly. I think @petcheyFitEfficiencyBiology2011 might have (and share) some thoughts on this (thanks Andrew). I feel like I need to look at @berlowGoldilocksFactorFood2008 but maybe not exactly in this context but vaguely adjacent.\n\nAn interesting thing to also think about (and arguably it will be addressed based on some of the other thoughts and ideas) is data dependant and data independent 'parametrisation' of the models...\n\nI probably think about this point too much but a point of discussion that I think will be interesting to bring up the idea that if a model is missing a specific pairwise link but doing well at the structural level then when does it matter? I think this is covered with the whole node vs graph level performance but I kind of just want to bring it up here again because also one of those things that I think about a bit too much probably...\n\n> Thinking very long term here and maybe a bit beyond the scope but also thinking about a multi- model approach? So in other words using one model to build an initial network but maybe a second one to constrain it a bit better. I blame this thought on the over-connected PFIM food webs...\n\n## References {.unnumbered}\n\n::: {#refs}\n:::\n:::\n\n", + "markdown": "---\ntitle: T is for Topology\nauthor:\n - name: Tanya Strydom\n id: ts\n orcid: 0000-0001-6067-1349\n corresponding: true\n email: t.strydom@sheffield.ac.uk\n roles:\n - Words\n - Nonsense\n - Rascality\n - Visualisation (although absent)\n affiliation:\n - id: sheffield\n name: University of Sheffield\n - name: Andrew P. Beckerman\n id: apb\n orcid: 0000-0002-7859-8394\n corresponding: false\n roles: []\n affiliations:\n - ref: sheffield\nfunding: 'The author(s) received no specific funding for this work. Well they did I just haven''t done the '\nkeywords:\n - food web\n - network construction\nabstract: |\n Pending...\nplain-language-summary: |\n We want to know a bit more about the different network topology generators (predict tools) and how they differ - *i.e.,* their strengths and weaknesses\ndate: last-modified\nbibliography: references.bib\ncitation:\n container-title: Some fancy journal\nnumber-sections: true\n---\n\n:::{#ee0b2c22 .cell .markdown}\n## Introduction\n\nThe standard run of the mill that we cannot always feasibly construct networks because 1. hard, 2. time (yay dinosaurs, but also the future and impending doom I guess), and 3. probably something else meaningful that's just slipping my mind at the moment. Some of the usual culprits will come in here like: @jordanoSamplingNetworksEcological2016; [@jordanoChasingEcologicalInteractions2016]; @poisotGlobalKnowledgeGaps2021\n\n> TODO: standardise language between a topology generator and a topology predictor... I guess they can both be considered models but I'm not quite sure...\n\n### Philosophical contemplation when constructing interaction networks\n\n#### Why do we want to construct an interaction network?\n\nArguably the need for methods and tools for constructing interaction networks arises from two different (but still aligned) places of interest within the field of network ecology. On the one side of the spectrum sits the researcher who is interested in generating a set of ecologically plausible but not necessarily realised 'in the field' for the purpose of running further simulations (*e.g.,* extinction sim REF? **TODO**) or understanding some higher-level process (*e.g.,* energetics REF **TODO**). This researcher is contrasted by one that is interested in constructing real-world, location specific interactions networks in lieu of having access to data generated in the field (see @strydomRoadmapPredictingSpecies2021 for a discussion on this). Of course these two categories are not distinct, mutually exclusive, groups but can rather be viewed as operating on a gradient ranging from a need for generality (*something*) to a need for specificity (local-level predictions) when it comes to the quality(?) of the network that is constructed by a specific tool. Of course this research need would also reflected in the model development process itself and thus the idea of what a 'good enough' constructed network will be in the context of assessing the performance of a specific model. \n\n@cohenStochasticTheoryCommunity1985 states that *\"[Their] approach is more like gross anatomy than like physiology... that is, the gross anatomy is frozen, rather than in motion.\"*. \n\nInterestingly @williamsSuccessItsLimits2008 also explicitly talk about *structural* food-web models in their introduction... so how I see it that means that there has always been this inherent acknowledgement that models are function at a specific 'network level'.\n\n#### The history behind the approach\n\n\nMaybe a brief history of the development of predictive tools/topo generators? Sort of where the theory/body of work was based and how that has changed? IS there a difference between topo generator and predictive tool - I'm inclined to think that it aligns with the whole debate of high level structure vs node-level perfection\n\nMaybe start here with discussing the core mechanistic differences that models will work at --- some are really concerned about (and thus constrained by) structure, others are more mechanistic in nature *i.e.,* species *a* has the capacity to eat species *b* because traits (read gob size), and then you get @rohrModelingFoodWebs2010 and @strydomFoodWebReconstruction2022 that sit in the weird liminal latent space... \n\nHere I will probably get on my (newly discovered) soapbox and wax lyrical about how in certain situations structure is enough (and that will probably be for some high-level things like thinking about energy flows etc., I can also see a world in which maybe you want to do some sort of robustness/extinction work - since then you're usually doing 'random' (within limits) extinctions) but there may be use cases where we are really interested in the node-level interactions *i.e.,* species identity is like a thing we need to care about and also be able to retrieve specific interactions at specific nodes correctly. What is the purpose of generating a network? Is it an element of a bigger question we are asking, *e.g.,* I want to generate a series of networks to do some extinction simulations/bioenergetic stuff OR are we looking for a 'final product' network that is relevant to a specific location? (this can still be broad in geographic scope). \n\nAt some point we are going to need to discuss the key differences and implications between predicting a metaweb (*sensu* @dunneNetworkStructureFood2006) and a network realisation. And here I can't help but think about @poisotSpeciesWhyEcological2015 (and probably other papers) that discuss how the local factors are going to play a role and even the same pair of species may interact differently in different points in the landscape.\n\n> Do we need to delve into individual-based networks? (*sensu* Tinker 2012, Araújo 2008) I think its probably a step too far and one starts creeping into apples and pears type of comparisons. Especially since these work off of already existing networks (I seem to recall) and its more about about 'tweaking' those - so not so much *de novo* predictions. Although this might be useful to keep in mind when it comes to re-wiring... Also on that note do we opn the re-wiring door here in this ms or wait it out a bit.\n\n## Data & Methods {#sec-data-methods}\n\n### Overview of models\n\n#### Structural models\n\n**Random model** [@erdosRandomGraphs1959]: Links are assembled randomly, not developed within an ecological framework. But of course could still hold if we assume that communities are randomly assembled in terms of who is interacting with who (I seem to think that's sort of what May was arguing but I would need to remind myself)\n\n**Cascade model** [@cohenCommunityFoodWebs1990]: Much like the name suggests the cascade model rests on the idea that species feed on one another in a hierarchical manner. This rests on the assumption that the links within a network are variably distributed across the network; with the proportion of links decreasing as one moves up the trophic levels (*i.e.,* 'many' prey and 'few' predators). This is achieved by assigning all species a random rank, this rank will then determine both the predators and prey of that species. A species will have a particular probability of being fed on by any species with a higher ranking than it, this probability is constrained by the specified connectance of the network. Interestingly here 'species' are treated as any individual that consume and are consumed by the same 'species', *i.e.,* these are not taxonomical species [@cohenStochasticTheoryCommunity1985]. The original cascade model has altered to be more 'generalised' [@stoufferQuantitativePatternsStructure2005], which altered the probability distribution of the prey that could be consumed by a species. \n\n**Niche model** [@williamsSimpleRulesYield2000]: The niche model introduces the idea that species interactions are based on the 'feeding niche' of a species. Broadly, all species are randomly assigned a 'feeding niche' range and all species that fall in this range can be consumed by that species (thereby allowing for cannibalism). The niche of each species is randomly assigned and the range of each species' niche is (in part) constrained by the specified connectance of the network. The niche model has also been modified, although it appears that adding to the 'complexity' of the niche model does not improve on its ability to generate a more ecologically 'correct' network [@williamsSuccessItsLimits2008]. \n\n**Nested hierarchy model** [@cattinPhylogeneticConstraintsAdaptation2004]:\n\n#### Mechanistic models\n\n**Allometric diet breadth model (ADBM)** [@petcheySizeForagingFood2008]:\n\n**Log-ratio** [@rohrModelingFoodWebs2010]: Interestingly often used in paleo settings (at least that's what it currently looks like in my mind... (*e.g.,* @yeakelCollapseEcologicalNetwork2014, @piresMegafaunalExtinctionsHuman2020)\n\n**Stochastic** [@rossbergFoodWebsExperts2006]:\n\n**PFIM** [@shawFrameworkReconstructingAncient2024]:\n\n**Trait-based** [@caronAddressingEltonianShortfall2022]:\n\n**Graph embedding** [@strydomGraphEmbeddingTransfer2023]: *e.g.,* [@strydomFoodWebReconstruction2022]\n\nI know tables are awful but in this case they may make more sense. Also I don't think I'm at the point where I can say that the table is complete/comprehensive but it getting there Not sure about putting in some papers that have used the model - totes happy to drop those I think...\n\n| Model | Core Mechanism | End product | Data (?) |\n|---------------------|----------------|-------------|----------|\n| random | structural | network | |\n| cascade | structural | network | |\n| niche | structural | network | |\n| nested hierarchical | structural | network | |\n| ADBM | mechanistic | **TODO** | |\n| log-ratio | mechanistic | **TODO** | |\n| PFIM | mechanistic | metaweb | |\n| graph embedding | mechanistic | metaweb | |\n| trait-based | mechanistic | metaweb | |\n| stochastic | **TODO** | **TODO** | |\n\n: Lets make a table that gives an overview of the different topology generators that we will look at {#tbl-history}\n\n> Might be nice to have a little appendix/supp mat that breaks down the models in detail so that they are all in one place so that someone (grad student being told they need to build networks) some day can go and educate themselves with slightly lower effort. This will also be useful for me should I end up having to do some actual coding - think of this as step one in the pseudo code process.\n\n### Datasets used\n\nHere I think we need to span a variety of domains, at minimum aquatic and terrestrial but maybe there should be a 'scale' element as well *i.e.,* a regional and local network. I think there is going to be a 'turning point' where structural will take over from mechanistic in terms of performance. More specifically at local scales bioenergetic constraints (and co-occurrence) may play a bigger role in structuring a network whereas at the metaweb level then mechanistic may make more (since by default its about who can potentially interact and obviously not constrained by real-world scenarios) *sensu* @caronTrophicInteractionModels2023. Although having said that I feel that contradicts the idea of backbones (*sensu* Bramon Mora (sp?) et al & Stouffer et al) But that might be where we get the idea of core *structure* vs something like linkage density. So core things like trophic level/chain length will be conserved but connectance might not (I think I understand what I'm trying to say here)\n\nI think we should also use the Dunne (I think) Cambrian (also think) network (I was correct and its this one @dunneCompilationNetworkAnalyses2008). Because 1) it gives the paleo-centric methods their moment in the sun and 2) I think it also brings up the interesting question of can we use modern structure to predict past ones? Here one might expect a more mechanistic approach to shine.\n\nDraw the other datasets from `Mangal` because they will be nicely formatted and essentially at point and shoot level\n\n### Comparing different models\n\nFor now the (still essentially pending) workflow/associated code can be found at the following repository [BecksLab/topology_generators](https://github.com/BecksLab/topology_generators)\n\n1. Shortlist/finalise the different topo generators\n2. collate/translate into `Julia`\n * *e.g.,* some models wil be in SpeciesInteractionNetworks.jl (new EcoNet); I know (parts of) the transfer learning stuff is and the niche model\n * others will need to be coded out (the more simpler models should be easier)\n * can also consider `R` but then it becomes a case of porting things left and right depending on how we decide to do the post analyses\n3. Curate networks for the different datasets/scenarios we select - I feel like there might be some scenarios that we can't do all models for all datasets but maybe I'm being a pessimist.\n * Need to also think about where one might find the additional data for some of the models...\n * Body size: @herbersteinAnimalTraitsCuratedAnimal2022 - Although maybe Andrew has strong thotsTM RE the one true body size database to rule them all...\n * Other trait sources: @wilmanEltonTraitsSpecieslevelForaging2014 and @jonesPanTHERIASpecieslevelDatabase2009\n * This is where we'll get the paleo traits from if I'm correct @bambachAutecologyFillingEcospace2007\n * Phylogeny stuff: @uphamInferringMammalTree2019 (what we used for TL but its only mammals...) but I'm sure there will be others\n * Also limitation of scope... *e.g.,* do we even dare to think about including plants/basal producers (see *e.g.,* @valdovinosBioenergeticFrameworkAboveground2023)\n * Taxonomic harmonisation - something to think about and check\n4. compare model performance based on the ideas currently listed in the results section.\n5. Make a pretty picture that summarises things - maybe overlapping Venn circles that showcase which models do well in the different spheres/aspects of life\n\n## Results\n\nHow we want to compare and contrast. I think there won't be a 'winner' and thus we need to think of 'tests' that are going to measure performance in different situations/settings. With that in mind I think some valuable points to consider would be:\n\n* Structural vs pairwise link predictions (graph vs node level)\n * % of links correctly retrieved\n * connectance\n * trophic level\n * generalism vs specialism\n * something related to false positives/negatives\n * intervality\n* Data 'cost' (some methods might need a lot lot of supporting data vs something very light weight)\n* I think it would be remiss to not also take into consideration computational cost\n* something about the network output - I'm acknowledging my biases and saying that probabilistic (or *maybe* weighted) links are the way\n\n@cohenStochasticTheoryCommunity1985 actually tells us that the cascade model only really works for communities that range from 3-33 species... and @williamsSuccessItsLimits2008 also highlights how structural models really only work for small communities\n\n> maybe we can put these into broader categories - if we do start doing the venn overlap thing. *E.g.,* local scale predictions, regional scale predictions, pairwise interactions, structural (energetics), computationally cheap, low cost data\n\n### Qualitative stuff\n\n\n\n\n\n{{< embed notebooks/model_qualitative.qmd#fig-venn >}}\n\n\n\n\n\n\n\n\n\n## Discussion\n\nI think a big take home will (hopefully) be how different approaches do better in different situations and so you as an end user need to take this into consideration and pick accordingly. I think @petcheyFitEfficiencyBiology2011 might have (and share) some thoughts on this (thanks Andrew). I feel like I need to look at @berlowGoldilocksFactorFood2008 but maybe not exactly in this context but vaguely adjacent.\n\nAn interesting thing to also think about (and arguably it will be addressed based on some of the other thoughts and ideas) is data dependant and data independent 'parametrisation' of the models...\n\nI probably think about this point too much but a point of discussion that I think will be interesting to bring up the idea that if a model is missing a specific pairwise link but doing well at the structural level then when does it matter? I think this is covered with the whole node vs graph level performance but I kind of just want to bring it up here again because also one of those things that I think about a bit too much probably...\n\n> Thinking very long term here and maybe a bit beyond the scope but also thinking about a multi- model approach? So in other words using one model to build an initial network but maybe a second one to constrain it a bit better. I blame this thought on the over-connected PFIM food webs...\n\n## References {.unnumbered}\n\n::: {#refs}\n:::\n:::\n\n", "supporting": [ "index_files/figure-html" ], diff --git a/_freeze/index/execute-results/tex.json b/_freeze/index/execute-results/tex.json index 3f4944d..c2d7677 100644 --- a/_freeze/index/execute-results/tex.json +++ b/_freeze/index/execute-results/tex.json @@ -1,8 +1,8 @@ { - "hash": "458d68808a876f608d5cdb2ee8cbd560", + "hash": "f0c906f6b97c996454f4b3d3117de0c2", "result": { "engine": "jupyter", - "markdown": "---\ntitle: T is for Topology\nauthor:\n - name: Tanya Strydom\n id: ts\n orcid: 0000-0001-6067-1349\n corresponding: true\n email: t.strydom@sheffield.ac.uk\n roles:\n - Words\n - Nonsense\n - Rascality\n - Visualisation (although absent)\n affiliation:\n - id: sheffield\n name: University of Sheffield\n - name: Andrew P. Beckerman\n id: apb\n orcid: 0000-0002-7859-8394\n corresponding: false\n roles: []\n affiliations:\n - ref: sheffield\nfunding: 'The author(s) received no specific funding for this work. Well they did I just haven''t done the '\nkeywords:\n - food web\n - network construction\nabstract: |\n Pending...\nplain-language-summary: |\n We want to know a bit more about the different network topology generators (predict tools) and how they differ - *i.e.,* their strengths and weaknesses\ndate: last-modified\nbibliography: references.bib\ncitation:\n container-title: Some fancy journal\nnumber-sections: true\n---\n\n:::{#750a284d .cell .markdown}\n## Introduction\n\nThe standard run of the mill that we cannot always feasibly construct networks because 1. hard, 2. time (yay dinosaurs, but also the future and impending doom I guess), and 3. probably something else meaningful that's just slipping my mind at the moment. Some of the usual culprits will come in here like: @jordanoSamplingNetworksEcological2016; [@jordanoChasingEcologicalInteractions2016]; @poisotGlobalKnowledgeGaps2021; @strydomRoadmapPredictingSpecies2021 (shameless self plug)\n\nMaybe a brief history of the development of predictive tools/topo generators? Sort of where the theory/body of work was based and how that has changed? IS there a difference between toppo generator and predictive tool - I'm inclined to think that it aligns with the whole debate of high level structure vs node-level perfection\n\nMaybe start here with discussing the core mechanistic differences that models will work at --- some are really concerned about (and thus constrained by) structure, others are more mechanistic in nature *i.e.,* species *a* has the capacity to eat species *b* because traits (read gob size), and then you get @rohrModelingFoodWebs2010 and @strydomFoodWebReconstruction2022 that sit in the weird liminal latent space... \n\nHere I will probably get on my (newly discovered) soapbox and wax lyrical about how in certain situations structure is enough (and that will probably be for some high-level things like thinking about energy flows etc., I can also see a world in which maybe you want to do some sort of robustness/extinction work - since then you're usually doing 'random' (within limits) extinctions) but there may be use cases where we are really interested in the node-level interactions *i.e.,* species identity is like a thing we need to care about and also be able to retrieve specific interactions at specific nodes correctly. What is the purpose of generating a network? Is it an element of a bigger question we are asking, *e.g.,* I want to generate a series of networks to do some extinction simulations/bioenergetic stuff OR are we looking for a 'final product' network that is relevant to a specific location? (this can still be broad in geographic scope). \n\nAt some point we are going to need to discuss the key differences and implications between predicting a metaweb (*sensu* @dunneNetworkStructureFood2006) and a network realisation. And here I can't help but think about @poisotSpeciesWhyEcological2015 (and probably other papers) that discuss how the local factors are going to play a role and even the same pair of species may interact differently in different points in the landscape.\n\n> Do we need to delve into individual-based networks? (*sensu* Tinker 2012, Araújo 2008) I think its probably a step too far and one starts creeping into apples and pears type of comparisons. Especially since these work off of already existing networks (I seem to recall) and its more about about 'tweaking' those - so not so much *de novo* predictions. Although this might be useful to keep in mind when it comes to re-wiring... Also on that note do we opn the re-wiring door here in this ms or wait it out a bit.\n\n## Data & Methods {#sec-data-methods}\n\n### Overview of topology generators\n\nI know table are awful but in this case they may make more sense. Also I don't think I'm at the point where I can say that the table is complete/comprehensive but it getting there Not sure about putting in some papers that have used the model - totes happy to drop those I think...\n\n| Approach | Reference | Core Mechanism | *e.g.,* uses | Applications (potential) | End product | Theory basis | Assumptions |\n|-------------------|----------------------------------------------|--------------------|--------------------|----------------------------------------------|--------------------|--------------------|-------------|\n| Cascade model | @cohenCommunityFoodWebs1990; @cohenStochasticTheoryCommunity1997 | structural | | | | | |\n| Niche model | @williamsSimpleRulesYield2000; @williamsSuccessItsLimits2008 | structural | | | networks have a finite number of links and species are partitioned along a resource | A network configuration for a given number of species & connectance | connectance, and others |\n| PFIM | @shawFrameworkReconstructingAncient2024 | mechanistic | Dunhill (in review)| prehistoric networks (but can be modified) | Metaweb (I'd argue) | traits determine interactions | feeding mechanisms are trait correlated |\n| Log-ratio | @rohrModelingFoodWebs2010 | latent trait space | @yeakelCollapseEcologicalNetwork2014, @piresMegafaunalExtinctionsHuman2020 (?)| | | | |\n| Nested hierarchy | @cattinPhylogeneticConstraintsAdaptation2004 | | | | | | |\n| ADBM | @petcheySizeForagingFood2008 | mechanistic | probably multiple | | working on it... | diet and body size determine interactions | size and resources (many) limitations |\n| Stochastic | @rossbergFoodWebsExperts2006 | | | | | | | |\n| Graph Embedding | @strydomGraphEmbeddingTransfer2023 | latent trait space | @strydomFoodWebReconstruction2022 | Generate metaweb for specific species pool | Probabilistic metaweb | interactions are 'encoded' and can thus be extracted and transferred to similar species | evolutionary backbones/signals |\n| Trait-based | @caronAddressingEltonianShortfall2022 | mechanistic | @caronTrophicInteractionModels2023| | metaweb | traits determine interactions | feeding mechanisms are trait correlated |\n| Random | | | | | | | chaos and anarchy |\n\n: Lets make a table that gives an overview of the different topology generators that we will look at {#tbl-history}\n\n> Might be nice to have a little appendix/supp mat that breaks down the models in detail so that they are all in one place so that someone (grad student being told they need to build networks) some day can go and educate themselves with slightly lower effort. This will also be useful for me should I end up having to do some actual coding - think of this as step one in the pseudo code process.\n\n### Datasets used\n\nHere I think we need to span a variety of domains, at minimum aquatic and terrestrial but maybe there should be a 'scale' element as well *i.e.,* a regional and local network. I think there is going to be a 'turning point' where structural will take over from mechanistic in terms of performance. More specifically at local scales bioenergetic constraints (and co-occurrence) may play a bigger role in structuring a network whereas at the metaweb level then mechanistic may make more (since by default its about who can potentially interact and obviously not constrained by real-world scenarios) *sensu* @caronTrophicInteractionModels2023. Although having said that I feel that contradicts the idea of backbones (*sensu* Bramon Mora (sp?) et al & Stouffer et al) But that might be where we get the idea of core *structure* vs something like linkage density. So core things like trophic level/chain length will be conserved but connectance might not (I think I understand what I'm trying to say here)\n\nI think we should also use the Dunne (I think) Cambrian (also think) network (I was correct and its this one @dunneCompilationNetworkAnalyses2008). Because 1) it gives the paleo-centric methods their moment in the sun and 2) I think it also brings up the interesting question of can we use modern structure to predict past ones? Here one might expect a more mechanistic approach to shine.\n\nDraw the other datasets from `Mangal` because they will be nicely formatted and essentially at point and shoot level\n\n### Comparing different models\n\nFor now the (still essentially pending) workflow/associated code can be found at the following repository [BecksLab/topology_generators](https://github.com/BecksLab/topology_generators)\n\n1. Shortlist/finalise the different topo generators\n2. collate/translate into `Julia`\n * *e.g.,* some models wil be in SpeciesInteractionNetworks.jl (new EcoNet); I know (parts of) the transfer learning stuff is and the niche model\n * others will need to be coded out (the more simpler models should be easier)\n * can also consider `R` but then it becomes a case of porting things left and right depending on how we decide to do the post analyses\n3. Curate networks for the different datasets/scenarios we select - I feel like there might be some scenarios that we can't do all models for all datasets but maybe I'm being a pessimist.\n * Need to also think about where one might find the additional data for some of the models...\n * Body size: @herbersteinAnimalTraitsCuratedAnimal2022 - Although maybe Andrew has strong thotsTM RE the one true body size database to rule them all...\n * Other trait sources: @wilmanEltonTraitsSpecieslevelForaging2014 and @jonesPanTHERIASpecieslevelDatabase2009\n * This is where we'll get the paleo traits from if I'm correct @bambachAutecologyFillingEcospace2007\n * Phylogeny stuff: @uphamInferringMammalTree2019 (what we used for TL but its only mammals...) but I'm sure there will be others\n * Also limitation of scope... *e.g.,* do we even dare to think about including plants/basal producers (see *e.g.,* @valdovinosBioenergeticFrameworkAboveground2023)\n * Taxonomic harmonisation - something to think about and check\n4. compare model performance based on the ideas currently listed in the results section.\n5. Make a pretty picture that summarises things - maybe overlapping Venn circles that showcase which models do well in the different spheres/aspects of life\n\n## Results\n\nHow we want to compare and contrast. I think there won't be a 'winner' and thus we need to think of 'tests' that are going to measure performance in different situations/settings. With that in mind I think some valuable points to consider would be:\n\n* Structural vs pairwise link predictions (graph vs node level)\n * % of links correctly retrieved\n * connectance\n * trophic level\n * generalism vs specialism\n * something related to false positives/negatives\n * intervality\n* Data 'cost' (some methods might need a lot lot of supporting data vs something very light weight)\n* I think it would be remiss to not also take into consideration computational cost\n* something about the network output - I'm acknowledging my biases and saying that probabilistic (or *maybe* weighted) links are the way\n\n> maybe we can put these into broader categories - if we do start doing the venn overlap thing. *E.g.,* local scale predictions, regional scale predictions, pairwise interactions, structural (energetics), computationally cheap, low cost data\n\n### Qualitative stuff\n\n\n\n\n\n{{< embed notebooks/model_qualitative.qmd#fig-venn >}}\n\n\n\n\n\n\n\n\n\n## Discussion\n\nI think a big take home will (hopefully) be how different approaches do better in different situations and so you as an end user need to take this into consideration and pick accordingly. I think @petcheyFitEfficiencyBiology2011 might have (and share) some thoughts on this (thanks Andrew). I feel like I need to look at @berlowGoldilocksFactorFood2008 but maybe not exactly in this context but vaguely adjacent.\n\nAn interesting thing to also think about (and arguably it will be addressed based on some of the other thoughts and ideas) is data dependant and data independent 'parametrisation' of the models...\n\nI probably think about this point too much but a point of discussion that I think will be interesting to bring up the idea that if a model is missing a specific pairwise link but doing well at the structural level then when does it matter? I think this is covered with the whole node vs graph level performance but I kind of just want to bring it up here again because also one of those things that I think about a bit too much probably...\n\n> Thinking very long term here and maybe a bit beyond the scope but also thinking about a multi- model approach? So in other words using one model to build an initial network but maybe a second one to constrain it a bit better. I blame this thought on the over-connected PFIM food webs...\n\n## References {.unnumbered}\n\n::: {#refs}\n:::\n:::\n\n", + "markdown": "---\ntitle: T is for Topology\nauthor:\n - name: Tanya Strydom\n id: ts\n orcid: 0000-0001-6067-1349\n corresponding: true\n email: t.strydom@sheffield.ac.uk\n roles:\n - Words\n - Nonsense\n - Rascality\n - Visualisation (although absent)\n affiliation:\n - id: sheffield\n name: University of Sheffield\n - name: Andrew P. Beckerman\n id: apb\n orcid: 0000-0002-7859-8394\n corresponding: false\n roles: []\n affiliations:\n - ref: sheffield\nfunding: 'The author(s) received no specific funding for this work. Well they did I just haven''t done the '\nkeywords:\n - food web\n - network construction\nabstract: |\n Pending...\nplain-language-summary: |\n We want to know a bit more about the different network topology generators (predict tools) and how they differ - *i.e.,* their strengths and weaknesses\ndate: last-modified\nbibliography: references.bib\ncitation:\n container-title: Some fancy journal\nnumber-sections: true\n---\n\n:::{#602731bc .cell .markdown}\n## Introduction\n\nThe standard run of the mill that we cannot always feasibly construct networks because 1. hard, 2. time (yay dinosaurs, but also the future and impending doom I guess), and 3. probably something else meaningful that's just slipping my mind at the moment. Some of the usual culprits will come in here like: @jordanoSamplingNetworksEcological2016; [@jordanoChasingEcologicalInteractions2016]; @poisotGlobalKnowledgeGaps2021\n\n> TODO: standardise language between a topology generator and a topology predictor... I guess they can both be considered models but I'm not quite sure...\n\n### Philosophical contemplation when constructing interaction networks\n\n#### Why do we want to construct an interaction network?\n\nArguably the need for methods and tools for constructing interaction networks arises from two different (but still aligned) places of interest within the field of network ecology. On the one side of the spectrum sits the researcher who is interested in generating a set of ecologically plausible but not necessarily realised 'in the field' for the purpose of running further simulations (*e.g.,* extinction sim REF? **TODO**) or understanding some higher-level process (*e.g.,* energetics REF **TODO**). This researcher is contrasted by one that is interested in constructing real-world, location specific interactions networks in lieu of having access to data generated in the field (see @strydomRoadmapPredictingSpecies2021 for a discussion on this). Of course these two categories are not distinct, mutually exclusive, groups but can rather be viewed as operating on a gradient ranging from a need for generality (*something*) to a need for specificity (local-level predictions) when it comes to the quality(?) of the network that is constructed by a specific tool. Of course this research need would also reflected in the model development process itself and thus the idea of what a 'good enough' constructed network will be in the context of assessing the performance of a specific model. \n\n@cohenStochasticTheoryCommunity1985 states that *\"[Their] approach is more like gross anatomy than like physiology... that is, the gross anatomy is frozen, rather than in motion.\"*. \n\nInterestingly @williamsSuccessItsLimits2008 also explicitly talk about *structural* food-web models in their introduction... so how I see it that means that there has always been this inherent acknowledgement that models are function at a specific 'network level'.\n\n#### The history behind the approach\n\n\nMaybe a brief history of the development of predictive tools/topo generators? Sort of where the theory/body of work was based and how that has changed? IS there a difference between topo generator and predictive tool - I'm inclined to think that it aligns with the whole debate of high level structure vs node-level perfection\n\nMaybe start here with discussing the core mechanistic differences that models will work at --- some are really concerned about (and thus constrained by) structure, others are more mechanistic in nature *i.e.,* species *a* has the capacity to eat species *b* because traits (read gob size), and then you get @rohrModelingFoodWebs2010 and @strydomFoodWebReconstruction2022 that sit in the weird liminal latent space... \n\nHere I will probably get on my (newly discovered) soapbox and wax lyrical about how in certain situations structure is enough (and that will probably be for some high-level things like thinking about energy flows etc., I can also see a world in which maybe you want to do some sort of robustness/extinction work - since then you're usually doing 'random' (within limits) extinctions) but there may be use cases where we are really interested in the node-level interactions *i.e.,* species identity is like a thing we need to care about and also be able to retrieve specific interactions at specific nodes correctly. What is the purpose of generating a network? Is it an element of a bigger question we are asking, *e.g.,* I want to generate a series of networks to do some extinction simulations/bioenergetic stuff OR are we looking for a 'final product' network that is relevant to a specific location? (this can still be broad in geographic scope). \n\nAt some point we are going to need to discuss the key differences and implications between predicting a metaweb (*sensu* @dunneNetworkStructureFood2006) and a network realisation. And here I can't help but think about @poisotSpeciesWhyEcological2015 (and probably other papers) that discuss how the local factors are going to play a role and even the same pair of species may interact differently in different points in the landscape.\n\n> Do we need to delve into individual-based networks? (*sensu* Tinker 2012, Araújo 2008) I think its probably a step too far and one starts creeping into apples and pears type of comparisons. Especially since these work off of already existing networks (I seem to recall) and its more about about 'tweaking' those - so not so much *de novo* predictions. Although this might be useful to keep in mind when it comes to re-wiring... Also on that note do we opn the re-wiring door here in this ms or wait it out a bit.\n\n## Data & Methods {#sec-data-methods}\n\n### Overview of models\n\n#### Structural models\n\n**Random model** [@erdosRandomGraphs1959]: Links are assembled randomly, not developed within an ecological framework. But of course could still hold if we assume that communities are randomly assembled in terms of who is interacting with who (I seem to think that's sort of what May was arguing but I would need to remind myself)\n\n**Cascade model** [@cohenCommunityFoodWebs1990]: Much like the name suggests the cascade model rests on the idea that species feed on one another in a hierarchical manner. This rests on the assumption that the links within a network are variably distributed across the network; with the proportion of links decreasing as one moves up the trophic levels (*i.e.,* 'many' prey and 'few' predators). This is achieved by assigning all species a random rank, this rank will then determine both the predators and prey of that species. A species will have a particular probability of being fed on by any species with a higher ranking than it, this probability is constrained by the specified connectance of the network. Interestingly here 'species' are treated as any individual that consume and are consumed by the same 'species', *i.e.,* these are not taxonomical species [@cohenStochasticTheoryCommunity1985]. The original cascade model has altered to be more 'generalised' [@stoufferQuantitativePatternsStructure2005], which altered the probability distribution of the prey that could be consumed by a species. \n\n**Niche model** [@williamsSimpleRulesYield2000]: The niche model introduces the idea that species interactions are based on the 'feeding niche' of a species. Broadly, all species are randomly assigned a 'feeding niche' range and all species that fall in this range can be consumed by that species (thereby allowing for cannibalism). The niche of each species is randomly assigned and the range of each species' niche is (in part) constrained by the specified connectance of the network. The niche model has also been modified, although it appears that adding to the 'complexity' of the niche model does not improve on its ability to generate a more ecologically 'correct' network [@williamsSuccessItsLimits2008]. \n\n**Nested hierarchy model** [@cattinPhylogeneticConstraintsAdaptation2004]:\n\n#### Mechanistic models\n\n**Allometric diet breadth model (ADBM)** [@petcheySizeForagingFood2008]:\n\n**Log-ratio** [@rohrModelingFoodWebs2010]: Interestingly often used in paleo settings (at least that's what it currently looks like in my mind... (*e.g.,* @yeakelCollapseEcologicalNetwork2014, @piresMegafaunalExtinctionsHuman2020)\n\n**Stochastic** [@rossbergFoodWebsExperts2006]:\n\n**PFIM** [@shawFrameworkReconstructingAncient2024]:\n\n**Trait-based** [@caronAddressingEltonianShortfall2022]:\n\n**Graph embedding** [@strydomGraphEmbeddingTransfer2023]: *e.g.,* [@strydomFoodWebReconstruction2022]\n\nI know tables are awful but in this case they may make more sense. Also I don't think I'm at the point where I can say that the table is complete/comprehensive but it getting there Not sure about putting in some papers that have used the model - totes happy to drop those I think...\n\n| Model | Core Mechanism | End product | Data (?) |\n|---------------------|----------------|-------------|----------|\n| random | structural | network | |\n| cascade | structural | network | |\n| niche | structural | network | |\n| nested hierarchical | structural | network | |\n| ADBM | mechanistic | **TODO** | |\n| log-ratio | mechanistic | **TODO** | |\n| PFIM | mechanistic | metaweb | |\n| graph embedding | mechanistic | metaweb | |\n| trait-based | mechanistic | metaweb | |\n| stochastic | **TODO** | **TODO** | |\n\n: Lets make a table that gives an overview of the different topology generators that we will look at {#tbl-history}\n\n> Might be nice to have a little appendix/supp mat that breaks down the models in detail so that they are all in one place so that someone (grad student being told they need to build networks) some day can go and educate themselves with slightly lower effort. This will also be useful for me should I end up having to do some actual coding - think of this as step one in the pseudo code process.\n\n### Datasets used\n\nHere I think we need to span a variety of domains, at minimum aquatic and terrestrial but maybe there should be a 'scale' element as well *i.e.,* a regional and local network. I think there is going to be a 'turning point' where structural will take over from mechanistic in terms of performance. More specifically at local scales bioenergetic constraints (and co-occurrence) may play a bigger role in structuring a network whereas at the metaweb level then mechanistic may make more (since by default its about who can potentially interact and obviously not constrained by real-world scenarios) *sensu* @caronTrophicInteractionModels2023. Although having said that I feel that contradicts the idea of backbones (*sensu* Bramon Mora (sp?) et al & Stouffer et al) But that might be where we get the idea of core *structure* vs something like linkage density. So core things like trophic level/chain length will be conserved but connectance might not (I think I understand what I'm trying to say here)\n\nI think we should also use the Dunne (I think) Cambrian (also think) network (I was correct and its this one @dunneCompilationNetworkAnalyses2008). Because 1) it gives the paleo-centric methods their moment in the sun and 2) I think it also brings up the interesting question of can we use modern structure to predict past ones? Here one might expect a more mechanistic approach to shine.\n\nDraw the other datasets from `Mangal` because they will be nicely formatted and essentially at point and shoot level\n\n### Comparing different models\n\nFor now the (still essentially pending) workflow/associated code can be found at the following repository [BecksLab/topology_generators](https://github.com/BecksLab/topology_generators)\n\n1. Shortlist/finalise the different topo generators\n2. collate/translate into `Julia`\n * *e.g.,* some models wil be in SpeciesInteractionNetworks.jl (new EcoNet); I know (parts of) the transfer learning stuff is and the niche model\n * others will need to be coded out (the more simpler models should be easier)\n * can also consider `R` but then it becomes a case of porting things left and right depending on how we decide to do the post analyses\n3. Curate networks for the different datasets/scenarios we select - I feel like there might be some scenarios that we can't do all models for all datasets but maybe I'm being a pessimist.\n * Need to also think about where one might find the additional data for some of the models...\n * Body size: @herbersteinAnimalTraitsCuratedAnimal2022 - Although maybe Andrew has strong thotsTM RE the one true body size database to rule them all...\n * Other trait sources: @wilmanEltonTraitsSpecieslevelForaging2014 and @jonesPanTHERIASpecieslevelDatabase2009\n * This is where we'll get the paleo traits from if I'm correct @bambachAutecologyFillingEcospace2007\n * Phylogeny stuff: @uphamInferringMammalTree2019 (what we used for TL but its only mammals...) but I'm sure there will be others\n * Also limitation of scope... *e.g.,* do we even dare to think about including plants/basal producers (see *e.g.,* @valdovinosBioenergeticFrameworkAboveground2023)\n * Taxonomic harmonisation - something to think about and check\n4. compare model performance based on the ideas currently listed in the results section.\n5. Make a pretty picture that summarises things - maybe overlapping Venn circles that showcase which models do well in the different spheres/aspects of life\n\n## Results\n\nHow we want to compare and contrast. I think there won't be a 'winner' and thus we need to think of 'tests' that are going to measure performance in different situations/settings. With that in mind I think some valuable points to consider would be:\n\n* Structural vs pairwise link predictions (graph vs node level)\n * % of links correctly retrieved\n * connectance\n * trophic level\n * generalism vs specialism\n * something related to false positives/negatives\n * intervality\n* Data 'cost' (some methods might need a lot lot of supporting data vs something very light weight)\n* I think it would be remiss to not also take into consideration computational cost\n* something about the network output - I'm acknowledging my biases and saying that probabilistic (or *maybe* weighted) links are the way\n\n@cohenStochasticTheoryCommunity1985 actually tells us that the cascade model only really works for communities that range from 3-33 species... and @williamsSuccessItsLimits2008 also highlights how structural models really only work for small communities\n\n> maybe we can put these into broader categories - if we do start doing the venn overlap thing. *E.g.,* local scale predictions, regional scale predictions, pairwise interactions, structural (energetics), computationally cheap, low cost data\n\n### Qualitative stuff\n\n\n\n\n\n{{< embed notebooks/model_qualitative.qmd#fig-venn >}}\n\n\n\n\n\n\n\n\n\n## Discussion\n\nI think a big take home will (hopefully) be how different approaches do better in different situations and so you as an end user need to take this into consideration and pick accordingly. I think @petcheyFitEfficiencyBiology2011 might have (and share) some thoughts on this (thanks Andrew). I feel like I need to look at @berlowGoldilocksFactorFood2008 but maybe not exactly in this context but vaguely adjacent.\n\nAn interesting thing to also think about (and arguably it will be addressed based on some of the other thoughts and ideas) is data dependant and data independent 'parametrisation' of the models...\n\nI probably think about this point too much but a point of discussion that I think will be interesting to bring up the idea that if a model is missing a specific pairwise link but doing well at the structural level then when does it matter? I think this is covered with the whole node vs graph level performance but I kind of just want to bring it up here again because also one of those things that I think about a bit too much probably...\n\n> Thinking very long term here and maybe a bit beyond the scope but also thinking about a multi- model approach? So in other words using one model to build an initial network but maybe a second one to constrain it a bit better. I blame this thought on the over-connected PFIM food webs...\n\n## References {.unnumbered}\n\n::: {#refs}\n:::\n:::\n\n", "supporting": [ "index_files/figure-pdf" ], diff --git a/_freeze/index/execute-results/xml.json b/_freeze/index/execute-results/xml.json index 5ca271c..d5067a4 100644 --- a/_freeze/index/execute-results/xml.json +++ b/_freeze/index/execute-results/xml.json @@ -1,8 +1,8 @@ { - "hash": "458d68808a876f608d5cdb2ee8cbd560", + "hash": "f0c906f6b97c996454f4b3d3117de0c2", "result": { "engine": "jupyter", - "markdown": "---\ntitle: T is for Topology\nauthor:\n - name: Tanya Strydom\n id: ts\n orcid: 0000-0001-6067-1349\n corresponding: true\n email: t.strydom@sheffield.ac.uk\n roles:\n - Words\n - Nonsense\n - Rascality\n - Visualisation (although absent)\n affiliation:\n - id: sheffield\n name: University of Sheffield\n - name: Andrew P. Beckerman\n id: apb\n orcid: 0000-0002-7859-8394\n corresponding: false\n roles: []\n affiliations:\n - ref: sheffield\nfunding: 'The author(s) received no specific funding for this work. Well they did I just haven''t done the '\nkeywords:\n - food web\n - network construction\nabstract: |\n Pending...\nplain-language-summary: |\n We want to know a bit more about the different network topology generators (predict tools) and how they differ - *i.e.,* their strengths and weaknesses\ndate: last-modified\nbibliography: references.bib\ncitation:\n container-title: Some fancy journal\nnumber-sections: true\n---\n\n:::{#1d83e4c6 .cell .markdown}\n## Introduction\n\nThe standard run of the mill that we cannot always feasibly construct networks because 1. hard, 2. time (yay dinosaurs, but also the future and impending doom I guess), and 3. probably something else meaningful that's just slipping my mind at the moment. Some of the usual culprits will come in here like: @jordanoSamplingNetworksEcological2016; [@jordanoChasingEcologicalInteractions2016]; @poisotGlobalKnowledgeGaps2021; @strydomRoadmapPredictingSpecies2021 (shameless self plug)\n\nMaybe a brief history of the development of predictive tools/topo generators? Sort of where the theory/body of work was based and how that has changed? IS there a difference between toppo generator and predictive tool - I'm inclined to think that it aligns with the whole debate of high level structure vs node-level perfection\n\nMaybe start here with discussing the core mechanistic differences that models will work at --- some are really concerned about (and thus constrained by) structure, others are more mechanistic in nature *i.e.,* species *a* has the capacity to eat species *b* because traits (read gob size), and then you get @rohrModelingFoodWebs2010 and @strydomFoodWebReconstruction2022 that sit in the weird liminal latent space... \n\nHere I will probably get on my (newly discovered) soapbox and wax lyrical about how in certain situations structure is enough (and that will probably be for some high-level things like thinking about energy flows etc., I can also see a world in which maybe you want to do some sort of robustness/extinction work - since then you're usually doing 'random' (within limits) extinctions) but there may be use cases where we are really interested in the node-level interactions *i.e.,* species identity is like a thing we need to care about and also be able to retrieve specific interactions at specific nodes correctly. What is the purpose of generating a network? Is it an element of a bigger question we are asking, *e.g.,* I want to generate a series of networks to do some extinction simulations/bioenergetic stuff OR are we looking for a 'final product' network that is relevant to a specific location? (this can still be broad in geographic scope). \n\nAt some point we are going to need to discuss the key differences and implications between predicting a metaweb (*sensu* @dunneNetworkStructureFood2006) and a network realisation. And here I can't help but think about @poisotSpeciesWhyEcological2015 (and probably other papers) that discuss how the local factors are going to play a role and even the same pair of species may interact differently in different points in the landscape.\n\n> Do we need to delve into individual-based networks? (*sensu* Tinker 2012, Araújo 2008) I think its probably a step too far and one starts creeping into apples and pears type of comparisons. Especially since these work off of already existing networks (I seem to recall) and its more about about 'tweaking' those - so not so much *de novo* predictions. Although this might be useful to keep in mind when it comes to re-wiring... Also on that note do we opn the re-wiring door here in this ms or wait it out a bit.\n\n## Data & Methods {#sec-data-methods}\n\n### Overview of topology generators\n\nI know table are awful but in this case they may make more sense. Also I don't think I'm at the point where I can say that the table is complete/comprehensive but it getting there Not sure about putting in some papers that have used the model - totes happy to drop those I think...\n\n| Approach | Reference | Core Mechanism | *e.g.,* uses | Applications (potential) | End product | Theory basis | Assumptions |\n|-------------------|----------------------------------------------|--------------------|--------------------|----------------------------------------------|--------------------|--------------------|-------------|\n| Cascade model | @cohenCommunityFoodWebs1990; @cohenStochasticTheoryCommunity1997 | structural | | | | | |\n| Niche model | @williamsSimpleRulesYield2000; @williamsSuccessItsLimits2008 | structural | | | networks have a finite number of links and species are partitioned along a resource | A network configuration for a given number of species & connectance | connectance, and others |\n| PFIM | @shawFrameworkReconstructingAncient2024 | mechanistic | Dunhill (in review)| prehistoric networks (but can be modified) | Metaweb (I'd argue) | traits determine interactions | feeding mechanisms are trait correlated |\n| Log-ratio | @rohrModelingFoodWebs2010 | latent trait space | @yeakelCollapseEcologicalNetwork2014, @piresMegafaunalExtinctionsHuman2020 (?)| | | | |\n| Nested hierarchy | @cattinPhylogeneticConstraintsAdaptation2004 | | | | | | |\n| ADBM | @petcheySizeForagingFood2008 | mechanistic | probably multiple | | working on it... | diet and body size determine interactions | size and resources (many) limitations |\n| Stochastic | @rossbergFoodWebsExperts2006 | | | | | | | |\n| Graph Embedding | @strydomGraphEmbeddingTransfer2023 | latent trait space | @strydomFoodWebReconstruction2022 | Generate metaweb for specific species pool | Probabilistic metaweb | interactions are 'encoded' and can thus be extracted and transferred to similar species | evolutionary backbones/signals |\n| Trait-based | @caronAddressingEltonianShortfall2022 | mechanistic | @caronTrophicInteractionModels2023| | metaweb | traits determine interactions | feeding mechanisms are trait correlated |\n| Random | | | | | | | chaos and anarchy |\n\n: Lets make a table that gives an overview of the different topology generators that we will look at {#tbl-history}\n\n> Might be nice to have a little appendix/supp mat that breaks down the models in detail so that they are all in one place so that someone (grad student being told they need to build networks) some day can go and educate themselves with slightly lower effort. This will also be useful for me should I end up having to do some actual coding - think of this as step one in the pseudo code process.\n\n### Datasets used\n\nHere I think we need to span a variety of domains, at minimum aquatic and terrestrial but maybe there should be a 'scale' element as well *i.e.,* a regional and local network. I think there is going to be a 'turning point' where structural will take over from mechanistic in terms of performance. More specifically at local scales bioenergetic constraints (and co-occurrence) may play a bigger role in structuring a network whereas at the metaweb level then mechanistic may make more (since by default its about who can potentially interact and obviously not constrained by real-world scenarios) *sensu* @caronTrophicInteractionModels2023. Although having said that I feel that contradicts the idea of backbones (*sensu* Bramon Mora (sp?) et al & Stouffer et al) But that might be where we get the idea of core *structure* vs something like linkage density. So core things like trophic level/chain length will be conserved but connectance might not (I think I understand what I'm trying to say here)\n\nI think we should also use the Dunne (I think) Cambrian (also think) network (I was correct and its this one @dunneCompilationNetworkAnalyses2008). Because 1) it gives the paleo-centric methods their moment in the sun and 2) I think it also brings up the interesting question of can we use modern structure to predict past ones? Here one might expect a more mechanistic approach to shine.\n\nDraw the other datasets from `Mangal` because they will be nicely formatted and essentially at point and shoot level\n\n### Comparing different models\n\nFor now the (still essentially pending) workflow/associated code can be found at the following repository [BecksLab/topology_generators](https://github.com/BecksLab/topology_generators)\n\n1. Shortlist/finalise the different topo generators\n2. collate/translate into `Julia`\n * *e.g.,* some models wil be in SpeciesInteractionNetworks.jl (new EcoNet); I know (parts of) the transfer learning stuff is and the niche model\n * others will need to be coded out (the more simpler models should be easier)\n * can also consider `R` but then it becomes a case of porting things left and right depending on how we decide to do the post analyses\n3. Curate networks for the different datasets/scenarios we select - I feel like there might be some scenarios that we can't do all models for all datasets but maybe I'm being a pessimist.\n * Need to also think about where one might find the additional data for some of the models...\n * Body size: @herbersteinAnimalTraitsCuratedAnimal2022 - Although maybe Andrew has strong thotsTM RE the one true body size database to rule them all...\n * Other trait sources: @wilmanEltonTraitsSpecieslevelForaging2014 and @jonesPanTHERIASpecieslevelDatabase2009\n * This is where we'll get the paleo traits from if I'm correct @bambachAutecologyFillingEcospace2007\n * Phylogeny stuff: @uphamInferringMammalTree2019 (what we used for TL but its only mammals...) but I'm sure there will be others\n * Also limitation of scope... *e.g.,* do we even dare to think about including plants/basal producers (see *e.g.,* @valdovinosBioenergeticFrameworkAboveground2023)\n * Taxonomic harmonisation - something to think about and check\n4. compare model performance based on the ideas currently listed in the results section.\n5. Make a pretty picture that summarises things - maybe overlapping Venn circles that showcase which models do well in the different spheres/aspects of life\n\n## Results\n\nHow we want to compare and contrast. I think there won't be a 'winner' and thus we need to think of 'tests' that are going to measure performance in different situations/settings. With that in mind I think some valuable points to consider would be:\n\n* Structural vs pairwise link predictions (graph vs node level)\n * % of links correctly retrieved\n * connectance\n * trophic level\n * generalism vs specialism\n * something related to false positives/negatives\n * intervality\n* Data 'cost' (some methods might need a lot lot of supporting data vs something very light weight)\n* I think it would be remiss to not also take into consideration computational cost\n* something about the network output - I'm acknowledging my biases and saying that probabilistic (or *maybe* weighted) links are the way\n\n> maybe we can put these into broader categories - if we do start doing the venn overlap thing. *E.g.,* local scale predictions, regional scale predictions, pairwise interactions, structural (energetics), computationally cheap, low cost data\n\n### Qualitative stuff\n\n\n\n\n{{< embed notebooks/model_qualitative.qmd#fig-venn >}}\n\n\n\n\n\n\n\n## Discussion\n\nI think a big take home will (hopefully) be how different approaches do better in different situations and so you as an end user need to take this into consideration and pick accordingly. I think @petcheyFitEfficiencyBiology2011 might have (and share) some thoughts on this (thanks Andrew). I feel like I need to look at @berlowGoldilocksFactorFood2008 but maybe not exactly in this context but vaguely adjacent.\n\nAn interesting thing to also think about (and arguably it will be addressed based on some of the other thoughts and ideas) is data dependant and data independent 'parametrisation' of the models...\n\nI probably think about this point too much but a point of discussion that I think will be interesting to bring up the idea that if a model is missing a specific pairwise link but doing well at the structural level then when does it matter? I think this is covered with the whole node vs graph level performance but I kind of just want to bring it up here again because also one of those things that I think about a bit too much probably...\n\n> Thinking very long term here and maybe a bit beyond the scope but also thinking about a multi- model approach? So in other words using one model to build an initial network but maybe a second one to constrain it a bit better. I blame this thought on the over-connected PFIM food webs...\n\n## References {.unnumbered}\n\n::: {#refs}\n:::\n:::\n\n", + "markdown": "---\ntitle: T is for Topology\nauthor:\n - name: Tanya Strydom\n id: ts\n orcid: 0000-0001-6067-1349\n corresponding: true\n email: t.strydom@sheffield.ac.uk\n roles:\n - Words\n - Nonsense\n - Rascality\n - Visualisation (although absent)\n affiliation:\n - id: sheffield\n name: University of Sheffield\n - name: Andrew P. Beckerman\n id: apb\n orcid: 0000-0002-7859-8394\n corresponding: false\n roles: []\n affiliations:\n - ref: sheffield\nfunding: 'The author(s) received no specific funding for this work. Well they did I just haven''t done the '\nkeywords:\n - food web\n - network construction\nabstract: |\n Pending...\nplain-language-summary: |\n We want to know a bit more about the different network topology generators (predict tools) and how they differ - *i.e.,* their strengths and weaknesses\ndate: last-modified\nbibliography: references.bib\ncitation:\n container-title: Some fancy journal\nnumber-sections: true\n---\n\n:::{#9b361dae .cell .markdown}\n## Introduction\n\nThe standard run of the mill that we cannot always feasibly construct networks because 1. hard, 2. time (yay dinosaurs, but also the future and impending doom I guess), and 3. probably something else meaningful that's just slipping my mind at the moment. Some of the usual culprits will come in here like: @jordanoSamplingNetworksEcological2016; [@jordanoChasingEcologicalInteractions2016]; @poisotGlobalKnowledgeGaps2021\n\n> TODO: standardise language between a topology generator and a topology predictor... I guess they can both be considered models but I'm not quite sure...\n\n### Philosophical contemplation when constructing interaction networks\n\n#### Why do we want to construct an interaction network?\n\nArguably the need for methods and tools for constructing interaction networks arises from two different (but still aligned) places of interest within the field of network ecology. On the one side of the spectrum sits the researcher who is interested in generating a set of ecologically plausible but not necessarily realised 'in the field' for the purpose of running further simulations (*e.g.,* extinction sim REF? **TODO**) or understanding some higher-level process (*e.g.,* energetics REF **TODO**). This researcher is contrasted by one that is interested in constructing real-world, location specific interactions networks in lieu of having access to data generated in the field (see @strydomRoadmapPredictingSpecies2021 for a discussion on this). Of course these two categories are not distinct, mutually exclusive, groups but can rather be viewed as operating on a gradient ranging from a need for generality (*something*) to a need for specificity (local-level predictions) when it comes to the quality(?) of the network that is constructed by a specific tool. Of course this research need would also reflected in the model development process itself and thus the idea of what a 'good enough' constructed network will be in the context of assessing the performance of a specific model. \n\n@cohenStochasticTheoryCommunity1985 states that *\"[Their] approach is more like gross anatomy than like physiology... that is, the gross anatomy is frozen, rather than in motion.\"*. \n\nInterestingly @williamsSuccessItsLimits2008 also explicitly talk about *structural* food-web models in their introduction... so how I see it that means that there has always been this inherent acknowledgement that models are function at a specific 'network level'.\n\n#### The history behind the approach\n\n\nMaybe a brief history of the development of predictive tools/topo generators? Sort of where the theory/body of work was based and how that has changed? IS there a difference between topo generator and predictive tool - I'm inclined to think that it aligns with the whole debate of high level structure vs node-level perfection\n\nMaybe start here with discussing the core mechanistic differences that models will work at --- some are really concerned about (and thus constrained by) structure, others are more mechanistic in nature *i.e.,* species *a* has the capacity to eat species *b* because traits (read gob size), and then you get @rohrModelingFoodWebs2010 and @strydomFoodWebReconstruction2022 that sit in the weird liminal latent space... \n\nHere I will probably get on my (newly discovered) soapbox and wax lyrical about how in certain situations structure is enough (and that will probably be for some high-level things like thinking about energy flows etc., I can also see a world in which maybe you want to do some sort of robustness/extinction work - since then you're usually doing 'random' (within limits) extinctions) but there may be use cases where we are really interested in the node-level interactions *i.e.,* species identity is like a thing we need to care about and also be able to retrieve specific interactions at specific nodes correctly. What is the purpose of generating a network? Is it an element of a bigger question we are asking, *e.g.,* I want to generate a series of networks to do some extinction simulations/bioenergetic stuff OR are we looking for a 'final product' network that is relevant to a specific location? (this can still be broad in geographic scope). \n\nAt some point we are going to need to discuss the key differences and implications between predicting a metaweb (*sensu* @dunneNetworkStructureFood2006) and a network realisation. And here I can't help but think about @poisotSpeciesWhyEcological2015 (and probably other papers) that discuss how the local factors are going to play a role and even the same pair of species may interact differently in different points in the landscape.\n\n> Do we need to delve into individual-based networks? (*sensu* Tinker 2012, Araújo 2008) I think its probably a step too far and one starts creeping into apples and pears type of comparisons. Especially since these work off of already existing networks (I seem to recall) and its more about about 'tweaking' those - so not so much *de novo* predictions. Although this might be useful to keep in mind when it comes to re-wiring... Also on that note do we opn the re-wiring door here in this ms or wait it out a bit.\n\n## Data & Methods {#sec-data-methods}\n\n### Overview of models\n\n#### Structural models\n\n**Random model** [@erdosRandomGraphs1959]: Links are assembled randomly, not developed within an ecological framework. But of course could still hold if we assume that communities are randomly assembled in terms of who is interacting with who (I seem to think that's sort of what May was arguing but I would need to remind myself)\n\n**Cascade model** [@cohenCommunityFoodWebs1990]: Much like the name suggests the cascade model rests on the idea that species feed on one another in a hierarchical manner. This rests on the assumption that the links within a network are variably distributed across the network; with the proportion of links decreasing as one moves up the trophic levels (*i.e.,* 'many' prey and 'few' predators). This is achieved by assigning all species a random rank, this rank will then determine both the predators and prey of that species. A species will have a particular probability of being fed on by any species with a higher ranking than it, this probability is constrained by the specified connectance of the network. Interestingly here 'species' are treated as any individual that consume and are consumed by the same 'species', *i.e.,* these are not taxonomical species [@cohenStochasticTheoryCommunity1985]. The original cascade model has altered to be more 'generalised' [@stoufferQuantitativePatternsStructure2005], which altered the probability distribution of the prey that could be consumed by a species. \n\n**Niche model** [@williamsSimpleRulesYield2000]: The niche model introduces the idea that species interactions are based on the 'feeding niche' of a species. Broadly, all species are randomly assigned a 'feeding niche' range and all species that fall in this range can be consumed by that species (thereby allowing for cannibalism). The niche of each species is randomly assigned and the range of each species' niche is (in part) constrained by the specified connectance of the network. The niche model has also been modified, although it appears that adding to the 'complexity' of the niche model does not improve on its ability to generate a more ecologically 'correct' network [@williamsSuccessItsLimits2008]. \n\n**Nested hierarchy model** [@cattinPhylogeneticConstraintsAdaptation2004]:\n\n#### Mechanistic models\n\n**Allometric diet breadth model (ADBM)** [@petcheySizeForagingFood2008]:\n\n**Log-ratio** [@rohrModelingFoodWebs2010]: Interestingly often used in paleo settings (at least that's what it currently looks like in my mind... (*e.g.,* @yeakelCollapseEcologicalNetwork2014, @piresMegafaunalExtinctionsHuman2020)\n\n**Stochastic** [@rossbergFoodWebsExperts2006]:\n\n**PFIM** [@shawFrameworkReconstructingAncient2024]:\n\n**Trait-based** [@caronAddressingEltonianShortfall2022]:\n\n**Graph embedding** [@strydomGraphEmbeddingTransfer2023]: *e.g.,* [@strydomFoodWebReconstruction2022]\n\nI know tables are awful but in this case they may make more sense. Also I don't think I'm at the point where I can say that the table is complete/comprehensive but it getting there Not sure about putting in some papers that have used the model - totes happy to drop those I think...\n\n| Model | Core Mechanism | End product | Data (?) |\n|---------------------|----------------|-------------|----------|\n| random | structural | network | |\n| cascade | structural | network | |\n| niche | structural | network | |\n| nested hierarchical | structural | network | |\n| ADBM | mechanistic | **TODO** | |\n| log-ratio | mechanistic | **TODO** | |\n| PFIM | mechanistic | metaweb | |\n| graph embedding | mechanistic | metaweb | |\n| trait-based | mechanistic | metaweb | |\n| stochastic | **TODO** | **TODO** | |\n\n: Lets make a table that gives an overview of the different topology generators that we will look at {#tbl-history}\n\n> Might be nice to have a little appendix/supp mat that breaks down the models in detail so that they are all in one place so that someone (grad student being told they need to build networks) some day can go and educate themselves with slightly lower effort. This will also be useful for me should I end up having to do some actual coding - think of this as step one in the pseudo code process.\n\n### Datasets used\n\nHere I think we need to span a variety of domains, at minimum aquatic and terrestrial but maybe there should be a 'scale' element as well *i.e.,* a regional and local network. I think there is going to be a 'turning point' where structural will take over from mechanistic in terms of performance. More specifically at local scales bioenergetic constraints (and co-occurrence) may play a bigger role in structuring a network whereas at the metaweb level then mechanistic may make more (since by default its about who can potentially interact and obviously not constrained by real-world scenarios) *sensu* @caronTrophicInteractionModels2023. Although having said that I feel that contradicts the idea of backbones (*sensu* Bramon Mora (sp?) et al & Stouffer et al) But that might be where we get the idea of core *structure* vs something like linkage density. So core things like trophic level/chain length will be conserved but connectance might not (I think I understand what I'm trying to say here)\n\nI think we should also use the Dunne (I think) Cambrian (also think) network (I was correct and its this one @dunneCompilationNetworkAnalyses2008). Because 1) it gives the paleo-centric methods their moment in the sun and 2) I think it also brings up the interesting question of can we use modern structure to predict past ones? Here one might expect a more mechanistic approach to shine.\n\nDraw the other datasets from `Mangal` because they will be nicely formatted and essentially at point and shoot level\n\n### Comparing different models\n\nFor now the (still essentially pending) workflow/associated code can be found at the following repository [BecksLab/topology_generators](https://github.com/BecksLab/topology_generators)\n\n1. Shortlist/finalise the different topo generators\n2. collate/translate into `Julia`\n * *e.g.,* some models wil be in SpeciesInteractionNetworks.jl (new EcoNet); I know (parts of) the transfer learning stuff is and the niche model\n * others will need to be coded out (the more simpler models should be easier)\n * can also consider `R` but then it becomes a case of porting things left and right depending on how we decide to do the post analyses\n3. Curate networks for the different datasets/scenarios we select - I feel like there might be some scenarios that we can't do all models for all datasets but maybe I'm being a pessimist.\n * Need to also think about where one might find the additional data for some of the models...\n * Body size: @herbersteinAnimalTraitsCuratedAnimal2022 - Although maybe Andrew has strong thotsTM RE the one true body size database to rule them all...\n * Other trait sources: @wilmanEltonTraitsSpecieslevelForaging2014 and @jonesPanTHERIASpecieslevelDatabase2009\n * This is where we'll get the paleo traits from if I'm correct @bambachAutecologyFillingEcospace2007\n * Phylogeny stuff: @uphamInferringMammalTree2019 (what we used for TL but its only mammals...) but I'm sure there will be others\n * Also limitation of scope... *e.g.,* do we even dare to think about including plants/basal producers (see *e.g.,* @valdovinosBioenergeticFrameworkAboveground2023)\n * Taxonomic harmonisation - something to think about and check\n4. compare model performance based on the ideas currently listed in the results section.\n5. Make a pretty picture that summarises things - maybe overlapping Venn circles that showcase which models do well in the different spheres/aspects of life\n\n## Results\n\nHow we want to compare and contrast. I think there won't be a 'winner' and thus we need to think of 'tests' that are going to measure performance in different situations/settings. With that in mind I think some valuable points to consider would be:\n\n* Structural vs pairwise link predictions (graph vs node level)\n * % of links correctly retrieved\n * connectance\n * trophic level\n * generalism vs specialism\n * something related to false positives/negatives\n * intervality\n* Data 'cost' (some methods might need a lot lot of supporting data vs something very light weight)\n* I think it would be remiss to not also take into consideration computational cost\n* something about the network output - I'm acknowledging my biases and saying that probabilistic (or *maybe* weighted) links are the way\n\n@cohenStochasticTheoryCommunity1985 actually tells us that the cascade model only really works for communities that range from 3-33 species... and @williamsSuccessItsLimits2008 also highlights how structural models really only work for small communities\n\n> maybe we can put these into broader categories - if we do start doing the venn overlap thing. *E.g.,* local scale predictions, regional scale predictions, pairwise interactions, structural (energetics), computationally cheap, low cost data\n\n### Qualitative stuff\n\n\n\n\n{{< embed notebooks/model_qualitative.qmd#fig-venn >}}\n\n\n\n\n\n\n\n## Discussion\n\nI think a big take home will (hopefully) be how different approaches do better in different situations and so you as an end user need to take this into consideration and pick accordingly. I think @petcheyFitEfficiencyBiology2011 might have (and share) some thoughts on this (thanks Andrew). I feel like I need to look at @berlowGoldilocksFactorFood2008 but maybe not exactly in this context but vaguely adjacent.\n\nAn interesting thing to also think about (and arguably it will be addressed based on some of the other thoughts and ideas) is data dependant and data independent 'parametrisation' of the models...\n\nI probably think about this point too much but a point of discussion that I think will be interesting to bring up the idea that if a model is missing a specific pairwise link but doing well at the structural level then when does it matter? I think this is covered with the whole node vs graph level performance but I kind of just want to bring it up here again because also one of those things that I think about a bit too much probably...\n\n> Thinking very long term here and maybe a bit beyond the scope but also thinking about a multi- model approach? So in other words using one model to build an initial network but maybe a second one to constrain it a bit better. I blame this thought on the over-connected PFIM food webs...\n\n## References {.unnumbered}\n\n::: {#refs}\n:::\n:::\n\n", "supporting": [ "index_files/figure-jats" ], diff --git a/_freeze/notebooks/model_qualitative/execute-results/html.json b/_freeze/notebooks/model_qualitative/execute-results/html.json index 362f622..2f99cf6 100644 --- a/_freeze/notebooks/model_qualitative/execute-results/html.json +++ b/_freeze/notebooks/model_qualitative/execute-results/html.json @@ -1,8 +1,8 @@ { - "hash": "b87fc1c321774496b08f4c34638c5fcf", + "hash": "ef8de978b2ab472fb8a342d234714c8c", "result": { "engine": "knitr", - "markdown": "---\ntitle: Qualitative approach to topology generators\nauthor: Tanya Strydom\n---\n\n\nHere we will use the standard [REF FOR TIDYVERSE] and @gaoGgVennDiagramIntuitiveEasytoUse2021 to create a venn diagram for the quantitative portion of or generator/model overview process.\n\n\n::: {.cell}\n\n```{.r .cell-code .hidden}\nlibrary(tidyverse)\n```\n\n::: {.cell-output .cell-output-stderr .hidden}\n\n```\n── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──\n✔ dplyr 1.1.4 ✔ readr 2.1.5\n✔ forcats 1.0.0 ✔ stringr 1.5.1\n✔ ggplot2 3.4.4 ✔ tibble 3.2.1\n✔ lubridate 1.9.3 ✔ tidyr 1.3.1\n✔ purrr 1.0.2 \n── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──\n✖ dplyr::filter() masks stats::filter()\n✖ dplyr::lag() masks stats::lag()\nℹ Use the conflicted package () to force all conflicts to become errors\n```\n\n\n:::\n\n```{.r .cell-code .hidden}\nlibrary(ggVennDiagram)\n```\n\n::: {.cell-output .cell-output-stderr .hidden}\n\n```\n\nAttaching package: 'ggVennDiagram'\n\nThe following object is masked from 'package:tidyr':\n\n unite\n```\n\n\n:::\n:::\n\n\n\nFirst we need to create the df with the relevant 'traits' for each model\n\n\n::: {.cell}\n\n```{.r .cell-code .hidden}\nx <- list(Niche=c(\"species agnostic\", \"structural\", \"synthetic network\"),\n ADBM=c(\"node-level\", \"mechanistic\"),\n `Transfer`=c(\"node-level\", \"embedding\", \"metaweb\"),\n PFIM=c(\"node-level\", \"mechanistic\", \"metaweb\"),\n Cascade=c(\"species agnostic\", \"structural\", \"synthetic network\"))\n\nvenn <- Venn(x)\ndata <- process_data(venn)\n```\n:::\n\n\nCreate venn diagram:\n\n\n::: {#cell-fig-venn .cell}\n\n```{.r .cell-code .hidden}\n#| label: fig-venn\n#| fig-cap: \"Venn diagram for qualitative analysis/overview of the fancy maths things\"\n#| fig-alt: \"TODO\"\nggVennDiagram(x, \n label = \"none\") +\n theme_void() +\n theme(legend.position = 'none')\n```\n\n::: {.cell-output-display}\n![Venn diagram for qualitative analysis/overview of the fancy maths things](model_qualitative_files/figure-html/fig-venn-1.png){#fig-venn fig-alt='TODO' width=672}\n:::\n:::\n\n\nLooking at it now I don't think this is the wayTM and trying to sort of 'ordinate' modelling space might actually be more meaningful... Specifically thinking here that I need to also actually just read about model comparison (but without the performance aspect)\n\n## References {.unnumbered}\n\n::: {#refs}\n:::", + "markdown": "---\ntitle: Qualitative approach to topology generators\nauthor: Tanya Strydom\nbibliography: ../references.bib\n---\n\n\n## Venn Diagram\n\nHere we will use the standard [REF FOR TIDYVERSE] and @gaoGgVennDiagramIntuitiveEasytoUse2021 to create a venn diagram for the quantitative portion of or generator/model overview process. Also remember to drop the R version (maybe also look into if you can `renv` this because we aim for reproducibility)\n\n\n::: {.cell .hidden}\n\n```{.r .cell-code .hidden}\n#| include: false\nlibrary(tidyverse)\n```\n\n::: {.cell-output .cell-output-stderr .hidden}\n\n```\n── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──\n✔ dplyr 1.1.4 ✔ readr 2.1.5\n✔ forcats 1.0.0 ✔ stringr 1.5.1\n✔ ggplot2 3.4.4 ✔ tibble 3.2.1\n✔ lubridate 1.9.3 ✔ tidyr 1.3.1\n✔ purrr 1.0.2 \n── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──\n✖ dplyr::filter() masks stats::filter()\n✖ dplyr::lag() masks stats::lag()\nℹ Use the conflicted package () to force all conflicts to become errors\n```\n\n\n:::\n\n```{.r .cell-code .hidden}\n#| include: false\nlibrary(ggVennDiagram)\n```\n\n::: {.cell-output .cell-output-stderr .hidden}\n\n```\n\nAttaching package: 'ggVennDiagram'\n\nThe following object is masked from 'package:tidyr':\n\n unite\n```\n\n\n:::\n:::\n\n\n\nFirst we need to create the df with the relevant 'traits' for each model\n\n\n::: {.cell .hidden}\n\n```{.r .cell-code .hidden}\n#| include: false\n\nx <- list(Niche=c(\"species agnostic\", \"structural\", \"synthetic network\"),\n ADBM=c(\"node-level\", \"mechanistic\"),\n `Transfer`=c(\"node-level\", \"embedding\", \"metaweb\"),\n PFIM=c(\"node-level\", \"mechanistic\", \"metaweb\"),\n Cascade=c(\"species agnostic\", \"structural\", \"synthetic network\"))\n\nvenn <- Venn(x)\ndata <- process_data(venn)\n```\n:::\n\n\nCreate venn diagram:\n\n\n::: {#cell-fig-venn .cell}\n\n```{.r .cell-code .hidden}\n#| echo: false\n#| label: fig-venn\n#| fig-cap: \"Venn diagram for qualitative analysis/overview of the fancy maths things\"\n#| fig-alt: \"TODO\"\nggVennDiagram(x, \n label = \"none\") +\n theme_void() +\n theme(legend.position = 'none')\n```\n\n::: {.cell-output-display}\n![Venn diagram for qualitative analysis/overview of the fancy maths things](model_qualitative_files/figure-html/fig-venn-1.png){#fig-venn fig-alt='TODO' width=672}\n:::\n:::\n\n\nLooking at it now I don't think this is the wayTM and trying to sort of 'ordinate' modelling space might actually be more meaningful... Specifically thinking here that I need to also actually just read about model comparison (but without the performance aspect)\n\n## Ordination approach\n\nSo at least according to @mccuneAnalysisEcologicalCommunities2002 we should be able to ordinate using only categorical data although we should stick to an NMDS. Its just going to be a case of encoding said categories correctly. How I see it is that each category that we 'create' will be its own entry (we could maybe also just turn each category into a factor but this comes at the cost of assuming the distribution of said variable, well that's what I infer form my 2 minute skim read).\n\n## References {.unnumbered}\n\n::: {#refs}\n:::", "supporting": [ "model_qualitative_files/figure-html" ], diff --git a/_freeze/notebooks/model_qualitative/execute-results/ipynb.json b/_freeze/notebooks/model_qualitative/execute-results/ipynb.json index ae7e88e..aea6f1d 100644 --- a/_freeze/notebooks/model_qualitative/execute-results/ipynb.json +++ b/_freeze/notebooks/model_qualitative/execute-results/ipynb.json @@ -1,8 +1,8 @@ { - "hash": "b87fc1c321774496b08f4c34638c5fcf", + "hash": "ef8de978b2ab472fb8a342d234714c8c", "result": { "engine": "knitr", - "markdown": "---\ntitle: Qualitative approach to topology generators\nauthor: Tanya Strydom\n---\n\n\nHere we will use the standard [REF FOR TIDYVERSE] and @gaoGgVennDiagramIntuitiveEasytoUse2021 to create a venn diagram for the quantitative portion of or generator/model overview process.\n\n\n::: {.cell}\n\n```{.r .cell-code .hidden}\nlibrary(tidyverse)\n```\n\n::: {.cell-output .cell-output-stderr .hidden}\n\n```\n── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──\n✔ dplyr 1.1.4 ✔ readr 2.1.5\n✔ forcats 1.0.0 ✔ stringr 1.5.1\n✔ ggplot2 3.4.4 ✔ tibble 3.2.1\n✔ lubridate 1.9.3 ✔ tidyr 1.3.1\n✔ purrr 1.0.2 \n── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──\n✖ dplyr::filter() masks stats::filter()\n✖ dplyr::lag() masks stats::lag()\nℹ Use the conflicted package () to force all conflicts to become errors\n```\n\n\n:::\n\n```{.r .cell-code .hidden}\nlibrary(ggVennDiagram)\n```\n\n::: {.cell-output .cell-output-stderr .hidden}\n\n```\n\nAttaching package: 'ggVennDiagram'\n\nThe following object is masked from 'package:tidyr':\n\n unite\n```\n\n\n:::\n:::\n\n\n\nFirst we need to create the df with the relevant 'traits' for each model\n\n\n::: {.cell}\n\n```{.r .cell-code .hidden}\nx <- list(Niche=c(\"species agnostic\", \"structural\", \"synthetic network\"),\n ADBM=c(\"node-level\", \"mechanistic\"),\n `Transfer`=c(\"node-level\", \"embedding\", \"metaweb\"),\n PFIM=c(\"node-level\", \"mechanistic\", \"metaweb\"),\n Cascade=c(\"species agnostic\", \"structural\", \"synthetic network\"))\n\nvenn <- Venn(x)\ndata <- process_data(venn)\n```\n:::\n\n\nCreate venn diagram:\n\n\n::: {#cell-fig-venn .cell}\n\n```{.r .cell-code .hidden}\n#| label: fig-venn\n#| fig-cap: \"Venn diagram for qualitative analysis/overview of the fancy maths things\"\n#| fig-alt: \"TODO\"\nggVennDiagram(x, \n label = \"none\") +\n theme_void() +\n theme(legend.position = 'none')\n```\n\n::: {.cell-output-display}\n![Venn diagram for qualitative analysis/overview of the fancy maths things](model_qualitative_files/figure-ipynb/fig-venn-1.png){#fig-venn fig-alt='TODO'}\n:::\n:::\n\n\nLooking at it now I don't think this is the wayTM and trying to sort of 'ordinate' modelling space might actually be more meaningful... Specifically thinking here that I need to also actually just read about model comparison (but without the performance aspect)\n\n## References {.unnumbered}\n\n::: {#refs}\n:::", + "markdown": "---\ntitle: Qualitative approach to topology generators\nauthor: Tanya Strydom\nbibliography: ../references.bib\n---\n\n\n## Venn Diagram\n\nHere we will use the standard [REF FOR TIDYVERSE] and @gaoGgVennDiagramIntuitiveEasytoUse2021 to create a venn diagram for the quantitative portion of or generator/model overview process. Also remember to drop the R version (maybe also look into if you can `renv` this because we aim for reproducibility)\n\n\n::: {.cell .hidden}\n\n```{.r .cell-code .hidden}\n#| include: false\nlibrary(tidyverse)\n```\n\n::: {.cell-output .cell-output-stderr .hidden}\n\n```\n── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──\n✔ dplyr 1.1.4 ✔ readr 2.1.5\n✔ forcats 1.0.0 ✔ stringr 1.5.1\n✔ ggplot2 3.4.4 ✔ tibble 3.2.1\n✔ lubridate 1.9.3 ✔ tidyr 1.3.1\n✔ purrr 1.0.2 \n── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──\n✖ dplyr::filter() masks stats::filter()\n✖ dplyr::lag() masks stats::lag()\nℹ Use the conflicted package () to force all conflicts to become errors\n```\n\n\n:::\n\n```{.r .cell-code .hidden}\n#| include: false\nlibrary(ggVennDiagram)\n```\n\n::: {.cell-output .cell-output-stderr .hidden}\n\n```\n\nAttaching package: 'ggVennDiagram'\n\nThe following object is masked from 'package:tidyr':\n\n unite\n```\n\n\n:::\n:::\n\n\n\nFirst we need to create the df with the relevant 'traits' for each model\n\n\n::: {.cell .hidden}\n\n```{.r .cell-code .hidden}\n#| include: false\n\nx <- list(Niche=c(\"species agnostic\", \"structural\", \"synthetic network\"),\n ADBM=c(\"node-level\", \"mechanistic\"),\n `Transfer`=c(\"node-level\", \"embedding\", \"metaweb\"),\n PFIM=c(\"node-level\", \"mechanistic\", \"metaweb\"),\n Cascade=c(\"species agnostic\", \"structural\", \"synthetic network\"))\n\nvenn <- Venn(x)\ndata <- process_data(venn)\n```\n:::\n\n\nCreate venn diagram:\n\n\n::: {#cell-fig-venn .cell}\n\n```{.r .cell-code .hidden}\n#| echo: false\n#| label: fig-venn\n#| fig-cap: \"Venn diagram for qualitative analysis/overview of the fancy maths things\"\n#| fig-alt: \"TODO\"\nggVennDiagram(x, \n label = \"none\") +\n theme_void() +\n theme(legend.position = 'none')\n```\n\n::: {.cell-output-display}\n![Venn diagram for qualitative analysis/overview of the fancy maths things](model_qualitative_files/figure-ipynb/fig-venn-1.png){#fig-venn fig-alt='TODO'}\n:::\n:::\n\n\nLooking at it now I don't think this is the wayTM and trying to sort of 'ordinate' modelling space might actually be more meaningful... Specifically thinking here that I need to also actually just read about model comparison (but without the performance aspect)\n\n## Ordination approach\n\nSo at least according to @mccuneAnalysisEcologicalCommunities2002 we should be able to ordinate using only categorical data although we should stick to an NMDS. Its just going to be a case of encoding said categories correctly. How I see it is that each category that we 'create' will be its own entry (we could maybe also just turn each category into a factor but this comes at the cost of assuming the distribution of said variable, well that's what I infer form my 2 minute skim read).\n\n## References {.unnumbered}\n\n::: {#refs}\n:::", "supporting": [ "model_qualitative_files/figure-ipynb" ], diff --git a/_freeze/notebooks/model_qualitative/execute-results/xml.json b/_freeze/notebooks/model_qualitative/execute-results/xml.json index 1331162..3eafcc2 100644 --- a/_freeze/notebooks/model_qualitative/execute-results/xml.json +++ b/_freeze/notebooks/model_qualitative/execute-results/xml.json @@ -1,8 +1,8 @@ { - "hash": "b87fc1c321774496b08f4c34638c5fcf", + "hash": "ef8de978b2ab472fb8a342d234714c8c", "result": { "engine": "knitr", - "markdown": "---\ntitle: Qualitative approach to topology generators\nauthor: Tanya Strydom\n---\n\n\n\n\nHere we will use the standard [REF FOR TIDYVERSE] and @gaoGgVennDiagramIntuitiveEasytoUse2021 to create a venn diagram for the quantitative portion of or generator/model overview process.\n\n\n\n\n::: {.cell}\n\n```{.r .cell-code .hidden}\nlibrary(tidyverse)\n```\n\n::: {.cell-output .cell-output-stderr .hidden}\n\n```\n── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──\n✔ dplyr 1.1.4 ✔ readr 2.1.5\n✔ forcats 1.0.0 ✔ stringr 1.5.1\n✔ ggplot2 3.4.4 ✔ tibble 3.2.1\n✔ lubridate 1.9.3 ✔ tidyr 1.3.1\n✔ purrr 1.0.2 \n── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──\n✖ dplyr::filter() masks stats::filter()\n✖ dplyr::lag() masks stats::lag()\nℹ Use the conflicted package () to force all conflicts to become errors\n```\n\n\n:::\n\n```{.r .cell-code .hidden}\nlibrary(ggVennDiagram)\n```\n\n::: {.cell-output .cell-output-stderr .hidden}\n\n```\n\nAttaching package: 'ggVennDiagram'\n\nThe following object is masked from 'package:tidyr':\n\n unite\n```\n\n\n:::\n:::\n\n\n\n\n\nFirst we need to create the df with the relevant 'traits' for each model\n\n\n\n\n::: {.cell}\n\n```{.r .cell-code .hidden}\nx <- list(Niche=c(\"species agnostic\", \"structural\", \"synthetic network\"),\n ADBM=c(\"node-level\", \"mechanistic\"),\n `Transfer`=c(\"node-level\", \"embedding\", \"metaweb\"),\n PFIM=c(\"node-level\", \"mechanistic\", \"metaweb\"),\n Cascade=c(\"species agnostic\", \"structural\", \"synthetic network\"))\n\nvenn <- Venn(x)\ndata <- process_data(venn)\n```\n:::\n\n\n\n\nCreate venn diagram:\n\n\n\n\n::: {#cell-fig-venn .cell}\n\n```{.r .cell-code .hidden}\n#| label: fig-venn\n#| fig-cap: \"Venn diagram for qualitative analysis/overview of the fancy maths things\"\n#| fig-alt: \"TODO\"\nggVennDiagram(x, \n label = \"none\") +\n theme_void() +\n theme(legend.position = 'none')\n```\n\n::: {.cell-output-display}\n![Venn diagram for qualitative analysis/overview of the fancy maths things](model_qualitative_files/figure-jats/fig-venn-1.png){#fig-venn fig-alt='TODO'}\n:::\n:::\n\n\n\n\nLooking at it now I don't think this is the wayTM and trying to sort of 'ordinate' modelling space might actually be more meaningful... Specifically thinking here that I need to also actually just read about model comparison (but without the performance aspect)\n\n## References {.unnumbered}\n\n::: {#refs}\n:::", + "markdown": "---\ntitle: Qualitative approach to topology generators\nauthor: Tanya Strydom\nbibliography: ../references.bib\n---\n\n\n\n\n## Venn Diagram\n\nHere we will use the standard [REF FOR TIDYVERSE] and @gaoGgVennDiagramIntuitiveEasytoUse2021 to create a venn diagram for the quantitative portion of or generator/model overview process. Also remember to drop the R version (maybe also look into if you can `renv` this because we aim for reproducibility)\n\n\n\n\n::: {.cell .hidden}\n\n```{.r .cell-code .hidden}\n#| include: false\nlibrary(tidyverse)\n```\n\n::: {.cell-output .cell-output-stderr .hidden}\n\n```\n── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──\n✔ dplyr 1.1.4 ✔ readr 2.1.5\n✔ forcats 1.0.0 ✔ stringr 1.5.1\n✔ ggplot2 3.4.4 ✔ tibble 3.2.1\n✔ lubridate 1.9.3 ✔ tidyr 1.3.1\n✔ purrr 1.0.2 \n── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──\n✖ dplyr::filter() masks stats::filter()\n✖ dplyr::lag() masks stats::lag()\nℹ Use the conflicted package () to force all conflicts to become errors\n```\n\n\n:::\n\n```{.r .cell-code .hidden}\n#| include: false\nlibrary(ggVennDiagram)\n```\n\n::: {.cell-output .cell-output-stderr .hidden}\n\n```\n\nAttaching package: 'ggVennDiagram'\n\nThe following object is masked from 'package:tidyr':\n\n unite\n```\n\n\n:::\n:::\n\n\n\n\n\nFirst we need to create the df with the relevant 'traits' for each model\n\n\n\n\n::: {.cell .hidden}\n\n```{.r .cell-code .hidden}\n#| include: false\n\nx <- list(Niche=c(\"species agnostic\", \"structural\", \"synthetic network\"),\n ADBM=c(\"node-level\", \"mechanistic\"),\n `Transfer`=c(\"node-level\", \"embedding\", \"metaweb\"),\n PFIM=c(\"node-level\", \"mechanistic\", \"metaweb\"),\n Cascade=c(\"species agnostic\", \"structural\", \"synthetic network\"))\n\nvenn <- Venn(x)\ndata <- process_data(venn)\n```\n:::\n\n\n\n\nCreate venn diagram:\n\n\n\n\n::: {#cell-fig-venn .cell}\n\n```{.r .cell-code .hidden}\n#| echo: false\n#| label: fig-venn\n#| fig-cap: \"Venn diagram for qualitative analysis/overview of the fancy maths things\"\n#| fig-alt: \"TODO\"\nggVennDiagram(x, \n label = \"none\") +\n theme_void() +\n theme(legend.position = 'none')\n```\n\n::: {.cell-output-display}\n![Venn diagram for qualitative analysis/overview of the fancy maths things](model_qualitative_files/figure-jats/fig-venn-1.png){#fig-venn fig-alt='TODO'}\n:::\n:::\n\n\n\n\nLooking at it now I don't think this is the wayTM and trying to sort of 'ordinate' modelling space might actually be more meaningful... Specifically thinking here that I need to also actually just read about model comparison (but without the performance aspect)\n\n## Ordination approach\n\nSo at least according to @mccuneAnalysisEcologicalCommunities2002 we should be able to ordinate using only categorical data although we should stick to an NMDS. Its just going to be a case of encoding said categories correctly. How I see it is that each category that we 'create' will be its own entry (we could maybe also just turn each category into a factor but this comes at the cost of assuming the distribution of said variable, well that's what I infer form my 2 minute skim read).\n\n## References {.unnumbered}\n\n::: {#refs}\n:::", "supporting": [ "model_qualitative_files/figure-jats" ], diff --git a/index.qmd b/index.qmd index ee2dbf9..ac8cd24 100644 --- a/index.qmd +++ b/index.qmd @@ -39,9 +39,24 @@ jupyter: python3 ## Introduction -The standard run of the mill that we cannot always feasibly construct networks because 1. hard, 2. time (yay dinosaurs, but also the future and impending doom I guess), and 3. probably something else meaningful that's just slipping my mind at the moment. Some of the usual culprits will come in here like: @jordanoSamplingNetworksEcological2016; [@jordanoChasingEcologicalInteractions2016]; @poisotGlobalKnowledgeGaps2021; @strydomRoadmapPredictingSpecies2021 (shameless self plug) +The standard run of the mill that we cannot always feasibly construct networks because 1. hard, 2. time (yay dinosaurs, but also the future and impending doom I guess), and 3. probably something else meaningful that's just slipping my mind at the moment. Some of the usual culprits will come in here like: @jordanoSamplingNetworksEcological2016; [@jordanoChasingEcologicalInteractions2016]; @poisotGlobalKnowledgeGaps2021 -Maybe a brief history of the development of predictive tools/topo generators? Sort of where the theory/body of work was based and how that has changed? IS there a difference between toppo generator and predictive tool - I'm inclined to think that it aligns with the whole debate of high level structure vs node-level perfection +> TODO: standardise language between a topology generator and a topology predictor... I guess they can both be considered models but I'm not quite sure... + +### Philosophical contemplation when constructing interaction networks + +#### Why do we want to construct an interaction network? + +Arguably the need for methods and tools for constructing interaction networks arises from two different (but still aligned) places of interest within the field of network ecology. On the one side of the spectrum sits the researcher who is interested in generating a set of ecologically plausible but not necessarily realised 'in the field' for the purpose of running further simulations (*e.g.,* extinction sim REF? **TODO**) or understanding some higher-level process (*e.g.,* energetics REF **TODO**). This researcher is contrasted by one that is interested in constructing real-world, location specific interactions networks in lieu of having access to data generated in the field (see @strydomRoadmapPredictingSpecies2021 for a discussion on this). Of course these two categories are not distinct, mutually exclusive, groups but can rather be viewed as operating on a gradient ranging from a need for generality (*something*) to a need for specificity (local-level predictions) when it comes to the quality(?) of the network that is constructed by a specific tool. Of course this research need would also reflected in the model development process itself and thus the idea of what a 'good enough' constructed network will be in the context of assessing the performance of a specific model. + +@cohenStochasticTheoryCommunity1985 states that *"[Their] approach is more like gross anatomy than like physiology... that is, the gross anatomy is frozen, rather than in motion."*. + +Interestingly @williamsSuccessItsLimits2008 also explicitly talk about *structural* food-web models in their introduction... so how I see it that means that there has always been this inherent acknowledgement that models are function at a specific 'network level'. + +#### The history behind the approach + + +Maybe a brief history of the development of predictive tools/topo generators? Sort of where the theory/body of work was based and how that has changed? IS there a difference between topo generator and predictive tool - I'm inclined to think that it aligns with the whole debate of high level structure vs node-level perfection Maybe start here with discussing the core mechanistic differences that models will work at --- some are really concerned about (and thus constrained by) structure, others are more mechanistic in nature *i.e.,* species *a* has the capacity to eat species *b* because traits (read gob size), and then you get @rohrModelingFoodWebs2010 and @strydomFoodWebReconstruction2022 that sit in the weird liminal latent space... @@ -53,22 +68,46 @@ At some point we are going to need to discuss the key differences and implicatio ## Data & Methods {#sec-data-methods} -### Overview of topology generators +### Overview of models + +#### Structural models + +**Random model** [@erdosRandomGraphs1959]: Links are assembled randomly, not developed within an ecological framework. But of course could still hold if we assume that communities are randomly assembled in terms of who is interacting with who (I seem to think that's sort of what May was arguing but I would need to remind myself) + +**Cascade model** [@cohenCommunityFoodWebs1990]: Much like the name suggests the cascade model rests on the idea that species feed on one another in a hierarchical manner. This rests on the assumption that the links within a network are variably distributed across the network; with the proportion of links decreasing as one moves up the trophic levels (*i.e.,* 'many' prey and 'few' predators). This is achieved by assigning all species a random rank, this rank will then determine both the predators and prey of that species. A species will have a particular probability of being fed on by any species with a higher ranking than it, this probability is constrained by the specified connectance of the network. Interestingly here 'species' are treated as any individual that consume and are consumed by the same 'species', *i.e.,* these are not taxonomical species [@cohenStochasticTheoryCommunity1985]. The original cascade model has altered to be more 'generalised' [@stoufferQuantitativePatternsStructure2005], which altered the probability distribution of the prey that could be consumed by a species. -I know table are awful but in this case they may make more sense. Also I don't think I'm at the point where I can say that the table is complete/comprehensive but it getting there Not sure about putting in some papers that have used the model - totes happy to drop those I think... +**Niche model** [@williamsSimpleRulesYield2000]: The niche model introduces the idea that species interactions are based on the 'feeding niche' of a species. Broadly, all species are randomly assigned a 'feeding niche' range and all species that fall in this range can be consumed by that species (thereby allowing for cannibalism). The niche of each species is randomly assigned and the range of each species' niche is (in part) constrained by the specified connectance of the network. The niche model has also been modified, although it appears that adding to the 'complexity' of the niche model does not improve on its ability to generate a more ecologically 'correct' network [@williamsSuccessItsLimits2008]. -| Approach | Reference | Core Mechanism | *e.g.,* uses | Applications (potential) | End product | Theory basis | Assumptions | -|-------------------|----------------------------------------------|--------------------|--------------------|----------------------------------------------|--------------------|--------------------|-------------| -| Cascade model | @cohenCommunityFoodWebs1990; @cohenStochasticTheoryCommunity1997 | structural | | | | | | -| Niche model | @williamsSimpleRulesYield2000; @williamsSuccessItsLimits2008 | structural | | | networks have a finite number of links and species are partitioned along a resource | A network configuration for a given number of species & connectance | connectance, and others | -| PFIM | @shawFrameworkReconstructingAncient2024 | mechanistic | Dunhill (in review)| prehistoric networks (but can be modified) | Metaweb (I'd argue) | traits determine interactions | feeding mechanisms are trait correlated | -| Log-ratio | @rohrModelingFoodWebs2010 | latent trait space | @yeakelCollapseEcologicalNetwork2014, @piresMegafaunalExtinctionsHuman2020 (?)| | | | | -| Nested hierarchy | @cattinPhylogeneticConstraintsAdaptation2004 | | | | | | | -| ADBM | @petcheySizeForagingFood2008 | mechanistic | probably multiple | | working on it... | diet and body size determine interactions | size and resources (many) limitations | -| Stochastic | @rossbergFoodWebsExperts2006 | | | | | | | | -| Graph Embedding | @strydomGraphEmbeddingTransfer2023 | latent trait space | @strydomFoodWebReconstruction2022 | Generate metaweb for specific species pool | Probabilistic metaweb | interactions are 'encoded' and can thus be extracted and transferred to similar species | evolutionary backbones/signals | -| Trait-based | @caronAddressingEltonianShortfall2022 | mechanistic | @caronTrophicInteractionModels2023| | metaweb | traits determine interactions | feeding mechanisms are trait correlated | -| Random | | | | | | | chaos and anarchy | +**Nested hierarchy model** [@cattinPhylogeneticConstraintsAdaptation2004]: + +#### Mechanistic models + +**Allometric diet breadth model (ADBM)** [@petcheySizeForagingFood2008]: + +**Log-ratio** [@rohrModelingFoodWebs2010]: Interestingly often used in paleo settings (at least that's what it currently looks like in my mind... (*e.g.,* @yeakelCollapseEcologicalNetwork2014, @piresMegafaunalExtinctionsHuman2020) + +**Stochastic** [@rossbergFoodWebsExperts2006]: + +**PFIM** [@shawFrameworkReconstructingAncient2024]: + +**Trait-based** [@caronAddressingEltonianShortfall2022]: + +**Graph embedding** [@strydomGraphEmbeddingTransfer2023]: *e.g.,* [@strydomFoodWebReconstruction2022] + +I know tables are awful but in this case they may make more sense. Also I don't think I'm at the point where I can say that the table is complete/comprehensive but it getting there Not sure about putting in some papers that have used the model - totes happy to drop those I think... + +| Model | Core Mechanism | End product | Data (?) | +|---------------------|----------------|-------------|----------| +| random | structural | network | | +| cascade | structural | network | | +| niche | structural | network | | +| nested hierarchical | structural | network | | +| ADBM | mechanistic | **TODO** | | +| log-ratio | mechanistic | **TODO** | | +| PFIM | mechanistic | metaweb | | +| graph embedding | mechanistic | metaweb | | +| trait-based | mechanistic | metaweb | | +| stochastic | **TODO** | **TODO** | | : Lets make a table that gives an overview of the different topology generators that we will look at {#tbl-history} @@ -117,6 +156,8 @@ How we want to compare and contrast. I think there won't be a 'winner' and thus * I think it would be remiss to not also take into consideration computational cost * something about the network output - I'm acknowledging my biases and saying that probabilistic (or *maybe* weighted) links are the way +@cohenStochasticTheoryCommunity1985 actually tells us that the cascade model only really works for communities that range from 3-33 species... and @williamsSuccessItsLimits2008 also highlights how structural models really only work for small communities + > maybe we can put these into broader categories - if we do start doing the venn overlap thing. *E.g.,* local scale predictions, regional scale predictions, pairwise interactions, structural (energetics), computationally cheap, low cost data ### Qualitative stuff diff --git a/notebooks/model_qualitative.qmd b/notebooks/model_qualitative.qmd index 2aec809..1c55a37 100644 --- a/notebooks/model_qualitative.qmd +++ b/notebooks/model_qualitative.qmd @@ -1,11 +1,15 @@ --- title: Qualitative approach to topology generators author: Tanya Strydom +bibliography: ../references.bib --- -Here we will use the standard [REF FOR TIDYVERSE] and @gaoGgVennDiagramIntuitiveEasytoUse2021 to create a venn diagram for the quantitative portion of or generator/model overview process. +## Venn Diagram + +Here we will use the standard [REF FOR TIDYVERSE] and @gaoGgVennDiagramIntuitiveEasytoUse2021 to create a venn diagram for the quantitative portion of or generator/model overview process. Also remember to drop the R version (maybe also look into if you can `renv` this because we aim for reproducibility) ```{r} +#| include: false library(tidyverse) library(ggVennDiagram) ``` @@ -14,6 +18,7 @@ library(ggVennDiagram) First we need to create the df with the relevant 'traits' for each model ```{r} +#| include: false x <- list(Niche=c("species agnostic", "structural", "synthetic network"), ADBM=c("node-level", "mechanistic"), @@ -28,6 +33,7 @@ data <- process_data(venn) Create venn diagram: ```{r} +#| echo: false #| label: fig-venn #| fig-cap: "Venn diagram for qualitative analysis/overview of the fancy maths things" #| fig-alt: "TODO" @@ -39,6 +45,10 @@ ggVennDiagram(x, Looking at it now I don't think this is the wayTM and trying to sort of 'ordinate' modelling space might actually be more meaningful... Specifically thinking here that I need to also actually just read about model comparison (but without the performance aspect) +## Ordination approach + +So at least according to @mccuneAnalysisEcologicalCommunities2002 we should be able to ordinate using only categorical data although we should stick to an NMDS. Its just going to be a case of encoding said categories correctly. How I see it is that each category that we 'create' will be its own entry (we could maybe also just turn each category into a factor but this comes at the cost of assuming the distribution of said variable, well that's what I infer form my 2 minute skim read). + ## References {.unnumbered} ::: {#refs} diff --git a/references.bib b/references.bib index 199fb3d..4bcd3f3 100644 --- a/references.bib +++ b/references.bib @@ -147,11 +147,10 @@ @article{cohenFoodWebsDimensionality1977 file = {/Users/tanyastrydom/Zotero/storage/9V5LRTIJ/Cohen - 1977 - Food webs and the dimensionality of trophic niche .pdf} } -@article{cohenStochasticTheoryCommunity1997, +@article{cohenStochasticTheoryCommunity1985, title = {A Stochastic Theory of Community Food Webs {{I}}. {{Models}} and Aggregated Data}, author = {Cohen, Joel E. and Newman, C. M. and Steele, John Hyslop}, - year = {1997}, - month = jan, + year = {1985}, journal = {Proceedings of the Royal Society of London. Series B. Biological Sciences}, volume = {224}, number = {1237}, @@ -191,6 +190,30 @@ @incollection{dunneNetworkStructureFood2006 publisher = {{Oxford University Press}} } +@article{dunneNetworkStructureRobustness2004, + title = {Network Structure and Robustness of Marine Food Webs}, + author = {Dunne, Ja and Williams, Rj and Martinez, Nd}, + year = {2004}, + journal = {Marine Ecology Progress Series}, + volume = {273}, + pages = {291--302}, + issn = {0171-8630, 1616-1599}, + doi = {10.3354/meps273291}, + urldate = {2024-02-13}, + abstract = {Previous studies suggest that food-web theory has yet to account for major differences in food-web properties of marine versus other types of ecosystems. We examined this issue by analyzing the network structure of food webs for the Northeast US Shelf, a Caribbean reef, and Benguela, off South Africa. The values of connectance (links per species2), link density (links per species), mean chain length, and fractions of intermediate, omnivorous, and cannibalistic taxa of these marine webs are somewhat high but still within the ranges observed in other webs. We further compared the marine webs by using the empirically corroborated `niche model' that accounts for observed variation in diversity (taxon number) and complexity (connectance). Our results substantiate previously reported results for estuarine, fresh-water, and terrestrial datasets, which suggests that food webs from different types of ecosystems with variable diversity and complexity share fundamental structural and ordering characteristics. Analyses of potential secondary extinctions resulting from species loss show that the structural robustness of marine food webs is also consistent with trends from other food webs. As expected, given their relatively high connectance, marine food webs appear fairly robust to loss of most-connected taxa as well as random taxa. Still, the short average path length between marine taxa (1.6 links) suggests that effects from perturbations, such as overfishing, can be transmitted more widely throughout marine ecosystems than previously appreciated.}, + langid = {english}, + file = {/Users/tanyastrydom/Zotero/storage/HG59NFGA/Dunne et al. - 2004 - Network structure and robustness of marine food we.pdf} +} + +@article{erdosRandomGraphs1959, + title = {On {{Random Graphs I}}}, + author = {Erd{\H o}s, Paul and R{\'e}nyi, Alfr{\'e}d}, + year = {1959}, + journal = {Publicationes Mathematicae}, + doi = {10.5486/PMD.1959.6.3-4.12}, + file = {/Users/tanyastrydom/Zotero/storage/YP5UCPQC/erdos59random.pdf} +} + @article{gaoGgVennDiagramIntuitiveEasytoUse2021, title = {{{ggVennDiagram}}: {{An Intuitive}}, {{Easy-to-Use}}, and {{Highly Customizable R Package}} to {{Generate Venn Diagram}}}, shorttitle = {{{ggVennDiagram}}}, @@ -204,6 +227,24 @@ @article{gaoGgVennDiagramIntuitiveEasytoUse2021 file = {/Users/tanyastrydom/Zotero/storage/WNAJVA7F/Gao et al. - 2021 - ggVennDiagram An Intuitive, Easy-to-Use, and High.pdf} } +@article{gravelInferringFoodWeb2013, + title = {Inferring Food Web Structure from Predator{\textendash}Prey Body Size Relationships}, + author = {Gravel, Dominique and Poisot, Timoth{\'e}e and Albouy, Camille and Velez, Laure and Mouillot, David}, + year = {2013}, + journal = {Methods in Ecology and Evolution}, + volume = {4}, + number = {11}, + pages = {1083--1090}, + issn = {2041-210X}, + doi = {10.1111/2041-210X.12103}, + urldate = {2024-02-13}, + abstract = {Current global changes make it important to be able to predict which interactions will occur in the emerging ecosystems. Most of the current methods to infer the existence of interactions between two species require a good knowledge of their behaviour or a direct observation of interactions. In this paper, we overcome these limitations by developing a method, inspired from the niche model of food web structure, using the statistical relationship between predator and prey body size to infer the matrix of potential interactions among a pool of species. The novelty of our approach is to infer, for any species of a given species pool, the three species-specific parameters of the niche model. The method applies to both local and metaweb scales. It allows one to evaluate the feeding interactions of a new species entering the community. We find that this method gives robust predictions of the structure of food webs and that its efficiency is increased when the strength of the body{\textendash}size relationship between predators and preys increases. We finally illustrate the potential of the method to infer the metaweb structure of pelagic fishes of the Mediterranean sea under different global change scenarios.}, + copyright = {{\textcopyright} 2013 The Authors. Methods in Ecology and Evolution {\textcopyright} 2013 British Ecological Society}, + langid = {english}, + keywords = {Body size,Food web,Metaweb,Niche model}, + file = {/Users/tanyastrydom/Zotero/storage/GDGMRIG5/Gravel et al. - 2013 - Inferring food web structure from predator–prey bo.pdf;/Users/tanyastrydom/Zotero/storage/GNQUTI44/2041-210X.html} +} + @article{herbersteinAnimalTraitsCuratedAnimal2022, title = {{{AnimalTraits}} - a Curated Animal Trait Database for Body Mass, Metabolic Rate and Brain Size}, author = {Herberstein, Marie E. and McLean, Donald James and Lowe, Elizabeth and Wolff, Jonas O. and Khan, Md Kawsar and Smith, Kaitlyn and Allen, Andrew P. and Bulbert, Matthew and Buzatto, Bruno A. and Eldridge, Mark D. B. and Falster, Daniel and Fernandez Winzer, Laura and Griffith, Simon C. and Madin, Joshua S. and Narendra, Ajay and Westoby, Mark and Whiting, Martin J. and Wright, Ian J. and Carthey, Alexandra J. R.}, @@ -274,6 +315,33 @@ @article{jordanoSamplingNetworksEcological2016 file = {/Users/tanyastrydom/Zotero/storage/HA5A2J2J/Jordano - 2016 - Sampling networks of ecological interactions.pdf} } +@book{mccuneAnalysisEcologicalCommunities2002, + title = {Analysis of {{Ecological Communities}}}, + author = {McCune, Bruce and Grace, B, James}, + year = {2002}, + publisher = {{MjM Software Design}}, + address = {{United States of America}}, + isbn = {0-9721290-0-6} +} + +@article{nielsenNaturalSyntheticArtificial2010, + title = {Natural - Synthetic - Artificial!}, + author = {Nielsen, Peter E.}, + year = {2010}, + month = jul, + journal = {Artificial DNA: PNA \& XNA}, + volume = {1}, + number = {1}, + pages = {58--59}, + publisher = {{Taylor \& Francis}}, + issn = {1949-095X}, + doi = {10.4161/adna.1.1.12934}, + urldate = {2024-02-12}, + abstract = {The terms ``natural, ``synthetic'' and ``artificial'' are discussed in relation to synthetic and artificial chromosomes and genomes, synthetic and artificial cells and artificial life.}, + pmid = {21687528}, + file = {/Users/tanyastrydom/Zotero/storage/XCTBYZQG/Nielsen - 2010 - Natural - synthetic - artificial!.pdf} +} + @article{petcheyFitEfficiencyBiology2011, title = {Fit, Efficiency, and Biology: {{Some}} Thoughts on Judging Food Web Models}, shorttitle = {Fit, Efficiency, and Biology}, @@ -377,6 +445,23 @@ @article{poisotSpeciesWhyEcological2015 file = {/Users/tanyastrydom/Zotero/storage/3ZD2JY54/Poisot et al. - 2015 - Beyond species why ecological interaction network.pdf;/Users/tanyastrydom/Zotero/storage/2MKHE38V/oik.html} } +@article{robertsTestingCascadeModel2003, + title = {Testing the {{Cascade Model}} for {{Food Webs}}}, + author = {Roberts, John M.}, + year = {2003}, + journal = {Journal of Agricultural, Biological, and Environmental Statistics}, + volume = {8}, + number = {2}, + eprint = {1400428}, + eprinttype = {jstor}, + pages = {196--204}, + publisher = {{[International Biometric Society, Springer]}}, + issn = {1085-7117}, + urldate = {2024-02-13}, + abstract = {The cascade model is a standard model for food web data. This article describes a method for testing the cascade model that complements existing tests. Like existing tests, the new test is conditional on the number of links observed in the predation matrix. One important feature of the cascade model is that an ordering of species is required, but in practice the true order is unknown. This feature has important implications for tests of the model, both for the new test and for existing tests. The analysis here does not require a single assumed order. Some real food webs are used for illustration.}, + file = {/Users/tanyastrydom/Zotero/storage/YN5RJGHZ/Roberts - 2003 - Testing the Cascade Model for Food Webs.pdf} +} + @article{rohrModelingFoodWebs2010, title = {Modeling {{Food Webs}}: {{Exploring Unexplained Structure Using Latent Traits}}.}, shorttitle = {Modeling {{Food Webs}}}, @@ -615,17 +700,17 @@ @article{williamsSuccessItsLimits2008 title = {Success and Its Limits among Structural Models of Complex Food Webs}, author = {Williams, Richard J. and Martinez, Neo D.}, year = {2008}, - month = may, - journal = {The Journal of Animal Ecology}, + journal = {Journal of Animal Ecology}, volume = {77}, number = {3}, pages = {512--519}, issn = {1365-2656}, doi = {10.1111/j.1365-2656.2008.01362.x}, - abstract = {1. Following the development of the relatively successful niche model, several other simple structural food web models have been proposed. These models predict the detailed structure of complex food webs given only two input parameters, the numbers of species and the number of feeding links among them. 2. The models claim different degrees of success but have not been compared consistently with each other or with the empirical data. We compared the performance of five structural models rigorously against 10 empirical food webs from a variety of aquatic and terrestrial habitats containing 25-92 species and 68-997 links. 3. All models include near-hierarchical ordering of species' consumption and have identical distributions of the number of prey of each consumer species, but differ in the extent to which species' diets are required to be contiguous and the rules used to assign feeding links. 4. The models perform similarly on a range of food-web properties, including the fraction of top, intermediate and basal species, the standard deviations of generality and connectivity and the fraction of herbivores and omnivores. 5. For other properties, including the standard deviation of vulnerability, the fraction of cannibals and species in loops, mean trophic level, path length, clustering coefficient, maximum similarity and diet discontinuity, there are significant differences in the performance of the different models. 6. While the empirical data do not support the niche model's assumption of diet contiguity, models which relax this assumption all have worse overall performance than the niche model. All the models under-estimate severely the fraction of species that are herbivores and exhibit other important failures that need to be addressed in future research.}, + urldate = {2024-02-13}, + abstract = {1 Following the development of the relatively successful niche model, several other simple structural food web models have been proposed. These models predict the detailed structure of complex food webs given only two input parameters, the numbers of species and the number of feeding links among them. 2 The models claim different degrees of success but have not been compared consistently with each other or with the empirical data. We compared the performance of five structural models rigorously against 10 empirical food webs from a variety of aquatic and terrestrial habitats containing 25{\textendash}92 species and 68{\textendash}997 links. 3 All models include near-hierarchical ordering of species' consumption and have identical distributions of the number of prey of each consumer species, but differ in the extent to which species' diets are required to be contiguous and the rules used to assign feeding links. 4 The models perform similarly on a range of food-web properties, including the fraction of top, intermediate and basal species, the standard deviations of generality and connectivity and the fraction of herbivores and omnivores. 5 For other properties, including the standard deviation of vulnerability, the fraction of cannibals and species in loops, mean trophic level, path length, clustering coefficient, maximum similarity and diet discontinuity, there are significant differences in the performance of the different models. 6 While the empirical data do not support the niche model's assumption of diet contiguity, models which relax this assumption all have worse overall performance than the niche model. All the models under-estimate severely the fraction of species that are herbivores and exhibit other important failures that need to be addressed in future research.}, langid = {english}, - pmid = {18284474}, - keywords = {Animals,Ecology,Food Chain,Models Biological} + keywords = {ecological networks,intervality,network structure,predator-prey network}, + file = {/Users/tanyastrydom/Zotero/storage/L5Y8QUY3/Williams and Martinez - 2008 - Success and its limits among structural models of .pdf;/Users/tanyastrydom/Zotero/storage/T6BDDGG8/j.1365-2656.2008.01362.html} } @article{wilmanEltonTraitsSpecieslevelForaging2014,