diff --git a/assays/canal-1_Phenotyping_2019/dataset/canal-1_yield_data.xlsx b/assays/canal-1_Phenotyping_2019/dataset/canal-1_yield_data.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..04fab0fd8d9f30827bd95147a8a1eede84431b98 --- /dev/null +++ b/assays/canal-1_Phenotyping_2019/dataset/canal-1_yield_data.xlsx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3bc80d6593d3bd97a204ded64ecb2ec569149d38ed14592fe529491647f74221 +size 9944 diff --git a/runs/Met_whole/Bubble_comb.png b/runs/Met_whole/Bubble_comb.png new file mode 100644 index 0000000000000000000000000000000000000000..6c9d248db18ba12059fc519c99e1624341bb4498 Binary files /dev/null and b/runs/Met_whole/Bubble_comb.png differ diff --git a/runs/Met_whole/Combined_bubble_metabolites.RDS b/runs/Met_whole/Combined_bubble_metabolites.RDS new file mode 100644 index 0000000000000000000000000000000000000000..01ead4804f45085c2b90f73716b28adabf5009a0 Binary files /dev/null and b/runs/Met_whole/Combined_bubble_metabolites.RDS differ diff --git a/runs/Met_whole/Heatmap_all.jpg b/runs/Met_whole/Heatmap_all.jpg index cb786e9687adcdec7f20090ccc4c097f15aff446..fdba6da94b86efd6746252d9f57882d37a8dbca3 100644 Binary files a/runs/Met_whole/Heatmap_all.jpg and b/runs/Met_whole/Heatmap_all.jpg differ diff --git a/runs/Met_whole/Heatmap_all_met.RDS b/runs/Met_whole/Heatmap_all_met.RDS index 20d9f3df2d288a0a18e9bd98bbb5f945c2075d14..376214e087b91510c7b2885cd03a160ff1b84b78 100644 Binary files a/runs/Met_whole/Heatmap_all_met.RDS and b/runs/Met_whole/Heatmap_all_met.RDS differ diff --git a/runs/Met_whole/Metaboanalyst_Bubble_WTglB_vs_MUgl.png b/runs/Met_whole/Metaboanalyst_Bubble_WTglB_vs_MUgl.png new file mode 100644 index 0000000000000000000000000000000000000000..47c5d761b0d3aa4c5af663685b3877a88f26dfb9 Binary files /dev/null and b/runs/Met_whole/Metaboanalyst_Bubble_WTglB_vs_MUgl.png differ diff --git a/runs/Met_whole/Metaboanalyst_Bubble_WTglB_vs_MUwl.png b/runs/Met_whole/Metaboanalyst_Bubble_WTglB_vs_MUwl.png new file mode 100644 index 0000000000000000000000000000000000000000..5567d490c5fb8ccdd5a066c95aadefdb09f6a321 Binary files /dev/null and b/runs/Met_whole/Metaboanalyst_Bubble_WTglB_vs_MUwl.png differ diff --git a/runs/Met_whole/Metaboanalyst_bubble_WTglB_vs_MUgl.xlsx b/runs/Met_whole/Metaboanalyst_bubble_WTglB_vs_MUgl.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..25856bfa40e525f1d855907af473d856b5446b35 Binary files /dev/null and b/runs/Met_whole/Metaboanalyst_bubble_WTglB_vs_MUgl.xlsx differ diff --git a/runs/Met_whole/Metaboanalyst_bubble_WTglB_vs_MUwl.xlsx b/runs/Met_whole/Metaboanalyst_bubble_WTglB_vs_MUwl.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..af9f1ac2114d47a4b76ba33cdec1e5e94c2c4879 Binary files /dev/null and b/runs/Met_whole/Metaboanalyst_bubble_WTglB_vs_MUwl.xlsx differ diff --git a/runs/Met_whole/asparagine.png b/runs/Met_whole/asparagine.png index 76c43aba1c1a811f22c7b74b41fa38e042145320..91f5ca98c1bac83b9da07f6111567e324de1d836 100644 Binary files a/runs/Met_whole/asparagine.png and b/runs/Met_whole/asparagine.png differ diff --git a/runs/Met_whole/asparagine_leaves.RDS b/runs/Met_whole/asparagine_leaves.RDS index 28beffc35f1fb4d2f7c087ad1bcadd1621e9a8a5..b7e16b7e058778a44aa6835448f5e1e3a2147af0 100644 Binary files a/runs/Met_whole/asparagine_leaves.RDS and b/runs/Met_whole/asparagine_leaves.RDS differ diff --git a/runs/Met_whole/cana1_gl_pathway_results.csv b/runs/Met_whole/cana1_gl_pathway_results.csv new file mode 100644 index 0000000000000000000000000000000000000000..cba40447cd40e9bdce5060ef4e7bfda893db1363 --- /dev/null +++ b/runs/Met_whole/cana1_gl_pathway_results.csv @@ -0,0 +1,59 @@ +,Total Cmpd,Hits,Raw p,#NAME?,Holm adjust,FDR,Impact +Fructose and mannose metabolism,20,1,0.00029287,3.5333,0.016986,0.016986,0 +"Alanine, aspartate and glutamate metabolism",22,10,0.0010156,2.9933,0.05789,0.023646,0.84892 +Glutathione metabolism,26,7,0.0014774,2.8305,0.082733,0.023646,0.13362 +Cyanoamino acid metabolism,29,6,0.0016307,2.7876,0.089691,0.023646,0.35593 +Selenocompound metabolism,13,1,0.004896,2.3102,0.26438,0.056793,0 +Nitrogen metabolism,12,2,0.006858,2.1638,0.36348,0.057737,0 +Glyoxylate and dicarboxylate metabolism,29,11,0.007169,2.1445,0.37279,0.057737,0.50324 +Aminoacyl-tRNA biosynthesis,46,19,0.0079637,2.0989,0.40615,0.057737,0.11111 +Arginine biosynthesis,18,8,0.0093094,2.0311,0.46547,0.059994,0.34079 +Pyrimidine metabolism,38,3,0.010468,1.9801,0.51293,0.060714,0.05766 +Purine metabolism,63,4,0.011995,1.921,0.57578,0.063248,0.07925 +Arginine and proline metabolism,34,8,0.0155,1.8097,0.72852,0.074919,0.5247 +"Glycine, serine and threonine metabolism",33,8,0.018263,1.7384,0.84011,0.078969,0.60216 +Cysteine and methionine metabolism,46,6,0.019406,1.7121,0.87326,0.078969,0.16135 +Sulfur metabolism,15,3,0.020423,1.6899,0.89862,0.078969,0.10774 +Sphingolipid metabolism,17,1,0.026431,1.5779,1,0.090635,0 +"Valine, leucine and isoleucine biosynthesis",22,6,0.026565,1.5757,1,0.090635,0.10727 +Galactose metabolism,27,7,0.029971,1.5233,1,0.095385,0.29394 +Porphyrin and chlorophyll metabolism,48,1,0.031247,1.5052,1,0.095385,0 +Phosphatidylinositol signaling system,26,2,0.039039,1.4085,1,0.11321,0.03285 +Inositol phosphate metabolism,28,3,0.044463,1.352,1,0.1228,0.12552 +Carbon fixation in photosynthetic organisms,21,5,0.050027,1.3008,1,0.13189,0.10075 +Butanoate metabolism,17,5,0.05963,1.2245,1,0.15037,0.13636 +"Valine, leucine and isoleucine degradation",37,3,0.071051,1.1484,1,0.17171,0 +Glycerophospholipid metabolism,37,2,0.08671,1.0619,1,0.19859,0.09832 +Glycerolipid metabolism,21,4,0.089437,1.0485,1,0.19859,0.02235 +"Phenylalanine, tyrosine and tryptophan biosynthesis",22,4,0.092521,1.0338,1,0.19859,0.1016 +Pantothenate and CoA biosynthesis,23,4,0.095883,1.0183,1,0.19859,0.08423 +Nicotinate and nicotinamide metabolism,13,2,0.099296,1.0031,1,0.19859,0 +Glucosinolate biosynthesis,65,6,0.10452,0.98082,1,0.20206,0 +beta-Alanine metabolism,18,4,0.11245,0.94905,1,0.21039,0.32937 +Monobactam biosynthesis,8,2,0.12424,0.90576,1,0.22518,0 +Ascorbate and aldarate metabolism,18,5,0.1425,0.84619,1,0.2476,0.40299 +Citrate cycle (TCA cycle),20,7,0.14515,0.83819,1,0.2476,0.32413 +Pyruvate metabolism,22,4,0.16038,0.79485,1,0.24955,0.32193 +Phenylalanine metabolism,11,1,0.16098,0.79322,1,0.24955,0.47059 +"Tropane, piperidine and pyridine alkaloid biosynthesis",8,1,0.16098,0.79322,1,0.24955,0 +Lysine biosynthesis,9,3,0.16758,0.77578,1,0.24955,0 +Isoquinoline alkaloid biosynthesis,6,2,0.1678,0.77521,1,0.24955,0.5 +Propanoate metabolism,20,1,0.17295,0.76207,1,0.25078,0 +Starch and sucrose metabolism,22,7,0.33099,0.48019,1,0.46823,0.72431 +Tyrosine metabolism,16,4,0.34913,0.45701,1,0.48214,0.27703 +Lysine degradation,18,3,0.36048,0.44312,1,0.48622,0 +Biosynthesis of secondary metabolites - unclassified,5,1,0.40582,0.39166,1,0.52567,1 +Ubiquinone and other terpenoid-quinone biosynthesis,38,2,0.40785,0.3895,1,0.52567,0.00097 +Histidine metabolism,15,1,0.41804,0.37878,1,0.52709,0.04264 +Phenylpropanoid biosynthesis,46,3,0.46851,0.32928,1,0.57816,0.05295 +Amino sugar and nucleotide sugar metabolism,50,5,0.51068,0.29185,1,0.60855,0.10791 +Fatty acid biosynthesis,56,2,0.51412,0.28894,1,0.60855,0 +Glycolysis / Gluconeogenesis,26,3,0.6327,0.1988,1,0.73393,0.12036 +Pentose and glucuronate interconversions,16,3,0.657,0.18243,1,0.74718,0 +Pentose phosphate pathway,19,1,0.72613,0.13899,1,0.80062,0.11621 +Terpenoid backbone biosynthesis,30,1,0.7316,0.13573,1,0.80062,0 +Thiamine metabolism,22,2,0.7646,0.11657,1,0.82123,0 +Tryptophan metabolism,28,1,0.81944,0.086485,1,0.8487,0.12037 +Indole alkaloid biosynthesis,4,1,0.81944,0.086485,1,0.8487,0 +C5-Branched dibasic acid metabolism,6,2,0.93199,0.030589,1,0.94834,0 +Zeatin biosynthesis,21,2,0.97936,0.0090588,1,0.97936,0 diff --git a/runs/Met_whole/cana1_wl_pathway_results.csv b/runs/Met_whole/cana1_wl_pathway_results.csv new file mode 100644 index 0000000000000000000000000000000000000000..84111004e8bfcae37b3e4f3c4927437b44b05c84 --- /dev/null +++ b/runs/Met_whole/cana1_wl_pathway_results.csv @@ -0,0 +1,59 @@ +,Total Cmpd,Hits,Raw p,#NAME?,Holm adjust,FDR,Impact +Fructose and mannose metabolism,20,1,1.30E-08,7.8867,7.53E-07,7.53E-07,0 +Pantothenate and CoA biosynthesis,23,4,7.69E-08,7.1142,4.38E-06,1.69E-06,0.08423 +"Valine, leucine and isoleucine biosynthesis",22,6,1.18E-07,6.9289,6.60E-06,1.69E-06,0.10727 +Terpenoid backbone biosynthesis,30,1,1.63E-07,6.7886,8.95E-06,1.69E-06,0 +"Valine, leucine and isoleucine degradation",37,3,1.66E-07,6.7811,8.95E-06,1.69E-06,0 +Glucosinolate biosynthesis,65,6,1.75E-07,6.7567,9.28E-06,1.69E-06,0 +Tryptophan metabolism,28,1,2.89E-07,6.539,1.50E-05,2.10E-06,0.12037 +Indole alkaloid biosynthesis,4,1,2.89E-07,6.539,1.50E-05,2.10E-06,0 +Glutathione metabolism,26,7,5.86E-07,6.2319,2.93E-05,3.78E-06,0.13362 +Phosphatidylinositol signaling system,26,2,1.15E-06,5.9387,5.64E-05,6.68E-06,0.03285 +Inositol phosphate metabolism,28,3,2.03E-06,5.6935,9.72E-05,1.07E-05,0.12552 +Sulfur metabolism,15,3,1.08E-05,4.9681,0.00050581,5.20E-05,0.10774 +C5-Branched dibasic acid metabolism,6,2,2.11E-05,4.6765,0.00096885,9.40E-05,0 +Arginine and proline metabolism,34,8,3.60E-05,4.4434,0.0016212,0.00014926,0.5247 +Pyrimidine metabolism,38,3,4.58E-05,4.3393,0.0020144,0.00016923,0.05766 +Glyoxylate and dicarboxylate metabolism,29,11,4.67E-05,4.3308,0.0020144,0.00016923,0.50324 +Nitrogen metabolism,12,2,5.26E-05,4.2794,0.0022072,0.00017929,0 +Purine metabolism,63,4,5.74E-05,4.2409,0.0023544,0.00018504,0.07925 +Tyrosine metabolism,16,4,9.40E-05,4.027,0.0037586,0.00026937,0.27703 +Isoquinoline alkaloid biosynthesis,6,2,9.56E-05,4.0196,0.0037586,0.00026937,0.5 +Ubiquinone and other terpenoid-quinone biosynthesis,38,2,9.75E-05,4.0109,0.0037586,0.00026937,0.00097 +"Phenylalanine, tyrosine and tryptophan biosynthesis",22,4,0.0001319,3.8798,0.0048803,0.00034773,0.1016 +Starch and sucrose metabolism,22,7,0.00033327,3.4772,0.011998,0.00084042,0.72431 +Glycolysis / Gluconeogenesis,26,3,0.00047536,3.323,0.016638,0.0011052,0.12036 +Citrate cycle (TCA cycle),20,7,0.00047637,3.3221,0.016638,0.0011052,0.32413 +Phenylpropanoid biosynthesis,46,3,0.00088182,3.0546,0.0291,0.0018302,0.05295 +Phenylalanine metabolism,11,1,0.00088356,3.0538,0.0291,0.0018302,0.47059 +"Tropane, piperidine and pyridine alkaloid biosynthesis",8,1,0.00088356,3.0538,0.0291,0.0018302,0 +Glycerolipid metabolism,21,4,0.0018387,2.7355,0.05516,0.0036773,0.02235 +Sphingolipid metabolism,17,1,0.0019075,2.7195,0.055316,0.0036878,0 +Propanoate metabolism,20,1,0.0029375,2.532,0.082249,0.0054959,0 +Arginine biosynthesis,18,8,0.003661,2.4364,0.098847,0.0066355,0.34079 +Aminoacyl-tRNA biosynthesis,46,19,0.0047869,2.3199,0.12446,0.0084134,0.11111 +Galactose metabolism,27,7,0.0091016,2.0409,0.22754,0.015526,0.29394 +Butanoate metabolism,17,5,0.0098481,2.0066,0.23635,0.01632,0.13636 +Porphyrin and chlorophyll metabolism,48,1,0.011279,1.9477,0.25942,0.018172,0 +"Alanine, aspartate and glutamate metabolism",22,10,0.017776,1.7502,0.39107,0.027865,0.84892 +Cyanoamino acid metabolism,29,6,0.023478,1.6293,0.49304,0.035835,0.35593 +Lysine degradation,18,3,0.026983,1.5689,0.53967,0.039744,0 +Histidine metabolism,15,1,0.02741,1.5621,0.53967,0.039744,0.04264 +Pentose phosphate pathway,19,1,0.032153,1.4928,0.57875,0.045484,0.11621 +Thiamine metabolism,22,2,0.047944,1.3193,0.81504,0.066208,0 +Selenocompound metabolism,13,1,0.05842,1.2334,0.93472,0.078799,0 +Glycerophospholipid metabolism,37,2,0.06874,1.1628,1,0.090203,0.09832 +Lysine biosynthesis,9,3,0.069985,1.155,1,0.090203,0 +Pyruvate metabolism,22,4,0.078343,1.106,1,0.09878,0.32193 +Amino sugar and nucleotide sugar metabolism,50,5,0.080745,1.0929,1,0.099642,0.10791 +Ascorbate and aldarate metabolism,18,5,0.088924,1.051,1,0.10745,0.40299 +Pentose and glucuronate interconversions,16,3,0.12346,0.90847,1,0.14614,0 +Carbon fixation in photosynthetic organisms,21,5,0.16395,0.7853,1,0.19018,0.10075 +Cysteine and methionine metabolism,46,6,0.21104,0.67563,1,0.23597,0.16135 +beta-Alanine metabolism,18,4,0.21156,0.67456,1,0.23597,0.32937 +"Glycine, serine and threonine metabolism",33,8,0.22696,0.64406,1,0.24837,0.60216 +Nicotinate and nicotinamide metabolism,13,2,0.25348,0.59605,1,0.26781,0 +Monobactam biosynthesis,8,2,0.25396,0.59524,1,0.26781,0 +Biosynthesis of secondary metabolites - unclassified,5,1,0.44773,0.34898,1,0.46372,1 +Fatty acid biosynthesis,56,2,0.50236,0.29899,1,0.51117,0 +Zeatin biosynthesis,21,2,0.81428,0.089227,1,0.81428,0 diff --git a/runs/Met_whole/complete_norm.qs b/runs/Met_whole/complete_norm.qs new file mode 100644 index 0000000000000000000000000000000000000000..cfbff313d9aa44244057a5960528e7f3fda9a2a1 Binary files /dev/null and b/runs/Met_whole/complete_norm.qs differ diff --git a/runs/Met_whole/compound_db.qs b/runs/Met_whole/compound_db.qs new file mode 100644 index 0000000000000000000000000000000000000000..21b880d7bd04e101d01a9527d18079a5550b8220 Binary files /dev/null and b/runs/Met_whole/compound_db.qs differ diff --git a/runs/Met_whole/data_orig.qs b/runs/Met_whole/data_orig.qs new file mode 100644 index 0000000000000000000000000000000000000000..eac70b4d67751c5f54deca0e8768817f3fb548f1 Binary files /dev/null and b/runs/Met_whole/data_orig.qs differ diff --git a/runs/Met_whole/data_proc.qs b/runs/Met_whole/data_proc.qs new file mode 100644 index 0000000000000000000000000000000000000000..cfbff313d9aa44244057a5960528e7f3fda9a2a1 Binary files /dev/null and b/runs/Met_whole/data_proc.qs differ diff --git a/runs/Met_whole/name_map.csv b/runs/Met_whole/name_map.csv new file mode 100644 index 0000000000000000000000000000000000000000..8d8ea26d1ed97308347a6fb9bcf6663b14b76585 --- /dev/null +++ b/runs/Met_whole/name_map.csv @@ -0,0 +1,101 @@ +"Query","Match","HMDB","PubChem","KEGG","SMILES","Comment" +"group","NA","NA","NA","NA","NA","0" +"C00147","Adenine","HMDB0000034","190","C00147","NC1=C2NC=NC2=NC=N1","1" +"C00020","Adenosine monophosphate","HMDB0000045","6083","C00020","NC1=C2N=CN([C@@H]3O[C@H](COP(O)(O)=O)[C@@H](O)[C@H]3O)C2=NC=N1","1" +"C00956","Aminoadipic acid","HMDB0000510","92136","C00956","N[C@@H](CCCC(O)=O)C(O)=O","1" +"C06104","Adipic acid","HMDB0000448","196","C06104","OC(=O)CCCCC(O)=O","1" +"C00041","L-Alanine","HMDB0000161","5950","C00041","C[C@H](N)C(O)=O","1" +"C02512","3-Cyano-L-alanine","METPA0300",NA,"C02512",NA,"1" +"C00099","beta-Alanine","HMDB0000056","239","C00099","NCCC(O)=O","1" +"C00062","L-Arginine","HMDB0000517","6322","C00062","N[C@@H](CCCNC(N)=N)C(O)=O","1" +"C00072","Ascorbic acid","HMDB0000044","54670067","C00072","[H][C@@]1(OC(=O)C(O)=C1O)[C@@H](O)CO","1" +"C00152","L-Asparagine","HMDB0000168","6267","C00152","N[C@@H](CC(N)=O)C(O)=O","1" +"C00049","L-Aspartic acid","HMDB0000191","5960","C00049","N[C@@H](CC(O)=O)C(O)=O","1" +"C00156","4-Hydroxybenzoic acid","HMDB0000500","135","C00156","OC(=O)C1=CC=C(O)C=C1","1" +"C00180","Benzoic acid","HMDB0001870","243","C00180","OC(=O)C1=CC=CC=C1","1" +"C00556","Benzyl alcohol","HMDB0003119","244","C00556","OCC1=CC=CC=C1","1" +"C00334","gamma-Aminobutyric acid","HMDB0000112","119","C00334","NCCCC(O)=O","1" +"C10850","NA","NA","NA","NA","NA","0" +"C10851","Calystegine B2","HMDB0038594","3693124","C10851","OC1C2CCC(O)(N2)C(O)C1O","1" +"C00811","4-Hydroxycinnamic acid","HMDB0002035","637542","C00811","OC(=O)\C=C\C1=CC=C(O)C=C1","1" +"C00158","Citric acid","HMDB0000094","311","C00158","OC(=O)CC(O)(CC(O)=O)C(O)=O","1" +"C01571","Capric acid","HMDB0000511","2969","C01571","CCCCCCCCCC(O)=O","1" +"C00503","Erythritol","HMDB0002994","222285","C00503","OC[C@H](O)[C@H](O)CO","1" +"C21593","NA","NA","NA","NA","NA","0" +"C00189","Ethanolamine","HMDB0000149","700","C00189","NCCO","1" +"C00085","Fructose 6-phosphate","HMDB0000124","69507","C00085","OCC(=O)[C@@H](O)[C@H](O)[C@H](O)COP(O)(O)=O","1" +"C00095","D-Fructose","HMDB0000660","439709","C00095","OC[C@H]1O[C@](O)(CO)[C@@H](O)[C@@H]1O","1" +"C01019","L-Fucose","HMDB0000174","17106","C01019","C[C@@H]1O[C@@H](O)[C@@H](O)[C@H](O)[C@@H]1O","1" +"C00122","Fumaric acid","HMDB0000134","444972","C00122","OC(=O)\C=C\C(O)=O","1" +"C01235","beta-Cortol","HMDB0005821","439451","C01235","[H][C@@]12CC[C@](O)([C@H](O)CO)[C@@]1(C)C[C@H](O)[C@@]1([H])[C@@]2([H])CC[C@]2([H])C[C@H](O)CC[C@]12C","1" +"C01115","NA","NA","NA","NA","NA","0" +"C00333","Galacturonic acid","HMDB0002545","84740","C00333","O[C@@H](C=O)[C@@H](O)[C@@H](O)[C@H](O)C(O)=O","1" +"C00345","6-Phosphogluconic acid","HMDB0001316","91493","C00345","O[C@H](COP(O)(O)=O)[C@@H](O)[C@H](O)[C@@H](O)C(O)=O","1" +"C00103","Glucose 1-phosphate","HMDB0001586","65533","C00103","OC[C@H]1O[C@H](OP(O)(O)=O)[C@H](O)[C@@H](O)[C@@H]1O","1" +"C00092","Glucose 6-phosphate","HMDB0001401","5958","C00092","OC1O[C@H](COP(O)(O)=O)[C@@H](O)[C@H](O)[C@H]1O","1" +"C22350","NA","NA","NA","NA","NA","0" +"C00031","D-Glucose","HMDB0000122","5793","C00031","OC[C@H]1O[C@@H](O)[C@H](O)[C@@H](O)[C@@H]1O","1" +"C00025","Glutamic acid","HMDB0000148","33032","C00025","N[C@@H](CCC(O)=O)C(O)=O","1" +"C00064","Glutamine","HMDB0000641","5961","C00064","N[C@@H](CCC(N)=O)C(O)=O","1" +"C00026","Oxoglutaric acid","HMDB0000208","51","C00026","OC(=O)CCC(=O)C(O)=O","1" +"C00489","Glutaric acid","HMDB0000661","743","C00489","OC(=O)CCCC(O)=O","1" +"C00258","Glyceric acid","HMDB0000139","439194","C00258","OC[C@@H](O)C(O)=O","1" +"C00093","Glycerol 3-phosphate","HMDB0000126","439162","C00093","OC[C@@H](O)COP(O)(O)=O","1" +"C00116","Glycerol","HMDB0000131","753","C00116","OCC(O)CO","1" +"C00037","Glycine","HMDB0000123","750","C00037","NCC(O)=O","1" +"C00160","Glycolate",NA,"3460","C00160",NA,"1" +"C17349","Guanidine","HMDB0001842","3520","C17349","NC(N)=N","1" +"C01040","L-Gulonolactone","HMDB0003466","439373","C01040","[H][C@@]1(OC(=O)[C@@H](O)[C@H]1O)[C@@H](O)CO","1" +"C00135","Histidine","HMDB0000177","6274","C00135","N[C@@H](CC1=CN=CN1)C(O)=O","1" +"C00263","L-Homoserine","HMDB0000719","12647","C00263","N[C@@H](CCO)C(O)=O","1" +"C04006","myo-Inositol 1-phosphate","HMDB0000213",NA,"C04006","O[C@H]1[C@H](O)[C@@H](O)[C@H](OP(O)(O)=O)[C@H](O)[C@@H]1O","1" +"C00137","myo-Inositol","HMDB0000211",NA,"C00137","O[C@H]1[C@H](O)[C@@H](O)[C@H](O)[C@H](O)[C@@H]1O","1" +"C00311","Isocitric acid","HMDB0000193","1198","C00311","OC(C(CC(O)=O)C(O)=O)C(O)=O","1" +"C00407","Isoleucine","HMDB0000172","6306","C00407","CC[C@H](C)[C@H](N)C(O)=O","1" +"C00490","Itaconic acid","HMDB0002092","811","C00490","OC(=O)CC(=C)C(O)=O","1" +"C00186","Lactic acid","HMDB0000190","107689","C00186","C[C@H](O)C(O)=O","1" +"C00123","Leucine","HMDB0000687","6106","C00123","CC(C)C[C@H](N)C(O)=O","1" +"C00047","Lysine","HMDB0000182","5962","C00047","NCCCC[C@H](N)C(O)=O","1" +"C00476","Isocarboxazid","HMDB0015377","3759","C00476","CC1=CC(=NO1)C(=O)NNCC1=CC=CC=C1","1" +"C02612","(R)-2-Methylmalate","METPA0308",NA,"C02612",NA,"1" +"C00149","Malic acid","HMDB0000156","222656","C00149","O[C@@H](CC(O)=O)C(O)=O","1" +"C00185","Cellobiose","HMDB0000055","10712","C00185","OC[C@H]1O[C@@H](O[C@H]2[C@H](O)[C@@H](O)[C@H](O)O[C@@H]2CO)[C@H](O)[C@@H](O)[C@@H]1O","1" +"C00208","D-Maltose","HMDB0000163","10991489","C00208","OC[C@H]1O[C@H](O[C@H]2[C@H](O)[C@H](O)[C@@H](O)O[C@@H]2CO)[C@H](O)[C@@H](O)[C@@H]1O","1" +"C00073","Methionine","HMDB0000696","6137","C00073","CSCC[C@H](N)C(O)=O","1" +"C00253","Nicotinic acid","HMDB0001488","938","C00253","OC(=O)C1=CN=CC=C1","1" +"C01020","6-Hydroxynicotinic acid","HMDB0002658","72924","C01020","OC(=O)C1=CN=C(O)C=C1","1" +"C01601","Pelargonic acid","HMDB0000847","8158","C01601","CCCCCCCCC(O)=O","1" +"C00077","Ornithine","HMDB0000214","6262","C00077","NCCC[C@H](N)C(O)=O","1" +"C01742","NA","NA","NA","NA","NA","0" +"C00079","Phenylalanine","HMDB0000159","6140","C00079","N[C@@H](CC1=CC=CC=C1)C(O)=O","1" +"C00009","Phosphate","HMDB0001429","1004","C00009","OP(O)(O)=O","1" +"C00408","Pipecolic acid","HMDB0000070","849","C00408","OC(=O)C1CCCCN1","1" +"C00148","Proline","HMDB0000162","145742","C00148","OC(=O)[C@@H]1CCCN1","1" +"C01157","4-Hydroxyproline","HMDB0000725","5810","C01157","O[C@H]1CN[C@@H](C1)C(O)=O","1" +"C06468","NA","NA","NA","NA","NA","0" +"C00134","Putrescine","HMDB0001414","1045","C00134","NCCCCN","1" +"C02502","2-Hydroxypyridine","HMDB0013751","8871","C02502","OC1=CC=CC=N1","1" +"C01879","Pyroglutamic acid","HMDB0000267","7405","C01879","OC(=O)[C@@H]1CCC(=O)N1","1" +"C00022","Pyruvic acid","HMDB0000243","1060","C00022","CC(=O)C(O)=O","1" +"C00296","Quinic acid","HMDB0003072","6508","C00296","O[C@@H]1C[C@@](O)(C[C@@H](O)[C@H]1O)C(O)=O","1" +"C00492","Raffinose","HMDB0003213","439242","C00492","OC[C@H]1O[C@@](CO)(O[C@H]2O[C@H](CO[C@H]3O[C@H](CO)[C@H](O)[C@H](O)[C@H]3O)[C@@H](O)[C@H](O)[C@H]2O)[C@@H](O)[C@@H]1O","1" +"C00507","Rhamnose","HMDB0000849","25310","C00507","C[C@@H]1OC(O)[C@H](O)[C@H](O)[C@H]1O","1" +"C00979","O-Acetylserine","HMDB0003011","99478","C00979","CC(=O)OC[C@H](N)C(O)=O","1" +"C00065","Serine","HMDB0000187","5951","C00065","N[C@@H](CO)C(O)=O","1" +"C00493","Shikimic acid","HMDB0003070","8742","C00493","O[C@@H]1CC(=C[C@@H](O)[C@H]1O)C(O)=O","1" +"C00315","Spermidine","HMDB0001257","1102","C00315","NCCCCNCCCN","1" +"C00042","Succinic acid","HMDB0000254","1110","C00042","OC(=O)CCC(O)=O","1" +"C00089","Sucrose","HMDB0000258","5988","C00089","OC[C@H]1O[C@@](CO)(O[C@H]2O[C@H](CO)[C@@H](O)[C@H](O)[C@H]2O)[C@@H](O)[C@@H]1O","1" +"C06424","Myristic acid","HMDB0000806","11005","C06424","CCCCCCCCCCCCCC(O)=O","1" +"C01620","Threonic acid","HMDB0000943","5460407","C01620","OC[C@H](O)[C@@H](O)C(O)=O","1" +"C00188","L-Threonine","HMDB0000167","6288","C00188","C[C@@H](O)[C@H](N)C(O)=O","1" +"C01083","Trehalose","HMDB0000975","7427","C01083","OC[C@H]1O[C@H](O[C@H]2O[C@H](CO)[C@@H](O)[C@H](O)[C@H]2O)[C@H](O)[C@@H](O)[C@@H]1O","1" +"C00078","L-Tryptophan","HMDB0000929","6305","C00078","N[C@@H](CC1=CNC2=C1C=CC=C2)C(O)=O","1" +"C00483","Tyramine","HMDB0000306","5610","C00483","NCCC1=CC=C(O)C=C1","1" +"C00082","L-Tyrosine","HMDB0000158","6057","C00082","N[C@@H](CC1=CC=C(O)C=C1)C(O)=O","1" +"C05422","Dehydroascorbic acid","HMDB0001264","440667","C05422","[H][C@@]1(OC(=O)C(=O)C1=O)[C@@H](O)CO","1" +"C00482","Sinapic acid","HMDB0032616","637775","C00482","COC1=CC(\C=C\C(O)=O)=CC(OC)=C1O","1" +"C00106","Uracil","HMDB0000300","1174","C00106","O=C1NC=CC(=O)N1","1" +"C00086","Urea","HMDB0000294","1176","C00086","NC(N)=O","1" +"C00183","L-Valine","HMDB0000883","6287","C00183","CC(C)[C@H](N)C(O)=O","1" +"C00181","D-Xylose","HMDB0000098","135191","C00181","O[C@@H]1COC(O)[C@H](O)[C@H]1O","1" diff --git a/runs/Met_whole/prenorm.qs b/runs/Met_whole/prenorm.qs new file mode 100644 index 0000000000000000000000000000000000000000..cfbff313d9aa44244057a5960528e7f3fda9a2a1 Binary files /dev/null and b/runs/Met_whole/prenorm.qs differ diff --git a/runs/Met_whole/preproc.qs b/runs/Met_whole/preproc.qs new file mode 100644 index 0000000000000000000000000000000000000000..cfbff313d9aa44244057a5960528e7f3fda9a2a1 Binary files /dev/null and b/runs/Met_whole/preproc.qs differ diff --git a/runs/Met_whole/raw_dataview.csv b/runs/Met_whole/raw_dataview.csv new file mode 100644 index 0000000000000000000000000000000000000000..d0b87c9ef0a4ec5fbebe3b27cb1d8dfacb5fe932 --- /dev/null +++ b/runs/Met_whole/raw_dataview.csv @@ -0,0 +1,51 @@ +"","aliquot_ID","genotype","group","C00147","C00020","C00956","C06104","C00041","C02512","C00099" +"1","B17c","M82","green_leaf_M82",0.517550328266783,0.116297314385273,0.521565529098574,0.753867050446336,0.912389041443362,0.498391615702464,0.587732847033946 +"2","I05b","M82","green_leaf_M82",0.873197488141036,0.673488910735222,0.65133049828935,0.91454982019302,1.09606248301126,2.02933958337809,0.67000572421169 +"3","B05b","M82","green_leaf_M82",0.893863818037196,1.26603937004449,0.881668671004367,0.871399471536548,0.501880672476331,0.356120883168139,1.00876931959325 +"4","B17a","M82","green_leaf_M82",0.772333326603507,1.33401993755097,0.882331492905826,1.0129234705862,1.1120760489314,0.222983955208823,0.40236443457727 +"5","I06c","M82","green_leaf_M82",0.895739751006669,0.482208152992893,1.78263474524841,1.1734645281022,1.34804718755421,0.339719755337666,1.01419731819396 +"6","B06c","M82","green_leaf_M82",0.971279446981424,1.01449164952299,1.03253289474338,0.97692408074514,1.52166119301564,1.99717591134928,1.10362364221421 +"7","B06b","M82","green_leaf_M82",1.22139206948076,1.23024382217404,0.958739470886406,0.91222580911007,1.60465544060946,0.611845666274938,1.58021319970939 +"8","B11d","CANA1","green_leaf_CANA1",0.69605674587893,0.499725225926165,1.9392905628835,1.31336198336717,4.43005543951608,0.542494456871184,2.10304399387154 +"9","B14d","CANA1","green_leaf_CANA1",1.28296341670762,1.28447407502476,2.01194828743908,0.732881032419114,2.3918031379216,0.615742450303569,1.37280044279856 +"10","B12d","CANA1","green_leaf_CANA1",1.27000451234034,1.062606338981,2.37949215854601,1.03092785678314,3.37909302787288,1.04125619572873,1.56514262657594 +"11","B14a","CANA1","green_leaf_CANA1",0.707724435475351,0.834295885197712,0.935511810800953,1.45020749741446,2.91525725632371,1.22873072521149,1.90914374971176 +"12","B11c","CANA1","green_leaf_CANA1",0.885808267268499,0.632382949783313,0.958181099496651,1.56461542956252,4.04787074457592,0.721210335251307,1.61250812810363 +"13","B13d","CANA1","green_leaf_CANA1",1.10797805549254,0.73313059148844,2.05892840765958,0.897724636559396,2.19203314759952,1.29258322434074,1.53890222647633 +"14","I01c","CANA1","green_leaf_CANA1",1.19801089748378,1.95408109445323,1.60908994717651,0.923904120926657,3.38442487050826,0.547369766234931,1.59852928268639 +"15","2131598","M82","green_leaf_M82",0.285637304125361,0.198976739417061,0.680199804224252,0.726288802830615,0.357249250884837,0.441014925745586,0.414670336248597 +"16","2131600","M82","green_leaf_M82",0.130548405094935,0.62439029004948,0.489224559664597,1.40388809622427,0.317752149705409,0.730727539481527,2.62531432381745 +"17","2131596","M82","green_leaf_M82",0.285647485279867,0.290496753697845,0.73623828931482,1.03700941560192,1.34171635242358,1.4851255463651,1.06821983145755 +"18","2131599","M82","green_leaf_M82",0.611379867760303,2.67912911011042,3.5391936696865,2.76068612318482,1.27003553082329,3.99001036002593,3.21339813019689 +"19","2131597","M82","green_leaf_M82",2.95496142899016,0.618283091911722,1.36648501101274,1.12802001065491,1.31168014093896,1.5403867522058,0.916333574610609 +"20","2131609","CANA1","green_leaf_CANA1",1.23971093429929,0.962340463192019,0.270940678046416,4.55384429180132,0.149917378814419,13.637467964092,3.00960613589722 +"21","2131614","CANA1","green_leaf_CANA1",0.0160465378708477,0.153582005764058,1.39822933290782,1.18287684472437,2.41878578201321,8.70931463188714,2.23837410131661 +"22","2131610","CANA1","green_leaf_CANA1",0.337514679110327,0.28434147074013,0.620751590997593,0.891344145132462,2.47888276439447,2.92002389072043,1.77142589683725 +"23","2131620","CANA1","green_leaf_CANA1",0.269696886394736,0.0798384367918847,2.82141992314034,4.24096210827602,3.63923751210769,3.61708186204113,3.16054735156469 +"24","2131618","CANA1","green_leaf_CANA1",0.641097779732855,0.178517174009216,2.01573317415472,0.330825212877157,5.04533063598459,8.71872015415802,3.86739251117153 +"25","2131619","CANA1","green_leaf_CANA1",0.299403600988385,0.584013953826422,1.83722033682475,0.308217062211498,1.69128502457248,9.31406527453619,3.01036334920338 +"26","2131607","CANA1","green_leaf_CANA1",0.861752946359618,0.13264883768304,1.33301681447253,1.01399799342866,3.66971622704291,2.16735074348903,2.37462396264922 +"27","2131624","CANA1","green_leaf_CANA1",0.161479461188589,0.303197838781484,0.0494786874564523,1.66166242312318,1.90863447956696,5.02030626829994,1.46910366810027 +"28","2131621","CANA1","green_leaf_CANA1",0.341383738538429,1.15479348780799,0.0465358498044521,1.92228113434499,2.16165667343194,5.67219953334222,1.83255550575552 +"29","2131616","CANA1","green_leaf_CANA1",3.39902261006722,0.892248748225491,0.204342593894141,1.21995187357204,3.243161607097,4.76404302931545,3.15072465316875 +"30","2131617","CANA1","green_leaf_CANA1",0.263855394129024,1.28771446821961,1.05349043309771,1.135646426507,2.95926918273782,17.1181473364575,1.37131793645265 +"31","2131611","CANA1","green_leaf_CANA1",0.325341221692356,2.77728081929329,0.169648111394139,0.14225567818867,13.0955698535466,17.4140762294029,3.74631938400485 +"32","2131606","CANA1","green_leaf_CANA1",0.633935763645125,0.353007053368199,0.509979519583682,0.769123526007729,4.86113426568836,2.82100310837478,1.39908764264347 +"33","2131608","CANA1","green_leaf_CANA1",0.328514751201363,1.69641401464218,0.0828447874047525,1.9150328790548,0.0253197502828897,4.1606140176022,3.11020599745003 +"34","2131623","CANA1","green_leaf_CANA1",1.10646621332473,0.938525493665886,1.66346926998438,0.589695370850272,5.19163027209168,2.42444724353202,4.0559949613617 +"35","2131625","CANA1","green_leaf_CANA1",0.676219131267936,0.589074911245405,0.174692367740808,0.879796031517418,6.40757742019373,5.66335368751813,2.70077573781844 +"36","2131612","CANA1","green_leaf_CANA1",13.1490392620276,4.21086969571993,11.304734322256,9.71642593916786,10.6960638778318,12.4766938300322,7.23398217597849 +"37","2131622","CANA1","green_leaf_CANA1",0.0968303306794077,0.143726006204678,2.89475075180171,0.518999108606748,8.25328572236853,8.06846260105493,1.9740110123636 +"38","2227165","M82","green_leaf_M82",4.24810412745876,4.66381083257834,0.420773085670529,0.835830141796583,2.48362968134026,0.510146603295017,0.403557441755876 +"39","2227708","M82","green_leaf_M82",0.267587704444878,0.451080821857624,0.527385260568216,0.415260770286742,0.139730796228183,0.327851193472368,0.138028743315106 +"40","2227164","M82","green_leaf_M82",0.917113129179661,0.242945736173811,1.10498036191397,0.748032694502448,0.258577334092478,0.559139740866802,0.413715565228398 +"41","2227167","M82","green_leaf_M82",0.1536643191487,0.11409746679781,0.424716655768071,0.329629714198175,0.422856696521339,0.360019968122469,0.439855567835805 +"42","2227183","CANA1","green_leaf_CANA1",0.0573009532640558,1.93196007013482,1.21909963607767,0.474821598936868,0.561854615410136,0.724678386257927,1.30179090650046 +"43","2227172","CANA1","green_leaf_CANA1",1.11732576854196,0.58691021378005,1.48000155219887,0.020562833255018,0.393395933317842,11.1687133715111,1.02423836254977 +"44","2227177","CANA1","green_leaf_CANA1",0.245890718834525,1.0428653701969,0.221088431094138,0.714938518760093,0.227330674470048,1.88120187453601,0.39155791040523 +"45","2227176","CANA1","green_leaf_CANA1",0.492568923853148,0.821789617621,0.734091982758946,1.82614546685926,0.270591871737609,0.865329016682951,0.439786909372301 +"46","2227182","CANA1","green_leaf_CANA1",0.21390231442955,0.807063482511505,1.96661289283662,0.37342217500698,1.53171960407979,0.479772852860241,0.464766391973201 +"47","2227173","CANA1","green_leaf_CANA1",0.0172011140676406,0.414995789948616,0.0130756958741895,0.195816199292027,0.0508198103733565,0.404325773381279,0.262885116308655 +"48","2227174","CANA1","green_leaf_CANA1",0.474732332334937,0.595592179962751,2.40424548845806,0.209176946775961,5.39796343410305,0.0399933376787281,0.827465649307349 +"49","2227186","CANA1","green_leaf_CANA1",0.105494683300382,0.27956095951952,0.496406637076318,0.144465643272226,0.244777500815178,0.340212771603715,0.451476803166359 +"50","2227170","CANA1","green_leaf_CANA1",0.291795158345364,1.23892356532495,0.811418298964994,0.803567641282244,0.775606859823324,0.201954017803061,0.676292780152962 diff --git a/runs/Met_whole/row_norm.qs b/runs/Met_whole/row_norm.qs new file mode 100644 index 0000000000000000000000000000000000000000..cfbff313d9aa44244057a5960528e7f3fda9a2a1 Binary files /dev/null and b/runs/Met_whole/row_norm.qs differ diff --git a/runs/Met_whole/tosend.rds b/runs/Met_whole/tosend.rds new file mode 100644 index 0000000000000000000000000000000000000000..504fabeb64efe845a4f5502e51691eb5bad7ab83 Binary files /dev/null and b/runs/Met_whole/tosend.rds differ diff --git a/studies/canal-1_2017_GH/resources/Labels.xlsx b/studies/canal-1_2017_GH/resources/Labels.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..1c0731f37dbd77f73703aef46766b8cb37c3fe6a Binary files /dev/null and b/studies/canal-1_2017_GH/resources/Labels.xlsx differ diff --git a/workflows/Met_whole/Met_whole.R b/workflows/Met_whole/Met_whole.R index 8d451cffa6853a33f6a98dee92f386cb23ebb6b5..be4ff2132d616baba4388260955ca334a7c47b99 100644 --- a/workflows/Met_whole/Met_whole.R +++ b/workflows/Met_whole/Met_whole.R @@ -11,6 +11,8 @@ library(viridis) library(car) library(broom) library(here) +library(ggrepel) +library(openxlsx) # Directory setting ------------------------------------------------------- @@ -49,7 +51,7 @@ metdat_GC_class <- readxl::read_xlsx(here(dat_in, isa_tidy <- read_csv(here(prim_source, "isa_tidy.csv")) %>% distinct(source_name_study, tissue_group, year, leaf_col, genotype, treatment, - genotype_alt, tissue, group) + genotype_alt, tissue, group, sample_name_study) fc_1_prim <- read_csv(here(prim_source, "mean_values_se_n.csv")) %>% select(-Compound_Class) %>% @@ -95,7 +97,8 @@ fc_1_ind_sec <- read_csv(here(sec_source, "individual_values.csv")) %>% "tissue_group", "sample_name_study")) %>% left_join(plot_label, by = c("genotype_alt" = "geno", - "tissue" = "tissue_label")) + "tissue" = "tissue_label")) %>% + rename(aliquot_ID = source_name_study) sig_sec <- read_csv(here(sec_source, "p_values.csv")) @@ -109,7 +112,15 @@ lip_met <- read_csv(here(lip_source, "metabolitedata_lipids.csv")) %>% fc_1_lip <- read_csv(here(lip_source, "mean_values_se_n.csv")) %>% left_join(lip_met) -fc_1_ind_lip <- read_csv(here(lip_source, "individual_values.csv")) +fc_1_ind_lip <- read_csv(here(lip_source, "individual_values.csv")) %>% + select(-group) %>% + left_join(isa_tidy_lc, by = c("tissue", + "treatment", + "genotype", + "tissue_group", + "aliquot_ID" = "source_name_study")) %>% + left_join(plot_label, by = c("genotype_alt" = "geno", + "tissue" = "tissue_label")) sig_lip <- read_csv(here(lip_source, "p_values.csv")) @@ -287,7 +298,7 @@ ggsave(plot = heat_all, units = "cm", dpi = 300) -if(!is.null(dev.cur())){ +if(!dev.cur() == 1){ dev.off() } @@ -409,165 +420,176 @@ ggsave(plot = p1, here(out, "asparagine.png"), saveRDS(p1, here(out, "asparagine_leaves.RDS")) -# MetaboanalystR ---------------------------------------------------------- - -fc_1 <- read_csv(here(analysis, "mean_values_se_n.csv")) %>% - mutate(genotype = fct_relevel(genotype, wt)) - -genotypes <- fc_1 %>% - distinct(alias, genotype) - -fc_1_ind <- read_csv(here(analysis,"individual_values.csv")) %>% - mutate(genotype = fct_relevel(genotype, wt)) - -sig_GC <- read_csv(here(analysis,"p_values.csv")) #%>% - -maf <- readxl::read_xlsx("H:/3. cmQTL mapping/Shared_source_files/Primary_metabolites_classification_MWA.xlsx") - -met_dat <- fc_1 %>% - distinct(met, Compound_Name, Compound_Class, component) - -genotypes <- fc_1 %>% - distinct(alias, genotype) - -#think of way to select best features for analysis -skip = T -if(skip == T) { -} else{ - -} - -pathqea <- function(wt = "M82", - geno_path, - col_path, - tiss_path, - group_path){ - - comp <- str_c(geno_path, col_path, tiss_path, sep = "_") - - sig_kegg <- fc_1 %>% - separate(tissue, into = c("leaf_col", "tissue"), sep = 5) %>% - mutate(group = as_factor(str_c(leaf_col, tissue, genotype, sep = "_"))) %>% - ungroup() %>% - filter(group %in% group_path, !is.na(component), treatment == "control") %>% - #left_join(metdat_GC_class, by = c("component" = "Xcal_name_xreport")) #%>% - pivot_wider(id_cols = c(KEGG_ID_ChEBI_mapped, met), - names_from = group, - values_from = mean_fc) %>% - filter(!is.na(KEGG_ID_ChEBI_mapped)) %>% - rowwise() %>% - mutate(total_change = sum(abs(c_across(where(is.numeric))))) %>% - group_by(KEGG_ID_ChEBI_mapped) %>% - mutate(rank = rank(-total_change, ties.method = "first")) %>% - filter(rank == 1) - - conc_tab <- fc_1_ind %>% - separate(tissue, into = c("leaf_col", "tissue"), sep = 5) %>% - select(-Compound_Name) %>% - left_join(met_dat) %>% - mutate(group = as_factor(str_c(leaf_col, tissue, genotype, sep = "_"))) %>% - ungroup() %>% - filter(group %in% group_path, !is.na(component), treatment == "control") %>% - left_join(metdat_GC_class, by = c("component" = "Xcal_name_xreport")) %>% - filter(!is.na(KEGG_ID_ChEBI_mapped), met %in% sig_kegg$met) %>% - #group_by(KEGG_ID_ChEBI_mapped) %>% - #mutate(rank_fc = -rank(abs(fc)), - # rank_p = rank(p.value), - # rank_c = rank_fc + rank_p, - # rank_rank = rank(rank_c, ties.method = "average"), - # rank_rank = if_else(rank_rank%%1 != 0, rank_p, rank_rank)) %>% - #ungroup() %>% - #filter(rank_rank == 1) %>% - #distinct(KEGG_ID_ChEBI_mapped, LIMS_ID, tissue, treatment, genotype, .keep_all = T) %>% - pivot_wider(id_cols = c(aliquot_ID, genotype, group), - names_from = KEGG_ID_ChEBI_mapped, - values_from = fc) %>% - as.data.frame() - - write_csv(conc_tab, here(out, "ma_concentration_table.csv")) - - # Enrichment -------------------------------------------------------------- - - mSet <- NULL - # Create vector consisting of compounds for enrichment analysis - #tmp.vec <- c("Acetoacetic acid", "Beta-Alanine", "Creatine", "Dimethylglycine", "Fumaric acid", "Glycine", "Homocysteine", "L-Cysteine", "L-Isolucine", "L-Phenylalanine", "L-Serine", "L-Threonine", "L-Tyrosine", "L-Valine", "Phenylpyruvic acid", "Propionic acid", "Pyruvic acid", "Sarcosine") - # Create mSetObj for storing objects created during your analysis - anal.type <- "pathqea" - mSet<-InitDataObjects(data.type = "conc", anal.type = "pathqea", paired = FALSE) - mSet <- Read.TextData(mSetObj = mSet, filePath = here(out, "ma_concentration_table.csv"), format = "rowu", lbl.type = "disc") - # Set up mSetObj with the list of compounds - #mSet<-Setup.MapData(mSet, conc_tab); - # Cross reference list of compounds against libraries (hmdb, pubchem, chebi, kegg, metlin) - mSet<-CrossReferencing(mSetObj = mSet, q.type = "kegg", lipid = F); - # Creates a mapping result table; shows HMDB, KEGG, PubChem, etc. IDs - # Saved as "name_map.csv" or can be found in mSet$dataSet$map.table - # Compounds with no hits will contain NAs across the columns - mSet<-CreateMappingResultTable(mSet); - # From the mapping result table, L-Isolucine has no matches - # Now, perform potential matching with our database against this compound - #mSet<-PerformDetailMatch(mSet, "L-Isolucine"); - # Get list of candidates for matching - # Results are found in mSet$name.map$hits.candidate.list - #mSet<-GetCandidateList(mSet); - # Replace L-Isolucine with selected compound (L-Isoleucine) - #mSet<-SetCandidate(mSet, "L-Isolucine", "L-Isoleucine"); - # Select the pathway library, ranging from mammals to prokaryotes - # Note the third parameter, where users need to input the KEGG pathway version. - - 1 - mSet<-SanityCheckData(mSet) - mSet<-ReplaceMin(mSet) - mSet<-PreparePrenormData(mSet) - mSet<-Normalization(mSet, "NULL", "NULL", "NULL") - - # Use "current" for the latest KEGG pathway library or "v2018" for the KEGG pathway library version prior to November 2019. - mSet<-SetKEGG.PathLib(mSet, "ath", "current") - # Set the metabolite filter - # Default set to false - mSet<-SetMetabolomeFilter(mSet, T); - # Calculate the over representation analysis score, here we selected to use the hypergeometric test (alternative is Fisher's exact test) - # A results table "pathway_results.csv" will be created and found within your working directory - api.base <- "http://api.xialab.ca" - mSet<-CalculateQeaScore(mSetObj = mSet, nodeImp = "rbc", "gt") - # Plot of the Pathway Analysis Overview - #mSet<-PlotPathSummary(mSet, show.grid = T, "path_view_0_", "png", dpi = 72, width=NA) - # Plot a specific metabolic pathway, in this case "Glycine, serine and threonine metabolism" - #mSet<-PlotKEGGPath(mSet, "Glycine, serine and threonine metabolism",528, 480, "png") - - paths <- tibble("pathway ID" = mSet$analSet$path.ids, - pathway = mSet$analSet$path.nms) - - mapped_cpds <- tibble("pathway ID" = names(mSet$analSet$qea.hits), - hits = map(mSet$analSet$qea.hits, - .f = ~tibble(Compound = names(.x), - KEGG = .x))) %>% - unnest(cols = c("pathway ID", hits)) %>% - left_join(paths) - - path_res <- read_csv("pathway_results.csv", - col_names = c("pathway", - "total compounds", - "hits", "p-values", - "-log10(p)", - "holm", - "FDR", - "impact"), - skip = 1) %>% - left_join(paths) %>% - mutate(ratio = hits/`total compounds`, - `-log10(p)` = -log10(`p-values`)) %>% - select("pathway ID", "pathway", ratio, "total compounds", "hits", "p-values", "-log10(p)", "holm", "FDR", "impact") - - wb <- createWorkbook() - addWorksheet(wb, "Pathway results") - addWorksheet(wb, "Mapped Compounds") - writeDataTable(wb, sheet = 1, x = path_res) - writeDataTable(wb, sheet = 2, x = mapped_cpds) - write.xlsx(list(path_res, mapped_cpds), - here(out, str_c(comp, "pathway_results.xlsx", sep = "_"))) -} - - +# # MetaboanalystR ---------------------------------------------------------- +# #currently defunct/browser utility used +# #not recommended for further usage until stable +# library(MetaboAnalystR) +# +# # fc_1 <- read_csv(here(analysis, "mean_values_se_n.csv")) %>% +# # mutate(genotype = fct_relevel(genotype, wt)) +# # +# # genotypes <- fc_1 %>% +# # distinct(alias, genotype) +# # +# # fc_1_ind <- read_csv(here(analysis,"individual_values.csv")) %>% +# # mutate(genotype = fct_relevel(genotype, wt)) +# # +# # sig_GC <- read_csv(here(analysis,"p_values.csv")) #%>% +# # +# # maf <- readxl::read_xlsx("H:/3. cmQTL mapping/Shared_source_files/Primary_metabolites_classification_MWA.xlsx") +# # +# # met_dat <- fc_1 %>% +# # distinct(met, Compound_Name, Compound_Class, component) +# # +# # genotypes <- fc_1 %>% +# # distinct(alias, genotype) +# +# #think of way to select best features for analysis +# skip = T +# if(skip == T) { +# } else{ +# +# } +# +# #for test +# geno_path <- "CANA1" +# col_path <- c("green", "white") +# tiss_path <- "leaf" +# group_path <- c("green_leaf_CANA1", "green_leaf_M82") +# +# pathqea <- function(wt = "M82", +# geno_path, +# col_path, +# tiss_path, +# group_path){ +# +# comp <- str_c(geno_path, col_path, tiss_path, sep = "_") +# +# sig_kegg <- fc_1 %>% +# separate(tissue, into = c("leaf_col", "tissue"), sep = 5) %>% +# mutate(group = as_factor(str_c(leaf_col, tissue, genotype, sep = "_"))) %>% +# ungroup() %>% +# filter(group %in% group_path, !is.na(component), treatment == "control") %>% +# #left_join(metdat_GC_class, by = c("component" = "Xcal_name_xreport")) #%>% +# pivot_wider(id_cols = c(KEGG_ID_ChEBI_mapped, met), +# names_from = group, +# values_from = mean_fc) %>% +# filter(!is.na(KEGG_ID_ChEBI_mapped)) %>% +# rowwise() %>% +# mutate(total_change = sum(abs(c_across(where(is.numeric))))) %>% +# group_by(KEGG_ID_ChEBI_mapped) %>% +# mutate(rank = rank(-total_change, ties.method = "first")) %>% +# filter(rank == 1) +# +# conc_tab <- fc_1_ind %>% +# separate(tissue, into = c("leaf_col", "tissue"), sep = 5) %>% +# select(-Compound_Name) %>% +# left_join(met_dat) %>% +# mutate(group = as_factor(str_c(leaf_col, tissue, genotype, sep = "_"))) %>% +# ungroup() %>% +# filter(group %in% group_path, !is.na(component), treatment == "control") %>% +# left_join(metdat_GC_class, by = c("component" = "Xcal_name_xreport")) %>% +# filter(!is.na(KEGG_ID_ChEBI_mapped), met %in% sig_kegg$met) %>% +# #group_by(KEGG_ID_ChEBI_mapped) %>% +# #mutate(rank_fc = -rank(abs(fc)), +# # rank_p = rank(p.value), +# # rank_c = rank_fc + rank_p, +# # rank_rank = rank(rank_c, ties.method = "average"), +# # rank_rank = if_else(rank_rank%%1 != 0, rank_p, rank_rank)) %>% +# #ungroup() %>% +# #filter(rank_rank == 1) %>% +# #distinct(KEGG_ID_ChEBI_mapped, LIMS_ID, tissue, treatment, genotype, .keep_all = T) %>% +# pivot_wider(id_cols = c(aliquot_ID, genotype, group), +# names_from = KEGG_ID_ChEBI_mapped, +# values_from = fc) %>% +# as.data.frame() +# +# write_csv(conc_tab, here(out, "ma_concentration_table.csv")) +# +# # Enrichment -------------------------------------------------------------- +# +# #setwd(here(out)) +# +# mSet <- NULL +# # Create vector consisting of compounds for enrichment analysis +# #tmp.vec <- c("Acetoacetic acid", "Beta-Alanine", "Creatine", "Dimethylglycine", "Fumaric acid", "Glycine", "Homocysteine", "L-Cysteine", "L-Isolucine", "L-Phenylalanine", "L-Serine", "L-Threonine", "L-Tyrosine", "L-Valine", "Phenylpyruvic acid", "Propionic acid", "Pyruvic acid", "Sarcosine") +# # Create mSetObj for storing objects created during your analysis +# anal.type <- "pathqea" +# mSet<-InitDataObjects(data.type = "conc", anal.type = "pathqea", paired = FALSE) +# mSet <- Read.TextData(mSetObj = mSet, filePath = here(out, "ma_concentration_table.csv"), format = "rowu", lbl.type = "disc") +# # Set up mSetObj with the list of compounds +# #mSet<-Setup.MapData(mSet, conc_tab); +# # Cross reference list of compounds against libraries (hmdb, pubchem, chebi, kegg, metlin) +# mSet<-CrossReferencing(mSetObj = mSet, q.type = "kegg", lipid = F); +# # Creates a mapping result table; shows HMDB, KEGG, PubChem, etc. IDs +# # Saved as "name_map.csv" or can be found in mSet$dataSet$map.table +# # Compounds with no hits will contain NAs across the columns +# mSet<-CreateMappingResultTable(mSet); +# # From the mapping result table, L-Isolucine has no matches +# # Now, perform potential matching with our database against this compound +# #mSet<-PerformDetailMatch(mSet, "L-Isolucine"); +# # Get list of candidates for matching +# # Results are found in mSet$name.map$hits.candidate.list +# #mSet<-GetCandidateList(mSet); +# # Replace L-Isolucine with selected compound (L-Isoleucine) +# #mSet<-SetCandidate(mSet, "L-Isolucine", "L-Isoleucine"); +# # Select the pathway library, ranging from mammals to prokaryotes +# # Note the third parameter, where users need to input the KEGG pathway version. +# +# 1 +# mSet<-SanityCheckData(mSet) +# mSet<-ReplaceMin(mSet) +# mSet<-PreparePrenormData(mSet) +# mSet<-Normalization(mSet, "NULL", "NULL", "NULL") +# +# # Use "current" for the latest KEGG pathway library or "v2018" for the KEGG pathway library version prior to November 2019. +# mSet<-SetKEGG.PathLib(mSet, "ath", "current") +# # Set the metabolite filter +# # Default set to false +# mSet<-SetMetabolomeFilter(mSet, T); +# # Calculate the over representation analysis score, here we selected to use the hypergeometric test (alternative is Fisher's exact test) +# # A results table "pathway_results.csv" will be created and found within your working directory +# api.base <- "http://api.xialab.ca" +# mSet<-CalculateQeaScore(mSetObj = mSet, nodeImp = "rbc", "gt") +# # Plot of the Pathway Analysis Overview +# #mSet<-PlotPathSummary(mSet, show.grid = T, "path_view_0_", "png", dpi = 72, width=NA) +# # Plot a specific metabolic pathway, in this case "Glycine, serine and threonine metabolism" +# #mSet<-PlotKEGGPath(mSet, "Glycine, serine and threonine metabolism",528, 480, "png") +# +# paths <- tibble("pathway ID" = mSet$analSet$path.ids, +# pathway = mSet$analSet$path.nms) +# +# mapped_cpds <- tibble("pathway ID" = names(mSet$analSet$qea.hits), +# hits = map(mSet$analSet$qea.hits, +# .f = ~tibble(Compound = names(.x), +# KEGG = .x))) %>% +# unnest(cols = c("pathway ID", hits)) %>% +# left_join(paths) +# +# path_res <- read_csv("pathway_results.csv", +# col_names = c("pathway", +# "total compounds", +# "hits", "p-values", +# "-log10(p)", +# "holm", +# "FDR", +# "impact"), +# skip = 1) %>% +# left_join(paths) %>% +# mutate(ratio = hits/`total compounds`, +# `-log10(p)` = -log10(`p-values`)) %>% +# select("pathway ID", "pathway", ratio, "total compounds", "hits", "p-values", "-log10(p)", "holm", "FDR", "impact") +# +# wb <- createWorkbook() +# addWorksheet(wb, "Pathway results") +# addWorksheet(wb, "Mapped Compounds") +# writeDataTable(wb, sheet = 1, x = path_res) +# writeDataTable(wb, sheet = 2, x = mapped_cpds) +# write.xlsx(list(path_res, mapped_cpds), +# here(out, str_c(comp, "pathway_results.xlsx", sep = "_"))) +# } +# +# # Metaboanalyst bubble plots --------------------------------------------------- path_tidy <- readxl::read_xlsx(here(dat_in, "ma_pathway_abbreviations.xlsx")) @@ -601,12 +623,10 @@ bub_theme <- theme(axis.text.x = element_markdown(vjust = 2, hjust = 0.5, size = # WTglB_vs_MUwl ----------------------------------------------------------- cont <- "WTglB_vs_MUwl" -bub <- read_csv("H:/2. CANA1, SCO2/CANA1_GC_analysis/230130_analysis/cana1_wl_pathway_results.csv", +bub <- read_csv(here(out, "cana1_wl_pathway_results.csv"), col_names = c("pathway", "total compounds", "hits", "p-values", "-log10(p)", "holm", "FDR", "impact"), skip = 1) -setwd(out_dir) - bub_tidy <- bub %>% left_join(path_tidy) %>% rename(path_old = pathway, @@ -630,23 +650,18 @@ bub_tidy %>% #theme(legend.position = "") scale_fill_continuous(type = "viridis") -ggsave(str_c("Metaboanalyst_Bubble_", cont, ".png"), +ggsave(here(out, str_c("Metaboanalyst_Bubble_", cont, ".png")), width = 5.5, height = 10, units = "cm") -write.xlsx(bub_tidy, str_c("H:/2. CANA1, SCO2/Manuscript_CANA1_2022/Tables/Metaboanalyst_bubble_", cont, ".xlsx")) +write.xlsx(bub_tidy, here(out, str_c("Metaboanalyst_bubble_", cont, ".xlsx"))) # WTglB_vs_MUgl ----------------------------------------------------------- -setwd(current) - -readxl::read_xlsx("221026_MUglB_vs_WTgl_ChemRICH_results.xlsx") cont <- "WTglB_vs_MUgl" -bub <- read_csv("H:/2. CANA1, SCO2/CANA1_GC_analysis/230130_analysis/cana1_gl_pathway_results.csv", +bub <- read_csv(here(out,"cana1_gl_pathway_results.csv"), col_names = c("pathway", "total compounds", "hits", "p-values", "-log10(p)", "holm", "FDR", "impact"), skip = 1) -setwd(out_dir) - bub_tidy <- bub %>% left_join(path_tidy) %>% rename(path_old = pathway, @@ -670,10 +685,10 @@ bub_tidy %>% #theme(legend.position = "") scale_fill_continuous(type = "viridis") -ggsave(str_c("Metaboanalyst_Bubble_", cont, ".png"), +ggsave(here(out, str_c("Metaboanalyst_Bubble_", cont, ".png")), width = 5.5, height = 10, units = "cm") -write.xlsx(bub_tidy, str_c("H:/2. CANA1, SCO2/Manuscript_CANA1_2022/Tables/Metaboanalyst_bubble_", cont, ".xlsx")) +write.xlsx(bub_tidy, here(out, str_c("Metaboanalyst_bubble_", cont, ".xlsx"))) ## Combined ---------------------------------------------------------------- @@ -700,383 +715,246 @@ bub_comb %>% scale_fill_continuous(type = "viridis") + ylim(c(0,7)) -saveRDS(last_plot(),"H:/2. CANA1, SCO2/Manuscript_CANA1_2022/Figures/RDS_files/Combined_bubble_metabolites.RDS") +saveRDS(last_plot(), here(out, + "Combined_bubble_metabolites.RDS")) -ggsave(str_c("Bubble_", "comb", ".png"), +ggsave(here(out, str_c("Bubble_", "comb", ".png")), width = 16.5, height = 10, units = "cm") -# Pathview ---------------------------------------------------------------- - - -######### --------------- try double pathview #### -library(pathview) -setwd("H:/2. CANA1, SCO2/CANA1_RNAseq_experiment/CANA1_RNAseq_analysis") -allfiles_allgenes <- list.files(pattern = "allgenes.csv") -dates_allfiles <- as.numeric(str_extract(allfiles_allgenes, pattern = "^\\d{6}")) -cur_date <- as.numeric(str_replace_all(Sys.Date(),"^.{2}|-","")) -latest_allgenes <- allfiles_allgenes[[which.min(cur_date - dates_allfiles)]] - -all_genes <- read_csv(latest_allgenes) -sampleTable <- read.csv("CANA1_2017_RNAseq_samplelist.csv") - -all_genes_long <- all_genes %>% - dplyr::select(-contains("log2"), - -contains("padj"),) %>% - pivot_longer(cols = c(contains("Mu"), - contains ("Wt")), - names_to = "geno", - values_to = "exp") %>% - filter(is.na(exp)==F) %>% - mutate(geno = as_factor(geno)) %>% - separate(col = geno, - into = c("geno", "rep"), - sep = -1) %>% - mutate(geno_tissue = as_factor(geno)) %>% - separate(col = geno, - into = c("geno","tissue"), - sep=2) %>% - mutate(tissue = as_factor(tissue), - geno = as_factor(geno)) %>% - dplyr::rename(gene = Row.names) - -entrez_solyc_ID_paper <-read_csv("solyc_vs_entrez_unique_original.csv") - -degs <- all_genes %>% - dplyr::select(Row.names, contains("padj"), contains("Log2FC")) %>% - mutate(DEG_WTglB_vs_MUwl = if_else(padj_WTglB_vs_MUwl <= 0.1 & abs(log2FC_WTglB_vs_MUwl) >= 1, T,F), - DEG_WTglB_vs_MUgl = if_else(padj_WTglB_vs_MUgl <= 0.1 & abs(log2FC_WTglB_vs_MUgl) >= 1, T,F), - DEG_MUglB_vs_MUwl = if_else(padj_MUglB_vs_MUwl <= 0.1 & abs(log2FC_MUglB_vs_MUwl) >= 1, T,F), - DEG_WTsB_vs_MUs = if_else(padj_WTsB_vs_MUs <= 0.1 & abs(log2FC_WTsB_vs_MUs) >= 1, T,F), - Row.names = str_replace_all(Row.names, pattern = "(\\.\\d){2,3}", replacement = "")) %>% - rename(SolycID = Row.names) %>% - left_join(entrez_solyc_ID_paper) - - -pv_leaf_genes <- degs %>% - select(log2FC_WTglB_vs_MUwl, DEG_WTglB_vs_MUwl,log2FC_WTglB_vs_MUgl, DEG_WTglB_vs_MUgl, - SolycID, EntrezID) %>% - filter(!is.na(EntrezID)) %>% - #mutate(log2FC_WTglB_vs_MUwl = if_else(DEG_WTglB_vs_MUwl == T, log2FC_WTglB_vs_MUwl, 0), - # log2FC_WTglB_vs_MUgl = if_else(DEG_WTglB_vs_MUgl == T, log2FC_WTglB_vs_MUgl, 0)) %>% - select(EntrezID, log2FC_WTglB_vs_MUgl, log2FC_WTglB_vs_MUwl) %>% - as.data.frame() -row.names(pv_leaf_genes) <- pv_leaf_genes$EntrezID -pv_leaf_genes_plot <- pv_leaf_genes[,-1] +# Heatmap SAD---------------------------------------------------------------- + +library(pheatmap) +plot_label <- read.xlsx("studies/canal-1_2017_GH/resources/Labels.xlsx") +red_met_class <- read_csv(here(dat_in, "reduced_met_classes.csv")) %>% + select(-n) -setwd(dirname(rstudioapi::getActiveDocumentContext()$path)) -getwd() -#test pathview, need distinct occurences of KEGG_IDs -setwd(out_dir) -#metdat_GC_class <- readxl::read_xlsx("H:/3. cmQTL mapping/Shared_source_files/210118_primary_metabolites_classification.xlsx") +heat_base <- fc_1_ind %>% + filter(!str_detect(genotype, "on"), + !str_detect(treatment, "drought")) %>% + select(- Compound_Name, + - geno_tissue, + - geno_label, + - geno_tissue_label, + - genotype_alt) %>% + left_join(met_dat) %>% + left_join(plot_label, by = c("genotype" = "geno_old", + "tissue" = "tissue_label")) %>% + group_by(met, + Compound_Name, + Compound_Class, + tissue, + treatment, + genotype, + geno_label, + tissue_group, + geno_tissue_label) %>% + mutate(sad = (abs(fc - median(fc)))/median(fc)) %>% + summarise(sad = mean(sad)) %>% + ungroup() -sig_kegg <- fc_1 %>% - filter(tissue_group == "leaves", genotype %in% c("M82", "CANA1")) %>% - mutate(group = as_factor(str_c(tissue, treatment, genotype, sep = "_")), - lfc = log2(mean_fc)) %>% +sad_M82 <- heat_base %>% + filter(genotype == "M82") %>% + group_by(met, + Compound_Name, + Compound_Class, + tissue, + treatment, + genotype, + geno_label, + tissue_group, + geno_tissue_label) %>% + summarise(sad_M82 = mean(sad)) %>% ungroup() %>% - filter(treatment == "control") %>% - #left_join(metdat_GC_class, by = c("component" = "Xcal_name_xreport")) %>% - pivot_wider(id_cols = c(KEGG_ID_ChEBI_mapped, met), - names_from = group, - values_from = lfc) %>% - filter(!is.na(KEGG_ID_ChEBI_mapped)) %>% - rowwise() %>% - mutate(total_change = sum(abs(c_across(where(is.numeric))))) %>% - group_by(KEGG_ID_ChEBI_mapped) %>% - mutate(rank = rank(-total_change, ties.method = "first")) %>% - filter(rank == 1) - - -pv_leaf_compound <- fc_1 %>% - mutate(group = as_factor(str_c(tissue, treatment, genotype, sep = "_")), - lfc = log2(mean_fc)) %>% - #mutate(lfc = if_else(signif == "*", lfc, 0)) %>% - filter(tissue_group == "leaves", genotype == "CANA1") %>% - #group_by(tissue, met,stress) %>% + select(-genotype, -geno_label, -geno_tissue_label, -tissue) + +heat_nom <- heat_base %>% + left_join(sad_M82) %>% + mutate(mean_fc = sad/sad_M82) %>% + filter(!is.na(geno_tissue_label)) %>% + group_by(Compound_Name, met) %>% + mutate(log_norm = log2(mean_fc), + log_norm = if_else(is.infinite(log_norm), 0, log_norm), + log_norm_level = (log_norm - mean(log_norm))/(max(log_norm)-min(log_norm)), + z_score = (mean_fc - mean(mean_fc))/(max(mean_fc)-min(mean_fc))) %>% ungroup() %>% - filter(treatment == "control" - , met %in% sig_kegg$met - ) %>% - #left_join(metdat_GC_class, by = c("component" = "Xcal_name_xreport")) %>% - pivot_wider(id_cols = c(KEGG_ID_ChEBI_mapped, met, genotype), - names_from = group, - values_from = lfc) %>% - filter(!is.na(KEGG_ID_ChEBI_mapped)) %>% - #rowwise() %>% - #mutate(total_change = sum(abs(c_across(where(is.numeric))))) %>% - #group_by(KEGG_ID_ChEBI_mapped) %>% - #mutate(rank = rank(-total_change, ties.method = "first")) %>% - #filter(rank == 1) %>% - #select(-met, - genotype, -total_change, -rank) %>% + mutate(group = as_factor(str_c(tissue, genotype, treatment, sep = "_"))) %>% + pivot_wider(id_cols = c(Compound_Name, Compound_Class, met), + names_from = geno_tissue_label, + values_from = log_norm) %>% + left_join(red_met_class) %>% + select(-Compound_Class, Compound_Class = Compound_Class_dense) %>% + arrange(Compound_Class, Compound_Name) %>% as.data.frame() -row.names(pv_leaf_compound) <- pv_leaf_compound$KEGG_ID_ChEBI_mapped -pv_leaf_compound_plot <- pv_leaf_compound[,-(1:3)] - - -pathview(gene.data = pv_leaf_genes_plot[,1:2], - cpd.data = pv_leaf_compound_plot[,1:2], - species = "sly", - pathway.id = "00290", - kegg.native = T, - low = list(gene = "magenta", cpd = "blue"), - mid = list(gene = "gray", cpd ="gray"), - high = list(gene = "green", cpd = "yellow"), - limit = list(gene = 2, cpd = 4), - bins = list(gene = 10, cpd = 10), - out.suffix = "val_leu_ile_leaves") - -pathview(gene.data = pv_leaf_genes_plot[,1:2], - cpd.data = pv_leaf_compound_plot[,1:2], - species = "sly", - pathway.id = "00250", - kegg.native = T, - low = list(gene = "magenta", cpd = "blue"), - mid = list(gene = "gray", cpd ="gray"), - high = list(gene = "green", cpd = "yellow"), - limit = list(gene = 2, cpd = 4), - bins = list(gene = 10, cpd = 10), - out.suffix = "ala_asp_asn_leaves") - -pathview(gene.data = pv_leaf_genes_plot[,1:2], - cpd.data = pv_leaf_compound_plot[,1:2], - species = "sly", - pathway.id = "00195", - kegg.native = T, - low = list(gene = "magenta", cpd = "blue"), - mid = list(gene = "gray", cpd ="gray"), - high = list(gene = "green", cpd = "yellow"), - limit = list(gene = 2, cpd = 4), - bins = list(gene = 10, cpd = 10), - out.suffix = "photosynthesis_leaves") - - -pathview(gene.data = pv_leaf_genes_plot[,1:2], - cpd.data = pv_leaf_compound_plot[,1:2], - species = "sly", - pathway.id = "00196", - kegg.native = T, - low = list(gene = "magenta", cpd = "blue"), - mid = list(gene = "gray", cpd ="gray"), - high = list(gene = "green", cpd = "yellow"), - limit = list(gene = 2, cpd = 4), - bins = list(gene = 10, cpd = 10), - out.suffix = "photosynthesis_antenna_leaves") - -pathview(gene.data = pv_leaf_genes_plot[,1:2], - cpd.data = pv_leaf_compound_plot[,1:2], - species = "sly", - pathway.id = "00500", - kegg.native = T, - low = list(gene = "magenta", cpd = "blue"), - mid = list(gene = "gray", cpd ="gray"), - high = list(gene = "green", cpd = "yellow"), - limit = list(gene = 2, cpd = 4), - bins = list(gene = 10, cpd = 10), - out.suffix = "starch_suc_leaves") - -pathview(gene.data = pv_leaf_genes_plot[,1:2], - cpd.data = pv_leaf_compound_plot[,1:2], - species = "sly", - pathway.id = "00710", - kegg.native = T, - low = list(gene = "magenta", cpd = "blue"), - mid = list(gene = "gray", cpd ="gray"), - high = list(gene = "green", cpd = "yellow"), - limit = list(gene = 2, cpd = 4), - bins = list(gene = 10, cpd = 10), - out.suffix = "met_path_leaves") - -pathview(gene.data = pv_leaf_genes_plot[,1:2], - cpd.data = pv_leaf_compound_plot[,1:2], - species = "sly", - pathway.id = "00592", - kegg.native = T, - low = list(gene = "magenta", cpd = "blue"), - mid = list(gene = "gray", cpd ="gray"), - high = list(gene = "green", cpd = "yellow"), - limit = list(gene = 2, cpd = 4), - bins = list(gene = 10, cpd = 10), - out.suffix = "alpha_lin_acid_leaves") - -pathview(gene.data = pv_leaf_genes_plot[,1:2], - cpd.data = pv_leaf_compound_plot[,1:2], - species = "sly", - pathway.id = "00620", - kegg.native = T, - low = list(gene = "magenta", cpd = "blue"), - mid = list(gene = "gray", cpd ="gray"), - high = list(gene = "green", cpd = "yellow"), - limit = list(gene = 2, cpd = 4), - bins = list(gene = 10, cpd = 10), - out.suffix = "pyruvate_leaves") - -pathview(gene.data = pv_leaf_genes_plot[,1:2], - cpd.data = pv_leaf_compound_plot[,1:2], - species = "sly", - pathway.id = "00020", - kegg.native = T, - low = list(gene = "magenta", cpd = "blue"), - mid = list(gene = "gray", cpd ="gray"), - high = list(gene = "green", cpd = "yellow"), - limit = list(gene = 2, cpd = 4), - bins = list(gene = 10, cpd = 10), - out.suffix = "tca_leaves") - -pathview(gene.data = pv_leaf_genes_plot[,1:2], - cpd.data = pv_leaf_compound_plot[,1:2], - species = "sly", - pathway.id = "00010", - kegg.native = T, - low = list(gene = "magenta", cpd = "blue"), - mid = list(gene = "gray", cpd ="gray"), - high = list(gene = "green", cpd = "yellow"), - limit = list(gene = 2, cpd = 4), - bins = list(gene = 10, cpd = 10), - out.suffix = "glycolysis_leaves") - -pathview(gene.data = pv_leaf_genes_plot[,1:2], - cpd.data = pv_leaf_compound_plot[,1:2], - species = "sly", - pathway.id = "00280", - kegg.native = T, - low = list(gene = "magenta", cpd = "blue"), - mid = list(gene = "gray", cpd ="gray"), - high = list(gene = "green", cpd = "yellow"), - limit = list(gene = 2, cpd = 4), - bins = list(gene = 10, cpd = 10), - out.suffix = "val_ile_leu_deg") - -pathview(gene.data = pv_leaf_genes_plot[,1:2], - cpd.data = pv_leaf_compound_plot[,1:2], - species = "sly", - pathway.id = "00630", - kegg.native = T, - low = list(gene = "magenta", cpd = "blue"), - mid = list(gene = "gray", cpd ="gray"), - high = list(gene = "green", cpd = "yellow"), - limit = list(gene = 2, cpd = 4), - bins = list(gene = 10, cpd = 10), - out.suffix = "glyoxylate") - -pathview(gene.data = pv_leaf_genes_plot[,1:2], - cpd.data = pv_leaf_compound_plot[,1:2], - species = "sly", - pathway.id = "00030", - kegg.native = T, - low = list(gene = "magenta", cpd = "blue"), - mid = list(gene = "gray", cpd ="gray"), - high = list(gene = "green", cpd = "yellow"), - limit = list(gene = 2, cpd = 4), - bins = list(gene = 10, cpd = 10), - out.suffix = "PPP") - - -# SBGN View --------------------------------------------------------------- -library(SBGNview) -data("sbgn.xmls") -data("pathways.info", "pathways.stats") -data("mapped.ids") - -gene.data <- as.matrix(pv_leaf_genes_plot) -cpd.data <- as.matrix(pv_leaf_compound_plot) - -SBGN_gene <- changeDataId(data.input.id = gene.data, - input.type = "entrez", - output.type = "KO", - mol.type = "gene", - sum.method = "sum", - org = "sly") - -SBGNview(gene.data = SBGN_gene[,1:2], - cpd.data = cpd.data[,1:2], - org = "sly", - input.sbgn = "PWY-1042", - output.file = "Glyc_test_MetaCyc", - gene.id.type = "KO", - cpd.id.type = "kegg", - output.formats = "svg") - -# Test own layout --------------------------------------------------------- - -setwd(current) - -#invertase <- load("Invertase_test_file.sbgn") - -gene <- tribble(~gene, ~mugl, ~muwl, - "Inv", -1, 1, - "GAPDH", 3,4) %>% - mutate(mugl = as.numeric(mugl), - muwl = as.numeric(muwl)) %>% - as.data.frame() +rownames(heat_nom) <- heat_nom$met -rownames(gene) <- gene$gene -gene <- gene[,-1] -gene <- as.matrix(gene) +mat.heat_nom <- heat_nom %>% + select(#contains("flowers"), contains("roots"), + #contains("*canal-1*"), + #contains("M82") + contains("fr") + ) %>% as.matrix() +annotation_row <- heat_nom %>% + select(Compound_Class) -cpd <- tribble(~cpd, ~mugl, ~muwl, - "Sucrose", "2", "1", - "Glucose", "1", "3", - "Fructose", "4", "0") %>% +rownames(annotation_row) <- heat_nom$met + +annotation_col <- heat_base %>% + distinct(tissue, treatment, geno_label, geno_tissue_label) %>% + #mutate(group = as_factor(str_c(tissue, genotype, treatment, sep = "_"))) %>% + filter(geno_tissue_label %in% colnames(mat.heat_nom)) %>% + select(tissue, genotype = geno_label, geno_tissue_label) %>% as.data.frame() -rownames(cpd) <- cpd$cpd - -cpd <- as.matrix(cpd) - -#id.mapping.gene_tbl <- tribble(~SYMBOL, ~ENTREZID, -# "Inv", "Invertase", -# "prevent", "character_vector") %>% -# as.data.frame() - -id.mapping.gene <- as.matrix(id.mapping.gene_tbl) - -SBGNview(gene.data = gene[,1:2], - #cpd.data = cpd[,2:3], - #org = "sly", - input.sbgn = "Invertase_test_file_manually_modified.sbgn", - sbgn.id.attr = "id", - sbgn.gene.id.type = "test", - #id.mapping.gene = id.mapping.gene, - output.file = "Invertase_test", - gene.id.type = "test", - #cpd.id.type = "kegg", - output.formats = "svg",) - -#load("230221_Figures/SBGNview.tmp.data/ath_ENTREZID_KO.RData") -#load("230221_Figures/SBGNview.tmp.data/kegg_metacyc.SBGN.RData") - -id.mapping.gene.table <- entrez_solyc_ID_paper %>% - select(entrez_in = EntrezID) %>% - mutate(entrez_out = entrez_in, - #entrez_in = str_c(entrez_in, "...") - ) %>% - as.data.frame() %>% - as.matrix() - -#Vanted SBGN -setwd(current) - -pv_leaf_genes_matrix <- pv_leaf_genes_plot %>% as.matrix() - -SBGNview(gene.data = pv_leaf_genes_matrix[,1:2], - #cpd.data = pv_leaf_compound_plot[,1:2], - org = "sly", - input.sbgn = "Carbon fixation in photosynthetic organisms.sbgn", - sbgn.id.attr = "label", - sbgn.gene.id.type = "entrez_in", - #id.mapping.gene = id.mapping.gene.table, - #sbgn.cpd.id.type = "KEGG", - output.file = "VANTED_transformed_KEGG", - gene.id.type = "entrez_in", - #cpd.id.type = "kegg", - output.formats = "svg") - -load("230221_Figures/SBGNview.tmp.data/ath_ENTREZID_KO.RData") -load("230221_Figures/SBGNview.tmp.data/kegg_metacyc.SBGN.RData") +rownames(annotation_col) <- annotation_col$geno_tissue_label + +annotation_col <- annotation_col %>% + select(-geno_tissue_label, tissue, genotype) + +heat_cols <- colnames(mat.heat_nom) + +ann_colors = list( + tissue = c('fruit' = "red", + '#greenleaf' = "darkgreen", 'whiteleaf' = "beige", + #'roots' = "grey", + 'stem' = "lightgreen" + #,flowers = "yellow" + ), + genotype = c(M82 = cb_scale[1], `*canal-1*` = cb_scale[2]), + #treatment = c("control" = vir_scale[1], "drought" = vir_scale[3]), + Compound_Class = c("Amino Acid or derivative" = "#0072B2", + "Carboxylic Acid" = "#D55E00", + "Carbohydrate or derivative" = "#CC79A7", + "Cinnamic Acid" = "#484E37", + "Dipeptide" = "#4AEE2F", + "Flavonoid (glycosides)" = "#BAD23A", + "Galactolipid" = "#EF000B", + "Phospholipid" = "#19605B", + "Steroidal Glycoalkaloids" = "#7A5DF0", + "Triacylglyceride" = "#6E3455", + "Other" = "#000000") +) + +pheatmap.all <- pheatmap(mat.heat_nom, + colorRampPalette(c("#440154FF", "white", "#FDE725FF"))(25), + #cellwidth = 16, + #cellheight = 4, + breaks = seq(-6.25, 6.25, 0.5), + #clustering_distance_rows = dist((mat.heat_nom), method = "euclidean"), + cluster_rows = F, + cluster_cols = F, + annotation_names_row = F, + show_rownames = F, + annotation_row = annotation_row, + annotation_col = annotation_col, + #display_numbers = mat.heat_nom_signif, + number_color = "black", + fontsize_number = 6, + fontsize = 6, + annotation_colors = ann_colors, + #filename = str_c(str_replace_all(Sys.Date(),"^.{2}|-",""), + # "cmQTL_val_1_heatmap_rel_tissue_wt.jpg", + # sep = "_") +) + +dev.off() +heat_all <- ggplotify::as.ggplot(pheatmap.all) +saveRDS(heat_all, here(out, "Heatmap_all_met.RDS")) + +ggsave(plot = heat_all, + here(out, "Heatmap_fruit_sad.jpg"), + width = 16, + height = 10, + units = "cm", + dpi = 300) + +if(!dev.cur() == 1){ + dev.off() +} + + +# Correlation to yield data? ---------------------------------------------- + +yield <- read.xlsx(here("assays/canal-1_Phenotyping_2019/dataset/canal-1_yield_data.xlsx")) + +isa_fruit <- isa_tidy %>% + filter(!str_detect(genotype, "on"), ! year == 2017) %>% + distinct(source_name_study, genotype, genotype_alt, treatment) + +yield_sad <- yield %>% + filter(fruit_yield != 0) %>% + mutate(aliquot_ID = as.character(aliquot_ID)) %>% + left_join(isa_fruit, by = c("aliquot_ID" = "source_name_study", + "treatment")) %>% + group_by(treatment, genotype, genotype_alt) %>% + mutate(yield_sad = (abs(fruit_yield - median(fruit_yield))/median(fruit_yield))) + +fruit_met_sad <- fc_1_ind %>% + filter(!str_detect(genotype, "on"), + treatment == "control", tissue == "fruit") %>% + mutate(genotype = as_factor(genotype)) %>% + group_by(tissue, treatment, genotype, met) %>% + mutate(sad = (abs(fc - median(fc)))/median(fc)) %>% + ungroup() + +fruit_met_sad_wide <- fruit_met_sad %>% + pivot_wider(id_cols = c(tissue, treatment, genotype, aliquot_ID, sample_name_study), + names_from = met, + values_from = sad) + +# Test metabolite variation ----------------------------------------------- + +library(rstatix) + +sad <- fc_1_ind %>% + filter(!str_detect(genotype, "on"), + treatment == "control", tissue == "fruit") %>% + mutate(genotype = as_factor(genotype)) %>% + group_by(tissue, treatment, genotype, met) %>% + mutate(sad = (abs(fc - median(fc)))/median(fc)) %>% + ungroup() + +signif <- sad %>% + group_by(tissue, treatment, met) %>% + wilcox_test(formula = sad ~ genotype, + ref.group = "M82", + p.adjust.method = "fdr") + +p1 <- sad %>% + filter(met == "m_86", str_detect(tissue, "fruit"), treatment == "control", !str_detect(genotype, "on")) %>% + #mutate(genotype = as_factor(geno_tissue_label), + # genotype = fct_relevel(genotype, c("gl M82", "gl *canal-1*", "wl *canal-1*"))) %>% + ggplot(aes(x = genotype, y = sad)) + + geom_boxplot() + + geom_dotplot()#+ + #geom_errorbar(aes(ymin = (mean_fc-se), ymax = (mean_fc + se)), position = position_dodge(0.9), width = 0.25, linewidth = 0.75)+ + stat_pvalue_manual(step.group.by = c("treatment", "tissue_group"), sig_comb_bar, label = "p.signif", y.position = "y.position", + step.increase = 0.07, tip.length = 0.01, + hide.ns = F) + + # theme(axis.text.x = element_markdown(angle = 45, hjust = 1), + # panel.background = element_rect(fill = "white"), + # panel.border = element_rect(color = "black",fill = NA), + # text = element_text(size = 14), + # legend.title = element_blank(), + # legend.text = element_markdown()) + + com_theme + + xlab("") + + ylab("Mean fold-change") + + #facet_grid(rows = vars(treatment), cols = vars(tissue_group)) + + ggtitle(label = "asparagine") + + scale_fill_manual(values = c("darkgreen", "beige"), aesthetics = "fill") + + scale_y_log10() + +p1 + +ggsave(plot = p1, here(out, "asparagine.png"), + width = 16, height = 10, units = "cm") + + +saveRDS(p1, here(out, "asparagine_leaves.RDS")) diff --git a/workflows/Pigment_SpecPhot_analysis/Pigment_SpecPhot_Yield_analysis.R b/workflows/Pigment_SpecPhot_analysis/Pigment_SpecPhot_Yield_analysis.R new file mode 100644 index 0000000000000000000000000000000000000000..04be5ce1993cd25909efee669a2e2c0eb1cfa7aa --- /dev/null +++ b/workflows/Pigment_SpecPhot_analysis/Pigment_SpecPhot_Yield_analysis.R @@ -0,0 +1,731 @@ +library(tidyverse) +library(car) +library(broom) +library(ggtext) +library(ggpubr) +library(openxlsx) +library(ggbeeswarm) + +sampledata <- readxl::read_excel("H:/2. CANA1, SCO2/CANA1_2018_2019_samplelist.xlsx", + sheet = 2) +extraction <- readxl::read_excel("H:/2. CANA1, SCO2/CANA1_2018_2019_samplelist.xlsx", + sheet = 3) +treatment <- readxl::read_excel("H:/2. CANA1, SCO2/CANA1_2018_2019_samplelist.xlsx", + sheet = 4) + +av_yield <- treatment %>% + filter(Name != "no_LIMS") %>% + mutate(fruit_yield = as.numeric(fruit_yield)) %>% + group_by(genotype,trtmnt) %>% + summarise(av_yield = mean(fruit_yield, na.rm = T), + sd_yield = sd(fruit_yield, na.rm = T), + obs = n()) %>% + mutate(cv_yield = sd_yield/av_yield) + +iCV <- av_yield %>% + pivot_wider(id_cols = c(genotype), + names_from = trtmnt, + values_from = cv_yield) %>% + mutate(iCV = drought/control) + +treatment <- treatment %>% + filter(Name != "no_LIMS") %>% + mutate(genotype = as_factor(genotype), + trtmnt = as_factor(trtmnt)) + +yield_control <- treatment %>% + filter(trtmnt == "control") + +yield_drought <- treatment %>% + filter(trtmnt == "drought") + +plot_label <- tribble(~genotype, ~group, + "M82", "M82", + "CANA1", "*canal-1*") + +y_for_p <- treatment %>% + group_by(trtmnt) %>% + summarise(y.pos = 1.1*max(fruit_yield)) + +p_ctrl <- tibble(p_value = kruskal.test(fruit_yield ~ genotype , data = yield_control)$p.value) %>% + mutate(trtmnt = "control") + +p_drought <- tibble(p_value = kruskal.test(fruit_yield ~ genotype , data = yield_drought)$p.value) %>% + mutate(trtmnt = "drought") + +yield_p <- bind_rows(p_ctrl, p_drought) + +sig_yield_plot <- y_for_p %>% + left_join(yield_p) %>% + mutate(group1 = "M82", + group2 = "*canal-1*", + group = group1, + p.signif = if_else(p_value <= 0.0005, "***", + if_else(p_value <= 0.005, "**", + if_else(p_value <= 0.05, "*", "ns")))) %>% + mutate(y = "fruit_yield") + + +# Theme ------------------------------------------------------------------- + + +com_theme <- theme(axis.text.x = element_markdown(angle = 45, hjust = 1, size = 6, family = "sans"), + axis.text.y = element_text(size = 6, family = "sans"), + axis.title.x = element_blank(), + axis.title.y = element_text(size = 6, family = "sans"), + panel.background = element_rect(fill = "white"), + panel.border = element_rect(color = "black",fill = NA), + strip.text = element_text(size = 8, family = "sans", margin = margin(t = 1, r = 1, b = 1, l = 1 , unit = "pt")), + text = element_text(size = 6, family = "sans"), + legend.title = element_blank(), + legend.text = element_markdown(size = 6), + plot.margin = unit(c(1,1,1,1), "mm"), + legend.margin = margin(t = 0, r = 2, b = 0, l = 2 , unit = "mm")) + + +# Yield plot -------------------------------------------------------------- + + +treatment <- treatment %>% + left_join(plot_label) + +binwidth <- treatment %>% + summarise(binwidth = (max(fruit_yield) - min(fruit_yield))/50) + +treatment %>% + mutate(group = as_factor(group), + trtmnt = as_factor(trtmnt)) %>% + ggplot(aes(x = group, y = fruit_yield, fill = group)) + + geom_boxplot(size = 0.2, outlier.size = 0.2) + + geom_quasirandom(method = "quasirandom", shape = 21, size = 0.5) + + #geom_dotplot(binaxis = "y", stackdir = "center", binwidth = binwidth$binwidth) + + stat_pvalue_manual(data = sig_yield_plot, y.position = "y.pos", label = "p.signif", xmin = "group1", xmax = "group2") + + facet_grid(cols = vars(trtmnt), scales = "free") + + scale_fill_manual(values = c("darkgreen", "beige")) + + labs(x = "Genotype", y = "Fruit yield/ g/plant") + + com_theme + +ggsave(str_c(str_replace_all(Sys.Date(),"^.{2}|-",""),"_fruit_yield.jpg"), + width = 89, + height = 60, + units = "mm", + dpi = 300) + +saveRDS(last_plot(), "H:/2. CANA1, SCO2/Manuscript_CANA1_2022/Figures/RDS_files/canal1_yield.RDS") + +sum_stat <- treatment %>% + group_by(trtmnt, group) %>% + summarise(mean = mean(fruit_yield), + sd = sd(fruit_yield), + cv = sd/mean, + n = n()) %>% + ungroup() %>% + mutate(group = str_remove_all(group, "\\*"), + mean = round(mean, digits = 4), + sd = round(sd, digits = 4), + cv = round(cv, digits = 4)) %>% + select(Treatment = trtmnt, Genotype = group, Mean = mean, SD = sd, CV = cv, N = n) %>% + mutate(Genotype = as_factor(Genotype), + Genotype = fct_relevel(Genotype, c("M82", "canal-1"))) %>% + arrange(Treatment, Genotype) + +write.xlsx(sum_stat, "H:/2. CANA1, SCO2/Manuscript_CANA1_2022/Tables/Yield_sum_stat.xlsx") + +# Test MAD ------------------------------------------------------ + +mad <- treatment %>% + group_by(trtmnt, genotype) %>% + mutate(mad = abs(fruit_yield - median(fruit_yield))/median(fruit_yield)) %>% + ungroup() + +mad_nest <- mad %>% + group_by(trtmnt) %>% + nest() + +mad_p <- mad_nest %>% + mutate(krusk = map(data, .f = ~kruskal.test(.x$mad ~ .x$genotype)$p.value)) %>% + select(trtmnt, krusk) + +y_for_p <- mad %>% + group_by(trtmnt) %>% + summarise(y.pos = 1.1*max(mad)) + +sig_yield_plot <- mad_p %>% + left_join(y_for_p) %>% + mutate(group1 = "M82", + group2 = "*canal-1*", + group = group1, + p.signif = if_else(krusk <= 0.0005, "***", + if_else(krusk <= 0.005, "**", + if_else(krusk <= 0.05, "*", "ns")))) %>% + mutate(y = "mad") + +binwidth <- mad %>% + summarise(binwidth = (max(mad) - min(mad))/50) + +mad %>% + mutate(group = as_factor(group), + trtmnt = as_factor(trtmnt)) %>% + ggplot(aes(x = group, y = mad, fill = group)) + + geom_boxplot(size = 0.2, outlier.size = 0.2) + + geom_quasirandom(method = "quasirandom", shape = 21, size = 0.5) + + #geom_dotplot(binaxis = "y", stackdir = "center", binwidth = binwidth$binwidth) + + stat_pvalue_manual(data = sig_yield_plot, hide.ns = T, y.position = "y.pos", label = "p.signif") + + facet_grid(cols = vars(trtmnt), scales = "free") + + scale_fill_manual(values = c("darkgreen", "beige")) + + labs(x = "Genotype", y = "Scaled MAD Fruit yield/ g/plant") + + com_theme + +ggsave(str_c(str_replace_all(Sys.Date(),"^.{2}|-",""),"_fruit_yield_MAD.jpg"), + width = 89, + height = 60, + units = "mm", + dpi = 300) + +saveRDS(last_plot(), "H:/2. CANA1, SCO2/Manuscript_CANA1_2022/Figures/RDS_files/canal1_yield_mad_scaled.RDS") + +sum_stat <- mad %>% + group_by(trtmnt, group) %>% + summarise(mean = mean(mad), + sd = sd(mad), + cv = sd/mean, + n = n()) %>% + ungroup() %>% + mutate(group = str_remove_all(group, "\\*"), + mean = round(mean, digits = 4), + sd = round(sd, digits = 4), + cv = round(cv, digits = 4)) %>% + select(Treatment = trtmnt, Genotype = group, Mean = mean, SD = sd, N = n) %>% + mutate(Genotype = as_factor(Genotype), + Genotype = fct_relevel(Genotype, c("M82", "canal-1"))) %>% + arrange(Treatment, Genotype) + +write.xlsx(sum_stat, "H:/2. CANA1, SCO2/Manuscript_CANA1_2022/Tables/Yield_MAD_sum_stat.xlsx") + + +# Test Levene ------------------------------------------------------ +skip = T +if(skip == T){ + print("skipped") +} else{ +lev <- treatment %>% + group_by(trtmnt, genotype) %>% + mutate(lev = abs(log10(fruit_yield) - log10(median(fruit_yield)))) %>% + ungroup() + +lev_nest <- lev %>% + group_by(trtmnt) %>% + nest() + +lev_p <- lev_nest %>% + mutate(krusk = map(data, .f = ~kruskal.test(.x$lev ~ .x$genotype)$p.value)) %>% + select(trtmnt, krusk) + +y_for_p <- lev %>% + group_by(trtmnt) %>% + summarise(y.pos = 1.1*max(lev)) + +sig_yield_plot <- lev_p %>% + left_join(y_for_p) %>% + mutate(group1 = "M82", + group2 = "*canal-1*", + group = group1, + p.signif = if_else(krusk <= 0.0005, "***", + if_else(krusk <= 0.005, "**", + if_else(krusk <= 0.05, "*", "ns")))) %>% + mutate(y = "lev") + +binwidth <- lev %>% + summarise(binwidth = (max(lev) - min(lev))/50) + +lev %>% + mutate(group = as_factor(group), + trtmnt = as_factor(trtmnt)) %>% + ggplot(aes(x = group, y = lev, fill = group)) + + geom_boxplot(size = 0.2, outlier.size = 0.2) + + geom_dotplot(binaxis = "y", stackdir = "center", binwidth = binwidth$binwidth) + + stat_pvalue_manual(data = sig_yield_plot, hide.ns = T, y.position = "y.pos", label = "p.signif") + + facet_grid(cols = vars(trtmnt), scales = "free") + + scale_fill_manual(values = c("darkgreen", "beige")) + + labs(x = "Genotype", y = "Scaled lev Fruit yield/ g/plant") + + com_theme + +ggsave(str_c(str_replace_all(Sys.Date(),"^.{2}|-",""),"_fruit_yield_lev.jpg"), + width = 89, + height = 60, + units = "mm", + dpi = 300) + +saveRDS(last_plot(), "H:/2. CANA1, SCO2/Manuscript_CANA1_2022/Figures/RDS_files/canal1_yield_lev_scaled.RDS") + +sum_stat <- lev %>% + group_by(trtmnt, group) %>% + summarise(mean = mean(lev), + sd = sd(lev), + cv = sd/mean, + n = n()) %>% + ungroup() %>% + mutate(group = str_remove_all(group, "\\*"), + mean = round(mean, digits = 4), + sd = round(sd, digits = 4), + cv = round(cv, digits = 4)) %>% + select(Treatment = trtmnt, Genotype = group, Mean = mean, SD = sd, N = n) %>% + mutate(Genotype = as_factor(Genotype), + Genotype = fct_relevel(Genotype, c("M82", "canal-1"))) %>% + arrange(Treatment, Genotype) + +write.xlsx(sum_stat, "H:/2. CANA1, SCO2/Manuscript_CANA1_2022/Tables/Yield_lev_sum_stat.xlsx") +} + +# Chlorophyll ------------------------------------------------------------- + +chl1 <- readxl::read_excel("210128_Chl_CANA1_1_to_10.xlsx", + sheet = 2) + +chl1_reformat <- chl1 %>% + pivot_longer(cols = matches("^\\d{1,2}$"), + names_to = "column", + values_to = "value") %>% + pivot_wider(id_cols = c(row,column), + names_from = identity, + values_from = value) + +chl2 <- readxl::read_excel("210130_Chl_CANA1_1_to_10.xlsx", + sheet = 2) + +chl2_reformat <- chl2 %>% + pivot_longer(cols = matches("^\\d{1,2}$"), + names_to = "column", + values_to = "value") %>% + pivot_wider(id_cols = c(row,column), + names_from = identity, + values_from = value) + +chl3 <- readxl::read_excel("210131_Chl_CANA1_1_to_10.xlsx", + sheet = 2) + +chl3_reformat <- chl3 %>% + pivot_longer(cols = matches("^\\d{1,2}$"), + names_to = "column", + values_to = "value") %>% + pivot_wider(id_cols = c(row,column), + names_from = identity, + values_from = value) + +chl_all <- chl1_reformat %>% + bind_rows(chl2_reformat,chl3_reformat) %>% + filter(!is.na(extraction_num)) + +blank <- chl_all %>% + filter(extraction_num == 0) %>% + summarise(blank_652 = mean(`652`), + blank_665 = mean(`665`), + blank_470 = mean(`470`)) + +sampledata_tidy <- sampledata %>% + left_join(extraction) %>% + left_join(treatment, by = "Aliquot ID") %>% + mutate(Genotype = as_factor(Genotype)) + +write_csv(sampledata_tidy, str_c(str_replace_all(Sys.Date(),"^.{2}|-",""),"sampledata_tidy.csv")) + +levels(sampledata_tidy$Genotype) +sampledata_tidy$Genotype <- ordered(sampledata_tidy$Genotype, + levels = c("M82", "CANA1", "CRISPR_8619", "CRISPR_7472")) + +chl_calc <- chl_all %>% + left_join(sampledata_tidy) %>% + filter(trtmnt == "control") %>% + mutate(path_652 = (`652`- blank$blank_652)/0.51, + path_665 = (`665`- blank$blank_665)/0.51, + path_470 = (`470`- blank$blank_470)/0.51, + chl_a = ((16.72 * path_665 - 9.16 * path_652)), + chl_b = ((34.09 * path_652 - 15.28 * path_665)), + car_tot = (((1000 * path_470 - 1.63 * chl_a - 104.96 * chl_b) / 221)), + chla_ug_g = if_else(chl_a < 0 , 0, (chl_a*2.5/fw) *1000), + chlb_ug_g = if_else(chl_b < 0 , 0, (chl_b*2.5/fw) *1000), + car_tot_ug_g = if_else(car_tot < 0, 0, (car_tot*2.5/fw) *1000), + ratio_chla_chlb = chla_ug_g/chlb_ug_g, + #ratio_chla_chlb = if_else(is.finite(ratio_chla_chlb), ratio_chla_chlb, 1), + Tissue = as_factor(Tissue), + tissue_group = as_factor(str_extract(Tissue, "(?<!\\w)\\w+$")), + tissue_short = abbreviate(Tissue, minlength = 2), + group_anova = as_factor(str_c(tissue_short,group, sep =" "))) %>% + filter(is.finite(ratio_chla_chlb)) + +levels(chl_calc$group_anova) + +chl_calc$group_anova <- fct_relevel(chl_calc$group_anova, + c("gl M82", + "gl *canal-1*", + "wl *canal-1*", + "st M82", + "st *canal-1*")) + +chl_calc %>% + filter(tissue_group == "stems") %>% + ggplot(aes(x = Tissue, y = chla_ug_g, fill = genotype)) + + geom_dotplot(binaxis = "y", stackdir = "center", position = "dodge") + +chl_plot <- chl_calc %>% + pivot_longer(cols = c(contains("ug_g"), ratio_chla_chlb), + names_to = "pigment", + values_to = "concentration") %>% + mutate(pigment = as_factor(pigment)) + +sum_stats <- chl_plot %>% + group_by(pigment, Tissue, genotype) %>% + summarise(norm_dist = shapiro.test(concentration)$p.value, + mean = mean(concentration), + sd = sd(concentration), + n = n()) %>% + mutate(se = sd/sqrt(n)) + +data_leaves <- chl_calc %>% + filter(tissue_group == "leaves") %>% + select(group_anova, chla_ug_g, chlb_ug_g,car_tot_ug_g,ratio_chla_chlb) + +numeric_data_leaves <- data_leaves %>% + select(where(is.numeric)) + +map_dfc(.x = numeric_data_leaves, .f = ~leveneTest(.x ~ data_leaves$group_anova)) +map_dfc(.x = numeric_data_leaves, .f = ~kruskal.test(.x ~ data_leaves$group_anova)$p.value) +leaves_wilcox <- map(.x = numeric_data_leaves, .f = ~pairwise.wilcox.test(.x, data_leaves$group_anova)) + +sig_leaves <- leaves_wilcox %>% + map(.f = tidy) %>% + map2(.y = names(leaves_wilcox), .f = ~.x %>% mutate(var = .y)) %>% + purrr::reduce(bind_rows) + +data_stems <- chl_calc %>% + filter(tissue_group == "stems") %>% + select(group_anova, chla_ug_g, chlb_ug_g,car_tot_ug_g, ratio_chla_chlb) + +numeric_data_stems <- data_stems %>% + select(where(is.numeric)) + +map_dfc(.x = numeric_data_stems, .f = ~leveneTest(.x ~ data_stems$group_anova)) +map_dfc(.x = numeric_data_stems, .f = ~kruskal.test(.x ~ data_stems$group_anova)$p.value) +stems_t.test <- map(.x = numeric_data_stems, .f = ~pairwise.t.test(.x, data_stems$group_anova)) + +sig_stems <- stems_t.test %>% + map(.f = tidy) %>% + map2(.y = names(stems_t.test), .f = ~.x %>% mutate(var = .y)) %>% + purrr::reduce(bind_rows) + +#single tests +#leveneTest(chla_ug_g ~ group_anova, data = data_chl_a_leaves) +#kruskal.test(chla_ug_g ~ group_anova, data = data_chl_a_leaves)$p.value +#pairwise.wilcox.test(data_chl_a_leaves$chla_ug_g, + # data_chl_a_leaves$group_anova) + +pigments <- tibble( + chla_ug_g = "chlorophyll a", + chlb_ug_g = "chlorophyll b", + car_tot_ug_g = "total carotenoids", + ratio_chla_chlb = "chlorophyll a/b ratio") %>% + pivot_longer(cols = everything(), + names_to = "pigment", + values_to = "pigment_label") + + +# Leaves pigment plot ----------------------------------------------------- + +chl_plot_leaves <- chl_plot %>% + filter(pigment != "ratio_chla_chlb", + tissue_group == "leaves") %>% + mutate(group = group_anova) %>% + left_join(pigments) + +tissues <- chl_plot_leaves %>% + distinct(group, Tissue) + +y_for_p <- chl_plot_leaves %>% + group_by(pigment) %>% + summarise(y.position = 1.1*max(concentration)) + +sig_leaves_plot <- sig_leaves %>% + left_join(tissues, by = c("group2" = "group")) %>% + mutate(p.signif = if_else(p.value <= 0.0005, "***", + if_else(p.value <= 0.005, "**", + if_else(p.value <= 0.05, "*", "ns")))) %>% + left_join(y_for_p, by = c("var" = "pigment")) %>% + left_join(pigments, by = c("var" = "pigment")) %>% + filter(var != "ratio_chla_chlb") + +binwidth <- chl_plot_leaves %>% + summarise(binwidth = (max(concentration) - min(concentration))/100) %>% + ungroup() + +chl_plot_leaves %>% + ggplot(aes(x = group, y = concentration, fill = Tissue)) + + geom_boxplot(size = 0.2, outlier.size = 0.2) + + #geom_beeswarm(aes(x = group, y = concentration, fill = Tissue), + # shape = 21) + + geom_quasirandom(method = "quasirandom", shape = 21, size = 0.5) + + stat_pvalue_manual(sig_leaves_plot, y.position = "y.position", + label = "p.signif", step.increase = 0.07, + hide.ns = T) + + facet_grid(cols = vars(pigment_label), scales = "free") + + scale_fill_manual(values = c("darkgreen", "beige")) + + labs(x = "Tissue and genotype", y = "concentration/ ?g/g FW") + + com_theme + +ggsave(str_c(str_replace_all(Sys.Date(),"^.{2}|-",""),"_leaf_pigments.jpg"), + width = 183, + height = 100, + units = "mm", + dpi = 300) + +saveRDS(last_plot(), "H:/2. CANA1, SCO2/Manuscript_CANA1_2022/Figures/RDS_files/canal1_leaf_pigments.RDS") + +sum_stat <- chl_plot_leaves %>% + group_by(group, pigment_label) %>% + summarise(mean = mean(concentration), + sd = sd(concentration), + cv = sd/mean, + n = n()) %>% + ungroup() %>% + mutate(group = str_remove_all(group, "\\*"), + mean = round(mean, digits = 4), + sd = round(sd, digits = 4), + cv = round(cv, digits = 4)) %>% + select(Pigment = pigment_label, `Genotype and Tissue` = group, Mean = mean, SD = sd, N = n) %>% + mutate(`Genotype and Tissue` = as_factor(`Genotype and Tissue`), + `Genotype and Tissue` = fct_relevel(`Genotype and Tissue`, c("gl M82", "gl canal-1", "wl canal-1"))) %>% + arrange(Pigment, `Genotype and Tissue`) + +write.xlsx(sum_stat, "H:/2. CANA1, SCO2/Manuscript_CANA1_2022/Tables/Leaf_pigments_sum_stat.xlsx") + + +# stems pigment plot ----------------------------------------------------- + +chl_plot_stems <- chl_plot %>% + filter(pigment != "ratio_chla_chlb", + tissue_group == "stems") %>% + mutate(group = group_anova) %>% + left_join(pigments) + +tissues <- chl_plot_stems %>% + distinct(group, Tissue) + +y_for_p <- chl_plot_stems %>% + group_by(pigment) %>% + summarise(y.position = 1.1*max(concentration)) + +sig_stems_plot <- sig_stems %>% + left_join(tissues, by = c("group2" = "group")) %>% + mutate(p.signif = if_else(p.value <= 0.0005, "***", + if_else(p.value <= 0.005, "**", + if_else(p.value <= 0.05, "*", "ns")))) %>% + left_join(y_for_p, by = c("var" = "pigment")) %>% + left_join(pigments, by = c("var" = "pigment")) %>% + filter(var != "ratio_chla_chlb") %>% + mutate(group = group1) + +binwidth <- chl_plot_stems %>% + summarise(binwidth = (max(concentration) - min(concentration))/100) %>% + ungroup() + +chl_plot_stems %>% + ggplot(aes(x = group, y = concentration, fill = group)) + + geom_boxplot(size = 0.2, outlier.size = NA, outlier.shape = NA) + + #geom_beeswarm(aes(x = group, y = concentration, fill = group), + # shape = 21) + + geom_quasirandom(method = "quasirandom", shape = 21, size = 0.5) + + stat_pvalue_manual(sig_stems_plot, y.position = "y.position", + label = "p.signif", step.increase = 0.07, + hide.ns = T) + + facet_grid(cols = vars(pigment_label), scales = "free") + + scale_fill_manual(values = c("darkgreen", "#a0c45a63")) + + labs(x = "Tissue and genotype", y = "concentration/ ?g/g FW") + + com_theme + +ggsave(str_c(str_replace_all(Sys.Date(),"^.{2}|-",""),"_stem_pigments.jpg"), + width = 183, + height = 100, + units = "mm", + dpi = 300) + +saveRDS(last_plot(), "H:/2. CANA1, SCO2/Manuscript_CANA1_2022/Figures/RDS_files/canal1_stem_pigments.RDS") + +sum_stat <- chl_plot_stems %>% + group_by(group, pigment_label) %>% + summarise(mean = mean(concentration), + sd = sd(concentration), + cv = sd/mean, + n = n()) %>% + ungroup() %>% + mutate(group = str_remove_all(group, "\\*"), + mean = round(mean, digits = 4), + sd = round(sd, digits = 4), + cv = round(cv, digits = 4)) %>% + select(Pigment = pigment_label, `Genotype and Tissue` = group, Mean = mean, SD = sd, N = n) %>% + mutate(`Genotype and Tissue` = as_factor(`Genotype and Tissue`), + `Genotype and Tissue` = fct_relevel(`Genotype and Tissue`, c("st M82", "st canal-1"))) %>% + arrange(Pigment, `Genotype and Tissue`) + +write.xlsx(sum_stat, "H:/2. CANA1, SCO2/Manuscript_CANA1_2022/Tables/Stems_pigments_sum_stat.xlsx") + + +# Comparison pigments apolar LC ------------------------------------------- + +pig_LC <- read_csv("pigments_apolar_LC.csv") %>% + left_join(plot_label) %>% + mutate(tissue_group = as_factor(str_extract(tissue, "(?<!\\w)\\w+$")), + tissue_short = abbreviate(tissue, minlength = 2), + group_anova = as_factor(str_c(tissue_short,group, sep =" "))) + +pigments_LC <- tibble( + Chlorophyll_a = "chlorophyll a", + Chlorophyll_b = "chlorophyll b", + car_tot_ug_g = "total carotenoids", + ratio_chla_chlb = "chlorophyll a/b ratio") %>% + pivot_longer(cols = everything(), + names_to = "Compound_Name", + values_to = "pigment_label") + +chl_calc_LC <- pig_LC %>% + filter(str_detect(Compound_Name, "Chlorophyll"), + tissue_group == "leaves" | tissue_group == "stems", + year == "2018" | year == "2019") %>% + mutate(fw_norm = area/fw_in_mg) %>% + select(Compound_Name, genotype, Tissue = tissue, aliquot_ID, tissue_group, fw_norm, group_anova) %>% + left_join(pigments_LC) %>% + pivot_wider(id_cols = c(genotype, Tissue, aliquot_ID, tissue_group, group_anova), + names_from = pigment_label, + values_from = fw_norm) + +levels(chl_calc_LC$group_anova) + +chl_calc_LC$group_anova <- fct_relevel(chl_calc_LC$group_anova, + c("gl M82", + "gl *canal-1*", + "wl *canal-1*", + "st M82", + "st *canal-1*")) + +chl_calc_LC %>% + filter(tissue_group == "stems") %>% + ggplot(aes(x = Tissue, y = `chlorophyll a`, fill = genotype)) + + geom_dotplot(binaxis = "y", stackdir = "center", position = "dodge") + +chl_plot_LC <- chl_calc_LC %>% + pivot_longer(cols = c(contains("chloro")), + names_to = "pigment", + values_to = "concentration") %>% + mutate(pigment = as_factor(pigment)) + +sum_stats_LC <- chl_plot_LC %>% + group_by(pigment, Tissue, genotype) %>% + summarise(norm_dist = shapiro.test(concentration)$p.value, + mean = mean(concentration), + sd = sd(concentration), + n = n()) %>% + mutate(se = sd/sqrt(n)) + +data_leaves_LC <- chl_calc_LC %>% + filter(tissue_group == "leaves") %>% + select(group_anova, `chlorophyll a`, `chlorophyll b`) + +numeric_data_leaves <- data_leaves %>% + select(where(is.numeric)) + +map_dfc(.x = numeric_data_leaves, .f = ~leveneTest(.x ~ data_leaves$group_anova)) +map_dfc(.x = numeric_data_leaves, .f = ~kruskal.test(.x ~ data_leaves$group_anova)$p.value) +leaves_wilcox_LC <- map(.x = numeric_data_leaves, .f = ~pairwise.wilcox.test(.x, data_leaves_LC$group_anova)) + +sig_leaves_LC <- leaves_wilcox_LC %>% + map(.f = tidy) %>% + map2(.y = names(leaves_wilcox), .f = ~.x %>% mutate(var = .y)) %>% + purrr::reduce(bind_rows) + +data_stems_LC <- chl_calc_LC %>% + filter(tissue_group == "stems") %>% + select(group_anova, `chlorophyll a`, `chlorophyll b`) + +numeric_data_stems_LC <- data_stems_LC %>% + select(where(is.numeric)) + +map_dfc(.x = numeric_data_stems_LC, .f = ~leveneTest(.x ~ data_stems_LC$group_anova)) +map_dfc(.x = numeric_data_stems_LC, .f = ~kruskal.test(.x ~ data_stems_LC$group_anova)$p.value) +stems_t.test <- map(.x = numeric_data_stems_LC, .f = ~pairwise.t.test(.x, data_stems_LC$group_anova)) + +sig_stems <- stems_t.test %>% + map(.f = tidy) %>% + map2(.y = names(stems_t.test), .f = ~.x %>% mutate(var = .y)) %>% + purrr::reduce(bind_rows) + +#single tests +#leveneTest(chla_ug_g ~ group_anova, data = data_chl_a_leaves) +#kruskal.test(chla_ug_g ~ group_anova, data = data_chl_a_leaves)$p.value +#pairwise.wilcox.test(data_chl_a_leaves$chla_ug_g, +# data_chl_a_leaves$group_anova) + + +# Scale and Combine both datasets --------------------------------------------------- + + +chl_plot_leaves_LC <- chl_plot_LC %>% + filter(pigment != "ratio_chla_chlb", + tissue_group == "leaves") %>% + mutate(group = group_anova) %>% + rename(pigment_label = pigment) + +chl_leaves_phot <- chl_plot_leaves %>% + filter(!str_detect(pigment_label, "carotenoid")) %>% + select(genotype, Tissue, aliquot_ID = `Aliquot ID`, tissue_group, group_anova, pigment_label, concentration) %>% + mutate(method = "Photometer") + +chl_leaves_LC <- chl_plot_leaves_LC %>% + mutate(method = "apolar LC") + +id_in_both <- chl_leaves_phot %>% + full_join(chl_leaves_LC) %>% + distinct(group_anova, aliquot_ID, method) %>% + group_by(group_anova, aliquot_ID) %>% + summarise(n = n()) %>% + ungroup() + +chl_leaves_comb <- chl_leaves_phot %>% + bind_rows(chl_leaves_LC) %>% + left_join(id_in_both) %>% + filter(n == 2) + +wt_leaves <- chl_leaves_comb %>% + filter(group_anova == "gl M82") %>% + group_by(pigment_label, method) %>% + summarise(wt_mean = mean(concentration)) + +chl_leaves_scaled <- chl_leaves_comb %>% + left_join(wt_leaves) %>% + mutate(level = concentration/wt_mean) + +chl_leaves_scaled %>% + ggplot(aes(x = group_anova, y = level, fill = method)) + + geom_boxplot() + + geom_point(shape = 21, position = position_dodge(0.75)) + + facet_wrap(facets = vars(pigment_label)) + + com_theme + + theme(legend.position = "bottom") + +ggsave("comparison_chlorophyll.jpg", width = 16, height = 20, units = "cm") + +chl_leaves_scaled %>% + ggplot(aes(x = method, y = level, fill = method)) + + geom_boxplot() + + geom_point(shape = 21, position = position_dodge(0.75)) + + geom_line(aes(x = method, y = level, group = aliquot_ID)) + + facet_grid(cols = vars(pigment_label), rows = vars(group_anova), scales = "free") + +ggsave("comparison_chlorophyll_ids_outlier.jpg", width = 16, height = 20, units = "cm") + +chl_leaves_scaled %>% + filter(aliquot_ID != "2131611") %>% + ggplot(aes(x = method, y = level, fill = method)) + + geom_boxplot() + + geom_point(shape = 21, position = position_dodge(0.75)) + + geom_line(aes(x = method, y = level, group = aliquot_ID)) + + facet_grid(cols = vars(pigment_label), rows = vars(group_anova), scales = "free") + +ggsave("comparison_chlorophyll_ids_outlier_removed.jpg", width = 16, height = 20, units = "cm") diff --git a/workflows/Pigment_SpecPhot_analysis/Pigment_SpecPhot_analysis.R b/workflows/Pigment_SpecPhot_analysis/Pigment_SpecPhot_analysis.R index 05be75e479ac717e180e647a28e1ecf34359fdd4..04be5ce1993cd25909efee669a2e2c0eb1cfa7aa 100644 --- a/workflows/Pigment_SpecPhot_analysis/Pigment_SpecPhot_analysis.R +++ b/workflows/Pigment_SpecPhot_analysis/Pigment_SpecPhot_analysis.R @@ -1,6 +1,3 @@ -rm(list = ls()) -setwd(dirname(rstudioapi::getActiveDocumentContext()$path)) -getwd() library(tidyverse) library(car) library(broom) @@ -471,7 +468,7 @@ chl_plot_leaves %>% hide.ns = T) + facet_grid(cols = vars(pigment_label), scales = "free") + scale_fill_manual(values = c("darkgreen", "beige")) + - labs(x = "Tissue and genotype", y = "concentration/ µg/g FW") + + labs(x = "Tissue and genotype", y = "concentration/ ?g/g FW") + com_theme ggsave(str_c(str_replace_all(Sys.Date(),"^.{2}|-",""),"_leaf_pigments.jpg"), @@ -541,7 +538,7 @@ chl_plot_stems %>% hide.ns = T) + facet_grid(cols = vars(pigment_label), scales = "free") + scale_fill_manual(values = c("darkgreen", "#a0c45a63")) + - labs(x = "Tissue and genotype", y = "concentration/ µg/g FW") + + labs(x = "Tissue and genotype", y = "concentration/ ?g/g FW") + com_theme ggsave(str_c(str_replace_all(Sys.Date(),"^.{2}|-",""),"_stem_pigments.jpg"),