Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

primary_infection_intensity function is misleading #71

Closed
IhsanKhaliq opened this issue Jul 22, 2021 · 31 comments
Closed

primary_infection_intensity function is misleading #71

IhsanKhaliq opened this issue Jul 22, 2021 · 31 comments
Assignees
Labels
documentation Improvements or additions to documentation enhancement New feature or request

Comments

@IhsanKhaliq
Copy link
Owner

This is the description of the function The intensity of the starting epidemic as described by the number of number of sporulating growing points.
This is the function
if (primary_infection_intensity > seeding_rate) {
stop(
"primary_infection_intensity exceeds the number of starting growing points - 'seeding_rate': ",
seeding_rate
)
}

Reasons why it's invalid

  1. The function is saying conidia splash from primary foci (stubble), then cause primary infection. Intensity refers to how many lesions resulting from that primary spread, so lesions can be greater than seeding rate

  2. If I increase or decrease the value, it doesn't have much effect on the disease spread

  3. The major problem is the way the model is interpreting it. It the value is 100, then the model can produce a total of 100 lesions over the duration of the experiment

s-gp-1000

It the value is 1000, then the model can produce a total of 1000 lesions over the duration of the experiment

s-gp-1000

  1. When the function is temporarily removed, the model can produce only 4 lesions per quadrat over the duration of the experiment
    00d2c16c-72d7-4136-9951-0ce7da5a8c75
@IhsanKhaliq IhsanKhaliq added the bug Something isn't working label Jul 22, 2021
@PaulMelloy
Copy link
Collaborator

The model assumes there is no inoculum source other than the existing lesions on chickpea plants. That is to say, it is ignorant of the fact inoculum could be produced on stubble. Correct me if I am wrong, but I think the original purpose of this model was to simulate from infected seed.
This does create a problem if we want to also simulate the spread from stubble, which as you say can offer more sources of inoculum (stubble) than lesions on the plant.

The statement if (primary_infection_intensity > seeding_rate) stop tells the model there can't be more lesions on a plant than there are growing points. I think this test needs to stay.
I don't think the parameter name primary_infection_intensity is misleading because it refers to plant infections not inoculum sources from stubble. That said the meaning could be clarified in two ways, 1) create new parameters for stubble_inoculum and stubble_inoculum_intensity and/or changing the parameter name to be more specific to lesions on a plant.

To respond to the point the number of lesions (sporulating_gps) does not exceed the value of the primary_infection_intensity. This is a feature of the model, not a bug. Growing points multiply if they are not infected. Sporulating_gps are assumed by the model to stop growing or stop producing new growing points. If all the growing points are infected in a spatial unit (1x1m raster cell) then no new growing points can be produced. Therefore if there are 100 starting growing points with a primary_infection_intensity of 100, no new growing points can be made at that spot. Ie all the plants at that spot would be dead. This can be proven by simulating an epidemic where other parts of the field eventually have more sporulating_gps than the foci, I have done this before.

Given the above consideration, I don't think this issue is a "bug" but an "enhancement" request for a new feature.
I think this change would be relatively easy to implement, as the stubble inoculum would be additive. To implement this I need to know does the inoculum from stubble replenish at the same rate as inoculum produced on plant growing points?

@PaulMelloy PaulMelloy added documentation Improvements or additions to documentation enhancement New feature or request and removed bug Something isn't working labels Jul 23, 2021
@PaulMelloy
Copy link
Collaborator

I am closing this as an issue as this is a request for a new feature to the model.
For clarity, I have opened a new issue #72 to continue the discussion there.

@IhsanKhaliq
Copy link
Owner Author

  1. Correct me if I am wrong, but I think the original purpose of this model was to simulate from infected seed.

NO. The purpose of the model was to simulate spread from infested stubble, as 100% control of seed borne infections can be achieved via chemical treatment. Disease spread from stubble under natural conditions. Art used two infected seedlings (artificially inoculated) as primary inoculum source and studied spread from those two seedlings. If you read the Art paper, he has then compared his simulation against spread from INFECTED SEEDLINGS via heatmaps and disease curves etc. Originally, we wanted to use seedlings too, but then Jenny Davidson and Kevin suggested to use stubble as there is no need of doing the hard work of artificially inoculating seedling when simply infested stubble could be used.
This is the description of the function The intensity of the starting epidemic as described by the number of number of sporulating growing points. This is still misleading, even if you're using seed as a source of primary inoculum. How can a seed have sporulating growing points? Seed can only have infected growing points.

  1. The statement if (primary_infection_intensity > seeding_rate) stop tells the model there can't be more lesions on a plant than there are growing points. I think this test needs to stay.

Currently, it's telling the model that the model can't have more lesions than SEEDING RATE, which is incorrect. They have no association what so over. If you want to change that, you could say there can't be more lesions than max growing points

  1. I don't think the parameter name primary_infection_intensity is misleading because it refers to plant infections not inoculum sources from stubble.

Exactly. The difinition is saying conidia splash from primary foci (stubble), then cause primary infection. Intensity refers to how many lesions resulting from that primary spread.......that's what YOUR definition says (The intensity of the starting epidemic as described by the number of number of sporulating growing points). Infections and seeding rate have no association

  1. To respond to the point the number of lesions (sporulating_gps) does not exceed the value of the primary_infection_intensity. This is a feature of the model, not a bug. Growing points multiply if they are not infected. Sporulating_gps are assumed by the model to stop growing or stop producing new growing points. If all the growing points are infected in a spatial unit (1x1m raster cell) then no new growing points can be produced. Therefore if there are 100 starting growing points with a primary_infection_intensity of 100, no new growing points can be made at that spot. Ie all the plants at that spot would be dead. This can be proven by simulating an epidemic where other parts of the field eventually have more sporulating_gps than the foci, I have done this before.

Of course, growing points multiply when they're infected. When we're sick, we don't grow/age? Growing points multiplication stop multiplying when plant is dead-same as humans. This is basic plant pathology

  1. To implement this I need to know does the inoculum from stubble replenish at the same rate as inoculum produced on plant growing points?

Infested stubble mainly provides initial inoculum. For example, if there are 10 pycnidia containing 20 conidia. It will provide those 20 conidia over time (can't be specified exactly) until those 10 pycnidia/20 conidia are depleted. So the inoculum on stubble is not growing over time, it is depleting over time

@IhsanKhaliq IhsanKhaliq reopened this Jul 23, 2021
@PaulMelloy
Copy link
Collaborator

Firstly I just want to say, what the model understands and knows is not a precise reflection of reality. It is merely a construct that we are using to simulate the dynamics of the epidemic over a field.

Let me clarify.
The original purpose of the model was to simulate infected seeds or infected plants. But clearly not stubble.

If as you describe the stubble was supposed to simulate plants with infected growing points, there is no reason to change the model to add stubble as a parameter to do your simulation. We built the model based on this aim, that the primary foci were infected plant lesions, which you have substituted for standing stubble at the center foci, a replacement for hand infected plants.
Further, the model assumes a seed as a single growing point. So if you sow 40 seeds per square meter the model starts with 40 growing points per square meter. I think this answers your second point given seeding_rate = new_gp and noninfected_gp at time zero. The point here is that the seeding_rate parameter represents the number of growing points at time zero, or the start of the model which was assumed to be sowing. It assumes seeding_rate is uniform across the whole paddock. If you wish to start the model at, say, 2 weeks with plants with ~1000 growing points you can still specify seeding_rate as a proxy for the number of growing points per square meter at the time zero.

Feel free to update the description for the primary_infection_intensity parameter, it obviously needs amendment.

As I mentioned earlier if you wish to change the parameter name primary_infection_intensity to something else more clear feel free. For me, nothing comes to mind at the moment. Perhaps start this is the intensity at time zero, the start of the model.

If you are saying the premise that sporulating growing points don't produce new growing points I suggest you open a new issue so this can be addressed separately. I was told when building the model, and the model has been written this way, infected growing points die at the point they become lesions (sporulating_gps) and therefore don't produce new growing points. It was discussed that other parts of the plant, besides growing points can be infected and cause lesions however this has a vastly lower probability and was not included in the model at this time.

@IhsanKhaliq
Copy link
Owner Author

  1. The original purpose of the model was to simulate infected seeds or infected plants. But clearly not stubble.
    If as you describe the stubble was supposed to simulate plants with infected growing points, there is no reason to change the model to add stubble as a parameter to do your simulation. We built the model based on this aim, that the primary foci were infected plant lesions, which you have substituted for standing stubble at the center foci, a replacement for hand infected plants.

AGREE. Infected seedling/stubble are same thing. No change required

  1. I think this answers your second point given seeding_rate = new_gp

NO. Seeding_rate = 40. Full and & Final. New growing points formation is then the function of temperature.
Capture

  1. and noninfected_gp at time zero. The point here is that the seeding_rate parameter represents the number of growing points at time zero, or the start of the model which was assumed to be sowing. It assumes seeding_rate is uniform across the whole paddock. If you wish to start the model at, say, 2 weeks with plants with ~1000 growing points you can still specify seeding_rate as a proxy for the number of growing points per square meter at the time zero.

CORRECT. Seeding rate is 40 at all times. It's a parameter of its own

  1. As I mentioned earlier if you wish to change the parameter name primary_infection_intensity to something else more clear feel free. For me, nothing comes to mind at the moment. Perhaps start this is the intensity at time zero, the start of the model.

There is nothing wrong with the name, but the way it's being interpreted in the model is misleading. It has three words, primary, infection, intensity. This means spores have to be splash dispersed first, and then infect plants. The intensity would be the number of lesions formed, so intensity has nothing to do with seeding_rate. That's all I'm saying. If you mean the number of infected seedlings after primary infection (?), then it can remain as it is. If you mean the number of lesions on the stubble, then it can probably be changed to primary_incolum_intensity. We need to be very clear what it means because currently the model is producing 15 lesions over the whole season

  1. I was told when building the model, and the model has been written this way, infected growing points die at the point they become lesions (sporulating_gps) and therefore don't produce new growing points. It was discussed that other parts of the plant, besides growing points can be infected and cause lesions however this has a vastly lower probability and was not included in the model at this time.

Plants and humans are the same. They stop growing when they're dead. If plants are infected/sporulating, it is alive and can grow. And it produces new infected growing points when conidia are splashed dispersed from them. If all cells die, then they stop growing. But we not are very concerned with this. We just know that there can be 15000 growing points per square. The model needs to tell us how many of the 150000 are healthy and how many are infected. The model is just informing growers of INFECTED GROWING POINTS, not DEAD GROWING POINTS because we will never know if they are dead or not. Also, note that the pathogen can stay alive on dead stem for about 5 months (that's how we are using infested stubble as inoculum source)

Capture

@IhsanKhaliq
Copy link
Owner Author

Sorry, I meant the model needs to inform growers how many healthy gp and how many sporuating gp

@IhsanKhaliq
Copy link
Owner Author

I have been playing with changing values of the primary infection intensity parameter since Friday. When I increase its value to 100, the maximum sporulating growing points per quadrat become 100. When I change the value primary infection intensity to 1000, the maximum sporulating growing points per quadrat become 1000 and so on... I exported the CSV file to see what's going on and found that new_gp and noninfectedgp have no value for that row. While infected_gp value is absolutely zero in the entire exported data set
Capture

@adamhsparks
Copy link
Collaborator

Sorry, I meant the model needs to inform growers how many healthy gp and how many sporuating gp

If it helps with the model development, please keep in mind that growers aren't going to be using this model in this format. It may be the basis for an app like PowderyMildewMBM or YellowSpotWM. Those interfaces are quite different. I would frame these functions as what would another scientist using this model need to see to easily understand them.

@IhsanKhaliq
Copy link
Owner Author

IhsanKhaliq commented Jul 26, 2021

Well, I switched to the master branch and run the model using Newmarracarra data to double check if I had done something funny on the chickpea branch. It is doing the same thing on the mater branch/newmarracarra data. The model is predicting one sporulating_gp when primary infection intensity is not specified.

Test1

And 1000 sporulating_gp when primary infection intensity is 1000. That's only in one quadrat. Looks like we're still at the bottom the ladder

Test3

@adamhsparks
Copy link
Collaborator

Just for reference, as you think about naming this function, the initial value of infective sites is referred to I0 in epicrop and the initial number of healthy sites is H0, the maximum number of sites is referred to as Sx.

@IhsanKhaliq
Copy link
Owner Author

Just an update. This AM I was able to get more lesions (6 in total) in one quadrat, after changing i_wet_hours value, when primary_infection_intensity was 2.
Screen Shot 2021-07-28 at 3 56 01 pm

But the issue remains (a maximum of 1000 sporulating_gp) in one quadrat when primary_infection_intensity is 1000

@IhsanKhaliq
Copy link
Owner Author

sporulating_gp and primary infection intensity values no longer match in the tracer_plot

@PaulMelloy
Copy link
Collaborator

The value of primary_infection_intensity represents how many infectious_gps are present in a quadrant. This is how it is defined in the original model. Therefore, to answer Ihsans question in #117 How is primary_inoculum_intensity related to seeding rate? the number of infectious_gps should not exceed the number of total growing points.

This issue has been an ongoing debate for a while and perhaps it should be resolved by defining primary inoculum intensity with two parameters.

  1. primary_infection_intesity seedling or infected plants at the start of the epidemic. A stop can prevent higher number of infected gps than total_gps
  2. stubble_innoculum_intensity As described above, however the contribution of infested stubble to the number of spores dispersed should decrease over time or spread events. This could be a fixed rate of decline (defined by a function based on literature) or a function that is parameterised by the user, similar to the blackspot.sp model

@PaulMelloy PaulMelloy reopened this Nov 7, 2021
@adamhsparks
Copy link
Collaborator

The only mandate of the project is to develop a model of the spatio-temporal spread of AB in a paddock. My suggestion here is to work with what we have and deliver that. We can add more complexity later. But if we can demonstrate the spread in space and time in the paddock, then we've met the project's milestone.

So I don't see any good reason to incorporate more complexity at this point with stubble inoculum, etc. That's largely irrelevant as I see it. Infection happens on day "x" when you start running the model, it spreads from there in a pattern. That's what this model needs to do for us to consider it to be complete. The source of the initial inoculum is not considered here. That's fine. That's an assumption to be documented.

We can always add more detail later if it is absolutely needed (i.e., funding supports it).

@IhsanKhaliq
Copy link
Owner Author

IhsanKhaliq commented Nov 8, 2021 via email

@adamhsparks
Copy link
Collaborator

OK. I was going through my dashboard of open issues after lunch and responding to the open issues as I saw them...

@IhsanKhaliq
Copy link
Owner Author

This has been changed to primary_inoculum_intensity

@PaulMelloy PaulMelloy reopened this Dec 10, 2021
@PaulMelloy
Copy link
Collaborator

Ok time to address this can of worms.
primary_innoculum_intensity is actually misleading for what the model assumes about it as an input. This is because primary_infection_intensity / primary_innoculum_intensity is linked to the number of growing points.
So be definition primary_infection_intensity is the inoculum that is sourced from plants in the field (not crop debris).
This is how the model has been defined. I am reluctant to change this functionality, so I am going to revert all descriptions of primary_innoculum_intensity to primary_infection_intensity.

Because this model should simulate from infested stubble as discussed in #117 and #104, I will then add a new feature describing primary_innoculum_intensity. However, for clarity, I will call it stubble_innoculum_intensity. This will also need a new parameter stubble_inoculum_coords where the location of any stubble can be applied, with options to define this as "centre" or "random" similar to how primary_infection_foci can be defined.

Stubble inoculum presumably behaves differently to plant inoculum and I will assume it decays over time, so I will also introduce another new parameter stubble_innoculum_decay which defines the rate at which the inoculum decays over time (note: this should probably be based on decay against time and rainfall, but that can be a future feature).

This will also make this model more distinct from Arts model which only assumes inoculum occurs from plant-based inoculum.

@IhsanKhaliq
Copy link
Owner Author

Feel free to change others, but please don't do this. This is a pathological sin and will lead to straight rejection. Everything decays over time, not just stubble

Stubble inoculum presumably behaves differently to plant inoculum and I will assume it decays over time, so I will also introduce another new parameter stubble_innoculum_decay which defines the rate at which the inoculum decays over time (note: this should probably be based on decay against time and rainfall, but that can be a future feature).

@IhsanKhaliq
Copy link
Owner Author

Ok time to address this can of worms. primary_innoculum_intensity is actually misleading for what the model assumes about it as an input. This is because primary_infection_intensity / primary_innoculum_intensity is linked to the number of growing points. So be definition primary_infection_intensity is the inoculum that is sourced from plants in the field (not crop debris). This is how the model has been defined. I am reluctant to change this functionality, so I am going to revert all descriptions of primary_innoculum_intensity to primary_infection_intensity.

Because this model should simulate from infested stubble as discussed in #117 and #104, I will then add a new feature describing primary_innoculum_intensity. However, for clarity, I will call it stubble_innoculum_intensity. This will also need a new parameter stubble_inoculum_coords where the location of any stubble can be applied, with options to define this as "centre" or "random" similar to how primary_infection_foci can be defined.

Stubble inoculum presumably behaves differently to plant inoculum and I will assume it decays over time, so I will also introduce another new parameter stubble_innoculum_decay which defines the rate at which the inoculum decays over time (note: this should probably be based on decay against time and rainfall, but that can be a future feature).

This will also make this model more distinct from Arts model which only assumes inoculum occurs from plant-based inoculum.

Both are stubble and seedlings are the sources of infection, and are exactly the same. Primary Infection can only occur on the seedling we have grown in the field. But feel free to change the names if that makes you happy

@adamhsparks
Copy link
Collaborator

The name clearly is confusing and I don’t see an issue with what Paul proposed about stubble inoculum. We have other models that provide decay functions for sporulation. So there are no “sins” here.

However, this is rather simple, IMO. The name needs to change and be clearly defined. I0 or initial_infective_sites either one seems to be what we’re defining here. As I understand it, this is just the number of infectious sites capable of causing disease at other growing points at the time defined by the user when the model run starts. We’re getting too hung up on the source. It doesn’t matter for the model the way it’s written. You could refine it further by adding the stubble functionality but that’s going to take more research and time to do properly.

@PaulMelloy
Copy link
Collaborator

Both are stubble and seedlings are the sources of infection, and are exactly the same. Primary Infection can only occur on the seedling we have grown in the field. But feel free to change the names if that makes you happy

Agreed. There will be no changes to how plants become infected, only how we are defining the source of inoculum (stubble_innoculum_intensity) and/or observation of infected growing points early in an epidemic (where infection may have been from seed, in cases where fungicide coating was not used)

@IhsanKhaliq
Copy link
Owner Author

The name clearly is confusing and I don’t see an issue with what Paul proposed about stubble inoculum. We have other models that provide decay functions for sporulation. So there are no “sins” here.

However, this is rather simple, IMO. The name needs to change and be clearly defined. I0 or initial_infective_sites either one seems to be what we’re defining here. As I understand it, this is just the number of infectious sites capable of causing disease at other growing points at the time defined by the user when the model run starts. We’re getting too hung up on the source. It doesn’t matter for the model the way it’s written. You could refine it further by adding the stubble functionality but that’s going to take more research and time to do properly.

HOW WOULD YOU INTRODUCE SPORE DECAY IN THIS MODEL, IF IT'S NOT A SIN? I'M CONFUSED BUT HAPPY TO BE GUIDED BY YOUR WISDOM

@adamhsparks
Copy link
Collaborator

@IhsanKhaliq, I stated it was possible but it would take more time and research. Not that we should do it for this model. There are other models that implement these sorts of factors but this one does not need it.

Since it’s Saturday and I’m having ☕️, my wisdom for the day is take some time off and enjoy your weekend.

@IhsanKhaliq
Copy link
Owner Author

@IhsanKhaliq, I stated it was possible but it would take more time and research. Not that we should do it for this model. There are other models that implement these sorts of factors but this one does not need it.

Since it’s Saturday and I’m having ☕️, my wisdom for the day is take some time off and enjoy your weekend.

What you're referring to is possible when you do disease forecasting for the next season. That is, when you put infested stubble out there and quantify spore dispersal at different times. Initially, more spore would disperse and decline towards the end of growing season because of the depletion of inoculum source. This is mainly done to identify possible sowing dates, as already done by DPIRD for some pathosystems. Here we're tying to determine the spatial and temporal spread patterns within season, so it's not applicable, as disease would increased with time due to increase in the number of infected seedlings, not decrease. I'm just that if the reviewer saw that seedling and inoculum have been treated differently and saw stubble_inoculum_decay, he would reject the paper straight away

@adamhsparks
Copy link
Collaborator

adamhsparks commented Dec 11, 2021 via email

@PaulMelloy
Copy link
Collaborator

Was busy cleaning the house so did not get to this till now.

The decay parameter is optional to use. So don't be too concerned.
My thoughts were that the default value 1 would indicate no stubble inoculum decay, 0.6 = 40% decay, 0.2 = 80% decay, ect..
Or perhaps I will invert that scale if it is easier to understand...

You don't have to use it but perhaps some people may want to define some sort of stubble decay as is common in other models.

@IhsanKhaliq
Copy link
Owner Author

Was busy cleaning the house so did not get to this till now.

The decay parameter is optional to use. So don't be too concerned. My thoughts were that the default value 1 would indicate no stubble inoculum decay, 0.6 = 40% decay, 0.2 = 80% decay, ect.. Or perhaps I will invert that scale if it is easier to understand...

You don't have to use it but perhaps some people may want to define some sort of stubble decay as is common in other models.

HOW DO YOU MEASURE THIS? 1 would indicate no stubble inoculum decay, 0.6 = 40% decay, 0.2 = 80% decay

@PaulMelloy
Copy link
Collaborator

Available inoculum is measured in wind tunnels and/or microscopically by inspecting pycnidia / perithecia.
This is what we were doing with the Yellow spot trials "weathering stubble", albeit this was with ascospores, not conidia.

The decay scale is a proportion, so you could postulate that each rainfall event 5% of the inoculum decays (or does not replenish conidia). Therefore you would use a value of 0.95 and multiply that by the stubble_inoculum_intensity, or stubble_lesions

@PaulMelloy
Copy link
Collaborator

I believe this issue has now been addressed with the addition of stubble inoculum variables created in #129
Ihsan can you check that you are happy with how the extra variables have been named and close this issue when you are done.

@IhsanKhaliq
Copy link
Owner Author

It's not applicable for this model. Since the value is 1, I am not bothered by it and closing the issue

#' @param stubble_inoculum_decay rate between `0 - 1` at which inoculum from
#' stubble declines over time. Each day with rainfall will reduce the inoculum
#' by this factor. A rate of `1` (default) indicates no decay, a rate of `0.9`
#' denotes 10% decay each day with rainfall. The value is currently `1`, as it
#' is out of scope of this model to consider this in details.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants