Compare Shedding Across Multiple Studies
import shedding_hub as sh
# Load multiple datasets
data1 = sh.load_dataset('woelfel2020virological')
data2 = sh.load_dataset('kim2020viral')
data3 = sh.load_dataset('young2020epidemiologic')
# Compare key statistics across studies
comparison = sh.compare_datasets(
[data1, data2, data3],
specimen='sputum',
value='concentration'
)
print(comparison[['dataset_id', 'n_participants', 'median_shedding_duration',
'median_peak_value', 'pct_cleared']])
Analyze Clearance Patterns
import shedding_hub as sh
# Load dataset
data = sh.load_dataset('woelfel2020virological')
# Get Kaplan-Meier clearance statistics
clearance = sh.calc_clearance_summary(data, specimen='sputum')
print(f"Median clearance time: {clearance['median_clearance_time']} days")
print(f"Clearance rate: {clearance['clearance_rate']*100:.1f}%")
# Plot the survival curve
fig = sh.plot_clearance_curve(data, specimen='sputum', show_ci=True)
Visualize Population-Level Shedding
import shedding_hub as sh
import matplotlib.pyplot as plt
# Load dataset
data = sh.load_dataset('woelfel2020virological')
# Create a multi-panel figure
fig, axes = plt.subplots(2, 2, figsize=(12, 10))
# Heatmap of individual trajectories
plt.sca(axes[0, 0])
sh.plot_shedding_heatmap(data, specimen='sputum', value='concentration')
# Mean trajectory with 95% CI
plt.sca(axes[0, 1])
sh.plot_mean_trajectory(data, specimen='sputum', value='concentration')
# Detection probability over time
plt.sca(axes[1, 0])
sh.plot_detection_probability(data, specimen='sputum')
# Clearance curve
plt.sca(axes[1, 1])
sh.plot_clearance_curve(data, specimen='sputum')
plt.tight_layout()
plt.savefig('shedding_analysis.png', dpi=300)