4
4
< head >
5
5
< meta charset ="utf-8 " />
6
6
< meta name ="viewport " content ="width=device-width, initial-scale=1.0 " />
7
- < title > yasa.hypno — yasa 0.6.4 documentation</ title >
7
+ < title > yasa.hypno — yasa 0.6.5 documentation</ title >
8
8
< link rel ="stylesheet " type ="text/css " href ="../../_static/pygments.css " />
9
9
< link rel ="stylesheet " type ="text/css " href ="../../_static/bootstrap-sphinx.css " />
10
10
< link rel ="stylesheet " type ="text/css " href ="../../_static/plot_directive.css " />
43
43
</ button >
44
44
< a class ="navbar-brand " href ="../../index.html "> < span > < img src ="../../_static/yasa_128x128.png "> </ span >
45
45
yasa</ a >
46
- < span class ="navbar-text navbar-version pull-left "> < b > 0.6.4 </ b > </ span >
46
+ < span class ="navbar-text navbar-version pull-left "> < b > 0.6.5 </ b > </ span >
47
47
</ div >
48
48
49
49
< div class ="collapse navbar-collapse nav-collapse ">
@@ -96,6 +96,7 @@ <h1>Source code for yasa.hypno</h1><div class="highlight"><pre>
96
96
< span > </ span > < span class ="sd "> """</ span >
97
97
< span class ="sd "> Hypnogram-related functions and class.</ span >
98
98
< span class ="sd "> """</ span >
99
+
99
100
< span class ="kn "> import</ span > < span class ="nn "> mne</ span >
100
101
< span class ="kn "> import</ span > < span class ="nn "> logging</ span >
101
102
@@ -105,6 +106,7 @@ <h1>Source code for yasa.hypno</h1><div class="highlight"><pre>
105
106
< span class ="kn "> from</ span > < span class ="nn "> yasa.io</ span > < span class ="kn "> import</ span > < span class ="n "> set_log_level</ span >
106
107
< span class ="kn "> from</ span > < span class ="nn "> yasa.plotting</ span > < span class ="kn "> import</ span > < span class ="n "> plot_hypnogram</ span >
107
108
< span class ="kn "> from</ span > < span class ="nn "> yasa.sleepstats</ span > < span class ="kn "> import</ span > < span class ="n "> transition_matrix</ span >
109
+ < span class ="kn "> from</ span > < span class ="nn "> yasa.evaluation</ span > < span class ="kn "> import</ span > < span class ="n "> EpochByEpochAgreement</ span >
108
110
< span class ="kn "> from</ span > < span class ="nn "> pandas.api.types</ span > < span class ="kn "> import</ span > < span class ="n "> CategoricalDtype</ span >
109
111
110
112
< span class ="n "> __all__</ span > < span class ="o "> =</ span > < span class ="p "> [</ span >
@@ -575,7 +577,7 @@ <h1>Source code for yasa.hypno</h1><div class="highlight"><pre>
575
577
< span class ="sd "> Name: Stage, dtype: int16</ span >
576
578
< span class ="sd "> """</ span >
577
579
< span class ="c1 "> # Return as int16 (-32768 to 32767) to reduce memory usage</ span >
578
- < span class ="k "> return</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> hypno</ span > < span class ="o "> .</ span > < span class ="n "> replace </ span > < span class ="p "> (</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> mapping</ span > < span class ="p "> )</ span > < span class ="o "> .</ span > < span class ="n "> astype</ span > < span class ="p "> (</ span > < span class ="n "> np</ span > < span class ="o "> .</ span > < span class ="n "> int16</ span > < span class ="p "> )</ span > </ div >
580
+ < span class ="k "> return</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> hypno</ span > < span class ="o "> .</ span > < span class ="n "> cat </ span > < span class =" o " > . </ span > < span class =" n " > rename_categories </ span > < span class ="p "> (</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> mapping</ span > < span class ="p "> )</ span > < span class ="o "> .</ span > < span class ="n "> astype</ span > < span class ="p "> (</ span > < span class ="n "> np</ span > < span class ="o "> .</ span > < span class ="n "> int16</ span > < span class ="p "> )</ span > </ div >
579
581
580
582
< div class ="viewcode-block " id ="Hypnogram.consolidate_stages "> < a class ="viewcode-back " href ="../../generated/yasa.Hypnogram.html#yasa.Hypnogram.consolidate_stages "> [docs]</ a > < span class ="k "> def</ span > < span class ="nf "> consolidate_stages</ span > < span class ="p "> (</ span > < span class ="bp "> self</ span > < span class ="p "> ,</ span > < span class ="n "> new_n_stages</ span > < span class ="p "> ):</ span >
581
583
< span class ="sd "> """Reduce the number of stages in a hypnogram to match actigraphy or wearables.</ span >
@@ -665,6 +667,43 @@ <h1>Source code for yasa.hypno</h1><div class="highlight"><pre>
665
667
< span class ="n "> scorer</ span > < span class ="o "> =</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> scorer</ span > < span class ="p "> ,</ span >
666
668
< span class ="p "> )</ span > </ div >
667
669
670
+ < div class ="viewcode-block " id ="Hypnogram.evaluate "> < a class ="viewcode-back " href ="../../generated/yasa.Hypnogram.html#yasa.Hypnogram.evaluate "> [docs]</ a > < span class ="k "> def</ span > < span class ="nf "> evaluate</ span > < span class ="p "> (</ span > < span class ="bp "> self</ span > < span class ="p "> ,</ span > < span class ="n "> obs_hyp</ span > < span class ="p "> ):</ span >
671
+ < span class ="sd "> """Evaluate agreement between two hypnograms of the same sleep session.</ span >
672
+
673
+ < span class ="sd "> For example, the reference hypnogram (i.e., ``self``) might be a manually-scored hypnogram</ span >
674
+ < span class ="sd "> and the reference hypnogram (i.e., ``ref_hyp``) might be a hypnogram from actigraphy, a</ span >
675
+ < span class ="sd "> wearable device, or an automated scorer (e.g., :py:meth:`yasa.SleepStaging.predict`).</ span >
676
+
677
+ < span class ="sd "> Parameters</ span >
678
+ < span class ="sd "> ----------</ span >
679
+ < span class ="sd "> self : :py:class:`yasa.Hypnogram`</ span >
680
+ < span class ="sd "> Reference or ground-truth hypnogram.</ span >
681
+ < span class ="sd "> obs_hyp : :py:class:`yasa.Hypnogram`</ span >
682
+ < span class ="sd "> The observed or to-be-evaluated hypnogram.</ span >
683
+
684
+ < span class ="sd "> Returns</ span >
685
+ < span class ="sd "> -------</ span >
686
+ < span class ="sd "> ebe : :py:class:`yasa.EpochByEpochAgreement`</ span >
687
+ < span class ="sd "> See :py:class:`~yasa.EpochByEpochAgreement` documentation for more detail.</ span >
688
+
689
+ < span class ="sd "> Examples</ span >
690
+ < span class ="sd "> --------</ span >
691
+ < span class ="sd "> >>> from yasa import simulate_hypnogram</ span >
692
+ < span class ="sd "> >>> hyp_a = simulate_hypnogram(tib=90, scorer="AASM", seed=8)</ span >
693
+ < span class ="sd "> >>> hyp_b = hyp_a.simulate_similar(scorer="YASA", seed=9)</ span >
694
+ < span class ="sd "> >>> ebe = hyp_a.evaluate(hyp_b)</ span >
695
+ < span class ="sd "> >>> ebe.get_agreement().round(3)</ span >
696
+ < span class ="sd "> accuracy 0.550</ span >
697
+ < span class ="sd "> balanced_acc 0.355</ span >
698
+ < span class ="sd "> kappa 0.227</ span >
699
+ < span class ="sd "> mcc 0.231</ span >
700
+ < span class ="sd "> precision 0.515</ span >
701
+ < span class ="sd "> recall 0.550</ span >
702
+ < span class ="sd "> fbeta 0.524</ span >
703
+ < span class ="sd "> Name: agreement, dtype: float64</ span >
704
+ < span class ="sd "> """</ span >
705
+ < span class ="k "> return</ span > < span class ="n "> EpochByEpochAgreement</ span > < span class ="p "> ([</ span > < span class ="bp "> self</ span > < span class ="p "> ],</ span > < span class ="p "> [</ span > < span class ="n "> obs_hyp</ span > < span class ="p "> ])</ span > </ div >
706
+
668
707
< div class ="viewcode-block " id ="Hypnogram.find_periods "> < a class ="viewcode-back " href ="../../generated/yasa.Hypnogram.html#yasa.Hypnogram.find_periods "> [docs]</ a > < span class ="k "> def</ span > < span class ="nf "> find_periods</ span > < span class ="p "> (</ span > < span class ="bp "> self</ span > < span class ="p "> ,</ span > < span class ="n "> threshold</ span > < span class ="o "> =</ span > < span class ="s2 "> "5min"</ span > < span class ="p "> ,</ span > < span class ="n "> equal_length</ span > < span class ="o "> =</ span > < span class ="kc "> False</ span > < span class ="p "> ):</ span >
669
708
< span class ="sd "> """Find sequences of consecutive values exceeding a certain duration in hypnogram.</ span >
670
709
0 commit comments