diff --git a/examples/example_asr.ipynb b/examples/example_asr.ipynb index de462d2f..bb869fa5 100644 --- a/examples/example_asr.ipynb +++ b/examples/example_asr.ipynb @@ -6,10 +6,10 @@ "metadata": { "collapsed": false, "execution": { - "iopub.execute_input": "2023-05-11T09:18:56.242976Z", - "iopub.status.busy": "2023-05-11T09:18:56.242363Z", - "iopub.status.idle": "2023-05-11T09:18:56.537008Z", - "shell.execute_reply": "2023-05-11T09:18:56.506069Z" + "iopub.execute_input": "2023-06-12T07:30:41.759200Z", + "iopub.status.busy": "2023-06-12T07:30:41.759042Z", + "iopub.status.idle": "2023-06-12T07:30:42.038050Z", + "shell.execute_reply": "2023-06-12T07:30:42.037069Z" } }, "outputs": [], @@ -35,10 +35,10 @@ "metadata": { "collapsed": false, "execution": { - "iopub.execute_input": "2023-05-11T09:18:56.539575Z", - "iopub.status.busy": "2023-05-11T09:18:56.539423Z", - "iopub.status.idle": "2023-05-11T09:18:57.468309Z", - "shell.execute_reply": "2023-05-11T09:18:57.467945Z" + "iopub.execute_input": "2023-06-12T07:30:42.040609Z", + "iopub.status.busy": "2023-06-12T07:30:42.040439Z", + "iopub.status.idle": "2023-06-12T07:30:43.010249Z", + "shell.execute_reply": "2023-06-12T07:30:43.009872Z" } }, "outputs": [], @@ -70,10 +70,10 @@ "metadata": { "collapsed": false, "execution": { - "iopub.execute_input": "2023-05-11T09:18:57.471431Z", - "iopub.status.busy": "2023-05-11T09:18:57.471281Z", - "iopub.status.idle": "2023-05-11T09:18:57.766418Z", - "shell.execute_reply": "2023-05-11T09:18:57.739208Z" + "iopub.execute_input": "2023-06-12T07:30:43.012747Z", + "iopub.status.busy": "2023-06-12T07:30:43.012410Z", + "iopub.status.idle": "2023-06-12T07:30:43.287467Z", + "shell.execute_reply": "2023-06-12T07:30:43.249524Z" } }, "outputs": [], @@ -111,10 +111,10 @@ "metadata": { "collapsed": false, "execution": { - "iopub.execute_input": "2023-05-11T09:18:57.789136Z", - "iopub.status.busy": "2023-05-11T09:18:57.788591Z", - "iopub.status.idle": "2023-05-11T09:18:58.362129Z", - "shell.execute_reply": "2023-05-11T09:18:58.361743Z" + "iopub.execute_input": "2023-06-12T07:30:43.299495Z", + "iopub.status.busy": "2023-06-12T07:30:43.297956Z", + "iopub.status.idle": "2023-06-12T07:30:43.854373Z", + "shell.execute_reply": "2023-06-12T07:30:43.854021Z" } }, "outputs": [ diff --git a/examples/example_dering.ipynb b/examples/example_dering.ipynb index a7823d6c..864322b7 100644 --- a/examples/example_dering.ipynb +++ b/examples/example_dering.ipynb @@ -6,10 +6,10 @@ "metadata": { "collapsed": false, "execution": { - "iopub.execute_input": "2023-05-11T09:19:02.307919Z", - "iopub.status.busy": "2023-05-11T09:19:02.307506Z", - "iopub.status.idle": "2023-05-11T09:19:02.653295Z", - "shell.execute_reply": "2023-05-11T09:19:02.652942Z" + "iopub.execute_input": "2023-06-12T07:30:47.585526Z", + "iopub.status.busy": "2023-06-12T07:30:47.585274Z", + "iopub.status.idle": "2023-06-12T07:30:47.909765Z", + "shell.execute_reply": "2023-06-12T07:30:47.909375Z" } }, "outputs": [], @@ -34,10 +34,10 @@ "metadata": { "collapsed": false, "execution": { - "iopub.execute_input": "2023-05-11T09:19:02.656577Z", - "iopub.status.busy": "2023-05-11T09:19:02.656159Z", - "iopub.status.idle": "2023-05-11T09:19:03.577456Z", - "shell.execute_reply": "2023-05-11T09:19:03.577083Z" + "iopub.execute_input": "2023-06-12T07:30:47.911933Z", + "iopub.status.busy": "2023-06-12T07:30:47.911765Z", + "iopub.status.idle": "2023-06-12T07:30:48.853449Z", + "shell.execute_reply": "2023-06-12T07:30:48.853036Z" } }, "outputs": [], @@ -76,10 +76,10 @@ "metadata": { "collapsed": false, "execution": { - "iopub.execute_input": "2023-05-11T09:19:03.579843Z", - "iopub.status.busy": "2023-05-11T09:19:03.579610Z", - "iopub.status.idle": "2023-05-11T09:19:03.748268Z", - "shell.execute_reply": "2023-05-11T09:19:03.747953Z" + "iopub.execute_input": "2023-06-12T07:30:48.855823Z", + "iopub.status.busy": "2023-06-12T07:30:48.855536Z", + "iopub.status.idle": "2023-06-12T07:30:49.026251Z", + "shell.execute_reply": "2023-06-12T07:30:49.025759Z" } }, "outputs": [ diff --git a/examples/example_detrend.ipynb b/examples/example_detrend.ipynb index 02a7b040..43d3dcbb 100644 --- a/examples/example_detrend.ipynb +++ b/examples/example_detrend.ipynb @@ -6,10 +6,10 @@ "metadata": { "collapsed": false, "execution": { - "iopub.execute_input": "2023-05-11T09:18:48.845013Z", - "iopub.status.busy": "2023-05-11T09:18:48.844870Z", - "iopub.status.idle": "2023-05-11T09:18:49.144585Z", - "shell.execute_reply": "2023-05-11T09:18:49.143789Z" + "iopub.execute_input": "2023-06-12T07:30:34.360752Z", + "iopub.status.busy": "2023-06-12T07:30:34.360601Z", + "iopub.status.idle": "2023-06-12T07:30:34.641867Z", + "shell.execute_reply": "2023-06-12T07:30:34.641520Z" } }, "outputs": [], @@ -40,10 +40,10 @@ "metadata": { "collapsed": false, "execution": { - "iopub.execute_input": "2023-05-11T09:18:49.147055Z", - "iopub.status.busy": "2023-05-11T09:18:49.146714Z", - "iopub.status.idle": "2023-05-11T09:18:50.130695Z", - "shell.execute_reply": "2023-05-11T09:18:50.130306Z" + "iopub.execute_input": "2023-06-12T07:30:34.644192Z", + "iopub.status.busy": "2023-06-12T07:30:34.644035Z", + "iopub.status.idle": "2023-06-12T07:30:35.591147Z", + "shell.execute_reply": "2023-06-12T07:30:35.590761Z" } }, "outputs": [], @@ -82,10 +82,10 @@ "metadata": { "collapsed": false, "execution": { - "iopub.execute_input": "2023-05-11T09:18:50.132979Z", - "iopub.status.busy": "2023-05-11T09:18:50.132782Z", - "iopub.status.idle": "2023-05-11T09:18:50.224531Z", - "shell.execute_reply": "2023-05-11T09:18:50.224146Z" + "iopub.execute_input": "2023-06-12T07:30:35.593795Z", + "iopub.status.busy": "2023-06-12T07:30:35.593445Z", + "iopub.status.idle": "2023-06-12T07:30:35.728529Z", + "shell.execute_reply": "2023-06-12T07:30:35.728208Z" } }, "outputs": [ @@ -131,17 +131,17 @@ "metadata": { "collapsed": false, "execution": { - "iopub.execute_input": "2023-05-11T09:18:50.226719Z", - "iopub.status.busy": "2023-05-11T09:18:50.226596Z", - "iopub.status.idle": "2023-05-11T09:18:50.404693Z", - "shell.execute_reply": "2023-05-11T09:18:50.404372Z" + "iopub.execute_input": "2023-06-12T07:30:35.731278Z", + "iopub.status.busy": "2023-06-12T07:30:35.731155Z", + "iopub.status.idle": "2023-06-12T07:30:35.873102Z", + "shell.execute_reply": "2023-06-12T07:30:35.872781Z" } }, "outputs": [ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 4, @@ -193,17 +193,17 @@ "metadata": { "collapsed": false, "execution": { - "iopub.execute_input": "2023-05-11T09:18:50.406750Z", - "iopub.status.busy": "2023-05-11T09:18:50.406630Z", - "iopub.status.idle": "2023-05-11T09:18:50.514174Z", - "shell.execute_reply": "2023-05-11T09:18:50.513838Z" + "iopub.execute_input": "2023-06-12T07:30:35.875698Z", + "iopub.status.busy": "2023-06-12T07:30:35.875025Z", + "iopub.status.idle": "2023-06-12T07:30:35.985532Z", + "shell.execute_reply": "2023-06-12T07:30:35.985137Z" } }, "outputs": [ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 5, @@ -255,17 +255,17 @@ "metadata": { "collapsed": false, "execution": { - "iopub.execute_input": "2023-05-11T09:18:50.516367Z", - "iopub.status.busy": "2023-05-11T09:18:50.516236Z", - "iopub.status.idle": "2023-05-11T09:18:50.595676Z", - "shell.execute_reply": "2023-05-11T09:18:50.595350Z" + "iopub.execute_input": "2023-06-12T07:30:35.987627Z", + "iopub.status.busy": "2023-06-12T07:30:35.987524Z", + "iopub.status.idle": "2023-06-12T07:30:36.069910Z", + "shell.execute_reply": "2023-06-12T07:30:36.069420Z" } }, "outputs": [ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 6, @@ -308,17 +308,17 @@ "metadata": { "collapsed": false, "execution": { - "iopub.execute_input": "2023-05-11T09:18:50.598189Z", - "iopub.status.busy": "2023-05-11T09:18:50.597965Z", - "iopub.status.idle": "2023-05-11T09:18:50.679911Z", - "shell.execute_reply": "2023-05-11T09:18:50.679522Z" + "iopub.execute_input": "2023-06-12T07:30:36.072018Z", + "iopub.status.busy": "2023-06-12T07:30:36.071796Z", + "iopub.status.idle": "2023-06-12T07:30:36.154808Z", + "shell.execute_reply": "2023-06-12T07:30:36.154511Z" } }, "outputs": [ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 7, @@ -367,10 +367,10 @@ "metadata": { "collapsed": false, "execution": { - "iopub.execute_input": "2023-05-11T09:18:50.682253Z", - "iopub.status.busy": "2023-05-11T09:18:50.682031Z", - "iopub.status.idle": "2023-05-11T09:18:50.766453Z", - "shell.execute_reply": "2023-05-11T09:18:50.766146Z" + "iopub.execute_input": "2023-06-12T07:30:36.156821Z", + "iopub.status.busy": "2023-06-12T07:30:36.156693Z", + "iopub.status.idle": "2023-06-12T07:30:36.241441Z", + "shell.execute_reply": "2023-06-12T07:30:36.241050Z" } }, "outputs": [ diff --git a/examples/example_dss.ipynb b/examples/example_dss.ipynb index 62f8bdee..6a132670 100644 --- a/examples/example_dss.ipynb +++ b/examples/example_dss.ipynb @@ -6,10 +6,10 @@ "metadata": { "collapsed": false, "execution": { - "iopub.execute_input": "2023-05-11T09:19:04.772654Z", - "iopub.status.busy": "2023-05-11T09:19:04.772529Z", - "iopub.status.idle": "2023-05-11T09:19:05.083106Z", - "shell.execute_reply": "2023-05-11T09:19:05.082141Z" + "iopub.execute_input": "2023-06-12T07:30:54.332335Z", + "iopub.status.busy": "2023-06-12T07:30:54.330325Z", + "iopub.status.idle": "2023-06-12T07:30:54.678871Z", + "shell.execute_reply": "2023-06-12T07:30:54.678070Z" } }, "outputs": [], @@ -36,10 +36,10 @@ "metadata": { "collapsed": false, "execution": { - "iopub.execute_input": "2023-05-11T09:19:05.085983Z", - "iopub.status.busy": "2023-05-11T09:19:05.085469Z", - "iopub.status.idle": "2023-05-11T09:19:06.011756Z", - "shell.execute_reply": "2023-05-11T09:19:06.011374Z" + "iopub.execute_input": "2023-06-12T07:30:54.684828Z", + "iopub.status.busy": "2023-06-12T07:30:54.684572Z", + "iopub.status.idle": "2023-06-12T07:30:55.651879Z", + "shell.execute_reply": "2023-06-12T07:30:55.651424Z" } }, "outputs": [], @@ -67,10 +67,10 @@ "metadata": { "collapsed": false, "execution": { - "iopub.execute_input": "2023-05-11T09:19:06.013969Z", - "iopub.status.busy": "2023-05-11T09:19:06.013832Z", - "iopub.status.idle": "2023-05-11T09:19:06.138154Z", - "shell.execute_reply": "2023-05-11T09:19:06.097649Z" + "iopub.execute_input": "2023-06-12T07:30:55.654326Z", + "iopub.status.busy": "2023-06-12T07:30:55.653987Z", + "iopub.status.idle": "2023-06-12T07:30:55.774200Z", + "shell.execute_reply": "2023-06-12T07:30:55.735384Z" } }, "outputs": [], @@ -115,10 +115,10 @@ "metadata": { "collapsed": false, "execution": { - "iopub.execute_input": "2023-05-11T09:19:06.153859Z", - "iopub.status.busy": "2023-05-11T09:19:06.153625Z", - "iopub.status.idle": "2023-05-11T09:19:06.397817Z", - "shell.execute_reply": "2023-05-11T09:19:06.393715Z" + "iopub.execute_input": "2023-06-12T07:30:55.796947Z", + "iopub.status.busy": "2023-06-12T07:30:55.795907Z", + "iopub.status.idle": "2023-06-12T07:30:55.875945Z", + "shell.execute_reply": "2023-06-12T07:30:55.875448Z" } }, "outputs": [], @@ -152,10 +152,10 @@ "metadata": { "collapsed": false, "execution": { - "iopub.execute_input": "2023-05-11T09:19:06.411141Z", - "iopub.status.busy": "2023-05-11T09:19:06.410550Z", - "iopub.status.idle": "2023-05-11T09:19:06.672263Z", - "shell.execute_reply": "2023-05-11T09:19:06.671833Z" + "iopub.execute_input": "2023-06-12T07:30:55.882569Z", + "iopub.status.busy": "2023-06-12T07:30:55.882428Z", + "iopub.status.idle": "2023-06-12T07:30:56.226688Z", + "shell.execute_reply": "2023-06-12T07:30:56.226347Z" } }, "outputs": [ diff --git a/examples/example_dss_line.ipynb b/examples/example_dss_line.ipynb index b700d1c8..a87b0369 100644 --- a/examples/example_dss_line.ipynb +++ b/examples/example_dss_line.ipynb @@ -6,10 +6,10 @@ "metadata": { "collapsed": false, "execution": { - "iopub.execute_input": "2023-05-11T09:19:22.419329Z", - "iopub.status.busy": "2023-05-11T09:19:22.419190Z", - "iopub.status.idle": "2023-05-11T09:19:22.787580Z", - "shell.execute_reply": "2023-05-11T09:19:22.787160Z" + "iopub.execute_input": "2023-06-12T07:31:11.002441Z", + "iopub.status.busy": "2023-06-12T07:31:11.002273Z", + "iopub.status.idle": "2023-06-12T07:31:11.379347Z", + "shell.execute_reply": "2023-06-12T07:31:11.378999Z" } }, "outputs": [], @@ -39,10 +39,10 @@ "metadata": { "collapsed": false, "execution": { - "iopub.execute_input": "2023-05-11T09:19:22.789848Z", - "iopub.status.busy": "2023-05-11T09:19:22.789680Z", - "iopub.status.idle": "2023-05-11T09:19:23.756972Z", - "shell.execute_reply": "2023-05-11T09:19:23.756570Z" + "iopub.execute_input": "2023-06-12T07:31:11.381889Z", + "iopub.status.busy": "2023-06-12T07:31:11.381685Z", + "iopub.status.idle": "2023-06-12T07:31:12.409941Z", + "shell.execute_reply": "2023-06-12T07:31:12.409443Z" } }, "outputs": [], @@ -82,10 +82,10 @@ "metadata": { "collapsed": false, "execution": { - "iopub.execute_input": "2023-05-11T09:19:23.759546Z", - "iopub.status.busy": "2023-05-11T09:19:23.759388Z", - "iopub.status.idle": "2023-05-11T09:19:23.892423Z", - "shell.execute_reply": "2023-05-11T09:19:23.889212Z" + "iopub.execute_input": "2023-06-12T07:31:12.412514Z", + "iopub.status.busy": "2023-06-12T07:31:12.412252Z", + "iopub.status.idle": "2023-06-12T07:31:12.544467Z", + "shell.execute_reply": "2023-06-12T07:31:12.544066Z" } }, "outputs": [ @@ -125,10 +125,10 @@ "metadata": { "collapsed": false, "execution": { - "iopub.execute_input": "2023-05-11T09:19:23.905574Z", - "iopub.status.busy": "2023-05-11T09:19:23.905034Z", - "iopub.status.idle": "2023-05-11T09:19:24.400704Z", - "shell.execute_reply": "2023-05-11T09:19:24.400360Z" + "iopub.execute_input": "2023-06-12T07:31:12.547079Z", + "iopub.status.busy": "2023-06-12T07:31:12.546969Z", + "iopub.status.idle": "2023-06-12T07:31:13.038615Z", + "shell.execute_reply": "2023-06-12T07:31:13.038295Z" } }, "outputs": [ @@ -172,10 +172,10 @@ "metadata": { "collapsed": false, "execution": { - "iopub.execute_input": "2023-05-11T09:19:24.402887Z", - "iopub.status.busy": "2023-05-11T09:19:24.402759Z", - "iopub.status.idle": "2023-05-11T09:19:25.688193Z", - "shell.execute_reply": "2023-05-11T09:19:25.686663Z" + "iopub.execute_input": "2023-06-12T07:31:13.040420Z", + "iopub.status.busy": "2023-06-12T07:31:13.040304Z", + "iopub.status.idle": "2023-06-12T07:31:14.225897Z", + "shell.execute_reply": "2023-06-12T07:31:14.212064Z" } }, "outputs": [ @@ -213,10 +213,10 @@ "metadata": { "collapsed": false, "execution": { - "iopub.execute_input": "2023-05-11T09:19:25.698616Z", - "iopub.status.busy": "2023-05-11T09:19:25.697827Z", - "iopub.status.idle": "2023-05-11T09:19:31.463723Z", - "shell.execute_reply": "2023-05-11T09:19:31.463389Z" + "iopub.execute_input": "2023-06-12T07:31:14.241888Z", + "iopub.status.busy": "2023-06-12T07:31:14.241743Z", + "iopub.status.idle": "2023-06-12T07:31:19.747380Z", + "shell.execute_reply": "2023-06-12T07:31:19.747020Z" } }, "outputs": [ @@ -255,10 +255,10 @@ "metadata": { "collapsed": false, "execution": { - "iopub.execute_input": "2023-05-11T09:19:31.465676Z", - "iopub.status.busy": "2023-05-11T09:19:31.465559Z", - "iopub.status.idle": "2023-05-11T09:19:32.064153Z", - "shell.execute_reply": "2023-05-11T09:19:32.063695Z" + "iopub.execute_input": "2023-06-12T07:31:19.749476Z", + "iopub.status.busy": "2023-06-12T07:31:19.749338Z", + "iopub.status.idle": "2023-06-12T07:31:20.379273Z", + "shell.execute_reply": "2023-06-12T07:31:20.378930Z" } }, "outputs": [ diff --git a/examples/example_mcca.ipynb b/examples/example_mcca.ipynb index 18adadad..bce53608 100644 --- a/examples/example_mcca.ipynb +++ b/examples/example_mcca.ipynb @@ -6,10 +6,10 @@ "metadata": { "collapsed": false, "execution": { - "iopub.execute_input": "2023-05-11T09:18:51.933643Z", - "iopub.status.busy": "2023-05-11T09:18:51.932524Z", - "iopub.status.idle": "2023-05-11T09:18:52.192672Z", - "shell.execute_reply": "2023-05-11T09:18:52.179977Z" + "iopub.execute_input": "2023-06-12T07:30:37.202665Z", + "iopub.status.busy": "2023-06-12T07:30:37.202350Z", + "iopub.status.idle": "2023-06-12T07:30:37.521199Z", + "shell.execute_reply": "2023-06-12T07:30:37.520860Z" } }, "outputs": [], @@ -22,7 +22,7 @@ "metadata": {}, "source": [ "\n", - "# Example multiway canonical correlation analysis (mCCA)\n", + "# Multiway canonical correlation analysis (mCCA)\n", "\n", "Find a set of components which are shared between different datasets.\n", "\n", @@ -35,10 +35,10 @@ "metadata": { "collapsed": false, "execution": { - "iopub.execute_input": "2023-05-11T09:18:52.219471Z", - "iopub.status.busy": "2023-05-11T09:18:52.219272Z", - "iopub.status.idle": "2023-05-11T09:18:53.114029Z", - "shell.execute_reply": "2023-05-11T09:18:53.113675Z" + "iopub.execute_input": "2023-06-12T07:30:37.524256Z", + "iopub.status.busy": "2023-06-12T07:30:37.523825Z", + "iopub.status.idle": "2023-06-12T07:30:38.497958Z", + "shell.execute_reply": "2023-06-12T07:30:38.497527Z" } }, "outputs": [], @@ -75,10 +75,10 @@ "metadata": { "collapsed": false, "execution": { - "iopub.execute_input": "2023-05-11T09:18:53.116238Z", - "iopub.status.busy": "2023-05-11T09:18:53.116107Z", - "iopub.status.idle": "2023-05-11T09:18:53.121346Z", - "shell.execute_reply": "2023-05-11T09:18:53.121034Z" + "iopub.execute_input": "2023-06-12T07:30:38.500425Z", + "iopub.status.busy": "2023-06-12T07:30:38.500115Z", + "iopub.status.idle": "2023-06-12T07:30:38.505708Z", + "shell.execute_reply": "2023-06-12T07:30:38.505382Z" } }, "outputs": [ @@ -113,10 +113,10 @@ "metadata": { "collapsed": false, "execution": { - "iopub.execute_input": "2023-05-11T09:18:53.123197Z", - "iopub.status.busy": "2023-05-11T09:18:53.123069Z", - "iopub.status.idle": "2023-05-11T09:18:53.284637Z", - "shell.execute_reply": "2023-05-11T09:18:53.282147Z" + "iopub.execute_input": "2023-06-12T07:30:38.507742Z", + "iopub.status.busy": "2023-06-12T07:30:38.507607Z", + "iopub.status.idle": "2023-06-12T07:30:38.567463Z", + "shell.execute_reply": "2023-06-12T07:30:38.564582Z" } }, "outputs": [], @@ -139,10 +139,10 @@ "metadata": { "collapsed": false, "execution": { - "iopub.execute_input": "2023-05-11T09:18:53.295323Z", - "iopub.status.busy": "2023-05-11T09:18:53.295161Z", - "iopub.status.idle": "2023-05-11T09:18:53.854474Z", - "shell.execute_reply": "2023-05-11T09:18:53.853764Z" + "iopub.execute_input": "2023-06-12T07:30:38.585985Z", + "iopub.status.busy": "2023-06-12T07:30:38.585289Z", + "iopub.status.idle": "2023-06-12T07:30:39.122202Z", + "shell.execute_reply": "2023-06-12T07:30:39.121853Z" } }, "outputs": [ @@ -194,10 +194,10 @@ "metadata": { "collapsed": false, "execution": { - "iopub.execute_input": "2023-05-11T09:18:53.857101Z", - "iopub.status.busy": "2023-05-11T09:18:53.856957Z", - "iopub.status.idle": "2023-05-11T09:18:53.863578Z", - "shell.execute_reply": "2023-05-11T09:18:53.862634Z" + "iopub.execute_input": "2023-06-12T07:30:39.124200Z", + "iopub.status.busy": "2023-06-12T07:30:39.124086Z", + "iopub.status.idle": "2023-06-12T07:30:39.129109Z", + "shell.execute_reply": "2023-06-12T07:30:39.128679Z" } }, "outputs": [ @@ -233,10 +233,10 @@ "metadata": { "collapsed": false, "execution": { - "iopub.execute_input": "2023-05-11T09:18:53.866759Z", - "iopub.status.busy": "2023-05-11T09:18:53.866604Z", - "iopub.status.idle": "2023-05-11T09:18:53.878602Z", - "shell.execute_reply": "2023-05-11T09:18:53.874520Z" + "iopub.execute_input": "2023-06-12T07:30:39.131150Z", + "iopub.status.busy": "2023-06-12T07:30:39.130991Z", + "iopub.status.idle": "2023-06-12T07:30:39.134892Z", + "shell.execute_reply": "2023-06-12T07:30:39.134455Z" } }, "outputs": [], @@ -258,10 +258,10 @@ "metadata": { "collapsed": false, "execution": { - "iopub.execute_input": "2023-05-11T09:18:53.893058Z", - "iopub.status.busy": "2023-05-11T09:18:53.890208Z", - "iopub.status.idle": "2023-05-11T09:18:54.532028Z", - "shell.execute_reply": "2023-05-11T09:18:54.531514Z" + "iopub.execute_input": "2023-06-12T07:30:39.137030Z", + "iopub.status.busy": "2023-06-12T07:30:39.136797Z", + "iopub.status.idle": "2023-06-12T07:30:39.724039Z", + "shell.execute_reply": "2023-06-12T07:30:39.720438Z" } }, "outputs": [ @@ -315,10 +315,10 @@ "metadata": { "collapsed": false, "execution": { - "iopub.execute_input": "2023-05-11T09:18:54.534968Z", - "iopub.status.busy": "2023-05-11T09:18:54.534812Z", - "iopub.status.idle": "2023-05-11T09:18:54.538868Z", - "shell.execute_reply": "2023-05-11T09:18:54.538542Z" + "iopub.execute_input": "2023-06-12T07:30:39.726298Z", + "iopub.status.busy": "2023-06-12T07:30:39.726175Z", + "iopub.status.idle": "2023-06-12T07:30:39.730220Z", + "shell.execute_reply": "2023-06-12T07:30:39.729681Z" } }, "outputs": [ @@ -351,10 +351,10 @@ "metadata": { "collapsed": false, "execution": { - "iopub.execute_input": "2023-05-11T09:18:54.541076Z", - "iopub.status.busy": "2023-05-11T09:18:54.540740Z", - "iopub.status.idle": "2023-05-11T09:18:54.545714Z", - "shell.execute_reply": "2023-05-11T09:18:54.544911Z" + "iopub.execute_input": "2023-06-12T07:30:39.733527Z", + "iopub.status.busy": "2023-06-12T07:30:39.732294Z", + "iopub.status.idle": "2023-06-12T07:30:39.738899Z", + "shell.execute_reply": "2023-06-12T07:30:39.737424Z" } }, "outputs": [], @@ -376,10 +376,10 @@ "metadata": { "collapsed": false, "execution": { - "iopub.execute_input": "2023-05-11T09:18:54.548504Z", - "iopub.status.busy": "2023-05-11T09:18:54.548060Z", - "iopub.status.idle": "2023-05-11T09:18:55.181303Z", - "shell.execute_reply": "2023-05-11T09:18:55.180946Z" + "iopub.execute_input": "2023-06-12T07:30:39.743056Z", + "iopub.status.busy": "2023-06-12T07:30:39.742731Z", + "iopub.status.idle": "2023-06-12T07:30:40.559172Z", + "shell.execute_reply": "2023-06-12T07:30:40.558771Z" } }, "outputs": [ diff --git a/examples/example_mcca.py b/examples/example_mcca.py index d2f13400..d51c6714 100644 --- a/examples/example_mcca.py +++ b/examples/example_mcca.py @@ -1,6 +1,6 @@ """ -Example multiway canonical correlation analysis (mCCA) -====================================================== +Multiway canonical correlation analysis (mCCA) +============================================== Find a set of components which are shared between different datasets. diff --git a/examples/example_mcca_2.ipynb b/examples/example_mcca_2.ipynb new file mode 100644 index 00000000..6823c38b --- /dev/null +++ b/examples/example_mcca_2.ipynb @@ -0,0 +1,244 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false, + "execution": { + "iopub.execute_input": "2023-06-12T07:30:50.212756Z", + "iopub.status.busy": "2023-06-12T07:30:50.212616Z", + "iopub.status.idle": "2023-06-12T07:30:50.596404Z", + "shell.execute_reply": "2023-06-12T07:30:50.596058Z" + } + }, + "outputs": [], + "source": [ + "%matplotlib inline" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "# mCCA example: Sinusoidal target in separable noise\n", + "\n", + "Reproduced from de Cheveigné et al. (2018).\n", + "\n", + "Synthetic data for this example consisted of 10 data matrices, each of\n", + "dimensions 10000 samples x 10 channels. Each was obtained by multiplying 9\n", + "Gaussian noise time series (independent and uncorrelated) by a 9 x 10 mixing\n", + "matrix with random Gaussian coefficients. To this background of noise was added\n", + "a \"target\" consisting of a sinusoidal time series multiplied by a 1 x 10 mixing\n", + "matrix with random coefficients. The target was the same for all data matrices,\n", + "but the mixing matrices differed, as were the noise matrices. The SNR was set\n", + "to 10−20, i.e. a very unfavorable SNR. The noise is of rank 9 and the signal of\n", + "rank 1, so signal and noise are in principle linearly separable.\n", + "\n", + "Uses meegkit.cca.mmca()\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false, + "execution": { + "iopub.execute_input": "2023-06-12T07:30:50.598931Z", + "iopub.status.busy": "2023-06-12T07:30:50.598746Z", + "iopub.status.idle": "2023-06-12T07:30:51.676071Z", + "shell.execute_reply": "2023-06-12T07:30:51.675663Z" + } + }, + "outputs": [], + "source": [ + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "\n", + "from meegkit import cca\n", + "\n", + "# Set the seed for the random number generator for reproducibility\n", + "rng = np.random.default_rng(5)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Generate toy data\n", + "Constants\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false, + "execution": { + "iopub.execute_input": "2023-06-12T07:30:51.678567Z", + "iopub.status.busy": "2023-06-12T07:30:51.678325Z", + "iopub.status.idle": "2023-06-12T07:30:51.789638Z", + "shell.execute_reply": "2023-06-12T07:30:51.774290Z" + } + }, + "outputs": [], + "source": [ + "num_matrices = 10\n", + "num_samples = 10000\n", + "num_channels = 10\n", + "noise_rank = 9\n", + "signal_rank = 1\n", + "unfavorable_SNR_dB = -20 # SNR in decibels\n", + "\n", + "# Generate noise matrices and mixing matrices\n", + "noise_matrices = [rng.normal(size=(num_samples, noise_rank))\n", + " for _ in range(num_matrices)]\n", + "mixing_matrices = [rng.normal(size=(noise_rank, num_channels))\n", + " for _ in range(num_matrices)]\n", + "\n", + "# Generate sinusoidal target\n", + "t = np.linspace(0, 1, num_samples)\n", + "target_signal = np.sin(2 * np.pi * t) # 1 Hz sinusoidal signal\n", + "\n", + "# Generate signal mixing matrix\n", + "signal_mixing_matrix = rng.normal(size=(signal_rank, num_channels))\n", + "\n", + "# Prepare data matrices\n", + "data_matrices = []\n", + "for i in range(num_matrices):\n", + " # Create noise for current data matrix\n", + " noise = np.matmul(noise_matrices[i], mixing_matrices[i])\n", + "\n", + " # Create signal for current data matrix\n", + " signal = np.matmul(target_signal.reshape(-1, 1), signal_mixing_matrix)\n", + "\n", + " # Adjust the power of signal to achieve the desired SNR\n", + " noise_power = np.mean(noise**2)\n", + " signal_power = 10**(unfavorable_SNR_dB / 10) * noise_power\n", + " signal = np.sqrt(signal_power / np.mean(signal**2)) * signal\n", + "\n", + " # Add signal and noise\n", + " data_matrix = signal + noise\n", + "\n", + " data_matrices.append(data_matrix)\n", + "\n", + "# Concatenate data matrices\n", + "x = np.concatenate(data_matrices, axis=-1)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Use mCCA to recover signal in noise\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false, + "execution": { + "iopub.execute_input": "2023-06-12T07:30:51.800552Z", + "iopub.status.busy": "2023-06-12T07:30:51.800357Z", + "iopub.status.idle": "2023-06-12T07:30:52.632461Z", + "shell.execute_reply": "2023-06-12T07:30:52.629031Z" + } + }, + "outputs": [], + "source": [ + "# Compute Covariance matrix\n", + "C = np.dot(x.T, x)\n", + "\n", + "# Compute mCCA from covariance\n", + "A, score, AA = cca.mcca(C, 10)\n", + "\n", + "# Compute the recovered signal using first SC\n", + "x_recovered = x.dot(A)[:, 0]\n", + "\n", + "# Normalize the recovered signal\n", + "x_recovered = x_recovered / x_recovered.std()\n", + "\n", + "# Compute variance across SCs\n", + "variance = np.var(x.dot(A), axis=0)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Plot the results\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false, + "execution": { + "iopub.execute_input": "2023-06-12T07:30:52.641248Z", + "iopub.status.busy": "2023-06-12T07:30:52.638178Z", + "iopub.status.idle": "2023-06-12T07:30:53.161325Z", + "shell.execute_reply": "2023-06-12T07:30:53.160942Z" + } + }, + "outputs": [ + { + "data": { + "image/png": "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ZISFhcHb2xuPPvooiouLUVVVZTiGh4cHunbtangdHByMqKgoeHl5Ga0rKioyOndSUlKT1zk5Oc3GuW/fPhw7dgze3t6GrL+fnx+qq6tx/Pjxzl4GIrJRrKOIyBm0VtcJIaQOj4jsHO+nqKOYmCKrcXNzwx//+EfMmjUL27dvx2OPPYY5c+bg1KlTuOuuu5CQkIBVq1YhKysLS5YsAQCjppSurq5Gx5PJZM2u0+l0HY6xsrISAwcORHZ2ttHy+++/45FHHunwcYnI9rGOIiJn0FJd1717dwDAkSNHJI6QiOwZ76eoIzgrH0mmV69eWLNmDbKysqDT6fDuu+9CLm/MlX733XdmO8/OnTubvO7Zs2ezZQcMGIBvv/0WQUFBUKvVZouBiOwP6ygicgb6um7EiBEICAjAwoULsXr16iblSktLOc4UEbUb76fIFGwxRRZXXFyM22+/HV999RX279+PkydPYuXKlVi4cCFGjRqF2NhY1NXVYfHixThx4gS+/PJLfPjhh2Y7/7Zt27Bw4UL8/vvvWLJkCVauXIlnn3222bLjxo1DQEAARo0aha1bt+LkyZPIyMjAM888g7Nnz5otJiKyHayjiMgZtFXXeXp64tNPP8XPP/+Me+65B7/++itOnTqFPXv24MUXX8QTTzwh9VsgIhvG+ynqDLaYIovz8vJCYmIi/va3v+H48eOoq6tDREQEJk2ahL/+9a9wd3fHokWL8NZbb2HmzJm49dZbsWDBAowfP94s558+fTr27NmDuXPnQq1WY9GiRUhNTW22rIeHB7Zs2YKXXnoJ9913HyoqKhAWFobk5GRm04kcFOsoInIGbdV1ADBq1Chs374dCxYswCOPPILy8nJERETg9ttvx2uvvSbxOyAiW8b7KeoMmeBIh+TAoqKi8Nxzz+G5556TOhQioiZYRxERERF1Du+n7B+78hERERERERERkSSYmCIiIiIiIiIiIkmwKx8REREREREREUmCLaaIiIiIiIiIiEgSTEwREREREREREZEkmJgiIiIiIiIiIiJJMDFFRERERERERESSYGKKiIiIiIiIiIgkwcQUERERERERERFJgokpIiIiIiIiIiKSBBNTREREREREREQkCSamiIiIiIiIiIhIEv8fW8lNnnK2uk8AAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots(1, 4, figsize=(12, 4))\n", + "ax[0].plot(target_signal)\n", + "ax[0].set_title(\"Target\")\n", + "ax[0].set_xlabel(\"Sample\")\n", + "ax[0].set_ylabel(\"Amplitude\")\n", + "ax[1].plot(data_matrix)\n", + "ax[1].set_title(\"Target + Noise\")\n", + "ax[1].set_ylabel(\"Amplitude\")\n", + "ax[1].set_xlabel(\"Sample\")\n", + "ax[2].plot(variance, \"o-k\")\n", + "ax[2].set_xlabel(\"SC\")\n", + "ax[2].set_ylabel(\"Variance\")\n", + "ax[3].plot(x_recovered)\n", + "ax[3].set_title(\"Recovered\")\n", + "ax[3].set_ylabel(\"Amplitude\")\n", + "ax[3].set_xlabel(\"Sample\")\n", + "plt.tight_layout()\n", + "plt.show()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.6" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/examples/example_mcca_2.py b/examples/example_mcca_2.py new file mode 100644 index 00000000..696c766e --- /dev/null +++ b/examples/example_mcca_2.py @@ -0,0 +1,113 @@ +""" +mCCA example: Sinusoidal target in separable noise +================================================== + +Reproduced from de Cheveigné et al. (2018). + +Synthetic data for this example consisted of 10 data matrices, each of +dimensions 10000 samples x 10 channels. Each was obtained by multiplying 9 +Gaussian noise time series (independent and uncorrelated) by a 9 x 10 mixing +matrix with random Gaussian coefficients. To this background of noise was added +a "target" consisting of a sinusoidal time series multiplied by a 1 x 10 mixing +matrix with random coefficients. The target was the same for all data matrices, +but the mixing matrices differed, as were the noise matrices. The SNR was set +to 10−20, i.e. a very unfavorable SNR. The noise is of rank 9 and the signal of +rank 1, so signal and noise are in principle linearly separable. + +Uses meegkit.cca.mmca() + +""" +import matplotlib.pyplot as plt +import numpy as np + +from meegkit import cca + +# Set the seed for the random number generator for reproducibility +rng = np.random.default_rng(5) + +############################################################################### +# Generate toy data +# ----------------------------------------------------------------------------- +# Constants +num_matrices = 10 +num_samples = 10000 +num_channels = 10 +noise_rank = 9 +signal_rank = 1 +unfavorable_SNR_dB = -20 # SNR in decibels + +# Generate noise matrices and mixing matrices +noise_matrices = [rng.normal(size=(num_samples, noise_rank)) + for _ in range(num_matrices)] +mixing_matrices = [rng.normal(size=(noise_rank, num_channels)) + for _ in range(num_matrices)] + +# Generate sinusoidal target +t = np.linspace(0, 1, num_samples) +target_signal = np.sin(2 * np.pi * t) # 1 Hz sinusoidal signal + +# Generate signal mixing matrix +signal_mixing_matrix = rng.normal(size=(signal_rank, num_channels)) + +# Prepare data matrices +data_matrices = [] +for i in range(num_matrices): + # Create noise for current data matrix + noise = np.matmul(noise_matrices[i], mixing_matrices[i]) + + # Create signal for current data matrix + signal = np.matmul(target_signal.reshape(-1, 1), signal_mixing_matrix) + + # Adjust the power of signal to achieve the desired SNR + noise_power = np.mean(noise**2) + signal_power = 10**(unfavorable_SNR_dB / 10) * noise_power + signal = np.sqrt(signal_power / np.mean(signal**2)) * signal + + # Add signal and noise + data_matrix = signal + noise + + data_matrices.append(data_matrix) + +# Concatenate data matrices +x = np.concatenate(data_matrices, axis=-1) + +############################################################################### +# Use mCCA to recover signal in noise +# ----------------------------------------------------------------------------- + +# Compute Covariance matrix +C = np.dot(x.T, x) + +# Compute mCCA from covariance +A, score, AA = cca.mcca(C, 10) + +# Compute the recovered signal using first SC +x_recovered = x.dot(A)[:, 0] + +# Normalize the recovered signal +x_recovered = x_recovered / x_recovered.std() + +# Compute variance across SCs +variance = np.var(x.dot(A), axis=0) + +############################################################################### +# Plot the results +# ----------------------------------------------------------------------------- +fig, ax = plt.subplots(1, 4, figsize=(12, 4)) +ax[0].plot(target_signal) +ax[0].set_title("Target") +ax[0].set_xlabel("Sample") +ax[0].set_ylabel("Amplitude") +ax[1].plot(data_matrix) +ax[1].set_title("Target + Noise") +ax[1].set_ylabel("Amplitude") +ax[1].set_xlabel("Sample") +ax[2].plot(variance, "o-k") +ax[2].set_xlabel("SC") +ax[2].set_ylabel("Variance") +ax[3].plot(x_recovered) +ax[3].set_title("Recovered") +ax[3].set_ylabel("Amplitude") +ax[3].set_xlabel("Sample") +plt.tight_layout() +plt.show() diff --git a/examples/example_ress.ipynb b/examples/example_ress.ipynb index 227be3cd..5e11c08b 100644 --- a/examples/example_ress.ipynb +++ b/examples/example_ress.ipynb @@ -6,10 +6,10 @@ "metadata": { "collapsed": false, "execution": { - "iopub.execute_input": "2023-05-11T09:18:45.537090Z", - "iopub.status.busy": "2023-05-11T09:18:45.536959Z", - "iopub.status.idle": "2023-05-11T09:18:45.847738Z", - "shell.execute_reply": "2023-05-11T09:18:45.847323Z" + "iopub.execute_input": "2023-06-12T07:30:31.146658Z", + "iopub.status.busy": "2023-06-12T07:30:31.146502Z", + "iopub.status.idle": "2023-06-12T07:30:31.470818Z", + "shell.execute_reply": "2023-06-12T07:30:31.470501Z" } }, "outputs": [], @@ -37,10 +37,10 @@ "metadata": { "collapsed": false, "execution": { - "iopub.execute_input": "2023-05-11T09:18:45.850708Z", - "iopub.status.busy": "2023-05-11T09:18:45.850539Z", - "iopub.status.idle": "2023-05-11T09:18:46.816387Z", - "shell.execute_reply": "2023-05-11T09:18:46.815997Z" + "iopub.execute_input": "2023-06-12T07:30:31.473009Z", + "iopub.status.busy": "2023-06-12T07:30:31.472851Z", + "iopub.status.idle": "2023-06-12T07:30:32.423303Z", + "shell.execute_reply": "2023-06-12T07:30:32.422922Z" } }, "outputs": [], @@ -72,17 +72,17 @@ "metadata": { "collapsed": false, "execution": { - "iopub.execute_input": "2023-05-11T09:18:46.818725Z", - "iopub.status.busy": "2023-05-11T09:18:46.818565Z", - "iopub.status.idle": "2023-05-11T09:18:47.183158Z", - "shell.execute_reply": "2023-05-11T09:18:47.182828Z" + "iopub.execute_input": "2023-06-12T07:30:32.425508Z", + "iopub.status.busy": "2023-06-12T07:30:32.425310Z", + "iopub.status.idle": "2023-06-12T07:30:32.804600Z", + "shell.execute_reply": "2023-06-12T07:30:32.804215Z" } }, "outputs": [ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 3, @@ -154,10 +154,10 @@ "metadata": { "collapsed": false, "execution": { - "iopub.execute_input": "2023-05-11T09:18:47.185190Z", - "iopub.status.busy": "2023-05-11T09:18:47.185076Z", - "iopub.status.idle": "2023-05-11T09:18:47.287122Z", - "shell.execute_reply": "2023-05-11T09:18:47.286607Z" + "iopub.execute_input": "2023-06-12T07:30:32.807278Z", + "iopub.status.busy": "2023-06-12T07:30:32.807125Z", + "iopub.status.idle": "2023-06-12T07:30:32.912144Z", + "shell.execute_reply": "2023-06-12T07:30:32.911820Z" } }, "outputs": [ @@ -219,10 +219,10 @@ "metadata": { "collapsed": false, "execution": { - "iopub.execute_input": "2023-05-11T09:18:47.289673Z", - "iopub.status.busy": "2023-05-11T09:18:47.289435Z", - "iopub.status.idle": "2023-05-11T09:18:47.812541Z", - "shell.execute_reply": "2023-05-11T09:18:47.811995Z" + "iopub.execute_input": "2023-06-12T07:30:32.914047Z", + "iopub.status.busy": "2023-06-12T07:30:32.913919Z", + "iopub.status.idle": "2023-06-12T07:30:33.384618Z", + "shell.execute_reply": "2023-06-12T07:30:33.384284Z" } }, "outputs": [ diff --git a/examples/example_star.ipynb b/examples/example_star.ipynb index 6bb612f0..0d814412 100644 --- a/examples/example_star.ipynb +++ b/examples/example_star.ipynb @@ -6,10 +6,10 @@ "metadata": { "collapsed": false, "execution": { - "iopub.execute_input": "2023-05-11T09:19:07.690921Z", - "iopub.status.busy": "2023-05-11T09:19:07.690652Z", - "iopub.status.idle": "2023-05-11T09:19:08.099730Z", - "shell.execute_reply": "2023-05-11T09:19:08.098650Z" + "iopub.execute_input": "2023-06-12T07:30:57.401848Z", + "iopub.status.busy": "2023-06-12T07:30:57.400306Z", + "iopub.status.idle": "2023-06-12T07:30:57.689618Z", + "shell.execute_reply": "2023-06-12T07:30:57.689170Z" } }, "outputs": [], @@ -34,10 +34,10 @@ "metadata": { "collapsed": false, "execution": { - "iopub.execute_input": "2023-05-11T09:19:08.103338Z", - "iopub.status.busy": "2023-05-11T09:19:08.103095Z", - "iopub.status.idle": "2023-05-11T09:19:09.131645Z", - "shell.execute_reply": "2023-05-11T09:19:09.131247Z" + "iopub.execute_input": "2023-06-12T07:30:57.691921Z", + "iopub.status.busy": "2023-06-12T07:30:57.691754Z", + "iopub.status.idle": "2023-06-12T07:30:58.680274Z", + "shell.execute_reply": "2023-06-12T07:30:58.679780Z" } }, "outputs": [], @@ -67,10 +67,10 @@ "metadata": { "collapsed": false, "execution": { - "iopub.execute_input": "2023-05-11T09:19:09.134613Z", - "iopub.status.busy": "2023-05-11T09:19:09.134404Z", - "iopub.status.idle": "2023-05-11T09:19:09.138357Z", - "shell.execute_reply": "2023-05-11T09:19:09.137951Z" + "iopub.execute_input": "2023-06-12T07:30:58.682905Z", + "iopub.status.busy": "2023-06-12T07:30:58.682667Z", + "iopub.status.idle": "2023-06-12T07:30:58.687020Z", + "shell.execute_reply": "2023-06-12T07:30:58.686669Z" } }, "outputs": [], @@ -114,10 +114,10 @@ "metadata": { "collapsed": false, "execution": { - "iopub.execute_input": "2023-05-11T09:19:09.140466Z", - "iopub.status.busy": "2023-05-11T09:19:09.140315Z", - "iopub.status.idle": "2023-05-11T09:19:09.155584Z", - "shell.execute_reply": "2023-05-11T09:19:09.155082Z" + "iopub.execute_input": "2023-06-12T07:30:58.689500Z", + "iopub.status.busy": "2023-06-12T07:30:58.689322Z", + "iopub.status.idle": "2023-06-12T07:30:58.702109Z", + "shell.execute_reply": "2023-06-12T07:30:58.701774Z" } }, "outputs": [ @@ -154,10 +154,10 @@ "metadata": { "collapsed": false, "execution": { - "iopub.execute_input": "2023-05-11T09:19:09.157893Z", - "iopub.status.busy": "2023-05-11T09:19:09.157751Z", - "iopub.status.idle": "2023-05-11T09:19:09.445154Z", - "shell.execute_reply": "2023-05-11T09:19:09.444740Z" + "iopub.execute_input": "2023-06-12T07:30:58.704027Z", + "iopub.status.busy": "2023-06-12T07:30:58.703891Z", + "iopub.status.idle": "2023-06-12T07:30:58.969383Z", + "shell.execute_reply": "2023-06-12T07:30:58.968962Z" } }, "outputs": [ diff --git a/examples/example_star_dss.ipynb b/examples/example_star_dss.ipynb index 8740b958..53d8aaf6 100644 --- a/examples/example_star_dss.ipynb +++ b/examples/example_star_dss.ipynb @@ -6,10 +6,10 @@ "metadata": { "collapsed": false, "execution": { - "iopub.execute_input": "2023-05-11T09:18:59.359670Z", - "iopub.status.busy": "2023-05-11T09:18:59.359514Z", - "iopub.status.idle": "2023-05-11T09:18:59.678204Z", - "shell.execute_reply": "2023-05-11T09:18:59.677848Z" + "iopub.execute_input": "2023-06-12T07:30:44.902668Z", + "iopub.status.busy": "2023-06-12T07:30:44.902522Z", + "iopub.status.idle": "2023-06-12T07:30:45.181341Z", + "shell.execute_reply": "2023-06-12T07:30:45.180590Z" } }, "outputs": [], @@ -41,10 +41,10 @@ "metadata": { "collapsed": false, "execution": { - "iopub.execute_input": "2023-05-11T09:18:59.680439Z", - "iopub.status.busy": "2023-05-11T09:18:59.680272Z", - "iopub.status.idle": "2023-05-11T09:19:00.629037Z", - "shell.execute_reply": "2023-05-11T09:19:00.628682Z" + "iopub.execute_input": "2023-06-12T07:30:45.183867Z", + "iopub.status.busy": "2023-06-12T07:30:45.183677Z", + "iopub.status.idle": "2023-06-12T07:30:46.156686Z", + "shell.execute_reply": "2023-06-12T07:30:46.156280Z" } }, "outputs": [], @@ -77,10 +77,10 @@ "metadata": { "collapsed": false, "execution": { - "iopub.execute_input": "2023-05-11T09:19:00.631283Z", - "iopub.status.busy": "2023-05-11T09:19:00.631158Z", - "iopub.status.idle": "2023-05-11T09:19:00.636200Z", - "shell.execute_reply": "2023-05-11T09:19:00.635859Z" + "iopub.execute_input": "2023-06-12T07:30:46.159017Z", + "iopub.status.busy": "2023-06-12T07:30:46.158817Z", + "iopub.status.idle": "2023-06-12T07:30:46.163992Z", + "shell.execute_reply": "2023-06-12T07:30:46.163675Z" } }, "outputs": [], @@ -135,10 +135,10 @@ "metadata": { "collapsed": false, "execution": { - "iopub.execute_input": "2023-05-11T09:19:00.638129Z", - "iopub.status.busy": "2023-05-11T09:19:00.637970Z", - "iopub.status.idle": "2023-05-11T09:19:00.651068Z", - "shell.execute_reply": "2023-05-11T09:19:00.650720Z" + "iopub.execute_input": "2023-06-12T07:30:46.165866Z", + "iopub.status.busy": "2023-06-12T07:30:46.165748Z", + "iopub.status.idle": "2023-06-12T07:30:46.178321Z", + "shell.execute_reply": "2023-06-12T07:30:46.177993Z" } }, "outputs": [ @@ -175,10 +175,10 @@ "metadata": { "collapsed": false, "execution": { - "iopub.execute_input": "2023-05-11T09:19:00.653041Z", - "iopub.status.busy": "2023-05-11T09:19:00.652921Z", - "iopub.status.idle": "2023-05-11T09:19:00.657103Z", - "shell.execute_reply": "2023-05-11T09:19:00.656797Z" + "iopub.execute_input": "2023-06-12T07:30:46.180262Z", + "iopub.status.busy": "2023-06-12T07:30:46.180095Z", + "iopub.status.idle": "2023-06-12T07:30:46.185174Z", + "shell.execute_reply": "2023-06-12T07:30:46.184894Z" } }, "outputs": [], @@ -204,10 +204,10 @@ "metadata": { "collapsed": false, "execution": { - "iopub.execute_input": "2023-05-11T09:19:00.661814Z", - "iopub.status.busy": "2023-05-11T09:19:00.661649Z", - "iopub.status.idle": "2023-05-11T09:19:00.665687Z", - "shell.execute_reply": "2023-05-11T09:19:00.665404Z" + "iopub.execute_input": "2023-06-12T07:30:46.187037Z", + "iopub.status.busy": "2023-06-12T07:30:46.186945Z", + "iopub.status.idle": "2023-06-12T07:30:46.190735Z", + "shell.execute_reply": "2023-06-12T07:30:46.190435Z" } }, "outputs": [], @@ -232,10 +232,10 @@ "metadata": { "collapsed": false, "execution": { - "iopub.execute_input": "2023-05-11T09:19:00.667650Z", - "iopub.status.busy": "2023-05-11T09:19:00.667522Z", - "iopub.status.idle": "2023-05-11T09:19:01.034238Z", - "shell.execute_reply": "2023-05-11T09:19:01.033700Z" + "iopub.execute_input": "2023-06-12T07:30:46.192440Z", + "iopub.status.busy": "2023-06-12T07:30:46.192333Z", + "iopub.status.idle": "2023-06-12T07:30:46.556903Z", + "shell.execute_reply": "2023-06-12T07:30:46.556552Z" } }, "outputs": [ diff --git a/examples/example_trca.ipynb b/examples/example_trca.ipynb index 8fdc51dd..344dacdb 100644 --- a/examples/example_trca.ipynb +++ b/examples/example_trca.ipynb @@ -6,10 +6,10 @@ "metadata": { "collapsed": false, "execution": { - "iopub.execute_input": "2023-05-11T09:19:10.402060Z", - "iopub.status.busy": "2023-05-11T09:19:10.401908Z", - "iopub.status.idle": "2023-05-11T09:19:10.717107Z", - "shell.execute_reply": "2023-05-11T09:19:10.716778Z" + "iopub.execute_input": "2023-06-12T07:31:00.133822Z", + "iopub.status.busy": "2023-06-12T07:31:00.133436Z", + "iopub.status.idle": "2023-06-12T07:31:00.425668Z", + "shell.execute_reply": "2023-06-12T07:31:00.424495Z" } }, "outputs": [], @@ -52,10 +52,10 @@ "metadata": { "collapsed": false, "execution": { - "iopub.execute_input": "2023-05-11T09:19:10.720417Z", - "iopub.status.busy": "2023-05-11T09:19:10.720209Z", - "iopub.status.idle": "2023-05-11T09:19:11.713046Z", - "shell.execute_reply": "2023-05-11T09:19:11.712573Z" + "iopub.execute_input": "2023-06-12T07:31:00.430365Z", + "iopub.status.busy": "2023-06-12T07:31:00.430188Z", + "iopub.status.idle": "2023-06-12T07:31:01.400476Z", + "shell.execute_reply": "2023-06-12T07:31:01.400136Z" } }, "outputs": [], @@ -89,10 +89,10 @@ "metadata": { "collapsed": false, "execution": { - "iopub.execute_input": "2023-05-11T09:19:11.716988Z", - "iopub.status.busy": "2023-05-11T09:19:11.716750Z", - "iopub.status.idle": "2023-05-11T09:19:11.720779Z", - "shell.execute_reply": "2023-05-11T09:19:11.720144Z" + "iopub.execute_input": "2023-06-12T07:31:01.402645Z", + "iopub.status.busy": "2023-06-12T07:31:01.402442Z", + "iopub.status.idle": "2023-06-12T07:31:01.405425Z", + "shell.execute_reply": "2023-06-12T07:31:01.405150Z" } }, "outputs": [], @@ -133,10 +133,10 @@ "metadata": { "collapsed": false, "execution": { - "iopub.execute_input": "2023-05-11T09:19:11.723444Z", - "iopub.status.busy": "2023-05-11T09:19:11.723203Z", - "iopub.status.idle": "2023-05-11T09:19:11.830561Z", - "shell.execute_reply": "2023-05-11T09:19:11.830130Z" + "iopub.execute_input": "2023-06-12T07:31:01.407479Z", + "iopub.status.busy": "2023-06-12T07:31:01.407304Z", + "iopub.status.idle": "2023-06-12T07:31:01.514788Z", + "shell.execute_reply": "2023-06-12T07:31:01.514380Z" } }, "outputs": [], @@ -176,10 +176,10 @@ "metadata": { "collapsed": false, "execution": { - "iopub.execute_input": "2023-05-11T09:19:11.833176Z", - "iopub.status.busy": "2023-05-11T09:19:11.833022Z", - "iopub.status.idle": "2023-05-11T09:19:12.051286Z", - "shell.execute_reply": "2023-05-11T09:19:12.050909Z" + "iopub.execute_input": "2023-06-12T07:31:01.516929Z", + "iopub.status.busy": "2023-06-12T07:31:01.516807Z", + "iopub.status.idle": "2023-06-12T07:31:01.717448Z", + "shell.execute_reply": "2023-06-12T07:31:01.717062Z" } }, "outputs": [ @@ -243,10 +243,10 @@ "metadata": { "collapsed": false, "execution": { - "iopub.execute_input": "2023-05-11T09:19:12.053627Z", - "iopub.status.busy": "2023-05-11T09:19:12.053496Z", - "iopub.status.idle": "2023-05-11T09:19:21.237323Z", - "shell.execute_reply": "2023-05-11T09:19:21.235672Z" + "iopub.execute_input": "2023-06-12T07:31:01.719389Z", + "iopub.status.busy": "2023-06-12T07:31:01.719283Z", + "iopub.status.idle": "2023-06-12T07:31:09.975282Z", + "shell.execute_reply": "2023-06-12T07:31:09.974623Z" } }, "outputs": [ @@ -266,7 +266,7 @@ "Mean accuracy = 97.1%\t(95% CI: 97.0-97.1%)\n", "Mean ITR = 299.8\t(95% CI: 299.4-300.2)\n", "\n", - "Elapsed time: 9.5 seconds\n" + "Elapsed time: 8.6 seconds\n" ] } ],