This is an automated email from the git hooks/post-receive script. hmmr-guest pushed a commit to branch WIP in repository aghermann.
commit 97cd542097b5fd9bdce5e29fc879d704aa412b38 Author: Andrei Zavada <[email protected]> Date: Tue Oct 8 02:28:13 2013 +0300 WIP --- upstream/ChangeLog | 22 +++---- upstream/src/aghermann/rk1968/rk1968.cc | 75 +++++++++++++--------- upstream/src/aghermann/ui/sf/montage-overlays.cc | 4 ++ upstream/src/aghermann/ui/sf/montage.cc | 2 + 4 files changed, 59 insertions(+), 44 deletions(-) diff --git a/upstream/ChangeLog b/upstream/ChangeLog index 3a41e12..2f4dbef 100644 --- a/upstream/ChangeLog +++ b/upstream/ChangeLog @@ -1,16 +1,14 @@ v.0.9.2 (2013-xx-xx) - * Separate upstream tree from various distribution-related files. - * SF: trivial optimisation in pattern search. - * SF: load patterns from symlinked files. - * SF: don't blindly delete files in various pattern locations, - just append ~ to their file names. - * SF: fix jump to next/prev annotations. - * Use subject ID in place of name if the latter is missing. - * Properly handle various system/user/experiment/subject/session - stored settings packs (patterns, rk1968, etc). - * Incorporate edfhed.glade in aghermann.gresources. - * SF: basic dialog for RK1968 scoring assistant parameters. - * Get a reasonable logging facility (use -l file; "-" is stdout; default is /dev/null). + * Misc: Separate upstream tree from various distribution-related files. + * Misc: SF: trivial optimisation in pattern search. + * Fix: SF: load patterns from symlinked files. + * Fix: SF: don't blindly delete files in various pattern locations, just append ~ to their file names. + * Fix: SF: fix jump to next/prev annotations. + * Fix: Use subject ID in place of name if the latter is missing. + * New: Properly handle various system/user/experiment/subject/session stored settings packs (patterns, rk1968, etc). + * Misc: Incorporate edfhed.glade in aghermann.gresources. + * New: SF: basic dialog for RK1968 scoring assistant parameters. + * New: Get a reasonable logging facility (use -l file; "-" is stdout; default is /dev/null). v.0.9.1.1 (2013-07-24) * Fix 32-bit builds where sizeof(size_t) != sizeof(unsigned long). diff --git a/upstream/src/aghermann/rk1968/rk1968.cc b/upstream/src/aghermann/rk1968/rk1968.cc index b3a9ef8..c7d08fd 100644 --- a/upstream/src/aghermann/rk1968/rk1968.cc +++ b/upstream/src/aghermann/rk1968/rk1968.cc @@ -46,42 +46,52 @@ score( agh::SEpisode& E, size_t* n_pages_scored_p) { size_t n_pages_scored = 0; - forward_list<agh::CRecording*> HH; - for ( auto &R : E.recordings ) - if ( R.second.psd_profile.have_data() ) - HH.push_front( &R.second); - if ( HH.empty() ) - return -1; - - forward_list<valarray<TFloat>> - courses_delta, - courses_theta; - for ( auto &H : HH ) { - courses_delta.emplace_front( - H->psd_profile.course( - agh::CExpDesign::freq_bands[metrics::TBand::delta][0], - agh::CExpDesign::freq_bands[metrics::TBand::delta][1])); - courses_theta.emplace_front( - H->psd_profile.course( - agh::CExpDesign::freq_bands[metrics::TBand::theta][0], - agh::CExpDesign::freq_bands[metrics::TBand::theta][1])); - } - - auto& firstsource = E.sources.front(); - for ( size_t p = 0; p < firstsource.n_pages(); ++p ) { - auto Di = courses_delta.begin(), - Ti = courses_theta.begin(); - int decision = 0; - for ( ; Di != courses_delta.end(); ++Di, ++Ti ) { - decision += - ( (*Di)[p] > (*Ti)[p] * Pp.nrem3_delta_theta_ratio ); + // 1. delta/theta-based NREM3 detection + { + forward_list<agh::CRecording*> HH; + for ( auto &R : E.recordings ) + if ( R.second.psd_profile.have_data() ) + HH.push_front( &R.second); + if ( HH.empty() ) + return -1; + + forward_list<valarray<TFloat>> + courses_delta, + courses_theta; + for ( auto &H : HH ) { + courses_delta.emplace_front( + H->psd_profile.course( + agh::CExpDesign::freq_bands[metrics::TBand::delta][0], + agh::CExpDesign::freq_bands[metrics::TBand::delta][1])); + courses_theta.emplace_front( + H->psd_profile.course( + agh::CExpDesign::freq_bands[metrics::TBand::theta][0], + agh::CExpDesign::freq_bands[metrics::TBand::theta][1])); } - if ( decision > 0 ) { - firstsource[p].mark( sigfile::SPage::TScore::nrem3); - ++n_pages_scored; + + auto& firstsource = E.sources.front(); + for ( size_t p = 0; p < firstsource.n_pages(); ++p ) { + auto Di = courses_delta.begin(), + Ti = courses_theta.begin(); + int decision = 0; + for ( ; Di != courses_delta.end(); ++Di, ++Ti ) { + decision += + ( (*Di)[p] > (*Ti)[p] * Pp.nrem3_delta_theta_ratio ); + } + if ( decision > 0 ) { + firstsource[p].mark( sigfile::SPage::TScore::nrem3); + ++n_pages_scored; + } } } + // 2. detect REM by EMG amplitude histogram peak shift + { + // (a) get a whole-episode EMG amplitude distribution + + // (b) + } + if ( n_pages_scored_p ) *n_pages_scored_p = n_pages_scored; @@ -91,6 +101,7 @@ score( agh::SEpisode& E, size_t* n_pages_scored_p) + // Local Variables: // Mode: c++ // indent-tabs-mode: nil diff --git a/upstream/src/aghermann/ui/sf/montage-overlays.cc b/upstream/src/aghermann/ui/sf/montage-overlays.cc index f716fd5..26056cf 100644 --- a/upstream/src/aghermann/ui/sf/montage-overlays.cc +++ b/upstream/src/aghermann/ui/sf/montage-overlays.cc @@ -75,6 +75,7 @@ draw_overlays( cairo_t* cr, cairo_show_text( cr, global::buf); cairo_stroke( cr); } + } else { _p._p.CwB[SExpDesignUI::TColour::sf_profile_psd].set_source_rgba( cr, .5); double zero = 0.5 / psd.course.size() * _p.da_wd; @@ -314,6 +315,9 @@ draw_overlays( cairo_t* cr, _p.da_wd, 0., pbot - EMGProfileHeight/2, signal_display_scale/2.); // half-signal scale, looks ok? cairo_stroke( cr); cairo_pattern_destroy( cp); + + // histogram + } if ( overlay ) diff --git a/upstream/src/aghermann/ui/sf/montage.cc b/upstream/src/aghermann/ui/sf/montage.cc index 81f5708..6d95c67 100644 --- a/upstream/src/aghermann/ui/sf/montage.cc +++ b/upstream/src/aghermann/ui/sf/montage.cc @@ -401,6 +401,8 @@ draw_page( cairo_t *cr, one_signal_drawn = true; cairo_stroke( cr); } + + } // waveform: signal_original -- Alioth's /git/debian-med/git-commit-notice on /srv/git.debian.org/git/debian-med/aghermann.git _______________________________________________ debian-med-commit mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/debian-med-commit
