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

Cardiac tutorial #233

Open
wants to merge 18 commits into
base: main
Choose a base branch
from
Open

Cardiac tutorial #233

wants to merge 18 commits into from

Conversation

aranas
Copy link
Contributor

@aranas aranas commented Aug 13, 2024

this PR is a work in progress on the tutorial showcasing how autoemulate can be embedded into an end-to-end cardiac modelling pipeline including sensitivity analysis.

This tutorial still requires some improvements

  • add explanations to every step
  • add plot that showcases value of autoemulate in the context of sensitivity analysis more specifically

@aranas aranas self-assigned this Aug 13, 2024
Copy link

Check out this pull request on  ReviewNB

See visual diffs & provide feedback on Jupyter Notebooks.


Powered by ReviewNB

Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remaining comments which cannot be posted as a review comment to avoid GitHub Rate Limit

blackfmt

[blackfmt] reported by reviewdog 🐶

fig, ax = plt.subplots(ncols=2, figsize = (10, 5))


[blackfmt] reported by reviewdog 🐶

ax[0].plot(self.res.t, self.res.y[2*i,:] , 'r', alpha=0.1 + (1.-i/self.ncomp) *0.9)
ax[1].plot(self.res.t, self.res.y[2*i+1,:] , 'r', alpha=0.1 + (1.-i/self.ncomp) *0.9)
ax[0].set_title('Pressure')
ax[1].set_title('Flow rate')
ax[0].set_xlabel('Time (s)')
ax[1].set_xlabel('Time (s)')
ax[0].set_ylabel('mmHg')
ax[1].set_ylabel('$ml\cdot s^{-1}$')
return (fig, ax)

Copy link
Contributor

github-actions bot commented Aug 13, 2024

Coverage report

Click to see where and how coverage changed

FileStatementsMissingCoverageCoverage
(new stmts)
Lines missing
  autoemulate/emulators
  gaussian_process.py
  autoemulate/simulations
  flow_functions.py 1-162
Project Total  

This report was generated by python-coverage-comment-action

@codecov-commenter
Copy link

codecov-commenter commented Aug 13, 2024

Codecov Report

Attention: Patch coverage is 0% with 85 lines in your changes missing coverage. Please review.

Project coverage is 92.07%. Comparing base (d3e9a76) to head (557b6df).
Report is 17 commits behind head on main.

Files with missing lines Patch % Lines
autoemulate/simulations/flow_functions.py 0.00% 85 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #233      +/-   ##
==========================================
- Coverage   94.28%   92.07%   -2.21%     
==========================================
  Files          62       63       +1     
  Lines        3587     3672      +85     
==========================================
- Hits         3382     3381       -1     
- Misses        205      291      +86     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@aranas
Copy link
Contributor Author

aranas commented Aug 13, 2024

@MaxBalmus I managed to transfer our original commits into the autoemulate repo, I think it makes more sense to work here directly, so that Martin can chip in where appropriate.
for example, I have now transferred Max's custom flow functions into the simulations file, but I realized that the other files contain functions, not classes @mastoffel, is this something we should adapt for consistency?

@mastoffel
Copy link
Collaborator

@MaxBalmus I managed to transfer our original commits into the autoemulate repo, I think it makes more sense to work here directly, so that Martin can chip in where appropriate. for example, I have now transferred Max's custom flow functions into the simulations file, but I realized that the other files contain functions, not classes @mastoffel, is this something we should adapt for consistency?

@MaxBalmus @aranas: This is great! It would be best to make the simulation a function to be consistent with the other simulations eventually, but this isn't urgent. Let me know when I should have a look at it!


# Use custom names if provided, else default to "x1", "x2", etc.
parameter_names = (
problem["names"] if problem is not None else [f"x{i+1}" for i in range(len(next(iter(results.values()))["S1"]))]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[blackfmt] reported by reviewdog 🐶

Suggested change
problem["names"] if problem is not None else [f"x{i+1}" for i in range(len(next(iter(results.values()))["S1"]))]
problem["names"]
if problem is not None
else [f"x{i+1}" for i in range(len(next(iter(results.values()))["S1"]))]

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should resolve #279

autoemulate/metrics.py Outdated Show resolved Hide resolved
discrepancy = np.atleast_1d(discrepancy)
n_obs = len(obs_mean)
rank = min(max(rank, 0), n_obs - 1)
# Vs represents the total variance associated with the observations, predictions, and potential discrepancies.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[blackfmt] reported by reviewdog 🐶

Suggested change
# Vs represents the total variance associated with the observations, predictions, and potential discrepancies.
# Vs represents the total variance associated with the observations, predictions, and potential discrepancies.

autoemulate/metrics.py Outdated Show resolved Hide resolved
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants