diff --git a/A/A1_Load_Cellranger_Data.ipynb b/A/A1_Load_Cellranger_Data.ipynb index 61eb30d..38aa3ff 100644 --- a/A/A1_Load_Cellranger_Data.ipynb +++ b/A/A1_Load_Cellranger_Data.ipynb @@ -1056,52 +1056,6 @@ "##### For each library check out names of features / hashtags" ] }, - { - "cell_type": "code", - "execution_count": 37, - "id": "87f62c22-3c28-4d52-b267-cd29a06cc6e3", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Index(['1.1', '2.1', 'S3', '4.1', '5.1', '6.1', '7.1', '8.1', '9.1', '10.1'], dtype='object')\n", - "Index(['12.1', '13.1', '14.1', '15.1', '16.1', '17.1', '18.1', '19.1'], dtype='object')\n", - "Index(['21.1', '22.1', '23.1', '25.1', '26.1', '27.1', '6.1'], dtype='object')\n", - "Index(['S1', '2.2', '3.2', '4.2', 'S5', '6.2', 'S7', '8.2', '9.2', '10.2'], dtype='object')\n", - "Index(['11.2', '12.2', '13.2', '14.2', '15.2', '16.2', '7.2', '18.2', '19.2',\n", - " '20.2'],\n", - " dtype='object')\n", - "Index(['21.2', '22.2', '23.2', '24.2', '25.2', '26.2', '27.2', '28.2', 'S9',\n", - " '13.2'],\n", - " dtype='object')\n", - "Index(['11.3', '2.3', '3.3', '4.3', '5.3', '6.3', '7.3', '8.3', '9.3', 'S10'], dtype='object')\n", - "Index(['13.3', '15.3', '18.3', '19.3', '20.3', '21.3', '22.3', '23.3', '24.3',\n", - " '25.3'],\n", - " dtype='object')\n", - "Index(['26.3', '27.3', '28.3', '26', '28', '33', '34', '10.3', 'S9', 'S10'], dtype='object')\n", - "Index(['2.4', '3.4', 'S3', '5.4', '6.4', '7.4', '8.4', '11.4', '13.4', '15.4'], dtype='object')\n", - "Index(['Ch-CCS-2', 'Ch-CCS-4', 'Ch-CCS-5', 'Ch-CCS-7', 'Ch-CCS-8', 'Ch-CCS-10',\n", - " 'Ch-CCS-14', 'Ch-CCS-15', 'Ch-CCS-16', 'Ch-CCS-21'],\n", - " dtype='object')\n", - "Index(['Ch-CCS-22', 'Ch-CCS-23', 'Ch-CCS-27', 'Ch-CCS-29', 'Ch-CCS-30',\n", - " 'Ch-CCS-32', 'C-CCS-17', 'C-CCS-19', 'C-CCS-24', 'C-CCS-25'],\n", - " dtype='object')\n", - "Index(['No-CCS-1', 'No-CCS-3', 'No-CCS-6', 'No-CCS-9', 'No-CCS-11',\n", - " 'No-CCS-12', 'No-CCS-13', 'No-CCS-18', 'No-CCS-20', 'No-CCS-31'],\n", - " dtype='object')\n", - "Index(['20.4', '21.4', '22.4', '23.4', '24.4', '26.4', '28.4', '4.4', '6.4',\n", - " 'S10'],\n", - " dtype='object')\n" - ] - } - ], - "source": [ - "for key in protein_dict:\n", - " print(protein_dict[key].var_names)" - ] - }, { "cell_type": "code", "execution_count": 38, diff --git a/B/.ipynb_checkpoints/B3_Combine_Concat_Scanorama-checkpoint.ipynb b/B/.ipynb_checkpoints/B3_Combine_Concat_Scanorama-checkpoint.ipynb index f30eea2..c84ef4f 100644 --- a/B/.ipynb_checkpoints/B3_Combine_Concat_Scanorama-checkpoint.ipynb +++ b/B/.ipynb_checkpoints/B3_Combine_Concat_Scanorama-checkpoint.ipynb @@ -590,221 +590,6 @@ "library_sample_group_mapping['sample'] = library_sample_group_mapping['sample'].str.replace('(\\.0)', '')" ] }, - { - "cell_type": "code", - "execution_count": 114, - "id": "67085051-9610-481e-b5cd-84e1bb8b1d21", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
library.hashtagagesexmclassificationgroupmeasurementsamplelibrary
0<NA>55fK1vollstaendiger_ausschlussno_ccsTP01<NA>
11.262mM2acs_w_o_infectionacsTP12.1L1
21.476mM4acs_w_o_infectionacsTP14.1L1
33.950mM6acs_w_o_infectionacsTP16.1L3
41.766mM7acs_w_o_infectionacsTP17.1L1
..............................
11712.958mK24koronarskleroseno_ccsTP024L12
11812.166mK25koronarskleroseno_ccsTP025L12
1199.464mK26koronarskleroseno_ccsTP026L9
1209.676fK33koronarskleroseno_ccsTP033L9
1219.766mK34koronarskleroseno_ccsTP034L9
\n", - "

122 rows × 9 columns

\n", - "
" - ], - "text/plain": [ - " library.hashtag age sex m classification group \\\n", - "0 55 f K1 vollstaendiger_ausschluss no_ccs \n", - "1 1.2 62 m M2 acs_w_o_infection acs \n", - "2 1.4 76 m M4 acs_w_o_infection acs \n", - "3 3.9 50 m M6 acs_w_o_infection acs \n", - "4 1.7 66 m M7 acs_w_o_infection acs \n", - ".. ... ... .. ... ... ... \n", - "117 12.9 58 m K24 koronarsklerose no_ccs \n", - "118 12.1 66 m K25 koronarsklerose no_ccs \n", - "119 9.4 64 m K26 koronarsklerose no_ccs \n", - "120 9.6 76 f K33 koronarsklerose no_ccs \n", - "121 9.7 66 m K34 koronarsklerose no_ccs \n", - "\n", - " measurement sample library \n", - "0 TP0 1 \n", - "1 TP1 2.1 L1 \n", - "2 TP1 4.1 L1 \n", - "3 TP1 6.1 L3 \n", - "4 TP1 7.1 L1 \n", - ".. ... ... ... \n", - "117 TP0 24 L12 \n", - "118 TP0 25 L12 \n", - "119 TP0 26 L9 \n", - "120 TP0 33 L9 \n", - "121 TP0 34 L9 \n", - "\n", - "[122 rows x 9 columns]" - ] - }, - "execution_count": 114, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "library_sample_group_mapping" - ] - }, { "cell_type": "markdown", "id": "c41338a4-1d48-48ea-98bd-8c52d2bb7358", @@ -833,197 +618,6 @@ "print('Last modified' + time.ctime(os.path.getmtime(dataset_path)))" ] }, - { - "cell_type": "code", - "execution_count": 116, - "id": "780f0cec-8bb8-4c23-af65-e249fa75607d", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Unnamed: 0library.hashtagmmeasurementdelta_ef_value_groupdelta_ef_valuesample
011.2M2 (1,15)TP1x_greater_11.152.1
121.4M4 (3,1)TP1x_greater_13.104.1
231.9M9 (14,3)TP1x_greater_114.309.1
342.5M15 (5,2)TP1x_greater_15.2015.1
452.9M19 (1,15)TP1x_greater_11.1519.1
........................
9394-M12TP3NaNNaN12.3
9495-M16TP3NaNNaN16.3
959610.8M11TP4NaNNaN11.4
9697-M12TP4NaNNaN12.4
9798-M16TP4NaNNaN16.4
\n", - "

98 rows × 7 columns

\n", - "
" - ], - "text/plain": [ - " Unnamed: 0 library.hashtag m measurement delta_ef_value_group \\\n", - "0 1 1.2 M2 (1,15) TP1 x_greater_1 \n", - "1 2 1.4 M4 (3,1) TP1 x_greater_1 \n", - "2 3 1.9 M9 (14,3) TP1 x_greater_1 \n", - "3 4 2.5 M15 (5,2) TP1 x_greater_1 \n", - "4 5 2.9 M19 (1,15) TP1 x_greater_1 \n", - ".. ... ... ... ... ... \n", - "93 94 - M12 TP3 NaN \n", - "94 95 - M16 TP3 NaN \n", - "95 96 10.8 M11 TP4 NaN \n", - "96 97 - M12 TP4 NaN \n", - "97 98 - M16 TP4 NaN \n", - "\n", - " delta_ef_value sample \n", - "0 1.15 2.1 \n", - "1 3.10 4.1 \n", - "2 14.30 9.1 \n", - "3 5.20 15.1 \n", - "4 1.15 19.1 \n", - ".. ... ... \n", - "93 NaN 12.3 \n", - "94 NaN 16.3 \n", - "95 NaN 11.4 \n", - "96 NaN 12.4 \n", - "97 NaN 16.4 \n", - "\n", - "[98 rows x 7 columns]" - ] - }, - "execution_count": 116, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "library_sample_ef_mapping" - ] - }, { "cell_type": "code", "execution_count": 117, diff --git a/B/B3_Combine_Concat_Scanorama.ipynb b/B/B3_Combine_Concat_Scanorama.ipynb index f30eea2..c84ef4f 100644 --- a/B/B3_Combine_Concat_Scanorama.ipynb +++ b/B/B3_Combine_Concat_Scanorama.ipynb @@ -590,221 +590,6 @@ "library_sample_group_mapping['sample'] = library_sample_group_mapping['sample'].str.replace('(\\.0)', '')" ] }, - { - "cell_type": "code", - "execution_count": 114, - "id": "67085051-9610-481e-b5cd-84e1bb8b1d21", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
library.hashtagagesexmclassificationgroupmeasurementsamplelibrary
0<NA>55fK1vollstaendiger_ausschlussno_ccsTP01<NA>
11.262mM2acs_w_o_infectionacsTP12.1L1
21.476mM4acs_w_o_infectionacsTP14.1L1
33.950mM6acs_w_o_infectionacsTP16.1L3
41.766mM7acs_w_o_infectionacsTP17.1L1
..............................
11712.958mK24koronarskleroseno_ccsTP024L12
11812.166mK25koronarskleroseno_ccsTP025L12
1199.464mK26koronarskleroseno_ccsTP026L9
1209.676fK33koronarskleroseno_ccsTP033L9
1219.766mK34koronarskleroseno_ccsTP034L9
\n", - "

122 rows × 9 columns

\n", - "
" - ], - "text/plain": [ - " library.hashtag age sex m classification group \\\n", - "0 55 f K1 vollstaendiger_ausschluss no_ccs \n", - "1 1.2 62 m M2 acs_w_o_infection acs \n", - "2 1.4 76 m M4 acs_w_o_infection acs \n", - "3 3.9 50 m M6 acs_w_o_infection acs \n", - "4 1.7 66 m M7 acs_w_o_infection acs \n", - ".. ... ... .. ... ... ... \n", - "117 12.9 58 m K24 koronarsklerose no_ccs \n", - "118 12.1 66 m K25 koronarsklerose no_ccs \n", - "119 9.4 64 m K26 koronarsklerose no_ccs \n", - "120 9.6 76 f K33 koronarsklerose no_ccs \n", - "121 9.7 66 m K34 koronarsklerose no_ccs \n", - "\n", - " measurement sample library \n", - "0 TP0 1 \n", - "1 TP1 2.1 L1 \n", - "2 TP1 4.1 L1 \n", - "3 TP1 6.1 L3 \n", - "4 TP1 7.1 L1 \n", - ".. ... ... ... \n", - "117 TP0 24 L12 \n", - "118 TP0 25 L12 \n", - "119 TP0 26 L9 \n", - "120 TP0 33 L9 \n", - "121 TP0 34 L9 \n", - "\n", - "[122 rows x 9 columns]" - ] - }, - "execution_count": 114, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "library_sample_group_mapping" - ] - }, { "cell_type": "markdown", "id": "c41338a4-1d48-48ea-98bd-8c52d2bb7358", @@ -833,197 +618,6 @@ "print('Last modified' + time.ctime(os.path.getmtime(dataset_path)))" ] }, - { - "cell_type": "code", - "execution_count": 116, - "id": "780f0cec-8bb8-4c23-af65-e249fa75607d", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Unnamed: 0library.hashtagmmeasurementdelta_ef_value_groupdelta_ef_valuesample
011.2M2 (1,15)TP1x_greater_11.152.1
121.4M4 (3,1)TP1x_greater_13.104.1
231.9M9 (14,3)TP1x_greater_114.309.1
342.5M15 (5,2)TP1x_greater_15.2015.1
452.9M19 (1,15)TP1x_greater_11.1519.1
........................
9394-M12TP3NaNNaN12.3
9495-M16TP3NaNNaN16.3
959610.8M11TP4NaNNaN11.4
9697-M12TP4NaNNaN12.4
9798-M16TP4NaNNaN16.4
\n", - "

98 rows × 7 columns

\n", - "
" - ], - "text/plain": [ - " Unnamed: 0 library.hashtag m measurement delta_ef_value_group \\\n", - "0 1 1.2 M2 (1,15) TP1 x_greater_1 \n", - "1 2 1.4 M4 (3,1) TP1 x_greater_1 \n", - "2 3 1.9 M9 (14,3) TP1 x_greater_1 \n", - "3 4 2.5 M15 (5,2) TP1 x_greater_1 \n", - "4 5 2.9 M19 (1,15) TP1 x_greater_1 \n", - ".. ... ... ... ... ... \n", - "93 94 - M12 TP3 NaN \n", - "94 95 - M16 TP3 NaN \n", - "95 96 10.8 M11 TP4 NaN \n", - "96 97 - M12 TP4 NaN \n", - "97 98 - M16 TP4 NaN \n", - "\n", - " delta_ef_value sample \n", - "0 1.15 2.1 \n", - "1 3.10 4.1 \n", - "2 14.30 9.1 \n", - "3 5.20 15.1 \n", - "4 1.15 19.1 \n", - ".. ... ... \n", - "93 NaN 12.3 \n", - "94 NaN 16.3 \n", - "95 NaN 11.4 \n", - "96 NaN 12.4 \n", - "97 NaN 16.4 \n", - "\n", - "[98 rows x 7 columns]" - ] - }, - "execution_count": 116, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "library_sample_ef_mapping" - ] - }, { "cell_type": "code", "execution_count": 117, diff --git a/B/B4_Distribution_Analysis_Comparisons.ipynb b/B/B4_Distribution_Analysis_Comparisons.ipynb index 733d250..cdb7298 100644 --- a/B/B4_Distribution_Analysis_Comparisons.ipynb +++ b/B/B4_Distribution_Analysis_Comparisons.ipynb @@ -2444,325 +2444,6 @@ "unique(data_for_analysis[,c('m_x', 'group_y')]) %>% group_by(group_y) %>% count()" ] }, - { - "cell_type": "code", - "execution_count": 90, - "id": "0845cd81-92c8-4014-b3ad-f5174d078a97", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "
A grouped_df: 6 × 2
classificationn
<chr><int>
acs_subacute 4
acs_w_infection 5
acs_w_o_infection 19
ccs 16
koronarsklerose 7
vollstaendiger_ausschluss10
\n" - ], - "text/latex": [ - "A grouped\\_df: 6 × 2\n", - "\\begin{tabular}{ll}\n", - " classification & n\\\\\n", - " & \\\\\n", - "\\hline\n", - "\t acs\\_subacute & 4\\\\\n", - "\t acs\\_w\\_infection & 5\\\\\n", - "\t acs\\_w\\_o\\_infection & 19\\\\\n", - "\t ccs & 16\\\\\n", - "\t koronarsklerose & 7\\\\\n", - "\t vollstaendiger\\_ausschluss & 10\\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A grouped_df: 6 × 2\n", - "\n", - "| classification <chr> | n <int> |\n", - "|---|---|\n", - "| acs_subacute | 4 |\n", - "| acs_w_infection | 5 |\n", - "| acs_w_o_infection | 19 |\n", - "| ccs | 16 |\n", - "| koronarsklerose | 7 |\n", - "| vollstaendiger_ausschluss | 10 |\n", - "\n" - ], - "text/plain": [ - " classification n \n", - "1 acs_subacute 4\n", - "2 acs_w_infection 5\n", - "3 acs_w_o_infection 19\n", - "4 ccs 16\n", - "5 koronarsklerose 7\n", - "6 vollstaendiger_ausschluss 10" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "unique(data_for_analysis[,c('m_x', 'classification')]) %>% group_by(classification) %>% count()" - ] - }, - { - "cell_type": "code", - "execution_count": 91, - "id": "fa7e8d7d-0087-4cf6-a18b-69d28cbd3fca", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "
A grouped_df: 6 × 3
group_ymeasurement_xn
<chr><chr><int>
acs TP122
acs TP224
acs TP323
acs TP417
ccs TP016
no_ccsTP017
\n" - ], - "text/latex": [ - "A grouped\\_df: 6 × 3\n", - "\\begin{tabular}{lll}\n", - " group\\_y & measurement\\_x & n\\\\\n", - " & & \\\\\n", - "\\hline\n", - "\t acs & TP1 & 22\\\\\n", - "\t acs & TP2 & 24\\\\\n", - "\t acs & TP3 & 23\\\\\n", - "\t acs & TP4 & 17\\\\\n", - "\t ccs & TP0 & 16\\\\\n", - "\t no\\_ccs & TP0 & 17\\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A grouped_df: 6 × 3\n", - "\n", - "| group_y <chr> | measurement_x <chr> | n <int> |\n", - "|---|---|---|\n", - "| acs | TP1 | 22 |\n", - "| acs | TP2 | 24 |\n", - "| acs | TP3 | 23 |\n", - "| acs | TP4 | 17 |\n", - "| ccs | TP0 | 16 |\n", - "| no_ccs | TP0 | 17 |\n", - "\n" - ], - "text/plain": [ - " group_y measurement_x n \n", - "1 acs TP1 22\n", - "2 acs TP2 24\n", - "3 acs TP3 23\n", - "4 acs TP4 17\n", - "5 ccs TP0 16\n", - "6 no_ccs TP0 17" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "unique(data_for_analysis[,c('m_x', 'group_y', 'measurement_x')]) %>% group_by(group_y, measurement_x) %>% count()" - ] - }, - { - "cell_type": "code", - "execution_count": 92, - "id": "2df9277a-f3d4-4596-9241-4aea69bbc2d1", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "61.1475409836066" - ], - "text/latex": [ - "61.1475409836066" - ], - "text/markdown": [ - "61.1475409836066" - ], - "text/plain": [ - "[1] 61.14754" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "mean(unique(data_for_analysis[,c('m_x','age')])$age) # Average Age" - ] - }, - { - "cell_type": "code", - "execution_count": 93, - "id": "bf31fb81-8e5a-40e6-b44d-914ce550988b", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "31" - ], - "text/latex": [ - "31" - ], - "text/markdown": [ - "31" - ], - "text/plain": [ - "[1] 31" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "min(unique(data_for_analysis[,c('m_x','age')])$age) # Minimum Age" - ] - }, - { - "cell_type": "code", - "execution_count": 94, - "id": "10b154fb-393f-49c2-847a-fb1e51f0198e", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "81" - ], - "text/latex": [ - "81" - ], - "text/markdown": [ - "81" - ], - "text/plain": [ - "[1] 81" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "max(unique(data_for_analysis[,c('m_x','age')])$age) # Maximum Age" - ] - }, - { - "cell_type": "code", - "execution_count": 95, - "id": "95471bdf-b98a-4ed0-bd0d-717c38b1e4ba", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAlgAAAJYCAMAAACJuGjuAAACjlBMVEUAAAABAQECAgIDAwME\nBAQFBQUGBgYHBwcICAgJCQkKCgoLCwsMDAwNDQ0ODg4PDw8QEBARERETExMUFBQVFRUWFhYX\nFxcYGBgZGRkaGhobGxscHBwdHR0eHh4gICAiIiIkJCQmJiYnJycoKCgpKSkqKiotLS0uLi4v\nLy8wMDAxMTEyMjIzMzM0NDQ2NjY3Nzc4ODg5OTk8PDw+Pj4/Pz9AQEBBQUFCQkJDQ0NERERF\nRUVGRkZHR0dISEhJSUlKSkpLS0tMTExNTU1OTk5PT09QUFBRUVFSUlJUVFRVVVVWVlZXV1dZ\nWVlaWlpbW1tcXFxdXV1fX19gYGBhYWFjY2NkZGRlZWVmZmZnZ2doaGhqampra2tsbGxtbW1u\nbm5vb29wcHBzc3N1dXV2dnZ3d3d4eHh5eXl6enp7e3t8fHx9fX2AgICBgYGCgoKDg4OEhISF\nhYWGhoaHh4eIiIiJiYmKioqLi4uMjIyNjY2Ojo6Pj4+RkZGSkpKUlJSXl5eYmJiampqenp6f\nn5+goKChoaGioqKjo6OkpKSmpqaoqKipqamqqqqrq6usrKyurq6vr6+wsLCysrKzs7O0tLS3\nt7e4uLi5ubm6urq7u7u8vLy9vb2+vr6/v7/AwMDBwcHCwsLDw8PExMTFxcXGxsbHx8fIyMjK\nysrLy8vMzMzNzc3Ozs7Pz8/Q0NDR0dHS0tLT09PU1NTV1dXW1tbY2NjZ2dnb29vc3Nzd3d3e\n3t7f39/g4ODh4eHi4uLj4+Pk5OTl5eXm5ubn5+fo6Ojp6enq6urr6+vs7Ozt7e3u7u7v7+/w\n8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn6+vr7+/v8/Pz9/f3+/v7///8XLocBAAAA\nCXBIWXMAABJ0AAASdAHeZh94AAASg0lEQVR4nO3d/3+W1X3H8ZObL2mrAo6AFBTYSrsm0MBq\nldJqdRSnyQJV2kBpV0OrBura1Notrt3WFgLoWtcQ13V1bnXVbRiVpltcrG4Dy0bBgRAHmFz/\nzUJukrDHzs4J5/A+V67rfj1/uDkP84FcwdcD7nyuO8RkgIDJ+wJQToQFCcKCBGFBgrAgQViQ\nICxIEBYkCAsShAUJwoIEYUGCsCBBWJAgLEgQFiQICxKEBQnCggRhQYKwIEFYkCAsSBAWJAgL\n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\nIEFYkCAsSPwPSIe5Wqalu00AAAAASUVORK5CYII=", - "text/plain": [ - "plot without title" - ] - }, - "metadata": { - "image/png": { - "height": 300, - "width": 300 - } - }, - "output_type": "display_data" - } - ], - "source": [ - "options(repr.plot.width=5, repr.plot.height=5)\n", - "boxplot(unique(data_for_analysis[,c('m_x','age')])$age) " - ] - }, - { - "cell_type": "code", - "execution_count": 96, - "id": "b9c9abd9-fddc-4825-afe3-0571ebdb43f4", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "
A grouped_df: 2 × 2
sexn
<chr><int>
f14
m47
\n" - ], - "text/latex": [ - "A grouped\\_df: 2 × 2\n", - "\\begin{tabular}{ll}\n", - " sex & n\\\\\n", - " & \\\\\n", - "\\hline\n", - "\t f & 14\\\\\n", - "\t m & 47\\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A grouped_df: 2 × 2\n", - "\n", - "| sex <chr> | n <int> |\n", - "|---|---|\n", - "| f | 14 |\n", - "| m | 47 |\n", - "\n" - ], - "text/plain": [ - " sex n \n", - "1 f 14\n", - "2 m 47" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "unique(data_for_analysis[,c('m_x', 'sex')]) %>% group_by(sex) %>% count() # 14 female, 47 male" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "2bd9ff5d-1417-4d16-8809-27dbacc7df88", - "metadata": {}, - "outputs": [], - "source": [] - }, { "cell_type": "markdown", "id": "064943a9-efe1-422d-b18b-95aff00b5e2d", diff --git a/E/E3_2_MOFA_w_o_clinical.ipynb b/E/E3_2_MOFA_w_o_clinical.ipynb index 92558ac..a79109e 100644 --- a/E/E3_2_MOFA_w_o_clinical.ipynb +++ b/E/E3_2_MOFA_w_o_clinical.ipynb @@ -4389,73 +4389,6 @@ "merged_data_long = melt(merged_data)" ] }, - { - "cell_type": "code", - "execution_count": 186, - "id": "39284ece-9de3-4d2e-96af-21f36b51d1e3", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "
A data.frame: 2 × 25
sample_idsamplemeasurementlibraryid.ynamereadpatternsequencefeature_typedelta_ef_value_groupdelta_ef_valuedelta_ef_value_classclassmeasurement2measurement_classdelta_ef_value_class_summarizedtp_outcomevariablevalue
<chr><chr><chr><chr><chr><chr><chr><chr><chr><chr><chr><chr><chr><chr><chr><chr><chr><chr><fct><dbl>
1k1 K1 TP0L13HTO_B0251No-CCS-1 R25PNNNNNNNNNN(BC)GTCAACTCTTTAGCGAntibody CaptureNANANAno_ccsTP0_no_ccsTP0_vollstaendiger_ausschlussNATP0_NAFactor10.2399255
2k10K10TP0L11HTO_B0256Ch-CCS-10R25PNNNNNNNNNN(BC)GGTTGCCAGATGTCAAntibody CaptureNANANAccs TP0_ccs TP0_ccs NATP0_NAFactor10.9120340
\n" - ], - "text/latex": [ - "A data.frame: 2 × 25\n", - "\\begin{tabular}{r|lllllllllllllllllllll}\n", - " & sample\\_id & sample & measurement & library & id.y & name & read & pattern & sequence & feature\\_type & ⋯ & delta\\_ef\\_value\\_group & delta\\_ef\\_value & delta\\_ef\\_value\\_class & class & measurement2 & measurement\\_class & delta\\_ef\\_value\\_class\\_summarized & tp\\_outcome & variable & value\\\\\n", - " & & & & & & & & & & & ⋯ & & & & & & & & & & \\\\\n", - "\\hline\n", - "\t1 & k1 & K1 & TP0 & L13 & HTO\\_B0251 & No-CCS-1 & R2 & 5PNNNNNNNNNN(BC) & GTCAACTCTTTAGCG & Antibody Capture & ⋯ & NA & NA & NA & no\\_ccs & TP0\\_no\\_ccs & TP0\\_vollstaendiger\\_ausschluss & NA & TP0\\_NA & Factor1 & 0.2399255\\\\\n", - "\t2 & k10 & K10 & TP0 & L11 & HTO\\_B0256 & Ch-CCS-10 & R2 & 5PNNNNNNNNNN(BC) & GGTTGCCAGATGTCA & Antibody Capture & ⋯ & NA & NA & NA & ccs & TP0\\_ccs & TP0\\_ccs & NA & TP0\\_NA & Factor1 & 0.9120340\\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A data.frame: 2 × 25\n", - "\n", - "| | sample_id <chr> | sample <chr> | measurement <chr> | library <chr> | id.y <chr> | name <chr> | read <chr> | pattern <chr> | sequence <chr> | feature_type <chr> | ⋯ ⋯ | delta_ef_value_group <chr> | delta_ef_value <chr> | delta_ef_value_class <chr> | class <chr> | measurement2 <chr> | measurement_class <chr> | delta_ef_value_class_summarized <chr> | tp_outcome <chr> | variable <fct> | value <dbl> |\n", - "|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|\n", - "| 1 | k1 | K1 | TP0 | L13 | HTO_B0251 | No-CCS-1 | R2 | 5PNNNNNNNNNN(BC) | GTCAACTCTTTAGCG | Antibody Capture | ⋯ | NA | NA | NA | no_ccs | TP0_no_ccs | TP0_vollstaendiger_ausschluss | NA | TP0_NA | Factor1 | 0.2399255 |\n", - "| 2 | k10 | K10 | TP0 | L11 | HTO_B0256 | Ch-CCS-10 | R2 | 5PNNNNNNNNNN(BC) | GGTTGCCAGATGTCA | Antibody Capture | ⋯ | NA | NA | NA | ccs | TP0_ccs | TP0_ccs | NA | TP0_NA | Factor1 | 0.9120340 |\n", - "\n" - ], - "text/plain": [ - " sample_id sample measurement library id.y name read\n", - "1 k1 K1 TP0 L13 HTO_B0251 No-CCS-1 R2 \n", - "2 k10 K10 TP0 L11 HTO_B0256 Ch-CCS-10 R2 \n", - " pattern sequence feature_type ⋯ delta_ef_value_group\n", - "1 5PNNNNNNNNNN(BC) GTCAACTCTTTAGCG Antibody Capture ⋯ NA \n", - "2 5PNNNNNNNNNN(BC) GGTTGCCAGATGTCA Antibody Capture ⋯ NA \n", - " delta_ef_value delta_ef_value_class class measurement2\n", - "1 NA NA no_ccs TP0_no_ccs \n", - "2 NA NA ccs TP0_ccs \n", - " measurement_class delta_ef_value_class_summarized tp_outcome\n", - "1 TP0_vollstaendiger_ausschluss NA TP0_NA \n", - "2 TP0_ccs NA TP0_NA \n", - " variable value \n", - "1 Factor1 0.2399255\n", - "2 Factor1 0.9120340" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "head(merged_data_long,2)" - ] - }, { "cell_type": "code", "execution_count": 187, diff --git a/E/E3_Integration_MOFA.ipynb b/E/E3_Integration_MOFA.ipynb index c7a23bf..18f8aa9 100644 --- a/E/E3_Integration_MOFA.ipynb +++ b/E/E3_Integration_MOFA.ipynb @@ -2967,47 +2967,6 @@ "outfile = file.path( paste0(result_path, '/E-Analysis/', model_name) )" ] }, - { - "cell_type": "code", - "execution_count": 119, - "id": "5d926cea-2a3f-4925-9fcc-781299e37dd0", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "'/groups/umcg-franke-scrna/tmp01/users/umcg-closert/stemi/data/results//E-Analysis/MOFA_MODELV_FINAL_INTEGRATED-FALSE.hdf5'" - ], - "text/latex": [ - "'/groups/umcg-franke-scrna/tmp01/users/umcg-closert/stemi/data/results//E-Analysis/MOFA\\_MODELV\\_FINAL\\_INTEGRATED-FALSE.hdf5'" - ], - "text/markdown": [ - "'/groups/umcg-franke-scrna/tmp01/users/umcg-closert/stemi/data/results//E-Analysis/MOFA_MODELV_FINAL_INTEGRATED-FALSE.hdf5'" - ], - "text/plain": [ - "[1] \"/groups/umcg-franke-scrna/tmp01/users/umcg-closert/stemi/data/results//E-Analysis/MOFA_MODELV_FINAL_INTEGRATED-FALSE.hdf5\"" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "outfile" - ] - }, - { - "cell_type": "code", - "execution_count": 120, - "id": "2a8a5645-3e04-403e-8fd8-565dec359e27", - "metadata": { - "tags": [] - }, - "outputs": [], - "source": [ - "#outfile" - ] - }, { "cell_type": "code", "execution_count": 121, @@ -4398,70 +4357,6 @@ "unique(sample_data$tp_outcome)" ] }, - { - "cell_type": "code", - "execution_count": 162, - "id": "13323592-53e4-498a-83c4-82618fbe813f", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "
A data.frame: 2 × 36
X.1sample_idsampleidmeasurementlibraryid.ynamereadpatternCK_MBTroponinCRPclinical_dataCK_rawclassmeasurement2measurement_classdelta_ef_value_class_summarizedtp_outcome
<int><chr><chr><dbl><chr><chr><chr><chr><chr><chr><dbl><dbl><dbl><int><int><chr><chr><chr><chr><chr>
11k1 K1 1TP0L13HTO_B0251No-CCS-1 R25PNNNNNNNNNN(BC)NA0.018634170.4854268143no_ccsTP0_no_ccsTP0_vollstaendiger_ausschlussNATP0_NA
22k10K1010TP0L11HTO_B0256Ch-CCS-10R25PNNNNNNNNNN(BC)NA NA0.26303441NAccs TP0_ccs TP0_ccs NATP0_NA
\n" - ], - "text/latex": [ - "A data.frame: 2 × 36\n", - "\\begin{tabular}{r|lllllllllllllllllllll}\n", - " & X.1 & sample\\_id & sample & id & measurement & library & id.y & name & read & pattern & ⋯ & CK\\_MB & Troponin & CRP & clinical\\_data & CK\\_raw & class & measurement2 & measurement\\_class & delta\\_ef\\_value\\_class\\_summarized & tp\\_outcome\\\\\n", - " & & & & & & & & & & & ⋯ & & & & & & & & & & \\\\\n", - "\\hline\n", - "\t1 & 1 & k1 & K1 & 1 & TP0 & L13 & HTO\\_B0251 & No-CCS-1 & R2 & 5PNNNNNNNNNN(BC) & ⋯ & NA & 0.01863417 & 0.4854268 & 1 & 43 & no\\_ccs & TP0\\_no\\_ccs & TP0\\_vollstaendiger\\_ausschluss & NA & TP0\\_NA\\\\\n", - "\t2 & 2 & k10 & K10 & 10 & TP0 & L11 & HTO\\_B0256 & Ch-CCS-10 & R2 & 5PNNNNNNNNNN(BC) & ⋯ & NA & NA & 0.2630344 & 1 & NA & ccs & TP0\\_ccs & TP0\\_ccs & NA & TP0\\_NA\\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A data.frame: 2 × 36\n", - "\n", - "| | X.1 <int> | sample_id <chr> | sample <chr> | id <dbl> | measurement <chr> | library <chr> | id.y <chr> | name <chr> | read <chr> | pattern <chr> | ⋯ ⋯ | CK_MB <dbl> | Troponin <dbl> | CRP <dbl> | clinical_data <int> | CK_raw <int> | class <chr> | measurement2 <chr> | measurement_class <chr> | delta_ef_value_class_summarized <chr> | tp_outcome <chr> |\n", - "|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|\n", - "| 1 | 1 | k1 | K1 | 1 | TP0 | L13 | HTO_B0251 | No-CCS-1 | R2 | 5PNNNNNNNNNN(BC) | ⋯ | NA | 0.01863417 | 0.4854268 | 1 | 43 | no_ccs | TP0_no_ccs | TP0_vollstaendiger_ausschluss | NA | TP0_NA |\n", - "| 2 | 2 | k10 | K10 | 10 | TP0 | L11 | HTO_B0256 | Ch-CCS-10 | R2 | 5PNNNNNNNNNN(BC) | ⋯ | NA | NA | 0.2630344 | 1 | NA | ccs | TP0_ccs | TP0_ccs | NA | TP0_NA |\n", - "\n" - ], - "text/plain": [ - " X.1 sample_id sample id measurement library id.y name read\n", - "1 1 k1 K1 1 TP0 L13 HTO_B0251 No-CCS-1 R2 \n", - "2 2 k10 K10 10 TP0 L11 HTO_B0256 Ch-CCS-10 R2 \n", - " pattern ⋯ CK_MB Troponin CRP clinical_data CK_raw class \n", - "1 5PNNNNNNNNNN(BC) ⋯ NA 0.01863417 0.4854268 1 43 no_ccs\n", - "2 5PNNNNNNNNNN(BC) ⋯ NA NA 0.2630344 1 NA ccs \n", - " measurement2 measurement_class delta_ef_value_class_summarized\n", - "1 TP0_no_ccs TP0_vollstaendiger_ausschluss NA \n", - "2 TP0_ccs TP0_ccs NA \n", - " tp_outcome\n", - "1 TP0_NA \n", - "2 TP0_NA " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "head(sample_data,2)" - ] - }, { "cell_type": "markdown", "id": "705fd53f-47f4-4b44-9436-f88023fd40c1", diff --git a/E/E4_MOFA_Factor_Amount_Test.ipynb b/E/E4_MOFA_Factor_Amount_Test.ipynb index 73efb99..abfd80d 100644 --- a/E/E4_MOFA_Factor_Amount_Test.ipynb +++ b/E/E4_MOFA_Factor_Amount_Test.ipynb @@ -1476,61 +1476,6 @@ "final_data_long$X = NULL" ] }, - { - "cell_type": "code", - "execution_count": 50, - "id": "ab15d009-6494-41d4-b740-5a374108cf15", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "
A data.frame: 2 × 4
sample_idvariablevaluetype
<chr><chr><dbl><chr>
1k1 CK-2.397022clinical_data
2k10CK NAclinical_data
\n" - ], - "text/latex": [ - "A data.frame: 2 × 4\n", - "\\begin{tabular}{r|llll}\n", - " & sample\\_id & variable & value & type\\\\\n", - " & & & & \\\\\n", - "\\hline\n", - "\t1 & k1 & CK & -2.397022 & clinical\\_data\\\\\n", - "\t2 & k10 & CK & NA & clinical\\_data\\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A data.frame: 2 × 4\n", - "\n", - "| | sample_id <chr> | variable <chr> | value <dbl> | type <chr> |\n", - "|---|---|---|---|---|\n", - "| 1 | k1 | CK | -2.397022 | clinical_data |\n", - "| 2 | k10 | CK | NA | clinical_data |\n", - "\n" - ], - "text/plain": [ - " sample_id variable value type \n", - "1 k1 CK -2.397022 clinical_data\n", - "2 k10 CK NA clinical_data" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "head(final_data_long,2)" - ] - }, { "cell_type": "code", "execution_count": 51, @@ -2084,82 +2029,6 @@ "names(data_list)" ] }, - { - "cell_type": "code", - "execution_count": 69, - "id": "6e236407-9843-4293-b413-2ca5f3aa1609", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "
A matrix: 4 × 128 of type dbl
k1k10k11k12k13k14k15k16k17k18m7.2m7.3m7.4m8.1m8.2m8.3m8.4m9.1m9.2m9.3
CK-2.3970221 NA-1.443924-0.8775918-1.5053606-0.3268231-0.6941258-1.648873-1.335178-0.94021471.2402687 0.4383163-0.6941258-0.5921965-0.9897138-1.078094 NA 0.87759181.0417650 0.05181301
CK_MB NA NA NA NA NA NA NA NA NA NA0.9766002-0.5602008 NA NA NA NA NA 0.52046470.6853063-0.50090447
CRP-0.3186394-0.8871466-1.574445 NA-0.3186394 0.2683089-1.5744450 NA-1.574445 NA NA 0.9051525 0.3827258 0.7050659 1.2760918 1.6637931.426077-0.5024022 NA 0.38272581
Troponin-1.2864792 NA-1.286479-1.2864792-1.2864792-0.8172368-1.2864792-1.286479-1.286479-1.28647920.6744898 0.4585578 NA-0.6211776-0.5951785 NA NA-0.51944810.6211776 0.21779838
\n" - ], - "text/latex": [ - "A matrix: 4 × 128 of type dbl\n", - "\\begin{tabular}{r|lllllllllllllllllllll}\n", - " & k1 & k10 & k11 & k12 & k13 & k14 & k15 & k16 & k17 & k18 & ⋯ & m7.2 & m7.3 & m7.4 & m8.1 & m8.2 & m8.3 & m8.4 & m9.1 & m9.2 & m9.3\\\\\n", - "\\hline\n", - "\tCK & -2.3970221 & NA & -1.443924 & -0.8775918 & -1.5053606 & -0.3268231 & -0.6941258 & -1.648873 & -1.335178 & -0.9402147 & ⋯ & 1.2402687 & 0.4383163 & -0.6941258 & -0.5921965 & -0.9897138 & -1.078094 & NA & 0.8775918 & 1.0417650 & 0.05181301\\\\\n", - "\tCK\\_MB & NA & NA & NA & NA & NA & NA & NA & NA & NA & NA & ⋯ & 0.9766002 & -0.5602008 & NA & NA & NA & NA & NA & 0.5204647 & 0.6853063 & -0.50090447\\\\\n", - "\tCRP & -0.3186394 & -0.8871466 & -1.574445 & NA & -0.3186394 & 0.2683089 & -1.5744450 & NA & -1.574445 & NA & ⋯ & NA & 0.9051525 & 0.3827258 & 0.7050659 & 1.2760918 & 1.663793 & 1.426077 & -0.5024022 & NA & 0.38272581\\\\\n", - "\tTroponin & -1.2864792 & NA & -1.286479 & -1.2864792 & -1.2864792 & -0.8172368 & -1.2864792 & -1.286479 & -1.286479 & -1.2864792 & ⋯ & 0.6744898 & 0.4585578 & NA & -0.6211776 & -0.5951785 & NA & NA & -0.5194481 & 0.6211776 & 0.21779838\\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A matrix: 4 × 128 of type dbl\n", - "\n", - "| | k1 | k10 | k11 | k12 | k13 | k14 | k15 | k16 | k17 | k18 | ⋯ | m7.2 | m7.3 | m7.4 | m8.1 | m8.2 | m8.3 | m8.4 | m9.1 | m9.2 | m9.3 |\n", - "|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|\n", - "| CK | -2.3970221 | NA | -1.443924 | -0.8775918 | -1.5053606 | -0.3268231 | -0.6941258 | -1.648873 | -1.335178 | -0.9402147 | ⋯ | 1.2402687 | 0.4383163 | -0.6941258 | -0.5921965 | -0.9897138 | -1.078094 | NA | 0.8775918 | 1.0417650 | 0.05181301 |\n", - "| CK_MB | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | ⋯ | 0.9766002 | -0.5602008 | NA | NA | NA | NA | NA | 0.5204647 | 0.6853063 | -0.50090447 |\n", - "| CRP | -0.3186394 | -0.8871466 | -1.574445 | NA | -0.3186394 | 0.2683089 | -1.5744450 | NA | -1.574445 | NA | ⋯ | NA | 0.9051525 | 0.3827258 | 0.7050659 | 1.2760918 | 1.663793 | 1.426077 | -0.5024022 | NA | 0.38272581 |\n", - "| Troponin | -1.2864792 | NA | -1.286479 | -1.2864792 | -1.2864792 | -0.8172368 | -1.2864792 | -1.286479 | -1.286479 | -1.2864792 | ⋯ | 0.6744898 | 0.4585578 | NA | -0.6211776 | -0.5951785 | NA | NA | -0.5194481 | 0.6211776 | 0.21779838 |\n", - "\n" - ], - "text/plain": [ - " k1 k10 k11 k12 k13 k14 \n", - "CK -2.3970221 NA -1.443924 -0.8775918 -1.5053606 -0.3268231\n", - "CK_MB NA NA NA NA NA NA\n", - "CRP -0.3186394 -0.8871466 -1.574445 NA -0.3186394 0.2683089\n", - "Troponin -1.2864792 NA -1.286479 -1.2864792 -1.2864792 -0.8172368\n", - " k15 k16 k17 k18 ⋯ m7.2 m7.3 \n", - "CK -0.6941258 -1.648873 -1.335178 -0.9402147 ⋯ 1.2402687 0.4383163\n", - "CK_MB NA NA NA NA ⋯ 0.9766002 -0.5602008\n", - "CRP -1.5744450 NA -1.574445 NA ⋯ NA 0.9051525\n", - "Troponin -1.2864792 -1.286479 -1.286479 -1.2864792 ⋯ 0.6744898 0.4585578\n", - " m7.4 m8.1 m8.2 m8.3 m8.4 m9.1 \n", - "CK -0.6941258 -0.5921965 -0.9897138 -1.078094 NA 0.8775918\n", - "CK_MB NA NA NA NA NA 0.5204647\n", - "CRP 0.3827258 0.7050659 1.2760918 1.663793 1.426077 -0.5024022\n", - "Troponin NA -0.6211776 -0.5951785 NA NA -0.5194481\n", - " m9.2 m9.3 \n", - "CK 1.0417650 0.05181301\n", - "CK_MB 0.6853063 -0.50090447\n", - "CRP NA 0.38272581\n", - "Troponin 0.6211776 0.21779838" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "head(data_list[[1]])" - ] - }, { "cell_type": "code", "execution_count": 70, diff --git a/E/E6_Pathway_Enrichment_MOFA_approach.ipynb b/E/E6_Pathway_Enrichment_MOFA_approach.ipynb index 6ee20ab..19d3364 100644 --- a/E/E6_Pathway_Enrichment_MOFA_approach.ipynb +++ b/E/E6_Pathway_Enrichment_MOFA_approach.ipynb @@ -1458,61 +1458,6 @@ "print(file.info(path)$mtime)" ] }, - { - "cell_type": "code", - "execution_count": 14, - "id": "c8a67c22-c40e-42e6-87d7-8f9a34167c38", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "
A data.frame: 2 × 5
Xsample_idvariablevaluetype
<int><chr><chr><dbl><chr>
11k1 CK-2.397022clinical_data
22k10CK NAclinical_data
\n" - ], - "text/latex": [ - "A data.frame: 2 × 5\n", - "\\begin{tabular}{r|lllll}\n", - " & X & sample\\_id & variable & value & type\\\\\n", - " & & & & & \\\\\n", - "\\hline\n", - "\t1 & 1 & k1 & CK & -2.397022 & clinical\\_data\\\\\n", - "\t2 & 2 & k10 & CK & NA & clinical\\_data\\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A data.frame: 2 × 5\n", - "\n", - "| | X <int> | sample_id <chr> | variable <chr> | value <dbl> | type <chr> |\n", - "|---|---|---|---|---|---|\n", - "| 1 | 1 | k1 | CK | -2.397022 | clinical_data |\n", - "| 2 | 2 | k10 | CK | NA | clinical_data |\n", - "\n" - ], - "text/plain": [ - " X sample_id variable value type \n", - "1 1 k1 CK -2.397022 clinical_data\n", - "2 2 k10 CK NA clinical_data" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "head(data_long,2)" - ] - }, { "cell_type": "code", "execution_count": 15, @@ -1604,57 +1549,6 @@ "unique(data_long$type[data_long$sample_id == 'm.20.1'])" ] }, - { - "cell_type": "code", - "execution_count": 19, - "id": "159c8d22-0040-4ef3-84ca-11ef58c91756", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\n", - "
A data.frame: 1 × 4
sample_idvariablevaluetype
<chr><chr><dbl><chr>
117m6.4CK-1.735543clinical_data
\n" - ], - "text/latex": [ - "A data.frame: 1 × 4\n", - "\\begin{tabular}{r|llll}\n", - " & sample\\_id & variable & value & type\\\\\n", - " & & & & \\\\\n", - "\\hline\n", - "\t117 & m6.4 & CK & -1.735543 & clinical\\_data\\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A data.frame: 1 × 4\n", - "\n", - "| | sample_id <chr> | variable <chr> | value <dbl> | type <chr> |\n", - "|---|---|---|---|---|\n", - "| 117 | m6.4 | CK | -1.735543 | clinical_data |\n", - "\n" - ], - "text/plain": [ - " sample_id variable value type \n", - "117 m6.4 CK -1.735543 clinical_data" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "data_long[(data_long$sample_id == 'm6.4') & (data_long$variable == 'CK'),]" - ] - }, { "cell_type": "markdown", "id": "d76baf68-703a-40b2-8c70-bd80a5fdae6f", @@ -1675,70 +1569,6 @@ "sample_data = read.csv(paste0(result_path, '/00_Data_Overview/Merged_Sample_Meta_Data.csv'))" ] }, - { - "cell_type": "code", - "execution_count": 21, - "id": "b152ff31-adf6-4e55-a955-6ca4dcd650ab", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "
A data.frame: 2 × 30
X.1sample_idsampleidmeasurementlibraryid.ynamereadpatternmeta_datadelta_ef_value_groupdelta_ef_valuedelta_ef_value_classef_classification_dataCKCK_MBTroponinCRPclinical_data
<int><chr><chr><dbl><chr><chr><chr><chr><chr><chr><int><chr><dbl><chr><int><int><chr><dbl><chr><int>
136136m6.4M66.4TP4L14HTO_B02596.4R25PNNNNNNNNNN(BC)1x_smaller_10.875intermediate1590.4581.31
137137m6.4M66.4TP4L10HTO_B02556.4R25PNNNNNNNNNN(BC)1x_smaller_10.875intermediate1590.4581.31
\n" - ], - "text/latex": [ - "A data.frame: 2 × 30\n", - "\\begin{tabular}{r|lllllllllllllllllllll}\n", - " & X.1 & sample\\_id & sample & id & measurement & library & id.y & name & read & pattern & ⋯ & meta\\_data & delta\\_ef\\_value\\_group & delta\\_ef\\_value & delta\\_ef\\_value\\_class & ef\\_classification\\_data & CK & CK\\_MB & Troponin & CRP & clinical\\_data\\\\\n", - " & & & & & & & & & & & ⋯ & & & & & & & & & & \\\\\n", - "\\hline\n", - "\t136 & 136 & m6.4 & M6 & 6.4 & TP4 & L14 & HTO\\_B0259 & 6.4 & R2 & 5PNNNNNNNNNN(BC) & ⋯ & 1 & x\\_smaller\\_1 & 0.875 & intermediate & 1 & 59 & & 0.458 & 1.3 & 1\\\\\n", - "\t137 & 137 & m6.4 & M6 & 6.4 & TP4 & L10 & HTO\\_B0255 & 6.4 & R2 & 5PNNNNNNNNNN(BC) & ⋯ & 1 & x\\_smaller\\_1 & 0.875 & intermediate & 1 & 59 & & 0.458 & 1.3 & 1\\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A data.frame: 2 × 30\n", - "\n", - "| | X.1 <int> | sample_id <chr> | sample <chr> | id <dbl> | measurement <chr> | library <chr> | id.y <chr> | name <chr> | read <chr> | pattern <chr> | ⋯ ⋯ | meta_data <int> | delta_ef_value_group <chr> | delta_ef_value <dbl> | delta_ef_value_class <chr> | ef_classification_data <int> | CK <int> | CK_MB <chr> | Troponin <dbl> | CRP <chr> | clinical_data <int> |\n", - "|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|\n", - "| 136 | 136 | m6.4 | M6 | 6.4 | TP4 | L14 | HTO_B0259 | 6.4 | R2 | 5PNNNNNNNNNN(BC) | ⋯ | 1 | x_smaller_1 | 0.875 | intermediate | 1 | 59 | | 0.458 | 1.3 | 1 |\n", - "| 137 | 137 | m6.4 | M6 | 6.4 | TP4 | L10 | HTO_B0255 | 6.4 | R2 | 5PNNNNNNNNNN(BC) | ⋯ | 1 | x_smaller_1 | 0.875 | intermediate | 1 | 59 | | 0.458 | 1.3 | 1 |\n", - "\n" - ], - "text/plain": [ - " X.1 sample_id sample id measurement library id.y name read\n", - "136 136 m6.4 M6 6.4 TP4 L14 HTO_B0259 6.4 R2 \n", - "137 137 m6.4 M6 6.4 TP4 L10 HTO_B0255 6.4 R2 \n", - " pattern ⋯ meta_data delta_ef_value_group delta_ef_value\n", - "136 5PNNNNNNNNNN(BC) ⋯ 1 x_smaller_1 0.875 \n", - "137 5PNNNNNNNNNN(BC) ⋯ 1 x_smaller_1 0.875 \n", - " delta_ef_value_class ef_classification_data CK CK_MB Troponin CRP\n", - "136 intermediate 1 59 0.458 1.3\n", - "137 intermediate 1 59 0.458 1.3\n", - " clinical_data\n", - "136 1 \n", - "137 1 " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "sample_data[(sample_data$sample_id == 'm6.4'),] " - ] - }, { "cell_type": "code", "execution_count": 22, @@ -1827,120 +1657,6 @@ "sample_data$sample_id[(sample_data$sample_id == 'm6.1') & (sample_data$library %in% c('L3'))] = 'm6.12'" ] }, - { - "cell_type": "code", - "execution_count": 29, - "id": "463c8ebf-5e07-4ab2-a201-ee477b40d225", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\n", - "
A data.frame: 1 × 30
X.1sample_idsampleidmeasurementlibraryid.ynamereadpatternmeta_datadelta_ef_value_groupdelta_ef_valuedelta_ef_value_classef_classification_dataCKCK_MBTroponinCRPclinical_data
<int><chr><chr><dbl><chr><chr><chr><chr><chr><chr><int><chr><dbl><chr><int><dbl><dbl><dbl><dbl><int>
136136m6.4M66.4TP4L14HTO_B02596.4R25PNNNNNNNNNN(BC)1x_smaller_10.875intermediate15.906891NA0.54399071.2016341
\n" - ], - "text/latex": [ - "A data.frame: 1 × 30\n", - "\\begin{tabular}{r|lllllllllllllllllllll}\n", - " & X.1 & sample\\_id & sample & id & measurement & library & id.y & name & read & pattern & ⋯ & meta\\_data & delta\\_ef\\_value\\_group & delta\\_ef\\_value & delta\\_ef\\_value\\_class & ef\\_classification\\_data & CK & CK\\_MB & Troponin & CRP & clinical\\_data\\\\\n", - " & & & & & & & & & & & ⋯ & & & & & & & & & & \\\\\n", - "\\hline\n", - "\t136 & 136 & m6.4 & M6 & 6.4 & TP4 & L14 & HTO\\_B0259 & 6.4 & R2 & 5PNNNNNNNNNN(BC) & ⋯ & 1 & x\\_smaller\\_1 & 0.875 & intermediate & 1 & 5.906891 & NA & 0.5439907 & 1.201634 & 1\\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A data.frame: 1 × 30\n", - "\n", - "| | X.1 <int> | sample_id <chr> | sample <chr> | id <dbl> | measurement <chr> | library <chr> | id.y <chr> | name <chr> | read <chr> | pattern <chr> | ⋯ ⋯ | meta_data <int> | delta_ef_value_group <chr> | delta_ef_value <dbl> | delta_ef_value_class <chr> | ef_classification_data <int> | CK <dbl> | CK_MB <dbl> | Troponin <dbl> | CRP <dbl> | clinical_data <int> |\n", - "|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|\n", - "| 136 | 136 | m6.4 | M6 | 6.4 | TP4 | L14 | HTO_B0259 | 6.4 | R2 | 5PNNNNNNNNNN(BC) | ⋯ | 1 | x_smaller_1 | 0.875 | intermediate | 1 | 5.906891 | NA | 0.5439907 | 1.201634 | 1 |\n", - "\n" - ], - "text/plain": [ - " X.1 sample_id sample id measurement library id.y name read\n", - "136 136 m6.4 M6 6.4 TP4 L14 HTO_B0259 6.4 R2 \n", - " pattern ⋯ meta_data delta_ef_value_group delta_ef_value\n", - "136 5PNNNNNNNNNN(BC) ⋯ 1 x_smaller_1 0.875 \n", - " delta_ef_value_class ef_classification_data CK CK_MB Troponin \n", - "136 intermediate 1 5.906891 NA 0.5439907\n", - " CRP clinical_data\n", - "136 1.201634 1 " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "sample_data[(sample_data$sample_id == 'm6.4'),] " - ] - }, - { - "cell_type": "code", - "execution_count": 30, - "id": "e8ba3d42-0fec-4dde-8863-bc350d846798", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\n", - "
A data.frame: 1 × 30
X.1sample_idsampleidmeasurementlibraryid.ynamereadpatternmeta_datadelta_ef_value_groupdelta_ef_valuedelta_ef_value_classef_classification_dataCKCK_MBTroponinCRPclinical_data
<int><chr><chr><dbl><chr><chr><chr><chr><chr><chr><int><chr><dbl><chr><int><dbl><dbl><dbl><dbl><int>
137137m6.42M66.4TP4L10HTO_B02556.4R25PNNNNNNNNNN(BC)1x_smaller_10.875intermediate15.906891NA0.54399071.2016341
\n" - ], - "text/latex": [ - "A data.frame: 1 × 30\n", - "\\begin{tabular}{r|lllllllllllllllllllll}\n", - " & X.1 & sample\\_id & sample & id & measurement & library & id.y & name & read & pattern & ⋯ & meta\\_data & delta\\_ef\\_value\\_group & delta\\_ef\\_value & delta\\_ef\\_value\\_class & ef\\_classification\\_data & CK & CK\\_MB & Troponin & CRP & clinical\\_data\\\\\n", - " & & & & & & & & & & & ⋯ & & & & & & & & & & \\\\\n", - "\\hline\n", - "\t137 & 137 & m6.42 & M6 & 6.4 & TP4 & L10 & HTO\\_B0255 & 6.4 & R2 & 5PNNNNNNNNNN(BC) & ⋯ & 1 & x\\_smaller\\_1 & 0.875 & intermediate & 1 & 5.906891 & NA & 0.5439907 & 1.201634 & 1\\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A data.frame: 1 × 30\n", - "\n", - "| | X.1 <int> | sample_id <chr> | sample <chr> | id <dbl> | measurement <chr> | library <chr> | id.y <chr> | name <chr> | read <chr> | pattern <chr> | ⋯ ⋯ | meta_data <int> | delta_ef_value_group <chr> | delta_ef_value <dbl> | delta_ef_value_class <chr> | ef_classification_data <int> | CK <dbl> | CK_MB <dbl> | Troponin <dbl> | CRP <dbl> | clinical_data <int> |\n", - "|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|\n", - "| 137 | 137 | m6.42 | M6 | 6.4 | TP4 | L10 | HTO_B0255 | 6.4 | R2 | 5PNNNNNNNNNN(BC) | ⋯ | 1 | x_smaller_1 | 0.875 | intermediate | 1 | 5.906891 | NA | 0.5439907 | 1.201634 | 1 |\n", - "\n" - ], - "text/plain": [ - " X.1 sample_id sample id measurement library id.y name read\n", - "137 137 m6.42 M6 6.4 TP4 L10 HTO_B0255 6.4 R2 \n", - " pattern ⋯ meta_data delta_ef_value_group delta_ef_value\n", - "137 5PNNNNNNNNNN(BC) ⋯ 1 x_smaller_1 0.875 \n", - " delta_ef_value_class ef_classification_data CK CK_MB Troponin \n", - "137 intermediate 1 5.906891 NA 0.5439907\n", - " CRP clinical_data\n", - "137 1.201634 1 " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "sample_data[(sample_data$sample_id == 'm6.42'),] " - ] - }, { "cell_type": "markdown", "id": "4ea9f63b-5dfa-4bea-bf17-9ac925af05da", @@ -3926,6 +3642,7 @@ "execution_count": 118, "id": "3f9fb18c-02f2-4bc5-b37f-85142e3b708c", "metadata": { + "scrolled": true, "tags": [] }, "outputs": [ @@ -3982,85 +3699,6 @@ "head(model@samples_metadata, n=3)" ] }, - { - "cell_type": "code", - "execution_count": 119, - "id": "ed22160c-1e70-4d21-b53c-02cbff6b0419", - "metadata": {}, - "outputs": [], - "source": [ - "#sample_data$sample_id[(sample_data$sample_id == 'm13.2') & (sample_data$library =='L6')] = 'm13.22' #13.2-L5, 13.2-L6\t, 6.4-L10, 6.4-L14\t\n", - "#sample_data$sample_id[(sample_data$sample_id == 'm6.4') & (sample_data$library == 'L14')] = 'm6.42'\n", - "#sample_data$sample_id[(sample_data$sample_id == 'm6.1') & (sample_data$library == 'L3')] = 'm6.12'" - ] - }, - { - "cell_type": "code", - "execution_count": 120, - "id": "03bab8fb-9aef-4b47-a90a-e428d2d0861a", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\n", - "
A data.frame: 1 × 30
X.1sample_idsampleidmeasurementlibraryid.ynamereadpatternmeta_datadelta_ef_value_groupdelta_ef_valuedelta_ef_value_classef_classification_dataCKCK_MBTroponinCRPclinical_data
<int><chr><chr><dbl><chr><chr><chr><chr><chr><chr><int><chr><dbl><chr><int><dbl><dbl><dbl><dbl><int>
136136m6.4M66.4TP4L14HTO_B02596.4R25PNNNNNNNNNN(BC)1x_smaller_10.875intermediate15.906891NA0.54399071.2016341
\n" - ], - "text/latex": [ - "A data.frame: 1 × 30\n", - "\\begin{tabular}{r|lllllllllllllllllllll}\n", - " & X.1 & sample\\_id & sample & id & measurement & library & id.y & name & read & pattern & ⋯ & meta\\_data & delta\\_ef\\_value\\_group & delta\\_ef\\_value & delta\\_ef\\_value\\_class & ef\\_classification\\_data & CK & CK\\_MB & Troponin & CRP & clinical\\_data\\\\\n", - " & & & & & & & & & & & ⋯ & & & & & & & & & & \\\\\n", - "\\hline\n", - "\t136 & 136 & m6.4 & M6 & 6.4 & TP4 & L14 & HTO\\_B0259 & 6.4 & R2 & 5PNNNNNNNNNN(BC) & ⋯ & 1 & x\\_smaller\\_1 & 0.875 & intermediate & 1 & 5.906891 & NA & 0.5439907 & 1.201634 & 1\\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A data.frame: 1 × 30\n", - "\n", - "| | X.1 <int> | sample_id <chr> | sample <chr> | id <dbl> | measurement <chr> | library <chr> | id.y <chr> | name <chr> | read <chr> | pattern <chr> | ⋯ ⋯ | meta_data <int> | delta_ef_value_group <chr> | delta_ef_value <dbl> | delta_ef_value_class <chr> | ef_classification_data <int> | CK <dbl> | CK_MB <dbl> | Troponin <dbl> | CRP <dbl> | clinical_data <int> |\n", - "|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|\n", - "| 136 | 136 | m6.4 | M6 | 6.4 | TP4 | L14 | HTO_B0259 | 6.4 | R2 | 5PNNNNNNNNNN(BC) | ⋯ | 1 | x_smaller_1 | 0.875 | intermediate | 1 | 5.906891 | NA | 0.5439907 | 1.201634 | 1 |\n", - "\n" - ], - "text/plain": [ - " X.1 sample_id sample id measurement library id.y name read\n", - "136 136 m6.4 M6 6.4 TP4 L14 HTO_B0259 6.4 R2 \n", - " pattern ⋯ meta_data delta_ef_value_group delta_ef_value\n", - "136 5PNNNNNNNNNN(BC) ⋯ 1 x_smaller_1 0.875 \n", - " delta_ef_value_class ef_classification_data CK CK_MB Troponin \n", - "136 intermediate 1 5.906891 NA 0.5439907\n", - " CRP clinical_data\n", - "136 1.201634 1 " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "head(sample_data[sample_data$sample_id == 'm6.4',])" - ] - }, - { - "cell_type": "code", - "execution_count": 121, - "id": "ebffb606-13d8-4769-aaf1-5d9d2bcb3106", - "metadata": {}, - "outputs": [], - "source": [ - "#ample_data" - ] - }, { "cell_type": "code", "execution_count": 122, @@ -4119,16 +3757,6 @@ "length(unique(sample_data$sample_id))" ] }, - { - "cell_type": "code", - "execution_count": 124, - "id": "62c3cc03-e583-48fb-b673-060243908177", - "metadata": {}, - "outputs": [], - "source": [ - "#head( sample_data)" - ] - }, { "cell_type": "code", "execution_count": 125, @@ -4139,67 +3767,6 @@ "model@samples_metadata = merge(model@samples_metadata, sample_data, by.x = 'sample', by.y = 'sample_id')" ] }, - { - "cell_type": "code", - "execution_count": 126, - "id": "1d98d3a0-b7b2-4dd7-976f-c5187e9c2b6b", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "
A data.frame: 2 × 31
samplegroup.xX.1sample.yidmeasurementlibraryid.ynamereadmeta_datadelta_ef_value_groupdelta_ef_valuedelta_ef_value_classef_classification_dataCKCK_MBTroponinCRPclinical_data
<chr><fct><int><chr><dbl><chr><chr><chr><chr><chr><int><chr><dbl><chr><int><dbl><dbl><dbl><dbl><int>
1k1 group11K1 1TP0L13HTO_B0251No-CCS-1 R21NANANA05.459432NA0.018634170.48542681
2k10group12K1010TP0L11HTO_B0256Ch-CCS-10R21NANANA0 NANA NA0.26303441
\n" - ], - "text/latex": [ - "A data.frame: 2 × 31\n", - "\\begin{tabular}{r|lllllllllllllllllllll}\n", - " & sample & group.x & X.1 & sample.y & id & measurement & library & id.y & name & read & ⋯ & meta\\_data & delta\\_ef\\_value\\_group & delta\\_ef\\_value & delta\\_ef\\_value\\_class & ef\\_classification\\_data & CK & CK\\_MB & Troponin & CRP & clinical\\_data\\\\\n", - " & & & & & & & & & & & ⋯ & & & & & & & & & & \\\\\n", - "\\hline\n", - "\t1 & k1 & group1 & 1 & K1 & 1 & TP0 & L13 & HTO\\_B0251 & No-CCS-1 & R2 & ⋯ & 1 & NA & NA & NA & 0 & 5.459432 & NA & 0.01863417 & 0.4854268 & 1\\\\\n", - "\t2 & k10 & group1 & 2 & K10 & 10 & TP0 & L11 & HTO\\_B0256 & Ch-CCS-10 & R2 & ⋯ & 1 & NA & NA & NA & 0 & NA & NA & NA & 0.2630344 & 1\\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A data.frame: 2 × 31\n", - "\n", - "| | sample <chr> | group.x <fct> | X.1 <int> | sample.y <chr> | id <dbl> | measurement <chr> | library <chr> | id.y <chr> | name <chr> | read <chr> | ⋯ ⋯ | meta_data <int> | delta_ef_value_group <chr> | delta_ef_value <dbl> | delta_ef_value_class <chr> | ef_classification_data <int> | CK <dbl> | CK_MB <dbl> | Troponin <dbl> | CRP <dbl> | clinical_data <int> |\n", - "|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|\n", - "| 1 | k1 | group1 | 1 | K1 | 1 | TP0 | L13 | HTO_B0251 | No-CCS-1 | R2 | ⋯ | 1 | NA | NA | NA | 0 | 5.459432 | NA | 0.01863417 | 0.4854268 | 1 |\n", - "| 2 | k10 | group1 | 2 | K10 | 10 | TP0 | L11 | HTO_B0256 | Ch-CCS-10 | R2 | ⋯ | 1 | NA | NA | NA | 0 | NA | NA | NA | 0.2630344 | 1 |\n", - "\n" - ], - "text/plain": [ - " sample group.x X.1 sample.y id measurement library id.y name read ⋯\n", - "1 k1 group1 1 K1 1 TP0 L13 HTO_B0251 No-CCS-1 R2 ⋯\n", - "2 k10 group1 2 K10 10 TP0 L11 HTO_B0256 Ch-CCS-10 R2 ⋯\n", - " meta_data delta_ef_value_group delta_ef_value delta_ef_value_class\n", - "1 1 NA NA NA \n", - "2 1 NA NA NA \n", - " ef_classification_data CK CK_MB Troponin CRP clinical_data\n", - "1 0 5.459432 NA 0.01863417 0.4854268 1 \n", - "2 0 NA NA NA 0.2630344 1 " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "head(model@samples_metadata,2)" - ] - }, { "cell_type": "code", "execution_count": 127, @@ -4371,82 +3938,6 @@ "weights = get_weights(model, views = \"all\", factors = \"all\")" ] }, - { - "cell_type": "code", - "execution_count": 135, - "id": "8ae27478-52db-4f4a-afa6-253c4775842c", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "
A matrix: 4 × 128 of type dbl
k1k10k11k12k13k14k15k16k17k18m7.2m7.3m7.4m8.1m8.2m8.3m8.4m9.1m9.2m9.3
CK-2.540364 NA-1.530271-0.9300719-1.595381-0.3463673-0.7356347-1.747476-1.415022-0.99643971.314437 0.4645275-0.7356347-0.6276100-1.0488988-1.142564 NA 0.93007181.1040625 0.05491135
CK_MB NA NA NA NA NA NA NA NA NA NA1.034993-0.5937088 NA NA NA NA NA 0.55158060.7262797-0.53086653
CRP-0.338300-0.940804-1.669203 NA-0.338300 0.2837479-1.6692029 NA-1.669203 NA NA 0.9586747 0.4050069 0.7466229 1.3517962 1.7626821.51075-0.5330519 NA 0.40500689
Troponin-1.364494 NA-1.364494-1.3644941-1.364494-0.8671909-1.3644941-1.364494-1.364494-1.36449410.713741 0.4848964 NA-0.6594074-0.6318535 NA NA-0.55159440.6572408 0.22973948
\n" - ], - "text/latex": [ - "A matrix: 4 × 128 of type dbl\n", - "\\begin{tabular}{r|lllllllllllllllllllll}\n", - " & k1 & k10 & k11 & k12 & k13 & k14 & k15 & k16 & k17 & k18 & ⋯ & m7.2 & m7.3 & m7.4 & m8.1 & m8.2 & m8.3 & m8.4 & m9.1 & m9.2 & m9.3\\\\\n", - "\\hline\n", - "\tCK & -2.540364 & NA & -1.530271 & -0.9300719 & -1.595381 & -0.3463673 & -0.7356347 & -1.747476 & -1.415022 & -0.9964397 & ⋯ & 1.314437 & 0.4645275 & -0.7356347 & -0.6276100 & -1.0488988 & -1.142564 & NA & 0.9300718 & 1.1040625 & 0.05491135\\\\\n", - "\tCK\\_MB & NA & NA & NA & NA & NA & NA & NA & NA & NA & NA & ⋯ & 1.034993 & -0.5937088 & NA & NA & NA & NA & NA & 0.5515806 & 0.7262797 & -0.53086653\\\\\n", - "\tCRP & -0.338300 & -0.940804 & -1.669203 & NA & -0.338300 & 0.2837479 & -1.6692029 & NA & -1.669203 & NA & ⋯ & NA & 0.9586747 & 0.4050069 & 0.7466229 & 1.3517962 & 1.762682 & 1.51075 & -0.5330519 & NA & 0.40500689\\\\\n", - "\tTroponin & -1.364494 & NA & -1.364494 & -1.3644941 & -1.364494 & -0.8671909 & -1.3644941 & -1.364494 & -1.364494 & -1.3644941 & ⋯ & 0.713741 & 0.4848964 & NA & -0.6594074 & -0.6318535 & NA & NA & -0.5515944 & 0.6572408 & 0.22973948\\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A matrix: 4 × 128 of type dbl\n", - "\n", - "| | k1 | k10 | k11 | k12 | k13 | k14 | k15 | k16 | k17 | k18 | ⋯ | m7.2 | m7.3 | m7.4 | m8.1 | m8.2 | m8.3 | m8.4 | m9.1 | m9.2 | m9.3 |\n", - "|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|\n", - "| CK | -2.540364 | NA | -1.530271 | -0.9300719 | -1.595381 | -0.3463673 | -0.7356347 | -1.747476 | -1.415022 | -0.9964397 | ⋯ | 1.314437 | 0.4645275 | -0.7356347 | -0.6276100 | -1.0488988 | -1.142564 | NA | 0.9300718 | 1.1040625 | 0.05491135 |\n", - "| CK_MB | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | ⋯ | 1.034993 | -0.5937088 | NA | NA | NA | NA | NA | 0.5515806 | 0.7262797 | -0.53086653 |\n", - "| CRP | -0.338300 | -0.940804 | -1.669203 | NA | -0.338300 | 0.2837479 | -1.6692029 | NA | -1.669203 | NA | ⋯ | NA | 0.9586747 | 0.4050069 | 0.7466229 | 1.3517962 | 1.762682 | 1.51075 | -0.5330519 | NA | 0.40500689 |\n", - "| Troponin | -1.364494 | NA | -1.364494 | -1.3644941 | -1.364494 | -0.8671909 | -1.3644941 | -1.364494 | -1.364494 | -1.3644941 | ⋯ | 0.713741 | 0.4848964 | NA | -0.6594074 | -0.6318535 | NA | NA | -0.5515944 | 0.6572408 | 0.22973948 |\n", - "\n" - ], - "text/plain": [ - " k1 k10 k11 k12 k13 k14 \n", - "CK -2.540364 NA -1.530271 -0.9300719 -1.595381 -0.3463673\n", - "CK_MB NA NA NA NA NA NA\n", - "CRP -0.338300 -0.940804 -1.669203 NA -0.338300 0.2837479\n", - "Troponin -1.364494 NA -1.364494 -1.3644941 -1.364494 -0.8671909\n", - " k15 k16 k17 k18 ⋯ m7.2 m7.3 \n", - "CK -0.7356347 -1.747476 -1.415022 -0.9964397 ⋯ 1.314437 0.4645275\n", - "CK_MB NA NA NA NA ⋯ 1.034993 -0.5937088\n", - "CRP -1.6692029 NA -1.669203 NA ⋯ NA 0.9586747\n", - "Troponin -1.3644941 -1.364494 -1.364494 -1.3644941 ⋯ 0.713741 0.4848964\n", - " m7.4 m8.1 m8.2 m8.3 m8.4 m9.1 \n", - "CK -0.7356347 -0.6276100 -1.0488988 -1.142564 NA 0.9300718\n", - "CK_MB NA NA NA NA NA 0.5515806\n", - "CRP 0.4050069 0.7466229 1.3517962 1.762682 1.51075 -0.5330519\n", - "Troponin NA -0.6594074 -0.6318535 NA NA -0.5515944\n", - " m9.2 m9.3 \n", - "CK 1.1040625 0.05491135\n", - "CK_MB 0.7262797 -0.53086653\n", - "CRP NA 0.40500689\n", - "Troponin 0.6572408 0.22973948" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "head(get_data(model)[[1]][[1]])" - ] - }, { "cell_type": "code", "execution_count": 136, @@ -4761,72 +4252,6 @@ "nrow(factors)" ] }, - { - "cell_type": "code", - "execution_count": 143, - "id": "ac117f20-03b7-40a1-bd46-9627682d0e01", - "metadata": { - "tags": [] - }, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "
A data.frame: 2 × 30
X.1sample_idsampleidmeasurementlibraryid.ynamereadpatternmeta_datadelta_ef_value_groupdelta_ef_valuedelta_ef_value_classef_classification_dataCKCK_MBTroponinCRPclinical_data
<int><chr><chr><dbl><chr><chr><chr><chr><chr><chr><int><chr><dbl><chr><int><dbl><dbl><dbl><dbl><int>
11k1 K1 1TP0L13HTO_B0251No-CCS-1 R25PNNNNNNNNNN(BC)1NANANA05.459432NA0.018634170.48542681
22k10K1010TP0L11HTO_B0256Ch-CCS-10R25PNNNNNNNNNN(BC)1NANANA0 NANA NA0.26303441
\n" - ], - "text/latex": [ - "A data.frame: 2 × 30\n", - "\\begin{tabular}{r|lllllllllllllllllllll}\n", - " & X.1 & sample\\_id & sample & id & measurement & library & id.y & name & read & pattern & ⋯ & meta\\_data & delta\\_ef\\_value\\_group & delta\\_ef\\_value & delta\\_ef\\_value\\_class & ef\\_classification\\_data & CK & CK\\_MB & Troponin & CRP & clinical\\_data\\\\\n", - " & & & & & & & & & & & ⋯ & & & & & & & & & & \\\\\n", - "\\hline\n", - "\t1 & 1 & k1 & K1 & 1 & TP0 & L13 & HTO\\_B0251 & No-CCS-1 & R2 & 5PNNNNNNNNNN(BC) & ⋯ & 1 & NA & NA & NA & 0 & 5.459432 & NA & 0.01863417 & 0.4854268 & 1\\\\\n", - "\t2 & 2 & k10 & K10 & 10 & TP0 & L11 & HTO\\_B0256 & Ch-CCS-10 & R2 & 5PNNNNNNNNNN(BC) & ⋯ & 1 & NA & NA & NA & 0 & NA & NA & NA & 0.2630344 & 1\\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A data.frame: 2 × 30\n", - "\n", - "| | X.1 <int> | sample_id <chr> | sample <chr> | id <dbl> | measurement <chr> | library <chr> | id.y <chr> | name <chr> | read <chr> | pattern <chr> | ⋯ ⋯ | meta_data <int> | delta_ef_value_group <chr> | delta_ef_value <dbl> | delta_ef_value_class <chr> | ef_classification_data <int> | CK <dbl> | CK_MB <dbl> | Troponin <dbl> | CRP <dbl> | clinical_data <int> |\n", - "|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|\n", - "| 1 | 1 | k1 | K1 | 1 | TP0 | L13 | HTO_B0251 | No-CCS-1 | R2 | 5PNNNNNNNNNN(BC) | ⋯ | 1 | NA | NA | NA | 0 | 5.459432 | NA | 0.01863417 | 0.4854268 | 1 |\n", - "| 2 | 2 | k10 | K10 | 10 | TP0 | L11 | HTO_B0256 | Ch-CCS-10 | R2 | 5PNNNNNNNNNN(BC) | ⋯ | 1 | NA | NA | NA | 0 | NA | NA | NA | 0.2630344 | 1 |\n", - "\n" - ], - "text/plain": [ - " X.1 sample_id sample id measurement library id.y name read\n", - "1 1 k1 K1 1 TP0 L13 HTO_B0251 No-CCS-1 R2 \n", - "2 2 k10 K10 10 TP0 L11 HTO_B0256 Ch-CCS-10 R2 \n", - " pattern ⋯ meta_data delta_ef_value_group delta_ef_value\n", - "1 5PNNNNNNNNNN(BC) ⋯ 1 NA NA \n", - "2 5PNNNNNNNNNN(BC) ⋯ 1 NA NA \n", - " delta_ef_value_class ef_classification_data CK CK_MB Troponin \n", - "1 NA 0 5.459432 NA 0.01863417\n", - "2 NA 0 NA NA NA\n", - " CRP clinical_data\n", - "1 0.4854268 1 \n", - "2 0.2630344 1 " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "head(sample_data,2)" - ] - }, { "cell_type": "code", "execution_count": 144, @@ -4885,63 +4310,6 @@ "length(unique(sample_data$sample_id))" ] }, - { - "cell_type": "code", - "execution_count": 146, - "id": "469802b3-5449-423f-9724-9d94132bc1ef", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\n", - "
A data.frame: 1 × 30
X.1sample_idsampleidmeasurementlibraryid.ynamereadpatternmeta_datadelta_ef_value_groupdelta_ef_valuedelta_ef_value_classef_classification_dataCKCK_MBTroponinCRPclinical_data
<int><chr><chr><dbl><chr><chr><chr><chr><chr><chr><int><chr><dbl><chr><int><dbl><dbl><dbl><dbl><int>
137137m6.42M66.4TP4L10HTO_B02556.4R25PNNNNNNNNNN(BC)1x_smaller_10.875intermediate15.906891NA0.54399071.2016341
\n" - ], - "text/latex": [ - "A data.frame: 1 × 30\n", - "\\begin{tabular}{r|lllllllllllllllllllll}\n", - " & X.1 & sample\\_id & sample & id & measurement & library & id.y & name & read & pattern & ⋯ & meta\\_data & delta\\_ef\\_value\\_group & delta\\_ef\\_value & delta\\_ef\\_value\\_class & ef\\_classification\\_data & CK & CK\\_MB & Troponin & CRP & clinical\\_data\\\\\n", - " & & & & & & & & & & & ⋯ & & & & & & & & & & \\\\\n", - "\\hline\n", - "\t137 & 137 & m6.42 & M6 & 6.4 & TP4 & L10 & HTO\\_B0255 & 6.4 & R2 & 5PNNNNNNNNNN(BC) & ⋯ & 1 & x\\_smaller\\_1 & 0.875 & intermediate & 1 & 5.906891 & NA & 0.5439907 & 1.201634 & 1\\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A data.frame: 1 × 30\n", - "\n", - "| | X.1 <int> | sample_id <chr> | sample <chr> | id <dbl> | measurement <chr> | library <chr> | id.y <chr> | name <chr> | read <chr> | pattern <chr> | ⋯ ⋯ | meta_data <int> | delta_ef_value_group <chr> | delta_ef_value <dbl> | delta_ef_value_class <chr> | ef_classification_data <int> | CK <dbl> | CK_MB <dbl> | Troponin <dbl> | CRP <dbl> | clinical_data <int> |\n", - "|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|\n", - "| 137 | 137 | m6.42 | M6 | 6.4 | TP4 | L10 | HTO_B0255 | 6.4 | R2 | 5PNNNNNNNNNN(BC) | ⋯ | 1 | x_smaller_1 | 0.875 | intermediate | 1 | 5.906891 | NA | 0.5439907 | 1.201634 | 1 |\n", - "\n" - ], - "text/plain": [ - " X.1 sample_id sample id measurement library id.y name read\n", - "137 137 m6.42 M6 6.4 TP4 L10 HTO_B0255 6.4 R2 \n", - " pattern ⋯ meta_data delta_ef_value_group delta_ef_value\n", - "137 5PNNNNNNNNNN(BC) ⋯ 1 x_smaller_1 0.875 \n", - " delta_ef_value_class ef_classification_data CK CK_MB Troponin \n", - "137 intermediate 1 5.906891 NA 0.5439907\n", - " CRP clinical_data\n", - "137 1.201634 1 " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "sample_data[sample_data$sample_id == 'm6.42',]" - ] - }, { "cell_type": "code", "execution_count": 147, @@ -4978,70 +4346,6 @@ "merged_data = merge(factors_merge, sample_data, by.x = 'sample_id', by.y = 'sample_id')" ] }, - { - "cell_type": "code", - "execution_count": 151, - "id": "70df6e35-5e21-4565-9a5b-e39f3e82c43a", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "
A data.frame: 2 × 50
sample_idFactor1Factor2Factor3Factor4Factor5Factor6Factor7Factor8Factor9meta_datadelta_ef_value_groupdelta_ef_valuedelta_ef_value_classef_classification_dataCKCK_MBTroponinCRPclinical_data
<chr><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><int><chr><dbl><chr><int><dbl><dbl><dbl><dbl><int>
1k1 0.4811325-0.27313171.4988169-0.41356781.5052706-0.92308998-0.3904185-0.1944797 0.164867991NANANA05.459432NA0.018634170.48542681
2k100.8920603-0.75477700.3501023-0.15244780.4074517-0.04596939 0.6276925-1.1656937-0.050035041NANANA0 NANA NA0.26303441
\n" - ], - "text/latex": [ - "A data.frame: 2 × 50\n", - "\\begin{tabular}{r|lllllllllllllllllllll}\n", - " & sample\\_id & Factor1 & Factor2 & Factor3 & Factor4 & Factor5 & Factor6 & Factor7 & Factor8 & Factor9 & ⋯ & meta\\_data & delta\\_ef\\_value\\_group & delta\\_ef\\_value & delta\\_ef\\_value\\_class & ef\\_classification\\_data & CK & CK\\_MB & Troponin & CRP & clinical\\_data\\\\\n", - " & & & & & & & & & & & ⋯ & & & & & & & & & & \\\\\n", - "\\hline\n", - "\t1 & k1 & 0.4811325 & -0.2731317 & 1.4988169 & -0.4135678 & 1.5052706 & -0.92308998 & -0.3904185 & -0.1944797 & 0.16486799 & ⋯ & 1 & NA & NA & NA & 0 & 5.459432 & NA & 0.01863417 & 0.4854268 & 1\\\\\n", - "\t2 & k10 & 0.8920603 & -0.7547770 & 0.3501023 & -0.1524478 & 0.4074517 & -0.04596939 & 0.6276925 & -1.1656937 & -0.05003504 & ⋯ & 1 & NA & NA & NA & 0 & NA & NA & NA & 0.2630344 & 1\\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A data.frame: 2 × 50\n", - "\n", - "| | sample_id <chr> | Factor1 <dbl> | Factor2 <dbl> | Factor3 <dbl> | Factor4 <dbl> | Factor5 <dbl> | Factor6 <dbl> | Factor7 <dbl> | Factor8 <dbl> | Factor9 <dbl> | ⋯ ⋯ | meta_data <int> | delta_ef_value_group <chr> | delta_ef_value <dbl> | delta_ef_value_class <chr> | ef_classification_data <int> | CK <dbl> | CK_MB <dbl> | Troponin <dbl> | CRP <dbl> | clinical_data <int> |\n", - "|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|\n", - "| 1 | k1 | 0.4811325 | -0.2731317 | 1.4988169 | -0.4135678 | 1.5052706 | -0.92308998 | -0.3904185 | -0.1944797 | 0.16486799 | ⋯ | 1 | NA | NA | NA | 0 | 5.459432 | NA | 0.01863417 | 0.4854268 | 1 |\n", - "| 2 | k10 | 0.8920603 | -0.7547770 | 0.3501023 | -0.1524478 | 0.4074517 | -0.04596939 | 0.6276925 | -1.1656937 | -0.05003504 | ⋯ | 1 | NA | NA | NA | 0 | NA | NA | NA | 0.2630344 | 1 |\n", - "\n" - ], - "text/plain": [ - " sample_id Factor1 Factor2 Factor3 Factor4 Factor5 Factor6 \n", - "1 k1 0.4811325 -0.2731317 1.4988169 -0.4135678 1.5052706 -0.92308998\n", - "2 k10 0.8920603 -0.7547770 0.3501023 -0.1524478 0.4074517 -0.04596939\n", - " Factor7 Factor8 Factor9 ⋯ meta_data delta_ef_value_group\n", - "1 -0.3904185 -0.1944797 0.16486799 ⋯ 1 NA \n", - "2 0.6276925 -1.1656937 -0.05003504 ⋯ 1 NA \n", - " delta_ef_value delta_ef_value_class ef_classification_data CK CK_MB\n", - "1 NA NA 0 5.459432 NA \n", - "2 NA NA 0 NA NA \n", - " Troponin CRP clinical_data\n", - "1 0.01863417 0.4854268 1 \n", - "2 NA 0.2630344 1 " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "head(merged_data,2)" - ] - }, { "cell_type": "code", "execution_count": 152, @@ -7306,34 +6610,6 @@ "slotNames(model)" ] }, - { - "cell_type": "code", - "execution_count": 222, - "id": "56de30b3-1a92-483f-8c40-ab267a2295a1", - "metadata": {}, - "outputs": [], - "source": [ - "\n", - "### Debugging if doesn't work:\n", - "# data <- lapply(model_conc@data['complete'], function(x) x['group1'])\n", - "# seq_len(length(data[[1]]))\n", - "# features <- features_names(model_conc)['complete']\n", - "# dim(data$complete$group1)\n", - "# length(features$complete)\n", - "#features <- features_names(model_conc)['proteomics2']\n", - "# data[['complete']][[1]][as.character(features[['complete']]),]\n", - "#get_data(model_conc, views = 'complete', as.data.frame = FALSE)\n", - "\n", - "### Test to do after running reactome part \n", - "#enrichment.parametric = run_enrichment(model_conc,view = 'complete', factors = factor_set,\n", - "# set.statistic = c(use_statistic),\n", - "# feature.sets = feature_set,\n", - "# sign = \"negative\", # alternatives: positive, negative, all\n", - "# statistical.test = use_test, # alternatives: \"parametric\", \"cor.adj.parametric\", \"permutation\".\n", - "# alpha = p_val_cutoff # defines the p-value cutoff for significant pathways\n", - "#)\n" - ] - }, { "cell_type": "code", "execution_count": 223, diff --git a/E/E9_Predictions_with_MOFA_Factors.ipynb b/E/E9_Predictions_with_MOFA_Factors.ipynb index baf24a5..45fc869 100644 --- a/E/E9_Predictions_with_MOFA_Factors.ipynb +++ b/E/E9_Predictions_with_MOFA_Factors.ipynb @@ -1229,10 +1229,7 @@ "source": [ "### Data to load for Factors and Gene Expression\n", "\n", - "version = 'V_FINAL_INTEGRATED_FALSE'\n", - "#version = 'V29_FALSEall'\n", - "#version = 'V29_FALSEall'\n", - "#version = 'V29w_o_clinical_FALSE'" + "version = 'V_FINAL_INTEGRATED_FALSE'" ] }, { @@ -1291,70 +1288,6 @@ "print(file.info(path)$mtime)" ] }, - { - "cell_type": "code", - "execution_count": 10, - "id": "d7ecf985-7a8a-4afd-b575-bdd780941ffb", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "
A data.frame: 2 × 30
X.1sample_idsampleidmeasurementlibraryid.ynamereadpatternmeta_datadelta_ef_value_groupdelta_ef_valuedelta_ef_value_classef_classification_dataCKCK_MBTroponinCRPclinical_data
<int><chr><chr><dbl><chr><chr><chr><chr><chr><chr><int><chr><dbl><chr><int><int><chr><dbl><chr><int>
11k1 K1 1TP0L13HTO_B0251No-CCS-1 R25PNNNNNNNNNN(BC)1NANANA0430.0130.41
22k10K1010TP0L11HTO_B0256Ch-CCS-10R25PNNNNNNNNNN(BC)1NANANA0NA NA0.21
\n" - ], - "text/latex": [ - "A data.frame: 2 × 30\n", - "\\begin{tabular}{r|lllllllllllllllllllll}\n", - " & X.1 & sample\\_id & sample & id & measurement & library & id.y & name & read & pattern & ⋯ & meta\\_data & delta\\_ef\\_value\\_group & delta\\_ef\\_value & delta\\_ef\\_value\\_class & ef\\_classification\\_data & CK & CK\\_MB & Troponin & CRP & clinical\\_data\\\\\n", - " & & & & & & & & & & & ⋯ & & & & & & & & & & \\\\\n", - "\\hline\n", - "\t1 & 1 & k1 & K1 & 1 & TP0 & L13 & HTO\\_B0251 & No-CCS-1 & R2 & 5PNNNNNNNNNN(BC) & ⋯ & 1 & NA & NA & NA & 0 & 43 & & 0.013 & 0.4 & 1\\\\\n", - "\t2 & 2 & k10 & K10 & 10 & TP0 & L11 & HTO\\_B0256 & Ch-CCS-10 & R2 & 5PNNNNNNNNNN(BC) & ⋯ & 1 & NA & NA & NA & 0 & NA & & NA & 0.2 & 1\\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A data.frame: 2 × 30\n", - "\n", - "| | X.1 <int> | sample_id <chr> | sample <chr> | id <dbl> | measurement <chr> | library <chr> | id.y <chr> | name <chr> | read <chr> | pattern <chr> | ⋯ ⋯ | meta_data <int> | delta_ef_value_group <chr> | delta_ef_value <dbl> | delta_ef_value_class <chr> | ef_classification_data <int> | CK <int> | CK_MB <chr> | Troponin <dbl> | CRP <chr> | clinical_data <int> |\n", - "|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|\n", - "| 1 | 1 | k1 | K1 | 1 | TP0 | L13 | HTO_B0251 | No-CCS-1 | R2 | 5PNNNNNNNNNN(BC) | ⋯ | 1 | NA | NA | NA | 0 | 43 | | 0.013 | 0.4 | 1 |\n", - "| 2 | 2 | k10 | K10 | 10 | TP0 | L11 | HTO_B0256 | Ch-CCS-10 | R2 | 5PNNNNNNNNNN(BC) | ⋯ | 1 | NA | NA | NA | 0 | NA | | NA | 0.2 | 1 |\n", - "\n" - ], - "text/plain": [ - " X.1 sample_id sample id measurement library id.y name read\n", - "1 1 k1 K1 1 TP0 L13 HTO_B0251 No-CCS-1 R2 \n", - "2 2 k10 K10 10 TP0 L11 HTO_B0256 Ch-CCS-10 R2 \n", - " pattern ⋯ meta_data delta_ef_value_group delta_ef_value\n", - "1 5PNNNNNNNNNN(BC) ⋯ 1 NA NA \n", - "2 5PNNNNNNNNNN(BC) ⋯ 1 NA NA \n", - " delta_ef_value_class ef_classification_data CK CK_MB Troponin CRP\n", - "1 NA 0 43 0.013 0.4\n", - "2 NA 0 NA NA 0.2\n", - " clinical_data\n", - "1 1 \n", - "2 1 " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "head(sample_data,2)" - ] - }, { "cell_type": "code", "execution_count": null, @@ -1363,171 +1296,6 @@ "outputs": [], "source": [] }, - { - "cell_type": "code", - "execution_count": 11, - "id": "def76611-1e4c-46a9-8ac8-f00c221a0a51", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "
  1. 'K1'
  2. 'K10'
  3. 'K11'
  4. 'K12'
  5. 'K13'
  6. 'K14'
  7. 'K15'
  8. 'K16'
  9. 'K17'
  10. 'K18'
  11. 'K19'
  12. 'K2'
  13. 'K20'
  14. 'K21'
  15. 'K22'
  16. 'K23'
  17. 'K24'
  18. 'K25'
  19. 'K26'
  20. 'K27'
  21. 'K28'
  22. 'K29'
  23. 'K3'
  24. 'K30'
  25. 'K31'
  26. 'K32'
  27. 'K33'
  28. 'K34'
  29. 'K4'
  30. 'K5'
  31. 'K6'
  32. 'K7'
  33. 'K8'
  34. 'K9'
  35. 'M1'
  36. 'M10'
  37. 'M11'
  38. 'M12'
  39. 'M13'
  40. 'M14'
  41. 'M15'
  42. 'M16'
  43. 'M17'
  44. 'M18'
  45. 'M19'
  46. 'M2'
  47. 'M20'
  48. 'M21'
  49. 'M22'
  50. 'M23'
  51. 'M24'
  52. 'M25'
  53. 'M26'
  54. 'M27'
  55. 'M28'
  56. 'M3'
  57. 'M4'
  58. 'M5'
  59. 'M6'
  60. 'M7'
  61. 'M8'
  62. 'M9'
\n" - ], - "text/latex": [ - "\\begin{enumerate*}\n", - "\\item 'K1'\n", - "\\item 'K10'\n", - "\\item 'K11'\n", - "\\item 'K12'\n", - "\\item 'K13'\n", - "\\item 'K14'\n", - "\\item 'K15'\n", - "\\item 'K16'\n", - "\\item 'K17'\n", - "\\item 'K18'\n", - "\\item 'K19'\n", - "\\item 'K2'\n", - "\\item 'K20'\n", - "\\item 'K21'\n", - "\\item 'K22'\n", - "\\item 'K23'\n", - "\\item 'K24'\n", - "\\item 'K25'\n", - "\\item 'K26'\n", - "\\item 'K27'\n", - "\\item 'K28'\n", - "\\item 'K29'\n", - "\\item 'K3'\n", - "\\item 'K30'\n", - "\\item 'K31'\n", - "\\item 'K32'\n", - "\\item 'K33'\n", - "\\item 'K34'\n", - "\\item 'K4'\n", - "\\item 'K5'\n", - "\\item 'K6'\n", - "\\item 'K7'\n", - "\\item 'K8'\n", - "\\item 'K9'\n", - "\\item 'M1'\n", - "\\item 'M10'\n", - "\\item 'M11'\n", - "\\item 'M12'\n", - "\\item 'M13'\n", - "\\item 'M14'\n", - "\\item 'M15'\n", - "\\item 'M16'\n", - "\\item 'M17'\n", - "\\item 'M18'\n", - "\\item 'M19'\n", - "\\item 'M2'\n", - "\\item 'M20'\n", - "\\item 'M21'\n", - "\\item 'M22'\n", - "\\item 'M23'\n", - "\\item 'M24'\n", - "\\item 'M25'\n", - "\\item 'M26'\n", - "\\item 'M27'\n", - "\\item 'M28'\n", - "\\item 'M3'\n", - "\\item 'M4'\n", - "\\item 'M5'\n", - "\\item 'M6'\n", - "\\item 'M7'\n", - "\\item 'M8'\n", - "\\item 'M9'\n", - "\\end{enumerate*}\n" - ], - "text/markdown": [ - "1. 'K1'\n", - "2. 'K10'\n", - "3. 'K11'\n", - "4. 'K12'\n", - "5. 'K13'\n", - "6. 'K14'\n", - "7. 'K15'\n", - "8. 'K16'\n", - "9. 'K17'\n", - "10. 'K18'\n", - "11. 'K19'\n", - "12. 'K2'\n", - "13. 'K20'\n", - "14. 'K21'\n", - "15. 'K22'\n", - "16. 'K23'\n", - "17. 'K24'\n", - "18. 'K25'\n", - "19. 'K26'\n", - "20. 'K27'\n", - "21. 'K28'\n", - "22. 'K29'\n", - "23. 'K3'\n", - "24. 'K30'\n", - "25. 'K31'\n", - "26. 'K32'\n", - "27. 'K33'\n", - "28. 'K34'\n", - "29. 'K4'\n", - "30. 'K5'\n", - "31. 'K6'\n", - "32. 'K7'\n", - "33. 'K8'\n", - "34. 'K9'\n", - "35. 'M1'\n", - "36. 'M10'\n", - "37. 'M11'\n", - "38. 'M12'\n", - "39. 'M13'\n", - "40. 'M14'\n", - "41. 'M15'\n", - "42. 'M16'\n", - "43. 'M17'\n", - "44. 'M18'\n", - "45. 'M19'\n", - "46. 'M2'\n", - "47. 'M20'\n", - "48. 'M21'\n", - "49. 'M22'\n", - "50. 'M23'\n", - "51. 'M24'\n", - "52. 'M25'\n", - "53. 'M26'\n", - "54. 'M27'\n", - "55. 'M28'\n", - "56. 'M3'\n", - "57. 'M4'\n", - "58. 'M5'\n", - "59. 'M6'\n", - "60. 'M7'\n", - "61. 'M8'\n", - "62. 'M9'\n", - "\n", - "\n" - ], - "text/plain": [ - " [1] \"K1\" \"K10\" \"K11\" \"K12\" \"K13\" \"K14\" \"K15\" \"K16\" \"K17\" \"K18\" \"K19\" \"K2\" \n", - "[13] \"K20\" \"K21\" \"K22\" \"K23\" \"K24\" \"K25\" \"K26\" \"K27\" \"K28\" \"K29\" \"K3\" \"K30\"\n", - "[25] \"K31\" \"K32\" \"K33\" \"K34\" \"K4\" \"K5\" \"K6\" \"K7\" \"K8\" \"K9\" \"M1\" \"M10\"\n", - "[37] \"M11\" \"M12\" \"M13\" \"M14\" \"M15\" \"M16\" \"M17\" \"M18\" \"M19\" \"M2\" \"M20\" \"M21\"\n", - "[49] \"M22\" \"M23\" \"M24\" \"M25\" \"M26\" \"M27\" \"M28\" \"M3\" \"M4\" \"M5\" \"M6\" \"M7\" \n", - "[61] \"M8\" \"M9\" " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "unique(sample_data$sample)" - ] - }, { "cell_type": "code", "execution_count": 12, @@ -1539,35 +1307,6 @@ "patients_filter = unique(sample_data$sample_id) # use all samples" ] }, - { - "cell_type": "code", - "execution_count": 13, - "id": "578b3431-bbb3-41e0-8839-e72267b2add1", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "0" - ], - "text/latex": [ - "0" - ], - "text/markdown": [ - "0" - ], - "text/plain": [ - "[1] 0" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "sum(patients_filter == 'm.20.1')" - ] - }, { "cell_type": "code", "execution_count": 14, @@ -1632,636 +1371,6 @@ "unique(sample_data$delta_ef_value_class_summarized)" ] }, - { - "cell_type": "code", - "execution_count": 24, - "id": "48f1ca57-1fcb-43f8-af18-c7eef5dd9652", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\u001b[1m\u001b[22m`summarise()` has grouped output by 'delta_ef_value_class_summarized'. You can\n", - "override using the `.groups` argument.\n" - ] - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "
A grouped_df: 4 × 5
delta_ef_value_class_summarizeddelta_ef_value_classamountmin_dfmax_df
<chr><chr><int><dbl><dbl>
bad bad 7-2.50-0.060
goodgood 7 1.1514.300
goodintermediate 7 0.00 0.875
NA NA 41 NA NA
\n" - ], - "text/latex": [ - "A grouped\\_df: 4 × 5\n", - "\\begin{tabular}{lllll}\n", - " delta\\_ef\\_value\\_class\\_summarized & delta\\_ef\\_value\\_class & amount & min\\_df & max\\_df\\\\\n", - " & & & & \\\\\n", - "\\hline\n", - "\t bad & bad & 7 & -2.50 & -0.060\\\\\n", - "\t good & good & 7 & 1.15 & 14.300\\\\\n", - "\t good & intermediate & 7 & 0.00 & 0.875\\\\\n", - "\t NA & NA & 41 & NA & NA\\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A grouped_df: 4 × 5\n", - "\n", - "| delta_ef_value_class_summarized <chr> | delta_ef_value_class <chr> | amount <int> | min_df <dbl> | max_df <dbl> |\n", - "|---|---|---|---|---|\n", - "| bad | bad | 7 | -2.50 | -0.060 |\n", - "| good | good | 7 | 1.15 | 14.300 |\n", - "| good | intermediate | 7 | 0.00 | 0.875 |\n", - "| NA | NA | 41 | NA | NA |\n", - "\n" - ], - "text/plain": [ - " delta_ef_value_class_summarized delta_ef_value_class amount min_df max_df\n", - "1 bad bad 7 -2.50 -0.060\n", - "2 good good 7 1.15 14.300\n", - "3 good intermediate 7 0.00 0.875\n", - "4 NA NA 41 NA NA" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "unique(sample_data[,c('sample', 'delta_ef_value_class_summarized', 'delta_ef_value', 'delta_ef_value_class')]) %>% group_by(delta_ef_value_class_summarized, delta_ef_value_class) %>% summarise(amount = n(), min_df = min(delta_ef_value), max_df = max(delta_ef_value))" - ] - }, - { - "cell_type": "code", - "execution_count": 25, - "id": "f8438f4f-e19c-4b23-8683-2ecf35f580a5", - "metadata": {}, - "outputs": [], - "source": [ - "test = unique(sample_data[,c('sample', 'delta_ef_value_class_summarized', 'delta_ef_value', 'delta_ef_value_class')]) " - ] - }, - { - "cell_type": "code", - "execution_count": 27, - "id": "63b8dff8-0403-409f-ba86-9af23ab530a6", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "
A data.frame: 62 × 4
sampledelta_ef_value_class_summarizeddelta_ef_valuedelta_ef_value_class
<chr><chr><dbl><chr>
72M18bad -2.500bad
51M13bad -2.200bad
56M14bad -1.300bad
84M20bad -1.000bad
112M27bad -0.667bad
39M10bad -0.300bad
120M3 bad -0.060bad
96M23good 0.000intermediate
92M22good 0.067intermediate
128M5 good 0.083intermediate
108M26good 0.300intermediate
104M25good 0.690intermediate
138M7 good 0.750intermediate
132M6 good 0.875intermediate
76M19good 1.150good
80M2 good 1.150good
116M28good 2.250good
124M4 good 3.100good
88M21good 3.550good
60M15good 5.200good
146M9 good14.300good
1K1 NA NANA
2K10NA NANA
3K11NA NANA
4K12NA NANA
5K13NA NANA
6K14NA NANA
7K15NA NANA
8K16NA NANA
9K17NA NANA
12K2 NANANA
13K20NANANA
14K21NANANA
15K22NANANA
16K23NANANA
17K24NANANA
18K25NANANA
19K26NANANA
20K27NANANA
21K28NANANA
22K29NANANA
23K3 NANANA
24K30NANANA
25K31NANANA
26K32NANANA
27K33NANANA
28K34NANANA
29K4 NANANA
30K5 NANANA
31K6 NANANA
32K7 NANANA
33K8 NANANA
34K9 NANANA
35M1 NANANA
43M11NANANA
47M12NANANA
64M16NANANA
68M17NANANA
100M24NANANA
142M8 NANANA
\n" - ], - "text/latex": [ - "A data.frame: 62 × 4\n", - "\\begin{tabular}{r|llll}\n", - " & sample & delta\\_ef\\_value\\_class\\_summarized & delta\\_ef\\_value & delta\\_ef\\_value\\_class\\\\\n", - " & & & & \\\\\n", - "\\hline\n", - "\t72 & M18 & bad & -2.500 & bad \\\\\n", - "\t51 & M13 & bad & -2.200 & bad \\\\\n", - "\t56 & M14 & bad & -1.300 & bad \\\\\n", - "\t84 & M20 & bad & -1.000 & bad \\\\\n", - "\t112 & M27 & bad & -0.667 & bad \\\\\n", - "\t39 & M10 & bad & -0.300 & bad \\\\\n", - "\t120 & M3 & bad & -0.060 & bad \\\\\n", - "\t96 & M23 & good & 0.000 & intermediate\\\\\n", - "\t92 & M22 & good & 0.067 & intermediate\\\\\n", - "\t128 & M5 & good & 0.083 & intermediate\\\\\n", - "\t108 & M26 & good & 0.300 & intermediate\\\\\n", - "\t104 & M25 & good & 0.690 & intermediate\\\\\n", - "\t138 & M7 & good & 0.750 & intermediate\\\\\n", - "\t132 & M6 & good & 0.875 & intermediate\\\\\n", - "\t76 & M19 & good & 1.150 & good \\\\\n", - "\t80 & M2 & good & 1.150 & good \\\\\n", - "\t116 & M28 & good & 2.250 & good \\\\\n", - "\t124 & M4 & good & 3.100 & good \\\\\n", - "\t88 & M21 & good & 3.550 & good \\\\\n", - "\t60 & M15 & good & 5.200 & good \\\\\n", - "\t146 & M9 & good & 14.300 & good \\\\\n", - "\t1 & K1 & NA & NA & NA \\\\\n", - "\t2 & K10 & NA & NA & NA \\\\\n", - "\t3 & K11 & NA & NA & NA \\\\\n", - "\t4 & K12 & NA & NA & NA \\\\\n", - "\t5 & K13 & NA & NA & NA \\\\\n", - "\t6 & K14 & NA & NA & NA \\\\\n", - "\t7 & K15 & NA & NA & NA \\\\\n", - "\t8 & K16 & NA & NA & NA \\\\\n", - "\t9 & K17 & NA & NA & NA \\\\\n", - "\t⋮ & ⋮ & ⋮ & ⋮ & ⋮\\\\\n", - "\t12 & K2 & NA & NA & NA\\\\\n", - "\t13 & K20 & NA & NA & NA\\\\\n", - "\t14 & K21 & NA & NA & NA\\\\\n", - "\t15 & K22 & NA & NA & NA\\\\\n", - "\t16 & K23 & NA & NA & NA\\\\\n", - "\t17 & K24 & NA & NA & NA\\\\\n", - "\t18 & K25 & NA & NA & NA\\\\\n", - "\t19 & K26 & NA & NA & NA\\\\\n", - "\t20 & K27 & NA & NA & NA\\\\\n", - "\t21 & K28 & NA & NA & NA\\\\\n", - "\t22 & K29 & NA & NA & NA\\\\\n", - "\t23 & K3 & NA & NA & NA\\\\\n", - "\t24 & K30 & NA & NA & NA\\\\\n", - "\t25 & K31 & NA & NA & NA\\\\\n", - "\t26 & K32 & NA & NA & NA\\\\\n", - "\t27 & K33 & NA & NA & NA\\\\\n", - "\t28 & K34 & NA & NA & NA\\\\\n", - "\t29 & K4 & NA & NA & NA\\\\\n", - "\t30 & K5 & NA & NA & NA\\\\\n", - "\t31 & K6 & NA & NA & NA\\\\\n", - "\t32 & K7 & NA & NA & NA\\\\\n", - "\t33 & K8 & NA & NA & NA\\\\\n", - "\t34 & K9 & NA & NA & NA\\\\\n", - "\t35 & M1 & NA & NA & NA\\\\\n", - "\t43 & M11 & NA & NA & NA\\\\\n", - "\t47 & M12 & NA & NA & NA\\\\\n", - "\t64 & M16 & NA & NA & NA\\\\\n", - "\t68 & M17 & NA & NA & NA\\\\\n", - "\t100 & M24 & NA & NA & NA\\\\\n", - "\t142 & M8 & NA & NA & NA\\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A data.frame: 62 × 4\n", - "\n", - "| | sample <chr> | delta_ef_value_class_summarized <chr> | delta_ef_value <dbl> | delta_ef_value_class <chr> |\n", - "|---|---|---|---|---|\n", - "| 72 | M18 | bad | -2.500 | bad |\n", - "| 51 | M13 | bad | -2.200 | bad |\n", - "| 56 | M14 | bad | -1.300 | bad |\n", - "| 84 | M20 | bad | -1.000 | bad |\n", - "| 112 | M27 | bad | -0.667 | bad |\n", - "| 39 | M10 | bad | -0.300 | bad |\n", - "| 120 | M3 | bad | -0.060 | bad |\n", - "| 96 | M23 | good | 0.000 | intermediate |\n", - "| 92 | M22 | good | 0.067 | intermediate |\n", - "| 128 | M5 | good | 0.083 | intermediate |\n", - "| 108 | M26 | good | 0.300 | intermediate |\n", - "| 104 | M25 | good | 0.690 | intermediate |\n", - "| 138 | M7 | good | 0.750 | intermediate |\n", - "| 132 | M6 | good | 0.875 | intermediate |\n", - "| 76 | M19 | good | 1.150 | good |\n", - "| 80 | M2 | good | 1.150 | good |\n", - "| 116 | M28 | good | 2.250 | good |\n", - "| 124 | M4 | good | 3.100 | good |\n", - "| 88 | M21 | good | 3.550 | good |\n", - "| 60 | M15 | good | 5.200 | good |\n", - "| 146 | M9 | good | 14.300 | good |\n", - "| 1 | K1 | NA | NA | NA |\n", - "| 2 | K10 | NA | NA | NA |\n", - "| 3 | K11 | NA | NA | NA |\n", - "| 4 | K12 | NA | NA | NA |\n", - "| 5 | K13 | NA | NA | NA |\n", - "| 6 | K14 | NA | NA | NA |\n", - "| 7 | K15 | NA | NA | NA |\n", - "| 8 | K16 | NA | NA | NA |\n", - "| 9 | K17 | NA | NA | NA |\n", - "| ⋮ | ⋮ | ⋮ | ⋮ | ⋮ |\n", - "| 12 | K2 | NA | NA | NA |\n", - "| 13 | K20 | NA | NA | NA |\n", - "| 14 | K21 | NA | NA | NA |\n", - "| 15 | K22 | NA | NA | NA |\n", - "| 16 | K23 | NA | NA | NA |\n", - "| 17 | K24 | NA | NA | NA |\n", - "| 18 | K25 | NA | NA | NA |\n", - "| 19 | K26 | NA | NA | NA |\n", - "| 20 | K27 | NA | NA | NA |\n", - "| 21 | K28 | NA | NA | NA |\n", - "| 22 | K29 | NA | NA | NA |\n", - "| 23 | K3 | NA | NA | NA |\n", - "| 24 | K30 | NA | NA | NA |\n", - "| 25 | K31 | NA | NA | NA |\n", - "| 26 | K32 | NA | NA | NA |\n", - "| 27 | K33 | NA | NA | NA |\n", - "| 28 | K34 | NA | NA | NA |\n", - "| 29 | K4 | NA | NA | NA |\n", - "| 30 | K5 | NA | NA | NA |\n", - "| 31 | K6 | NA | NA | NA |\n", - "| 32 | K7 | NA | NA | NA |\n", - "| 33 | K8 | NA | NA | NA |\n", - "| 34 | K9 | NA | NA | NA |\n", - "| 35 | M1 | NA | NA | NA |\n", - "| 43 | M11 | NA | NA | NA |\n", - "| 47 | M12 | NA | NA | NA |\n", - "| 64 | M16 | NA | NA | NA |\n", - "| 68 | M17 | NA | NA | NA |\n", - "| 100 | M24 | NA | NA | NA |\n", - "| 142 | M8 | NA | NA | NA |\n", - "\n" - ], - "text/plain": [ - " sample delta_ef_value_class_summarized delta_ef_value delta_ef_value_class\n", - "72 M18 bad -2.500 bad \n", - "51 M13 bad -2.200 bad \n", - "56 M14 bad -1.300 bad \n", - "84 M20 bad -1.000 bad \n", - "112 M27 bad -0.667 bad \n", - "39 M10 bad -0.300 bad \n", - "120 M3 bad -0.060 bad \n", - "96 M23 good 0.000 intermediate \n", - "92 M22 good 0.067 intermediate \n", - "128 M5 good 0.083 intermediate \n", - "108 M26 good 0.300 intermediate \n", - "104 M25 good 0.690 intermediate \n", - "138 M7 good 0.750 intermediate \n", - "132 M6 good 0.875 intermediate \n", - "76 M19 good 1.150 good \n", - "80 M2 good 1.150 good \n", - "116 M28 good 2.250 good \n", - "124 M4 good 3.100 good \n", - "88 M21 good 3.550 good \n", - "60 M15 good 5.200 good \n", - "146 M9 good 14.300 good \n", - "1 K1 NA NA NA \n", - "2 K10 NA NA NA \n", - "3 K11 NA NA NA \n", - "4 K12 NA NA NA \n", - "5 K13 NA NA NA \n", - "6 K14 NA NA NA \n", - "7 K15 NA NA NA \n", - "8 K16 NA NA NA \n", - "9 K17 NA NA NA \n", - "⋮ ⋮ ⋮ ⋮ ⋮ \n", - "12 K2 NA NA NA \n", - "13 K20 NA NA NA \n", - "14 K21 NA NA NA \n", - "15 K22 NA NA NA \n", - "16 K23 NA NA NA \n", - "17 K24 NA NA NA \n", - "18 K25 NA NA NA \n", - "19 K26 NA NA NA \n", - "20 K27 NA NA NA \n", - "21 K28 NA NA NA \n", - "22 K29 NA NA NA \n", - "23 K3 NA NA NA \n", - "24 K30 NA NA NA \n", - "25 K31 NA NA NA \n", - "26 K32 NA NA NA \n", - "27 K33 NA NA NA \n", - "28 K34 NA NA NA \n", - "29 K4 NA NA NA \n", - "30 K5 NA NA NA \n", - "31 K6 NA NA NA \n", - "32 K7 NA NA NA \n", - "33 K8 NA NA NA \n", - "34 K9 NA NA NA \n", - "35 M1 NA NA NA \n", - "43 M11 NA NA NA \n", - "47 M12 NA NA NA \n", - "64 M16 NA NA NA \n", - "68 M17 NA NA NA \n", - "100 M24 NA NA NA \n", - "142 M8 NA NA NA " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "test[order(test$delta_ef_value),]" - ] - }, - { - "cell_type": "code", - "execution_count": 26, - "id": "0aa96da1-fde6-4661-b2b2-75dbd9d4a9ba", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "
A data.frame: 42 × 4
sampledelta_ef_value_class_summarizeddelta_ef_valuedelta_ef_value_class
<chr><chr><dbl><chr>
NANA NA NANA
NA.1NA NA NANA
NA.2NA NA NANA
NA.3NA NA NANA
NA.4NA NA NANA
NA.5NA NA NANA
NA.6NA NA NANA
NA.7NA NA NANA
NA.8NA NA NANA
NA.9NA NA NANA
NA.10NA NA NANA
NA.11NA NA NANA
NA.12NA NA NANA
NA.13NA NA NANA
NA.14NA NA NANA
NA.15NA NA NANA
NA.16NA NA NANA
NA.17NA NA NANA
NA.18NA NA NANA
NA.19NA NA NANA
NA.20NA NA NANA
NA.21NA NA NANA
NA.22NA NA NANA
NA.23NA NA NANA
NA.24NA NA NANA
NA.25NA NA NANA
NA.26NA NA NANA
NA.27NA NA NANA
NA.28NA NA NANA
NA.29NA NA NANA
NA.30NA NA NANA
NA.31NA NA NANA
NA.32NA NA NANA
NA.33NA NA NANA
NA.34NA NA NANA
NA.35NA NA NANA
NA.36NA NA NANA
NA.37NA NA NANA
NA.38NA NA NANA
96M23good 0intermediate
NA.39NA NA NANA
NA.40NA NA NANA
\n" - ], - "text/latex": [ - "A data.frame: 42 × 4\n", - "\\begin{tabular}{r|llll}\n", - " & sample & delta\\_ef\\_value\\_class\\_summarized & delta\\_ef\\_value & delta\\_ef\\_value\\_class\\\\\n", - " & & & & \\\\\n", - "\\hline\n", - "\tNA & NA & NA & NA & NA \\\\\n", - "\tNA.1 & NA & NA & NA & NA \\\\\n", - "\tNA.2 & NA & NA & NA & NA \\\\\n", - "\tNA.3 & NA & NA & NA & NA \\\\\n", - "\tNA.4 & NA & NA & NA & NA \\\\\n", - "\tNA.5 & NA & NA & NA & NA \\\\\n", - "\tNA.6 & NA & NA & NA & NA \\\\\n", - "\tNA.7 & NA & NA & NA & NA \\\\\n", - "\tNA.8 & NA & NA & NA & NA \\\\\n", - "\tNA.9 & NA & NA & NA & NA \\\\\n", - "\tNA.10 & NA & NA & NA & NA \\\\\n", - "\tNA.11 & NA & NA & NA & NA \\\\\n", - "\tNA.12 & NA & NA & NA & NA \\\\\n", - "\tNA.13 & NA & NA & NA & NA \\\\\n", - "\tNA.14 & NA & NA & NA & NA \\\\\n", - "\tNA.15 & NA & NA & NA & NA \\\\\n", - "\tNA.16 & NA & NA & NA & NA \\\\\n", - "\tNA.17 & NA & NA & NA & NA \\\\\n", - "\tNA.18 & NA & NA & NA & NA \\\\\n", - "\tNA.19 & NA & NA & NA & NA \\\\\n", - "\tNA.20 & NA & NA & NA & NA \\\\\n", - "\tNA.21 & NA & NA & NA & NA \\\\\n", - "\tNA.22 & NA & NA & NA & NA \\\\\n", - "\tNA.23 & NA & NA & NA & NA \\\\\n", - "\tNA.24 & NA & NA & NA & NA \\\\\n", - "\tNA.25 & NA & NA & NA & NA \\\\\n", - "\tNA.26 & NA & NA & NA & NA \\\\\n", - "\tNA.27 & NA & NA & NA & NA \\\\\n", - "\tNA.28 & NA & NA & NA & NA \\\\\n", - "\tNA.29 & NA & NA & NA & NA \\\\\n", - "\tNA.30 & NA & NA & NA & NA \\\\\n", - "\tNA.31 & NA & NA & NA & NA \\\\\n", - "\tNA.32 & NA & NA & NA & NA \\\\\n", - "\tNA.33 & NA & NA & NA & NA \\\\\n", - "\tNA.34 & NA & NA & NA & NA \\\\\n", - "\tNA.35 & NA & NA & NA & NA \\\\\n", - "\tNA.36 & NA & NA & NA & NA \\\\\n", - "\tNA.37 & NA & NA & NA & NA \\\\\n", - "\tNA.38 & NA & NA & NA & NA \\\\\n", - "\t96 & M23 & good & 0 & intermediate\\\\\n", - "\tNA.39 & NA & NA & NA & NA \\\\\n", - "\tNA.40 & NA & NA & NA & NA \\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A data.frame: 42 × 4\n", - "\n", - "| | sample <chr> | delta_ef_value_class_summarized <chr> | delta_ef_value <dbl> | delta_ef_value_class <chr> |\n", - "|---|---|---|---|---|\n", - "| NA | NA | NA | NA | NA |\n", - "| NA.1 | NA | NA | NA | NA |\n", - "| NA.2 | NA | NA | NA | NA |\n", - "| NA.3 | NA | NA | NA | NA |\n", - "| NA.4 | NA | NA | NA | NA |\n", - "| NA.5 | NA | NA | NA | NA |\n", - "| NA.6 | NA | NA | NA | NA |\n", - "| NA.7 | NA | NA | NA | NA |\n", - "| NA.8 | NA | NA | NA | NA |\n", - "| NA.9 | NA | NA | NA | NA |\n", - "| NA.10 | NA | NA | NA | NA |\n", - "| NA.11 | NA | NA | NA | NA |\n", - "| NA.12 | NA | NA | NA | NA |\n", - "| NA.13 | NA | NA | NA | NA |\n", - "| NA.14 | NA | NA | NA | NA |\n", - "| NA.15 | NA | NA | NA | NA |\n", - "| NA.16 | NA | NA | NA | NA |\n", - "| NA.17 | NA | NA | NA | NA |\n", - "| NA.18 | NA | NA | NA | NA |\n", - "| NA.19 | NA | NA | NA | NA |\n", - "| NA.20 | NA | NA | NA | NA |\n", - "| NA.21 | NA | NA | NA | NA |\n", - "| NA.22 | NA | NA | NA | NA |\n", - "| NA.23 | NA | NA | NA | NA |\n", - "| NA.24 | NA | NA | NA | NA |\n", - "| NA.25 | NA | NA | NA | NA |\n", - "| NA.26 | NA | NA | NA | NA |\n", - "| NA.27 | NA | NA | NA | NA |\n", - "| NA.28 | NA | NA | NA | NA |\n", - "| NA.29 | NA | NA | NA | NA |\n", - "| NA.30 | NA | NA | NA | NA |\n", - "| NA.31 | NA | NA | NA | NA |\n", - "| NA.32 | NA | NA | NA | NA |\n", - "| NA.33 | NA | NA | NA | NA |\n", - "| NA.34 | NA | NA | NA | NA |\n", - "| NA.35 | NA | NA | NA | NA |\n", - "| NA.36 | NA | NA | NA | NA |\n", - "| NA.37 | NA | NA | NA | NA |\n", - "| NA.38 | NA | NA | NA | NA |\n", - "| 96 | M23 | good | 0 | intermediate |\n", - "| NA.39 | NA | NA | NA | NA |\n", - "| NA.40 | NA | NA | NA | NA |\n", - "\n" - ], - "text/plain": [ - " sample delta_ef_value_class_summarized delta_ef_value\n", - "NA NA NA NA \n", - "NA.1 NA NA NA \n", - "NA.2 NA NA NA \n", - "NA.3 NA NA NA \n", - "NA.4 NA NA NA \n", - "NA.5 NA NA NA \n", - "NA.6 NA NA NA \n", - "NA.7 NA NA NA \n", - "NA.8 NA NA NA \n", - "NA.9 NA NA NA \n", - "NA.10 NA NA NA \n", - "NA.11 NA NA NA \n", - "NA.12 NA NA NA \n", - "NA.13 NA NA NA \n", - "NA.14 NA NA NA \n", - "NA.15 NA NA NA \n", - "NA.16 NA NA NA \n", - "NA.17 NA NA NA \n", - "NA.18 NA NA NA \n", - "NA.19 NA NA NA \n", - "NA.20 NA NA NA \n", - "NA.21 NA NA NA \n", - "NA.22 NA NA NA \n", - "NA.23 NA NA NA \n", - "NA.24 NA NA NA \n", - "NA.25 NA NA NA \n", - "NA.26 NA NA NA \n", - "NA.27 NA NA NA \n", - "NA.28 NA NA NA \n", - "NA.29 NA NA NA \n", - "NA.30 NA NA NA \n", - "NA.31 NA NA NA \n", - "NA.32 NA NA NA \n", - "NA.33 NA NA NA \n", - "NA.34 NA NA NA \n", - "NA.35 NA NA NA \n", - "NA.36 NA NA NA \n", - "NA.37 NA NA NA \n", - "NA.38 NA NA NA \n", - "96 M23 good 0 \n", - "NA.39 NA NA NA \n", - "NA.40 NA NA NA \n", - " delta_ef_value_class\n", - "NA NA \n", - "NA.1 NA \n", - "NA.2 NA \n", - "NA.3 NA \n", - "NA.4 NA \n", - "NA.5 NA \n", - "NA.6 NA \n", - "NA.7 NA \n", - "NA.8 NA \n", - "NA.9 NA \n", - "NA.10 NA \n", - "NA.11 NA \n", - "NA.12 NA \n", - "NA.13 NA \n", - "NA.14 NA \n", - "NA.15 NA \n", - "NA.16 NA \n", - "NA.17 NA \n", - "NA.18 NA \n", - "NA.19 NA \n", - "NA.20 NA \n", - "NA.21 NA \n", - "NA.22 NA \n", - "NA.23 NA \n", - "NA.24 NA \n", - "NA.25 NA \n", - "NA.26 NA \n", - "NA.27 NA \n", - "NA.28 NA \n", - "NA.29 NA \n", - "NA.30 NA \n", - "NA.31 NA \n", - "NA.32 NA \n", - "NA.33 NA \n", - "NA.34 NA \n", - "NA.35 NA \n", - "NA.36 NA \n", - "NA.37 NA \n", - "NA.38 NA \n", - "96 intermediate \n", - "NA.39 NA \n", - "NA.40 NA " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "test[test$delta_ef_value == 0,]" - ] - }, { "cell_type": "code", "execution_count": 17, @@ -2346,105 +1455,6 @@ "unique(sample_data$tp_outcome)" ] }, - { - "cell_type": "code", - "execution_count": 20, - "id": "e210c486-7d41-44bc-8a15-4210dbc07edd", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "
A data.frame: 7 × 32
X.1sample_idsampleidmeasurementlibraryid.ynamereadpatterndelta_ef_valuedelta_ef_value_classef_classification_dataCKCK_MBTroponinCRPclinical_datadelta_ef_value_class_summarizedtp_outcome
<int><chr><chr><dbl><chr><chr><chr><chr><chr><chr><dbl><chr><int><int><chr><dbl><chr><int><chr><chr>
39 39m10.1M1010.1TP1L1HTO_B026010.1R25PNNNNNNNNNN(BC)-0.300bad15116126224.9000.6 1badTP1_bad
51 51m13.1M1313.1TP1L2HTO_B025313.1R25PNNNNNNNNNN(BC)-2.200bad11446146 1.6900.3 1badTP1_bad
56 56m14.1M1414.1TP1L2HTO_B025414.1R25PNNNNNNNNNN(BC)-1.300bad12440168 9.3500.2 1badTP1_bad
72 72m18.1M1818.1TP1L2HTO_B025818.1R25PNNNNNNNNNN(BC)-2.500bad11341228 4.1900.2 1badTP1_bad
84 84m20.1M2020.1TP1NANA NA NANA -1.000bad1 66277 0.680<0,11badTP1_bad
112112m27.1M2727.1TP1L3HTO_B025727.1R25PNNNNNNNNNN(BC)-0.667bad1 587 0.6490.2 1badTP1_bad
120120m3.1 M3 3.1TP1NANA NA NANA -0.060bad1 NA NA- 1badTP1_bad
\n" - ], - "text/latex": [ - "A data.frame: 7 × 32\n", - "\\begin{tabular}{r|lllllllllllllllllllll}\n", - " & X.1 & sample\\_id & sample & id & measurement & library & id.y & name & read & pattern & ⋯ & delta\\_ef\\_value & delta\\_ef\\_value\\_class & ef\\_classification\\_data & CK & CK\\_MB & Troponin & CRP & clinical\\_data & delta\\_ef\\_value\\_class\\_summarized & tp\\_outcome\\\\\n", - " & & & & & & & & & & & ⋯ & & & & & & & & & & \\\\\n", - "\\hline\n", - "\t39 & 39 & m10.1 & M10 & 10.1 & TP1 & L1 & HTO\\_B0260 & 10.1 & R2 & 5PNNNNNNNNNN(BC) & ⋯ & -0.300 & bad & 1 & 5116 & 1262 & 24.900 & 0.6 & 1 & bad & TP1\\_bad\\\\\n", - "\t51 & 51 & m13.1 & M13 & 13.1 & TP1 & L2 & HTO\\_B0253 & 13.1 & R2 & 5PNNNNNNNNNN(BC) & ⋯ & -2.200 & bad & 1 & 1446 & 146 & 1.690 & 0.3 & 1 & bad & TP1\\_bad\\\\\n", - "\t56 & 56 & m14.1 & M14 & 14.1 & TP1 & L2 & HTO\\_B0254 & 14.1 & R2 & 5PNNNNNNNNNN(BC) & ⋯ & -1.300 & bad & 1 & 2440 & 168 & 9.350 & 0.2 & 1 & bad & TP1\\_bad\\\\\n", - "\t72 & 72 & m18.1 & M18 & 18.1 & TP1 & L2 & HTO\\_B0258 & 18.1 & R2 & 5PNNNNNNNNNN(BC) & ⋯ & -2.500 & bad & 1 & 1341 & 228 & 4.190 & 0.2 & 1 & bad & TP1\\_bad\\\\\n", - "\t84 & 84 & m20.1 & M20 & 20.1 & TP1 & NA & NA & NA & NA & NA & ⋯ & -1.000 & bad & 1 & 662 & 77 & 0.680 & <0,1 & 1 & bad & TP1\\_bad\\\\\n", - "\t112 & 112 & m27.1 & M27 & 27.1 & TP1 & L3 & HTO\\_B0257 & 27.1 & R2 & 5PNNNNNNNNNN(BC) & ⋯ & -0.667 & bad & 1 & 587 & & 0.649 & 0.2 & 1 & bad & TP1\\_bad\\\\\n", - "\t120 & 120 & m3.1 & M3 & 3.1 & TP1 & NA & NA & NA & NA & NA & ⋯ & -0.060 & bad & 1 & NA & & NA & - & 1 & bad & TP1\\_bad\\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A data.frame: 7 × 32\n", - "\n", - "| | X.1 <int> | sample_id <chr> | sample <chr> | id <dbl> | measurement <chr> | library <chr> | id.y <chr> | name <chr> | read <chr> | pattern <chr> | ⋯ ⋯ | delta_ef_value <dbl> | delta_ef_value_class <chr> | ef_classification_data <int> | CK <int> | CK_MB <chr> | Troponin <dbl> | CRP <chr> | clinical_data <int> | delta_ef_value_class_summarized <chr> | tp_outcome <chr> |\n", - "|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|\n", - "| 39 | 39 | m10.1 | M10 | 10.1 | TP1 | L1 | HTO_B0260 | 10.1 | R2 | 5PNNNNNNNNNN(BC) | ⋯ | -0.300 | bad | 1 | 5116 | 1262 | 24.900 | 0.6 | 1 | bad | TP1_bad |\n", - "| 51 | 51 | m13.1 | M13 | 13.1 | TP1 | L2 | HTO_B0253 | 13.1 | R2 | 5PNNNNNNNNNN(BC) | ⋯ | -2.200 | bad | 1 | 1446 | 146 | 1.690 | 0.3 | 1 | bad | TP1_bad |\n", - "| 56 | 56 | m14.1 | M14 | 14.1 | TP1 | L2 | HTO_B0254 | 14.1 | R2 | 5PNNNNNNNNNN(BC) | ⋯ | -1.300 | bad | 1 | 2440 | 168 | 9.350 | 0.2 | 1 | bad | TP1_bad |\n", - "| 72 | 72 | m18.1 | M18 | 18.1 | TP1 | L2 | HTO_B0258 | 18.1 | R2 | 5PNNNNNNNNNN(BC) | ⋯ | -2.500 | bad | 1 | 1341 | 228 | 4.190 | 0.2 | 1 | bad | TP1_bad |\n", - "| 84 | 84 | m20.1 | M20 | 20.1 | TP1 | NA | NA | NA | NA | NA | ⋯ | -1.000 | bad | 1 | 662 | 77 | 0.680 | <0,1 | 1 | bad | TP1_bad |\n", - "| 112 | 112 | m27.1 | M27 | 27.1 | TP1 | L3 | HTO_B0257 | 27.1 | R2 | 5PNNNNNNNNNN(BC) | ⋯ | -0.667 | bad | 1 | 587 | | 0.649 | 0.2 | 1 | bad | TP1_bad |\n", - "| 120 | 120 | m3.1 | M3 | 3.1 | TP1 | NA | NA | NA | NA | NA | ⋯ | -0.060 | bad | 1 | NA | | NA | - | 1 | bad | TP1_bad |\n", - "\n" - ], - "text/plain": [ - " X.1 sample_id sample id measurement library id.y name read\n", - "39 39 m10.1 M10 10.1 TP1 L1 HTO_B0260 10.1 R2 \n", - "51 51 m13.1 M13 13.1 TP1 L2 HTO_B0253 13.1 R2 \n", - "56 56 m14.1 M14 14.1 TP1 L2 HTO_B0254 14.1 R2 \n", - "72 72 m18.1 M18 18.1 TP1 L2 HTO_B0258 18.1 R2 \n", - "84 84 m20.1 M20 20.1 TP1 NA NA NA NA \n", - "112 112 m27.1 M27 27.1 TP1 L3 HTO_B0257 27.1 R2 \n", - "120 120 m3.1 M3 3.1 TP1 NA NA NA NA \n", - " pattern ⋯ delta_ef_value delta_ef_value_class\n", - "39 5PNNNNNNNNNN(BC) ⋯ -0.300 bad \n", - "51 5PNNNNNNNNNN(BC) ⋯ -2.200 bad \n", - "56 5PNNNNNNNNNN(BC) ⋯ -1.300 bad \n", - "72 5PNNNNNNNNNN(BC) ⋯ -2.500 bad \n", - "84 NA ⋯ -1.000 bad \n", - "112 5PNNNNNNNNNN(BC) ⋯ -0.667 bad \n", - "120 NA ⋯ -0.060 bad \n", - " ef_classification_data CK CK_MB Troponin CRP clinical_data\n", - "39 1 5116 1262 24.900 0.6 1 \n", - "51 1 1446 146 1.690 0.3 1 \n", - "56 1 2440 168 9.350 0.2 1 \n", - "72 1 1341 228 4.190 0.2 1 \n", - "84 1 662 77 0.680 <0,1 1 \n", - "112 1 587 0.649 0.2 1 \n", - "120 1 NA NA - 1 \n", - " delta_ef_value_class_summarized tp_outcome\n", - "39 bad TP1_bad \n", - "51 bad TP1_bad \n", - "56 bad TP1_bad \n", - "72 bad TP1_bad \n", - "84 bad TP1_bad \n", - "112 bad TP1_bad \n", - "120 bad TP1_bad " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "sample_data[sample_data$tp_outcome == 'TP1_bad',]" - ] - }, { "cell_type": "code", "execution_count": 22, @@ -2583,37 +1593,8 @@ }, { "cell_type": "code", - "execution_count": 26, - "id": "6645751a-e169-411e-9f24-50edbcaf7f9d", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "'../results/current/E-Analysis/Factor_Data_V_FINAL_INTEGRATED_FALSE.csv'" - ], - "text/latex": [ - "'../results/current/E-Analysis/Factor\\_Data\\_V\\_FINAL\\_INTEGRATED\\_FALSE.csv'" - ], - "text/markdown": [ - "'../results/current/E-Analysis/Factor_Data_V_FINAL_INTEGRATED_FALSE.csv'" - ], - "text/plain": [ - "[1] \"../results/current/E-Analysis/Factor_Data_V_FINAL_INTEGRATED_FALSE.csv\"" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "path" - ] - }, - { - "cell_type": "code", - "execution_count": 27, - "id": "226573f0-3feb-4653-8f30-d23626f4c0cf", + "execution_count": 27, + "id": "226573f0-3feb-4653-8f30-d23626f4c0cf", "metadata": {}, "outputs": [ { @@ -2716,61 +1697,6 @@ "print(file.info(path)$mtime)" ] }, - { - "cell_type": "code", - "execution_count": 29, - "id": "93973dad-2585-4d33-8ce6-e66d7234c01a", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "
A data.frame: 2 × 5
Xsample_idvariablevaluetype
<int><chr><chr><dbl><chr>
11k1 CK-2.397022clinical_data
22k10CK NAclinical_data
\n" - ], - "text/latex": [ - "A data.frame: 2 × 5\n", - "\\begin{tabular}{r|lllll}\n", - " & X & sample\\_id & variable & value & type\\\\\n", - " & & & & & \\\\\n", - "\\hline\n", - "\t1 & 1 & k1 & CK & -2.397022 & clinical\\_data\\\\\n", - "\t2 & 2 & k10 & CK & NA & clinical\\_data\\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A data.frame: 2 × 5\n", - "\n", - "| | X <int> | sample_id <chr> | variable <chr> | value <dbl> | type <chr> |\n", - "|---|---|---|---|---|---|\n", - "| 1 | 1 | k1 | CK | -2.397022 | clinical_data |\n", - "| 2 | 2 | k10 | CK | NA | clinical_data |\n", - "\n" - ], - "text/plain": [ - " X sample_id variable value type \n", - "1 1 k1 CK -2.397022 clinical_data\n", - "2 2 k10 CK NA clinical_data" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "head(data_long,2)" - ] - }, { "cell_type": "code", "execution_count": 30, @@ -2781,99 +1707,6 @@ "data_long$X = NULL" ] }, - { - "cell_type": "markdown", - "id": "fadae648-630f-4e69-90bc-13da36a2cb5e", - "metadata": {}, - "source": [ - "## Score Data for ccs vs no-ccs" - ] - }, - { - "cell_type": "code", - "execution_count": 31, - "id": "eb1d10ce-9784-4164-8cf4-98da9eaccd6f", - "metadata": {}, - "outputs": [], - "source": [ - "## TBD" - ] - }, - { - "cell_type": "code", - "execution_count": 32, - "id": "461b18e2-3151-4d0f-b0db-c8d85f25929c", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[1] \"2022-11-30 20:47:46 CET\"\n" - ] - } - ], - "source": [ - "path = paste0(data_path, '/preprocessed-data/meta-data/scores_prediction_prepared.csv')\n", - "ccs_scores = read.csv(path)\n", - "print(file.info(path)$mtime)" - ] - }, - { - "cell_type": "code", - "execution_count": 33, - "id": "a06c7f53-0870-406b-a2c4-f37a0092fbcf", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "
A data.frame: 2 × 4
sample_idscorescore_preparedclass
<chr><chr><dbl><chr>
1k14%0.04No CCS
2k2- NACCS
\n" - ], - "text/latex": [ - "A data.frame: 2 × 4\n", - "\\begin{tabular}{r|llll}\n", - " & sample\\_id & score & score\\_prepared & class\\\\\n", - " & & & & \\\\\n", - "\\hline\n", - "\t1 & k1 & 4\\% & 0.04 & No CCS \\\\\n", - "\t2 & k2 & - & NA & CCS \\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A data.frame: 2 × 4\n", - "\n", - "| | sample_id <chr> | score <chr> | score_prepared <dbl> | class <chr> |\n", - "|---|---|---|---|---|\n", - "| 1 | k1 | 4% | 0.04 | No CCS |\n", - "| 2 | k2 | - | NA | CCS |\n", - "\n" - ], - "text/plain": [ - " sample_id score score_prepared class \n", - "1 k1 4% 0.04 No CCS \n", - "2 k2 - NA CCS " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "head(ccs_scores,2)" - ] - }, { "cell_type": "markdown", "id": "06293c8c-9ba0-4def-ad81-0e02774ed7d6", @@ -2912,70 +1745,6 @@ "data = merge(factor_data, unique(sample_data[,c('sample_id', 'classification', 'measurement', 'delta_ef_value_class', 'delta_ef_value_class_summarized', 'tp_outcome', 'CK', 'CK_MB', 'Troponin', 'CRP')]), by.x = 'sample_id', by.y = 'sample_id')" ] }, - { - "cell_type": "code", - "execution_count": 37, - "id": "c8b87fd8-c85e-4ec2-898b-c2a978905ba3", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "
A data.frame: 2 × 30
sample_idFactor1Factor2Factor3Factor4Factor5Factor6Factor7Factor8Factor9Factor20classificationmeasurementdelta_ef_value_classdelta_ef_value_class_summarizedtp_outcomeCKCK_MBTroponinCRP
<chr><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><chr><chr><chr><chr><chr><int><chr><dbl><chr>
1k1 0.4811325-0.27313171.4988169-0.41356781.5052706-0.92308998-0.3904185-0.1944797 0.16486799-0.03085489vollstaendiger_ausschlussTP0NANATP0_NA430.0130.4
2k100.8920603-0.75477700.3501023-0.15244780.4074517-0.04596939 0.6276925-1.1656937-0.05003504-0.03818913ccs TP0NANATP0_NANA NA0.2
\n" - ], - "text/latex": [ - "A data.frame: 2 × 30\n", - "\\begin{tabular}{r|lllllllllllllllllllll}\n", - " & sample\\_id & Factor1 & Factor2 & Factor3 & Factor4 & Factor5 & Factor6 & Factor7 & Factor8 & Factor9 & ⋯ & Factor20 & classification & measurement & delta\\_ef\\_value\\_class & delta\\_ef\\_value\\_class\\_summarized & tp\\_outcome & CK & CK\\_MB & Troponin & CRP\\\\\n", - " & & & & & & & & & & & ⋯ & & & & & & & & & & \\\\\n", - "\\hline\n", - "\t1 & k1 & 0.4811325 & -0.2731317 & 1.4988169 & -0.4135678 & 1.5052706 & -0.92308998 & -0.3904185 & -0.1944797 & 0.16486799 & ⋯ & -0.03085489 & vollstaendiger\\_ausschluss & TP0 & NA & NA & TP0\\_NA & 43 & & 0.013 & 0.4\\\\\n", - "\t2 & k10 & 0.8920603 & -0.7547770 & 0.3501023 & -0.1524478 & 0.4074517 & -0.04596939 & 0.6276925 & -1.1656937 & -0.05003504 & ⋯ & -0.03818913 & ccs & TP0 & NA & NA & TP0\\_NA & NA & & NA & 0.2\\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A data.frame: 2 × 30\n", - "\n", - "| | sample_id <chr> | Factor1 <dbl> | Factor2 <dbl> | Factor3 <dbl> | Factor4 <dbl> | Factor5 <dbl> | Factor6 <dbl> | Factor7 <dbl> | Factor8 <dbl> | Factor9 <dbl> | ⋯ ⋯ | Factor20 <dbl> | classification <chr> | measurement <chr> | delta_ef_value_class <chr> | delta_ef_value_class_summarized <chr> | tp_outcome <chr> | CK <int> | CK_MB <chr> | Troponin <dbl> | CRP <chr> |\n", - "|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|\n", - "| 1 | k1 | 0.4811325 | -0.2731317 | 1.4988169 | -0.4135678 | 1.5052706 | -0.92308998 | -0.3904185 | -0.1944797 | 0.16486799 | ⋯ | -0.03085489 | vollstaendiger_ausschluss | TP0 | NA | NA | TP0_NA | 43 | | 0.013 | 0.4 |\n", - "| 2 | k10 | 0.8920603 | -0.7547770 | 0.3501023 | -0.1524478 | 0.4074517 | -0.04596939 | 0.6276925 | -1.1656937 | -0.05003504 | ⋯ | -0.03818913 | ccs | TP0 | NA | NA | TP0_NA | NA | | NA | 0.2 |\n", - "\n" - ], - "text/plain": [ - " sample_id Factor1 Factor2 Factor3 Factor4 Factor5 Factor6 \n", - "1 k1 0.4811325 -0.2731317 1.4988169 -0.4135678 1.5052706 -0.92308998\n", - "2 k10 0.8920603 -0.7547770 0.3501023 -0.1524478 0.4074517 -0.04596939\n", - " Factor7 Factor8 Factor9 ⋯ Factor20 classification \n", - "1 -0.3904185 -0.1944797 0.16486799 ⋯ -0.03085489 vollstaendiger_ausschluss\n", - "2 0.6276925 -1.1656937 -0.05003504 ⋯ -0.03818913 ccs \n", - " measurement delta_ef_value_class delta_ef_value_class_summarized tp_outcome\n", - "1 TP0 NA NA TP0_NA \n", - "2 TP0 NA NA TP0_NA \n", - " CK CK_MB Troponin CRP\n", - "1 43 0.013 0.4\n", - "2 NA NA 0.2" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "head(data,2)" - ] - }, { "cell_type": "code", "execution_count": 38, @@ -3089,70 +1858,6 @@ "colnames(gene_expression_data) = paste0('Normalized_', colnames(gene_expression_data))" ] }, - { - "cell_type": "code", - "execution_count": 44, - "id": "59080369-6501-4c61-8bed-c5f627b35234", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "
A data.frame: 2 × 12
Normalized_sample_idNormalized_CKNormalized_CK_MBNormalized_CRPNormalized_TroponinNormalized_X3_NK__CD53Normalized_X3_NK__CST7Normalized_X3_NK__FYNNormalized_X3_NK__GZMBNormalized_X3_NK__LITAFNormalized_X3_NK__PRF1Normalized_X3_NK__TXNIP
<chr><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl>
1k1 -2.397022NA-0.3186394-1.286479 NA NA NA NA NA NA NA
2k10 NANA-0.8871466 NA0.58531890.21042840.40791871.7316641.2815520.7554151.330562
\n" - ], - "text/latex": [ - "A data.frame: 2 × 12\n", - "\\begin{tabular}{r|llllllllllll}\n", - " & Normalized\\_sample\\_id & Normalized\\_CK & Normalized\\_CK\\_MB & Normalized\\_CRP & Normalized\\_Troponin & Normalized\\_X3\\_NK\\_\\_CD53 & Normalized\\_X3\\_NK\\_\\_CST7 & Normalized\\_X3\\_NK\\_\\_FYN & Normalized\\_X3\\_NK\\_\\_GZMB & Normalized\\_X3\\_NK\\_\\_LITAF & Normalized\\_X3\\_NK\\_\\_PRF1 & Normalized\\_X3\\_NK\\_\\_TXNIP\\\\\n", - " & & & & & & & & & & & & \\\\\n", - "\\hline\n", - "\t1 & k1 & -2.397022 & NA & -0.3186394 & -1.286479 & NA & NA & NA & NA & NA & NA & NA\\\\\n", - "\t2 & k10 & NA & NA & -0.8871466 & NA & 0.5853189 & 0.2104284 & 0.4079187 & 1.731664 & 1.281552 & 0.755415 & 1.330562\\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A data.frame: 2 × 12\n", - "\n", - "| | Normalized_sample_id <chr> | Normalized_CK <dbl> | Normalized_CK_MB <dbl> | Normalized_CRP <dbl> | Normalized_Troponin <dbl> | Normalized_X3_NK__CD53 <dbl> | Normalized_X3_NK__CST7 <dbl> | Normalized_X3_NK__FYN <dbl> | Normalized_X3_NK__GZMB <dbl> | Normalized_X3_NK__LITAF <dbl> | Normalized_X3_NK__PRF1 <dbl> | Normalized_X3_NK__TXNIP <dbl> |\n", - "|---|---|---|---|---|---|---|---|---|---|---|---|---|\n", - "| 1 | k1 | -2.397022 | NA | -0.3186394 | -1.286479 | NA | NA | NA | NA | NA | NA | NA |\n", - "| 2 | k10 | NA | NA | -0.8871466 | NA | 0.5853189 | 0.2104284 | 0.4079187 | 1.731664 | 1.281552 | 0.755415 | 1.330562 |\n", - "\n" - ], - "text/plain": [ - " Normalized_sample_id Normalized_CK Normalized_CK_MB Normalized_CRP\n", - "1 k1 -2.397022 NA -0.3186394 \n", - "2 k10 NA NA -0.8871466 \n", - " Normalized_Troponin Normalized_X3_NK__CD53 Normalized_X3_NK__CST7\n", - "1 -1.286479 NA NA \n", - "2 NA 0.5853189 0.2104284 \n", - " Normalized_X3_NK__FYN Normalized_X3_NK__GZMB Normalized_X3_NK__LITAF\n", - "1 NA NA NA \n", - "2 0.4079187 1.731664 1.281552 \n", - " Normalized_X3_NK__PRF1 Normalized_X3_NK__TXNIP\n", - "1 NA NA \n", - "2 0.755415 1.330562 " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "head(gene_expression_data,2)" - ] - }, { "cell_type": "code", "execution_count": 45, @@ -3270,73 +1975,6 @@ "nrow(data)" ] }, - { - "cell_type": "code", - "execution_count": 51, - "id": "0ced394f-7b63-459e-b42d-468d8550cc21", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "
A data.frame: 2 × 44
sample_idFactor1Factor2Factor3Factor4Factor5Factor6Factor7Factor8Factor9Normalized_X3_NK__CD53Normalized_X3_NK__CST7Normalized_X3_NK__FYNNormalized_X3_NK__GZMBNormalized_X3_NK__LITAFNormalized_X3_NK__PRF1Normalized_X3_NK__TXNIPscorescore_preparedclass
<chr><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><chr><dbl><chr>
1k1 0.4811325-0.27313171.4988169-0.41356781.5052706-0.92308998-0.3904185-0.1944797 0.16486799 NA NA NA NA NA NA NA4% 0.04No CCS
2k100.8920603-0.75477700.3501023-0.15244780.4074517-0.04596939 0.6276925-1.1656937-0.050035040.58531890.21042840.40791871.7316641.2815520.7554151.33056211%0.11CCS
\n" - ], - "text/latex": [ - "A data.frame: 2 × 44\n", - "\\begin{tabular}{r|lllllllllllllllllllll}\n", - " & sample\\_id & Factor1 & Factor2 & Factor3 & Factor4 & Factor5 & Factor6 & Factor7 & Factor8 & Factor9 & ⋯ & Normalized\\_X3\\_NK\\_\\_CD53 & Normalized\\_X3\\_NK\\_\\_CST7 & Normalized\\_X3\\_NK\\_\\_FYN & Normalized\\_X3\\_NK\\_\\_GZMB & Normalized\\_X3\\_NK\\_\\_LITAF & Normalized\\_X3\\_NK\\_\\_PRF1 & Normalized\\_X3\\_NK\\_\\_TXNIP & score & score\\_prepared & class\\\\\n", - " & & & & & & & & & & & ⋯ & & & & & & & & & & \\\\\n", - "\\hline\n", - "\t1 & k1 & 0.4811325 & -0.2731317 & 1.4988169 & -0.4135678 & 1.5052706 & -0.92308998 & -0.3904185 & -0.1944797 & 0.16486799 & ⋯ & NA & NA & NA & NA & NA & NA & NA & 4\\% & 0.04 & No CCS \\\\\n", - "\t2 & k10 & 0.8920603 & -0.7547770 & 0.3501023 & -0.1524478 & 0.4074517 & -0.04596939 & 0.6276925 & -1.1656937 & -0.05003504 & ⋯ & 0.5853189 & 0.2104284 & 0.4079187 & 1.731664 & 1.281552 & 0.755415 & 1.330562 & 11\\% & 0.11 & CCS \\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A data.frame: 2 × 44\n", - "\n", - "| | sample_id <chr> | Factor1 <dbl> | Factor2 <dbl> | Factor3 <dbl> | Factor4 <dbl> | Factor5 <dbl> | Factor6 <dbl> | Factor7 <dbl> | Factor8 <dbl> | Factor9 <dbl> | ⋯ ⋯ | Normalized_X3_NK__CD53 <dbl> | Normalized_X3_NK__CST7 <dbl> | Normalized_X3_NK__FYN <dbl> | Normalized_X3_NK__GZMB <dbl> | Normalized_X3_NK__LITAF <dbl> | Normalized_X3_NK__PRF1 <dbl> | Normalized_X3_NK__TXNIP <dbl> | score <chr> | score_prepared <dbl> | class <chr> |\n", - "|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|\n", - "| 1 | k1 | 0.4811325 | -0.2731317 | 1.4988169 | -0.4135678 | 1.5052706 | -0.92308998 | -0.3904185 | -0.1944797 | 0.16486799 | ⋯ | NA | NA | NA | NA | NA | NA | NA | 4% | 0.04 | No CCS |\n", - "| 2 | k10 | 0.8920603 | -0.7547770 | 0.3501023 | -0.1524478 | 0.4074517 | -0.04596939 | 0.6276925 | -1.1656937 | -0.05003504 | ⋯ | 0.5853189 | 0.2104284 | 0.4079187 | 1.731664 | 1.281552 | 0.755415 | 1.330562 | 11% | 0.11 | CCS |\n", - "\n" - ], - "text/plain": [ - " sample_id Factor1 Factor2 Factor3 Factor4 Factor5 Factor6 \n", - "1 k1 0.4811325 -0.2731317 1.4988169 -0.4135678 1.5052706 -0.92308998\n", - "2 k10 0.8920603 -0.7547770 0.3501023 -0.1524478 0.4074517 -0.04596939\n", - " Factor7 Factor8 Factor9 ⋯ Normalized_X3_NK__CD53\n", - "1 -0.3904185 -0.1944797 0.16486799 ⋯ NA \n", - "2 0.6276925 -1.1656937 -0.05003504 ⋯ 0.5853189 \n", - " Normalized_X3_NK__CST7 Normalized_X3_NK__FYN Normalized_X3_NK__GZMB\n", - "1 NA NA NA \n", - "2 0.2104284 0.4079187 1.731664 \n", - " Normalized_X3_NK__LITAF Normalized_X3_NK__PRF1 Normalized_X3_NK__TXNIP score\n", - "1 NA NA NA 4% \n", - "2 1.281552 0.755415 1.330562 11% \n", - " score_prepared class \n", - "1 0.04 No CCS \n", - "2 0.11 CCS " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "head(data,2)" - ] - }, { "cell_type": "markdown", "id": "c90e7f63-02b3-4dc2-9ffc-0e87d6012443", @@ -3567,152 +2205,18 @@ }, { "cell_type": "code", - "execution_count": 61, - "id": "c441e3da-ab7e-416b-b17f-c8d4ee55aa16", + "execution_count": 68, + "id": "ec5eefe8-3cfd-4f57-b2e7-6b866fae23ff", "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "
A data.frame: 5 × 6
ytp_outcomeFactor4Normalized_CKNormalized_CRPNormalized_Troponin
<chr><chr><dbl><dbl><dbl><dbl>
361TP1_bad 0.47349970.79612690.24423841.0000000
451TP1_bad 0.85588910.52243720.41823880.3199684
491TP1_bad 0.75604520.62361370.62702650.6369666
530TP1_good1.00000000.60514940.62702650.4206572
601TP1_bad 0.71186770.51340510.62702650.4735581
\n" - ], - "text/latex": [ - "A data.frame: 5 × 6\n", - "\\begin{tabular}{r|llllll}\n", - " & y & tp\\_outcome & Factor4 & Normalized\\_CK & Normalized\\_CRP & Normalized\\_Troponin\\\\\n", - " & & & & & & \\\\\n", - "\\hline\n", - "\t36 & 1 & TP1\\_bad & 0.4734997 & 0.7961269 & 0.2442384 & 1.0000000\\\\\n", - "\t45 & 1 & TP1\\_bad & 0.8558891 & 0.5224372 & 0.4182388 & 0.3199684\\\\\n", - "\t49 & 1 & TP1\\_bad & 0.7560452 & 0.6236137 & 0.6270265 & 0.6369666\\\\\n", - "\t53 & 0 & TP1\\_good & 1.0000000 & 0.6051494 & 0.6270265 & 0.4206572\\\\\n", - "\t60 & 1 & TP1\\_bad & 0.7118677 & 0.5134051 & 0.6270265 & 0.4735581\\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A data.frame: 5 × 6\n", - "\n", - "| | y <chr> | tp_outcome <chr> | Factor4 <dbl> | Normalized_CK <dbl> | Normalized_CRP <dbl> | Normalized_Troponin <dbl> |\n", - "|---|---|---|---|---|---|---|\n", - "| 36 | 1 | TP1_bad | 0.4734997 | 0.7961269 | 0.2442384 | 1.0000000 |\n", - "| 45 | 1 | TP1_bad | 0.8558891 | 0.5224372 | 0.4182388 | 0.3199684 |\n", - "| 49 | 1 | TP1_bad | 0.7560452 | 0.6236137 | 0.6270265 | 0.6369666 |\n", - "| 53 | 0 | TP1_good | 1.0000000 | 0.6051494 | 0.6270265 | 0.4206572 |\n", - "| 60 | 1 | TP1_bad | 0.7118677 | 0.5134051 | 0.6270265 | 0.4735581 |\n", - "\n" - ], - "text/plain": [ - " y tp_outcome Factor4 Normalized_CK Normalized_CRP Normalized_Troponin\n", - "36 1 TP1_bad 0.4734997 0.7961269 0.2442384 1.0000000 \n", - "45 1 TP1_bad 0.8558891 0.5224372 0.4182388 0.3199684 \n", - "49 1 TP1_bad 0.7560452 0.6236137 0.6270265 0.6369666 \n", - "53 0 TP1_good 1.0000000 0.6051494 0.6270265 0.4206572 \n", - "60 1 TP1_bad 0.7118677 0.5134051 0.6270265 0.4735581 " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ - "head(prediction_data,5)" + "## Alternative use GGPLOT IMPL" ] }, { "cell_type": "code", - "execution_count": 62, - "id": "93813b9c-5a32-42dd-b1dd-7ded4f5d3df7", - "metadata": {}, - "outputs": [], - "source": [ - "# Plot ROC curves (roc implementation DEPRECATED)" - ] - }, - { - "cell_type": "code", - "execution_count": 63, - "id": "d0843d7c-94b7-490b-9f93-585f371cf195", - "metadata": {}, - "outputs": [], - "source": [ - "#roc_list = list()" - ] - }, - { - "cell_type": "code", - "execution_count": 64, - "id": "dac42c0e-e87c-4ab0-bf5c-12acae564e7f", - "metadata": {}, - "outputs": [], - "source": [ - "#for(i in prediction_vars){\n", - "# roc_list[[i]] = roc(prediction_data$y ~ \n", - "# prediction_data[,i], plot = FALSE, print.auc = TRUE)\n", - "# }" - ] - }, - { - "cell_type": "code", - "execution_count": 65, - "id": "24cd30f9-8791-42ed-9329-a018e3742dfe", - "metadata": {}, - "outputs": [], - "source": [ - "#plot(roc_list[[2]])" - ] - }, - { - "cell_type": "code", - "execution_count": 66, - "id": "c80fa733-8423-43e9-a4e2-04b82f9d20f5", - "metadata": {}, - "outputs": [], - "source": [ - "## Add all onto each other (ROC implementation)" - ] - }, - { - "cell_type": "code", - "execution_count": 67, - "id": "f1c42e05-ff6e-427c-8827-2d3f1e01e7fe", - "metadata": {}, - "outputs": [], - "source": [ - "#plot(roc_list[[1]], col = 1, lty = 2, main = \"ROC\")\n", - "#for(i in 2:length(roc_list)){\n", - "# plot(roc_list[[i]], col = 4, lty = 3, add = TRUE)\n", - "# }\n", - " " - ] - }, - { - "cell_type": "code", - "execution_count": 68, - "id": "ec5eefe8-3cfd-4f57-b2e7-6b866fae23ff", - "metadata": {}, - "outputs": [], - "source": [ - "## Alternative use GGPLOT IMPL" - ] - }, - { - "cell_type": "code", - "execution_count": 69, - "id": "b9970f53-e916-4c2b-97a2-5957fa3a3d29", + "execution_count": 69, + "id": "b9970f53-e916-4c2b-97a2-5957fa3a3d29", "metadata": {}, "outputs": [ { @@ -4389,61 +2893,6 @@ "add_features = prediction_data %>% group_by(sample) %>% summarise(Mean_CK = mean(Normalized_CK, na.rm = TRUE), Max_CK = max(Normalized_CK, na.rm = TRUE), Mean_Troponin = mean(Normalized_Troponin, na.rm = TRUE), Max_Troponin = max(Normalized_Troponin, na.rm = TRUE))" ] }, - { - "cell_type": "code", - "execution_count": 101, - "id": "240a9c46-3810-47c4-9a6a-7b719df4ad7a", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "
A tibble: 2 × 5
sampleMean_CKMax_CKMean_TroponinMax_Troponin
<chr><dbl><dbl><dbl><dbl>
k1 -2.397022-2.397022-1.286479-1.286479
k10 NaN -Inf NaN -Inf
\n" - ], - "text/latex": [ - "A tibble: 2 × 5\n", - "\\begin{tabular}{lllll}\n", - " sample & Mean\\_CK & Max\\_CK & Mean\\_Troponin & Max\\_Troponin\\\\\n", - " & & & & \\\\\n", - "\\hline\n", - "\t k1 & -2.397022 & -2.397022 & -1.286479 & -1.286479\\\\\n", - "\t k10 & NaN & -Inf & NaN & -Inf\\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A tibble: 2 × 5\n", - "\n", - "| sample <chr> | Mean_CK <dbl> | Max_CK <dbl> | Mean_Troponin <dbl> | Max_Troponin <dbl> |\n", - "|---|---|---|---|---|\n", - "| k1 | -2.397022 | -2.397022 | -1.286479 | -1.286479 |\n", - "| k10 | NaN | -Inf | NaN | -Inf |\n", - "\n" - ], - "text/plain": [ - " sample Mean_CK Max_CK Mean_Troponin Max_Troponin\n", - "1 k1 -2.397022 -2.397022 -1.286479 -1.286479 \n", - "2 k10 NaN -Inf NaN -Inf " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "head(add_features,2)" - ] - }, { "cell_type": "code", "execution_count": 102, @@ -4498,64 +2947,6 @@ "prediction_data = merge(prediction_data[,c('sample', 'y', 'tp_outcome', 'Factor4')], add_features)" ] }, - { - "cell_type": "code", - "execution_count": 104, - "id": "822095da-df5e-4094-811e-a48ef67ebeaf", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "
A data.frame: 2 × 8
sampleytp_outcomeFactor4Mean_CKMax_CKMean_TroponinMax_Troponin
<chr><chr><chr><dbl><dbl><dbl><dbl><dbl>
1k1 TP0_NATP0_NA-0.4135678-2.397022-2.397022-1.286479-1.286479
2k10TP0_NATP0_NA-0.1524478 NaN -Inf NaN -Inf
\n" - ], - "text/latex": [ - "A data.frame: 2 × 8\n", - "\\begin{tabular}{r|llllllll}\n", - " & sample & y & tp\\_outcome & Factor4 & Mean\\_CK & Max\\_CK & Mean\\_Troponin & Max\\_Troponin\\\\\n", - " & & & & & & & & \\\\\n", - "\\hline\n", - "\t1 & k1 & TP0\\_NA & TP0\\_NA & -0.4135678 & -2.397022 & -2.397022 & -1.286479 & -1.286479\\\\\n", - "\t2 & k10 & TP0\\_NA & TP0\\_NA & -0.1524478 & NaN & -Inf & NaN & -Inf\\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A data.frame: 2 × 8\n", - "\n", - "| | sample <chr> | y <chr> | tp_outcome <chr> | Factor4 <dbl> | Mean_CK <dbl> | Max_CK <dbl> | Mean_Troponin <dbl> | Max_Troponin <dbl> |\n", - "|---|---|---|---|---|---|---|---|---|\n", - "| 1 | k1 | TP0_NA | TP0_NA | -0.4135678 | -2.397022 | -2.397022 | -1.286479 | -1.286479 |\n", - "| 2 | k10 | TP0_NA | TP0_NA | -0.1524478 | NaN | -Inf | NaN | -Inf |\n", - "\n" - ], - "text/plain": [ - " sample y tp_outcome Factor4 Mean_CK Max_CK Mean_Troponin\n", - "1 k1 TP0_NA TP0_NA -0.4135678 -2.397022 -2.397022 -1.286479 \n", - "2 k10 TP0_NA TP0_NA -0.1524478 NaN -Inf NaN \n", - " Max_Troponin\n", - "1 -1.286479 \n", - "2 -Inf " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "head(prediction_data,2)" - ] - }, { "cell_type": "code", "execution_count": 105, @@ -4569,76 +2960,6 @@ "prediction_data$y[prediction_data$y == prediction_subset[1]] = 0 # good outcome as control" ] }, - { - "cell_type": "code", - "execution_count": 106, - "id": "9cea637f-3496-4f08-83b5-1d7b99da659f", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Warning message in mean.default(col, ...):\n", - "“argument is not numeric or logical: returning NA”\n", - "Warning message in mean.default(col, ...):\n", - "“argument is not numeric or logical: returning NA”\n", - "\u001b[1m\u001b[22m`summarise()` has grouped output by 'tp_outcome'. You can override using the\n", - "`.groups` argument.\n" - ] - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "
A grouped_df: 2 × 8
tp_outcomeysampleFactor4Mean_CKMax_CKMean_TroponinMax_Troponin
<chr><chr><dbl><dbl><dbl><dbl><dbl><dbl>
TP1_bad 1NA-1.12592120.48263761.3192910.71359921.3862666
TP1_good0NA-0.62981320.32146611.0881530.31605420.7361031
\n" - ], - "text/latex": [ - "A grouped\\_df: 2 × 8\n", - "\\begin{tabular}{llllllll}\n", - " tp\\_outcome & y & sample & Factor4 & Mean\\_CK & Max\\_CK & Mean\\_Troponin & Max\\_Troponin\\\\\n", - " & & & & & & & \\\\\n", - "\\hline\n", - "\t TP1\\_bad & 1 & NA & -1.1259212 & 0.4826376 & 1.319291 & 0.7135992 & 1.3862666\\\\\n", - "\t TP1\\_good & 0 & NA & -0.6298132 & 0.3214661 & 1.088153 & 0.3160542 & 0.7361031\\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A grouped_df: 2 × 8\n", - "\n", - "| tp_outcome <chr> | y <chr> | sample <dbl> | Factor4 <dbl> | Mean_CK <dbl> | Max_CK <dbl> | Mean_Troponin <dbl> | Max_Troponin <dbl> |\n", - "|---|---|---|---|---|---|---|---|\n", - "| TP1_bad | 1 | NA | -1.1259212 | 0.4826376 | 1.319291 | 0.7135992 | 1.3862666 |\n", - "| TP1_good | 0 | NA | -0.6298132 | 0.3214661 | 1.088153 | 0.3160542 | 0.7361031 |\n", - "\n" - ], - "text/plain": [ - " tp_outcome y sample Factor4 Mean_CK Max_CK Mean_Troponin Max_Troponin\n", - "1 TP1_bad 1 NA -1.1259212 0.4826376 1.319291 0.7135992 1.3862666 \n", - "2 TP1_good 0 NA -0.6298132 0.3214661 1.088153 0.3160542 0.7361031 " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "## Check in which direction to adjust\n", - "prediction_data %>% group_by(tp_outcome,y) %>% summarise(across(everything(), mean, na.rm =TRUE))\n", - "\n", - "# predict bad --> higher values for bad" - ] - }, { "cell_type": "code", "execution_count": 107, @@ -4747,73 +3068,6 @@ "head(prediction_data,5)" ] }, - { - "cell_type": "code", - "execution_count": 111, - "id": "d8dbd8e6-7134-4b43-bfef-420d53b2f9ac", - "metadata": {}, - "outputs": [], - "source": [ - "# Plot ROC curves (roc implementation DEPRECATED)" - ] - }, - { - "cell_type": "code", - "execution_count": 112, - "id": "fc69c9f1-844a-4dbe-987b-861b59594c37", - "metadata": {}, - "outputs": [], - "source": [ - "#roc_list = list()" - ] - }, - { - "cell_type": "code", - "execution_count": 113, - "id": "7054e9ff-d097-450c-b1be-be511c967f4f", - "metadata": {}, - "outputs": [], - "source": [ - "#for(i in prediction_vars){\n", - "# roc_list[[i]] = roc(prediction_data$y ~ \n", - "# prediction_data[,i], plot = FALSE, print.auc = TRUE)\n", - "# }" - ] - }, - { - "cell_type": "code", - "execution_count": 114, - "id": "fca2e31d-62cb-42c2-8f1f-18853c201933", - "metadata": {}, - "outputs": [], - "source": [ - "#plot(roc_list[[2]])" - ] - }, - { - "cell_type": "code", - "execution_count": 115, - "id": "a32bddd7-cab5-4d7b-aa72-78f2387799f6", - "metadata": {}, - "outputs": [], - "source": [ - "## Add all onto each other (ROC implementation)" - ] - }, - { - "cell_type": "code", - "execution_count": 116, - "id": "59996873-04b1-4f82-ab22-ec318b622c25", - "metadata": {}, - "outputs": [], - "source": [ - "#plot(roc_list[[1]], col = 1, lty = 2, main = \"ROC\")\n", - "#for(i in 2:length(roc_list)){\n", - "# plot(roc_list[[i]], col = 4, lty = 3, add = TRUE)\n", - "# }\n", - " " - ] - }, { "cell_type": "code", "execution_count": 117, @@ -5357,118 +3611,49 @@ }, { "cell_type": "code", - "execution_count": 142, - "id": "32cd9e4f-19f5-4709-a1bf-497de0395837", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\u001b[1m\u001b[22m`summarise()` has grouped output by 'delta_ef_value_class_summarized'. You can\n", - "override using the `.groups` argument.\n" - ] - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "
A grouped_df: 2 × 6
delta_ef_value_class_summarizedyFactor4Normalized_CKNormalized_CRPNormalized_Troponin
<chr><chr><dbl><dbl><dbl><dbl>
bad 1-0.020449190.53710000.191008530.7732146
good0 0.173490690.33105410.094178530.3364290
\n" - ], - "text/latex": [ - "A grouped\\_df: 2 × 6\n", - "\\begin{tabular}{llllll}\n", - " delta\\_ef\\_value\\_class\\_summarized & y & Factor4 & Normalized\\_CK & Normalized\\_CRP & Normalized\\_Troponin\\\\\n", - " & & & & & \\\\\n", - "\\hline\n", - "\t bad & 1 & -0.02044919 & 0.5371000 & 0.19100853 & 0.7732146\\\\\n", - "\t good & 0 & 0.17349069 & 0.3310541 & 0.09417853 & 0.3364290\\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A grouped_df: 2 × 6\n", - "\n", - "| delta_ef_value_class_summarized <chr> | y <chr> | Factor4 <dbl> | Normalized_CK <dbl> | Normalized_CRP <dbl> | Normalized_Troponin <dbl> |\n", - "|---|---|---|---|---|---|\n", - "| bad | 1 | -0.02044919 | 0.5371000 | 0.19100853 | 0.7732146 |\n", - "| good | 0 | 0.17349069 | 0.3310541 | 0.09417853 | 0.3364290 |\n", - "\n" - ], - "text/plain": [ - " delta_ef_value_class_summarized y Factor4 Normalized_CK Normalized_CRP\n", - "1 bad 1 -0.02044919 0.5371000 0.19100853 \n", - "2 good 0 0.17349069 0.3310541 0.09417853 \n", - " Normalized_Troponin\n", - "1 0.7732146 \n", - "2 0.3364290 " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "## Check in which direction to adjust\n", - "prediction_data %>% group_by(delta_ef_value_class_summarized,y) %>% summarise(across(everything(), mean, na.rm =TRUE))\n", - "\n", - "# predict bad --> higher values for bad" - ] - }, - { - "cell_type": "code", - "execution_count": 143, - "id": "3993b2d2-f7ae-4375-aac3-6eadaffc6957", - "metadata": {}, - "outputs": [], - "source": [ - "# Adjust sign of Factor values\n", - "prediction_data$Factor4 = -1*prediction_data$Factor4\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "53e01402-22c5-4404-b1f6-c356c56447c9", - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": 144, - "id": "76a1020f-b1f4-42f3-b663-a695c405996c", - "metadata": {}, - "outputs": [], - "source": [ - "# Transform and scale scores of prediction variables (to be between 0 and 1)" - ] - }, - { - "cell_type": "code", - "execution_count": 145, - "id": "9cd13703-5146-493e-b6b6-879c30c7f01e", - "metadata": {}, - "outputs": [], - "source": [ - "prediction_data = cbind( prediction_data[,c('y', prediction_group)],\n", - " apply(prediction_data[,prediction_vars], MARGIN = 2, FUN = function(x){\n", - " (x - min(x, na.rm = TRUE)) / (max(x, na.rm = TRUE) - min(x, na.rm = TRUE))}))" - ] - }, - { - "cell_type": "code", - "execution_count": 146, - "id": "9069b255-a1ea-4aab-a178-5743826942e5", + "execution_count": 143, + "id": "3993b2d2-f7ae-4375-aac3-6eadaffc6957", + "metadata": {}, + "outputs": [], + "source": [ + "# Adjust sign of Factor values\n", + "prediction_data$Factor4 = -1*prediction_data$Factor4\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "53e01402-22c5-4404-b1f6-c356c56447c9", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 144, + "id": "76a1020f-b1f4-42f3-b663-a695c405996c", + "metadata": {}, + "outputs": [], + "source": [ + "# Transform and scale scores of prediction variables (to be between 0 and 1)" + ] + }, + { + "cell_type": "code", + "execution_count": 145, + "id": "9cd13703-5146-493e-b6b6-879c30c7f01e", + "metadata": {}, + "outputs": [], + "source": [ + "prediction_data = cbind( prediction_data[,c('y', prediction_group)],\n", + " apply(prediction_data[,prediction_vars], MARGIN = 2, FUN = function(x){\n", + " (x - min(x, na.rm = TRUE)) / (max(x, na.rm = TRUE) - min(x, na.rm = TRUE))}))" + ] + }, + { + "cell_type": "code", + "execution_count": 146, + "id": "9069b255-a1ea-4aab-a178-5743826942e5", "metadata": {}, "outputs": [ { @@ -5538,73 +3723,6 @@ "head(prediction_data,5)" ] }, - { - "cell_type": "code", - "execution_count": 147, - "id": "90d0f842-56a4-42a8-ad18-ffbe2486b737", - "metadata": {}, - "outputs": [], - "source": [ - "# Plot ROC curves (roc implementation DEPRECATED)" - ] - }, - { - "cell_type": "code", - "execution_count": 148, - "id": "b71e09db-101d-43cb-9235-42960972fb71", - "metadata": {}, - "outputs": [], - "source": [ - "#roc_list = list()" - ] - }, - { - "cell_type": "code", - "execution_count": 149, - "id": "144b630e-0814-4099-a329-e01b132d6eb0", - "metadata": {}, - "outputs": [], - "source": [ - "#for(i in prediction_vars){\n", - "# roc_list[[i]] = roc(prediction_data$y ~ \n", - "# prediction_data[,i], plot = FALSE, print.auc = TRUE)\n", - "# }" - ] - }, - { - "cell_type": "code", - "execution_count": 150, - "id": "904c6265-2c9a-4968-9d30-1bb0c48beb32", - "metadata": {}, - "outputs": [], - "source": [ - "#plot(roc_list[[2]])" - ] - }, - { - "cell_type": "code", - "execution_count": 151, - "id": "3f226ad6-69d4-4185-8397-fdc7bff1fec4", - "metadata": {}, - "outputs": [], - "source": [ - "## Add all onto each other (ROC implementation)" - ] - }, - { - "cell_type": "code", - "execution_count": 152, - "id": "e9078eaa-25b8-4644-857a-df5f612b807c", - "metadata": {}, - "outputs": [], - "source": [ - "#plot(roc_list[[1]], col = 1, lty = 2, main = \"ROC\")\n", - "#for(i in 2:length(roc_list)){\n", - "# plot(roc_list[[i]], col = 4, lty = 3, add = TRUE)\n", - "# }\n", - " " - ] - }, { "cell_type": "code", "execution_count": 153, @@ -5810,2655 +3928,6 @@ "dev.off()" ] }, - { - "cell_type": "markdown", - "id": "9cbc95aa-414a-4754-913d-f5ea3336f588", - "metadata": { - "tags": [] - }, - "source": [ - "# Prediction Factor 1 (ccs vs. no-ccs)" - ] - }, - { - "cell_type": "code", - "execution_count": 163, - "id": "5ebcfc40-6a17-42f1-b0bb-9fb6cf036ca2", - "metadata": {}, - "outputs": [], - "source": [ - "prediction_vars = c('Factor1', 'score_prepared')" - ] - }, - { - "cell_type": "code", - "execution_count": 164, - "id": "4a3f7b9d-6bd7-4efd-81eb-fb9edbea2157", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "
  1. 'No CCS '
  2. 'CCS'
  3. NA
\n" - ], - "text/latex": [ - "\\begin{enumerate*}\n", - "\\item 'No CCS '\n", - "\\item 'CCS'\n", - "\\item NA\n", - "\\end{enumerate*}\n" - ], - "text/markdown": [ - "1. 'No CCS '\n", - "2. 'CCS'\n", - "3. NA\n", - "\n", - "\n" - ], - "text/plain": [ - "[1] \"No CCS \" \"CCS\" NA " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "unique(data$class)" - ] - }, - { - "cell_type": "code", - "execution_count": 165, - "id": "1b1f35f6-60de-46ea-b697-a53c0067089a", - "metadata": {}, - "outputs": [], - "source": [ - "prediction_group = 'class'\n", - "prediction_subset = c('No CCS ', 'CCS')" - ] - }, - { - "cell_type": "code", - "execution_count": 166, - "id": "b83988be-1623-4226-82f0-63d79c01a476", - "metadata": {}, - "outputs": [], - "source": [ - "prediction_data = data[,c(prediction_vars, prediction_group)]\n", - "prediction_data$y = prediction_data[,prediction_group]\n", - "prediction_data = prediction_data[prediction_data$y %in% prediction_subset,]\n", - "\n", - "prediction_data$y[prediction_data$y == prediction_subset[2]] = 1 # predict CCS \n", - "prediction_data$y[prediction_data$y == prediction_subset[1]] = 0 # no_ccs as control" - ] - }, - { - "cell_type": "code", - "execution_count": 167, - "id": "026a63da-8be1-4ea5-aa03-94d379c7f552", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\u001b[1m\u001b[22m`summarise()` has grouped output by 'class'. You can override using the\n", - "`.groups` argument.\n" - ] - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "
A grouped_df: 2 × 4
classyFactor1score_prepared
<chr><chr><dbl><dbl>
CCS 1 1.64322040.1122222
No CCS 0-0.12379630.0850000
\n" - ], - "text/latex": [ - "A grouped\\_df: 2 × 4\n", - "\\begin{tabular}{llll}\n", - " class & y & Factor1 & score\\_prepared\\\\\n", - " & & & \\\\\n", - "\\hline\n", - "\t CCS & 1 & 1.6432204 & 0.1122222\\\\\n", - "\t No CCS & 0 & -0.1237963 & 0.0850000\\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A grouped_df: 2 × 4\n", - "\n", - "| class <chr> | y <chr> | Factor1 <dbl> | score_prepared <dbl> |\n", - "|---|---|---|---|\n", - "| CCS | 1 | 1.6432204 | 0.1122222 |\n", - "| No CCS | 0 | -0.1237963 | 0.0850000 |\n", - "\n" - ], - "text/plain": [ - " class y Factor1 score_prepared\n", - "1 CCS 1 1.6432204 0.1122222 \n", - "2 No CCS 0 -0.1237963 0.0850000 " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "## Check in which direction to adjust\n", - "prediction_data %>% group_by(class,y) %>% summarise(across(everything(), mean, na.rm =TRUE))\n", - "\n", - "# predict CCS --> higher values for CCS" - ] - }, - { - "cell_type": "code", - "execution_count": 168, - "id": "d4f62c0d-170c-40fd-9ce5-57d090a6262e", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "
A grouped_df: 2 × 2
classn
<chr><int>
CCS 16
No CCS 18
\n" - ], - "text/latex": [ - "A grouped\\_df: 2 × 2\n", - "\\begin{tabular}{ll}\n", - " class & n\\\\\n", - " & \\\\\n", - "\\hline\n", - "\t CCS & 16\\\\\n", - "\t No CCS & 18\\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A grouped_df: 2 × 2\n", - "\n", - "| class <chr> | n <int> |\n", - "|---|---|\n", - "| CCS | 16 |\n", - "| No CCS | 18 |\n", - "\n" - ], - "text/plain": [ - " class n \n", - "1 CCS 16\n", - "2 No CCS 18" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "prediction_data %>% group_by(class) %>% count()" - ] - }, - { - "cell_type": "code", - "execution_count": 169, - "id": "6802c3b9-6eb6-48ac-a4ac-d30d33dfd02b", - "metadata": {}, - "outputs": [], - "source": [ - "# Transform and scale scores of prediction variables (to be between 0 and 1)" - ] - }, - { - "cell_type": "code", - "execution_count": 170, - "id": "f05dbe59-bd77-429f-8b25-7cca0cd4cd1d", - "metadata": {}, - "outputs": [], - "source": [ - "prediction_data = cbind( prediction_data[,c('y', prediction_group)],\n", - " apply(prediction_data[,prediction_vars], MARGIN = 2, FUN = function(x){\n", - " (x - min(x, na.rm = TRUE)) / (max(x, na.rm = TRUE) - min(x, na.rm = TRUE))}))" - ] - }, - { - "cell_type": "code", - "execution_count": 171, - "id": "6e3c42a9-2228-43c0-9e31-6403e692b21a", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "
A data.frame: 5 × 4
yclassFactor1score_prepared
<chr><chr><dbl><dbl>
10No CCS 0.45992960.0000000
21CCS 0.53657390.4117647
30No CCS 0.13816990.1764706
40No CCS 0.0000000 NA
50No CCS 0.34872200.1176471
\n" - ], - "text/latex": [ - "A data.frame: 5 × 4\n", - "\\begin{tabular}{r|llll}\n", - " & y & class & Factor1 & score\\_prepared\\\\\n", - " & & & & \\\\\n", - "\\hline\n", - "\t1 & 0 & No CCS & 0.4599296 & 0.0000000\\\\\n", - "\t2 & 1 & CCS & 0.5365739 & 0.4117647\\\\\n", - "\t3 & 0 & No CCS & 0.1381699 & 0.1764706\\\\\n", - "\t4 & 0 & No CCS & 0.0000000 & NA\\\\\n", - "\t5 & 0 & No CCS & 0.3487220 & 0.1176471\\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A data.frame: 5 × 4\n", - "\n", - "| | y <chr> | class <chr> | Factor1 <dbl> | score_prepared <dbl> |\n", - "|---|---|---|---|---|\n", - "| 1 | 0 | No CCS | 0.4599296 | 0.0000000 |\n", - "| 2 | 1 | CCS | 0.5365739 | 0.4117647 |\n", - "| 3 | 0 | No CCS | 0.1381699 | 0.1764706 |\n", - "| 4 | 0 | No CCS | 0.0000000 | NA |\n", - "| 5 | 0 | No CCS | 0.3487220 | 0.1176471 |\n", - "\n" - ], - "text/plain": [ - " y class Factor1 score_prepared\n", - "1 0 No CCS 0.4599296 0.0000000 \n", - "2 1 CCS 0.5365739 0.4117647 \n", - "3 0 No CCS 0.1381699 0.1764706 \n", - "4 0 No CCS 0.0000000 NA \n", - "5 0 No CCS 0.3487220 0.1176471 " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "head(prediction_data,5)" - ] - }, - { - "cell_type": "code", - "execution_count": 172, - "id": "aa1539fa-7335-4530-86be-fcd491b352b6", - "metadata": {}, - "outputs": [], - "source": [ - "# Plot ROC curves (roc implementation DEPRECATED)" - ] - }, - { - "cell_type": "code", - "execution_count": 173, - "id": "413a2c78-61ed-41ff-bc3b-fa293a164263", - "metadata": {}, - "outputs": [], - "source": [ - "#roc_list = list()" - ] - }, - { - "cell_type": "code", - "execution_count": 174, - "id": "81b7b754-0feb-4fd2-82d8-1d57553b2ea5", - "metadata": {}, - "outputs": [], - "source": [ - "#for(i in prediction_vars){\n", - "# roc_list[[i]] = roc(prediction_data$y ~ \n", - "# prediction_data[,i], plot = FALSE, print.auc = TRUE)\n", - "# }" - ] - }, - { - "cell_type": "code", - "execution_count": 175, - "id": "cd7a3f2f-0e6d-46ed-8629-e34dfadc2732", - "metadata": {}, - "outputs": [], - "source": [ - "#plot(roc_list[[2]])" - ] - }, - { - "cell_type": "code", - "execution_count": 176, - "id": "17fa99b9-3ffc-4dd0-a9c2-79896cb24cfa", - "metadata": {}, - "outputs": [], - "source": [ - "## Add all onto each other (ROC implementation)" - ] - }, - { - "cell_type": "code", - "execution_count": 177, - "id": "85b2897c-7676-423a-8969-75ace5ec4f27", - "metadata": {}, - "outputs": [], - "source": [ - "#plot(roc_list[[1]], col = 1, lty = 2, main = \"ROC\")\n", - "#for(i in 2:length(roc_list)){\n", - "# plot(roc_list[[i]], col = 4, lty = 3, add = TRUE)\n", - "# }\n", - " " - ] - }, - { - "cell_type": "code", - "execution_count": 178, - "id": "d7ee88d0-f967-4007-8a0c-ac5d1f0537ce", - "metadata": {}, - "outputs": [], - "source": [ - "## Alternative use GGPLOT IMPL" - ] - }, - { - "cell_type": "code", - "execution_count": 179, - "id": "5960e250-23ca-4e72-949c-c4cc03c87437", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Using y, class as id variables\n", - "\n" - ] - } - ], - "source": [ - "prediction_data_long = melt(prediction_data)" - ] - }, - { - "cell_type": "code", - "execution_count": 180, - "id": "8242a67c-2f20-4f43-b015-5e4d73645dea", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "
A data.frame: 2 × 4
yclassvariablevalue
<chr><chr><fct><dbl>
10No CCS Factor10.4599296
21CCS Factor10.5365739
\n" - ], - "text/latex": [ - "A data.frame: 2 × 4\n", - "\\begin{tabular}{r|llll}\n", - " & y & class & variable & value\\\\\n", - " & & & & \\\\\n", - "\\hline\n", - "\t1 & 0 & No CCS & Factor1 & 0.4599296\\\\\n", - "\t2 & 1 & CCS & Factor1 & 0.5365739\\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A data.frame: 2 × 4\n", - "\n", - "| | y <chr> | class <chr> | variable <fct> | value <dbl> |\n", - "|---|---|---|---|---|\n", - "| 1 | 0 | No CCS | Factor1 | 0.4599296 |\n", - "| 2 | 1 | CCS | Factor1 | 0.5365739 |\n", - "\n" - ], - "text/plain": [ - " y class variable value \n", - "1 0 No CCS Factor1 0.4599296\n", - "2 1 CCS Factor1 0.5365739" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "head(prediction_data_long,2)" - ] - }, - { - "cell_type": "code", - "execution_count": 181, - "id": "a47fe1aa-7c4b-43e1-82f4-80a5935fd496", - "metadata": {}, - "outputs": [], - "source": [ - "prediction_data_long = prediction_data_long[!is.na(prediction_data_long$value),]" - ] - }, - { - "cell_type": "code", - "execution_count": 182, - "id": "c2c917ea-0879-4dcd-a853-300246acabd8", - "metadata": {}, - "outputs": [], - "source": [ - "# Figure Name\n", - "figure_name = 'FIG7_E9_ROC_Factor1_CCS_NO_CCS'" - ] - }, - { - "cell_type": "code", - "execution_count": 183, - "id": "405da709-a10b-43f2-befa-a7dba466844d", - "metadata": {}, - "outputs": [], - "source": [ - "# Sizes of the plot\n", - "width_par = 5\n", - "height_par = 3" - ] - }, - { - "cell_type": "code", - "execution_count": 184, - "id": "80ab2256-94c0-4575-bf50-1d7007a1d4ac", - "metadata": {}, - "outputs": [], - "source": [ - "xtitle = xlab( 'False Positive Fraction')\n", - "ytitle = ylab('Sensititity (True Positive Fraction)')" - ] - }, - { - "cell_type": "code", - "execution_count": 185, - "id": "9ac38733-8b57-42eb-bfba-02a8272d3428", - "metadata": {}, - "outputs": [], - "source": [ - "## Specify Plot\n", - "rocplot = ggplot(prediction_data_long, aes(m = value, d = as.numeric(y), color = variable))+ geom_roc(n.cuts=0,labels=FALSE)" - ] - }, - { - "cell_type": "code", - "execution_count": 186, - "id": "458c25ce-2aad-456f-918e-01f7a2c99996", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\nspuybgAAAABJRU5ErkJggg==", - "text/plain": [ - "plot without title" - ] - }, - "metadata": { - "image/png": { - "height": 120, - "width": 1800 - } - }, - "output_type": "display_data" - } - ], - "source": [ - "## Configuration + Modification of plot\n", - "roc_plot = rocplot + \n", - " plot_config + \n", - " xtitle + \n", - " ytitle + \n", - " ggtitle('ROC curve ccs vs. no-ccs') +\n", - " geom_abline(slope = 1, intercept = 0)\n", - "\n", - "roc_plot" - ] - }, - { - "cell_type": "code", - "execution_count": 187, - "id": "be22513d-5be8-444c-adcc-be93e7c6b7fb", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "png: 2" - ], - "text/latex": [ - "\\textbf{png:} 2" - ], - "text/markdown": [ - "**png:** 2" - ], - "text/plain": [ - "png \n", - " 2 " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "pdf(paste0('figures/Final_Figures/', figure_name, version, '.pdf'), width =width_par, height =height_par)\n", - "print(roc_plot)\n", - "dev.off()" - ] - }, - { - "cell_type": "code", - "execution_count": 188, - "id": "b6667a7c-6572-4481-b7a9-d898e0e40757", - "metadata": {}, - "outputs": [], - "source": [ - "prediction_data_long_ccs = prediction_data_long" - ] - }, - { - "cell_type": "markdown", - "id": "54248291-cc3d-43c2-be5a-bf6b00007883", - "metadata": { - "tags": [] - }, - "source": [ - "# Prediction Factor 1 (ccs vs. vollstaendiger_ausschluss)" - ] - }, - { - "cell_type": "code", - "execution_count": 189, - "id": "2e27a3b8-4160-41ce-9f7e-129648076375", - "metadata": {}, - "outputs": [], - "source": [ - "prediction_vars = c('Factor1', 'score_prepared')" - ] - }, - { - "cell_type": "code", - "execution_count": 190, - "id": "c6bcc425-690f-4d18-b0aa-c19de27887f5", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "
  1. 'vollstaendiger_ausschluss'
  2. 'ccs'
  3. 'koronarsklerose'
  4. 'acs_subacute'
  5. 'acs_w_infection'
  6. 'acs_w_o_infection'
\n" - ], - "text/latex": [ - "\\begin{enumerate*}\n", - "\\item 'vollstaendiger\\_ausschluss'\n", - "\\item 'ccs'\n", - "\\item 'koronarsklerose'\n", - "\\item 'acs\\_subacute'\n", - "\\item 'acs\\_w\\_infection'\n", - "\\item 'acs\\_w\\_o\\_infection'\n", - "\\end{enumerate*}\n" - ], - "text/markdown": [ - "1. 'vollstaendiger_ausschluss'\n", - "2. 'ccs'\n", - "3. 'koronarsklerose'\n", - "4. 'acs_subacute'\n", - "5. 'acs_w_infection'\n", - "6. 'acs_w_o_infection'\n", - "\n", - "\n" - ], - "text/plain": [ - "[1] \"vollstaendiger_ausschluss\" \"ccs\" \n", - "[3] \"koronarsklerose\" \"acs_subacute\" \n", - "[5] \"acs_w_infection\" \"acs_w_o_infection\" " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "unique(data$classification)" - ] - }, - { - "cell_type": "code", - "execution_count": 191, - "id": "3d7a6b4e-fbce-4855-b6d5-0242b46fdcf7", - "metadata": {}, - "outputs": [], - "source": [ - "prediction_group = 'classification'\n", - "prediction_subset = c('vollstaendiger_ausschluss', 'ccs')" - ] - }, - { - "cell_type": "code", - "execution_count": 192, - "id": "76992223-425c-4904-9c56-592a71e289d1", - "metadata": {}, - "outputs": [], - "source": [ - "prediction_data = data[,c(prediction_vars, prediction_group)]\n", - "prediction_data$y = prediction_data[,prediction_group]\n", - "prediction_data = prediction_data[prediction_data$y %in% prediction_subset,]\n", - "\n", - "prediction_data$y[prediction_data$y == prediction_subset[2]] = 1 # predict CCS \n", - "prediction_data$y[prediction_data$y == prediction_subset[1]] = 0 # no_ccs as control" - ] - }, - { - "cell_type": "code", - "execution_count": 193, - "id": "00102300-ad48-4cbb-8bb2-c685f7ebea8f", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\u001b[1m\u001b[22m`summarise()` has grouped output by 'classification'. You can override using\n", - "the `.groups` argument.\n" - ] - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "
A grouped_df: 2 × 4
classificationyFactor1score_prepared
<chr><chr><dbl><dbl>
ccs 1 1.64322040.11222222
vollstaendiger_ausschluss0-0.91937430.05714286
\n" - ], - "text/latex": [ - "A grouped\\_df: 2 × 4\n", - "\\begin{tabular}{llll}\n", - " classification & y & Factor1 & score\\_prepared\\\\\n", - " & & & \\\\\n", - "\\hline\n", - "\t ccs & 1 & 1.6432204 & 0.11222222\\\\\n", - "\t vollstaendiger\\_ausschluss & 0 & -0.9193743 & 0.05714286\\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A grouped_df: 2 × 4\n", - "\n", - "| classification <chr> | y <chr> | Factor1 <dbl> | score_prepared <dbl> |\n", - "|---|---|---|---|\n", - "| ccs | 1 | 1.6432204 | 0.11222222 |\n", - "| vollstaendiger_ausschluss | 0 | -0.9193743 | 0.05714286 |\n", - "\n" - ], - "text/plain": [ - " classification y Factor1 score_prepared\n", - "1 ccs 1 1.6432204 0.11222222 \n", - "2 vollstaendiger_ausschluss 0 -0.9193743 0.05714286 " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "## Check in which direction to adjust\n", - "prediction_data %>% group_by(classification,y) %>% summarise(across(everything(), mean, na.rm =TRUE))\n", - "\n", - "# predict CCS --> higher values for CCS" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "7e810536-de7f-4327-a1ae-dc340256fd10", - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": 194, - "id": "67e62bd8-19fa-4b72-9a48-86710f51b7e4", - "metadata": {}, - "outputs": [], - "source": [ - "# Transform and scale scores of prediction variables (to be between 0 and 1)" - ] - }, - { - "cell_type": "code", - "execution_count": 195, - "id": "9331ff5a-b04b-4fb5-ac8e-831466b16f84", - "metadata": {}, - "outputs": [], - "source": [ - "prediction_data = cbind( prediction_data[,c('y', prediction_group)],\n", - " apply(prediction_data[,prediction_vars], MARGIN = 2, FUN = function(x){\n", - " (x - min(x, na.rm = TRUE)) / (max(x, na.rm = TRUE) - min(x, na.rm = TRUE))}))" - ] - }, - { - "cell_type": "code", - "execution_count": 196, - "id": "27c02fdc-75bf-4f6a-bfee-a56b61c1660c", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "
A data.frame: 5 × 4
yclassificationFactor1score_prepared
<chr><chr><dbl><dbl>
10vollstaendiger_ausschluss0.45992960.0000000
21ccs 0.53657390.4117647
30vollstaendiger_ausschluss0.13816990.1764706
40vollstaendiger_ausschluss0.0000000 NA
50vollstaendiger_ausschluss0.34872200.1176471
\n" - ], - "text/latex": [ - "A data.frame: 5 × 4\n", - "\\begin{tabular}{r|llll}\n", - " & y & classification & Factor1 & score\\_prepared\\\\\n", - " & & & & \\\\\n", - "\\hline\n", - "\t1 & 0 & vollstaendiger\\_ausschluss & 0.4599296 & 0.0000000\\\\\n", - "\t2 & 1 & ccs & 0.5365739 & 0.4117647\\\\\n", - "\t3 & 0 & vollstaendiger\\_ausschluss & 0.1381699 & 0.1764706\\\\\n", - "\t4 & 0 & vollstaendiger\\_ausschluss & 0.0000000 & NA\\\\\n", - "\t5 & 0 & vollstaendiger\\_ausschluss & 0.3487220 & 0.1176471\\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A data.frame: 5 × 4\n", - "\n", - "| | y <chr> | classification <chr> | Factor1 <dbl> | score_prepared <dbl> |\n", - "|---|---|---|---|---|\n", - "| 1 | 0 | vollstaendiger_ausschluss | 0.4599296 | 0.0000000 |\n", - "| 2 | 1 | ccs | 0.5365739 | 0.4117647 |\n", - "| 3 | 0 | vollstaendiger_ausschluss | 0.1381699 | 0.1764706 |\n", - "| 4 | 0 | vollstaendiger_ausschluss | 0.0000000 | NA |\n", - "| 5 | 0 | vollstaendiger_ausschluss | 0.3487220 | 0.1176471 |\n", - "\n" - ], - "text/plain": [ - " y classification Factor1 score_prepared\n", - "1 0 vollstaendiger_ausschluss 0.4599296 0.0000000 \n", - "2 1 ccs 0.5365739 0.4117647 \n", - "3 0 vollstaendiger_ausschluss 0.1381699 0.1764706 \n", - "4 0 vollstaendiger_ausschluss 0.0000000 NA \n", - "5 0 vollstaendiger_ausschluss 0.3487220 0.1176471 " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "head(prediction_data,5)" - ] - }, - { - "cell_type": "code", - "execution_count": 197, - "id": "24089d9b-69cd-41d2-af60-30a45f498185", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "
A grouped_df: 2 × 2
classificationn
<chr><int>
ccs 16
vollstaendiger_ausschluss11
\n" - ], - "text/latex": [ - "A grouped\\_df: 2 × 2\n", - "\\begin{tabular}{ll}\n", - " classification & n\\\\\n", - " & \\\\\n", - "\\hline\n", - "\t ccs & 16\\\\\n", - "\t vollstaendiger\\_ausschluss & 11\\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A grouped_df: 2 × 2\n", - "\n", - "| classification <chr> | n <int> |\n", - "|---|---|\n", - "| ccs | 16 |\n", - "| vollstaendiger_ausschluss | 11 |\n", - "\n" - ], - "text/plain": [ - " classification n \n", - "1 ccs 16\n", - "2 vollstaendiger_ausschluss 11" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "prediction_data %>% group_by(classification) %>% count()" - ] - }, - { - "cell_type": "code", - "execution_count": 198, - "id": "7fea015c-d45b-4e67-bf6d-300db2bf7199", - "metadata": {}, - "outputs": [], - "source": [ - "# Plot ROC curves (roc implementation DEPRECATED)" - ] - }, - { - "cell_type": "code", - "execution_count": 199, - "id": "238a500c-7422-419d-8787-d36d410045cc", - "metadata": {}, - "outputs": [], - "source": [ - "#roc_list = list()" - ] - }, - { - "cell_type": "code", - "execution_count": 200, - "id": "6e429783-7478-4246-afcf-b05a5c862e0e", - "metadata": {}, - "outputs": [], - "source": [ - "#for(i in prediction_vars){\n", - "# roc_list[[i]] = roc(prediction_data$y ~ \n", - "# prediction_data[,i], plot = FALSE, print.auc = TRUE)\n", - "# }" - ] - }, - { - "cell_type": "code", - "execution_count": 201, - "id": "3511b499-460c-40de-985d-29126410fee7", - "metadata": {}, - "outputs": [], - "source": [ - "#plot(roc_list[[2]])" - ] - }, - { - "cell_type": "code", - "execution_count": 202, - "id": "7f810584-7b3c-4762-a42a-f1251181ee42", - "metadata": {}, - "outputs": [], - "source": [ - "## Add all onto each other (ROC implementation)" - ] - }, - { - "cell_type": "code", - "execution_count": 203, - "id": "96145303-dda6-44bf-ab3a-5719e83d1489", - "metadata": {}, - "outputs": [], - "source": [ - "#plot(roc_list[[1]], col = 1, lty = 2, main = \"ROC\")\n", - "#for(i in 2:length(roc_list)){\n", - "# plot(roc_list[[i]], col = 4, lty = 3, add = TRUE)\n", - "# }\n", - " " - ] - }, - { - "cell_type": "code", - "execution_count": 204, - "id": "4ae5c20b-032f-41e4-b822-ad74897d8823", - "metadata": {}, - "outputs": [], - "source": [ - "## Alternative use GGPLOT IMPL" - ] - }, - { - "cell_type": "code", - "execution_count": 205, - "id": "dfb38786-0732-416d-83a1-29eda6a5116a", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Using y, classification as id variables\n", - "\n" - ] - } - ], - "source": [ - "prediction_data_long = melt(prediction_data)" - ] - }, - { - "cell_type": "code", - "execution_count": 206, - "id": "a3c4c586-37ee-41d6-a2cc-15796ed96004", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "
A data.frame: 2 × 4
yclassificationvariablevalue
<chr><chr><fct><dbl>
10vollstaendiger_ausschlussFactor10.4599296
21ccs Factor10.5365739
\n" - ], - "text/latex": [ - "A data.frame: 2 × 4\n", - "\\begin{tabular}{r|llll}\n", - " & y & classification & variable & value\\\\\n", - " & & & & \\\\\n", - "\\hline\n", - "\t1 & 0 & vollstaendiger\\_ausschluss & Factor1 & 0.4599296\\\\\n", - "\t2 & 1 & ccs & Factor1 & 0.5365739\\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A data.frame: 2 × 4\n", - "\n", - "| | y <chr> | classification <chr> | variable <fct> | value <dbl> |\n", - "|---|---|---|---|---|\n", - "| 1 | 0 | vollstaendiger_ausschluss | Factor1 | 0.4599296 |\n", - "| 2 | 1 | ccs | Factor1 | 0.5365739 |\n", - "\n" - ], - "text/plain": [ - " y classification variable value \n", - "1 0 vollstaendiger_ausschluss Factor1 0.4599296\n", - "2 1 ccs Factor1 0.5365739" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "head(prediction_data_long,2)" - ] - }, - { - "cell_type": "code", - "execution_count": 207, - "id": "a0d9fa89-ae4b-414e-bf94-0a6e4563b863", - "metadata": {}, - "outputs": [], - "source": [ - "prediction_data_long = prediction_data_long[!is.na(prediction_data_long$value),]" - ] - }, - { - "cell_type": "code", - "execution_count": 208, - "id": "1a1664c7-e1f6-48e8-b0cd-cde7dee08fea", - "metadata": {}, - "outputs": [], - "source": [ - "# Figure Name\n", - "figure_name = 'FIG7_E9_ROC_Factor1_CCS_Ausschluss'" - ] - }, - { - "cell_type": "code", - "execution_count": 209, - "id": "596a2cb9-7180-4719-ac03-9a125cf63481", - "metadata": {}, - "outputs": [], - "source": [ - "# Sizes of the plot\n", - "width_par = 5\n", - "height_par = 3" - ] - }, - { - "cell_type": "code", - "execution_count": 210, - "id": "e8b9ec7c-b66e-41c6-8c18-41b66c368ff4", - "metadata": {}, - "outputs": [], - "source": [ - "xtitle = xlab( 'False Positive Fraction')\n", - "ytitle = ylab('Sensititity (True Positive Fraction)')" - ] - }, - { - "cell_type": "code", - "execution_count": 211, - "id": "46ac7f91-170b-4359-991f-b27f1726687b", - "metadata": {}, - "outputs": [], - "source": [ - "## Specify Plot\n", - "rocplot = ggplot(prediction_data_long, aes(m = value, d = as.numeric(y), color = variable))+ geom_roc(n.cuts=0,labels=FALSE)" - ] - }, - { - "cell_type": "code", - "execution_count": 212, - "id": "f70baefb-8bdf-416c-8b77-c946a907f7ba", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAADhAAAADwCAIAAADUo1iyAAAABmJLR0QA/wD/AP+gvaeTAAAg\nAElEQVR4nOzdd3hTZRvH8fskHelMQ9mjrBaqIIqAbJSlKKhM2VAQBGQrCgqiL6CgOEBRQUDA\nWVmiogwZskFQUIaMClU2Ah3pSprkvH900NImaUvT+f1c7yUnz3Oe+9wnyfUa2x9PFFVVxTHr\n2S+ffnzEihPxqY997h686Iel/WtpnawDAAAAAAAAAAAAAAAAAABAUaA4D4yKiFijTu/ZeSgy\nRvQ1GrdpWcdAWBQAAAAAAAAAAAAAAAAAAKC4yGFgFAAAAAAAAAAAAAAAAAAAAMWVm72JD8PC\nDkqTMcubHghbcDCb+SZjlo9u7MLGAAAAAAAAAAAAAAAAAAAAkD/s7jDaU1HWSI9Vap9wpdea\nbOZ7rFJX93RtbwAAAAAAAAAAAAAAAAAAAMgHdncYDapXr54E6UUfVK9evezm9S7sCgAAAAAA\nAAAAAAAAAAAAAPnG7g6jaf75Zfm5mmEPVc80aLx00ugXWtnPlZ0BAAAAAAAAAAAAAAAAAAAg\nX2icnXBwwZAFB28f3DTurnGbXNMQAAAAAAAAAAAAAAAAAAAA8pfTwGh2rl69KoqS360AAAAA\nAAAAKM5OvlZfURTFN2x9dg9zJ3pJJ0WpOmm/5YuuilJ25C957WnjsABFUZTQacfurJ9iyPH9\nlrZnAwAAAAAAAICjwOjm8aGhoaHjN6cepAupHDJ+t16vL7gmAQAAAAAAUBIs6aTc4ubpXyGk\neY/JayOSM56jXj+49MXere+uHODt4eFTJqhB+8GvrTxhzFwoIeKHt0Z2fiC4gr/O3cPHUKF6\n/ZadZ+8yFeS9IB9tGVk2LdMJAAAAAAAAAHAVN/tTsRdPnTolIiLG1D9v8e7cqqHrmgIAAAAA\nAEAJFjhi+/WPm17eOe3R9u+ufav3Me3+k280UkREbOc+79l6yLcX3RqMXLFn95O1zEeXj+k1\n+n+9V4ZvXbt70aNlRUTk2k+j2vZaeCKh7ENTl+4b37GW29UzR3atWXDkikXEs1BvDPkpYNhG\ndZiIiKxTB+RPydDXjqmv5U8pAAAAAAAAACh+HOwwWvvhESNGjOhYS2p1HJHBqPFTZn+x6/PB\ngQXXJAAAAAAAAEoYxavSg8N71hcRy+mNW8+lDF5eNOyZby9apeozHy/oXa+Mzqtik1HL3urq\nI0mnPhk0YV2ciMj1z4f3XXgiQfy6Lvh21hP1ynl5GWo0aDvwf2ve6eWTzXVs1/d8OLrz/TXK\neHv6VWnw+IsrTyeIyO4xFRVFUapN3JNy1uo+boqiKI3nRIrc+qrubtPfH9KuflCAR8ikuSMq\nKoqi3PO/k6l1Y5Z11imK4tFx0XURsV3dMe+ZjvWr6HU6/8p1mjw56aujMdnfd/b92BtXz2+c\n2adFSKUAb+/Amg07Dp658miMeltFy8+OestJhawc1xSxXtry1tB2d1f293TX+Veu32HYvJ1X\nbU6rZt9MxKz7lI6LboiInHr9HkVRFKXL8gsLO6TtRKv18C1Xq2nXF745mZhWJ+0F6j5z8bOd\n7qtRxse/Yr1HX/zpQtqNxRyc179JFV/vgKB72j+94GC03L4w/UvYM5459IMZPQMybXRq92XN\n+g6ZcuT2m422fwuO334OXjL7U/beVyliD2f/RGXioKs8tQQAAAAAAACg6HEQGG34zMKFCxe+\n2P3e7i8uzOCjebOn9L/foBRcjwAAAAAAACiJVDUlWabTpWwMenHlZ9uSRKTCk91baNNO8uva\n82GtiFxf/dlPiSJXvvnkh1gRCeg5vFeA0yvEbHq22YNjPvrpSv3//Xz2wrHvX75nz6qtt765\nXlEc/Ywrft2nO1u8tf10lPnM28+H9a8mIsfCw1OyhDfXhv9sEtF1GdKnrERvGNmi3cTFv1Wa\nsPX8tb9WdE788Z3+D7T532/mHPdjZ/za8mHdpn9zOGjy/ss3I/d8+UpH8zevf3bmtppu7R30\nlqMKWTmsKTd/eLr5w5OX7fMauO7ctYiVvWXH0ontWozfGuukavbNBE87ov48IlBEpO7Uo6qq\nqur6sKojt6iqqqqqzXTz1NohZY9893a/J6buM2WqF79u2f52H27f93mfwKsnNs7tO2lNgohI\n9MrhnSZ+dSjq7gnf/7pjSefDy9bYCe+mnXkjZMy3B3YsfvT3TzOd6fxlzfAOmXPf7cUDnN5C\n9m8/By+Z3Skn73M7T1T2sukqLy0BAAAAAAAAKIocBEZTdJh7ZG6HgugEAAAAAAAApYeadHnH\nkjXHRZTKfSb2qSIiIqdOnRIRkapVq2Y406NatQoiIqZTpyJF/jpxQhURqVG7ttMfbEnEwimf\n/G0VbbtXFo9tWUVvqNF84Pypj9/62nqNxmGNB8a/N7xxOZ0iIprmQwbWFZGT4eFHROT6mvBt\nySL+3cK66SVi0ctLztqkwsDpkxqX86/S8cWnm4ok/fnW3O9vT4za68fe+KkjR5JEzNfPnvz7\nqrXs3W0GzFwTPrbO7W066i1nFbJyVPP0omkr/lXFs/ML09tVNlTt9OqE9lqxnv1o+tKLjovm\npRnFQ1/z4We63yViO7P62z8yTzYbM7NnbUOlzl3beItI7OHDf4vI2cVvrrop4vHoxKltKpap\n2X36iMZ2ap9d/ObqmyLunZ6f1rZSmVq9po+4P8NsTl7WDO+QPNxC9m8/B8+SvSln7/Psnyg7\nsukqDy0BAAAAAAAAKJKc/1xdEk5u/OHPDH+5PurIdxtPOvhL6AAAAAAAAIADNxa1VTRelR96\n9w9rmVazvlvaq3zKeNqOo442/szJOWnMB389oopI5UaNKuWhTc+QkGq3HtUPG3y/iJz6JvyI\nXF8Vvs0iUr7PkMe80q9y9f02GkVRFKXyc3tFRBIiIi7lrB+7fYbef7+3iO3PD7o1qmHwCaj5\nQI8XV57Jum+p/d5yXCEXNc2HDv4pIlK5Th0fEREJCAkpJyK2Q4d+d1wyF83Y/v3x1ada1q3o\nr3PTKErIS3+IiFz4559M33vvWatWZRER0el0IiImk0lEPXb0hIhIhdq1U9qrHhLike011GNH\nT6giUrFOHX8REalZp86tM3PysmZ+h+TlFrLh4FmyM+X0fZ7tE5ULuW8JAAAAAAAAQNHkNDCa\nvP/VQUuMlfW3RgwVYxYOem1/sivbAgAAAAAAQIkVOGK7Nenijtda+MrN3VM7911xPiUEGhoa\nKiIi58+fz3C2+fz5ayIinnXr1hC5u149RUTkXESEs+SdSE7DpTaLJZtibm5uGR+GDAproRGJ\n+CZ8/crwHRaRqgPC2rvdukroa8fUTA5NqZHDfuyNlxv06Yb3hne6P0jvJmKJiTy4dm6/ge9H\nZG3Vbm85rpDzmmpOFmcr582cea9Htxmr9l6qN3XXlSSbevqNBiIiqtWa6WVKf4EyPnFqaoe3\nxtIyxrdLG71tdfqh85f1tndIHm5BRG5/+zl4luxNOXufZ/tEOZOhqzy0BAAAAAAAAKBIchoY\nPfT1V/6dHiubcajiE138v/z6kOuaAgAAAAAAQMmm8azcZvqiF+5VRK59P/Gl74wiIlV6DWqn\nE5Gr363da00707hu9WaLiJTtOegxL5GKvZ953F9EolcvXhXt5CIeTR64V0Tk4qFDV26b8fAQ\nEUlISPkancizZ3MQg6zSL6yDh0jksuEzd1lF6g4Oa67JcJWIvXv/y1s/9vtUKrWZ8MmG3/6J\nir9x+tuna4uI9dixkznvzUGFX8ZUVBRFqTphfy7v17NxkwYiIpfOnIkXEZHoM2f+ExFN48b3\n2yvl7HZu+xr05N/3/5YsIvd2G9ykrIdiOnUq0knlWzT16t8tInIlIiKlvX8iIrL/m++a+vfc\nrYjIlb//Tjnz3OnTt87M+cuaLYe34Pjt5+BFz37K/vsnVxx0leuW7qANAAAAAAAAAC7kNDB6\n8+bNv0+cyPQ1QqbjxyOioqJc1xQAAAAAAABKPqX+uJee9BORqPDZC8+JiFR+ZvGirlW0cuGT\nUWNWnrhpSrx68OOhL66LF13dZ1a819VXRKTswE++Gnm3txjXjek27fvj/yUlxZw/seur//V6\nfnX87VcIGTl7eE2NWLe9/syHey/GRp8/8Nno174zidS57z4vEflv27qd16PPhL+26HBOGg7s\nHdbFS+TalSuqSKOwwfekXmXE60Ora8Ty86xnP/39Wpzx8qlf138w7tH+C//JaT/2xk8v6Nvr\n1a92Hj8fY/PyN/h4ioiuWbN7c9FbLirkuGadETMHByli+vHtWb9cjrq4eeb8bVbR1np2xtNV\nHNez30xQUJCIyKUTf1xLFhH3+g3u0ojI8Z/Xn425svN/M1bG5qxjEZHaw1/sYRAxb3jvjV1X\nos6tnbHI3l98rzV8cs8yIuaf5s3ZczXq7KoZi37PMJvzlzU7Dm/B4dvPwUtmb8ru+zxX7HeV\nh5YAAAAAAAAAFElOA6N169aNnP9Up0kfr9tx8I8/ft2x7uPnHun1/j+hoXULoj0AAAAAAACU\nXAG9Xh4VIiLWX999a6tJRLS1Bq05vHfxC0/4bR/fvIqvvsbDb5ysNWD614cOLnqsXNqqCp0/\nPnjkuzkjHjB+/XSzqr5+Feu17jtjgzGwfNbvBw94dOG+7fNHdip7ZFr7WlXqdZ55tE2/jp4i\nAQPmfTG2fd1yF5c8eX+bMbseCuuizUm//t2GdA8QERFNy7CBIWnDhs6f7N/y7vCO+v3Ptaha\nvkazHhM/PRf63KyB1XPeT/bjIYNfHeS/Y/bgdnXLGmp1X2N7cPCc9Z+PqJaL3nJTIcf3W+aJ\npXs3vRnWLH754zXK1+r5ta3N0+9t3TO/vb+TcvabCR7+1vRH61VUfhxYwUNR6s/SvhC+ZFjL\nmprNoxuEdnxL7T80NwlEQ58lP73dt1HA8Xe6NGoR9l2DsB56O2cGPLV4w3v9GhuOvf3Y/S2G\nrL9vwOPeIiLu7u4iuXlZs1PPwS04fPs5eMnsTtl7X+WK/a7y0hIAAAAAAACAokhRVSfft3Xu\n/TZ3jd+V+S+k6x5acHL76Jz9bBQAAAAAAAAAirqL7zSvOmm/eHb78ubaft6F3Q0AAAAAAAAA\n5DunO4xKzTFffDa8gV/6Y8Xv3hFffD6KtCgAAAAAAACAYuzi8mcHvffTnxdiE6Ijd77/7Lv7\nRTzrvzC5B2lRAAAAAAAAACWS8x1GRUTEFn1mz86D56KVgJpN2rQMDnCeMwUAAAAAAACAosx4\n4ps509/9ZufRf2PcytS4p9UTw19+Oex+Q2G3BQAAAAAAAAAukbPAaNJ/J//88/Q/1xOs6SdX\na9WnZVVXdgYAAAAAAAAAAAAAAAAAAIB84Twwmnzi075PjlkTkZh5uMcqdXVP1/UFAAAAAAAA\nAAAAAAAAAACAfOLm7ITYr6eMXhORVBC9AAAAAAAAAAAAAAAAAAAAwAU0zk74fe9e9YEXvv/j\nzEePyqMfnj6674ePnmlSo9P8GY8VRHsAAAAAAAAAAAAAAAAAAAC4U053GL1582abEdMeb+C/\nxkfcAqrXbxZSv1lja+tOay+OuzukIDoEAAAAAAAAAAAAAAAAAADAHXG6w6jNpvr7+4uIr6/v\nrhXz90ZeufD7Dzv+PnnyVAF0BwAAAAAAAAAAAAAAAAAAgDvmdIfRdPXq149e/mLLmi+KiEit\nF6u4qiUAAAAAAAAAAAAAAAAAAADkJ6c7jFZo0L5BBRGRqgNfGlrTPWVR+a6vjm7oYFHivzuW\nvtyrYXl3RVEUpdnbkQ4vYY5Y90rPB2qW8fLU6avd9/jEL47F5XgWAAAAAAAAAAAAAAAAAAAA\nTjgNjLaevmV6axERKf/Ekt+P7/g2fNXmoyfWDApysObq19Ne3ev71Icvtc9BB5fD+7fsPmvN\n1TaL/rr098oe5g3zBrbs8lGELSezAAAAAAAAAAAAAAAAAAAAcEpRVdXhCZvGhqzvfOaDTnmo\nnfRFF6+BP4o0nXtu/6Qa2Z9j3TuuRssPLsg9/zv+5/S7Ra7Ob11xwm7R911z+avuXo5nM1fa\nsWPHqVOn0h/269fP19c3D10DAAAAAAAAAAAAAAAAAFBgTCZTQkJCVFRUQkJCfHy80WiMjY1N\nSEhISEjIx6s8+eSTFSpUyMeCKHbcnJ3gr0k4dz1JROea6x/bsOGCiEhwcG0REakQHOwru+Ni\nNm3aL93bOp7NXGnFihXLli1Lf/jII48QGAUAAAAAAAAAAAAAAAAAuFp64jM+Pj4hISFj4tPe\nYMZsqNVqdUVX3t7e3t7e/v7+fn5+Pj4+rVq1IjBayjkNjDZo3/704i8j+z5dQ+uK658/f15E\nxMPPzzNlwM/PTyRObv77b7yzWR9XNAQAAAAAAAAAAAAAAAAAKHUSExOjoqKSkpJSDjIeOx68\nefOmyWRyUVc6nc5gMBgMBi8vr5Tj9APHg2XLlvXw8HBRVyimnAZG/zof67Nr2N21Frd9ILic\nz63Tm4xZPrrxnV9fVVP/UNMH1JzOAgAAAAAAAAAAAAAAAAAgIiQ+AWecBkYjt393JEYk5sBP\n/x7IOB7XJV8Co0FB1UQiJNloNIl4iojRaBQRKVOtmo+zWQAAAAAAAAAAAAAAAABASUHiE3Ap\np4FRfVC9evWyGQ/S5/WSv4yp2PbDq1Jl/L4L85rV79SpyqwFFyUiIkKknsiViIh4EdE/0qmZ\niDieBQBkoUZH2f48rMbHFXYjAAAAAAAAAAAAAACg6EoWJU6RJFGSROJESVaUGFGsikSLkixK\nvEiSaBIVtXFgYMf7G+W8LIlPoChzGhjt+O6xYy68vrbllDe7hQ/49tjSOSsHzWt56o1F+0X8\nWs98rau309k0Bw4cMBqNMTExBoPBYrGk7kIKAKWPGh1lnv+mJCQUdiMAAAAAAAAAAAAAACCf\nJWq1SZqU/2kStW5JGk2SVhvl7pGkvX0wSeOWqNVEuXmaNJqUVYlarUmrTdRok7TaRI02yt3D\npNFkfxmTSeKMYjaLySRGY5cb+6L/PkviEygZHARGI7cu+bv2sPY1REQS/ouM96lRztv+2Rkl\nfdHVa+B36Q8PvFBTeUGk6dzz+ydVzXJylf5f79HNeGnOlyPuqpTgUS70kXHL35g1uI4mJ7Mp\n5s+ff/r0aRGpVauW0WgkMAqg1LIdOURaFAAAAAAAAAAAAACAouC2fGe0u3tSWmQzm9Cnxi1R\no82a70xJdiZo3ezmO7PKlPiMEaNRzGYxm1IPTCYxGiUu9tZxykGcUWJjJTn5tmLrRdbnx7NB\n4hMoChRVVe1Mre6phPdRV/e8/bjI6devX0pgVESMRmPKcWRkZPXq1Qu1LwAoaJYNP1h/+bmw\nuwAAAAAAAAAAAAAAoPgptHxnVpn3+LzDxGd+IfEJlABOv5K+GFi8eLHVah07duyXX35Z2L0A\nAAAAAAAAAAAAAAAAcLkilO/MqkgmPsXDQ/z8xNdPPD1Tj1MOfP1vHfv5iUfagZ+feHo+JtZv\ne3Qn8QmUDCUhMOrj4yMiWq3WarUWdi8AUIS4de2llC1f2F0AAAAAAAAAAAAAAEo7syrxqpqo\nqkmqalRViyoxqs2iKrGq7fYpUaJtNotIrE01ixpvkyRVTRLVaFMtIulTLu+4BCU+xcND0esD\nPDzcFcVXUXSK4qWIj6K4i6LXiFZRAhTFXRRfjaJTxEvER6PxENFrFK0oARop66cnLQqUGCUh\nMAoAyJamapBSrXphdwEAAAAAAAAAAAAAKH4SbbYkmy3Rakuy2RJttiiLJeUg42CGKfW2wdSp\nZEuSzRZvs5oLIOJ5m5T4ZsZ8Z3ri02gUs0lM5qKc+PTQeXr663V6vc7Ly0un8w0M9PLw8NJo\ndBqNwc3NS6vRaRQvjVanUVIGU6fc3TI+TP2nVmNwIyQGQMRZYPSHoWXLjhQRMRvFtDn1OMUT\ny65/+rhLWwMAAAAAAAAAAAAAAACQA8U+35lVbhOf6ScURuJT6+fv7q931+k8dJ46vd5T5+Wp\n0xkMBj99gLeXl4+3V0DZQB8Pz/R8Z1roU0O+E0BBcvx/LmbjjRu3HmQ4Fok1uagjAAAAAAAA\nAAAAAAAAoEQrgfnOrIpw4lPx89d4emo9Pd38/d08de6enh56vV9AgKdOp9PpfAICvLx03jov\nf0NAQIDB19urrLdP+fLlfDw9s+Y7y7i76TQaV3ULAPnKQWC0YsNHHomzO9uwogu6AQAAAAAA\nAAAAAAAAAIqaUpHvzKpIJj4VDw83/9TtPN09PXV6vYdO56HT+egDfAP03l5eOp2uXJkyPt7e\nPl66QEOZwDIGvbePn5dXlfLlfT09yXcCKM0cBEZbTd24seAaAQAAAAAAAAAAAAAAAPJDKc13\nZlUkE59aT0+dv95Lr3f30nl46nwD9D5e3jqdTm8ICDAYfLxSg55+3t5+Xl7VygZWCAz0SomB\nlivn7u7uoq4AoDRw/JX0AAAAAAAAAAAAAAAAgGuR77Qrz4nPmFixuCTx6e7p6aHz8tB5+gYE\n6Ly8dDpdQMCtoGfFwEA/b2+dTmcwGAwGQ0rQM/2AxCcAFC4CowAAAAAAAAAAAAAAAMgF8p25\nUPQSnx66VAEGg4+3t7edcCeJTwAoeQiMAgAAAAAAAAAAAAAAlGT5mO+Ms1qT1RKd78yq6CU+\ndTpdTsKdJD4BALchMAoAAAAAAAAAAAAAAFCEkO/MZ7lMfCpxcYrZLCaTGhujJpP4BACUHARG\nAQAAAAAAAAAAAAAA8i49ypkp2ZlN6FNNtFnJd+aFw8SnW7JZazZr4uI0yWaNyaQajTajUcxm\nmynJHB1ty33iUxVx+hqQ+AQAFEc5CozePLR09tvf7I64d+ahuR3k0raFOwwD+zb0cXVvAAAA\nAAAAAADkVILVZlJtRovVoqpRFotVlVirxWRTE2zWBKvNZLMVdoMAAAAoHuKstmTVFm2xWlU1\nxmpNttnirKmxzpQ0Z4zFYlHVGIs1WVXjrNbC7reYSEt8apOTvZOT3eLjPJKT3ZPNitGojYsT\ns9ndbE42xmrMZpvJZImNNcXGWE0ma5IpPuqmxVni0yJiyX1HJD4BAKWQ88Co5cjMdq2m/2ES\nEf9oEZHy2uPTJn324NZRlV3dHAAAAAAAAACgBLvDfZhSV1ltSTab0Wq1sA8TAAAA4AI6jcZL\no/FMTvZMiHOLi/NITnZLTtbFx7mZkzVmsxoXa42NVczJqikpOTbWZjaJyZQYE5MQE2MxmcxJ\nSbE3byabzenVrCLG/GqMxCcAALnkNDAa/eUrs/+wGOq0qByzN3XJgwN7RDy38vKoCZVc3R1K\nK/W/a+rli4XdBVD8qP9dLewWAAAAAABASUa+EwAAACj6UvKdOo3GS6tJPza4uXkkmzXGOCXO\nqE02a81mmzFWYzaLySxGo9kYYzOZbaakhJgYq8mUnJQUFx1tjI5ONpmSEhNv3LgRlSHxmZ+t\nkvgEAKBgOQ2MHjt4sPyIjUcWdtjSUwlPHQsNrXvy11MiBEbhCtYDey3ffiP8sBgAAAAAAAC4\nA/FWq1lVYy1Wq6pGWSwWVTVarRm/nz3WmjJlTZuyJVhtCTaryabGWi1WVVJXWawm1ZZg5fvc\nAQAAgPznrii+Wm1KuNNXq3VXFL2bVitKgJubuyZlSvHSaH21GndF8bZYkmJjtHFG1WTWms2m\n2BgxmcVsio+ONsXGmpOSbCZTVFRUUlJSYmJiVFRUynFUYuKNGzfMJD4BAEAOAqNRUVE1Wt8X\nkHHIEhERGR8f77qmULpZN/9IWhQAAAAAAAClEPt3AgAAAEWfvf07MwwqXpqUoGfaVNqZitmU\nHBNrio1VzGabKclmNFpNpozhzpTjlINLGQaLZuKzfPnybm5OYycAAKAIcfpv7uDg4B0z+r4S\nMN3PKIlXju//ce9382e9fabuq3ULoj2UPqqqxhkLuwmgpPDxLewOAAAAAAAosdL377SoanTm\n/TvjrTazzRZrTZnKtH9nvM1qtqmxVotFlWj277wDnhqNt0bjrdV4ajR+Wq2bohjc3LSK+Gvd\nPDWKt1brrUmfEgO/wwYAAEDOeGo03lpNyq6fKXHPtF0/3dwURe+mtRfuvG3wcpZBEp8AAKAo\ncPov/rsGDG02Z9KsvltERDbX/0lERDxbP98/2MWdAQDuhPb+JkqZwMLuAgAAAACAIoT9OwvX\nbfsw3dqBKcs+TJk3Z9JkPC1lcyYfjdZDoxT2DQEAAKBYymHiM+sgiU8AAFACOP/cEDLh6xV/\nPfHM0qNpuz76NRi29IsxNV3bFyAiIkr5CtpWbQu7C6D4UcqU0QSzEzQAAAAAoHgj31m4yHcC\nAACgaCLxCQAAkGc5+NihrdFnyZFOU/bsPHguWgJqNm7TMiRA4/rOABFR9AHapi0KuwsAAAAA\nAAA4R76zcJHvBAAAQHFB4hMAAKCwOP3UsnFKxzX+Q8IGdWv9RHDrgugIAAAAAAAAgOuR7yxc\n5DsBAABQfOU58Xn9+vXk5GRXtETiEwAAICecfuiJi9iyZM2WJa/4h3ToExYWNqhb86q6gmgM\nAAAAAAAAwC3kOwsX+U4AAACUJCQ+AQAASienn5lqt+7cYMfmP6/Hntn8ydTNn7wSULdD77Ah\nQwZ2bVqF4CgAAAAAAACQPfKdhYt8JwAAAEo2Ep8AAADIA6cfuRqOX//H6Jt/bVnzdXj4N+t2\nnI4+tXnRS5sXTXtqreWbbgXRIQAAAAAAAOBy5DsLF/lOAAAAlDYkPgEAAFDwcvSJza3MXZ2G\nz+g0/OVz62cNHT7nlytWsVqtjlaYI9bNnPLGF9uOXkrwKB/apuek2TMH1PfN5sToJR0Mw7dm\nGfYZ/EPc8i4icmRaaMPXT2We7Px54voBbG8KAAAAAABQiiXabFHJWZKdecp3xlqtVvKduUS+\nEwAAACDxCQAAgGInJx/4LDeO/bw6PDw8fN3Ov2NtIiKiDTD4219wObx/y36rr1UbtPKvd1uc\nmtmx87yBOw/H/rbt2WDN7acGDNuiDkt/FP1V9yr9v00QCQwMzHhWhdHbr+eOOEQAACAASURB\nVCx4KGd3BAAAAAAAgCLHcb4zw6aet+c7M+33Sb4zr/Ix3+mr1bor5DsBAABQ7CUmJmbNdJL4\nBAAAQMnm9PPinmn1u755/Lol5ZEmILTDU4PDwgZ1a17Z3grr3tkvrL6myj1PT+5VI1BqvDSi\n+fwJu3e8PH3dkK+6ezm61vlPF3yfICKa+54d2TyXNwIAAAAAAIB8Q76zcJHvBAAAAJzKNvGZ\nw/QniU8AAACUTk4/bl4+efy6RTQBdTv0HhwWNqhbsyrOvgz+2IYNF0REgoNri4hIheBgX9kd\nF7Np037p3tb+OvXwwo/3WUXEv9vkkSGZpv5b0tn7E4tbYFDI/Y+NmTE9rFEgP+QGAAAAAABI\nR76zcJHvBAAAAPKAxCcAAABQwJx+Wq3YasQbPQcP6trcaVA0zfnz50VEPPz8PFMG/Pz8ROLk\n5r//xov42Ftm3rhgSYSISM2Rk3vp00a15ZuPWvDO8C4tg73OrR7f8+nw94du2Xpuz+EZjd1z\n2A4AAAAAAEBRQ76zcJHvBAAAAPIFiU8AAACgeHH6YbfVhIWtclcy9VcUavqvKtSc/NIiauWH\nX18TEY+2kyY00aYP3zNu2Uephw2HLHzlm1VDNpmPz/9g46srHtdmWwcAAAAAACC/ke8sXOQ7\nAQAAABcpeYnPChUqaLX8JhkAAADInt3A6IdhYQelyZjlTQ+ELTiYzXyTMctHN852ZVBQNZEI\nSTYaTSKeImI0GkVEylSrZnd7UTm7dMGGRBEpN2jykEr2TtIHB5eVTVcl9vz5GJEydosBAAAA\nAIBSjXxn4SLfCQAAABSYop/4zDboSeITAAAAKBR2A6PbV6xYI3FdllfYvmLFmmzm47rYC4zW\n79SpyqwFFyUiIkKknsiViIh4EdE/0qmZiIj8MqZi2w+vSpXx+y7MSxkR228ff3zAJqK5d9yk\nR7zsNhsTEXFdRMRQs2ZADu8PAAAAAAAUeeQ7C9etjKZ75mRnhnxndqHPDMnOtEHynQAAAEBu\nFdPEp4NBf39/Ep8AAABA0WQ3MBpUr149CdKLPqhevXrZzevtrdS2nPJmt/AB3x5bOmfloHkt\nT72xaL+IX+uZr3X1trMiccOCT8+KiG/Xyc/WzTSze/qjC3Vho7q3aVBVG7Fq/MzNVhGfplOf\ne1iTk5sDAAAAAAAuQL6zcJHvBAAAAIoUEp8AAAAAigu7gdF3jx1LOeiYdpBzVfp/vUc346U5\nX464q1KCR7nQR8Ytf2PW4Dr2Qp43vv4w/KaI1Bj24lO3fc9883GzL308/7V+046euRDnXbFG\nm/4zJr4y8cm6mf77pF+/fqdPnxaRRo0aGY3GlGMAAAAAAJCCfGfhIt8JAAAAFHEkPgEAAACU\nEorq5Nc8//yy/FzNsIeqZxo0Xjpp9Aut7OfKznIuPTAqIumB0cjIyOrVqztchyJJVU1Txqc/\n0oTUdR82uhDbAQAAAICCR76zcJHvBAAAAIodEp8AAAAAkBN2dxhNc3DBkPA+twdGN427K7yP\nurqny9rKlWHDhkVHR69YsWLv3r0u+s85AAAAAADsId9ZuMh3AgAAACXAnSQ+//vvP4vF4oqu\nSHwCAAAAKGGcBkazc/XqVSlCvz9p166diKxfv/769euF3QsAAAAAoKgj31m4yHcCAAAAJRKJ\nTwAAAAAo+hwERjePDx23SYyXxLgvNHTarXFr7KVzl/Vhr7q+OQAAAAAAyHcWLvKdAAAAQClB\n4hMAAAAASjwHgdHYi6dOnRIREWPqn7d4d27V0HVNAQAAAACKrXzMd8ZYLTbinblEvhMAAAAo\ntUh8AgAAAAAccxAYrf3wiBFl5ezPi/6uPaJjrfRhjc4Q1KTXiH6BBdAdAAAAAMDFyHcWLvKd\nAAAAANKR+AQAAAAAuJSDwGjDZxYuFNnywv5Njyyc26HgWgIAAAAA2EW+s3DlY77TT6t1I98J\nAAAAlCwkPgEAAAAARZmDwGiKDnOPEBYFAAAAgDwi31m4yHcCAAAAyBUSnwAAAACAEsxuYPTD\nsLCD0mTM8qYHwhYczGa+yZjloxu7sDEAAAAAKATkOwsX+U4AAAAAd4jEJwAAAAAA9tgNjG5f\nsWKNxHVZXmH7ihVrspmP60JgFC6jKkq0m7uIaLRad9f8aAYAAAAlg6pKtMViUVWj1ZqS14y3\n2syqLcZitapqtMViUSXDlNVsU2OtFsttq6y2eJvVTLozl7y1Gk9F4++m1SqKwc3NTVH8tFpP\njeKt0XprNZ4ajb82ZUqrVRR/rdZTo/HWarw1Wk+N4q910ypicHPTKoq/m9ZT0XhrNYV9QwAA\nAACKBBKfAAAAAAC4iN3AaFC9evUkSC/6oHr16mU3r3dhVyjVDgaUGXhvi0hvn9THuw8UajsA\nAABACZHzfGfaVDb5TjdF8SPfCQAAAMChkpf41Ov1Gg3/EQQAAAAAKPbsBkbfPXYs5aBj2gFQ\nMEbc88CttCgAAABQWvlotR6Kkm2+00er8bCT7/TRaD3IdwIAAAC4MyQ+AQAAAAAokewGRm9R\nYy+ciTfUqeRjivzh/fnrjieUbzbg+RGtyyqu7w6ljyryl49/YXcBAAAA5Fp6vtNNUQLIdwIA\nAAAoVCQ+AQAAAABAVs4Doze/Gdpidc8/Vz+1b2q7J945JyKyYtmWmD8PTg51eXcofVRVVIUw\nMgAAAAqCTqPx0mh0Go3B3S3lINM/tRqdRjG4uWUZTFuVPqXV+Gm1bnyOBQAAAJB/SHwCAAAA\nAIB85zQw+l/4J/u6vrYyQH5bveqciPgGt2ni/sf2FV+dmDzj7gJoEKVbBWtym4qVCrsLAAAA\nFGnp+3e6KUpA2v6dKTnO9P073RQJSNu/MyXxWdhdAwAAACjhSHwCAAAAAICixmlg9M/Dh+u3\naKiR6D/++FdE7p26YccUnw9ahvz2rwiBUbhafVPSynp1C7sLAAAAAAAAAECpcyeJz2vXrlmt\nVld0ReITAAAAAADkmdPAqM1mu3LxojX2xPZDIqJv3DhYJEqn8/X1LYDuAAAAAAAAAAAA8iRj\n4jOHQU8SnwAAAAAAoARzGhi9q169Y5Ma6t8wxyeKuLdo0UTE9uefZ+6/v35BtAcAAAAAAAAA\nAEqpvCU+U45jY2NJfAIAAAAAAGTkNDBaNWz6qEXdPjxtE/Gp/8LLffUS/fX7P7V79s2AgmgP\nAAAAAAAAAAAUVyQ+AQAAAAAAig6ngVEp02nBH/+MPnIqJiC0YWg5TxHbQ7N3dA7xLoDmAAAA\nAAAAAABAISLxCQAAAAAAUGI4D4yK2G4e/X7B9E9+OhQZI/oajR97ZsZbL9RxeWcAAAAAAAAA\nAOAOkfgEAAAAAABACueB0fgdzz/4yLyI1J8IRZ3d++WURw5c2XbkvTY+Lu4NAAAAAAAAAIDS\nrsgmPnMb9EwfJPEJAAAAAAByaV0ft27fZPghR+CIn68v7JCbCrvHVGz94dXOnyeuH6DL+aor\n81pVmrgn5fjBj//7ZWTZ3Fyz6HEaGP3v85kLIjRlG3R4uFlIBR+Jv3pm76atxxbM+HzqluJ+\n7wAAAAAAAAAAuByJTwAAAAAAgPxQ8JHNihN2qxNk/4SqzedfLMjruorTwOjhX3+tPHz9kU8e\nNqQP3dw4/L6nfv1dRj7s0tYAAAAAAAAAACgCSHwCAAAAAADYY939i3XPjjssom35oLbVQ7lf\nt7qn0muNiGi9DBVrPdBj2gfv9AlxU6/umj/llUU/Hzl7KcasNp17fn+HBcGtP7wqIj8O9FIG\nSo9V6spmW+ZMmvbp9uOXTPrqjTqPe2vOqEYGkesLHyo3Kv1mHlkctXFYwB3eWpHiNDBqMpmq\nNrzHkHGoTIN7qpoOmFzXFAAAAAAAAAAA+afkJT4DAgIURXFFVwAAAAAAALmiJiaqN2/ceZEc\nnLVjVDlllIiIdF5mXB/mK9JztaqKiM10Y//0di3fGjj2ng4bH/qqW6eJ+wzdP925d0ADg7uI\niMyJ2BWX8SvpT73dpMvU32qN3RoxM2jD0GZDnu10s8xfq3qn7V4aNDB8y0c9Q3y1d3hbRY7T\nwGjt2rX3vvLEMMuk3s1CKvpK3JXTe7+eO2Nf7fG1C6I9AAAAAAAAAABIfAIAAAAAACDLV9In\n/bl47Ph31h/+51pMkk1E5K+/zlyIW7kvQWqNmTKkgcFOHfn3x7WHTFKn25C2FfQyOOzhkWu/\n+n7tLkvvbinTVbuP7h3i69JbKSROA6N39wtrMmfy0uf6LM0w6N7kzf53u7ArAAAAAAAAAECJ\nQuITAAAAAAAA+evK0vEjlvwSNPS7yI8f1yztUP7ZbVarVVXVHC5P+9lOlgU+Pj752mfR4TQw\nKqHPhy878fiIFSfiUwd87h68KPz5ug4XmSPWzZzyxhfbjl5K8Cgf2qbnpNkzB9TPPnF7ZFpo\nw9dPZR5L2/c1l6UAAAAAAAAAAC5C4hMAAAAAAABZKV5eSpnAOy+Sh1XJycmqiE1Uifn9o8/3\npgxW69K7+bS9+758a8XAT/rVT/1KehF/f3+Rq9evXLFIDbegzt0bv7zvt2+X/TJ2ZtCGFT+b\npGzP7q2dpymLvRzcorZW/+V/Pvbynp2HImNEX6Nxm5Z1DFqHKy6H92/Zb/W1aoNW/vVui1Mz\nO3aeN3Dn4djftj0brLG3pMLo7VcWPJQvpQAAAAAAAAAAWZH4BAAAAAAAQL7TtnpI2+qhQrl0\ntafnvvHzkLlfdKv4aYZNQkPGrt1oe2naopdbVhwSa1abzj2/f1JVqT9gUo/vpv00pab7C3Wn\nHj0549sfzJNeWfpU7cUmffVGz3w0d07vstlcIWl5F68hP6Yc7xhVThlVZfy+C/OaFcjduYLi\neP/VuJPrFn7y/aELCT5VGz/xzMgnQ3Owtad177gaLT+4IPf87/if0+8WuTq/dcUJu0Xfd83l\nr7pnjQGn7DCafWA0N6WGDh26bNmy9IeRkZHVq1d33i2KGJtN1e7cm/6wfYJxy2OdCrEfAAAA\nAAAAoOi4k8RnTEyMzWZzRVckPgEAAAAAAIBiwdEOo7Zjb7VtOvlQQsqjbz5dtPKtA/tfqO9s\na89jGzZcEBEJDq4tIiIVgoN9ZXdczKZN+6V7WzuL/lvS2fsTi1tgUMj9j42ZMT2sUaCS11IA\nAAAAAAAAUDSR+AQAAAAAAABQWBwERmPDp89MS4uKiEjCwZmvfjNiTV9/xyXPnz8vIuLh5+eZ\nMuDn5ycSJzf//TdexOf207Xlm49a8M7wLi2Dvc6tHt/z6fD3h27Zem7P4RmN3XNbCgAAAAAA\nAABcisQnAAAAAAAAgGLKQWD0xK+/mu4a+PHHLz/ZoLIu8eKRb18fNXHHr39J36aOS6Z+x/2t\n77p3/K3394xb9lHqYcMhC1/5ZtWQTebj8z/Y+OqKx7W5LAUAAAAAAAAAjpH4BAAAAAAAAFA6\nOQiMXrp0qf3kj0c+6CMiYvBvO3rhlB/0Gy45LRkUVE0kQpKNRpOIp4gYjUYRkTLVqjndE1Qf\nHFxWNl2V2PPnY0TK3EkpAAAAAAAAACURiU8AAAAAAAAAyAMHgVGbTfXxyZjL9PX1tVmtTkvW\n79SpyqwFFyUiIkKknsiViIh4EdE/0qmZiIj8MqZi2w+vSpXx+y7Ma3bb2piIiOsiIoaaNQNy\nUAoAAAAAAABAsUPiEwAAAAAAAAAKnoPAqIj8MLRs2ZG3HpqNYtqcOvLEsuufPp7tIm3LKW92\nCx/w7bGlc1YOmtfy1BuL9ov4tZ75WlfvbM7ePf3RhbqwUd3bNKiqjVg1fuZmq4hP06nPPazJ\ncan58+dfvnz5n3/+qVWrVlJS0qVLzndBBQAAAAAAAJBnJD4BAAAAAAAAoNhxHBg1G2/cuH0o\ndSTWZH9Zlf5f79HNeGnOlyPuqpTgUS70kXHL35g1uI4mu3Obj5t96eP5r/WbdvTMhTjvijXa\n9J8x8ZWJT9bV5rzUgQMHTp8+LSIGgyH1O+sBAAAAAAAA2EfiEwAAAAAAAABKG0VVVTtTu1/v\nNGuX3YWtp22c2so1PeVWyg6jBw8ejIyMTN9hNDIysnr16oXdGnLNZlO1O/emP2yfYNzyWKdC\n7AcAAAAAAKBoIvEJAAAAAAAAAMgVBzuMtpq6cWPBNXIHxo8fLyJDhw7dtm1bYfcCAAAAAAAA\n5EjJS3waDAZXtAQAAAAAAAAAyBeOv5IeAAAAAAAAQPZIfAIAAAAAAAAAihECowAAAAAAACil\nbotykvgEAAAAAAAAAJRgBEYBAAAAAABQXOUh6Jk+SOITAAAAAAAAAFCqEBgFAAAAAABAoSHx\nCQAAAAAAAABAwSAwCgAAAAAAgLwj8QkAAAAAAAAAQLFAYBQAAAAAAKBUu5PEZ3R0tKqqruiK\nxCcAAAAAAAAAAPkrR4HRm4eWzn77m90R9848NLeDXNq2cIdhYN+GPq7uDQAAAAAAAM4Vi8Rn\ntkFPEp8AAAAAAAAAABQY54FRy5GZ7VpN/8MkIv7RIiLltcenTfrswa2jKru6OQAAAAAAgNKg\n+CY+sx0sU6aMTqdzRUsAAAAAAAAAACDPnAZGo798ZfYfFkOdFpVj9qYueXBgj4jnVl4eNaGS\nq7sDAAAAAAAoDkh8AgAAAAAAAACAIs5pYPTYwYPlR2w8srDDlp5KeOpYaGjdk7+eEiEwCgAA\nAAAASgYSnwAAAAAAAAAAoGRzGhiNioqq0fq+gIxDloiIyPj4eNc1BQAAAAAAkEskPgEAAAAA\nAAAAQGmyro9bt290g9W45Tlc4DQwGhwcvGNG31cCpvsZJfHK8f0/7v1u/qy3z9R9te6ddQoA\nAAAAAJARiU8AAAAAAAAAAADXcRoYvWvA0GZzJs3qu0VEZHP9n0RExLP18/2DXdwZAAAAAAAo\nXkh8AgAAAAAAAAAAFFlOA6MSMuHrFX898czSo8bUAb8Gw5Z+Maama/sCAAAAAAAFjsQnAAAA\nAAAAAADIlfkXLr1/8fIdFhlXpdL4qpXtTptPfDrymde/P/zvjQSLiM/gH+KWdxFRr+6aP+WV\nRT8fOXspxqw2nXt+/3OyZc6kaZ9uP37JpK/eqPO4t+aMamQQub7woXKjdqQVe2TxzWXBS16Y\nunjLnxcSfKs1fnzi3LkjG+mzu26mhR6BIQ89s2D56w9XUnJY0N5yWd1T6bVGRLRehoq1Hugx\n7YN3+oRE31YzauMw/eVf3s5SNunE8jFDXln52wWjNffPs/PAqGhr9FlypNOUPTsPnouWgJqN\n27QMCdDk/koAAAAAAMDVSHwCAAAAAAAAAICCFGWxnE1MuvMiDmaT1k4fsWxfg+d/2vBS2zqB\nHqmjER906zRxn6H7pzv3DmhgcBeRU2836TL1t1pjt0bMDNowtNmQZzvdLPPXqt5lUxcEDQzf\n8lHPEN+z85rd++LRJrP3XRhffte4Zo+P6pRUOfKzJ3zsXr/WiB93vxm6afADQ2b3GtXg7Lo+\nuSuYZXlgz9WqKiI2043909u1fGvg2Hs6bOyauaZW5My8bo9lKfvS0T7Dlh4NHr31yuuVV/V5\nYOxGYzYN2+U0MLptcuMXt2Yz3v6tQ2+2y82VAAAAAACAUyQ+AQAAAAAAAAAAMlEURWy/v9Op\n7jueZeu26jtz4bxewZfWr9yXILXGTBnSwJBy1r8/rj1kkjrdhrStoJfBYQ+PXPvV92t3WXp3\nS5mu2n107xBfkfPrVx1IFNn50r0BL6XW37btqDzRzN7VK3cZ/FglvQzq3/6Z71Zu3rhP7dMs\nNwWzLu9wdPHY8e+sP/zPtZgkm4jIX3+dka6ZaoqdspubHD5qlVpPDm5XQS9P92s9duNPuXki\nnQZGb/7922+/ZTNe42ZuLgMAAAAAQClB4hMAAAAAAAAAACAf6bq/vnxM3Ow1u05cjr9+ausH\nw97o0uvTu+z8SkVRFBERyTLt4+OTOqGKSMhLv51+4/4cXT6tokjmkjksmGX5laXjRyz5JWjo\nd5EfP65Z2qH8s9us1rSvl0+raa/spffbZCqZS04Do9Va9e596yRL/H9nD+89nFC3S6tqebsg\nAAAAAABFG4lPAAAAAAAAAACAHDK4udXyutPfRBjcHEYZ3ev0+2BDvw+ssRErBjd9ep3G01Ok\nWpfezaft3fflWysGftKvvsFdJKhz98Yv7/vt22W/jJ0ZtGHFzyYp27N76yyFgzr3bDJ138HP\n5nw+cEnfu/ydZijl4g/Lf5p8V+imL7daxP+xR5ortwVHnRTMsjw5IlkVsYkqMb9/9Plee5fN\ntmzlDg/X1+w6tm75tokhVVZ9tctp85k5vdmmE8LDM49YL4T367G3Yc6ytQAAAAAAFDQSnwAA\nAAAAAAAAAAVjfNXK46tWduklLOE93fuuERGNp75S3c7T3pz+oIiEjF270fbStEUvt6w4JNas\nNp17fv9z3/5gnvTK0qdqLzbpqzd65qO5c3qXzVqu7oRvf7RMnr7kxWZlB8Umi4hn/2+Tvuhq\n//pnF3WuvEg8ygR3ePH9j/oEilzPVcHblytPz33j5yFzv+hW8VOHv5PKvuzzX3/y99BXVzxc\n8UOro8XZU/Lya7BrH7Vpeu69c3Mb5f56rjN06NBly5alP4yMjKxevXoh9oO8sdlU7c5boen2\nCcYtj3UqxH4AAAAAFIo7SXxGRUW5qCsSnwAAAAAAAAAAAKXI9YUPlRu1o+7Uoydn1S/45S7g\ndIfRP5ZPXP6Homg0GkVExGZJjDq9fc2u6z1vuL45AAAAAEAxReITAAAAAAAAAAAAKFKcBkbP\nrJ83b02WUa+Oze51ST8AAAAAgCKhhCU+AwMDPT09XdQVAAAAAAAAAAAAirnVPZVeGaOS9V49\neuy1kb+oI/NesuydLXcBp4FRnaFChQoZHiseAdUaPjFt/tAKdpcAAAAAAAofiU8AAAAAAAAA\nAAAgZ3quVtXC7sHlnAZGuyy+cqUgGgEAAAAAZEbiEwAAAAAAAAAAAEB+cRoY3TQ2ZH3nMx90\nyl1Zc8S6mVPe+GLb0UsJHuVD2/ScNHvmgPq+2Z2pxpzauOKjRZ//sPvYxQTvCtXvbt3vhdee\nfyLEO2X6yLTQhq+fyryk8+eJ6wfoctcQAAAAABQ8Ep8AAAAAAAAAAAAAigingVF/TcK560ki\nuQloXg7v37Lf6mvVBq38690Wp2Z27Dxv4M7Dsb9tezZYk+XcY4teWhrffeJnkz+rpjnx0cDO\nk7+avnvTHytPru5V9tZJFUZvv7LgoVx0AAAAAAD5gcQnAAAAAAAAAAAAgJLBaWC0Qfv2pxd/\nGdn36RraHJa07p39wuprqtzz9OReNQKlxksjms+fsHvHy9PXDfmqu9ftZ9/z4trVacfNXpza\nd+6WD6/fWLtifWyvMP9c3AcAAAAAZCcPQU8SnwAAAAAAAAAAAABKHqeB0b/Ox/rsGnZ3rcVt\nHwgu53Pr9CZjlo9unO2KYxs2XBARCQ6uLSIiFYKDfWV3XMymTfule1uHF0u4ciVGRERNTrZm\nHP9vSWfvTyxugUEh9z82Zsb0sEaBirO+AQAAAJQMeU58phy7qCsSnwAAAAAAAAAAAACKF6eB\n0cjt3x2JEYk58NO/BzKOx3WxFxg9f/68iIiHn1/qL0H9/PxE4uTmv//Gi/jYv1Tib6+/+UOy\niHi17fGYIWVMW775qAXvDO/SMtjr3OrxPZ8Of3/olq3n9hye8f/27jzexzL/H/j7c8i+hkoi\nRIgWRcSkaSGiJm2DUqeanLahfZkaNWkxmbaZFjUU00JS03dGSZu00Y9KkxrLKSbZiiwH2c75\n/P4gUWdxDmdxej7/cD7nuq77ut/X/eiPq/u8PvfdZo8dWR4AAFDsJD4BAAAAAAAAil2egdHq\nDVq2bJlNe4PqOR2RTG75kdzakMxp7I8yv3z8tz3unL4hUuqdNXzERfW2NB/c/4mHt3xsff7Q\nPz773PkTNnz2wN9euWXkyWXynhQAANgFJD4BAAAAAAAAdnd5BkY73ztjRv6mbNCgfkR6bMzI\nWB9RPiIyMjIiIvasXz/Hx4t+869+J/b79+JIadDryYlP9m6Q/RvnqzdpUjsmLIlV8+evjNgz\nf2UBAMAvl8QnAAAAAAAAwC9cLoHRWS8O/m+LG05tlt8pW3XtWu/2BxdEenp6RMuIxenpayKi\n+old20dExFuX73PsQ0ui3oDJX9/fPiIi490bu/V6PD0zand7+NV/9GmcY00r09OXRkTUbNSo\nRn6rAgCA3VlJTnzueNBz62eJTwAAAAAAAIAilktg9NOnbhzdqwCB0TIdb/hzz9Hn/HPG8MFj\nzr2/46w7H50SUfXoQbeeWimb0RtmPNDz5MEffR9Vjrrt5bFpzfbYrvfdgd2GVki95LROh+xX\nJv25AYNezYyo3O6mq7qkbDPogw8+yMjIWLlyZc2aNTdt2rTlgaYAAFCSSHwCAAAAAAAAUIzy\nfCV9QdQ7e9R7FW67cfDTaS3qri1Xp/mJ/Ufceft5B6ZkN/ajYUPeWBERsXrywCMrD9zSesD1\nU9MHt4k4qv9dCx954NY+N3865+vVlfZp2Ons267845W/aVZm2ykeeOCB2bNnR0Tjxo0zMjIE\nRgEAKAwSnwAAAAAAAADsvhLJZDKHrrFnJEZ2XfT3Htn3Vqi5T40S8uflPn36bA6MRkRGRsbm\nz/Pmzdt///2LtS4KIisrWebt97f+evzajNdP6lqM9QAApYnEJwAAAAAAAAC/WLk/YXTcRXXr\n5tB1+nPJsWfs+noK4plnnomICy644IknnijuWgAAKEQSnwAAAAAAAABQMIXySnoAAMhWKUt8\n1q5du1y5coVUFQAAAAAAAADsQrkHRg88+eqTD8y+65BmhVANAAAlnMQnAAAAAAAAAOyOcg+M\nHnzuX/5SQt47DwDALiHxCQAAAAAAAAC/QF5JDwCwm5H4BAAAAAAAAADyK5fAaLnK1Sv70z0A\nwC4n8QkAAAAAAAAAFLEcA6NLl3YfueKUXI7MXLo0o3btGoVQEwBAtoIJ8QAAHG5JREFUCVfg\nxOd33323fv36QqpK4hMAAAAAAAAAyEmOgdFLGjVfl3bVZRf8tvNBe5bZrmfTss9effbxR+57\ntMJdq587o9ArBADY9SQ+AQAAAAAAAIBflBwDo1UT6WPvuXTcPf1rNDqsXduDG+1Ts1KsXb7o\ny0+nfTB97spNEVH1/KpFWCgAwLYkPgEAAAAAAAAAdlyOgdHHZr/beuANg//x7sK50ybMnbZd\nX4V6R597w+DbLu5Q6OUBAKWWxCcAAAAAAAAAQJHJMTBadp+Ov3/snUvu+OTlF/712jvTZs3/\ndnVUqVO/WZtOXX5zerdDauV4IADwCyHxCQAAAAAAAACwu8gj91m2zqGnpB16SlrRFAMAFCmJ\nTwAAAAAAAACAXwgPCgWA3ZjEJwAAAAAAAAAAO0JgFACKk8QnAAAAAAAAAABFQGAUAHaKxCcA\nAAAAAAAAACWfwCgAv3S5ZDp3x8RnnTp19thjj0KqCgAAAAAAAACA3ZTAKAC7vfw+2nPrZ4lP\nAAAAAAAAAAB+IfIMjL4+8OR/Vu7Tu/cpHRtUThRFRQD88kh8AgAAAAAAAABAocozMLri83EP\nPz/u4Rsr1e9wSq/evfuc2fWwvcoVRWUA7EYkPgEAAAAAAAAAoCTLMzC6/5HHNXtj0qwVa+e/\nN3rIe6OHDKjZ/ITTe/fu3bvnr5tWSymKEgEoAhKfAAAAAAAAAABQiuUZGG173Rszr1z62Rv/\n9/wLL7zw4uuffLt85oRht0wYdsvFddv0vPyOIdd1qZfnHAAUvgInPpctW7Zhw4bCKKlChQo7\nGPSU+AQAAAAAAAAAgEK1Q2HPPWq37Hphy659L77o6T9dfOXDH62MiFi3aNqom076f0snpt97\ndOHWCPDLsFsnPn/eKPEJAAAAAAAAAAAlx44ERjd+M/2lp5944olnXv506aaIiChT6+Du55x6\n0NLxw5558pkQGAWICIlPAAAAAAAAAACgpMozMDr5lsN+c9cn327c/FvFBkefdWFa2oVnHFWv\nfERcdcDimhMKuUKAoiPxCQAAAAAAAAAAlEp5BkYXfPbJtxujzJ6tTjq3X1pa327Na6T82Fnj\niLPSsgqzPID8kfgEAAAAAAAAAAD4uTwDo2vWxK9vf+/JqzvsV+HHxoyFMzOqNt+3arTuN7R1\ndkdtSH9x0A13PvXmpwvXltureaczrrlr0DmtquRwitwH52sqYLcn8QkAAAAAAAAAALDL5RkY\nrVw5ajXbLi0aERP6txjdKzn2jByOWTT67I59xn5T/9wx/723w6xBnbvf3/ftj1d9+OalTVLy\nOzhfUwElgcQnAAAAAAAAAABASZNnYDQ7S5YsiUQip97M9++6duw3yTj4wuvPbFgrGt6YdtQD\nV7w76Q8DXzz/mdMq5mtwvqYCdhGJTwAAAAAAAAAAgFIml8DoqwOa958QGQsjY3Lz5jf/2J65\nauHcRdVTb8npuBnjx38dEdGkyQEREbF3kyZV4t3VKydMmBKnHZuvwfmaCviBxCcAAAAAAAAA\nAADbyiUwumrBrFmzIiIiY8vPH1Xq/qvWOR03f/78iIhyVauW39xQtWrViNXx3VdfrYmonJ/B\n+ZoKSpFSlvjca6+9ypYt0POMAQAAAAAAAAAA2BVyiXAd0CUtrXZ8+dqjXxyQ1rnx1uaUCjUb\ntD0zrU+tnI5LJrf8SG5tSOY0No/B+ZoKShKJTwAAAAAAAAAAAEqOXBJgrfsNHRrx+rVTJpw4\ndMgJOz5lgwb1I9JjY0bG+ojyEZGRkRERsWf9+j9/Jmjug/M1FexSEp8AAAAAAAAAAACUGnkG\nyE4YMj0fYdGIiFZdu9a7/cEFkZ6eHtEyYnF6+pqIqH5i1/YREfHW5fsc+9CSqDdg8tf3t899\ncF5TQS4kPgEAAAAAAAAAAGCzHPNnD6WmTo22l49o90Hqg1Oz6W97+YjL2mR7ZJmON/y55+hz\n/jlj+OAx597fcdadj06JqHr0oFtPrZTfwfmaitJn/fr13y377LPPJD4BAAAAAAAAAABgZ+QY\nX5s4cuTzsbrHiL0njhz5fDb9q3vkFBiNqHf2qPcq3Hbj4KfTWtRdW65O8xP7j7jz9vMOTCnA\n4B2Zqk+fPrNnz46II444IiMjY/NnSoKCPeMzVq6Mlati08aIeDei1S4tSeITAAAAAAAAAACA\nX6BEMpnMtuOqVq1ejS73zeg2vtWVr2bT3+W+Gfd2LtzadtTWwGhEbA2Mzps3b//99y/WukqD\nAr/VfenSpRs3biyMkiQ+AQAAAAAAAAAAIL9yDIzuRj744IOMjIxHHnlk4sSJmzZtysjICIHR\nH0h8AgAAAAAAAAAAAHlm7/731oi5jVJ/vX30MmPhzIyqzfetWmhl5Uu7du0i4plnnlm+fHlx\n17LrSXwCAAAAAAAAAAAAOynP6N7UB88f3eungdEJ/VuM7pUce0ahlVWaSHwCAAAAAAAAAAAA\nxatAyb8lS5ZEIrGrSymxJD4BAAAAAAAAAACA3VouwcFXBzTvPyEyFkbG5ObNb/6xPXPVwrmL\nqqfeUvjF7YxDDz00JSUlIpLJ5OZ/t/2w9desrKxtG3/yeXNvYUgkEpv/3fZDtr/+pCUiNq8r\nItatW7do0aJCqhAAAAAAAAAAAIDSYfz48e3atSvuKihmuQRGVy2YNWtWRERkbPn5o0rdf9W6\n8IraFVauXFncJeRmazi1uAsBAAAAAAAAAACglNu0aVNxl0DxyyUwekCXtLTa8eVrj35xQFrn\nxlubUyrUbND2zLQ+tYqguvw477zz2rdv/8Ybb4wZM6a4a2Fn1a1bt1y5cqtWrVq+fHlx1wIA\nUCj23nvvChUqrF69etmyZcVdCwBAoahTp06lSpXWrl377bffFnctAACFolatWlWqVFm3bt2S\nJUuKuxYAgEJRs2bNatWqbdiwwWuQoXTIJTDaut/QoRGvXztlwolDh5xQdCUV0DHHHHPMMcfU\nqlVLYLQUqFmzZsWKFTMzMwVGAYDSqkaNGlWqVIkIgVEAoLSqVq1ajRo1li9fLjAKAJRWVatW\nrVWrVkZGhsAoAFBaValSpXbt2mvXrhUYhdIhUcreiv7hhx+mpaUVdxUAAAAAAAAAAABQUgwf\nPvzQQw8t7iooZjkGRh9KTZ0abS8f0e6D1AenZtPf9vIRl7Up3Nr45erdu/ecOXP69u07YMCA\n4q4FAKBQ9OvX76OPPjr11FNvvvnm4q4FAKBQXH311ZMmTTruuOPuvvvu4q4FAKBQ3HrrrePG\njTvyyCMffvjh4q4FAKBQ3HPPPaNGjWrRosWTTz5Z3LUAu0COr6SfOHLk87G6x4i9J44c+Xw2\n/at7CIwCAAAAAAAAAAAA7A5yfMLoVa1avRpd7pvRbXyrK1/Npr/LfTPu7Vy4tQEAAAAAAAAA\nAACwC+QYGP3B/94aMbdR6q/3364xY+HMjKrN961amJUBAAAAAAAAAAAAsEuk5DVg6oPnPzj1\np40T+rfoP6FwCgIAAAAAAAAAAABg18ozMJqdJUuWRCKxq0sBAAAAAAAAAAAAoDDk8kr6Vwc0\n7z8hMhbOyqjabNu3z2euWjh3UUrqayuGnVAkJQIAAAAAAAAAAACwM3J5wuiqBbNmzZq1MCMy\nFs7aVvqijMxKv/pV66IrktJhQ/qLfzzjyEZ7VixfoXr9w06+8qkZqws6OF9TAQAUmR3fpSRX\nzhr/1wGntm1cu2L5SrUatDj67EH/mrN2a/f0m5snfqrHU+uKZhUAALnIx22ZvLY07vAAACXT\nDu9SVgw74WfbnUQiUSV13OZ+d3gAgBLq+68mDf/Dma332iORSCQS7f8yL9fRMjxQquQSGD2g\nS1paWlrnxtG4c9o2Lhlww11PvfPkebWKrkhKg0Wjz+542u3PL+n06H8XfjHm9A3j7+/bscfD\n6VkFGJyvqQAAikx+dikzHr1x+LK2V/7j3S+//d+b1zf75t1nBv7mqHOfW7rdoL0vm5j80bhz\nKhTJMgAAclaA2zI5bWnc4QEASqZ87FJq/O71bTY6y5/uWSkiImrV2u7vqO7wAAAlzZJRN9/y\nfpWzHrrx+B0YLMMDpUwur6Tf7PVrD5tw4vQh3j7PTsl8v3/Djn/7Og7+02f/GXhQxJIHjt7n\ninejeu/nFz1zWsV8Dc7XVAAARWZndilvXV7n2IeWRqL7EyvGpVaLiOk3N299x6y9L5u4+MFf\nF0XxAAA7Ip8bnty2NO7wAAAlU8F3KfPv7dDo6smZkXLY4JkfX980wh0eAKCEW/dUj4p9X4po\nN2TulGsaZj9GhgdKnVyeMLrZCUOkRdl5M8aP/zoiokmTAyIiYu8mTapExMoJE6bkd3C+pgIA\nKDI7sUtZu3jxyoiI5MaNmdu2fzuse6Vy5avVbXpE9wFPfLgs9296AQAUugJteLLf0rjDAwCU\nTAXdpSQ/HvrI5MyIqNbz+oubbtflDg8AsBuT4YFSp2xOHQ+lpk6NtpePaPdB6oNTs+lve/mI\ny9oUYmGULvPnz4+IKFe1avnNDVWrVo1YHd999dWaiMr5GZyvqQAAikyBdynff3jHn/+9MSIq\nHnv6STU3t5XZ66hLHrznoh4dm1ScO3bAGReO/usFr78x972Pb2uzRyEvAwAgZ/nc8OS2pXGH\nBwAomQq4S9nwyoPD0iMiGl18/ZnVf2h1hwcA2O3J8ECpk2NgdOLIkc/H6h4j9p44cuTz2fSv\n7iEwyo5LJrf8SG5tyPn7k7kPztdUAABFpmC7lMwvH/9tjzunb4iUemcNH3FRvS3NB/d/4uEt\nH1ufP/SPzz53/oQNnz3wt1duGXlymV1dOADAjsrnhie3LY07PABAyVSwXcryMQ+N+iYiyh17\nzRVtf7x54w4PALDbk+GBUifHwGiDli1bRoPqUb1By5Yts+uvnk0j5KBBg/oR6bExI2N9RPmI\nyMjIiIjYs379n3+fIPfB+ZoKAKDIFGSX8s2/+p3Y79+LI6VBrycnPtm7QSLbUdWbNKkdE5bE\nqvnzV0bsWTjlAwDkbWduy/xkS+MODwBQMhVol/Ll8AfHfx8Rdc69/vy6OQ1yhwcA2B3J8ECp\nk5JTx70zZsyYcW/n6HzvjGzd27koy2R316pr13oREenp6RERsTg9fU1EVD+xa/uIiHjr8n0S\niURivyum5Dk4r6kAAIpHvjY8EREZ797Yrdfj6ZlRu9vDr/6jT+Mcv8u1Mj19aUREzUaNahTm\nCgAA8pDvDc82frKlcYcHACiZCrDhyfrwkUc+yIpIObT/NSdWzHFmd3gAgN2EDA+UbjkGRn+U\nXPX17EVrImL9vH8PufLC1LQbh76z1PODyZcyHW/4c8/aETOGDx4zd9mCV+58dEpE1aMH3Xpq\npfwOztdUAABFJn+7lA0zHuh58uCPvo8qR9328ti0Znts1/vuwG7n3PnsezMXZaz+5uMnLh70\namZE5XY3XdVlB7bvAACFJn8bnly3NO7wAAAlU/53Kd+Pf/DxLyOiyqnXX9psux53eACA3Z8M\nD5Q6ef//yHfPXtDhD5M2Rtbkm4475br7Hx/52OBLju9298wiKI7SpN7Zo94b+4fT9n4nrUXd\nxmc9X+7E/iPeeen3B2b/X2Dug/M1FQBAkcnPLuWjYUPeWBERsXrywCMrJ7ZocsO0iIg4qv9d\np2S+cmufTk3r7n/0DVMqdjr7thc/fP3qlmWKcDUAANnIz4Ynjy2NOzwAQMmUz13KslEPjf4u\nIhr+7rqzfvKeeXd4AIASat1TpyYSiUTFvi9FRMQH1zZKJBKJ9n/5OrvBMjxQyiSSydwfFvrt\nw8cdNvPW+X/t9OHV+x9571dRpUmntnt8MjH6f/b5bQcVUZEAAAAAAAAAAAAAFFyege7/fPxx\nq9atU2LFJ598FRGH3jR+0ptvDOrw1VdfFUF1AAAAAAAAAAAAAOy0snkNyMrKWrxgQeaqzydO\ni4jqbdo0iVheoUKVKlWKoDoAAAAAAAAAAAAAdlqegdEWLVvOuKZ19Ts3rPk+Yo8OHdpGZP3n\nP3MOP7xVUZQHAAAAAAAAAAAAwM7K85X0+6UOvKRprPk+K6Jyq2v/0Lt6rHj2ry8fd2mvGkVR\nHgAAAAAAAAAAAAA7K5FMJvMctO6b/06ftbJG89bN65SPWLNo9vLKTferliiC8gAAAAAAAAAA\nAADYWXk+YTQiosJeLdof3b55nfIREVG57oHSogAAAACwy828tVUikUhUSR1X3JXkYkeK3C0W\nsoNK01oAAAAAgF+0vAOjmV9PuKXXMa2bNW64nUvHF0F1AAAAALB7GtY18XNdh60o8kJWb1dJ\nmQp71m/e/vQbR89YuatO8PrFtROJRKL5zTN21YzZW100l7SolgMAAAAAUNTK5jXgmxEXnXbb\nK2t/3r6mUOoBAAAAgFKkVtrEpUN/XdxVRGyppNPqL569+Pg+Tw/u/cpbiz58/8rmBXiRUPNb\nZyRv3QVjCqqoL2lhrgUAAAAAoAjl+YTRj999d22lhr86/dwLL+qXto0uBxRFeQAAAABQyqwY\nesLW532Wq1KncbtTr3125vfZjUzOf2VQrw5N69aoVKlWo9adzxs05tOVyYiIyFoy6f5+nVvV\nq16hQrV9D2z7m2ue+XSHnhiaUuWA3jddeFBErJ1y32OTIyIyF75+9wXHHbRvtfJ7VKi2b6sT\nfnf/20uycjv7tq9oT7/9sETnR5dFRMy64+BEIpFI9Bixevsxm15L2yeRSCQO/tPMLVWsfKJ7\nhUQiUa7zo0t3Yi3b+OF0PQf+9fzjWjWoUa7pDdNzv85ZS9976LLuhzfcs1L5qvUOOfm6MbPX\nRg7LmfbTV9LneMV+KOO0QX+/tOthDfesXG2flt2ue/nrZD6XAwAAAABQKPIMjNaoUaPD4Pff\nGTty2GOPDt1Gv9ZFUR4AAAAAlDI1Ln49mUwmk8ms9d/NeuH82tP/7y99Trlp8vqfDfxmxO96\nDnz24wbXT1n03bz3nv5j5w3P3vGPORGxYvzFHY678u8f1r3ijfnf/Hdk9+9fuufsIzv96cMN\nO3T+evXqRUTEgq+/jvju3xce1eX6JyZX7Pvi3G/Sx/w2Jg2/8rgOA95YlfPZt9Xk5unJ19Jq\nRUQ0u+nTZDKZTI5LrbL9mLLHp55dPyJmjB69+S3v370w+rX1ERV6nN+r9k6uZXtrXnz87Q53\nT5y9fMOcwYfldp1XTri0/TGXP/zy4lZ/eu3Lr2f86w8Hv/fcG+t3bDk5X7Efy3hiynEPTZz8\nZK9aSz5/ZUjva54vwFoAAAAAAHa5PAOjh5100oYPJi/xLXgAAAAAyLdljx6b2KrNX+Zt25co\nV71Rl36ntYjImjP2n5/87NhZ06evi9iw9MuZXyzJrH1Qp3MGPT/69wdGpD/6h2FfZsXefQde\n06ZOtXqdr7uwXcS6/9w95F87lLJcsGBBRETU22+/mP3ozSO/Skb57tcOPG7fmvt1veWK48tE\n5pcPDxy+IKez51/KUef3bRYRM0ePnh4RS58f/ebGiGo9U3tWL8hacrmkRw6476I2dSoktj/g\nZ9c5fegNj32RGWWO++Pff9+xXvWaDY/q+8BNJ5ffocXkcsW2jml/+aAzDqhZt/upnSpFxKqP\nP97hSwUAAAAAUIjyDIx+OvvbrJfPOOCADt3PPCd1Gw9NK4ryAAAAAGB3VittYnKradc0jIis\nr1665ayOzfapVqFsSiLR9MZPIiK+/t//sn56bPPDD68UkfWfv/U8omHNyjUaHXn6dWPmbIgN\nU//f9GRELPlrp5REIpFI7HvV+xERa9PTF+ZVTtaaL0bdMfzziKjU7sp+R22YNvU/ERH7Hnhg\n5YiIqNG0aZ2IyJo27aMczl4grVLPOzwiZj07enosfW70m5si9up1/kkVC7SWbC7pFuWbNq2/\nzVpzus4/nHTfI46om9+V5HbFtpbRuPG+ERFRoUKFiIj1P394LAAAAABAMcgzMDpv4j8/Wp5c\nM3fyy2OfHrmNifOKoDoAAAAAKGXm3Hd6z9uee39hy5veWbwuKzn7zkMiIpKZmT8LjNY59/Hx\n913U9fAG1ctGbFo5b+oLQ/r0/Wt6JDe/Daj5rTOS25l2Q8Nczrvs0WMTiTJVW176Vvl2Pa8f\n9cGEK5sncnutUE5nL5Cm56Z2SIlIf3b0uDGjJ22K2O+c1OPLRhRwLTkoW7bsj7/kcp23nDSR\nSGQ7TW525EVMW8soyAkAAAAAAApNnoHR6g1aZqtB9aIoDwAAAABKlY0fTflwY0Qc2vO8trXL\nJdbPmjUvx7GJup2ueGz8h/9bvmbZ7H9eeEBEZM6YMbNc2yMPjYhIf//9b/Nx4s0P5sxat/zr\nWVNeGNyrVfWIKN+m7SEREQvnzFkTEREr5sz5NiJS2rQ5PIez/3zilJQ87zFG1OuTekK5iHlP\nXDToncyIZuelHpUSEQVcyw7I5Tr/cNIF06Yt/vmBuS8n1ysGAAAAAFCi5Xkzt/O9M7J1b+ei\nKA8AAAAASpU9Wh3SIiUiPntt3JcrF7/9p9vGrMpp6OwHe595yzNvfzZ/ZVbFajUrl4+ICu3b\nHxpN0+64YP+U2PTa7Zc+/tE3qzMWzfp/4/7Wv9vZQ/+X72oOTBt0XoNErH/pL7e/tWj5glcH\nPfBmZpRpfOltF9bL6ew/06BBg4iIhZ9/8s3GnM9U67epPSpGfLN4cTLiiNTzDt7cvAvXsr3c\nrnPTi++6qFFKZL55R7+H3l+wasX8D/5x2a3/t36HlpPLFdvJigEAAAAACtkOfPs/4rtpw6/t\n1eWoNte+HhGx8M2hoz5eU7hlAQAAAEDp1PLa0cN+17FRyquXHdK8893Jsy/IJoO5WdPzbjm3\n2qS7zjuuWe2ajU97PuuY8waPezKtfkTN7o9Nef3eizpXn3JVh/32atj+9Csfn9v8qtv77p//\navY8Zfj7E/6c2n7NiJMb7tX4jFFZnS687433Hji+Ws5n/6kmF909sFvLfRIv9d27XCLR6vZs\nHkIaEVGt5/mn1YiIiJSOqX2b/tC8C9eyvdyuc41uQydPfODirrWn33x843otuw/6tFOfzuV3\nbDk5XzEAAAAAgJItkUwmcx+xafqgNu0HfrI+Ik5/Ljn2jNg06ffNbjvonTcu2bdIKgQAAAAA\nAAAAAABgp+T5hNEVT//xrk821TywQ8u9t7SUPabv6elPj1lUyJUBAAAAAAAAAAAAsEvkGRid\nMXXqXmmvfDnrvVt/tbWtefNmM2fOKtS6AAAAAAAAAAAAANhF8gyMLl++vOFhh9XYtmlTevq8\nNWvWFF5RAAAAAAAAAAAAAOw6eQZGmzRpMum23n8c/c6XGfH94s+mvPT3G0/qOWROs2bNiqI8\nAAAAAAAAAAAAAHZWIplM5j5izj1Htbpmyobt2sof/cB/3+7fqBDrAgAAAAAAAAAAAGAXyfMJ\no9H0ilEjLzy46o8NVQ/53ZNPXS4tCgAAAAAAAAAAALB7yPsJoxERkbUi/b23p85dETUatenU\nsWmNvHOmAAAAAAAAAAAAAJQMOxgY3SK5cWPmHnuULbxyAAAAAAAAAAAAANjVcnlU6LrPXxo2\n7On3l2z+bdmkW05sXLViuco1Gx1z+egv1hdNeQAAAAAAAAAAAADsrFyeMPr5wINaDj/m9bmP\nHF8u1r+W1rjLYwu3HtXipg8/u711ooiKBAAAAAAAAAAAAKDgcnnC6OLFi/frk3p8uYjInDTq\nuYUREWUbdut/XWq7Pf/73NgZRVQhAAAAAAAAAAAAADvl/wNJ0XVl79t43AAAAABJRU5ErkJg\ngg==", - "text/plain": [ - "plot without title" - ] - }, - "metadata": { - "image/png": { - "height": 120, - "width": 1800 - } - }, - "output_type": "display_data" - } - ], - "source": [ - "## Configuration + Modification of plot\n", - "roc_plot = rocplot + \n", - " plot_config + \n", - " xtitle + \n", - " ytitle + \n", - " ggtitle('ROC curve ccs vs. vollständiger ausschluss') +\n", - " geom_abline(slope = 1, intercept = 0)\n", - "\n", - "roc_plot" - ] - }, - { - "cell_type": "code", - "execution_count": 213, - "id": "f51e1575-1f3c-4f4c-ba24-4a2c32e9e287", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "png: 2" - ], - "text/latex": [ - "\\textbf{png:} 2" - ], - "text/markdown": [ - "**png:** 2" - ], - "text/plain": [ - "png \n", - " 2 " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "pdf(paste0('figures/Final_Figures/', figure_name, version, '.pdf'), width =width_par, height =height_par)\n", - "print(roc_plot)\n", - "dev.off()" - ] - }, - { - "cell_type": "code", - "execution_count": 214, - "id": "c0af8619-ff9d-49e9-a433-5c583788910a", - "metadata": {}, - "outputs": [], - "source": [ - "prediction_data_ausschluss = prediction_data_long" - ] - }, - { - "cell_type": "markdown", - "id": "3d45f247-1b60-4411-905c-a300901fa2fb", - "metadata": {}, - "source": [ - "# Combine ccs and vollstaendiger ausschluss" - ] - }, - { - "cell_type": "code", - "execution_count": 215, - "id": "82730465-d87e-4c1f-bd30-db80e646eda7", - "metadata": {}, - "outputs": [], - "source": [ - "prediction_data_long_ccs$variable = str_replace(prediction_data_long_ccs$variable, 'score_prepared', 'Score')\n", - "colnames(prediction_data_long_ccs) = c('y', 'classification', 'variable', 'value')" - ] - }, - { - "cell_type": "code", - "execution_count": 216, - "id": "6ef927a6-2a0a-4f71-aebc-5a02d6dfa635", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "
A data.frame: 2 × 4
yclassificationvariablevalue
<chr><chr><chr><dbl>
10No CCS Factor10.4599296
21CCS Factor10.5365739
\n" - ], - "text/latex": [ - "A data.frame: 2 × 4\n", - "\\begin{tabular}{r|llll}\n", - " & y & classification & variable & value\\\\\n", - " & & & & \\\\\n", - "\\hline\n", - "\t1 & 0 & No CCS & Factor1 & 0.4599296\\\\\n", - "\t2 & 1 & CCS & Factor1 & 0.5365739\\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A data.frame: 2 × 4\n", - "\n", - "| | y <chr> | classification <chr> | variable <chr> | value <dbl> |\n", - "|---|---|---|---|---|\n", - "| 1 | 0 | No CCS | Factor1 | 0.4599296 |\n", - "| 2 | 1 | CCS | Factor1 | 0.5365739 |\n", - "\n" - ], - "text/plain": [ - " y classification variable value \n", - "1 0 No CCS Factor1 0.4599296\n", - "2 1 CCS Factor1 0.5365739" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "head(prediction_data_long_ccs,2)" - ] - }, - { - "cell_type": "code", - "execution_count": 217, - "id": "3363c493-66b0-4f44-b06e-0215f1a9047b", - "metadata": {}, - "outputs": [], - "source": [ - "prediction_data_ausschluss$variable = str_replace(prediction_data_ausschluss$variable, 'Factor1', 'Factor1_w_o_cs')\n", - "prediction_data_ausschluss$variable = str_replace(prediction_data_ausschluss$variable, 'score_prepared', 'Score_w_o_cs')" - ] - }, - { - "cell_type": "code", - "execution_count": 218, - "id": "50544bc6-0e9f-4ec9-a0e3-c3c83c509173", - "metadata": {}, - "outputs": [], - "source": [ - "#head( prediction_data_long,2)" - ] - }, - { - "cell_type": "code", - "execution_count": 219, - "id": "a25cf561-6712-41c1-a98b-7591513ad784", - "metadata": {}, - "outputs": [], - "source": [ - "prediction_data_long = rbind(prediction_data_long_ccs,prediction_data_ausschluss)" - ] - }, - { - "cell_type": "code", - "execution_count": 220, - "id": "5bd32822-dc72-48d8-ab99-f4b3bf62dd71", - "metadata": {}, - "outputs": [], - "source": [ - "amount_samples = prediction_data_long %>% group_by(variable) %>% count()" - ] - }, - { - "cell_type": "code", - "execution_count": 221, - "id": "4702787a-5ca7-47e5-b070-36d623aacbbc", - "metadata": {}, - "outputs": [], - "source": [ - "prediction_data_long = merge(prediction_data_long, amount_samples)" - ] - }, - { - "cell_type": "code", - "execution_count": 222, - "id": "708a0265-618d-4922-9b44-5f0582e0337b", - "metadata": {}, - "outputs": [], - "source": [ - "prediction_data_long$variable_w_n = paste0(prediction_data_long$variable, ' (n=', prediction_data_long$n, ')')" - ] - }, - { - "cell_type": "code", - "execution_count": 223, - "id": "a0e238fc-563a-412a-b07a-8e3d2685e7d0", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "
A data.frame: 2 × 6
variableyclassificationvaluenvariable_w_n
<chr><chr><chr><dbl><int><chr>
1Factor10No CCS 0.459929634Factor1 (n=34)
2Factor11CCS 0.536573934Factor1 (n=34)
\n" - ], - "text/latex": [ - "A data.frame: 2 × 6\n", - "\\begin{tabular}{r|llllll}\n", - " & variable & y & classification & value & n & variable\\_w\\_n\\\\\n", - " & & & & & & \\\\\n", - "\\hline\n", - "\t1 & Factor1 & 0 & No CCS & 0.4599296 & 34 & Factor1 (n=34)\\\\\n", - "\t2 & Factor1 & 1 & CCS & 0.5365739 & 34 & Factor1 (n=34)\\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A data.frame: 2 × 6\n", - "\n", - "| | variable <chr> | y <chr> | classification <chr> | value <dbl> | n <int> | variable_w_n <chr> |\n", - "|---|---|---|---|---|---|---|\n", - "| 1 | Factor1 | 0 | No CCS | 0.4599296 | 34 | Factor1 (n=34) |\n", - "| 2 | Factor1 | 1 | CCS | 0.5365739 | 34 | Factor1 (n=34) |\n", - "\n" - ], - "text/plain": [ - " variable y classification value n variable_w_n \n", - "1 Factor1 0 No CCS 0.4599296 34 Factor1 (n=34)\n", - "2 Factor1 1 CCS 0.5365739 34 Factor1 (n=34)" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "head(prediction_data_long,2)" - ] - }, - { - "cell_type": "code", - "execution_count": 224, - "id": "7da7899b-8029-4d17-bde3-fd3941ead6d9", - "metadata": {}, - "outputs": [], - "source": [ - "auc_values = data.frame()" - ] - }, - { - "cell_type": "code", - "execution_count": 225, - "id": "42ba3198-2d1a-4f7e-a0d6-d39b385ece69", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Setting levels: control = 0, case = 1\n", - "\n", - "Setting direction: controls < cases\n", - "\n", - "Setting levels: control = 0, case = 1\n", - "\n", - "Setting direction: controls < cases\n", - "\n", - "Setting levels: control = 0, case = 1\n", - "\n", - "Setting direction: controls < cases\n", - "\n", - "Setting levels: control = 0, case = 1\n", - "\n", - "Setting direction: controls < cases\n", - "\n" - ] - } - ], - "source": [ - "for(i in unique(prediction_data_long$variable)){\n", - " calc_auc = data.frame(variable = i, \n", - " auc = auc(prediction_data_long$y[prediction_data_long$variable == i], prediction_data_long$value[prediction_data_long$variable == i])\n", - " )\n", - " auc_values = rbind(auc_values, calc_auc)\n", - " }" - ] - }, - { - "cell_type": "code", - "execution_count": 226, - "id": "4744f54b-d6b3-419c-bec5-0bbee268e038", - "metadata": {}, - "outputs": [], - "source": [ - "### Save AUC values" - ] - }, - { - "cell_type": "code", - "execution_count": 227, - "id": "0a3a25cf-c382-4bcb-aa9c-76763c65fd08", - "metadata": {}, - "outputs": [], - "source": [ - "write.csv(auc_values, paste0(result_path,'/Supplementary/SUPP_E9_Factor1_ROC_Plot_AUC_values.csv'), row.names = FALSE)" - ] - }, - { - "cell_type": "code", - "execution_count": 228, - "id": "0a167231-1fd4-4bff-a1bb-4a241f734eaf", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "
A data.frame: 4 × 2
variableauc
<chr><auc>
Factor1 0.8402778
Factor1_w_o_cs0.9886364
Score 0.6250000
Score_w_o_cs 0.8015873
\n" - ], - "text/latex": [ - "A data.frame: 4 × 2\n", - "\\begin{tabular}{ll}\n", - " variable & auc\\\\\n", - " & \\\\\n", - "\\hline\n", - "\t Factor1 & 0.8402778\\\\\n", - "\t Factor1\\_w\\_o\\_cs & 0.9886364\\\\\n", - "\t Score & 0.6250000\\\\\n", - "\t Score\\_w\\_o\\_cs & 0.8015873\\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A data.frame: 4 × 2\n", - "\n", - "| variable <chr> | auc <auc> |\n", - "|---|---|\n", - "| Factor1 | 0.8402778 |\n", - "| Factor1_w_o_cs | 0.9886364 |\n", - "| Score | 0.6250000 |\n", - "| Score_w_o_cs | 0.8015873 |\n", - "\n" - ], - "text/plain": [ - " variable auc \n", - "1 Factor1 0.8402778\n", - "2 Factor1_w_o_cs 0.9886364\n", - "3 Score 0.6250000\n", - "4 Score_w_o_cs 0.8015873" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "auc_values" - ] - }, - { - "cell_type": "code", - "execution_count": 229, - "id": "cb100389-a768-4aec-afcb-c72e432bbbff", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "
A data.frame: 2 × 6
variableyclassificationvaluenvariable_w_n
<chr><chr><chr><dbl><int><chr>
1Factor10No CCS 0.459929634Factor1 (n=34)
2Factor11CCS 0.536573934Factor1 (n=34)
\n" - ], - "text/latex": [ - "A data.frame: 2 × 6\n", - "\\begin{tabular}{r|llllll}\n", - " & variable & y & classification & value & n & variable\\_w\\_n\\\\\n", - " & & & & & & \\\\\n", - "\\hline\n", - "\t1 & Factor1 & 0 & No CCS & 0.4599296 & 34 & Factor1 (n=34)\\\\\n", - "\t2 & Factor1 & 1 & CCS & 0.5365739 & 34 & Factor1 (n=34)\\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A data.frame: 2 × 6\n", - "\n", - "| | variable <chr> | y <chr> | classification <chr> | value <dbl> | n <int> | variable_w_n <chr> |\n", - "|---|---|---|---|---|---|---|\n", - "| 1 | Factor1 | 0 | No CCS | 0.4599296 | 34 | Factor1 (n=34) |\n", - "| 2 | Factor1 | 1 | CCS | 0.5365739 | 34 | Factor1 (n=34) |\n", - "\n" - ], - "text/plain": [ - " variable y classification value n variable_w_n \n", - "1 Factor1 0 No CCS 0.4599296 34 Factor1 (n=34)\n", - "2 Factor1 1 CCS 0.5365739 34 Factor1 (n=34)" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "head(prediction_data_long,2)" - ] - }, - { - "cell_type": "code", - "execution_count": 230, - "id": "97ee1db8-45be-4cfb-8777-0fa7d00102b9", - "metadata": {}, - "outputs": [], - "source": [ - "# Figure Name\n", - "figure_name = 'FIG10_E9_ROC_Factor1'" - ] - }, - { - "cell_type": "code", - "execution_count": 231, - "id": "67901903-710b-4f0a-ab6f-7fca1b23ea3d", - "metadata": {}, - "outputs": [], - "source": [ - "# Sizes of the plot\n", - "width_par = 3.5\n", - "height_par = 1.6" - ] - }, - { - "cell_type": "code", - "execution_count": 232, - "id": "e9907bbe-df45-430c-b35c-6da6cac810e7", - "metadata": {}, - "outputs": [], - "source": [ - "xtitle = xlab( 'False Positive Fraction')\n", - "ytitle = ylab('Sensititity')" - ] - }, - { - "cell_type": "code", - "execution_count": 233, - "id": "b155f871-2fe1-40eb-bc1d-3b271796c466", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "
  1. 'Factor1 (n=34)'
  2. 'Factor1_w_o_cs (n=27)'
  3. 'Score (n=21)'
  4. 'Score_w_o_cs (n=16)'
\n" - ], - "text/latex": [ - "\\begin{enumerate*}\n", - "\\item 'Factor1 (n=34)'\n", - "\\item 'Factor1\\_w\\_o\\_cs (n=27)'\n", - "\\item 'Score (n=21)'\n", - "\\item 'Score\\_w\\_o\\_cs (n=16)'\n", - "\\end{enumerate*}\n" - ], - "text/markdown": [ - "1. 'Factor1 (n=34)'\n", - "2. 'Factor1_w_o_cs (n=27)'\n", - "3. 'Score (n=21)'\n", - "4. 'Score_w_o_cs (n=16)'\n", - "\n", - "\n" - ], - "text/plain": [ - "[1] \"Factor1 (n=34)\" \"Factor1_w_o_cs (n=27)\" \"Score (n=21)\" \n", - "[4] \"Score_w_o_cs (n=16)\" " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "unique(prediction_data_long$variable_w_n)" - ] - }, - { - "cell_type": "code", - "execution_count": 234, - "id": "1a6675f8-2788-40ec-b933-4f142e07f478", - "metadata": {}, - "outputs": [], - "source": [ - "## Specify Plot\n", - "rocplot = ggplot(prediction_data_long, aes(m = value, d = as.numeric(y), color = variable_w_n, linetype = variable_w_n))+ geom_roc(n.cuts=0,labels=FALSE, size = 0.5)" - ] - }, - { - "cell_type": "code", - "execution_count": 235, - "id": "0bac35b2-c2b0-417b-aefe-734670de2c08", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\nRU5ErkJggg==", - "text/plain": [ - "plot without title" - ] - }, - "metadata": { - "image/png": { - "height": 120, - "width": 1800 - } - }, - "output_type": "display_data" - } - ], - "source": [ - "## Configuration + Modification of plot\n", - "roc_plot = rocplot + \n", - " plot_config + \n", - " xtitle + \n", - " ytitle + \n", - " theme(legend.position = 'right', legend.spacing.x = unit(0, 'mm'), legend.spacing.y = unit(0, 'mm'), axis.text.x = element_text(angle = 0)) + \n", - " ggtitle('ROC curve ccs vs. no ccs') +\n", - " geom_abline(slope = 1, intercept = 0) + \n", - " scale_color_manual(values = c('Factor1 (n=34)' = \"#BC0B58\",\n", - " 'Factor1_w_o_cs (n=27)' = \"#BC0B58\",\n", - " 'Score (n=21)'=\"#726068\",\n", - " 'Score_w_o_cs (n=16)'=\"#726068\"\n", - " ),\n", - " \n", - " ) +\n", - " scale_linetype_manual(values = c('Factor1 (n=34)' = \"solid\",\n", - " 'Factor1_w_o_cs (n=27)' = \"dashed\",\n", - " 'Score (n=21)'=\"solid\",\n", - " 'Score_w_o_cs (n=16)'=\"dashed\"\n", - " ))+\n", - " guides(color=guide_legend(nrow=4, byrow=TRUE))\n", - "\n", - "roc_plot" - ] - }, - { - "cell_type": "code", - "execution_count": 236, - "id": "dccf8139-157b-422d-95c4-d058b5f68adf", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "png: 2" - ], - "text/latex": [ - "\\textbf{png:} 2" - ], - "text/markdown": [ - "**png:** 2" - ], - "text/plain": [ - "png \n", - " 2 " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "pdf(paste0('figures/Final_Figures/', figure_name, version, '.pdf'), width =width_par, height =height_par)\n", - "print(roc_plot)\n", - "dev.off()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "669673c7-85d8-458a-b283-3237ea1c0664", - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "markdown", - "id": "fc17e522-d622-4795-881a-40f859d83060", - "metadata": {}, - "source": [ - "# Prediction Factor 4 TP1 (further variables for Testing)" - ] - }, - { - "cell_type": "code", - "execution_count": 237, - "id": "20c7c99a-73f6-481e-bb41-cbdc740cc105", - "metadata": {}, - "outputs": [], - "source": [ - "prediction_vars = c( 'Factor4', 'Normalized_X3_NK__TXNIP','Normalized_X3_NK__PRF1', 'Normalized_X3_NK__LITAF' , 'Normalized_X3_NK__GZMB', 'Normalized_X3_NK__FYN', 'Normalized_X3_NK__CST7', 'Normalized_X3_NK__CD53', 'delta_ef_value_class')" - ] - }, - { - "cell_type": "code", - "execution_count": 238, - "id": "31e60bf7-061f-4d9b-a3f9-45c217a9c070", - "metadata": {}, - "outputs": [], - "source": [ - "#colnames(data)" - ] - }, - { - "cell_type": "code", - "execution_count": 239, - "id": "8b5ee87d-16d8-4b90-b6a3-66306f0b91fc", - "metadata": {}, - "outputs": [], - "source": [ - "prediction_group = 'tp_outcome'\n", - "prediction_subset = c('TP1_good', 'TP1_bad')" - ] - }, - { - "cell_type": "code", - "execution_count": 240, - "id": "c4d59e7e-7d75-4aee-9450-87c60a72e2d3", - "metadata": {}, - "outputs": [], - "source": [ - "prediction_data = data[,c(prediction_vars, prediction_group)]\n", - "prediction_data$y = prediction_data[,prediction_group]\n", - "prediction_data = prediction_data[prediction_data$y %in% prediction_subset,]\n", - "\n", - "prediction_data$y[prediction_data$y == prediction_subset[2]] = 1 # predict BAD outcome \n", - "prediction_data$y[prediction_data$y == prediction_subset[1]] = 0 # good outcome as control" - ] - }, - { - "cell_type": "code", - "execution_count": 241, - "id": "721de59a-0bb4-4149-be13-63da6ad3c717", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Warning message in mean.default(col, ...):\n", - "“argument is not numeric or logical: returning NA”\n", - "Warning message in mean.default(col, ...):\n", - "“argument is not numeric or logical: returning NA”\n", - "\u001b[1m\u001b[22m`summarise()` has grouped output by 'tp_outcome'. You can override using the\n", - "`.groups` argument.\n" - ] - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "
A grouped_df: 2 × 11
tp_outcomeyFactor4Normalized_X3_NK__TXNIPNormalized_X3_NK__PRF1Normalized_X3_NK__LITAFNormalized_X3_NK__GZMBNormalized_X3_NK__FYNNormalized_X3_NK__CST7Normalized_X3_NK__CD53delta_ef_value_class
<chr><chr><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl>
TP1_bad 1-1.12592121.32093901.01644530.70254731.10507280.94319770.67299641.4315875NA
TP1_good0-0.62981320.33883790.61744560.81888570.73088061.09824750.40875850.4996068NA
\n" - ], - "text/latex": [ - "A grouped\\_df: 2 × 11\n", - "\\begin{tabular}{lllllllllll}\n", - " tp\\_outcome & y & Factor4 & Normalized\\_X3\\_NK\\_\\_TXNIP & Normalized\\_X3\\_NK\\_\\_PRF1 & Normalized\\_X3\\_NK\\_\\_LITAF & Normalized\\_X3\\_NK\\_\\_GZMB & Normalized\\_X3\\_NK\\_\\_FYN & Normalized\\_X3\\_NK\\_\\_CST7 & Normalized\\_X3\\_NK\\_\\_CD53 & delta\\_ef\\_value\\_class\\\\\n", - " & & & & & & & & & & \\\\\n", - "\\hline\n", - "\t TP1\\_bad & 1 & -1.1259212 & 1.3209390 & 1.0164453 & 0.7025473 & 1.1050728 & 0.9431977 & 0.6729964 & 1.4315875 & NA\\\\\n", - "\t TP1\\_good & 0 & -0.6298132 & 0.3388379 & 0.6174456 & 0.8188857 & 0.7308806 & 1.0982475 & 0.4087585 & 0.4996068 & NA\\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A grouped_df: 2 × 11\n", - "\n", - "| tp_outcome <chr> | y <chr> | Factor4 <dbl> | Normalized_X3_NK__TXNIP <dbl> | Normalized_X3_NK__PRF1 <dbl> | Normalized_X3_NK__LITAF <dbl> | Normalized_X3_NK__GZMB <dbl> | Normalized_X3_NK__FYN <dbl> | Normalized_X3_NK__CST7 <dbl> | Normalized_X3_NK__CD53 <dbl> | delta_ef_value_class <dbl> |\n", - "|---|---|---|---|---|---|---|---|---|---|---|\n", - "| TP1_bad | 1 | -1.1259212 | 1.3209390 | 1.0164453 | 0.7025473 | 1.1050728 | 0.9431977 | 0.6729964 | 1.4315875 | NA |\n", - "| TP1_good | 0 | -0.6298132 | 0.3388379 | 0.6174456 | 0.8188857 | 0.7308806 | 1.0982475 | 0.4087585 | 0.4996068 | NA |\n", - "\n" - ], - "text/plain": [ - " tp_outcome y Factor4 Normalized_X3_NK__TXNIP Normalized_X3_NK__PRF1\n", - "1 TP1_bad 1 -1.1259212 1.3209390 1.0164453 \n", - "2 TP1_good 0 -0.6298132 0.3388379 0.6174456 \n", - " Normalized_X3_NK__LITAF Normalized_X3_NK__GZMB Normalized_X3_NK__FYN\n", - "1 0.7025473 1.1050728 0.9431977 \n", - "2 0.8188857 0.7308806 1.0982475 \n", - " Normalized_X3_NK__CST7 Normalized_X3_NK__CD53 delta_ef_value_class\n", - "1 0.6729964 1.4315875 NA \n", - "2 0.4087585 0.4996068 NA " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "## Check in which direction to adjust\n", - "prediction_data %>% group_by(tp_outcome,y) %>% summarise(across(everything(), mean, na.rm =TRUE))\n", - "\n", - "# predict bad --> higher values for bad" - ] - }, - { - "cell_type": "code", - "execution_count": 242, - "id": "05272216-b210-40a9-8650-6764490c8f5d", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "
A grouped_df: 2 × 2
tp_outcomen
<chr><int>
TP1_bad 6
TP1_good13
\n" - ], - "text/latex": [ - "A grouped\\_df: 2 × 2\n", - "\\begin{tabular}{ll}\n", - " tp\\_outcome & n\\\\\n", - " & \\\\\n", - "\\hline\n", - "\t TP1\\_bad & 6\\\\\n", - "\t TP1\\_good & 13\\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A grouped_df: 2 × 2\n", - "\n", - "| tp_outcome <chr> | n <int> |\n", - "|---|---|\n", - "| TP1_bad | 6 |\n", - "| TP1_good | 13 |\n", - "\n" - ], - "text/plain": [ - " tp_outcome n \n", - "1 TP1_bad 6\n", - "2 TP1_good 13" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "prediction_data %>% group_by(tp_outcome) %>% count()" - ] - }, - { - "cell_type": "code", - "execution_count": 243, - "id": "07924425-1b92-4e7c-8172-90548b131c86", - "metadata": {}, - "outputs": [], - "source": [ - "# Adjust sign of Factor values\n", - "prediction_data$Factor4 = -1*prediction_data$Factor4" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "0ee2434a-bfcb-488f-ac5a-df244e43c82e", - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": 244, - "id": "6a097bdc-007c-4d56-9b97-fe0316223fae", - "metadata": {}, - "outputs": [], - "source": [ - "# Transform and scale scores of prediction variables (to be between 0 and 1)" - ] - }, - { - "cell_type": "code", - "execution_count": 245, - "id": "b73f0f65-54fb-4185-8017-373088ea486d", - "metadata": {}, - "outputs": [], - "source": [ - "prediction_vars = c( 'Factor4', 'Normalized_X3_NK__TXNIP','Normalized_X3_NK__PRF1', 'Normalized_X3_NK__LITAF' , 'Normalized_X3_NK__GZMB', 'Normalized_X3_NK__FYN', 'Normalized_X3_NK__CST7', 'Normalized_X3_NK__CD53')" - ] - }, - { - "cell_type": "code", - "execution_count": 246, - "id": "5bf9560c-9316-40e9-80fb-b484e94e66ce", - "metadata": {}, - "outputs": [], - "source": [ - "prediction_data = cbind( prediction_data[,c('y', prediction_group, 'delta_ef_value_class')],\n", - " apply(prediction_data[,prediction_vars], MARGIN = 2, FUN = function(x){\n", - " (x - min(x, na.rm = TRUE)) / (max(x, na.rm = TRUE) - min(x, na.rm = TRUE))}))" - ] - }, - { - "cell_type": "code", - "execution_count": 247, - "id": "175a45c8-098b-479e-a4f3-8c4721cf824d", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "
A data.frame: 5 × 11
ytp_outcomedelta_ef_value_classFactor4Normalized_X3_NK__TXNIPNormalized_X3_NK__PRF1Normalized_X3_NK__LITAFNormalized_X3_NK__GZMBNormalized_X3_NK__FYNNormalized_X3_NK__CST7Normalized_X3_NK__CD53
<chr><chr><chr><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl>
361TP1_bad bad 0.4734997 NA NA NA NA NA NA NA
451TP1_bad bad 0.85588910.55013750.6080980.73174840.65140130.653796170.61025990.2683299
491TP1_bad bad 0.75604520.76140171.0000000.60309720.76908880.614269871.00000001.0000000
530TP1_goodgood1.00000000.87188020.8713660.86960890.31381580.728271990.71874020.9125926
601TP1_bad bad 0.71186771.00000000.6400620.00000000.68389630.063041480.37919840.6504756
\n" - ], - "text/latex": [ - "A data.frame: 5 × 11\n", - "\\begin{tabular}{r|lllllllllll}\n", - " & y & tp\\_outcome & delta\\_ef\\_value\\_class & Factor4 & Normalized\\_X3\\_NK\\_\\_TXNIP & Normalized\\_X3\\_NK\\_\\_PRF1 & Normalized\\_X3\\_NK\\_\\_LITAF & Normalized\\_X3\\_NK\\_\\_GZMB & Normalized\\_X3\\_NK\\_\\_FYN & Normalized\\_X3\\_NK\\_\\_CST7 & Normalized\\_X3\\_NK\\_\\_CD53\\\\\n", - " & & & & & & & & & & & \\\\\n", - "\\hline\n", - "\t36 & 1 & TP1\\_bad & bad & 0.4734997 & NA & NA & NA & NA & NA & NA & NA\\\\\n", - "\t45 & 1 & TP1\\_bad & bad & 0.8558891 & 0.5501375 & 0.608098 & 0.7317484 & 0.6514013 & 0.65379617 & 0.6102599 & 0.2683299\\\\\n", - "\t49 & 1 & TP1\\_bad & bad & 0.7560452 & 0.7614017 & 1.000000 & 0.6030972 & 0.7690888 & 0.61426987 & 1.0000000 & 1.0000000\\\\\n", - "\t53 & 0 & TP1\\_good & good & 1.0000000 & 0.8718802 & 0.871366 & 0.8696089 & 0.3138158 & 0.72827199 & 0.7187402 & 0.9125926\\\\\n", - "\t60 & 1 & TP1\\_bad & bad & 0.7118677 & 1.0000000 & 0.640062 & 0.0000000 & 0.6838963 & 0.06304148 & 0.3791984 & 0.6504756\\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A data.frame: 5 × 11\n", - "\n", - "| | y <chr> | tp_outcome <chr> | delta_ef_value_class <chr> | Factor4 <dbl> | Normalized_X3_NK__TXNIP <dbl> | Normalized_X3_NK__PRF1 <dbl> | Normalized_X3_NK__LITAF <dbl> | Normalized_X3_NK__GZMB <dbl> | Normalized_X3_NK__FYN <dbl> | Normalized_X3_NK__CST7 <dbl> | Normalized_X3_NK__CD53 <dbl> |\n", - "|---|---|---|---|---|---|---|---|---|---|---|---|\n", - "| 36 | 1 | TP1_bad | bad | 0.4734997 | NA | NA | NA | NA | NA | NA | NA |\n", - "| 45 | 1 | TP1_bad | bad | 0.8558891 | 0.5501375 | 0.608098 | 0.7317484 | 0.6514013 | 0.65379617 | 0.6102599 | 0.2683299 |\n", - "| 49 | 1 | TP1_bad | bad | 0.7560452 | 0.7614017 | 1.000000 | 0.6030972 | 0.7690888 | 0.61426987 | 1.0000000 | 1.0000000 |\n", - "| 53 | 0 | TP1_good | good | 1.0000000 | 0.8718802 | 0.871366 | 0.8696089 | 0.3138158 | 0.72827199 | 0.7187402 | 0.9125926 |\n", - "| 60 | 1 | TP1_bad | bad | 0.7118677 | 1.0000000 | 0.640062 | 0.0000000 | 0.6838963 | 0.06304148 | 0.3791984 | 0.6504756 |\n", - "\n" - ], - "text/plain": [ - " y tp_outcome delta_ef_value_class Factor4 Normalized_X3_NK__TXNIP\n", - "36 1 TP1_bad bad 0.4734997 NA \n", - "45 1 TP1_bad bad 0.8558891 0.5501375 \n", - "49 1 TP1_bad bad 0.7560452 0.7614017 \n", - "53 0 TP1_good good 1.0000000 0.8718802 \n", - "60 1 TP1_bad bad 0.7118677 1.0000000 \n", - " Normalized_X3_NK__PRF1 Normalized_X3_NK__LITAF Normalized_X3_NK__GZMB\n", - "36 NA NA NA \n", - "45 0.608098 0.7317484 0.6514013 \n", - "49 1.000000 0.6030972 0.7690888 \n", - "53 0.871366 0.8696089 0.3138158 \n", - "60 0.640062 0.0000000 0.6838963 \n", - " Normalized_X3_NK__FYN Normalized_X3_NK__CST7 Normalized_X3_NK__CD53\n", - "36 NA NA NA \n", - "45 0.65379617 0.6102599 0.2683299 \n", - "49 0.61426987 1.0000000 1.0000000 \n", - "53 0.72827199 0.7187402 0.9125926 \n", - "60 0.06304148 0.3791984 0.6504756 " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "head(prediction_data,5)" - ] - }, - { - "cell_type": "code", - "execution_count": 248, - "id": "268fe8bd-77b0-4156-a796-212cb3605034", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Using y, tp_outcome, delta_ef_value_class as id variables\n", - "\n" - ] - } - ], - "source": [ - "prediction_data_long = melt(prediction_data)" - ] - }, - { - "cell_type": "code", - "execution_count": 249, - "id": "176918c8-4172-47a6-94fe-ee7695c90a5f", - "metadata": {}, - "outputs": [], - "source": [ - "prediction_data_long = prediction_data_long[!is.na(prediction_data_long$value),]" - ] - }, - { - "cell_type": "code", - "execution_count": 250, - "id": "e53dc6c9-3079-4fd9-9312-e3ed58775d4a", - "metadata": {}, - "outputs": [], - "source": [ - "amount_samples = prediction_data_long %>% group_by(variable) %>% count()" - ] - }, - { - "cell_type": "code", - "execution_count": 251, - "id": "b1b4ee3a-c553-4847-b5d2-13a591039935", - "metadata": {}, - "outputs": [], - "source": [ - "prediction_data_long = merge(prediction_data_long, amount_samples)" - ] - }, - { - "cell_type": "code", - "execution_count": 252, - "id": "5464613d-5956-49e0-932b-fa4cd72d8b64", - "metadata": {}, - "outputs": [], - "source": [ - "prediction_data_long$variable_w_n = paste0(prediction_data_long$variable, ' (n=', prediction_data_long$n, ')')" - ] - }, - { - "cell_type": "code", - "execution_count": 253, - "id": "16348d31-efb1-4ab0-9e71-52cf43ed6379", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "
A data.frame: 2 × 7
variableytp_outcomedelta_ef_value_classvaluenvariable_w_n
<fct><chr><chr><chr><dbl><int><chr>
1Factor41TP1_badbad0.473499719Factor4 (n=19)
2Factor41TP1_badbad0.855889119Factor4 (n=19)
\n" - ], - "text/latex": [ - "A data.frame: 2 × 7\n", - "\\begin{tabular}{r|lllllll}\n", - " & variable & y & tp\\_outcome & delta\\_ef\\_value\\_class & value & n & variable\\_w\\_n\\\\\n", - " & & & & & & & \\\\\n", - "\\hline\n", - "\t1 & Factor4 & 1 & TP1\\_bad & bad & 0.4734997 & 19 & Factor4 (n=19)\\\\\n", - "\t2 & Factor4 & 1 & TP1\\_bad & bad & 0.8558891 & 19 & Factor4 (n=19)\\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A data.frame: 2 × 7\n", - "\n", - "| | variable <fct> | y <chr> | tp_outcome <chr> | delta_ef_value_class <chr> | value <dbl> | n <int> | variable_w_n <chr> |\n", - "|---|---|---|---|---|---|---|---|\n", - "| 1 | Factor4 | 1 | TP1_bad | bad | 0.4734997 | 19 | Factor4 (n=19) |\n", - "| 2 | Factor4 | 1 | TP1_bad | bad | 0.8558891 | 19 | Factor4 (n=19) |\n", - "\n" - ], - "text/plain": [ - " variable y tp_outcome delta_ef_value_class value n variable_w_n \n", - "1 Factor4 1 TP1_bad bad 0.4734997 19 Factor4 (n=19)\n", - "2 Factor4 1 TP1_bad bad 0.8558891 19 Factor4 (n=19)" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "head(prediction_data_long,2)" - ] - }, - { - "cell_type": "code", - "execution_count": 254, - "id": "d70f3c95-3288-4d4a-8db4-bf37357e89a2", - "metadata": {}, - "outputs": [], - "source": [ - "test = prediction_data_long[prediction_data_long$variable == 'Normalized_X3_NK__GZMB',]" - ] - }, - { - "cell_type": "code", - "execution_count": 255, - "id": "e004c8bf-e187-4803-9e42-eb6ab10da3f8", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "
A data.frame: 2 × 7
variableytp_outcomedelta_ef_value_classvaluenvariable_w_n
<fct><chr><chr><chr><dbl><int><chr>
71Normalized_X3_NK__GZMB1TP1_badbad0.651401317Normalized_X3_NK__GZMB (n=17)
72Normalized_X3_NK__GZMB1TP1_badbad0.769088817Normalized_X3_NK__GZMB (n=17)
\n" - ], - "text/latex": [ - "A data.frame: 2 × 7\n", - "\\begin{tabular}{r|lllllll}\n", - " & variable & y & tp\\_outcome & delta\\_ef\\_value\\_class & value & n & variable\\_w\\_n\\\\\n", - " & & & & & & & \\\\\n", - "\\hline\n", - "\t71 & Normalized\\_X3\\_NK\\_\\_GZMB & 1 & TP1\\_bad & bad & 0.6514013 & 17 & Normalized\\_X3\\_NK\\_\\_GZMB (n=17)\\\\\n", - "\t72 & Normalized\\_X3\\_NK\\_\\_GZMB & 1 & TP1\\_bad & bad & 0.7690888 & 17 & Normalized\\_X3\\_NK\\_\\_GZMB (n=17)\\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A data.frame: 2 × 7\n", - "\n", - "| | variable <fct> | y <chr> | tp_outcome <chr> | delta_ef_value_class <chr> | value <dbl> | n <int> | variable_w_n <chr> |\n", - "|---|---|---|---|---|---|---|---|\n", - "| 71 | Normalized_X3_NK__GZMB | 1 | TP1_bad | bad | 0.6514013 | 17 | Normalized_X3_NK__GZMB (n=17) |\n", - "| 72 | Normalized_X3_NK__GZMB | 1 | TP1_bad | bad | 0.7690888 | 17 | Normalized_X3_NK__GZMB (n=17) |\n", - "\n" - ], - "text/plain": [ - " variable y tp_outcome delta_ef_value_class value n \n", - "71 Normalized_X3_NK__GZMB 1 TP1_bad bad 0.6514013 17\n", - "72 Normalized_X3_NK__GZMB 1 TP1_bad bad 0.7690888 17\n", - " variable_w_n \n", - "71 Normalized_X3_NK__GZMB (n=17)\n", - "72 Normalized_X3_NK__GZMB (n=17)" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "head(test,2)" - ] - }, - { - "cell_type": "code", - "execution_count": 256, - "id": "132b7d05-fe67-43b1-bc24-feea6d7f251e", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "
A data.frame: 17 × 7
variableytp_outcomedelta_ef_value_classvaluenvariable_w_n
<fct><chr><chr><chr><dbl><int><chr>
83Normalized_X3_NK__GZMB0TP1_goodgood 1.000000017Normalized_X3_NK__GZMB (n=17)
77Normalized_X3_NK__GZMB0TP1_goodgood 0.854512417Normalized_X3_NK__GZMB (n=17)
87Normalized_X3_NK__GZMB0TP1_goodgood 0.802891517Normalized_X3_NK__GZMB (n=17)
72Normalized_X3_NK__GZMB1TP1_bad bad 0.769088817Normalized_X3_NK__GZMB (n=17)
85Normalized_X3_NK__GZMB0TP1_goodintermediate0.738392117Normalized_X3_NK__GZMB (n=17)
78Normalized_X3_NK__GZMB0TP1_goodintermediate0.710149817Normalized_X3_NK__GZMB (n=17)
74Normalized_X3_NK__GZMB1TP1_bad bad 0.683896317Normalized_X3_NK__GZMB (n=17)
71Normalized_X3_NK__GZMB1TP1_bad bad 0.651401317Normalized_X3_NK__GZMB (n=17)
79Normalized_X3_NK__GZMB0TP1_goodintermediate0.621234517Normalized_X3_NK__GZMB (n=17)
82Normalized_X3_NK__GZMB1TP1_bad bad 0.621234517Normalized_X3_NK__GZMB (n=17)
84Normalized_X3_NK__GZMB0TP1_goodintermediate0.427579117Normalized_X3_NK__GZMB (n=17)
75Normalized_X3_NK__GZMB0TP1_goodgood 0.396701317Normalized_X3_NK__GZMB (n=17)
80Normalized_X3_NK__GZMB0TP1_goodintermediate0.396701317Normalized_X3_NK__GZMB (n=17)
73Normalized_X3_NK__GZMB0TP1_goodgood 0.313815817Normalized_X3_NK__GZMB (n=17)
86Normalized_X3_NK__GZMB0TP1_goodintermediate0.253280317Normalized_X3_NK__GZMB (n=17)
81Normalized_X3_NK__GZMB0TP1_goodintermediate0.216617817Normalized_X3_NK__GZMB (n=17)
76Normalized_X3_NK__GZMB0TP1_goodgood 0.000000017Normalized_X3_NK__GZMB (n=17)
\n" - ], - "text/latex": [ - "A data.frame: 17 × 7\n", - "\\begin{tabular}{r|lllllll}\n", - " & variable & y & tp\\_outcome & delta\\_ef\\_value\\_class & value & n & variable\\_w\\_n\\\\\n", - " & & & & & & & \\\\\n", - "\\hline\n", - "\t83 & Normalized\\_X3\\_NK\\_\\_GZMB & 0 & TP1\\_good & good & 1.0000000 & 17 & Normalized\\_X3\\_NK\\_\\_GZMB (n=17)\\\\\n", - "\t77 & Normalized\\_X3\\_NK\\_\\_GZMB & 0 & TP1\\_good & good & 0.8545124 & 17 & Normalized\\_X3\\_NK\\_\\_GZMB (n=17)\\\\\n", - "\t87 & Normalized\\_X3\\_NK\\_\\_GZMB & 0 & TP1\\_good & good & 0.8028915 & 17 & Normalized\\_X3\\_NK\\_\\_GZMB (n=17)\\\\\n", - "\t72 & Normalized\\_X3\\_NK\\_\\_GZMB & 1 & TP1\\_bad & bad & 0.7690888 & 17 & Normalized\\_X3\\_NK\\_\\_GZMB (n=17)\\\\\n", - "\t85 & Normalized\\_X3\\_NK\\_\\_GZMB & 0 & TP1\\_good & intermediate & 0.7383921 & 17 & Normalized\\_X3\\_NK\\_\\_GZMB (n=17)\\\\\n", - "\t78 & Normalized\\_X3\\_NK\\_\\_GZMB & 0 & TP1\\_good & intermediate & 0.7101498 & 17 & Normalized\\_X3\\_NK\\_\\_GZMB (n=17)\\\\\n", - "\t74 & Normalized\\_X3\\_NK\\_\\_GZMB & 1 & TP1\\_bad & bad & 0.6838963 & 17 & Normalized\\_X3\\_NK\\_\\_GZMB (n=17)\\\\\n", - "\t71 & Normalized\\_X3\\_NK\\_\\_GZMB & 1 & TP1\\_bad & bad & 0.6514013 & 17 & Normalized\\_X3\\_NK\\_\\_GZMB (n=17)\\\\\n", - "\t79 & Normalized\\_X3\\_NK\\_\\_GZMB & 0 & TP1\\_good & intermediate & 0.6212345 & 17 & Normalized\\_X3\\_NK\\_\\_GZMB (n=17)\\\\\n", - "\t82 & Normalized\\_X3\\_NK\\_\\_GZMB & 1 & TP1\\_bad & bad & 0.6212345 & 17 & Normalized\\_X3\\_NK\\_\\_GZMB (n=17)\\\\\n", - "\t84 & Normalized\\_X3\\_NK\\_\\_GZMB & 0 & TP1\\_good & intermediate & 0.4275791 & 17 & Normalized\\_X3\\_NK\\_\\_GZMB (n=17)\\\\\n", - "\t75 & Normalized\\_X3\\_NK\\_\\_GZMB & 0 & TP1\\_good & good & 0.3967013 & 17 & Normalized\\_X3\\_NK\\_\\_GZMB (n=17)\\\\\n", - "\t80 & Normalized\\_X3\\_NK\\_\\_GZMB & 0 & TP1\\_good & intermediate & 0.3967013 & 17 & Normalized\\_X3\\_NK\\_\\_GZMB (n=17)\\\\\n", - "\t73 & Normalized\\_X3\\_NK\\_\\_GZMB & 0 & TP1\\_good & good & 0.3138158 & 17 & Normalized\\_X3\\_NK\\_\\_GZMB (n=17)\\\\\n", - "\t86 & Normalized\\_X3\\_NK\\_\\_GZMB & 0 & TP1\\_good & intermediate & 0.2532803 & 17 & Normalized\\_X3\\_NK\\_\\_GZMB (n=17)\\\\\n", - "\t81 & Normalized\\_X3\\_NK\\_\\_GZMB & 0 & TP1\\_good & intermediate & 0.2166178 & 17 & Normalized\\_X3\\_NK\\_\\_GZMB (n=17)\\\\\n", - "\t76 & Normalized\\_X3\\_NK\\_\\_GZMB & 0 & TP1\\_good & good & 0.0000000 & 17 & Normalized\\_X3\\_NK\\_\\_GZMB (n=17)\\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A data.frame: 17 × 7\n", - "\n", - "| | variable <fct> | y <chr> | tp_outcome <chr> | delta_ef_value_class <chr> | value <dbl> | n <int> | variable_w_n <chr> |\n", - "|---|---|---|---|---|---|---|---|\n", - "| 83 | Normalized_X3_NK__GZMB | 0 | TP1_good | good | 1.0000000 | 17 | Normalized_X3_NK__GZMB (n=17) |\n", - "| 77 | Normalized_X3_NK__GZMB | 0 | TP1_good | good | 0.8545124 | 17 | Normalized_X3_NK__GZMB (n=17) |\n", - "| 87 | Normalized_X3_NK__GZMB | 0 | TP1_good | good | 0.8028915 | 17 | Normalized_X3_NK__GZMB (n=17) |\n", - "| 72 | Normalized_X3_NK__GZMB | 1 | TP1_bad | bad | 0.7690888 | 17 | Normalized_X3_NK__GZMB (n=17) |\n", - "| 85 | Normalized_X3_NK__GZMB | 0 | TP1_good | intermediate | 0.7383921 | 17 | Normalized_X3_NK__GZMB (n=17) |\n", - "| 78 | Normalized_X3_NK__GZMB | 0 | TP1_good | intermediate | 0.7101498 | 17 | Normalized_X3_NK__GZMB (n=17) |\n", - "| 74 | Normalized_X3_NK__GZMB | 1 | TP1_bad | bad | 0.6838963 | 17 | Normalized_X3_NK__GZMB (n=17) |\n", - "| 71 | Normalized_X3_NK__GZMB | 1 | TP1_bad | bad | 0.6514013 | 17 | Normalized_X3_NK__GZMB (n=17) |\n", - "| 79 | Normalized_X3_NK__GZMB | 0 | TP1_good | intermediate | 0.6212345 | 17 | Normalized_X3_NK__GZMB (n=17) |\n", - "| 82 | Normalized_X3_NK__GZMB | 1 | TP1_bad | bad | 0.6212345 | 17 | Normalized_X3_NK__GZMB (n=17) |\n", - "| 84 | Normalized_X3_NK__GZMB | 0 | TP1_good | intermediate | 0.4275791 | 17 | Normalized_X3_NK__GZMB (n=17) |\n", - "| 75 | Normalized_X3_NK__GZMB | 0 | TP1_good | good | 0.3967013 | 17 | Normalized_X3_NK__GZMB (n=17) |\n", - "| 80 | Normalized_X3_NK__GZMB | 0 | TP1_good | intermediate | 0.3967013 | 17 | Normalized_X3_NK__GZMB (n=17) |\n", - "| 73 | Normalized_X3_NK__GZMB | 0 | TP1_good | good | 0.3138158 | 17 | Normalized_X3_NK__GZMB (n=17) |\n", - "| 86 | Normalized_X3_NK__GZMB | 0 | TP1_good | intermediate | 0.2532803 | 17 | Normalized_X3_NK__GZMB (n=17) |\n", - "| 81 | Normalized_X3_NK__GZMB | 0 | TP1_good | intermediate | 0.2166178 | 17 | Normalized_X3_NK__GZMB (n=17) |\n", - "| 76 | Normalized_X3_NK__GZMB | 0 | TP1_good | good | 0.0000000 | 17 | Normalized_X3_NK__GZMB (n=17) |\n", - "\n" - ], - "text/plain": [ - " variable y tp_outcome delta_ef_value_class value n \n", - "83 Normalized_X3_NK__GZMB 0 TP1_good good 1.0000000 17\n", - "77 Normalized_X3_NK__GZMB 0 TP1_good good 0.8545124 17\n", - "87 Normalized_X3_NK__GZMB 0 TP1_good good 0.8028915 17\n", - "72 Normalized_X3_NK__GZMB 1 TP1_bad bad 0.7690888 17\n", - "85 Normalized_X3_NK__GZMB 0 TP1_good intermediate 0.7383921 17\n", - "78 Normalized_X3_NK__GZMB 0 TP1_good intermediate 0.7101498 17\n", - "74 Normalized_X3_NK__GZMB 1 TP1_bad bad 0.6838963 17\n", - "71 Normalized_X3_NK__GZMB 1 TP1_bad bad 0.6514013 17\n", - "79 Normalized_X3_NK__GZMB 0 TP1_good intermediate 0.6212345 17\n", - "82 Normalized_X3_NK__GZMB 1 TP1_bad bad 0.6212345 17\n", - "84 Normalized_X3_NK__GZMB 0 TP1_good intermediate 0.4275791 17\n", - "75 Normalized_X3_NK__GZMB 0 TP1_good good 0.3967013 17\n", - "80 Normalized_X3_NK__GZMB 0 TP1_good intermediate 0.3967013 17\n", - "73 Normalized_X3_NK__GZMB 0 TP1_good good 0.3138158 17\n", - "86 Normalized_X3_NK__GZMB 0 TP1_good intermediate 0.2532803 17\n", - "81 Normalized_X3_NK__GZMB 0 TP1_good intermediate 0.2166178 17\n", - "76 Normalized_X3_NK__GZMB 0 TP1_good good 0.0000000 17\n", - " variable_w_n \n", - "83 Normalized_X3_NK__GZMB (n=17)\n", - "77 Normalized_X3_NK__GZMB (n=17)\n", - "87 Normalized_X3_NK__GZMB (n=17)\n", - "72 Normalized_X3_NK__GZMB (n=17)\n", - "85 Normalized_X3_NK__GZMB (n=17)\n", - "78 Normalized_X3_NK__GZMB (n=17)\n", - "74 Normalized_X3_NK__GZMB (n=17)\n", - "71 Normalized_X3_NK__GZMB (n=17)\n", - "79 Normalized_X3_NK__GZMB (n=17)\n", - "82 Normalized_X3_NK__GZMB (n=17)\n", - "84 Normalized_X3_NK__GZMB (n=17)\n", - "75 Normalized_X3_NK__GZMB (n=17)\n", - "80 Normalized_X3_NK__GZMB (n=17)\n", - "73 Normalized_X3_NK__GZMB (n=17)\n", - "86 Normalized_X3_NK__GZMB (n=17)\n", - "81 Normalized_X3_NK__GZMB (n=17)\n", - "76 Normalized_X3_NK__GZMB (n=17)" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "test[order(test$value, decreasing = TRUE),]" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "7e2b12df-1130-45be-b523-ae0d823772b1", - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": 257, - "id": "9b0f9a88-6a59-440a-b254-9012749f9973", - "metadata": {}, - "outputs": [], - "source": [ - "# Figure Name\n", - "#figure_name = 'FIG10_E9_ROC_Factor4_TP1'" - ] - }, - { - "cell_type": "code", - "execution_count": 258, - "id": "c43b09f9-ee67-42e2-bc21-1c252b492cc5", - "metadata": {}, - "outputs": [], - "source": [ - "# Sizes of the plot\n", - "width_par = 2\n", - "height_par = 2" - ] - }, - { - "cell_type": "code", - "execution_count": 259, - "id": "5626c24c-2c52-4454-95b3-a24973a9ae90", - "metadata": {}, - "outputs": [], - "source": [ - "xtitle = xlab( 'False Positive Fraction')\n", - "ytitle = ylab('Sensititity')" - ] - }, - { - "cell_type": "code", - "execution_count": 260, - "id": "bd734240-3554-43a6-967b-3bcb77ac34d0", - "metadata": {}, - "outputs": [], - "source": [ - "auc_values = data.frame()" - ] - }, - { - "cell_type": "code", - "execution_count": 261, - "id": "c1b4565e-4cb2-41c3-bfec-68b391f649df", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Setting levels: control = 0, case = 1\n", - "\n", - "Setting direction: controls < cases\n", - "\n", - "Setting levels: control = 0, case = 1\n", - "\n", - "Setting direction: controls < cases\n", - "\n", - "Setting levels: control = 0, case = 1\n", - "\n", - "Setting direction: controls > cases\n", - "\n", - "Setting levels: control = 0, case = 1\n", - "\n", - "Setting direction: controls < cases\n", - "\n", - "Setting levels: control = 0, case = 1\n", - "\n", - "Setting direction: controls < cases\n", - "\n", - "Setting levels: control = 0, case = 1\n", - "\n", - "Setting direction: controls < cases\n", - "\n", - "Setting levels: control = 0, case = 1\n", - "\n", - "Setting direction: controls < cases\n", - "\n", - "Setting levels: control = 0, case = 1\n", - "\n", - "Setting direction: controls < cases\n", - "\n" - ] - } - ], - "source": [ - "for(i in unique(prediction_data_long$variable)){\n", - " calc_auc = data.frame(variable = i, \n", - " auc = auc(prediction_data_long$y[prediction_data_long$variable == i], prediction_data_long$value[prediction_data_long$variable == i])\n", - " )\n", - " auc_values = rbind(auc_values, calc_auc)\n", - " }" - ] - }, - { - "cell_type": "code", - "execution_count": 262, - "id": "f2efa479-caa9-4699-b9f5-5bcff58bb1a3", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "
A data.frame: 8 × 2
variableauc
<chr><auc>
Factor4 0.8333333
Normalized_X3_NK__CD53 0.8076923
Normalized_X3_NK__CST7 0.4711538
Normalized_X3_NK__FYN 0.4230769
Normalized_X3_NK__GZMB 0.6442308
Normalized_X3_NK__LITAF0.5384615
Normalized_X3_NK__PRF1 0.5673077
Normalized_X3_NK__TXNIP0.7980769
\n" - ], - "text/latex": [ - "A data.frame: 8 × 2\n", - "\\begin{tabular}{ll}\n", - " variable & auc\\\\\n", - " & \\\\\n", - "\\hline\n", - "\t Factor4 & 0.8333333\\\\\n", - "\t Normalized\\_X3\\_NK\\_\\_CD53 & 0.8076923\\\\\n", - "\t Normalized\\_X3\\_NK\\_\\_CST7 & 0.4711538\\\\\n", - "\t Normalized\\_X3\\_NK\\_\\_FYN & 0.4230769\\\\\n", - "\t Normalized\\_X3\\_NK\\_\\_GZMB & 0.6442308\\\\\n", - "\t Normalized\\_X3\\_NK\\_\\_LITAF & 0.5384615\\\\\n", - "\t Normalized\\_X3\\_NK\\_\\_PRF1 & 0.5673077\\\\\n", - "\t Normalized\\_X3\\_NK\\_\\_TXNIP & 0.7980769\\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A data.frame: 8 × 2\n", - "\n", - "| variable <chr> | auc <auc> |\n", - "|---|---|\n", - "| Factor4 | 0.8333333 |\n", - "| Normalized_X3_NK__CD53 | 0.8076923 |\n", - "| Normalized_X3_NK__CST7 | 0.4711538 |\n", - "| Normalized_X3_NK__FYN | 0.4230769 |\n", - "| Normalized_X3_NK__GZMB | 0.6442308 |\n", - "| Normalized_X3_NK__LITAF | 0.5384615 |\n", - "| Normalized_X3_NK__PRF1 | 0.5673077 |\n", - "| Normalized_X3_NK__TXNIP | 0.7980769 |\n", - "\n" - ], - "text/plain": [ - " variable auc \n", - "1 Factor4 0.8333333\n", - "2 Normalized_X3_NK__CD53 0.8076923\n", - "3 Normalized_X3_NK__CST7 0.4711538\n", - "4 Normalized_X3_NK__FYN 0.4230769\n", - "5 Normalized_X3_NK__GZMB 0.6442308\n", - "6 Normalized_X3_NK__LITAF 0.5384615\n", - "7 Normalized_X3_NK__PRF1 0.5673077\n", - "8 Normalized_X3_NK__TXNIP 0.7980769" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "auc_values" - ] - }, - { - "cell_type": "code", - "execution_count": 263, - "id": "3a6de357-c472-40f5-a7c6-381a3458c78c", - "metadata": {}, - "outputs": [], - "source": [ - "## Specify Plot\n", - "rocplot = ggplot(prediction_data_long, aes(m = value, d = as.numeric(y), color = variable_w_n, linetype= variable_w_n))+ geom_roc(n.cuts=0,labels=FALSE, size = 0.5)" - ] - }, - { - "cell_type": "code", - "execution_count": 264, - "id": "cbcc978b-c3df-4c6d-a5be-c7335ad89565", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "
  1. 'Factor4 (n=19)'
  2. 'Normalized_X3_NK__CD53 (n=17)'
  3. 'Normalized_X3_NK__CST7 (n=17)'
  4. 'Normalized_X3_NK__FYN (n=17)'
  5. 'Normalized_X3_NK__GZMB (n=17)'
  6. 'Normalized_X3_NK__LITAF (n=17)'
  7. 'Normalized_X3_NK__PRF1 (n=17)'
  8. 'Normalized_X3_NK__TXNIP (n=17)'
\n" - ], - "text/latex": [ - "\\begin{enumerate*}\n", - "\\item 'Factor4 (n=19)'\n", - "\\item 'Normalized\\_X3\\_NK\\_\\_CD53 (n=17)'\n", - "\\item 'Normalized\\_X3\\_NK\\_\\_CST7 (n=17)'\n", - "\\item 'Normalized\\_X3\\_NK\\_\\_FYN (n=17)'\n", - "\\item 'Normalized\\_X3\\_NK\\_\\_GZMB (n=17)'\n", - "\\item 'Normalized\\_X3\\_NK\\_\\_LITAF (n=17)'\n", - "\\item 'Normalized\\_X3\\_NK\\_\\_PRF1 (n=17)'\n", - "\\item 'Normalized\\_X3\\_NK\\_\\_TXNIP (n=17)'\n", - "\\end{enumerate*}\n" - ], - "text/markdown": [ - "1. 'Factor4 (n=19)'\n", - "2. 'Normalized_X3_NK__CD53 (n=17)'\n", - "3. 'Normalized_X3_NK__CST7 (n=17)'\n", - "4. 'Normalized_X3_NK__FYN (n=17)'\n", - "5. 'Normalized_X3_NK__GZMB (n=17)'\n", - "6. 'Normalized_X3_NK__LITAF (n=17)'\n", - "7. 'Normalized_X3_NK__PRF1 (n=17)'\n", - "8. 'Normalized_X3_NK__TXNIP (n=17)'\n", - "\n", - "\n" - ], - "text/plain": [ - "[1] \"Factor4 (n=19)\" \"Normalized_X3_NK__CD53 (n=17)\" \n", - "[3] \"Normalized_X3_NK__CST7 (n=17)\" \"Normalized_X3_NK__FYN (n=17)\" \n", - "[5] \"Normalized_X3_NK__GZMB (n=17)\" \"Normalized_X3_NK__LITAF (n=17)\"\n", - "[7] \"Normalized_X3_NK__PRF1 (n=17)\" \"Normalized_X3_NK__TXNIP (n=17)\"" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "unique(prediction_data_long$variable_w_n)" - ] - }, - { - "cell_type": "code", - "execution_count": 265, - "id": "04ba77dd-ebc5-4e67-9a07-f6ffb3e4779d", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAADhAAAADwCAIAAADUo1iyAAAABmJLR0QA/wD/AP+gvaeTAAAg\nAElEQVR4nOzdd3wUdfoH8M9sme19k00nIZXepNsVRVEUFRVUREUsp2c5u2evZz87dn/eKXb0\n7B1ERARFqSm0BEI2ZNO21/n9MUsgSAklbAif9z9Odp6deb4D5qWbT56vIEkSiIiIiIiIiIiI\niIiIiIiIiIiIiIio+1KkugEiIiIiIiIiIiIiIiIiIiIiIiIiIupcDIwSERERERERERERERER\nEREREREREXVzDIwSEREREREREREREREREREREREREXVzDIwSERERERERERERERERERERERER\nEXVzDIwSEREREREREREREREREREREREREXVzDIwSEREREREREREREREREREREREREXVzDIwS\nEREREREREREREREREREREREREXVzDIwSERERERERERERdTdfTLMKgiCU/XPp/rjbyjv7CoIg\nGKd+spcXamt7n7RFREREREREREREW2NglIiIiIiIiIiIiJJeGitsodKYXcUjT7/xg6poW4HU\n8OvLN5x1WO8sq14UDfa8/secf+c7y73trxKo+t9Dl44bVuQya9Wiwebq0Xf0uAd+DO/nteym\nb+Sk4nYd8uDidk9GqbXnlo04/eaZS1uS7w5Wz375lomD0tWCIAjCiEfWpnIpRERERERERERE\nRNvDwCgRERERERERERG157jkeykRqPnq4sw18z946KxxdyySACCx5o3TB46c9vBHrUc8/tP6\n1pZVX95csuqNu84aMvSSzxs2v7f+s8uGDhh/44wFhrNf/LmmtWX971+/duOx2oa6WOrW0xHH\nvtQsyX7+Rw8AwOinNiZfWXhTUbLKccn3khRvWfbMEaFfPnhw0vCxj6+UALjf+ucd84xnPnPz\nMSnrn4iIiIiIiIiIiGgXGBglIiIiIiIiIiKivxJ0mUdcfEZfALGKL75dA2DjjGnTP9wQR870\n554+q49dq8sYetmrD51qQKj8hSlXz/IBQMMbF096fnkAplOf/vDe8X3SdDpbfv+jzrvr/Ucn\nGrZzk0TDT8/8bdzgfLteY8ruf/IN71QEAMy9IkMQBCH3mp/kqvfOVslzPtcCW3Y/n3D7kxcc\n3TfPKhZf9/AlGYIgCP3uWpm8bsur47SCIIhjZjQASLhnPzF9TN9si1ZrzioZesp1by5p2U4z\n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\nPfHgT+6m1e/ePeO3rc6WXHLP+XkCwp8+cu8PG5s2fHXPv7+LQ9nz8rsvyt7JKQCFF99wug2I\nfP74/T/WNa354O4ZC3fexw4eV8XTkybe8eacZTUtCZ3ZZtAA0I4YMaCjq1v8wt1vVzXV//zg\nIx8HAcupN0wvgbpv/14KAMu+/mR1S92cu+5+p7WtfrfbJiIiIiIiIiIioj3HwCgRERERERER\nERHtgHXiLZcVA4gveOyhb8PKnlPe/33ei9ePN31/1chsoyX/uPtX9jz39rcW/jrjxLTNb3GN\ne+7XxR89eMkw71sXjcgxmjL6HDbp7s+9jnTVX69+wvM/f//vS8c6F//zmJ7Zfcbds+TwyWM0\ngPXcJ/5z5TGlaRteOmXw4Vf8eOTUk5QdadY84YLTrAAAxeip5xVvftk27oX53zx28RjL/GtH\n5aTnjzj9mlfWlF1773k99vrpbBH6z6mCIAi68z4FAPxyfYEgCMKIR9Zvp9Z65oufPz75ENvS\nR04cPOqCTwaee7IeANRqNQDYx78878t/TR3hf+3k/PSeZ7yVOPyix7/96d/HmHd6CoDt7Jc+\ne2TSEOuyR08aMmrqR/2nnr6L6afbf1zF598xxTz7gfOPLnXaep72fuKI8x/85I1Lcjv4HAyn\nXjD0i2mjB43915/mQWf+67NXznEA6HP9zJemjS5QfPW3/mVjHpLOuXCr/Olut01ERERERERE\nRER7TJCkDmznRERERERERERERET73oZHR+ZcNx+aCf9t/GCyPtXdEBERERERERERUTfGCaNE\nRERERERERERE+8+G1y6f8vhnf65vDTSvnfPk5Y/NBzR9r7/xdKZFiYiIiIiIiIiIqFNxwigR\nERERERERERHRfuRd/vaDtz/29pwl1S0qe36/Q8dffMstUwfbUt0WERERERERERERdXMMjBIR\nERERERERERERERERERERERERdXPckp6IiIiIiIiIiIiIiIiIiIiIiIiIqJtjYJSIiIiIiIiI\niIiIiIiIiIiIiIiIqJtjYJSIiIiIiIiIiIiIiIiIiIiIiIiIqJtjYJSIiIiIiIiIiIiIiIiI\niIiIiIiIqJtjYJSIiIiIiIiIiIiIiIiIiIiIiIiIqJtjYJSIiIiIiIiIiIiIiIiIiIiIiIiI\nqJvrnMBosHr2y7dMHJSuFgRBEEY8snan1ZGqWbedMazArtNoLbkDT77mP0t9HT5LRERERERE\nRERERERERERERERERES70CmBUfdb/7xjnvHMZ24+pgPFG2eeM/q0e993Hz5jRe2qd06PfP7E\neaNPerYq0ZGzRERERERERERERERERERERERERES0S4IkSZ117dB/TtKd9ykw/OE186/L335N\nfN7f80c/tR797lr25+29Afe/D8u4ei4sk97f+OZpup2fbX+l2bNnl5eXt305efJko9HYWUsj\nIiIiIiIiIiIiIiIiIiIiIiIiIuqYSCTi9/tbWlqCwWAgEGhubg4Gg8FgsKmpad/eyGw2n332\n2ds9pdq3d9ptSz//fD0AFBUVAgBcRUVGzPW1fPnlfJx21M7Ptr/S66+//uqrr7Z9efzxxzMw\nSkRERERERERERERERERERERERER7KRwOb5PylA+am5sDgUAwGGxpafH7/cFgsLW11efzBYNB\nr9fr9XqDwaDP52ttbY3H453Um0KhsFgsBoNBp9OZzebi4uKuGhitqakBANFk0sgvmEwmwIfG\n6mr/rs4aUtMyERERERERERERERERERERERERER1A5JRnKBTa5cFfX2xsbAyHw53Xm1ar1el0\nWq3WZrPZbLa24w4eWK1WQRA6cqNUB0YlKfkPqe0FqaNniYiIiIiIiIiIiIiIiIiIiIiIiKi7\nY9xzn0h1YDQvLxeoQtTrDQMaAF6vFwDsubmGXZ0lIiIiIiIiIiIiIiIiIiIiIiIioq5tD1Ke\n+zPuuQcpz5TEPfdeCgKjP1yRcdQzbmRf9fP6J0b0HTs2+96nN6CqqgroA9RVVfkBWI4fOwLA\nzs8SERERERERERERERERERERERERUWfqxnFPm83Web11QameMKocfdO/Jsw898OlLz/4zpQn\nRpffP2M+YDrsnjtP1e/y7Ga//PKL1+ttaWmx2WyxWCw5hZSIiIiIiIj2kcSqSvh9qe6CiIj2\nxLxoYqRaIf96+1fRxAiVwizwmMfd5HhkQjAog76WBSs39emncCpc64LRyoqGgf0UTlWkPhqu\nW6nO6aW1b/06a1jDGtawpovUlGltSld1MFo5351RFEfAtSKUqIk1Tx6kzGj0LwhF61ep8nqq\nFK48VTy2njWsOUBr+sdyGj010VhLndLpsja4ChCPrf+jqn92ROWzuSNoVHqHFwgWX7gqql2y\nSszoqVIYDbnRcOvaRmNmQmqr6WUTm0LzQ9H62tAhmRD16Zp4onFLje2HmHfCIGVGg7s6Eg7U\n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\nEYP32qsoIiLKRozYKSLapk9/aTOzd9+oc88ZExGz7p36Srz326l/bIkYdPp5n+jX0wvZ9KpG\nROSPGDFkvcvd3Dq/P+/ggw/etbsX09mKdZQxbNjgiIgoKCiIiGjc+OGxAAAAAECaCYwCAAAA\nACk2+8ennnzNb59ftN83/7K4oS355pT9IyKSra0bBUZ3+vydj/34wgljqkpzIlpq5/79wR+c\ncfZPqyOZjIiIkd+ZmdzA9MuHbm7SZbd+LJHILtnvkmfzP3zyZfe8+PjXRiYiItlJnZubvftG\nfP7cQ7Miqu+d+sh9U//UErHbWecelRPRkwvpVE5Ozrq/dLLOa+dNJBKbHKYzna3YRmX0ZAIA\nAAAAYLsQGAUAAAAAUqv5pWkzmiPigJPPOaQiL9E4a9bczfZN7Hr4V3/x2Iy3V6xe9ub/XrBn\nRLTOnPlG3iEfOiAiovr559/t6qztT+Vsa1ixYNa0B68/fVRpe3P+2EP2j4hYNHv26oiIqJk9\n+92IyBo7dsxmZt947KysLd1ZrTzj3KPzIubedeHkv7RG7H3OueOzIqInF9Jlnazz+/MunD59\n8Qe+a4vX0umKAQAAAAB9hsAoAAAAAJBauaP23ycrIl578pE5tYv//N1r7lu5ua5v3vS5z1z9\nmz+/Nr+2rV//8qL8iCgYN+6AGDHxuvN3z4qWJ6+95M6Xlq6qe2fW3x75ry9//Mxb3u52NXtN\nnHxOVSIaH/3htc++s2LhE5Nv/GNrZA+75JoLKjc3+0aqqqoiIhb96x9LmzczzcDPnntCv4il\nixcnIw4+95zR7c3b8EI20tk6j7j4exfukRWtf7zuopufX7iyZv6Lv/zid37X2KVr6WTFtr5o\nAAAAAGB7ERgFAAAAAFJsv0un3v6Fw/bIeuKL+4885obkmedvIoPZbsQ5V3++/5++d86Re1eU\nDzvlgbYjzrn+kf+ZOCSi/PhfTHvqPy88pnTa1w/dbdDQcad+7c63Rn792rN37341A0684/nH\nv3/uuNV3f3LooGGfvqft8At+/PRzNx7Vf/Ozf9DwC2+46uP77ZJ49Oyd8xKJUddu4iGk0f/k\n804pi4iIrMPOPXvE+83b8EI20tk6l338lheeufHiCRWvfOuoYZX7HT/51cPPOCa/a9ey+RUD\nAAAAAPqORDKZTHcNAAAAAAAAAAAAAKSQJ4wCAAAAAAAAAAAAZDiBUQAAAAAAAAAAAIAMJzAK\nAAAAAAAAAAAAkOEERgEAAAAAAAAAAAAynMAoAAAAAAAAAAAAQIYTGAUAAAAAAAAAAADIcAKj\nAAAAAAAAAAAAABlOYBQAAAAAAAAAAAAgwwmMAgAAAAAAAAAAAGQ4gVEAAAAAAAAAAACADCcw\nCgAAAAAAAAAAAJDh/h+wmtLJWCR5RQAAAABJRU5ErkJggg==", - "text/plain": [ - "plot without title" - ] - }, - "metadata": { - "image/png": { - "height": 120, - "width": 1800 - } - }, - "output_type": "display_data" - } - ], - "source": [ - "## Configuration + Modification of plot\n", - "roc_plot = rocplot + \n", - " plot_config + \n", - " xtitle + \n", - " ytitle + \n", - " ggtitle('ROC curve TP1 good vs. bad') +\n", - " geom_abline(slope = 1, intercept = 0) +\n", - " theme(legend.position = 'none')\n", - "\n", - "#legend_roc = get_legend(roc_plot)\n", - " \n", - "\n", - "roc_plot" - ] - }, { "cell_type": "code", "execution_count": null, diff --git a/F/F4_1_Ligand_Receptor_Interactions_with_NicheNet_Correlations.ipynb b/F/F4_1_Ligand_Receptor_Interactions_with_NicheNet_Correlations.ipynb index da10bb4..8e164cc 100644 --- a/F/F4_1_Ligand_Receptor_Interactions_with_NicheNet_Correlations.ipynb +++ b/F/F4_1_Ligand_Receptor_Interactions_with_NicheNet_Correlations.ipynb @@ -1251,26 +1251,6 @@ "## Sample Data" ] }, - { - "cell_type": "code", - "execution_count": 11, - "id": "df7d79cb-365f-422b-9a18-e4ffb25d72c9", - "metadata": {}, - "outputs": [], - "source": [ - "#head(merged_data$CK,6)" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "id": "9aee88af-8147-4836-b2cc-86371952e5d7", - "metadata": {}, - "outputs": [], - "source": [ - "#head(sample_data$CK, 5)" - ] - }, { "cell_type": "code", "execution_count": 13, @@ -1281,70 +1261,6 @@ "sample_data = read.csv(paste0(result_path, '/00_Data_Overview/Merged_Sample_Meta_Data.csv'))" ] }, - { - "cell_type": "code", - "execution_count": 14, - "id": "0a5cc241-55ec-4539-a75b-989dfb8ad5b3", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "
A data.frame: 2 × 30
X.1sample_idsampleidmeasurementlibraryid.ynamereadpatternmeta_datadelta_ef_value_groupdelta_ef_valuedelta_ef_value_classef_classification_dataCKCK_MBTroponinCRPclinical_data
<int><chr><chr><dbl><chr><chr><chr><chr><chr><chr><int><chr><dbl><chr><int><int><chr><dbl><chr><int>
136136m6.4M66.4TP4L14HTO_B02596.4R25PNNNNNNNNNN(BC)1x_smaller_10.875intermediate1590.4581.31
137137m6.4M66.4TP4L10HTO_B02556.4R25PNNNNNNNNNN(BC)1x_smaller_10.875intermediate1590.4581.31
\n" - ], - "text/latex": [ - "A data.frame: 2 × 30\n", - "\\begin{tabular}{r|lllllllllllllllllllll}\n", - " & X.1 & sample\\_id & sample & id & measurement & library & id.y & name & read & pattern & ⋯ & meta\\_data & delta\\_ef\\_value\\_group & delta\\_ef\\_value & delta\\_ef\\_value\\_class & ef\\_classification\\_data & CK & CK\\_MB & Troponin & CRP & clinical\\_data\\\\\n", - " & & & & & & & & & & & ⋯ & & & & & & & & & & \\\\\n", - "\\hline\n", - "\t136 & 136 & m6.4 & M6 & 6.4 & TP4 & L14 & HTO\\_B0259 & 6.4 & R2 & 5PNNNNNNNNNN(BC) & ⋯ & 1 & x\\_smaller\\_1 & 0.875 & intermediate & 1 & 59 & & 0.458 & 1.3 & 1\\\\\n", - "\t137 & 137 & m6.4 & M6 & 6.4 & TP4 & L10 & HTO\\_B0255 & 6.4 & R2 & 5PNNNNNNNNNN(BC) & ⋯ & 1 & x\\_smaller\\_1 & 0.875 & intermediate & 1 & 59 & & 0.458 & 1.3 & 1\\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A data.frame: 2 × 30\n", - "\n", - "| | X.1 <int> | sample_id <chr> | sample <chr> | id <dbl> | measurement <chr> | library <chr> | id.y <chr> | name <chr> | read <chr> | pattern <chr> | ⋯ ⋯ | meta_data <int> | delta_ef_value_group <chr> | delta_ef_value <dbl> | delta_ef_value_class <chr> | ef_classification_data <int> | CK <int> | CK_MB <chr> | Troponin <dbl> | CRP <chr> | clinical_data <int> |\n", - "|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|\n", - "| 136 | 136 | m6.4 | M6 | 6.4 | TP4 | L14 | HTO_B0259 | 6.4 | R2 | 5PNNNNNNNNNN(BC) | ⋯ | 1 | x_smaller_1 | 0.875 | intermediate | 1 | 59 | | 0.458 | 1.3 | 1 |\n", - "| 137 | 137 | m6.4 | M6 | 6.4 | TP4 | L10 | HTO_B0255 | 6.4 | R2 | 5PNNNNNNNNNN(BC) | ⋯ | 1 | x_smaller_1 | 0.875 | intermediate | 1 | 59 | | 0.458 | 1.3 | 1 |\n", - "\n" - ], - "text/plain": [ - " X.1 sample_id sample id measurement library id.y name read\n", - "136 136 m6.4 M6 6.4 TP4 L14 HTO_B0259 6.4 R2 \n", - "137 137 m6.4 M6 6.4 TP4 L10 HTO_B0255 6.4 R2 \n", - " pattern ⋯ meta_data delta_ef_value_group delta_ef_value\n", - "136 5PNNNNNNNNNN(BC) ⋯ 1 x_smaller_1 0.875 \n", - "137 5PNNNNNNNNNN(BC) ⋯ 1 x_smaller_1 0.875 \n", - " delta_ef_value_class ef_classification_data CK CK_MB Troponin CRP\n", - "136 intermediate 1 59 0.458 1.3\n", - "137 intermediate 1 59 0.458 1.3\n", - " clinical_data\n", - "136 1 \n", - "137 1 " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "sample_data[(sample_data$sample_id == 'm6.4'),] " - ] - }, { "cell_type": "code", "execution_count": 15, @@ -2272,36 +2188,6 @@ "## Available ligand receptor potential + transcription factor datasets from nichenet" ] }, - { - "cell_type": "code", - "execution_count": 57, - "id": "7247e04c-d63d-4d16-aac8-0f620a8867a1", - "metadata": {}, - "outputs": [], - "source": [ - "## Networks from data sources without weighting" - ] - }, - { - "cell_type": "code", - "execution_count": 58, - "id": "7f0f8850-1b4a-4cd6-9e62-5426007f5c90", - "metadata": {}, - "outputs": [], - "source": [ - "#gr_network = readRDS(url(\"https://zenodo.org/record/3260758/files/gr_network.rds\")) # gene regulatory interactions" - ] - }, - { - "cell_type": "code", - "execution_count": 59, - "id": "1fd0c627-8bbe-4378-b193-37369edf9311", - "metadata": {}, - "outputs": [], - "source": [ - "#sig_network = readRDS(url(\"https://zenodo.org/record/3260758/files/signaling_network.rds\")) # signaling interactions, protein-protein interactions" - ] - }, { "cell_type": "code", "execution_count": 60, @@ -2332,28 +2218,6 @@ "## Prepared influential matrices" ] }, - { - "cell_type": "code", - "execution_count": 63, - "id": "5a16b2aa-1372-4f56-8422-0a5ab625903c", - "metadata": {}, - "outputs": [], - "source": [ - "#ligand_tf_matrix = readRDS(url(\"https://zenodo.org/record/3260758/files/ligand_tf_matrix.rds\")) # ligand gene signaling scores\n", - "# gives the PPR(i,k) the importance of gene k in the signaling of ligand i as determined in the ligand signaling network (e.g. determined via personalized page rank or simply directe)" - ] - }, - { - "cell_type": "code", - "execution_count": 64, - "id": "97c9a5c9-a3e7-424f-a720-1d196509815b", - "metadata": {}, - "outputs": [], - "source": [ - "#tf_target_matrix = readRDS(url(\"https://zenodo.org/record/3260758/files/tf_target_matrix.rds\")) # containing ligand-target gene regulatory potential scores\n", - "# gives the GRN(k,j) weight - second part for calculation of ligand regulatory potential --> is the weight of the gr network in matrix form" - ] - }, { "cell_type": "code", "execution_count": 65, @@ -3644,97 +3508,6 @@ "final_data = dcast(data_long, sample_id ~ ident , value.var = \"value\") # ! with this merging there might be NA values for some samples on some data types" ] }, - { - "cell_type": "code", - "execution_count": 111, - "id": "25a06bad-3646-47b6-87bc-d0619c123803", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "
A data.frame: 2 × 13284
sample_idclinical_data_0_CKclinical_data_0_CK_MBclinical_data_0_CRPclinical_data_0_delta_ef_valueclinical_data_0_Troponincytokine_0_BCA1__CXCL13cytokine_0_CTACK__CCL27cytokine_0_EGF__EGFcytokine_0_ENA78__CXCL5single_cell_0_X9_Monocytes...CD16_FCGR3A__ZEB2single_cell_0_X9_Monocytes...CD16_FCGR3A__ZFAND5single_cell_0_X9_Monocytes...CD16_FCGR3A__ZFAS1single_cell_0_X9_Monocytes...CD16_FCGR3A__ZFP36single_cell_0_X9_Monocytes...CD16_FCGR3A__ZFP36L1single_cell_0_X9_Monocytes...CD16_FCGR3A__ZFP36L2single_cell_0_X9_Monocytes...CD16_FCGR3A__ZNF106single_cell_0_X9_Monocytes...CD16_FCGR3A__ZNF207single_cell_0_X9_Monocytes...CD16_FCGR3A__ZNF706single_cell_0_X9_Monocytes...CD16_FCGR3A__ZYX
<chr><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl>
1k1 5.459432NA0.4854268NA0.018634175.6965509.8216625.04526810.562366 NA NA NA NA NA NA NA NA NA NA
2k10 NANA0.2630344NA NA4.6976639.7012201.922198 7.7241732.4610542.1571691.9753263.1395952.0784171.8433551.3431360.65401531.1906770.8572279
\n" - ], - "text/latex": [ - "A data.frame: 2 × 13284\n", - "\\begin{tabular}{r|lllllllllllllllllllll}\n", - " & sample\\_id & clinical\\_data\\_0\\_CK & clinical\\_data\\_0\\_CK\\_MB & clinical\\_data\\_0\\_CRP & clinical\\_data\\_0\\_delta\\_ef\\_value & clinical\\_data\\_0\\_Troponin & cytokine\\_0\\_BCA1\\_\\_CXCL13 & cytokine\\_0\\_CTACK\\_\\_CCL27 & cytokine\\_0\\_EGF\\_\\_EGF & cytokine\\_0\\_ENA78\\_\\_CXCL5 & ⋯ & single\\_cell\\_0\\_X9\\_Monocytes...CD16\\_FCGR3A\\_\\_ZEB2 & single\\_cell\\_0\\_X9\\_Monocytes...CD16\\_FCGR3A\\_\\_ZFAND5 & single\\_cell\\_0\\_X9\\_Monocytes...CD16\\_FCGR3A\\_\\_ZFAS1 & single\\_cell\\_0\\_X9\\_Monocytes...CD16\\_FCGR3A\\_\\_ZFP36 & single\\_cell\\_0\\_X9\\_Monocytes...CD16\\_FCGR3A\\_\\_ZFP36L1 & single\\_cell\\_0\\_X9\\_Monocytes...CD16\\_FCGR3A\\_\\_ZFP36L2 & single\\_cell\\_0\\_X9\\_Monocytes...CD16\\_FCGR3A\\_\\_ZNF106 & single\\_cell\\_0\\_X9\\_Monocytes...CD16\\_FCGR3A\\_\\_ZNF207 & single\\_cell\\_0\\_X9\\_Monocytes...CD16\\_FCGR3A\\_\\_ZNF706 & single\\_cell\\_0\\_X9\\_Monocytes...CD16\\_FCGR3A\\_\\_ZYX\\\\\n", - " & & & & & & & & & & & ⋯ & & & & & & & & & & \\\\\n", - "\\hline\n", - "\t1 & k1 & 5.459432 & NA & 0.4854268 & NA & 0.01863417 & 5.696550 & 9.821662 & 5.045268 & 10.562366 & ⋯ & NA & NA & NA & NA & NA & NA & NA & NA & NA & NA\\\\\n", - "\t2 & k10 & NA & NA & 0.2630344 & NA & NA & 4.697663 & 9.701220 & 1.922198 & 7.724173 & ⋯ & 2.461054 & 2.157169 & 1.975326 & 3.139595 & 2.078417 & 1.843355 & 1.343136 & 0.6540153 & 1.190677 & 0.8572279\\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A data.frame: 2 × 13284\n", - "\n", - "| | sample_id <chr> | clinical_data_0_CK <dbl> | clinical_data_0_CK_MB <dbl> | clinical_data_0_CRP <dbl> | clinical_data_0_delta_ef_value <dbl> | clinical_data_0_Troponin <dbl> | cytokine_0_BCA1__CXCL13 <dbl> | cytokine_0_CTACK__CCL27 <dbl> | cytokine_0_EGF__EGF <dbl> | cytokine_0_ENA78__CXCL5 <dbl> | ⋯ ⋯ | single_cell_0_X9_Monocytes...CD16_FCGR3A__ZEB2 <dbl> | single_cell_0_X9_Monocytes...CD16_FCGR3A__ZFAND5 <dbl> | single_cell_0_X9_Monocytes...CD16_FCGR3A__ZFAS1 <dbl> | single_cell_0_X9_Monocytes...CD16_FCGR3A__ZFP36 <dbl> | single_cell_0_X9_Monocytes...CD16_FCGR3A__ZFP36L1 <dbl> | single_cell_0_X9_Monocytes...CD16_FCGR3A__ZFP36L2 <dbl> | single_cell_0_X9_Monocytes...CD16_FCGR3A__ZNF106 <dbl> | single_cell_0_X9_Monocytes...CD16_FCGR3A__ZNF207 <dbl> | single_cell_0_X9_Monocytes...CD16_FCGR3A__ZNF706 <dbl> | single_cell_0_X9_Monocytes...CD16_FCGR3A__ZYX <dbl> |\n", - "|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|\n", - "| 1 | k1 | 5.459432 | NA | 0.4854268 | NA | 0.01863417 | 5.696550 | 9.821662 | 5.045268 | 10.562366 | ⋯ | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |\n", - "| 2 | k10 | NA | NA | 0.2630344 | NA | NA | 4.697663 | 9.701220 | 1.922198 | 7.724173 | ⋯ | 2.461054 | 2.157169 | 1.975326 | 3.139595 | 2.078417 | 1.843355 | 1.343136 | 0.6540153 | 1.190677 | 0.8572279 |\n", - "\n" - ], - "text/plain": [ - " sample_id clinical_data_0_CK clinical_data_0_CK_MB clinical_data_0_CRP\n", - "1 k1 5.459432 NA 0.4854268 \n", - "2 k10 NA NA 0.2630344 \n", - " clinical_data_0_delta_ef_value clinical_data_0_Troponin\n", - "1 NA 0.01863417 \n", - "2 NA NA \n", - " cytokine_0_BCA1__CXCL13 cytokine_0_CTACK__CCL27 cytokine_0_EGF__EGF\n", - "1 5.696550 9.821662 5.045268 \n", - "2 4.697663 9.701220 1.922198 \n", - " cytokine_0_ENA78__CXCL5 ⋯ single_cell_0_X9_Monocytes...CD16_FCGR3A__ZEB2\n", - "1 10.562366 ⋯ NA \n", - "2 7.724173 ⋯ 2.461054 \n", - " single_cell_0_X9_Monocytes...CD16_FCGR3A__ZFAND5\n", - "1 NA \n", - "2 2.157169 \n", - " single_cell_0_X9_Monocytes...CD16_FCGR3A__ZFAS1\n", - "1 NA \n", - "2 1.975326 \n", - " single_cell_0_X9_Monocytes...CD16_FCGR3A__ZFP36\n", - "1 NA \n", - "2 3.139595 \n", - " single_cell_0_X9_Monocytes...CD16_FCGR3A__ZFP36L1\n", - "1 NA \n", - "2 2.078417 \n", - " single_cell_0_X9_Monocytes...CD16_FCGR3A__ZFP36L2\n", - "1 NA \n", - "2 1.843355 \n", - " single_cell_0_X9_Monocytes...CD16_FCGR3A__ZNF106\n", - "1 NA \n", - "2 1.343136 \n", - " single_cell_0_X9_Monocytes...CD16_FCGR3A__ZNF207\n", - "1 NA \n", - "2 0.6540153 \n", - " single_cell_0_X9_Monocytes...CD16_FCGR3A__ZNF706\n", - "1 NA \n", - "2 1.190677 \n", - " single_cell_0_X9_Monocytes...CD16_FCGR3A__ZYX\n", - "1 NA \n", - "2 0.8572279 " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "head(final_data,2)" - ] - }, { "cell_type": "code", "execution_count": 112, @@ -3801,132 +3574,6 @@ "### Extract genes" ] }, - { - "cell_type": "code", - "execution_count": 117, - "id": "778ff63c-9081-486f-b11a-31ee8e95d38e", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "
A data.frame: 2 × 9
typevariableXsample_idvalueconfigexpressionidentgene
<chr><chr><int><chr><dbl><chr><lgl><chr><chr>
1clinical_dataCK1557210k1 5.459432FALSE-FALSE-TRUE-0.2-FALSE-TRUE-TRUEclinical_data_0_CKCK
2clinical_dataCK1557211k10 NAFALSE-FALSE-TRUE-0.2-FALSE-TRUE-TRUEclinical_data_0_CKCK
\n" - ], - "text/latex": [ - "A data.frame: 2 × 9\n", - "\\begin{tabular}{r|lllllllll}\n", - " & type & variable & X & sample\\_id & value & config & expression & ident & gene\\\\\n", - " & & & & & & & & & \\\\\n", - "\\hline\n", - "\t1 & clinical\\_data & CK & 1557210 & k1 & 5.459432 & FALSE-FALSE-TRUE-0.2-FALSE-TRUE- & TRUE & clinical\\_data\\_0\\_CK & CK\\\\\n", - "\t2 & clinical\\_data & CK & 1557211 & k10 & NA & FALSE-FALSE-TRUE-0.2-FALSE-TRUE- & TRUE & clinical\\_data\\_0\\_CK & CK\\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A data.frame: 2 × 9\n", - "\n", - "| | type <chr> | variable <chr> | X <int> | sample_id <chr> | value <dbl> | config <chr> | expression <lgl> | ident <chr> | gene <chr> |\n", - "|---|---|---|---|---|---|---|---|---|---|\n", - "| 1 | clinical_data | CK | 1557210 | k1 | 5.459432 | FALSE-FALSE-TRUE-0.2-FALSE-TRUE- | TRUE | clinical_data_0_CK | CK |\n", - "| 2 | clinical_data | CK | 1557211 | k10 | NA | FALSE-FALSE-TRUE-0.2-FALSE-TRUE- | TRUE | clinical_data_0_CK | CK |\n", - "\n" - ], - "text/plain": [ - " type variable X sample_id value \n", - "1 clinical_data CK 1557210 k1 5.459432\n", - "2 clinical_data CK 1557211 k10 NA\n", - " config expression ident gene\n", - "1 FALSE-FALSE-TRUE-0.2-FALSE-TRUE- TRUE clinical_data_0_CK CK \n", - "2 FALSE-FALSE-TRUE-0.2-FALSE-TRUE- TRUE clinical_data_0_CK CK " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "head(data_long,2)" - ] - }, - { - "cell_type": "code", - "execution_count": 118, - "id": "be2552af-6d02-471f-a9c6-0d927663de79", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "
A tibble: 5 × 2
typerange_values
<chr><dbl>
clinical_data NA
cytokine 18.018551
neutrophil 8.412481
proteomics 18.321847
single_cell 8.458305
\n" - ], - "text/latex": [ - "A tibble: 5 × 2\n", - "\\begin{tabular}{ll}\n", - " type & range\\_values\\\\\n", - " & \\\\\n", - "\\hline\n", - "\t clinical\\_data & NA\\\\\n", - "\t cytokine & 18.018551\\\\\n", - "\t neutrophil & 8.412481\\\\\n", - "\t proteomics & 18.321847\\\\\n", - "\t single\\_cell & 8.458305\\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A tibble: 5 × 2\n", - "\n", - "| type <chr> | range_values <dbl> |\n", - "|---|---|\n", - "| clinical_data | NA |\n", - "| cytokine | 18.018551 |\n", - "| neutrophil | 8.412481 |\n", - "| proteomics | 18.321847 |\n", - "| single_cell | 8.458305 |\n", - "\n" - ], - "text/plain": [ - " type range_values\n", - "1 clinical_data NA \n", - "2 cytokine 18.018551 \n", - "3 neutrophil 8.412481 \n", - "4 proteomics 18.321847 \n", - "5 single_cell 8.458305 " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "### Inspect different expression ranges\n", - "data_long %>% group_by(type) %>% summarise(range_values = max(abs(value)) - min(abs(value)))" - ] - }, { "cell_type": "code", "execution_count": 119, @@ -16552,1476 +16199,6 @@ "metadata": {}, "outputs": [], "source": [] - }, - { - "cell_type": "markdown", - "id": "15fd5b7f-af8b-405f-b988-cbe7a0c97a1a", - "metadata": { - "jp-MarkdownHeadingCollapsed": true, - "tags": [] - }, - "source": [ - "# Add Transcription Factors and complete pathway analysis (TBD)" - ] - }, - { - "cell_type": "code", - "execution_count": 338, - "id": "f69f3b66-5700-4e19-b148-917998ffed40", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "
A data.frame: 5 × 12
Ligand_GeneTarget_GeneclusterLigandTargetcorrelationTarget_TypeLigand_Typeregulatory_potentialregulatory_potential_scaledTarget_Cell_TypeLigand_Cell_Type
<chr><chr><chr><fct><fct><dbl><chr><chr><dbl><dbl><chr><chr>
1ADAM17A1BGproteomics single_cell_0_X6_Monocytes...CD14__ADAM17proteomics_0_A1BG_M0R009 -0.184173885proteomics single_cell_0_X6_Monocytes...CD140.00046228940.01667641proteomics Monocytes...CD14
2ADAM17A1BGproteomics single_cell_0_X4_Monocytes...CD14__ADAM17proteomics_0_A1BG_M0R009 -0.138766393proteomics single_cell_0_X4_Monocytes...CD140.00046228940.01667641proteomics Monocytes...CD14
3ADAM17A1BGproteomics single_cell_0_X6_Monocytes...CD14__ADAM17proteomics_0_A1BG_P04217.2 -0.006539046proteomics single_cell_0_X6_Monocytes...CD140.00046228940.01667641proteomics Monocytes...CD14
4ADAM17A1BGproteomics single_cell_0_X4_Monocytes...CD14__ADAM17proteomics_0_A1BG_P04217.2 0.050564953proteomics single_cell_0_X4_Monocytes...CD140.00046228940.01667641proteomics Monocytes...CD14
5ADAM17AAK1X12_Monocytes...CD16_FCGR3Asingle_cell_0_X4_Monocytes...CD14__ADAM17single_cell_0_X12_Monocytes...CD16_FCGR3A__AAK1-0.046869214single_cell_0_X12_Monocytes...CD16_FCGR3Asingle_cell_0_X4_Monocytes...CD140.00063361370.02285668Monocytes...CD16_FCGR3AMonocytes...CD14
\n" - ], - "text/latex": [ - "A data.frame: 5 × 12\n", - "\\begin{tabular}{r|llllllllllll}\n", - " & Ligand\\_Gene & Target\\_Gene & cluster & Ligand & Target & correlation & Target\\_Type & Ligand\\_Type & regulatory\\_potential & regulatory\\_potential\\_scaled & Target\\_Cell\\_Type & Ligand\\_Cell\\_Type\\\\\n", - " & & & & & & & & & & & & \\\\\n", - "\\hline\n", - "\t1 & ADAM17 & A1BG & proteomics & single\\_cell\\_0\\_X6\\_Monocytes...CD14\\_\\_ADAM17 & proteomics\\_0\\_A1BG\\_M0R009 & -0.184173885 & proteomics & single\\_cell\\_0\\_X6\\_Monocytes...CD14 & 0.0004622894 & 0.01667641 & proteomics & Monocytes...CD14\\\\\n", - "\t2 & ADAM17 & A1BG & proteomics & single\\_cell\\_0\\_X4\\_Monocytes...CD14\\_\\_ADAM17 & proteomics\\_0\\_A1BG\\_M0R009 & -0.138766393 & proteomics & single\\_cell\\_0\\_X4\\_Monocytes...CD14 & 0.0004622894 & 0.01667641 & proteomics & Monocytes...CD14\\\\\n", - "\t3 & ADAM17 & A1BG & proteomics & single\\_cell\\_0\\_X6\\_Monocytes...CD14\\_\\_ADAM17 & proteomics\\_0\\_A1BG\\_P04217.2 & -0.006539046 & proteomics & single\\_cell\\_0\\_X6\\_Monocytes...CD14 & 0.0004622894 & 0.01667641 & proteomics & Monocytes...CD14\\\\\n", - "\t4 & ADAM17 & A1BG & proteomics & single\\_cell\\_0\\_X4\\_Monocytes...CD14\\_\\_ADAM17 & proteomics\\_0\\_A1BG\\_P04217.2 & 0.050564953 & proteomics & single\\_cell\\_0\\_X4\\_Monocytes...CD14 & 0.0004622894 & 0.01667641 & proteomics & Monocytes...CD14\\\\\n", - "\t5 & ADAM17 & AAK1 & X12\\_Monocytes...CD16\\_FCGR3A & single\\_cell\\_0\\_X4\\_Monocytes...CD14\\_\\_ADAM17 & single\\_cell\\_0\\_X12\\_Monocytes...CD16\\_FCGR3A\\_\\_AAK1 & -0.046869214 & single\\_cell\\_0\\_X12\\_Monocytes...CD16\\_FCGR3A & single\\_cell\\_0\\_X4\\_Monocytes...CD14 & 0.0006336137 & 0.02285668 & Monocytes...CD16\\_FCGR3A & Monocytes...CD14\\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A data.frame: 5 × 12\n", - "\n", - "| | Ligand_Gene <chr> | Target_Gene <chr> | cluster <chr> | Ligand <fct> | Target <fct> | correlation <dbl> | Target_Type <chr> | Ligand_Type <chr> | regulatory_potential <dbl> | regulatory_potential_scaled <dbl> | Target_Cell_Type <chr> | Ligand_Cell_Type <chr> |\n", - "|---|---|---|---|---|---|---|---|---|---|---|---|---|\n", - "| 1 | ADAM17 | A1BG | proteomics | single_cell_0_X6_Monocytes...CD14__ADAM17 | proteomics_0_A1BG_M0R009 | -0.184173885 | proteomics | single_cell_0_X6_Monocytes...CD14 | 0.0004622894 | 0.01667641 | proteomics | Monocytes...CD14 |\n", - "| 2 | ADAM17 | A1BG | proteomics | single_cell_0_X4_Monocytes...CD14__ADAM17 | proteomics_0_A1BG_M0R009 | -0.138766393 | proteomics | single_cell_0_X4_Monocytes...CD14 | 0.0004622894 | 0.01667641 | proteomics | Monocytes...CD14 |\n", - "| 3 | ADAM17 | A1BG | proteomics | single_cell_0_X6_Monocytes...CD14__ADAM17 | proteomics_0_A1BG_P04217.2 | -0.006539046 | proteomics | single_cell_0_X6_Monocytes...CD14 | 0.0004622894 | 0.01667641 | proteomics | Monocytes...CD14 |\n", - "| 4 | ADAM17 | A1BG | proteomics | single_cell_0_X4_Monocytes...CD14__ADAM17 | proteomics_0_A1BG_P04217.2 | 0.050564953 | proteomics | single_cell_0_X4_Monocytes...CD14 | 0.0004622894 | 0.01667641 | proteomics | Monocytes...CD14 |\n", - "| 5 | ADAM17 | AAK1 | X12_Monocytes...CD16_FCGR3A | single_cell_0_X4_Monocytes...CD14__ADAM17 | single_cell_0_X12_Monocytes...CD16_FCGR3A__AAK1 | -0.046869214 | single_cell_0_X12_Monocytes...CD16_FCGR3A | single_cell_0_X4_Monocytes...CD14 | 0.0006336137 | 0.02285668 | Monocytes...CD16_FCGR3A | Monocytes...CD14 |\n", - "\n" - ], - "text/plain": [ - " Ligand_Gene Target_Gene cluster \n", - "1 ADAM17 A1BG proteomics \n", - "2 ADAM17 A1BG proteomics \n", - "3 ADAM17 A1BG proteomics \n", - "4 ADAM17 A1BG proteomics \n", - "5 ADAM17 AAK1 X12_Monocytes...CD16_FCGR3A\n", - " Ligand \n", - "1 single_cell_0_X6_Monocytes...CD14__ADAM17\n", - "2 single_cell_0_X4_Monocytes...CD14__ADAM17\n", - "3 single_cell_0_X6_Monocytes...CD14__ADAM17\n", - "4 single_cell_0_X4_Monocytes...CD14__ADAM17\n", - "5 single_cell_0_X4_Monocytes...CD14__ADAM17\n", - " Target correlation \n", - "1 proteomics_0_A1BG_M0R009 -0.184173885\n", - "2 proteomics_0_A1BG_M0R009 -0.138766393\n", - "3 proteomics_0_A1BG_P04217.2 -0.006539046\n", - "4 proteomics_0_A1BG_P04217.2 0.050564953\n", - "5 single_cell_0_X12_Monocytes...CD16_FCGR3A__AAK1 -0.046869214\n", - " Target_Type Ligand_Type \n", - "1 proteomics single_cell_0_X6_Monocytes...CD14\n", - "2 proteomics single_cell_0_X4_Monocytes...CD14\n", - "3 proteomics single_cell_0_X6_Monocytes...CD14\n", - "4 proteomics single_cell_0_X4_Monocytes...CD14\n", - "5 single_cell_0_X12_Monocytes...CD16_FCGR3A single_cell_0_X4_Monocytes...CD14\n", - " regulatory_potential regulatory_potential_scaled Target_Cell_Type \n", - "1 0.0004622894 0.01667641 proteomics \n", - "2 0.0004622894 0.01667641 proteomics \n", - "3 0.0004622894 0.01667641 proteomics \n", - "4 0.0004622894 0.01667641 proteomics \n", - "5 0.0006336137 0.02285668 Monocytes...CD16_FCGR3A\n", - " Ligand_Cell_Type\n", - "1 Monocytes...CD14\n", - "2 Monocytes...CD14\n", - "3 Monocytes...CD14\n", - "4 Monocytes...CD14\n", - "5 Monocytes...CD14" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "head(ligand_target_correlations_matched,5)" - ] - }, - { - "cell_type": "code", - "execution_count": 339, - "id": "6db63006-4c6d-4dec-ac0d-8ee8e5e1ce0b", - "metadata": {}, - "outputs": [ - { - "ename": "ERROR", - "evalue": "Error in h(simpleError(msg, call)): error in evaluating the argument 'x' in selecting a method for function 'head': object 'up_features' not found\n", - "output_type": "error", - "traceback": [ - "Error in h(simpleError(msg, call)): error in evaluating the argument 'x' in selecting a method for function 'head': object 'up_features' not found\nTraceback:\n", - "1. head(up_features)", - "2. .handleSimpleError(function (cond) \n . .Internal(C_tryCatchHelper(addr, 1L, cond)), \"object 'up_features' not found\", \n . base::quote(head(up_features)))", - "3. h(simpleError(msg, call))" - ] - } - ], - "source": [ - "head(up_features)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "15ffe8b9-99df-4435-ace8-31466b84e1b1", - "metadata": {}, - "outputs": [], - "source": [ - "### Look only on selected target genes (Top MOFA features)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "a72564c1-6d56-4fe8-98cc-9929214af0ce", - "metadata": {}, - "outputs": [], - "source": [ - "ligand_target_correlations_filtered = ligand_target_correlations_matched[ligand_target_correlations_matched$Target %in% c(up_features, down_features),]" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "ca79bb20-be2f-4dda-8d0c-a2b35a146b61", - "metadata": {}, - "outputs": [], - "source": [ - "unique(ligand_target_correlations_filtered$Ligand_Type)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "05b827e4-70f2-4ec4-8431-63e0297df5b9", - "metadata": {}, - "outputs": [], - "source": [ - "length(unique(ligand_target_correlations_filtered$Target)) # amont of target genes" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "a48ec6f7-3c2f-4ce8-a147-7f97766fd7d1", - "metadata": {}, - "outputs": [], - "source": [ - "### Look only on a selected cell type as target" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "df5897b4-2190-4fcf-9ff2-c50b82945e08", - "metadata": {}, - "outputs": [], - "source": [ - "unique(ligand_target_correlations_filtered$Target_Type)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "f0a2e192-7570-4879-afe0-486d876ac260", - "metadata": {}, - "outputs": [], - "source": [ - "target_cluster = 'single_cell_0_X0_T.cell.CD4'" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "e973525d-09da-4be3-9f3e-ad816f7bb969", - "metadata": {}, - "outputs": [], - "source": [ - "ligand_target_correlations_filtered = ligand_target_correlations_filtered[ligand_target_correlations_filtered$Target_Type == target_cluster,]" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "460cfc3c-a2ec-4db3-b09f-1b63fe0c8c0c", - "metadata": {}, - "outputs": [], - "source": [ - "unique(ligand_target_correlations_filtered$Ligand_Type)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "43c4e3f0-a68c-4ee4-9a79-0b8cedddfd2e", - "metadata": {}, - "outputs": [], - "source": [ - "### Summarize target genes of selected type" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "951099ab-547a-4a9b-b48c-6992cea5765e", - "metadata": {}, - "outputs": [], - "source": [ - "targets = unique(ligand_target_correlations_filtered$Target_Gene)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "16b745d5-cdce-4b01-b7c4-21f66d262904", - "metadata": {}, - "outputs": [], - "source": [ - "length(targets)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "5ce5d946-103e-4bf2-b4e1-0ffaa01ecc4b", - "metadata": {}, - "outputs": [], - "source": [ - "### Identify potential expressed transcription factors" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "d1f200b4-ec9b-44d0-bd02-4cc3febaffa8", - "metadata": {}, - "outputs": [], - "source": [ - "amount_tfs = 4" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "43d09723-ce37-4539-81ae-1593edcb67e8", - "metadata": {}, - "outputs": [], - "source": [ - "gene_regulatory_network = weighted_networks$gr" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "c32bbb77-9f48-4524-bfb0-856b747ad6a5", - "metadata": {}, - "outputs": [], - "source": [ - "head(gene_regulatory_network,2)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "eae80d2e-515f-427d-a892-5868b19b76c7", - "metadata": {}, - "outputs": [], - "source": [ - "length(unique(gene_regulatory_network$from))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "d8b8214f-b316-400c-ba59-7db4ddadadb5", - "metadata": {}, - "outputs": [], - "source": [ - "### Only consider transcription factors that might regulate one of the selected targets" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "55ec1659-3b61-4f8b-9787-a84a38555f5f", - "metadata": {}, - "outputs": [], - "source": [ - "nrow(gene_regulatory_network)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "741304ea-2ce1-4d93-99c3-2ed69b06e81f", - "metadata": {}, - "outputs": [], - "source": [ - "gene_regulatory_network = gene_regulatory_network[gene_regulatory_network$to %in% targets,]" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "9594e156-824f-4fa3-baf1-bbc6d117ebf8", - "metadata": {}, - "outputs": [], - "source": [ - "length(unique(gene_regulatory_network$from))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "c2161705-2273-4ed5-8e94-12e1d36efc27", - "metadata": {}, - "outputs": [], - "source": [ - "transcription_factors = unique(weighted_networks$gr$from)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "dc932717-094a-4dac-ba06-92ad1076501d", - "metadata": {}, - "outputs": [], - "source": [ - "nrow(gene_regulatory_network)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "aeae8ef4-464d-436e-a0b5-bc669b101338", - "metadata": {}, - "outputs": [], - "source": [ - "options(repr.plot.width=30, repr.plot.height=5)\n", - "hist(gene_regulatory_network$weight)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "e54acf86-e31a-4015-8f86-e7f711d38bdf", - "metadata": {}, - "outputs": [], - "source": [ - "### Transcription factors need to be expressed in cell-type? - TBD!" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "46841f4b-4b20-4fb5-b058-bdf8be58d813", - "metadata": {}, - "outputs": [], - "source": [ - "#head(data_long,2)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "64826904-da00-42d0-9082-cac6cae66475", - "metadata": {}, - "outputs": [], - "source": [ - "head(data_long)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "064e98f6-2374-4cfb-a3da-b4b445e5b5f0", - "metadata": {}, - "outputs": [], - "source": [ - "data_long$cluster = paste0(data_long$type, '_0_', str_replace(data_long$variable, '__.*', ''))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "38657143-0039-41ff-8370-dfde3fe62c5b", - "metadata": {}, - "outputs": [], - "source": [ - "data_long$cluster[data_long$type != 'single_cell'] = data_long$type[data_long$type != 'single_cell']" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "3e9ec3a5-9946-4aa4-b364-71108eb8c301", - "metadata": {}, - "outputs": [], - "source": [ - "unique(data_long$cluster)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "849fa5a0-9b2c-4182-b1ce-0a452e85d4a6", - "metadata": {}, - "outputs": [], - "source": [ - "target_cluster" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "d2446c82-bdd4-4d0d-b0a6-a08a0a475f04", - "metadata": {}, - "outputs": [], - "source": [ - "unique(data_long$type)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "5e870a38-7777-4d78-abc0-cf2406afa8b4", - "metadata": {}, - "outputs": [], - "source": [ - "expressed_genes = data_long[data_long$cluster == target_cluster,] %>% group_by(type, variable, ident) %>% summarise(mean_expr = mean(value, na.rm = TRUE), var_expression = var(value, na.rm = TRUE))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "ce3547a4-537a-40b3-b56a-c8c4bbbf41f7", - "metadata": {}, - "outputs": [], - "source": [ - "expressed_genes$gene = str_replace(expressed_genes$variable, '.*__', '')" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "f47c4663-7a96-435b-9322-241010e026ec", - "metadata": {}, - "outputs": [], - "source": [ - "head(expressed_genes,2)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "afa0a5a7-5c0d-4f03-8ba3-afe38bbeda65", - "metadata": {}, - "outputs": [], - "source": [ - "nrow(expressed_genes)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "512c58c9-56d4-46cd-b575-6dfc7ac5d851", - "metadata": {}, - "outputs": [], - "source": [ - "length(unique(expressed_genes$gene))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "14c7c967-6a87-4e5f-8515-bdff4dcae312", - "metadata": {}, - "outputs": [], - "source": [ - "head(gene_regulatory_network,2)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "43c62a4c-1941-4ef1-9baa-4569d05beb05", - "metadata": {}, - "outputs": [], - "source": [ - "nrow(gene_regulatory_network)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "9b94a2a5-60bf-4e82-8263-f67f4e4ae052", - "metadata": {}, - "outputs": [], - "source": [ - "gene_regulatory_network = merge(gene_regulatory_network, expressed_genes, by.x = c('from'), by.y = c('gene'))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "2e63c019-7a04-45a9-9095-64f87783d129", - "metadata": {}, - "outputs": [], - "source": [ - "nrow(gene_regulatory_network)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "6187956d-56cd-437d-a7ea-c856911a1188", - "metadata": {}, - "outputs": [], - "source": [ - "head(gene_regulatory_network,2)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "30651479-f052-43bd-bca9-264707ae5f18", - "metadata": {}, - "outputs": [], - "source": [ - "gene_regulatory_network = gene_regulatory_network[,c('from', 'to', 'weight', 'mean_expr')]" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "101e8a5d-ef77-45af-b395-774e2731f78b", - "metadata": {}, - "outputs": [], - "source": [ - "options(repr.plot.width=30, repr.plot.height=5)\n", - "hist(gene_regulatory_network$weight)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "55e38e11-e056-4404-8e6c-c12357951128", - "metadata": {}, - "outputs": [], - "source": [ - "#### Filter on which transcription factors to take for ligand target combination (based on ligand- tf scores and tf-target scores)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "2c371c10-3280-466c-8c9a-ed47032eba82", - "metadata": {}, - "outputs": [], - "source": [ - "colnames(gene_regulatory_network) = c('tf', 'target_gene', 'tf_target_weight', 'mean_expr')" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "602dc8eb-73ab-4da3-a107-d96c74e526ae", - "metadata": {}, - "outputs": [], - "source": [ - "nrow(gene_regulatory_network)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "3452b369-ec25-46fe-88a5-470e1de559d4", - "metadata": {}, - "outputs": [], - "source": [ - "head(gene_regulatory_network)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "a75cd62c-8d3e-4f7e-853b-7f343ff0e368", - "metadata": {}, - "outputs": [], - "source": [ - "ligand_tf_scores = melt(ligand_tf_matrix)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "3ff7b38c-bc36-4dbc-8bd3-c3f87f8c4e1d", - "metadata": {}, - "outputs": [], - "source": [ - "colnames(ligand_tf_scores) = c('tf', 'ligand', 'ligand_tf_score')" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "e9177d29-9492-46c3-9c58-9c13d0f8a357", - "metadata": {}, - "outputs": [], - "source": [ - "head(ligand_tf_scores)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "9dadc1a7-f18b-494f-8b31-345aa38b7227", - "metadata": {}, - "outputs": [], - "source": [ - "length(unique(ligand_tf_scores$ligand))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "88bc66d5-d0ca-4423-a9df-09d3841e61ea", - "metadata": {}, - "outputs": [], - "source": [ - "gene_regulatory_network = merge(gene_regulatory_network, ligand_tf_scores)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "fe768560-92a1-4d12-b032-88abe28b2925", - "metadata": {}, - "outputs": [], - "source": [ - "nrow(gene_regulatory_network)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "65a8bbc0-3970-49ef-8008-5b005ec9c54f", - "metadata": {}, - "outputs": [], - "source": [ - "head(gene_regulatory_network,2)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "56d6864c-6e1c-4528-974d-78c9023dbad8", - "metadata": {}, - "outputs": [], - "source": [ - "### Combine both scores" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "182b3084-943b-47eb-9cde-297635652dcf", - "metadata": {}, - "outputs": [], - "source": [ - "gene_regulatory_network$combined_score = gene_regulatory_network$tf_target_weight * gene_regulatory_network$ligand_tf_score" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "4f7c7399-3a18-4cb8-a722-4d70a039df09", - "metadata": {}, - "outputs": [], - "source": [ - "options(repr.plot.width=30, repr.plot.height=5)\n", - "hist(gene_regulatory_network$combined_score)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "025ea6a9-d253-4f5f-aa93-5b368c91d42d", - "metadata": {}, - "outputs": [], - "source": [ - "### Select top transcription factors per ligand, target combination" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "17aba87f-7cf3-484c-a9e6-83d4b3dfd725", - "metadata": {}, - "outputs": [], - "source": [ - "top_tfs = gene_regulatory_network %>% group_by(ligand, target_gene) %>% top_n(amount_tfs, combined_score)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "e11e106d-70ea-4772-85e5-ffd729486a36", - "metadata": {}, - "outputs": [], - "source": [ - "nrow(top_tfs)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "43051348-5a96-4023-ad83-9bd80ee4b57c", - "metadata": {}, - "outputs": [], - "source": [ - "head(top_tfs)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "933a9085-4bf3-45e1-b997-ebd73987751a", - "metadata": {}, - "outputs": [], - "source": [ - "options(repr.plot.width=30, repr.plot.height=5)\n", - "hist(top_tfs$combined_score)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "21cac84e-f8e4-4704-80b6-e449e39edc0e", - "metadata": {}, - "outputs": [], - "source": [ - "#top_tfs[top_tfs$tf == 'HMGB2',]" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "fc449855-08f3-4148-8f5e-b28b4ad266b4", - "metadata": {}, - "outputs": [], - "source": [ - "#### Filter ligand target correlations on highest correlation and potential" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "4eeea86a-c323-4744-8aac-64d414d869a7", - "metadata": {}, - "outputs": [], - "source": [ - "head(ligand_target_correlations_filtered,2)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "b9f9f4b2-297c-4107-92f8-e62a30d99a87", - "metadata": {}, - "outputs": [], - "source": [ - "nrow(ligand_target_correlations_filtered)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "ffea5e79-5578-4dc5-8f08-365b1dfe742d", - "metadata": {}, - "outputs": [], - "source": [ - "ligand_target_correlations_filtered = head(ligand_target_correlations_filtered[order(abs(ligand_target_correlations_filtered$cor_pot_combined), decreasing = TRUE),], 100)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "dbd5b029-2bec-441b-9a2b-ad3fda78146f", - "metadata": {}, - "outputs": [], - "source": [ - "nrow(ligand_target_correlations_filtered) # afterwards - multiple potential TFS mapped to ligand targets" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "f35d22ef-3804-498a-baf0-46e9cb849a1d", - "metadata": {}, - "outputs": [], - "source": [ - "### Add potential transcription factors to ligand_target_correlations" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "de525f14-bdb4-4b6e-b18d-c1d93793717a", - "metadata": {}, - "outputs": [], - "source": [ - "ligand_tf_targets = merge(ligand_target_correlations_filtered, top_tfs, by.x = c('Target_Gene', 'Ligand_Gene'), by.y = c('target_gene', 'ligand'))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "1d6dbd81-f89c-4425-82ba-094890c168ed", - "metadata": {}, - "outputs": [], - "source": [ - "nrow(ligand_tf_targets)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "f738c9f8-0214-4b6d-934e-38658b35d5c7", - "metadata": {}, - "outputs": [], - "source": [ - "head(ligand_tf_targets,3)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "b9f71c6e-b884-4706-92a0-d397f96ac03a", - "metadata": {}, - "outputs": [], - "source": [ - "ligand_tf_targets$tf_id = paste0(ligand_tf_targets$Target_Type, '__', ligand_tf_targets$tf)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "12d445d8-b1f4-40aa-b584-3e81014beab4", - "metadata": {}, - "outputs": [], - "source": [ - "##### Links" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "d4ed4a85-94c7-4fa3-a367-90eb81bac97c", - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "82d33e1f-0b83-4b43-8abf-c5274be1d86d", - "metadata": {}, - "outputs": [], - "source": [ - "ligand_tf_links = unique(ligand_tf_targets[,c('Ligand', 'tf_id', 'ligand_tf_score')])" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "d64f6dd4-a9bc-4eb5-9718-7ac6dfb8a415", - "metadata": {}, - "outputs": [], - "source": [ - "colnames(ligand_tf_links) = c('from', 'to', 'width')" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "e887e589-0e48-45b3-86e1-fbb05f8510ae", - "metadata": {}, - "outputs": [], - "source": [ - "ligand_tf_links$width = ligand_tf_links$width/ (max(ligand_tf_links$width) - min(ligand_tf_links$width))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "102c65e1-3f4a-41d1-a4b1-d48e0e79c475", - "metadata": {}, - "outputs": [], - "source": [ - "ligand_tf_links$from = paste0(ligand_tf_links$from, '_', 'L')" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "d2bdf0bf-da81-4b23-847c-1e2ad1f7e5b0", - "metadata": {}, - "outputs": [], - "source": [ - "ligand_tf_links$to = paste0(ligand_tf_links$to, '_', 'TF')" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "f744fb93-8854-4cca-aa8c-dcade4f69fd4", - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "f0a22c27-9742-4446-9e68-5f3bd3eec8c1", - "metadata": {}, - "outputs": [], - "source": [ - "tf_target_links = unique(ligand_tf_targets[,c('tf_id', 'Target', 'tf_target_weight')])" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "310d38ab-e341-4342-b79b-39afd71ba3e8", - "metadata": {}, - "outputs": [], - "source": [ - "colnames(tf_target_links) = c('from', 'to', 'width')" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "3368fd2f-1bd2-43a9-b6a8-5dd9ffdc511d", - "metadata": {}, - "outputs": [], - "source": [ - "tf_target_links$width = tf_target_links$width/ (max(tf_target_links$width) - min(tf_target_links$width))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "30a26dc2-0a29-4d21-9638-c5de241f3730", - "metadata": {}, - "outputs": [], - "source": [ - "tf_target_links$from = paste0(tf_target_links$from, '_', 'TF')" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "5a120a63-fa07-45c7-91d1-a68224f13146", - "metadata": {}, - "outputs": [], - "source": [ - "tf_target_links$to = paste0(tf_target_links$to, '_', 'T')" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "8cebfe76-8750-454f-8781-79ec923af97c", - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "519fdd52-739a-439c-938b-a40238c4cb54", - "metadata": {}, - "outputs": [], - "source": [ - "links = rbind( ligand_tf_links, tf_target_links)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "f3015794-f685-4dcc-9f91-ca67e7efcf72", - "metadata": {}, - "outputs": [], - "source": [ - "head(links,2)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "067986d9-ee59-4ccd-9c2b-8d00eddb90d9", - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "e372b934-8e2e-43aa-8a10-1b118cecb28c", - "metadata": {}, - "outputs": [], - "source": [ - "### Set threshold" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "0dada902-df97-46fb-b981-b643785ea4ab", - "metadata": {}, - "outputs": [], - "source": [ - "#### Filter ! -- minimum interaction score in order to display link and nodes\n", - "#links = links[links$width > 2,]" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "bd75a5c6-d40b-492b-9f4f-8a580fe92e13", - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "50147136-02c5-4f02-a48b-c2ce929b7abe", - "metadata": {}, - "outputs": [], - "source": [ - "#### Nodes" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "3341a8c3-09a8-4498-8b1f-6b139d8ba2a3", - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "5ecd411e-a04c-4f5d-8b52-f6fc25a4924d", - "metadata": {}, - "outputs": [], - "source": [ - "ligand_nodes = unique(ligand_tf_targets[,c('Ligand', 'Ligand_Type')])" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "b90cb7d6-d997-4c4a-b96c-3ef4975a8e1f", - "metadata": {}, - "outputs": [], - "source": [ - "colnames(ligand_nodes) = c('id', 'cluster')" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "daf8c0ee-ee2b-4387-acd8-bab73b4e1671", - "metadata": {}, - "outputs": [], - "source": [ - "ligand_nodes$type = 'Ligand'" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "09dbaab3-e0b3-4f51-a077-957bc8d4a09f", - "metadata": {}, - "outputs": [], - "source": [ - "ligand_nodes$id = paste0(ligand_nodes$id, '_', 'L')" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "1a55695f-260c-4724-b100-fef5e657c6d4", - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "35e323e6-49b8-4011-9c55-631e091940dd", - "metadata": {}, - "outputs": [], - "source": [ - "tf_nodes = unique(ligand_tf_targets[,c('tf_id', 'Target_Type')])" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "67b7344b-0d57-4920-97d6-d1c15b5e29cd", - "metadata": {}, - "outputs": [], - "source": [ - "colnames(tf_nodes) = c('id', 'cluster')" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "7b40d7a7-7e6f-46ff-a2ab-161f80f607b6", - "metadata": {}, - "outputs": [], - "source": [ - "tf_nodes$type = 'TF'" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "4a70c28a-9fb8-4831-aa54-f3787899f26a", - "metadata": {}, - "outputs": [], - "source": [ - "tf_nodes$id = paste0(tf_nodes$id, '_', 'TF')" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "389a4725-f3a3-4479-9e82-131d790c6410", - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "e18f78d3-b23a-49e8-92d4-fd69dbf4fc5f", - "metadata": {}, - "outputs": [], - "source": [ - "target_nodes = unique(ligand_tf_targets[,c('Target', 'Target_Type')])" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "94d6e001-83d6-4e89-b6ee-986e958121b4", - "metadata": {}, - "outputs": [], - "source": [ - "colnames(target_nodes) = c('id', 'cluster')" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "f96b742e-b508-4b4d-bc63-e93db194ed17", - "metadata": {}, - "outputs": [], - "source": [ - "target_nodes$type = 'Target'" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "135967f0-99f0-4040-a9aa-0199f5abf920", - "metadata": {}, - "outputs": [], - "source": [ - "target_nodes$id = paste0(target_nodes$id, '_', 'T')" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "8496c2aa-2b36-49f5-aaa2-1350a954adba", - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "394f246d-a957-4df7-82ac-e234a63d716e", - "metadata": {}, - "outputs": [], - "source": [ - "nodes = rbind(ligand_nodes, tf_nodes, target_nodes)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "4399dad0-2e30-49b9-bc1e-165fa6109995", - "metadata": {}, - "outputs": [], - "source": [ - "head(nodes,2)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "1b65348d-b3d1-4fbd-a725-7bfde99f0e39", - "metadata": {}, - "outputs": [], - "source": [ - "nodes$cluster = str_replace(nodes$cluster, 'single_cell_0_', '')" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "5b5edd78-a415-44b2-b94c-880f7ce3a8c9", - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "d07ef8c9-0fb4-48dd-bd2a-34485eb469ad", - "metadata": {}, - "outputs": [], - "source": [ - "nodes$color[nodes$cluster == 'proteomics'] = '#2FE6EC'\n", - "nodes$color[nodes$cluster == 'cytokine'] = '#0E2D9F'\n", - "nodes$color[nodes$cluster == 'neutrophil'] = '#CA580E'\n", - "nodes$color[nodes$cluster %in% c('X0_T.cell.CD4','X11_T.cell.CD4','X2_T.cell.CD4', 'X5_T.cell.CD4') ] = '#E38DE5'\n", - "nodes$color[nodes$cluster %in% c('X4_Monocytes...CD14','X6_Monocytes...CD14','X7_Monocytes...CD14') ] = '#F1E984'\n", - "nodes$color[nodes$cluster %in% c('X10_B.cell','X8_B.cell') ] = '#8C75AD'\n", - "nodes$color[nodes$cluster %in% c('X13_Dendritic') ] = '#E6B17F'\n", - "nodes$color[nodes$cluster %in% c('X1_T.cell.CD8') ] = '#EC349B'\n", - "nodes$color[nodes$cluster %in% c('X12_Monocytes...CD16_FCGR3A','X9_Monocytes...CD16_FCGR3A' ) ] = '#DCF39D'\n", - "nodes$color[nodes$cluster %in% c('X3_NK' ) ] = '#9DB8F3'" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "77f4d4f2-746c-4e32-9ade-53e48b99c774", - "metadata": {}, - "outputs": [], - "source": [ - "unique(nodes$color)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "19b4424d-fc5f-4dd8-aabd-6e2c0d35a636", - "metadata": {}, - "outputs": [], - "source": [ - "nodes$shape = 'dot'" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "0cee55c8-77ab-4d15-a288-ab0fc5b51f9a", - "metadata": {}, - "outputs": [], - "source": [ - "nodes$shape[nodes$type == 'TF'] = 'triangle'" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "410ecdae-db7f-4350-811b-f853731d45d0", - "metadata": {}, - "outputs": [], - "source": [ - "nodes$shape[nodes$type == 'Target'] = 'square'" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "549baa98-fd2e-421a-83b2-51fe649d331f", - "metadata": {}, - "outputs": [], - "source": [ - "head(nodes,2)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "4139f2f8-455c-4c03-ab32-4226ac1499a0", - "metadata": {}, - "outputs": [], - "source": [ - "length(unique(nodes$id))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "0074f320-6b49-4d73-b600-69d5645e8c59", - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "3a501ca6-d7f8-46d2-bc7a-535ec9c61d11", - "metadata": {}, - "outputs": [], - "source": [ - "#nodes$type = TRUE" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "34582b3e-d788-45a7-8870-f3e6ef7f36d7", - "metadata": {}, - "outputs": [], - "source": [ - "#nodes$type[nodes$type == 'Receptor'] = FALSE" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "14812f6c-f841-4079-887c-83663dae3257", - "metadata": {}, - "outputs": [], - "source": [ - "nrow(nodes)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "d277b65e-be41-45b5-bc46-bc97b0b451fb", - "metadata": {}, - "outputs": [], - "source": [ - "nodes[nodes$id == 'single_cell_0_X0_T.cell.CD4__HMGB2',]" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "21c15aac-6530-4f99-ac18-ae94024ab867", - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "2e888ac7-2efb-4e43-995e-2fe5b9b5b011", - "metadata": {}, - "outputs": [], - "source": [ - "#head(nodes)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "77926901-7e33-4f2f-801a-f1e800e1302f", - "metadata": {}, - "outputs": [], - "source": [ - "#### Plot Graph" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "4cf4caf3-bef6-41d8-88ca-050bbe4e3a67", - "metadata": {}, - "outputs": [], - "source": [ - "library('visNetwork')" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "7be356bf-e6bd-4ac6-aef2-b4020ae39659", - "metadata": {}, - "outputs": [], - "source": [ - "graph = visNetwork(nodes, links, width=\"100%\", height=\"800px\") %>% visEdges(arrows = 'to') %>%\n", - " visOptions(highlightNearest = list(enabled = TRUE, degree = 1, labelOnly = FALSE, hover = FALSE, algorithm = 'hierarchical', hideColor = '#0000FF00',labelOnly =TRUE ), \n", - " #selectedBy = list(variable = \"gene\", selected = ligand, style = 'width: 200px; height: 26px;\n", - " # background: #ffffff;\n", - " # color: darkblue;\n", - " # border:none;\n", - " # outline:none;', hideColor = '#0000FF00', highlight = TRUE, multiple = TRUE)\n", - " ) %>%\n", - "\n", - " #nodesIdSelection = list(enabled = TRUE,\n", - " # selected = \"1\",\n", - " # style = 'width: 200px; height: 26px;\n", - " # background: #ffffff;\n", - " # color: darkblue;\n", - " # border:none;\n", - " # outline:none;')) %>%\n", - " #visLayout(randomSeed = 123, improvedLayout = TRUE) %>% \n", - " #visPhysics(enabled =TRUE, stabilization = list(itearations = 100)) %>% \n", - " #visClusteringByGroup(groups = unique(nodes$group), label = 'Grouped: ', color = 'mediumaquamarine', shape = 'triangle') %>% # define which nodes should be collapsed\n", - " #visLegend(addNodes = legend, width = 0.1, position = \"right\", main = \"Type\", useGroups = FALSE) %>% \n", - " visIgraphLayout(layout = 'layout_nicely') # 'layout_with_lgl', #layout_with_fr #layout_nicely #layout_in_circle #layout_on_sphere #layout_as bipartite? #layout_as_tree\n", - "\n", - "visSave(graph, paste0('figures/F_Ligand_Receptors/Ligand_TF_Target_Network_.html'), selfcontained = TRUE, background = \"white\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "e984eadf-4b02-4409-8947-a0699794764c", - "metadata": {}, - "outputs": [], - "source": [] } ], "metadata": { diff --git a/F/F4_2_Ligand_Receptor_Interactions_Visualization.ipynb b/F/F4_2_Ligand_Receptor_Interactions_Visualization.ipynb index 37bd913..1e4acd7 100644 --- a/F/F4_2_Ligand_Receptor_Interactions_Visualization.ipynb +++ b/F/F4_2_Ligand_Receptor_Interactions_Visualization.ipynb @@ -1345,70 +1345,6 @@ "print(file.info(path)$mtime)" ] }, - { - "cell_type": "code", - "execution_count": 32, - "id": "e9655a83-be20-4c67-88ff-10b2e74bcde9", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "
A data.frame: 2 × 30
X.1sample_idsampleidmeasurementlibraryid.ynamereadpatternmeta_datadelta_ef_value_groupdelta_ef_valuedelta_ef_value_classef_classification_dataCKCK_MBTroponinCRPclinical_data
<int><chr><chr><dbl><chr><chr><chr><chr><chr><chr><int><chr><dbl><chr><int><int><chr><dbl><chr><int>
136136m6.4M66.4TP4L14HTO_B02596.4R25PNNNNNNNNNN(BC)1x_smaller_10.875intermediate1590.4581.31
137137m6.4M66.4TP4L10HTO_B02556.4R25PNNNNNNNNNN(BC)1x_smaller_10.875intermediate1590.4581.31
\n" - ], - "text/latex": [ - "A data.frame: 2 × 30\n", - "\\begin{tabular}{r|lllllllllllllllllllll}\n", - " & X.1 & sample\\_id & sample & id & measurement & library & id.y & name & read & pattern & ⋯ & meta\\_data & delta\\_ef\\_value\\_group & delta\\_ef\\_value & delta\\_ef\\_value\\_class & ef\\_classification\\_data & CK & CK\\_MB & Troponin & CRP & clinical\\_data\\\\\n", - " & & & & & & & & & & & ⋯ & & & & & & & & & & \\\\\n", - "\\hline\n", - "\t136 & 136 & m6.4 & M6 & 6.4 & TP4 & L14 & HTO\\_B0259 & 6.4 & R2 & 5PNNNNNNNNNN(BC) & ⋯ & 1 & x\\_smaller\\_1 & 0.875 & intermediate & 1 & 59 & & 0.458 & 1.3 & 1\\\\\n", - "\t137 & 137 & m6.4 & M6 & 6.4 & TP4 & L10 & HTO\\_B0255 & 6.4 & R2 & 5PNNNNNNNNNN(BC) & ⋯ & 1 & x\\_smaller\\_1 & 0.875 & intermediate & 1 & 59 & & 0.458 & 1.3 & 1\\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A data.frame: 2 × 30\n", - "\n", - "| | X.1 <int> | sample_id <chr> | sample <chr> | id <dbl> | measurement <chr> | library <chr> | id.y <chr> | name <chr> | read <chr> | pattern <chr> | ⋯ ⋯ | meta_data <int> | delta_ef_value_group <chr> | delta_ef_value <dbl> | delta_ef_value_class <chr> | ef_classification_data <int> | CK <int> | CK_MB <chr> | Troponin <dbl> | CRP <chr> | clinical_data <int> |\n", - "|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|\n", - "| 136 | 136 | m6.4 | M6 | 6.4 | TP4 | L14 | HTO_B0259 | 6.4 | R2 | 5PNNNNNNNNNN(BC) | ⋯ | 1 | x_smaller_1 | 0.875 | intermediate | 1 | 59 | | 0.458 | 1.3 | 1 |\n", - "| 137 | 137 | m6.4 | M6 | 6.4 | TP4 | L10 | HTO_B0255 | 6.4 | R2 | 5PNNNNNNNNNN(BC) | ⋯ | 1 | x_smaller_1 | 0.875 | intermediate | 1 | 59 | | 0.458 | 1.3 | 1 |\n", - "\n" - ], - "text/plain": [ - " X.1 sample_id sample id measurement library id.y name read\n", - "136 136 m6.4 M6 6.4 TP4 L14 HTO_B0259 6.4 R2 \n", - "137 137 m6.4 M6 6.4 TP4 L10 HTO_B0255 6.4 R2 \n", - " pattern ⋯ meta_data delta_ef_value_group delta_ef_value\n", - "136 5PNNNNNNNNNN(BC) ⋯ 1 x_smaller_1 0.875 \n", - "137 5PNNNNNNNNNN(BC) ⋯ 1 x_smaller_1 0.875 \n", - " delta_ef_value_class ef_classification_data CK CK_MB Troponin CRP\n", - "136 intermediate 1 59 0.458 1.3\n", - "137 intermediate 1 59 0.458 1.3\n", - " clinical_data\n", - "136 1 \n", - "137 1 " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "sample_data[(sample_data$sample_id == 'm6.4'),] " - ] - }, { "cell_type": "code", "execution_count": 33,