<SYSTEM_TASK:>
Given the following text description, write Python code to implement the functionality described below step by step
<END_TASK>
<USER_TASK:>
Description:
 Jupyter Widgets
Simpler GUI for running TARDIS - a collection of widgets provided by TARDIS to explore simulation data easily within Jupyter Notebook.
Step1:  Shell Info
This widget allows you to get fractional abundances of each shell - all the way from elements to ions to levels - by just clicking on the rows you want to explore!
There are two ways in which you can generate the widget
Step2:  You can interact with the widget produced in output above (which may not be visible) like this
<ASSISTANT_TASK:>
Python Code:
# Import the tardis widgets module
import tardis.widgets as tw
Explanation: Jupyter Widgets
Simpler GUI for running TARDIS - a collection of widgets provided by TARDIS to explore simulation data easily within Jupyter Notebook.
End of explanation
# Create a Simulation object by running tardis
from tardis import run_tardis
sim = run_tardis('tardis_example.yml')
# Now use it to create a shell info widget
shell_info = tw.shell_info_from_simulation(sim)
# Call display method of shell_info
shell_info.display()
Explanation: Shell Info
This widget allows you to get fractional abundances of each shell - all the way from elements to ions to levels - by just clicking on the rows you want to explore!
There are two ways in which you can generate the widget:
Using Simulation object
End of explanation
# Use a tardis simulation saved as HDF file to create shell info widget
shell_info = tw.shell_info_from_hdf('/tmp/sim_example.hdf')
# Display it
shell_info.display()
Explanation: You can interact with the widget produced in output above (which may not be visible) like this:
Using saved simulations (HDF files)
End of explanation
<END_TASK>