Close
About
FAQ
Home
Collections
Login
USC Login
Register
0
Selected
Invert selection
Deselect all
Deselect all
Click here to refresh results
Click here to refresh results
USC
/
Digital Library
/
University of Southern California Dissertations and Theses
/
Computational approaches to identify genetic regulators of aging and late-life mortality
(USC Thesis Other)
Computational approaches to identify genetic regulators of aging and late-life mortality
PDF
Download
Share
Open document
Flip pages
Contact Us
Contact Us
Copy asset link
Request this asset
Transcript (if available)
Content
COMPUTATIONAL APPROACHES TO IDENTIFY GENETIC REGULATORS OF AGING AND LATE-LIFE
MORTALITY
by
Tyler Alan Unadkat Hilsabeck
A Dissertation Presented To The
FACULTY OF THE USC GRADUATE SCHOOL
UNIVERSITY OF SOUTHERN CALIFORNIA
In Partial Fulfillment of the
Requirements for the Degree
DOCTOR OF PHILOSOPHY
(BIOLOGY OF AGING)
May 2022
Copyright 2022 Tyler Alan Unadkat Hilsabeck
ii
ACKNOWLEDGEMENTS
There are too many people who have helped me in my educational journey. Mentors and
instructors at all levels have helped propel me to where I am now. Without their help and guidance, I
would never have accomplished what I have. I would like to thank the members of my Dissertation
Committee, PK, Rachel, Gordon, John Tower, and Caleb Finch, you have all helped me improve my
science and guided me on this journey. Thank you for the useful advice and suggestions, it has been a
wonderful experience.
I especially owe my success to my PI’s, who have led me down the path of aging research and
helped direct me towards a fulfilling career in science. In particular, Drs. Shane Rea, Pankaj Kapahi, and
Rachel Brem, who have each built me into the scientist I am today. Shane, thank you for allowing me to
join your lab from a different school. Your lab and mentorship showed me what was needed to be
successful in science. PK, it was our discussion over lunch during my interview that convinced me this
program was a perfect fit, and our continued discussions that push the bounds of my thinking. Rachel,
your way of pushing me to think and communicate my science has helped me improve my presentation
abilities. A special thanks to Dr. Judy Campisi, who has provided feedback and helped take my science in
a new direction. I have appreciated the feedback and support from each of you.
To my family, thank you for always being supportive throughout my life. All of you helped form
me into the person I am today, which is the only reason I was able to make it through the program.
Mom, thank you for always pushing me to think for myself and consider other’s perspectives. You have
always been a great role model, both in life and in science. Your work ethic throughout my life prepared
me for what to expect, and I continually attempt to attain what you have showed me is possible. Dad,
thank you for teaching me to have pride in what I do, and to always measure twice before cutting once. I
would both figuratively and literally not have made it to the Buck without you. Beth, thank you for the
iii
continued support and helping keep us all together through thick and thin. Damon, thank you for your
advice and support, it has helped guide us through complicated issues! I would be nowhere without any
of you.
To my wife, Devanshi, thank you for being there no matter what craziness was occurring around
us. You balance my life and always push me to improve. Your love, strength, and kindness continually
inspire me to show compassion in all situations. Thank you for putting up with and supporting my
workaholic nature, while still insisting that I take care of myself. You have helped get me past the finish
line. I am looking forward to our future together, and the ability to return the favor. Love you.
To my lab mates, thank you for making the last few years enjoyable. You have helped make the
lab a warm and welcoming place to spend most of my time. Your help in lab has also been invaluable, as
I would likely not be graduating without it.
To the great community of students and trainees at the Buck, thank you for providing friendship
and comradery in a place where I knew very few people outside the Buck. My time here would not have
been as enjoyable without the get togethers we had. I also appreciate the trust y’all had in me to lead
the Graduate Student Society for a time.
To the housemates that had to endure living with me, thank you for providing an intellectually
stimulating environment to spend my “off” time. Devin Humpal, Jesse Simons, Jacob Rose, and my
temporary housemate, Lauren Wimer, you each taught me so much and kept our house’s atmosphere
jovial and conducive to surviving hours in the lab. Thank you for putting up with my odd work hours.
I would like to especially thank Kenny Wilson, who has been both a mentor and a friend. You
have truly paved the way for a lot of what I’ve done in the program, and it’s always great speaking with
you. I have particularly appreciated the environment you help create in the lab and hope to take a lot
I’ve learned from you to my future labs.
iv
To the Buck and USC faculty and administration, thank you for all your support as I’ve navigated
through the program. The Buck has been like a home away from home, and a lot of that is due to the
work environment and welcoming nature of the Buck. The support everyone gave to the GSS and the
events we had helped create a family-like atmosphere. I’d especially like to thank Drs. Caleb Finch and
David Lee at USC for allowing me to rotate in your labs. Dr. Finch, thank you for being a mentor at a
distance, and I look forward to many more of our discussions.
To all my collaborators, thank you for your contributions to my science and for allowing me to
contribute to yours. You have all been great to work with, and I hope to continue working with you in
the future.
Finally, I would like to thank my funding sources through this Doctoral work, in particular the
NIA for my F31 fellowship (AG062112). My work would not have been possible without your support.
In the following chapters, Chapter 1 includes sections of the journal article entitled “Evaluating
the beneficial effects of dietary restrictions: A framework for precision nutrigeroscience,” published in
Cell Metabolism, September 22, 2021, by Kenneth A Wilson, Manish Chamoli, Tyler A Hilsabeck, Manish
Pandey, Sakshi Bansal, Geetanjali Chawla, Pankaj Kapahi. This chapter also contains sections of the
journal article entitled “A conserved role of the insulin-like signaling pathway in diet-dependent uric acid
pathologies in Drosophila melanogaster,” published in PLoS Genetics, August 15, 2019, by Sven Lang,
Tyler A. Hilsabeck, Kenneth A. Wilson, Amit Sharma, Neelanjan Bose, Deanna J. Brackman, Jennifer N.
Beck, Ling Chen, Mark A. Watson, David W. KillileaID, Sunita Ho, Arnold Kahn, Kathleen Giacomini,
Marshall L. Stoller, Thomas Chi, Pankaj Kapahi.
Chapter 3 is a version of the journal article entitled “A fly GWAS for purine metabolites identifies
human FAM214 homolog medusa, which acts in a conserved manner to enhance hyperuricemia driven
v
pathologies by modulating purine metabolism and the inflammatory response,” undergoing revisions at
GeroScience, January 27, 2022, by Tyler A.U. Hilsabeck, Ru Liu-Bryan, Tracy Guo, Kenneth A. Wilson,
Neelanjan Bose, Daniel Raftery, Jennifer N. Beck, Sven Lang, Kelly Jin, Christopher S. Nelson, Tal Oron,
Marshall Stoller, Daniel Promislow, Rachel B. Brem, Robert Terkeltaub, and Pankaj Kapahi.
vi
TABLE OF CONTENTS
ACKNOWLEDGEMENTS iii
LIST OF FIGURES x
LIST OF TABLES xv
ABSTRACT xvii
CHAPTER 1: INTRODUCTION 1
Complexities of measuring aging in response to DR 3
Different classes of diet-responsive genes using mortality analysis to decipher
mechanisms of DR
5
Healthspan versus lifespan debate 7
Conserved role of uric acid and purine metabolites in longevity and healthspan 9
Humans differ from most other organisms in that we lack a functioning uricase (Uro)
gene
9
Aging-related pathologies impacted by uric acid and other purine metabolite levels 10
Role of uric acid in free radical pathways 11
Paradoxical impact of purine metabolism in the development and progression of
Alzheimer's Disease (AD)
12
Previous methods used to identify genetic regulators of hyperuricemia 13
Hyperuricemia and gout are regulated by genetic mechanisms not fully understood 15
Reduction in concretion formation does not equate to a recovery in lifespan. 17
Role of other tissues in maintaining Malpighian tubule homeostasis 17
Concentration- and context-dependent role of purine metabolism and metabolites in
aging
18
vii
CHAPTER 2: MATERIALS AND METHODS 19
Fly lines, husbandry, and diet composition 19
Concretion assay 20
Starvation assay 20
Smurf gut permeability assay 20
Lifespan analysis 20
Genome-wide association mapping 21
High-performance liquid chromatography (HPLC) mass spectrometry (MS) 22
Gene expression analysis 23
Western blot 24
Cell transfection 24
Intracellular uric acid measurement 24
Mouse bone marrow derived macrophage (BMDM) differentiation 24
Mouse liver explant IL-1β treatment 25
Quantification and statistical analysis 25
Principal Component Analysis (PCA) 25
Pearson correlation analysis 26
Random Forest Modeling 26
CHAPTER 3: A FLY GWAS FOR PURINE METABOLITES IDENTIFIES THAT HUMAN FAM214
HOMOLOG MEDUSA ACTS IN A CONSERVED MANNER TO ENHANCE HYPERURICEMIA DRIVEN
PATHOLOGIES BY MODULATING PURINE METABOLISM AND THE INFLAMMATORY RESPONSE
27
Abstract 27
Background 27
Results 30
viii
Identifying variants associated with regulating purine metabolism 30
mda reduced guanosine in both a wild-type background and the hyperuricemia fly
model
30
Inhibition of mda rescues the concretion and shortened lifespan phenotypes of the
hyperuricemia fly model.
34
mda expression was regulated by xbp1. 36
mda was necessary for innate immune response in the hyperuricemia model. 38
FAM214A regulates intracellular uric acid in HepG2 cells. 41
Discussion 42
CHAPTER 4: A GWAS FOR LATE-LIFE MORTALITY IN DROSOPHILA IDENTIFIES DIABETES AND
OBESITY REGULATED TO REGULATE MORTALITY AND RESILIENCE.
61
Abstract 61
Results 61
Drosophila Genetics Reference Panel (DGRP) exhibit genotype- and diet-specific
variation in late-life mortality.
62
Loss of Diabetes and Obesity-Regulated is sufficient to increase mortality in a time-
specific manner.
63
Diabetes and Obesity-Regulated regulates organismal resilience and healthspan. 65
Loss of Diabetes and Obesity-Regulated increases inflammation and senescence factors. 66
Diabetes and Obesity-Regulated regulates senescence in the germline. 68
Diabetes and Obesity-Regulated FENLL isoform expression increases resilience. 70
Discussion 72
CHAPTER 5: COMMON METABOLITE AND PHENOTYPIC TRAITS UNDERLY LIFESPAN AND
HEALTHSPAN RESPONSE TO DIETARY RESTRICTION
77
ix
Abstract 77
Results 77
Variation in DGRP metabolite and phenotype dietary response 77
DGRP dietary response shows few metabolites correlate with phenotypes 80
Common traits used to build random forest models of lifespan metrics. 81
Discussion 85
CHAPTER 6: CONCLUSIONS 145
Drosophila serves as an ideal model for metabolic disease. 145
Diabetes and Obesity-Regulated (DOR) bolsters individual resilience and lifespan
through regulation of the inflammatory response
145
Untapped potential of a systems biology approach utilizing the DGRP 146
Final Thoughts 146
APPENDICES 148
APPENDIX A GWAS_coxph_full.R – R code used for Cox proportional hazards analysis
and results for Chapter 3.
148
APPENDIX B DGRP Lifespan Code – D21 to 95percent – R code used to represent DGRP
survival data as mortality curves from Day 21 until day 95% of population was dead in
Chapter 4.
243
APPENDIX C modelingCode.py – Python code used for PCA and Random Forest
modeling in Chapter 5.
257
APPENDIX D FullPearsonCorrelation_PhenoMetab_modelingdata.R – R code used for
correlation analyses in Chapter 5.
281
APPENDIX E drawNetwork_Nshow_Simple_DGRPpaper.py – Python code used to
produce network diagrams in Chapter 5.
289
x
APPENDIX F qPCRanalysis.R – R code used to analyze qPCR Ct values in all chapters. 306
APPENDIX G FDRCalc.R – R code used to determine False Detection Rates for
Correlation Analysis.
306
REFERENCES 307
xi
LIST OF FIGURES
Figure 1.1 Fitted linearized mortality curve example. 4
Figure 1.2 Possible gene-specific lifespan responses to dietary
interventions.
7
Figure 1.3 Uricase knockdown enhances uric acid concretion formation
in an age-dependent manner specifically on a high yeast diet.
15
Figure 1.4 Uricase knockdown or purine supplementation decreases
lifespan
17
Figure 3.1 – Whole-body mda RNAi reduces guanosine levels in wild-
type and alters purine metabolism in model, preventing increased uric
acid levels, and rescuing the concretion phenotype.
32
Figure 3.2 - mda RNAi is sufficient to rescue the hyperuricemia model’s
decreased lifespan phenotype
35
Figure 3.3 – xbp1 regulates mda expression, but its modulation does
not rescue lifespan.
37
Figure 3.4 - mda inhibition dampens hyperuricemia model’s immune
response, which is sufficient to rescue fly model’s concretion
accumulation and decreased lifespan.
39
Figure 3.5 – mda homolog FAM214A expression influences intracellular
uric acid (UA) levels, is differentially expressed in bone marrow derived
macrophages (BMDM) and is upregulated in response to IL-1β.
42
Figure 3.6 - mda regulates hyperuricemia model phenotypes through
altering purine metabolism and upregulating immune response.
45
xii
Supplementary Figure 3.1 – mda regulates purine metabolism in uro
inhibited background, related to Figure 3.1
46
Supplementary Figure 3.2 - GWAS candidate gene lifespans when
concurrently inhibited in hyperuricemia model using whole-body driver
48
Supplementary Figure 3.3 - Tissue-specific mda RNAi in wildtype
background shows little effect on lifespan
49
Supplementary Figure 3.4 – xbp1RNAi inhibits mda expression, but its
overexpression is not sufficient to increase expression.
51
Figure 4.1 - Drosophila Genetics Reference Panel (DGRP) strains show
diet-specific variation in initial mortality (α) and “rate of aging” (β).
63
Figure 4.2 - Whole-body DOR RNAi decreases lifespan and increases
initial mortality (α) and “rate of aging” (β) in a time-specific manner.
64
Figure 4.3 - Whole-body DOR RNAi decreases healthspan and
organismal resilience.
66
Figure 4.4 - Inhibition of DOR increases senescence factor and
inflammatory expression.
67
Figure 4.5 - DOR regulates germline senescence. 69
Figure 4.6 - DOR FENLL isoform overexpression (OE) increases
resilience.
71
Supplemental Figure 4.1. Mortality Curves of 160 DGRP strains on AL
and DR.
74
Supplemental Figure 4.2. Loss of autophagy regulator Keap1 decreases
initial mortality and rate of aging.
75
xiii
Supplemental Figure 4.3. DOR and Keap1 inhibition have diet-
independent effect on lifespan.
75
Supplemental Figure 4.4. Survival curves for DOR inhibition or
homozygous mutants.
76
Figure 5.1. DGRP show strong strain-specific responses to diet 79
Figure 5.2. DGRP trait dietary responses correlate with similar traits, but
few metabolites correlate with phenotypes.
81
Figure 5.3. Random Forest model compositions for 6 lifespan and 3
healthspan traits.
83
Figure 5.4. Network diagram of DGRP dietary response models of
response traits and the predictor traits used to build them.
84
Figure 5.5. Overall project workflow. 85
Supplemental Figure 5.1. Variation of DGRP dietary response in lifespan
and healthspan response traits.
87
Supplemental Figure 5.2. DGRP metabolite and phenotype trait
correlations on DR and AL, together.
88
Supplemental Figure 5.3. DGRP metabolite and phenotype trait
correlations on DR alone.
89
Supplemental Figure 5.4. DGRP metabolite and phenotype trait
correlations on AL alone.
90
Supplemental Figure 5.5. DR&AL combined Random Forest model
compositions for 6 lifespan and 3 healthspan traits.
91
Supplemental Figure 5.6. DR diet Random Forest model compositions
for 6 lifespan and 3 healthspan traits.
92
xiv
Supplemental Figure 5.7. AL diet Random Forest model compositions
for 6 lifespan and 3 healthspan traits.
93
Supplemental Figure 5.8. Network diagram of DGRP, DR and AL
combined, models of response traits and the predictor traits used to
build them.
94
Supplemental Figure 5.9. Network diagram of DGRP, DR only, models of
response traits and the predictor traits used to build them.
95
Supplemental Figure 5.10. Network diagram of DGRP, AL only, models
of response traits and the predictor traits used to build them.
96
Figure 1.1 Fitted linearized mortality curve example. 4
Figure 1.2 Possible gene-specific lifespan responses to dietary
interventions.
7
Figure 1.3 Uricase knockdown enhances uric acid concretion formation
in an age-dependent manner specifically on a high yeast diet.
15
Figure 1.4 Uricase knockdown or purine supplementation decreases
lifespan
17
Figure 3.1 – Whole-body mda RNAi reduces guanosine levels in wild-
type and alters purine metabolism in model, preventing increased uric
acid levels, and rescuing the concretion phenotype.
32
Figure 3.2 - mda RNAi is sufficient to rescue the hyperuricemia model’s
decreased lifespan phenotype
35
Figure 3.3 – xbp1 regulates mda expression, but its modulation does
not rescue lifespan.
37
xv
Figure 3.4 - mda inhibition dampens hyperuricemia model’s immune
response, which is sufficient to rescue fly model’s concretion
accumulation and decreased lifespan.
39
Figure 3.5 – mda homolog FAM214A expression influences intracellular
uric acid (UA) levels, is differentially expressed in bone marrow derived
macrophages (BMDM) and is upregulated in response to IL-1β.
42
Figure 3.6 - mda regulates hyperuricemia model phenotypes through
altering purine metabolism and upregulating immune response.
45
Supplementary Figure 3.1 – mda regulates purine metabolism in uro
inhibited background, related to Figure 3.1
46
Supplementary Figure 3.2 - GWAS candidate gene lifespans when
concurrently inhibited in hyperuricemia model using whole-body driver
48
Supplementary Figure 3.3 - Tissue-specific mda RNAi in wildtype
background shows little effect on lifespan
49
Supplementary Figure 3.4 – xbp1RNAi inhibits mda expression, but its
overexpression is not sufficient to increase expression.
51
Figure 4.1 - Drosophila Genetics Reference Panel (DGRP) strains show
diet-specific variation in initial mortality (α) and “rate of aging” (β).
63
Figure 4.2 - Whole-body DOR RNAi decreases lifespan and increases
initial mortality (α) and “rate of aging” (β) in a time-specific manner.
64
Figure 4.3 - Whole-body DOR RNAi decreases healthspan and
organismal resilience.
66
xvi
LIST OF TABLES
Table 1.1 - Types of dietary restrictions 2
Supplemental Table 3.1 - Fly strains used in Chapter 3. 53
Supplementary Table 3.2 - Cox proportional-hazards ratioa statistical
analysis for lifespan effects in uro model background (Comparison
shaded red) or tissue-specific inhibition in wildtype backgrounds
(Comparison shaded grey). All p-values from coxph() function in survival
package in R.
54
Supplemental Table 3.3 - Primers used in Chapter 3. 59
Supplementary Table 3.4 - Concretion Summary and Replicate
Information.
59
Supplementary Table 5.1 - GWAS candidate genes for DR-AL metabolite
and phenotype response.
96
xvii
xviii
ABSTRACT
Aging is a complex trait that appears to both lead to and be caused by several ailments and physical
degradations. Consequently, aging sits at a key nexus for both healthspan and mortality. Despite the key
nature of aging in our overall health, it remains poorly understood. No cure or preventative therapeutic
has been developed to combat the ravages of aging. Indeed, the variability in individual responses to
various drugs, much less the apparent variability in aging itself, further obscure a universal solution.
Even dietary restriction (DR), a robust treatment that extends lifespan and healthspan in most species
and individuals, does not work for every individual. Elucidating the mechanisms of how DR impacts
lifespan and healthspan would help us understand why certain individuals do or do not respond to DR
and could lead to more direct and individually tailored anti-aging therapies.
Since aging affects individuals in complex and diverse ways, it would be difficult to study how any one
individual ages. A more prudent approach would be to identify common pathways of aging and use a
systems-wide analysis. To do this, I utilized the Drosophila Genetic Reference Panel (DGRP) to
investigate the role of genetic variation in aging. The DGRP formed the foundation for the way my
studies were designed. My first approach took advantage of a gene that was rendered non-functional in
humans. This gene, uricase (uro), degrades the purine metabolite urate into its less toxic form, allantoin.
Interestingly, uro inhibition shows a diet-specific effect on healthspan and lifespan in the fly. To identify
regulators of purine metabolism, I performed a Genome-Wide Analysis Study (GWAS) for single
nucleotide variants that associate with purine metabolite levels in the DGRP on our lab’s high yeast (5%
yeast extract in food, shown as HY or AL) or a diet with a 10-fold reduction in yeast extract (0.5% yeast
extract, shown as LY or DR), I identified the gene medusa (mda) and showed that inhibiting it is sufficient
to rescue lifespan. More specifically, mda regulates the immune response to elevated urate. This
xix
function is conserved in its human ortholog, FAM214A, marking it as a potential therapeutic target for
human renal aging and highlights the ability of my approach to identify human-relevant pathways.
The second approach I took to better understand aging in a genetically diverse population was to
reevaluate the DGRP lifespan data from Wilson et al., 2020 using a mortality analysis. This method
represented the DGRP lifespans as two values, the “initial mortality”, α, and “rate of aging”, β. From this
approach, I identified the role of Diabetes and Obesity-Regulated (DOR) in maintaining an individual’s
resilience to aging-related stressors. Interestingly, DOR appears to connect whole organism lifespan with
germline senescence.
In total, the candidate genes identified through a computational analysis of the DGRP datasets provide
potential targets to impact human aging. Based on the ability of this approach to identify human-
relevant candidates, our study delving into connections in the DGRP -omics datasets will provide exciting
candidates that regulate both healthspan and lifespan. Knowing the genetic and diet factors that
influence how individuals age can provide personalized ways to treat age- and diet-related disease.
1
CHAPTER 1: INTRODUCTION
In 1935, Dr. Clive McCay showed that dietary restriction (DR) in the form of reduced calories (CR)
without malnutrition prolongs mean and maximal lifespan in rats compared with those allowed to eat
freely. Subsequent experiments in mice showed that ~40% of normal calorie consumption results in
~50% extension in lifespan (McCay et al., 1975). The potential of CR to extend lifespan has created a
large subfield of aging research that promises a simple but elegant method to enhance lifespan and
healthspan, the period of life in which an individual is healthy, with minimal side effects. CR is now
known to extend lifespan in nearly thirty species, including non-human primates, and remains the most
robust way to extend lifespan in the laboratory. In humans, a two-year clinical study on the effects of
chronic, moderate CR showed a slowing in metabolism and decreased production of free radicals
(Redman et al., 2018). Though this study indicated that changes induced by CR reduced markers of
aging, the long-term effects of CR in humans remain unproven.
Distinct from CR, dietary restriction (DR) encompasses all dietary interventions which restrict intake of
specific nutritional components. Thus, DR incorporates CR as well as restriction of macronutrients such
as protein or amino acid residues (e.g., methionine, tryptophan) or glucose, and may also include
varying fasting intervals (Table 1.1). Despite varying DR protocols, almost all dietary interventions have
been reported to influence lifespan in at least one model organism and largely influence similar cellular
pathways. However, differences in methodologies used to induce DR within and between species have
led to disparities in cross study comparisons. Given the variation across populations, individuals, and
tissues, it is reasonable to expect an array of responses to different regimens. Further, the means of
assessing aging vary greatly across studies, adding to difficulties in assessing how DR benefits longevity
and health. Despite these variations in methodologies and responses, the knowledge of pathways that
mediate nutrient signaling remains critical to help translate findings to humans. Precision nutrition has
2
Table 1.1. Types of
dietary restrictions.
Dietary
intervention
Description
Caloric restriction
Reduced caloric intake (20-30% below average) without undergoing malnutrition during the
entire period of dietary intervention.
Intermittent fasting
The alternate pattern of ad libitum food-intake-encompassing regimes that may include
alternate-day fasting (ADF), modified ADF (limited calories supplied during fasting day),
5:2 diet (days of caloric restriction per week), or daily time-restricted feeding.
Fasting mimicking
diet
Four days of diet that mimics fasting (FMD) consisting of very low calorie/low protein. The
ad libitum diet is fed between the period of FMD cycles.
Glucose and
carbohydrate
restriction
Carbohydrate consumption is restricted relative to the average diet and is replaced by food
containing a higher percentage of fat and protein.* Glucose restriction refers to specific
restriction of glucose intake instead of other forms of complex carbohydrates.
Protein restriction Reduction of dietary protein intake without changing the average caloric intake.
Amino acid
restriction
Specific restriction of amino acids that commonly include threonine, histidine, lysine,
methionine, and branched-chain amino acid (BCAA). BCAAs have an aliphatic side chain,
which is a carbon atom bound to at least two other carbon atoms. The three most common
BCAAs are leucine, isoleucine, and valine.
Micronutrient
restriction
Reduced intake of vitamins and minerals. Common micronutrients whose levels have been
reduced by chemical chelation or inhibiting import are calcium, iron, zinc, phosphorus, and
potassium.
Metabolite
restriction
Reduction or inhibiting biosynthesis of specific reaction intermediates or end products of
physiological metabolism. Most commonly: N-acylethanolamines, folate metabolism
intermediates, polyunsaturated fatty acid metabolism intermediates, tricarboxylic cycle
intermediates, and coenzyme Q.
* Very low-carbohydrate diet (< 10 %), low-carbohydrate diet (< 26%), moderate-carbohydrate diet (< 26–44%);
values based on human studies (Feinman et al., 2015).
recently been proposed as a means to mediate health by creating personalized dietary plans (Rodgers,
Griffin and Collins, 2020), and a multitude of companies have aimed to maximize lifespan by precision
nutrition but have not incorporated -omics-based signatures to maximize individualized effects. We
propose that developing an individualized plan which analyzes specific age-related biomarkers of an
individual to optimize diet-based therapeutics to slow age-related biological processes will give rise to a
new form of precision-nutrition medicine, which we term precision nutrigeroscience. This field of study
will incorporate diet-based therapeutics that are specific to an individual based on a panel of genotype-,
3
diet-, age-, sex-, and health-specific biomarkers and will elucidate specific, individualized regimens to
maximize lifespan and healthspan.
Complexities of measuring aging in response to DR
Most of the studies to delineate the protective effects of DR on aging use lifespan as their metric to
measure aging. However, to best assess how dietary interventions can be optimized to improve
longevity, it is essential to determine the appropriate means to assess aging. The gold-standard
measurement in studies that examine DR is the survival rate of a population over time. However, these
lifelong measurements are often reduced to a single metric, such as mean, median, or maximum
lifespan, and a change in these values is used to assess the impact of treatments (Grandison et al.,
2009). These approaches do not consider the heterogeneity in how individuals in a population with
identical genotypes age and also do not give insight into when or how DR alters mortality. Determining
the impact of DR on an organism’s mortality risk is an alternative approach that has been used to help
elucidate its effects (Cheng et al., 2019; Good & Tatar, 2001; Mair et al., 2003).
Mortality curves, which can be represented by initial mortality (α) and rate of aging (β), have been
extensively utilized to quantify aging in DR studies of many organisms (Colman et al., 2009; Good &
Tatar, 2001; Gordon-Dseagu et al., 2017; Mair et al., 2003; Simons et al., 2013; Zhang et al., 2016; Y.
Zhao et al., 2017). These two values are simply the y-intercept and slope of the line, respectively, of the
best fit line of a linearized Gompertz curve that follows the equation (Figure 1.1) (Gompertz, 1825).
The species- and genotype-specific impacts of DR previously mentioned have similar variability in their
impact on these parameters. In flies, for example, DR decreases mortality rate in a genotype-specific
manner, as shown by the varying response across 11 Drosophila Genetic Reference Panel (DGRP) lines
4
Figure 1.1 Fitted linearized mortality curve example.
(McCracken et al., 2020). A study measuring the role of dietary sugar modulation in Ceratitis capitata
has shown mixed results on mortality, with no significant effects of diet on “active life expectancy,” or
the fraction of a fly’s life before becoming supine, despite a large impact on total lifespan (Papadopoulos
et al., 2012). However, a more recent study showed significant β changes upon dietary alterations in the
same species (Papanastasiou et al., 2019). Importantly, the impact of DR on mortality is conserved in
mammals, though results have been variable. For example, while a meta-analysis in rodents found that
only β was significantly decreased on DR (Simons et al., 2013), studies in mice revealed a decreased β
upon DR and an increase in α (Garratt et al., 2016). Another recent study found a slight decrease in β for
mice on DR compared to ad libitum (AL) feeding and further showed that a late-onset diet change had
stronger initial effects on mortality going from DR to AL than the reciprocal, though the difference
disappeared over time (Hahn et al., 2019). In humans, the role of dietary macronutrients in mortality is
complex; mortality risk follows a U-shaped association with dietary carbohydrate composition
(Seidelmann et al., 2018), and fat consumption from different sources leads to either higher (animal
5
fats) or lower (plant-based fats) mortality (Seidelmann et al., 2018). These differences highlight the
variability in genetic response to DR, and the ability of mortality analyses to give more granular insight
into the species- and genotype-specific nature of DR. The independent nature of each data point in a
mortality curve allows for more flexibility and creativity when designing DR studies (Cheng et al., 2019).
Incorporating mortality-rate analysis will shed light on dissecting the aging measures impacted by DR-
related longevity mechanisms to better assess how individualized treatments can be applied.
Different classes of diet-responsive genes using mortality analysis to decipher mechanisms of DR
Deciphering the genetic mechanisms of DR responses has classically relied on using mortality curves as
an output in response to both dietary and genetic perturbations. Four phenotypic classes have been
described to identify genetic perturbations which mediate lifespan changes under AL or DR. The first
class is lifespan extension in mean or median lifespan upon AL conditions but not DR (Figure 1.2A), as
has been seen upon downregulation of genes in the mTOR and insulin/IGF-1 pathways in flies (Kapahi et
al., 2017). In the second class, lifespan is shortened specifically upon DR but not under AL conditions
(Figure 1.2B), as has been shown with loss of SIR2 in yeast, AMPK in worms, or 4E-BP or IRE1 in flies
(Greer et al., 2008; Lin, Su-Ju, Pierre-Antoine Defossez, 2000; Luis et al., 2016; Zid et al., 2009). These
proteins likely regulate the genes that mediate the protective effects of DR. In a third, less examined
class, gene knockout shortens lifespan specifically on a rich diet but not on DR (Figure 1.2C). This is seen
upon loss of the Urate oxidase gene in flies, which leads to the accumulation of purines (Lang et al.,
2019). These genes are likely to regulate pathways that impact the buildup of toxic products on a rich
diet but not DR. Such genes have the potential to limit lifespan and enhance age-related diseases,
especially on a rich diet (Lang et al., 2019). Another example of this is that mice deficient in the DNA
excision-repair gene 1 Ercc-1 show a tripling of lifespan under CR, arguing that buildup of specific DNA
damage is detrimental to lifespan in a diet-dependent manner (Vermeij et al., 2016). Additionally, the
glyoxalase gene knockout, which results in accumulation of advanced glycation endproducts (AGEs) in C.
6
elegans (Jyotiska Chaudhuri et al., 2016). This shortens lifespan, which rescued under a fasted state. In
the fourth class, a gene modulation extends lifespan upon DR but not a rich diet (Figure 1.2D). One
example is observed in yeast where, paradoxically, loss of Sir2 in combination with CR enhances survival
under stress and starvation and has opposing effects on chronological lifespan and replicative lifespan
(Fabrizio et al., 2005). These cases signify the complex relationship between DR and the genes it
regulates, suggesting that further analysis is necessary to determine how modifying a specific molecular
mechanism might influence longevity under different dietary contexts. Future genotype-diet interaction
studies that take into account all four possibilities and their combinations, as this would reveal further
insights into how aging is modulated by diet-responsive pathways. Furthermore, in addition to using
mean and median changes in lifespan, accounting for the mortality parameters α and β throughout
lifespan will be instrumental in understanding which genetic pathways influence mortality parameters
and age-related decline in biological function.
7
Figure 1.2 Possible gene-specific lifespan responses to dietary interventions. Loss of a gene can lead to
four general responses: (A) lifespan extension on a nutrient-rich diet, but no effect under DR; (B)
negation of typical DR-mediated lifespan extension, but no effect on a nutrient-rich diet; (C) lifespan
shortening under nutrient-rich conditions, but no effect under DR; and (D) DR-specific lifespan
extension, but no effect under nutrient-rich conditions.
Healthspan versus lifespan debate
Though it is often assumed that lifespan extension is accompanied by healthspan extension, recent work
has called this relationship into question. This debate has created two schools of thought, one which
focuses on lifespan extension as the most relevant metric for slowing aging and another which uses
functional changes in aging measured by healthspan metrics. One challenge in determining healthspan,
however, is how to best assess this in model organisms. In humans, walking speed is often used for this
(Freedman et al., 2002), though its role as a predictor of mortality is questionable (Studenski et al.,
2015) because most aged humans have multiple disabilities, imposing frailty by different means (Clegg
et al., 2013). Nonetheless, the period of overall functionality is used as a measure for determining
overall healthspan in model organisms, particularly in response to DR. Work in C. elegans focusing on
known DR-related genes such as eat-2, which restricts dietary intake in worms, and daf-2, which inhibits
IGF signaling, demonstrated that lifespan extension is not necessarily accompanied by similar
healthspan extension, as assessed by oxidative stress, heat resistance, and overall movement (Bansal et
al., 2015), suggesting an uncoupling of lifespan and healthspan. Others, however, have analyzed
functionality measures differently, such as recording movement decline relative to maximum velocity, to
suggest a correlation between lifespan and healthspan in the same daf-2 mutant used in the previous
study (Hahm et al., 2015). Still others continue to find no evidence of correlation between health and
longevity in multiple species (Podshivalova et al., 2017). In flies, we found no correlation between
measures of lifespan and healthspan in response to DR across 160 wild strains, and DR extended
healthspan more consistently than lifespan (Wilson et al., 2020). We further identified genes that
regulated lifespan specifically (decima) or climbing ability specifically (daedalus) in response to diet. We
8
found that DR alters body mass and other metabolic traits (Nelson et al., 2016), but these also did not
correlate with lifespan (Wilson et al., 2020). The potential separation between lifespan and health
factors has also been observed in more complex mammalian systems. Work in mice has suggested aging
interventions that improve healthspan or lifespan but not both conjunctively, notably with the result
that downregulation of mTOR activity extended lifespan but did not affect hepatic function nor insulin
sensitivity (Lamming et al., 2012). Healthspan may be improved without extending lifespan with dietary
optimization to incorporate nicotinamide (Mitchell et al., 2018). More recently, knockout of the stress-
response gene Nrf2 resulted in reduced stress response activation but
there was no effect on lifespan nor physical performance in mice undergoing CR, further suggesting a
range of potential health-related responses to CR (Pomatto et al., 2020). CR primate models also
demonstrate a potential uncoupling of healthspan and lifespan in response to dietary modulation across
studies; one study demonstrated benefits in healthspan measures such as triglyceride levels and disease
onset as well as lifespan (Mattison et al., 2017), whereas another using a different CR regimen showed
that there is an improvement in the same health measures but not lifespan (Mattison, 2012), suggesting
compression of morbidity but not extended lifespan. However, measurements of body mass also
indicated no change between CR and control primates, suggesting that the implementation of CR in
these animals may have contributed to the lack of change in lifespan (Mattison, 2012). These studies
also emphasize the importance of diet composition when considering how DR might influence longevity
and healthspan. Humans consuming reduced red meat and trans fats showed increased longevity and
healthspan on average, but there was a notable compression of morbidity later in life (McCullough et al.,
2002). These findings have led to the recommendation that both healthspan and lifespan traits be
measured in all age-related studies to better report which interventions improve healthspan and which
improve lifespan (Richardson et al., 2016). Furthermore, genotype- and environment-specific factors
may also provide critical context as to how aging is driven and how age-related diseases develop. Given
9
the heterogeneity in aging across tissues and genotypes, perhaps observing specific individuals to
understand how they age is more effective than using generalized means to determine how aging
influences the individual.
Conserved role of uric acid and purine metabolites in longevity and healthspan
A diet-specific factor with known detrimental healthspan outcomes is the pathological accumulation of
uric acid. The primary source of uric acid is degradation of dietary purine metabolites, with dietary
changes being a leading therapeutic. Uric acid levels naturally increase due to both age and a nutrient-
rich diet, with high serum uric acid (SUA) levels, or hyperuricemia, being correlated with aging-related
frailties and diseases in clinical cohort studies. SUA has been positively correlated with hypertension,
dyslipidemia, type-2 diabetes, cardiovascular disease, and kidney stones, even being linked with
premature death and higher all-cause mortality risk (Adachi et al., 2017; Broughton & Partridge, 2009;
Dietzl et al., 2007; Dubchak & Falasca, 2010; Kanbay et al., 2016; J. Lu et al., 2018; Palanker Musselman
et al., 2011; Pendse et al., 2013; Perez-Ruiz et al., 2015; Pineda et al., 2015; Sulem et al., 2011). This is a
particular problem in the west where there is an overabundance of food, with hyperuricemia afflicting
over 20% of the US population (Zhu et al., 2011, 2012a). Studies of centenarians have shown that long-
lived individuals (93-108) tend to have lower SUA levels, with the children of Ashkenazi Jews being less
likely to exhibit hyperuricemia (Lai et al., 2012). Despite being a risk factor for increased morbidity, the
genetic and mechanistic causes of increasing uric acid levels are not well known. Through elucidating the
biochemical role of uric acid in aging and aging-related diseases, new treatments targeting purine
metabolism in specific diseases and overall lifespan extension can be developed.
Humans differ from most other organisms in that we lack a functioning uricase (Uro) gene.
10
Approximately 10-15 million years ago, the great apes acquired a nonsense mutation in the urate
oxidase (uro), or uricase, gene located on exon 2, which is responsible for coding an enzyme that
catalyzes the degradation of uric acid into allantoin. Humans acquired two additional mutations that
further rendered the gene non-functional over subsequent years (Oda et al., 2002). This results in uric
acid being the final metabolite in the purine degradation pathway, shifting our metabolism and
potentially impacting our modern healthspan. This loss has led to an increase in average uric acid levels
in humans, which have been positively correlated with blood pressure levels (Leite, 2011). However, for
the majority of human history these levels have not reached a pathological state and hyperuricemia has
not posed a severe risk until relatively recently, when nutrient-rich diets have become more widely
available across the western world (Johnson et al., 2005a).
This is because diet is one of the two primary sources of purines obtained by the body, with the other
source being de novo synthesis. Purines from these two pathways, termed the salvage and synthesis
pathways respectively, are disposed of through a third pathway, purine degradation. With uric acid
being water soluble up to a concentration of approximately 380.57-404.46 µmol/L, pathological levels of
uric acid, termed hyperuricemia, are generally defined as blood serum concentrations above ~360
µmol/L for males and ~300 µmol/L for females (Khanna et al., 2012; Latourte et al., 2017; Richette et al.,
2017). Besides increasing blood pressure, uric acid is both an anti- and pro-oxidant, exhibiting each
characteristic in a concentration-dependent manner (Madlala et al., 2016). With humans consuming
more nutrient rich modern diets, the prevalence of people approaching these threshold levels is
increasing and the role of uric acid in aging needs to be further elucidated.
Aging-related pathologies impacted by uric acid and other purine metabolite levels.
11
Purine metabolites, in particular adenosine and uric acid, have been shown to play critical roles in
numerous aging-related pathologies. Adenosine is a key component in NAD/NADPH, and makes up part
of the cell’s primary energy molecules (Ansoleaga et al., 2015). In addition, adenosine can function as a
neurotransmitter, with one of its physiological impacts being control of the permeability of the blood-
brain barrier (BBB) (Carman et al., 2011; Rahman, 2009; Ribeiro et al., 2002). Specifically, an increase in
adenosine levels can lead to improper BBB permeability, potentially impacting uptake of uric acid and
other antioxidants into the brain.
Despite uric acid’s antioxidant properties, its dysregulation is more commonly negatively associated
with aging-related diseases. Incidences of hyperuricemia are associated with increased risk for
cardiovascular disease, hypertension, hypertriglyceridemia, non-alcoholic fatty liver disease, obesity,
and type 2 diabetes (Battelli et al., 2018). Inflammation and tumor genesis have also been linked with
hyperuricemia (Battelli et al., 2018).
Role of uric acid in free radical pathways
The property of uric acid that is thought to provide most of its beneficial health outcomes is its ability to
act as a sink for free radicals (Pu et al., 2017; Shen et al., 2013). This primarily manifests in its role with
reactive oxygen species, however uric acid is reported to have an intricate relationship with NADPH-
oxidase (NOX) (Madlala et al., 2016; Sautin et al., 2007). Various in vitro studies with human cells
(adipocytes, hepatocytes, aortic cells) have shown a NOX-dependent increase in reactive oxygen species
(ROS) following incubation with uric acid (Lanaspa et al., 2012; Madlala et al., 2016; Sautin et al., 2007).
Uric acid-linked ROS generation was also shown to be regulated by transforming growth factor (TGF)-b1
(a multifunctional cytokine that regulates cell proliferation and differentiation) in human patient data,
rat glomerular cells, and mouse osteoblasts and kidney fibroblasts (Bondi et al., 2010; Lin et al., 2009;
12
Sturrock et al., 2006; Talaat & El-Sheikh, 2007). These two pathways were shown to be connected when
human hepatocytes were exposed to TGF-b1 (Carmona-Cuenca et al., 2008). This study found increased
levels of Nox4, ROS, caspase activation, apoptosis, and cell death upon TGF-b1 exposure, all of which
were attenuated by targeted knockdown of NOX4.
The differing roles of uric acid seem to be dependent upon its localization. While extracellular uric acid,
primarily in blood serum, shows these antioxidant properties, intracellular uric acid tends to increase
the levels of ROS and RNS, resulting in a proinflammatory response and cell proliferation (Battelli et al.,
2018; Fini et al., 2012). A critical gene involved in this regulation is xanthine oxidoreductase
(XOR)/xanthine dehydrogenase (XDH) which degrades xanthine into uric acid and exists in each state in
a context-dependent manner (Battelli et al., 2018). One area where ROS/RNS regulation might play a
critical role in aging is in neurodegenerative disease (ND) (Guerreiro et al., 2009).
Paradoxical impact of purine metabolism in the development and progression of Alzheimer’s Disease
(AD)
There have been conflicting reports on the role of uric acid in neurodegeneration. Some show a negative
association between uric acid levels and ND risk and progression, though the concentrations tested tend
to be pathological. A study in rats tested this by showing that injection of a chemical inhibitor of uricase
combined with a supplement of uric acid led to decreased mental function through NF-κβ signaling and
inflammation (Shao et al., 2016). However, other studies have shown a decreased risk with high, but
normal, uric acid levels (Guerreiro et al., 2009; Latourte et al., 2017; Liu et al., 2017; Schirinzi et al.,
2017; Zhu et al., 2012a). Critically, a longetudinal study examining human patients with serum uric acid
levels ranging from low to pathological showed a protective effect of high uric acid levels that is lost
once hyperuricemia is reached (Liu et al., 2017). As highlighted previously, centenurians and progeny of
13
centenurians tend to have SUA levels in the high end of the normal range (Lai et al., 2012). Further
studies have shown that those subjects in lower quantiles of uric acid concentration, compared to other
subjects tested, tend to score lower on the Mini-Mental State Exam (MMSE) and are at a higher risk for
developing mild-cognitive impairment (MCI), a risk factor for Alzheimer’s Disease (AD) (Kim et al., 2006;
Rinaldi et al., 2003). Additional studies have shown a positive correlation between MMSE scores and
various antioxidants, including uric acid, and a negative correlation with the severity of AD (Pu et al.,
2017). However, the mechanisms by which uric acid exhibits these contradicting phenotypes, and what
leads to the switch, have not been fully resolved. A possible explanation is that hyperuricemia could
trigger an increased uptake of uric acid into the cell, where it induces an inflammation response due to
the differing role of XOR/XDH that then counteracts the benefits afforded by uric acid in serum.
The role of purine metabolism in cognitive health also extends to metabolites upstream of uric acid. One
example is the role of adenosine and adenosine receptors in neuronal activity, including sleep, arousal,
cognition, memory, neuronal damage and degeneration, and blood-brain barrier (BBB) permeability
(Ansoleaga et al., 2015; Boison, 2008; Carman et al., 2011; Ribeiro et al., 2002). Adenosine and
adenosine receptors are intricately linked with β-amyloid solubility and tau phosphorylation, with
blockage of receptor A2A preventing β-amyloid induced neurotoxicity (Angulo 2003 - A1 Adenosine
Receptors Accumulate in Neurodegenerative Structures in Alzheimer Disease and Mediate Both Amyloid
Precursor Protein Processing and Tau Phosphorylation and Translocation..Pdf, n.d.; Dall’lgna et al.,
2003). These connections between purine metabolism and cognitive health strongly suggest a need to
more fully understand the role of purine metabolism with age.
Previous methods used to identify genetic regulators of hyperuricemia
14
Genome-Wide Association Studies (GWAS) utilizing separate human cohorts of western European or
Chinese descent have identified genes associated with either serum uric acid levels or gout. Despite
these new clues to the hyperuricemia problem, it had not been possible to perform in vivo tests to
validate these genes due to the lack of applicable animal models, which has led to relatively few new
therapeutics being developed. With current hyperuricemia treatments having severe adverse reactions
in some patients, including a mortality risk in some users, new treatment targets could provide
alternative treatment plans that are less harmful to their patients.
A model that will allow for us to test these GWAS hits is Drosophila melanogaster which has been a
valuable model for human diseases due to the ease of genetic manipulation, cheaper cost of
maintenance and a short life cycle allowing hundreds of genes to be tested in a relatively short time.
Recent work in our lab (Kapahi) has established a uricase knockdown fly model that recapitulates
hyperuricemia health outcomes, making it ideal for testing human genes associated with this condition
(Lang et al., 2019). We observed that knockdown of uricase enhances the burden of concretions (stone-
like deposits) in the digestive and excretory systems and significantly shortens lifespan but only on a rich
diet. Similar results were obtained by adding purines to the diet. Furthermore, treatment with
allopurinol, which is used in humans to reduce hyperuricemia, rescues the deleterious effects of uricase
knockdown in the fly. Further, it was shown that genes involved in insulin-like signaling pathway (ILS),
which have been previously associated with gout in human cohorts, also influences uric acid levels and
concretion formation in D. melanogaster. Despite these findings, the mechanisms by which uric acid
levels influence concretion formation and reduced lifespan are still not fully understood. Utilizing GWAS
but going from model organism to humans can also be used to identify novel genes associated with
hyperuricemia. Thus, a valuable approach is to find novel associations between genes and purine
15
metabolite levels in the fly, then compare
the results to human studies
to provide insight into
pathways that regulate
hyperuricemia in humans.
Hyperuricemia and gout are
regulated by genetic
mechanisms not fully
understood.
Studies have found genetic
variants in humans that
associate strongly with serum
uric acid levels and gout, but
the mechanisms by which
these phenomena are
regulated are not well
understood. A known
signaling cascade that is
activated with nutrient-rich feeding is the Insulin-Like Signaling (ILS) pathway (Broughton & Partridge,
2009). There is also growing evidence from multiple GWAS of humans that uric acid transport genes
(e.g. ABCG2, SLC2A9) are critical in the pathology of gout and hyperuricemia, with the same genes being
identified in multiple large cohorts from around the world (Dubchak & Falasca, 2010; N. Lu et al., 2016;
Sulem et al., 2011). Despite these developments, treatment options for gout and hyperuricemia have
A B
C
Figure 1.3. U ric a se knockdown enhances uric acid concretion
formation in an age-dependent manner specifically on a high yeast
diet. (A) Dissected whole guts with Malpighian tubules of uricase KD
and control flies. Lower row depicts a magnification of inlay showing
concretion formation in the hindgut. (B) Concretion formation in uricase
KD and control flies reared on either LY or HY. (C) Concretion formation
in the hindgut of uricase KD and control flies reared on labeled diet for
14 days. The LY diet was supplemented with either purines (Pu), or as
negative control with pyrimidines (Py). (D) Complete recovery of
concretion formation in uricase KD flies via allopurinol treatment.
D
16
not expanded due to the lack of rapidly testable in vivo models (Fisher et al., 2017; Kuwabara, 2016).
While there are murine models for gout and hyperuricemia, their 2-3-year lifespan and experimental
costs make it overly challenging to rapidly and cost-effectively validate the role of computationally
identified genes in these diseases (Fisher et al., 2017; Kanbay et al., 2016; Perez-Ruiz et al., 2015;
Tovchiga & Shtrygol, 2012). Thus, utilizing a non-mammalian model to perform this validation is
essential. It has previously been impossible to utilize the strengths of non-mammalian organisms due to
the presence of the uro gene, which prevents buildup of uric acid in the fly. Due to the ease of genetic
manipulations in Drosophila, our lab has created a fly model that recapitulates this buildup of uric acid
via RNAi knockdown of uricase and leads to the formation of concretions analogous to human kidney
stones (Figure 1.3A). This model also recapitulates the diet-response of hyperuricemia, with a nutrient-
rich High Yeast diet (5% yeast extract, HY or DR) being required to exacerbate the concretion phenotype
compared to a Low Yeast diet (0.5% yeast extract, LY or AL) (Figure 1.3B). This effect of a HY diet
appears to occur due to the increased level of purines, with purine supplementation of a LY diet being
sufficient for inducing the concretion phenotype (Figure 1.3C). Due to uric acid being a downstream
product of purine degradation, this provides a simple system for determining if additional manipulations
modify purine metabolism and effect uric acid levels. Moreover, the drug allopurinol, a known inhibitor
of uric acid synthesis already used to treat hyperuricemia in humans, completely recovered the wildtype
concretion phenotype (Figure 1.3D). There are many conserved genes between flies and humans,
including the ILS and transporter genes mentioned above. I aim to identify the role of these fly orthologs
of the identified human genes in this fly model and elucidate the mechanisms driving hyperuricemia. As
Drosophila offers both the conserved genetic components to allow useful application of genetic
discoveries to humans as well as the simplicity of environmental and dietary regulation and ease of
robust measurements, it is the ideal model for such an investigation (Adachi et al., 2017; Köttgen et al.,
2013; Pineda et al., 2015). Furthermore, the genetic tools available for flies facilitate genetic
17
modifications for validation and further investigation (Dubchak & Falasca, 2010; N. Lu et al., 2016;
Pendse et al., 2013; Sulem et al., 2011).
Reduction in concretion formation does not equate to a recovery in lifespan.
We observed that increasing uric acid levels in the fly leads to a decrease in lifespan, with purine
supplementation also being sufficient to decrease lifespan (Figure 1.4). We have further observed in our
hyperuricemia fly model that decreasing the occurrence of concretion formation does not rescue this
shortened lifespan. With uric acid
being a product of purine
metabolism, these observations
suggest alternative lifespan-specific
pathways of purine metabolites,
potentially through increased
inflammation. The use of flies
facilitates analyses of this strange
phenotype due to its relatively short
natural lifespan. Through my investigation of the above traits, I have identified specific genetic loci
responsible for lifespan response which has provided targets that may be relevant to human disease.
Role of other tissues in maintaining Malpighian tubule homeostasis
Different tissues within an organism can interact to induce a phenotype, with known examples including
neuronal signaling via neuropeptides and hormone-based signaling (Bassett & Liu, 2014; Dietzl et al.,
2007; Osterwalder et al., 2001; Palanker Musselman et al., 2011). We have observed an upregulation of
A B
Figure 1.4: Uricase knockdown or purine supplementation
decreases lifespan (A) Survival curve for control (Control, grey)
and uricase knockdown flies (Uro-RNAi #1, red) on diets
containing a low (LY) or high yeast extract content (HY). (B)
Survival curve for flies on diets with LY with and without purine
substitution.
18
neuropeptide signaling between flies on a HY diet and those on a LY diet via a ribosomal tagging method
(unpublished), suggesting an enhanced neuronal role in maintaining homeostasis. With 3 of the 5
candidate genes identified in Chapter 3 having known neuronal roles yet affecting a phenotype in the fly
analog to the human kidney, it will be important to differentiate which tissue these candidate genes
enact their roles. The tissue-specific roles of these candidate genes could also explain the reason only
some of the candidates affect both the lifespan and concretion phenotypes.
Concentration- and context-dependent role of purine metabolism and metabolites in aging
The critical role of purine metabolites is evident by their role in both energy metabolism and antioxidant
defenses. However, whether this role is positive or negative depends on whether the concentrations of
these metabolites reaches pathological levels, alter the biochemistry of the brain, or where the
metabolite is localized. While studies have shown these roles, there is still not a clear understanding
about what regulates these differences. With the basics needing to be elucidated, our humanized fly
model of hyperuricemia offers an effective system in which to ask these questions in an efficient
manner. This will allow us to resolve questions about the role of changing purine metabolism and
hyperuricemia on aging and aging-related pathologies to be investigated, and in particular, the impact of
changing neurochemistry on aging-related cognitive decline and AD.
19
CHAPTER 2: MATERIALS AND METHODS
Fly lines, husbandry, and diet composition. We generated a hyperuricemia fly model by recombining the
RU486-inducible ubiquitous Gal4 driver daughterless-GeneSwitch-Gal4 with a uricase RNAi transgenic
line (Da-GS, Uro), and this fly line was crossed with either RNA inhibition (RNAi) or UAS overexpression
of the gene of interest for various experiments. All fly lines were maintained on standard fly yeast
extract medium containing 1.55% yeast, 5% sucrose, 0.46% agar, 8.5% of corn meal, and 1% acid mix (a
1:1 mix of 10% propionic acid and 83.6% orthophosphoric acid) prepared in distilled water. To prepare
the media, cornmeal (85 g), sucrose (50 g), active dry yeast (16 g, "Saf-instant") and agar (4.6 g) were
mixed in a liter of water and brought to boil under constant stirring. Once cooled down to 60˚C 10 ml of
acid mix was added to the media. The media were then poured in vials (~10 ml/ vial) or bottles (50
ml/bottle) and allowed to cool down before storing at 4˚C for later usage. These vials or bottles were
then seeded with live yeast just before the flies are transferred and used for maintenance of lab stocks,
collection of virgins, or setting up crosses.
For each cross, 12-15 virgin females of the Da-GS, Uro RNAi or another driver line were mated with 3-5
males of the altered expression line in bottles containing an intermediate diet with 1.55% yeast as a
protein source. Flies mated for 5 days, then were removed. 9 days later, non-virgin female progeny were
sorted onto an AL+ (standard diet with 5% yeast + 200 μM RU486) or AL- (5% yeast + ethanol) diet. 4 to
8 vials of 25 mated female flies per vial are collected for each diet, maintained at 25°C and 65% relative
humidity, and were on a 12-hour light/dark cycle. For gene knockdown experiments we used RNAi lines
from FlyORF, Vienna Drosophila Resource Center, and Bloomington Stock Center (Table S1) (Ashpole et
al., 2017). To investigate effects, we employed the Gal4-UAS driver system for RNAi in specific tissues, as
well as the drug-inducible Geneswitch system. Flies were maintained under these conditions and
concretion formation and lifespan were tested. With the exception of strains created by Bloomington in
20
the valium background, all other fly strains were routinely outcrossed 6 times into the w1118
background to achieve genetic background homogeneity amongst different strains and provide
isogenization. Due to the difficulty in backcrossing, appropriate TRiP control lines, BL35785 and 36303
empty vector strains were used as background controls for the Bloomington lines in these backgrounds.
Concretion assay. Flies were maintained on an AL+ or AL- diet for 14 days. They were transferred to
fresh media bi-daily, at which point dead flies were removed. Following transfer on day 14, living flies
were frozen. Frozen flies were then placed on an agar plate with abdomens and anal plates within
droplets of water, and guts were dissected using surgical pliers to pull the anal plate. Flies were marked
as having a concretion if at least one concretion of any size was observed (Lang et al., 2019).
Starvation assay. For starvation assays, female flies (On AL media until specified day) were transferred to
vials containing 1% agar. The flies were transferred to fresh vials every 24 hours and deaths were
recorded every 4-6 hours.
Smurf gut permeability assay. Smurf assay was adapted as described (Rera et al., 2012). Female flies
were fed an AL diet before the assay. Flies were placed in a vial containing AL food supplemented with a
2.5% blue dye (FD&C #1) in water. Flies were maintained on blue dye food for 24 hours at 25°C, then
examined under a light microscope.
Lifespan analysis. Flies developed on standard fly 1.5% yeast extract medium were transferred to the
necessary diet within 72 hours after eclosion. For survivorship analysis, vials with 25 mated females
were transferred to fresh food every other day and fly survival was scored by counting the number of
dead flies. Each lifespan was repeated at least once to generate independent biological replicates (Akagi
21
et al., 2018; Jin et al., 2020; Katewa et al., 2016; Sharma et al., 2020; Wilson et al., 2020). We used Cox
proportional hazards analysis implemented in the R package 'survival' to analyze the significance of the
interaction between two variables in several of the survival outcomes. We report the probability that
B1,2=0, from fitting the formula phenotype=B1*variable1+B2*variable2+B1,2*(variable1*variable2).
The respective p values are included in the text.
Genome-wide association mapping. We used DGRP release 2 genotypes, and FlyBase R5 coordinates for
gene models. As in Nelson et al., 2016, we used only homozygous positions and a minor allele frequency
of R 25% to ensure that the minor allele was represented by many observations at a given polymorphic
locus (Nelson et al., 2016; Wilson et al., 2020). The collected phenotype and genotype data were used as
input into an association test via ordinary least-squares regression using the StatsModels module in
Python (Seabold, S., Perktold, 2010). The linear model was phenotype = β1 x genotype + β2 x diet + β3 x
genotype x diet + intercept. Nominal p-values denoted as ‘‘genotype’’ report the probability that β1 ≠ 0,
and those denoted as ‘‘interaction’’ report the probability that β3 ≠ 0.
To avoid the potential for false positives at a given nominal cutoff owing to p-value inflation, we
calculated false discovery rates (FDR) via permutation as follows: for a given permutation i, we
randomized all strain-metabolite value associations across DGRP lines, retaining the true diet
assignment, and on this permuted dataset we carried out association tests for each marker in turn as
above. To account for multiple testing across the 111 metabolites (14 purine metabolites), we kept the
111 metabolite values for a strain together by randomizing the strain assignments. Effect size was the
coefficient for variables in each linear regression analysis. FDR values were calculated by taking the ratio
of the number of permutation p-values below a real p-value, divided by the number of permutations
run, over the total number of real p-values below that same real p-value and multiplying by 100, ie:
22
((sum(permpvalues<=sortedrealpvalues[pvalue])/PERMs)/(sum(realpvalues<=sortedrealpvalues[pvalue])
)*100)
High-performance liquid chromatography (HPLC) mass spectrometry (MS). High performance liquid
chromatography (HPLC) was performed using an Agilent 1260 UHPLC system and connected to a
Phenomenex Luna NH2 column (2 x 100 mm, 3 μm, 100 Å) and a SecurityGuard NH2 guard column 4 x 2
mm ID. Mass spectrometry (MS) was performed using a 5500 Triple-Quadrupole LC-MS/MS mass
spectrometer from Sciex fitted with a Turbo VTM ion source. Sciex’s Analyst v1.6.1 (MacLean B,
Tomazela DM, Shulman N, Chambers M, Finney GL, Frewen B, 2010) was used for all forms of data
acquisition, development of HPLC method, and optimization of analyte-specific MRM (multiple reaction
monitoring) transitions. Skyline v4.1 was used for LC-MS/MS data analysis. For whole fly analysis, 5 flies
(in sextuplicates) per condition were flash-frozen over liquid nitrogen and subsequently homogenized
ultrasonically using a Fisher Scientific’s 550 Sonic Dismembrator with 50 μl of an 8:2 mixture of
methanol/water (v/v), containing 2.5 μM of 2-chloroadenosine as internal standard. Three 20 s pulses at
amplitude setting 3 of the instrument (on ice) were sufficient to completely homogenize fly specimens.
The homogenates were then vortexed for 5 times over a period of ~30 min (each 1 min long).
Subsequently, the samples were centrifuged at 10,000 rpm for 10 min, the supernatant was filtered, and
3 μl of each was injected for HPLC-MRM analysis (vide infra) without any additional processing. For the
analysis of fly deposits, samples were collected as described above and prepared for HPLC-MRM analysis
(vide infra) as described above for whole flies.
Optimization of analyte-specific MRM transitions, such as determination of suitable precursor and
product ions and optimal MS parameters for each transition (Q1, precursor ! Q3, product) were
achieved by isocratic flow injection of the 1–10 μM solution (final) for each standard, diluted in 80%
23
methanol. The most intense transition was used as quantifier, whereas one or more additional
transitions were used as qualifier for each compound (Lang et al., 2019). A final standard mixture of all
compounds at 5 μM (containing the internal standard 2-chloroadenosine at 2.5 μM), were prepared
prior to analysis and injected at the onset of each biological sample set.
Based on previous reports (MacLean B, Tomazela DM, Shulman N, Chambers M, Finney GL, Frewen B,
2010), the following HPLC program was developed: a solvent gradient of 20 mM ammonium acetate +
20 mM ammonium hydroxide (pH = ~9.5) + 5% acetonitrile (aqueous)–acetonitrile (organic) was used
with 0.4 ml/min flow rate, starting with an acetonitrile content of 85% for 1 min, which was decreased
to 30% over 3 min and then to 0% over 7 min and held at 0% for 2 min. The HPLC column was
subsequently reconstituted to its initial condition (acetonitrile content of 85%) over the next 1 min and
re-equilibrated for 7 min. Metabolome extracts from whole flies or deposits were analyzed by HPLC-
MRM with positive/negative switching of source ion modes (MacLean B, Tomazela DM, Shulman N,
Chambers M, Finney GL, Frewen B, 2010). Source conditions were as follows: curtain gas (CUR) 20,
collision gas (CAD) 7, ion source gas 1 (GS1) 30, ion source gas 2 (GS2) 30, ionspray voltage (IS) ±4500 V,
and source temperature (TEM) 450˚C. Quantification was based on integration of analyte-specific peaks
obtained from HPLC-MRM runs.
Gene expression analysis. To determine gene expression in a normal system, we sampled 3 biological
replicates of 3-5 whole mated female flies after two weeks on both diets. We isolated RNA using Zymo
Quick RNA MiniPrep kit (R1054) (Zymo Research, Irvine, CA). cDNA of isolated RNA was synthesized
using the iScript™ cDNA Synthesis Kit from Bio-Rad (Bio-Rad 1708890) following the manufacturer’s
protocol. For qRT-PCR, we quantified Cp values for 3 technical replicates per sample using the Faststart
SYBR Green qPCR mix (Sigma-Aldrich 04673484001) and followed manufacturer’s instructions with a
24
Roche Lightcycler 480 II machine. Primer information can be found in Table S3.3. Bar plots show AL+
values for all biological and technical replicates normalized to the respective AL- control group and the
standard error. To validate the effects of RNAi or mutation on gene expression, we collected 3-5 whole
females following two weeks on their diet. We then isolated RNA from these samples, synthesized
cDNA, and performed qRT-PCR on the perturbed genes as described.
Western blot.
Western Blot with antibody against FAM214A using human transformed HepG2 hepatocytes, primary
rabbit polyclonal anti-FAM214A (Sigma HPA040180), at 1:1000, and secondary antibody IRDye 800 CW,
goat anti rabbit, at 1:10,000; A3. Blots were imaged using an Odyssey Imaging System.
Cell transfection.
Cells were transfected with (A) plasmids of pCMV3-hFAM214A and the empty vector using X-tremeGENE
HP DNA transfection reagent (Sigma) or (B) siRNAs of human FAM214A siRNA and non-targeted
(ThermoFisher) control using X-treme-GENE siRNA transfection reagents (Sigma) for 48 hours, and
following manufacturer protocols.
Intracellular uric acid measurement.
The intracellular uric acid levels were determined using Uric Acid Assay Kit (Sigma-Aldrich MAK077).
Mouse bone marrow derived macrophage (BMDM) differentiation
BMDMs were differentiated from bone marrows isolated from 10-week-old C57BL/6 mice in the
presence of 20% L929 cell-conditioned media for 7 days, which represented M0 macrophages. These
25
cells were subsequently treated with LPS (20 ng/ml) and INFγ (10 ng/ml) or IL-4 (20 ng/ml) for 24 hours
to polarize to M1 and M2 macrophages, respectively.
Mouse liver explant IL-1β treatment
Livers removed from 10-week-old C57BL/6 mice were cut in small pieces and placed in DMEM culture
medium containing 10% FBS for 2 days. The liver tissue explants were then treated with IL-1b (2 ng/ml)
in fresh DMEM media containing 1% FBS for 6 hours. The tissues were collected and washed with PBS
for 3 times and subjected to RNA extraction followed by quantitative RT-PCR analysis for FAM214A
expression.
Quantification and statistical analysis. Significance was determined between different gene expression
(qRT-PCR) data and phenotypic data at specific time points using the Wilcoxon test of the pcr_test()
function from the pcr package in R, unless otherwise specified. Significance of differences between
survival curves was assessed by Cox proportional hazards test. p < 0.05 was considered statistically
significant. Significant differences between experimental groups and controls were indicated by *. * = p
< 0.05, ** = p < 0.005, *** = p < 0.0005, nc = no change, and ns = not significant. Correlation between
traits was determined using the cor() function in R on all data points and calculating Pearson correlation
coefficients.
Principal Component Analysis (PCA). All DGRP metabolite and phenotype data for strains were first
scaled using the StandardScaler function of the sklearn package. Then missing values were imputed
based on the mean of all other strains for that trait. PCA was performed on all strains using the PCA and
fit_transform functions in the sklearn decomposition package to observe how well the combined
metabolome and phenome can separate samples by diet.
26
Pearson correlation analysis. Pearson correlations between all metabolites and phenotypes was
performed on all strains for each diet combination using the cor() function in the stats package.
Heatmaps were created for each correlation matrix with the corrplot function, using the ward.D2
hierarchical clustering method.
Random Forest Modeling. DGRP metabolite and phenotype data from each diet combination were split
into a response variable set composed of 7 lifespan traits [mean lifespan, median lifespan, max LS, day
95% of flies dead, initial mortality (α), rate of aging (β), and variance in day of death] and 3 healthspan
traits [glucose (μg)/weight (mg), triglycerides (μg)/weight (mg), and body weight (mg)], and a predictor
set containing the remaining traits. Missing values were imputed based on the mean of all other strains
for that trait using the SimpleImputer function in the sklearn.impute package. Predictor and response
traits were then split into training (75% of data) and test (25% of data) sets using the train_test_split
function in the sklearn.model_selection package. Random Forest models were generated using the
RandomForestRegressor function in the sklearn.ensemble package using 10000 estimators. Mean
absolute percentage error and R
2
values were determined using the mean_squared_error and r2_score
functions in the sklearn.metrics package. Feature importance were extracted from the final model.
Network Diagrams. Network diagrams were created for all diet combinations using the networkx
package in Python to visualize and identify common traits or GWAS candidate genes among the Random
Forest models for each diet combination.
27
CHAPTER 3: A FLY GWAS FOR PURINE METABOLITES IDENTIFIES THAT HUMAN FAM214 HOMOLOG
MEDUSA ACTS IN A CONSERVED MANNER TO ENHANCE HYPERURICEMIA DRIVEN PATHOLOGIES BY
MODULATING PURINE METABOLISM AND THE INFLAMMATORY RESPONSE (Hilsabeck et al., pre-print
2022)
Abstract
Elevated serum urate (hyperuricemia) promotes crystalline urate tissue deposits and gout, with
associated inflammation and increased mortality. To identify modifiers of uric acid pathologies we
performed a fly Genome-Wide Association Study (GWAS) on purine metabolites using the DGRP strains.
We tested the candidate genes using the Drosophila melanogaster model of hyperuricemia and uric acid
crystallization in the kidney-like Malpighian tubule. Medusa (mda) activity increased urate levels and
inflammatory response programming. Conversely, whole-body mda knockdown decreased purine
synthesis precursor PRPP, uric acid, and guanosine levels, limited formation of aggregated uric acid
concretions, and was sufficient to rescue lifespan reduction in the fly hyperuricemia and gout model.
Levels of mda homolog FAM214A were elevated in inflammatory M1- and reduced in anti-inflammatory
M2-differentiated mouse macrophages and influenced intracellular uric acid levels in human HepG2
transformed hepatocytes. In conclusion, mda/FAM214A acts in a conserved manner to regulate purine
metabolism, promotes disease driven by hyperuricemia and associated tissue inflammation, and
provides a potential novel target for uric acid-driven pathologies.
Background
An increase in uric acid body burden, reflected in elevated circulating levels of urate (termed
hyperuricemia), promotes the development of tissue monosodium urate crystallization and uric acid
urolithiasis in gout (Dalbeth et al., 2016). Gout and hyperuricemia are prevalent in ~4% and ~21% of the
American adult population, increase with aging, and are substantial global public health problems
28
(Chen-Xu et al., 2019; Dehlin et al., 2020; Safiri et al., 2020). Significantly, hyperuricemia, with or without
gout, is associated with chronic kidney disease and several other disorders associated with aging,
including hypertension, metabolic syndrome, type 2 diabetes, and coronary artery disease (Zhu et al.,
2012b). Moreover, gout and hyperuricemia are positively correlated with and have been linked, as
independent risk factors, with premature death and higher cardiovascular and all-cause mortality in
clinical cohort studies (Adachi et al., 2017; Broughton & Partridge, 2009; Dietzl et al., 2007; Dubchak &
Falasca, 2010; Kanbay et al., 2016; J. Lu et al., 2018; Musselman et al., 2011; Pendse et al., 2013; Perez-
Ruiz et al., 2015; Pineda et al., 2015; Sulem et al., 2011).
Aging-related decline and hyperuricemia affect similar processes, including the interconnected
generation of reactive oxygen species (ROS) and inflammation (Battelli et al., 2018; Joosten & Johnson,
2020; Pu et al., 2017; Shen et al., 2013; Y. Zhou et al., 2018). Xanthine oxidase, which is responsible for
the direct enzymatic generation of uric acid, contributes to aging by promoting oxidative stress (Battelli
et al., 2016; Labat-Robert & Robert, 2014). However, the mechanisms by which hyperuricemia
contributes to aging are incompletely defined. Since uric acid is the end product of purine degradation in
humans, specifically defining the effects and regulation of uric acid in aging and aging-related diseases
could provide novel targets for specific diseases of aging and healthspan.
Here, we tested the hypothesis that specific natural genetic variants are responsible for variation in
levels of purine metabolites including uric acid. To do so, we used lines from the Drosophila Genetic
Reference Panel (DGRP) (Lang et al., 2019). Applying a Genome-Wide Association Study (GWAS)
approach, we assessed purine metabolite levels from DGRP lines raised under conditions under which
purine metabolism was differentially regulated by two different dietary conditions. We identified 5
genes that are associated with at least one purine metabolite (Dow & Romero, 2010). To determine the
role of these genes in purine metabolism and aging, we down regulated their expression in an in-house
hyperuricemia fly model (Chung et al., 2016). This fly model takes advantage of the highly conserved
29
purine metabolic pathway that includes multiple enzymes involved in de novo synthesis, salvage, and
degradation of purine intermediates. Our model inhibits the conserved enzyme, urate oxidase (Uro),
which catalyzes one of the final steps in purine degradation, the conversion of uric acid to allantoin.
Drosophila melanogaster is ideally suited to study both hyperuricemia and crystalopathies.
Crystalopathies and elevated uric acid can be achieved either through dietary supplementation or
inactivation of the gene xanthine dehydrogenase (Chen et al., 2011; Chi et al., 2015; Chung et al., 2016;
Hirata et al., 2012; Jin et al., 2020; Knauf & Preisig, 2011; MacKay et al., 2012; Sayer, 2017). Yet, there is
currently no study utilizing the power of Drosophila genetic tools to identify genes regulating the
pathological phenotypes caused by these changes to purine metabolism. We showed that the candidate
gene CG9005, which we rename as medusa (mda), is involved in purine regulation, the inflammatory
process, uric acid-induced concretion formation, and shortened fly lifespan. Little is known about this
gene, beyond it being previously identified as regulating the lifespan response to tunicamycin-induced
ER stress in flies (Chow et al., 2013). mda was also identified via ChIP-Seq of 3rd-instar fly larvae as a
target of the known ER stress response transcription factor xbp1 (Nègre et al., 2011; Ni et al., 2012;
Slattery et al., 2014). mda shares two domains, a domain of unknown function DUF4210 and the C-
terminal of protein FAM214/SPAC3H8.04, with its human ortholog, Family With Sequence Similarity 214
Member A (FAM214A); functions have not yet been defined for both domains and the ortholog39–41.
Investigating how mda regulates lifespan in our hyperuricemia model, we identified its role as a
regulator of the uric acid-induced immune response downstream of xbp1. Moreover, we demonstrate
regulation of FAM214A in M1-differentiated mouse inflammatory macrophages and its regulation of
intracellular urate via human transformed HepG2 hepatocytes. The work raises new questions about the
roles of altered purine metabolism and hyperuricemia in aging and aging-related pathologies. The
results presented in this study suggest mda/FAM214A is a novel and major component of the conserved
uric acid pathway that is relevant for metabolic diseases and aging. Importantly, mda/FAM214A is a
30
potential target to ameliorate the negative side effects of elevated urate burden, without the
detrimental consequences of targeting upstream genes with pleiotropic effects.
Results
Identifying variants associated with regulating purine metabolism.
To identify regulators of purine metabolism we used an expanded (111 vs 105 metabolites, Sup Files)
version of a previously published metabolomic dataset in the Drosophila Genetic Reference Panel
(DGRP) on either AL (5% yeast extract in food) or DR (0.5% yeast extract in food) for GWAS; this allowed
the discovery of genetic markers which associate with purine levels across multiple genotypes and
diets(Jin et al., 2020). The screen identified 5 candidate genes that associated with at least one purine
metabolite in female flies (Figure 3.1A). Three genes, cacophany (cac), the transcription factor hamlet
(ham), and medusa (mda) associated with guanosine, while stathmin (stai) and CG10362 both
associated with urate, which can act as a toxic product of the purine degradation pathway (Figure 3.1A).
None of the genes were previously known to participate in purine metabolism, with cac, stai, and ham
having neuron-related functions, and CG10362 being involved in intracellular signal transduction.
mda reduced guanosine in both a wild-type background and the hyperuricemia fly model.
To validate the GWAS candidates, we measured the impact of whole-body RNAi on the candidate gene’s
associated metabolite levels in mated female flies of a wildtype background using HPLC mass
spectometry (Figure 3.1B). Inhibition of mda significantly decreased levels of its associated metabolite,
guanosine (p=1.59E-02), validating the GWA result. We also used the fly model of elevated urate levels
to determine if the candidate genes could impact their associated metabolite in a model of elevated uric
acid (UA) levels (Lang et al., 2019). In the hyperuricemia fly model, uricase (uro) is inhibited in order to
31
elevate uric acid and simulate human purine metabolism. This model recapitulates some hyperuricemia
health outcomes, making it ideal for testing human genes associated with this condition (Lang et al.,
2019). The model exhibits a burden of concretions (stone-like deposits) in the kidney-like Malpighian
tubule excretory system, triggered by a rich diet that associates with significantly shortened lifespan. As
in the wildtype background, when mda was inhibited in our hyperuricemia fly model, it also significantly
decreased guanosine (Figure 3.1C, p=1.65E-02). Additionally, mda inhibition nearly completely
prevented the model’s increase in uric acid
32
33
Figure 3.1 – Whole-body mda RNAi reduces guanosine levels in wild-type and alters purine
metabolism in model, preventing increased uric acid levels, and rescuing the concretion
phenotype.
(A) Purine GWAS candidate genes and associated metabolites. (B) Fold change of associated
metabolite with inhibition (RNAi) or over expression (OE) of candidate gene in wildtype background
compared to uninhibited isogenic control flies fed food with ethanol instead of RU486 (indicated by
dashed line). (C) Purine metabolites with significant fold changes in model with concurrent mda
RNAi compared to model alone (uro RNAi alone represented by dashed black line). (D) Proportion
of flies with concretions in flies with uro RNAi alone or with concurrent candidate gene RNAi.
(Multiple comparisons made using Dunnett’s one-way ANOVA, with direct comparisons using two-tailed
Student’s t-test for first repetition, one-tailed for subsequent repeats, in excel) (E) Model of purine
metabolism, with metabolites in black and genes
significantly altered with concurrent mda RNAi in the model in red, with arrows indicating direction
of metabolite level or expression change. Mated females used for all experiments due to stronger
phenotypic responses. Comparisons made using Student’s t-test unless otherwise indicated.
Significant differences for all tests are indicated by *. * = p < 0.05, ** = p < 0.01, *** = p < 0.001 ,
**** = p < 0.0001. Whiskers on boxplots drawn to largest or smallest values if within 1.5 times
interquartile distance.
34
(Figure 3.1C, p=4.96E-04). The modulation of other purine metabolites, in both the wildtype and our
model, revealed mda to be a regulator of purine metabolism, particularly in a hyperuricemia context
(Figure 3.1C and Supp Figure 3.1A&B). In addition to regulating purine metabolite levels, mda regulates
expression of Xanthine dehydrogenase ortholog rosy (p=6.37E-05), GART ortholog ade3 (p=1.0E-02),
aprt (p=4.29E-03), and the 5’-nucleotide transferase ortholog veil (p=2.9E-04) (Supp Figure 3.1C).
Furthermore, inhibition of stai expression significantly altered its associated metabolite’s level in our
hyperuricemia model (Supp Figure 3.1A).
Inhibition of mda rescues the concretion and shortened lifespan phenotypes of the hyperuricemia fly
model.
While mda inhibition altered purine metabolism, we determined whether it rescued the hyperuricemia
model phenotypes of a shortened lifespan and concretion formation in the Malpighian tubules and
hindguts (Lang et al., 2019) (Supp Figure 3.1). Despite most candidates rescuing the concretion
phenotype, with ham as the exception, only cac and mda also rescued the lifespan reduction (Figures
3.1D, 3.2A, and Supp Figure 3.2). The transcription factor ham was the only candidate whose
knockdown increased the formation of concretions, yet it still did not significantly impact the model’s
lifespan phenotype (Figures 3.1D and Supp Figure 3.2). Since mda RNAi significantly altered its
associated metabolite, as well as its impact on the model’s concretion and lifespan phenotypes, we
focused on elucidating the mechanisms of mda. To identify the tissue where mda expression contributes
to the shortened lifespan, we first examined the tissue where concretion formation begins, utilizing a
uro-GAL4 driver to concurrently inhibit uro and mda expression primarily in the Malpighian tubules. We
found that mda
RNAi
in the Malpighian tubules had inconsistent effects on lifespan when inhibited
concurrently with uro in the Malpighian tubules. (Figure 3.2B and Table S3.2). However, inhibiting mda
35
in a wild-type background had minimal effects on lifespan, regardless of which tissue it was inhibited
(Figure 3.2B and Supp Figure 3.3).
Figure 3.2 - mda RNAi is sufficient to rescue the hyperuricemia model’s decreased lifespan phenotype
(A) Lifespan effect of whole-body mda RNAi in hyperuricemia model (uro RNAi) or (B) Breakdown of mda
RNAi lifespan effects in hyperuricemia model background (shaded red) or tissue-specific inhibition in
wildtype backgrounds (shaded grey). AL-/+ indicates flies fed ethanol or RU486, respectively. All p-
values from coxph() function in survival package in R. (Survival curves and cox proportional hazards
results can be found in Supp Figures 3.2, 3.3, and Table S3.3, respectively)
36
Considering that mda significantly rescued the hyperuricemia model traits, we decided to further
characterize the mechanisms by which it functions.
mda expression was regulated by xbp1.
To identify transcriptional regulators of mda, we used a transcription factor (TF) analysis utilizing
publicly available ChIP-Seq data from fly larvae (Nègre et al., 2011; Ni et al., 2012; Slattery et al., 2014).
This analysis showed mda to be a target for the endoplasmic reticulum (ER) stress response TF xbp1
during development. We confirmed that xbp1
RNAi
inhibited adult mda expression in our hyperuricemia
model, however xbp1 overexpression (OE) did not have a significant effect (Figure 3.3A and Supp Figure
3.4). Further, xbp1
RNAi
significantly rescued the concretion phenotype (Figure 3.3B), while xbp1 OE did
not tend to increase concretions. Despite these effects, neither inhibiting nor overexpressing xbp1
significantly impacted the model’s shortened lifespan (Figures 3.3C and 3.3D, respectively). To rule out
pleiotropic effects of xbp1 inhibition, we tested whether xbp1 inhibition was sufficient to shorten
lifespan in a wildtype background. Whole body inhibition in a wildtype background significantly
shortened lifespan (p<2.00E-16, Supp Fig 3.4), and its inhibition in the model did not separately increase
the hazard ratio (p=4.61E-01, Table S3.2). The lifespan effects of xbp1 inhibition are also confounded by
prior results demonstrating that its inhibition can be detrimental to longevity (Luis et al., 2016).
Together these results show that xbp1 regulates mda and the knockdown of either of these genes
rescues the concretion phenotype in the hyperuricemia model. Further, mda is a more specific target for
the downstream effects of hyperuricemia that is less likely to disrupt other key stress response
pathways.
37
Figure 3.3 – xbp1 regulates mda expression, but its modulation does not rescue lifespan. (A) mda
expression levels with RNAi of xbp1 (BL36755) or mda RNAi (BL33362) in hyperuricemia background
relative to uninhibited isogenic control flies fed food with ethanol instead of RU486. (B) Proportion of
flies with concretions with xbp1 or mda RNAi in hyperuricemia background. (Direct comparisons using
two-tailed Student’s t-test for first repetition, one-tailed for subsequent repeats, in excel) (C) Lifespan
with over expression (UAS) of xbp1 (BL60731) in hyperuricemia background. (D) Lifespan with inhibition
of xbp1 in hyperuricemia background. (Cox proportional hazards results can be found in Table S3.3.)
Significant differences for all tests are indicated by *. * = p < 0.05, ** = p < 0.01, *** = p < 0.001, **** =
p < 0.0001. AL-/+ indicates flies fed ethanol or RU486, respectively. Error bars of A and B represent SEM
between replicates.
38
mda was necessary for innate immune response in the hyperuricemia model.
Next, we sought to identify the pathways by which mda expression impacts lifespan and concretion
phenotypes. To do so, we performed qPCR of genes shown to be upregulated in the fly model (Lang et
al., 2019). We sought to determine if mda acts through reactive oxygen species gene NADPH-oxidase
(NOX), inhibition of which has previously been shown to rescue the hyperuricemia phenotypes. We also
tested the role of innate immunity, using diptericin A (diptA) and attacin B (attB) as readouts of an
activated inflammatory response. We found that inhibiting mda in our model almost completely
negated the increased expression of diptA and attB in the hyperuricemia model but did not significantly
prevent the increase in NOX (Figure 3.4A). Further, inhibition of diptA alone was sufficient to rescue the
model’s concretion (p=6.63E-03) and lifespan (p=1.03E-09) phenotypes (Figure 4B&C, respectively). This
suggests that mda’s mechanism of action is through regulating the immune response in a hyperuricemia
context, independently of the NOX pathway.
39
Figure 3.4 - mda inhibition dampens hyperuricemia model’s immune response, which is sufficient to
rescue fly model’s concretion accumulation and decreased lifespan.
(A) Diptericin A (diptA), Attacin B (attB), or NADPH-oxidase (NOX) expression levels in hyperuricemia
model (uro RNAi) alone or with concurrent mda RNAi normalized to uninhibited isogenic control flies fed
food with ethanol instead of RU486 (indicated by dashed line). (B) Proportion of flies with concretions in
flies with uro RNAi alone or with concurrent inhibition of diptA. (Direct comparisons using two-tailed
Student’s t-test for first repetition, one-tailed for subsequent repeats, in excel) (C) Lifespan with
inhibition of diptA in hyperuricemia background. (TRiP control strain BL35785, Cox proportional hazards
40
results can be found in Table S3.3.) AL-/+ indicates flies fed ethanol or RU486, respectively. Significant
differences for all tests are indicated by *. * = p < 0.05, ** = p < 0.01, *** = p < 0.001 , **** = p < 0.0001.
Error bars represent SEM between replicates.
41
FAM214A regulates intracellular uric acid in HepG2 cells.
To determine whether the effects of mda are conserved, we probed the ability of mda to regulate
intracellular uric acid (UA) in human cells known to produce uric acid. We first looked for changes in UA
when FAM214A was overexpressed or knockeddown in human hepatocyte cancer cell line HepG2. Cells
with overexpression of FAM214A had a significant increase in UA (p=0.016), while FAM214A knockdown
led to a significant decrease (p=0.008) (Figure 3.5A). To determine whether immune function of mda
was conserved in mammals, we then measured FAM214A levels in a murine immune cell model, Bone
Marrow-Derived Monocytes (BMDM) via western blot. FAM214A was low in resting macrophages (M0),
increased in cells differentiated to be proinflammatory (M1 macrophages), and near zero levels of
FAM214A protein detected in macrophages differentiated to be anti-inflammatory (M2 macrophages)
(Figure 3.5B). To determine if FAM214A expression is responsive to inflammatory signals, we treated
mouse liver tissue explants with IL-1β ex vivo. Treated livers had significantly higher levels FAM214A
expression (Figure 3.5C, p=0.003). These results show that mda/FAM214A regulation of uric acid levels
and immune response are conserved in flies and mammals.
42
Figure 3.5 – mda homolog FAM214A expression influences intracellular uric acid (UA) levels, is
differentially expressed in bone marrow derived macrophages (BMDM) and is upregulated in
response to IL-1β. (A) Both “gain-of-function” and “loss-of-function” approaches were used to
overexpress and knockdown FAM214A expression in human HepG2 cells via transient transfection. The
data were presented as fold changes relative to the vector control or control siRNA (bottom panels).
FAM214A protein expression was examined by Western blot analysis (top panels). Unpaired Student t-
test was used for the statistical analysis. (B) Top panel shows FAM214A protein expression in mouse
BMDM that were undifferentiated (M0) or differentiated to pro-inflammatory (M1) or anti-
inflammatory (M2) states, and here examined by Western blot analysis. Bottom panel shows FAM214A
expression normalized to β-actin by semi-quantitative densitometry analyses of Western blot images
from 9 different mouse donors. One-way ANOVA with Tukey multiple comparisons test was used for the
statistical analysis. (C) Upregulation of FAM214A mRNA expression by IL-1b ex vivo in mouse liver tissue
explants. Unpaired Student t-test were used for the statistical analysis. Error bars represent SEM
between replicates.
Discussion
43
The endproduct of purine metabolism is uric acid in humans and closely related primates, as opposed to
allantoin in the majority of organisms. This is due to the lack of human expression of a functional
uricolytic uricase gene (Friedman et al., 1985; Oda et al., 2002). The evolutionary benefits of humans
losing the uricase gene remain speculative (Johnson et al., 2005b, 2010; Oda et al., 2002). However, the
detrimental health outcomes arising from pathological elevation of circulating urate burden given the
current epidemic of obesity, in over 20% of Americans, render this an important area for drug discovery
(Zhu et al., 2011, 2012b). Beyond the more acute impacts of related pathologies due to crystallization of
sodium urate and uric acid, the shortened maximum fly and human lifespan caused by elevated urate
burden incentivizes pursuing new drug targets (Lang et al., 2019). Many recently identified genes that
impact hyperuricemia in the fly, such as IGF-1, FOXO, and NOX, have pleiotropic effects (Ashpole et al.,
2017; Greer & Brunet, 2005; Tsuchiya et al., 2012). As such, identifying downstream “effector” genes
offers the potential to not only treat the pathological outcomes, but also effects of human purine
metabolism on aging processes and lifespan.
Our findings raise new questions on the connections between lifespan, hyperuricemia, and pathologies
due to deposition of crystalline monosodium urate or uric acid. In this study, all the GWAS candidate
genes examined significantly altered the concretion phenotype. However, all but two failed to rescue
shortened lifespan in the fly model of hyperuricemia. Interestingly, despite only mda significantly
changing the levels of its associated metabolite, guanosine, all candidate genes altered other purine
metabolites in the fly model. These results support new approaches to studying and potentially treating
hyperuricemia. Treatments that target transporter gene candidates from GWAS of human gout patients,
such as SLC2A9 and its gene product GLUT9, may be impacting only limited health aspects of the disease
(Sulem et al., 2011). Further, since uric acid is the endproduct of human purine metabolism, these
44
observations point to the existence of alternative lifespan-specific pathways of purine metabolites,
potentially through treatments that abrogate uric acid-induced inflammatory responses.
The gene that we focused on, mda, has been uncharacterized except for its linkage to tunicamycin-
induced ER stress (Chow et al., 2013). medusa was also identified in a ChIP-Seq of 3
rd
-instar fly larvae as
a target of the known ER stress response transcription factor xbp1, providing further support for its role
in ER stress (Nègre et al., 2011; Ni et al., 2012; Slattery et al., 2014). We discovered that mda regulates
purine metabolism in a hyperuricemia context in vivo in the fly, modulating the levels of guanosine and
certain other purine metabolites, at least partly by effects on expression of the Xanthine dehydrogenase
ortholog rosy, GART ortholog ade3, aprt, and the 5’-nucleotide transferase ortholog veil. We
demonstrated that mda is an “effector” gene in the xbp1 ER stress response pathway which regulates
purine metabolism changes and the inflammatory response in a hyperuricemia context (Figure 3.6).
Studies of the human mda ortholog FAM214A, which had an unknown function, suggest that mda also
regulates intracellular uric acid levels, that mda contributes to the fly proinflammatory response to
hyperuricemia, and that FAM214A could impact pathophysiology in gout. Our results further suggested
that the mda human ortholog FAM214A could function in regulating purine metabolism, possibly as a
chaperone in the purinosome.
45
Figure 3.6 - mda regulates hyperuricemia model phenotypes through altering purine metabolism and
upregulating immune response.
Rescue of the fly hyperuricemia model concretion phenotype by mda knockdown, changes to purine
metabolite levels in the fly model, and partial rescue of shortened fly lifespan compared to little impact
on wildtype lifespan, mark mda as an intriguing potential drug target. Indeed, mda may be a novel
example of a gene involved in hyperuricemia that facilitates purinosome formation and promotes tissue
damage. Since closely related primates and humans have relatively high levels of circulating urate
compared to lower species, our findings may shed new light on approaches to lenghten and improve the
health quality of human lifespan.
46
SUPPLEMENTAL FIGURES
47
Supplementary Figure 3.1 – mda regulates purine metabolism in uro inhibited background, related to
Figure 3.1. (A) Whole-body purine metabolite fold changes in model alone or with concurrent RNAi or
over expression (OE) of candidate GWAS genes compared to model alone. (B) Whole-body purine
metabolite fold changes of candidate gene RNAi or OE throughout the body compared to its isogenic
control (AL+/AL-) in wildtype backgrounds. Blue-shaded cells indicate significant fold change compared
to uninhibited isogenic control (Unpaired Student’s t-test, p <= 0.05). Mean values followed by SEM, n=5
for each. (C) Whole-body purine metabolism gene expression in model alone or with concurrent mda
RNAi under the control of RU486. (Uninhibited isogenic control indicated by dashed line, comparisons
made using Wilcoxin sign-rank test in the pcr_test function of the R package pcr). AL-/+ indicates flies
fed ethanol or RU486, respectively. Significant differences for all tests are indicated by *. * = p < 0.05, **
= p < 0.01, *** = p < 0.001, **** = p < 0.0001. Error bars represent SEM between replicates.
48
Supplementary Figure 3.2 - GWAS candidate gene lifespans when concurrently inhibited in
hyperuricemia model using whole-body driver. (A) cacophony (cac) (B) stathmin (stai) (C) hamlet (ham)
(D) CG10362. AL-/+ indicates flies fed ethanol or RU486, respectively. (Cox proportional hazards results
can be found in Table S3.)
49
Supplementary Figure 3.3 - Tissue-specific mda RNAi in wildtype background shows little effect on
lifespan (A) Whole-body inhibition in adulthood under the control of RU486 and the Gene-Switch
system (GS), (B) Neuronal inhibition in adulthood using the GS system, (C) Constitutive whole-body
inhibition, TRiP BL36303 control, (D) Constitutive neuronal inhibition, TRiP BL35785 control, (E)
Constitutive neuronal inhibition, TRiP BL36303 control, (F) Constitutive Malpighian tubule inhibition,
50
TRiP BL35785 control. AL-/+ indicates flies fed ethanol or RU486, respectively. (Cox proportional hazards
results can be found in Table S3.3.)
51
Supplementary Figure 3.4 – xbp1
RNAi
inhibits mda expression, but its overexpression is not sufficient to
52
increase expression. (A) Medusa (mda) expression levels in hyperuricemia model (uro RNAi) alone or
with concurrent xbp1 RNAi or overexpression compared to uninhibited isogenic control flies fed food
with ethanol instead of RU486 (indicated by dashed line). (B) xbp1 RNAi lifespan in wildtype background
(black) or uro RNAi model (red). AL-/+ indicates flies fed ethanol or RU486, respectively. Cox
proportional hazards analysis in Table S3.3.
53
SUPPLEMENTAL TABLES
Supplemental Table 3.1. Fly strains used in Chapter 3.
54
55
56
57
58
Supplementary Table 3.2 - Cox proportional-hazards ratio
a
statistical analysis for lifespan effects in uro
model background (Comparison shaded red) or tissue-specific inhibition in wildtype backgrounds
(Comparison shaded grey). All p-values from coxph() function in survival package in R.
59
Supplemental Table 3.3. Primers used in Chapter 3.
60
Supplementary Table 3.4 - Concretion Summary and Replicate Information.
61
CHAPTER 4: A GWAS FOR LATE-LIFE MORTALITY IN DROSOPHILA IDENTIFIES DIABETES AND OBESITY
REGULATED TO REGULATE MORTALITY AND RESILIENCE.
Abstract
Variations in rate of aging in genetically heterogeneous populations support the hypothesis that aging is
at least partially genetically regulated. However, genetically identical individuals also vary in their time
of death even when maintained in the same environment. We have observed in D. melanogaster that
this variation is genotype dependent, as specific genotypes have characteristic survival curve shapes
that are largely reproducible. We hypothesize that there is an underlying genetic component to this
seemingly stochastic nature of lifespan curves. Typical aging studies reduce a strain’s lifespan down to a
population-level value, such as mean or max lifespan. While these metrics can represent the trends in a
population, they are unable to encapsulate the variation in the aging of individuals from the same
distinct population. Instead, we used two values that characterize the logistic fit of a strain’s hazard ratio
over its lifespan: the risk of initial mortality (α) and the rate of aging (β). To identify regulators of the
rate of aging and stochasticity of lifespan, we performed a Genome-Wide Association Study (GWAS) of β
for 160 different fly strains from the DGRP collection on two different diets late in life. This approach
identified the candidate gene Diabetes and Obesity-Regulated (DOR), which has known roles in stress
response, autophagy, and senescence, as having a role in the late-life mortality. DOR inhibition leads to
a significant increase in late-life mortality that is preceded by a reduction in healthspan-related traits.
Further, we’ve found that germline-specific inhibition is sufficient to shorten lifespan. We conclude that
a decrease in expression of DOR, a conserved gene, compromises an organism’s resilience, leading to a
decline in healthspan and increased mortality, providing a potential target for bolstering the decline
seen in human aging.
Results
62
Drosophila Genetics Reference Panel (DGRP) exhibit genotype- and diet-specific variation in late-life
mortality.
We first wanted to utilize a lifespan metric that better encapsulates a survival curve into a value that can
be used for Genome-Wide Association Studies (GWAS) and characterize the 160 DGRP strain lifespans
from Wilson et al, 2020. The survival data for each strain was first converted to a linear mortality curve
using the Gompertz equation (Gompertz, 1825). Since we were only interested in finding genes that
regulate late-life mortality, we limited the timepoints to between the average day 25% of flies were
dead across the DGRP on a high yeast diet (AL), day 21, and the day 95% of flies were dead for each
strain. The mortality curves on both diets were fit for each strain using the Gompertz equation,
characterizing an “initial mortality” (α) and “rate of aging” (β) for each strain on both diets. While both
of these are single values, they are determined based on the hazard ratios across the entire lifespan,
which captures a strain’s risk of death throughout its lifespan. On average, the DR diet significantly
reduced both α and β across strains (Figure 4.1A&B, Supp Fig 4.1). To identify candidate genes
associated with late-life β, we performed case-control GWAS for each diet, separately, as well as
quantitative GWAS of both diets, combined. Through case-control on an AL diet we identified multiple
candidate genes that associated with late-life β, including the genes Diabetes and Obesity-Regulated
(DOR) and Keap1, a gene in the Nrf2 oxidative stress response pathway, both regulators of autophagy
with human orthologs (Figure 4.1C).
63
Figure 4.1 - Drosophila Genetics Reference Panel (DGRP) strains show diet-specific variation in initial
mortality (α) and “rate of aging” (β). (A) Mortality plots of averaged initial mortality (α) and rate of
aging (β) for 160 DGRP strains on AL (red) or DR (blue). (B) Boxplot of DGRP strain beta values on AL and
DR. (C) Candidate table for case controlled GWAS of DGRP strains on AL. (D) Candidate table for case
controlled GWAS of DGRP strains on DR. (E) Candidate table for quantitative GWAS of DGRP strains on
AL and DR. ‘D21to95’ – Survival data from day 21 to day 95% of each strain is dead; LaHb – In case group
defined as strains with low α and high β. Beta refers to “rate of aging” value, β.
Loss of Diabetes and Obesity-Regulated is sufficient to increase mortality in a time-specific manner.
To validate the GWAS candidates, we determined the impact of whole-body RNAi on survival and late-
life mortality in mated female flies of a wildtype background. Normal diet-induced inhibition of DOR was
sufficient to shorten the lifespan starting around day 19 (Figure 4.2A). Further, both α and β were
significantly increased, with the linearized mortality curve showing a sharp increase in slope compared
to its isogenic control (Figure 4.2B). Keap1 inhibition also led to significant increases to both mortality
metrics which began around day 19 (Supp Fig 4.2A&B). Strikingly, the day 19 timepoint occurred just
64
before the early cutoff used for our GWAS. To determine if this timing was due to chance, or if DOR has
a time-specific effect on mortality, we delayed inhibition of DOR until day 19. Indeed, delayed inhibition
of DOR caused a delayed increase in mortality (Figure 4.2C). Considering that both candidate genes
came from the GWAS of flies on an AL diet, and DOR was previously identified to regulate obesity and
fat metabolism, we checked if they would show similar effects on a diet with a 10-fold reduction in
protein (DR) (Kapahi 2017, Wilson 2021). Both DOR and Keap1 significantly shortened lifespan and
increased mortality on DR, though only DOR showed a delay in the onset of the increased mortality
(Supp Fig 4.3). Homozygous DOR mutants also showed this delayed diet-independent effect (Supp Fig
4.4). These results suggest that while inhibition of both genes hinders autophagy, the mechanism of
DOR is responsive to factors that could accumulate or be delayed.
Figure 4.2 - Whole-body DOR RNAi decreases lifespan and increases initial mortality (α) and “rate of
aging” (β) in a time-specific manner. (A) Lifespan shortening of whole-body DOR RNAi (BL57770) using
GeneSwitch driver Da-GS. Number of flies listed in legend. (B) Best fit line of linearized mortality curves
for figure A. AL- control group colored blue, AL+ red. Points represent natural log transformed hazard
ratios for each timepoint. (C) Survival curves for whole-body (Da-GS driver) DOR RNAi starting at the
normal timepoint (red AL+) or a delayed inhibition beginning on day 19 (blue AL+). AL-/+ indicates flies
fed ethanol or RU486, respectively. All p-values calculated using coxph() function in survival package in
R.
65
Diabetes and Obesity-Regulated regulates organismal resilience and healthspan.
Since knockdown of DOR leads to such a strong increase in mortality, we tested whether it also impacts
other aspects of organismal health and resilience. A common method of assessing fly health is the
climbing assay (Piper et al., 2017). DOR inhibited flies were unable to climb as well as their isogenic
controls on day 19 (Figure 4.3A). Another function that assesses organismal health and is a strong
indicator of lifespan is gut homeostasis and barrier function which can be checked using the SMURF
assay (Wong et al., 2009). Gut barrier function decreases with age, and the SMURF assay determines the
proportion of a population with a “leaky” gut, turning them blue when fed a diet supplemented with
blue dye. Despite a significant decrease in this proportion due to the presence of RU486, there was a
significant increase in the proportion of DOR inhibited flies that were SMURF’d by day 19 (Figure 4.3B).
Since DOR inhibited flies showed poor healthspan at the start of the increased mortality window at day
19, we tested whether their ability to withstand a stressor, starvation, was impacted. Flies placed on
starvation media at day 19 were less able to survive under starvation conditions compared to their
isogenic controls (Figure 4.3C). Interestingly, while male lifespan was shortened with DOR inhibition, the
effect was delayed compared to their female siblings (Figure 4.3D).
66
Figure 4.3 - Whole-body DOR RNAi decreases healthspan and organismal resilience. (A) Percent of
population climbing at day 19. AL- RU486 control is shown in solid red, and AL+ RU486 group in dashed
red. Percent calculated out of total number of flies in each vial. (B) Proportion of flies in each vial that
show a SMURF phenotype of Da-GS crossed with TRiP BL35785 empty vector control or DOR RNAi
(BL57770) at day 19 on AL- or AL+. Comparisons made using ordinary one-way ANOVA. (C) Survival
curves for AL- and AL+ flies changed to starvation media on day 19. (D) Survival curves of whole-body
(Da-GS) DOR RNAi male (blue) and female (red) flies on AL- or AL+. AL-/+ indicates flies fed ethanol or
RU486, respectively. Control lines are shown as solid lines and RNAi groups as dashed lines.
Comparisons made using Student’s t-test unless otherwise indicated.
Loss of Diabetes and Obesity-Regulated increases inflammation and senescence factors.
To determine why DOR is necessary to retain overall healthspan and resilience, we collected flies on day
19 and performed an RNA-seq to identify altered pathways. The most significantly upregulated pathway
included genes with enrichment for the Toll and Imd signalling pathway, which includes many immune
response peptides such as drosomycin, diptericin, and multiple attacins (Figure 4.4A). Additionally, the
67
KEGG pathways that were significantly enriched with down regulated genes in ribosomal and oxidative
phosphorylation pathways (Figure 4.4B). We validated the following genes from the upregulated list,
diptericin A (diptA) and attB (attacin B), two immune response antibacterial peptide effectors (Figure
4.4C). Since the most highly upregulated genes were in an inflammatory response pathway and
considering the previously shown role of DOR’s homolog in regulating senescence factors, we
hypothesized that knockdown of DOR would cause an increase in senescence factors in the fly (B. Huang
& Vassilev, 2009; Peuget et al., 2014; Saadi et al., 2015; Sándor et al., 2015). Indeed, DOR inhibition led
to increased expression of two senescence factor orthologs, p53, dacapo (p21), as well as two
senescence-associated secretory peptides, upd1 (IL6) and mmp1 (Figure 4.4D). These results suggest the
importance of DOR in regulating the inflammatory response and specifically in preventing the
development of senescence.
68
Figure 4.4 - Inhibition of DOR
increases senescence factor and
inflammatory expression. (A)
KEGG Ontology terms for genes
with increased (A) or decreased (B)
expression seen in RNA sequencing
of whole-body (Da-GS driver) DOR
RNAi (AL+) vs DOR control (AL-).
Dot size represents the number of
upregulated genes in a KEGG term,
its color represents the adjusted p-
value. (C) Volcano plot of up and
down regulated genes for DOR
RNAi AL+ versus DOR RNAi AL-
comparison. Green dots represent
genes with significantly decreased
expression and red with
significantly increased. (D) Relative
expression values from qPCR for
immune response effector genes
diptA and attB. (E) Relative
expression values from qPCR for
Drosophila orthologs of
senescence factors p53 and p21. 3
biological replicates of 3 flies,
each, with 3 technical replicates
for each condition. Error bars of C
and D represent SEM between
replicates. Dashed blue lines mark
relative expression of AL- controls
set to an average of 1.
Comparisons made using
Student’s t-test unless otherwise
indicated. Significant differences
for all tests are indicated by *. * =
p < 0.05, ** = p < 0.01, *** = p <
0.001, **** = p < 0.0001.
Diabetes and Obesity-Regulated
regulates senescence in the
germline.
Since whole-body inhibition of DOR increases mortality, we were interested in seeing if its inhibition in a
particular tissue would recapitulate the detrimental phenotypes observed. Using multiple tissue-specific
69
drivers, only germline-specific DOR inhibition repeatedly shortened lifespan (Figure 4.5A). Given the
increase in senescence factors seen from whole-body inhibition and the sufficiency of inhibiting DOR in
the germline, we subjected both whole-body and germline-only DOR inhibited flies to 10 Gy of x-ray
irradiation after 7 days on either AL- (ethanol control) or AL+ (RU486 treated) food and maintained them
for an additional 7 days. We then collected the ovaries from these flies and stained them for SA-β-gal
and γH2AX. DOR inhibition significantly increased staining for both upon irradiation compared to the
non-irradiated DOR inhibited group (Figure 4.5B). Germline-specific inhibition strengthened the link
between DOR loss and germline senescence with significant increases of both β-gal and γH2AX
fluorescence in the non-irradiated group, and greater increases in the irradiated group (Figure 4.5C).
Taken together, these results show an increase in DNA damage and subsequent β-gal staining when DOR
is inhibited, suggesting an induction of senescence-related phenotypes.
Figure 4.5 - DOR regulates germline senescence. (A) Lifespan shortening of germline-specific DOR RNAi
(BL57770) using the constitutively active GAL4 driver nos.NGT-GAL4 (BL4442) on an AL diet. Driver
crossed with DOR RNAi shown as red line, and background control (yW Control) cross in blue. Number of
flies listed in legend. (B) Representative images of fluorescence staining of senescence-related factors
70
SA-β-Gal (green) and γH2AX (red) in ovaries dissected from whole-body (Da-GS driver) DOR RNAi
(BL57770) flies at day 19 on AL- (labeled Ctrl) or AL+ (labeled DOR trip) with and without 10 Gy x-ray
radiation. (C) Quantifications of mean fluorescence for all figures represented in B. Black dots represent
the mean fluorescence of one developing egg. Comparisons made using Student’s t-test unless
otherwise indicated. Significant differences for all tests are indicated by *. * = p < 0.05, ** = p < 0.01,
*** = p < 0.001 , **** = p < 0.0001.
Diabetes and Obesity-Regulated FENLL isoform expression increases resilience.
As DOR plays an important role in organismal survival, healthspan, and resilience, we were interested in
seeing if overexpression could increase these traits in a wildtype background. Overexpression of the
FENLL isoform showed inconsistent lifespan extension, while the other isoforms showed no lifespan
effects (Figure 4.6A and Supp Fig 4.5). Increased expression of the FENLL isoform was also sufficient to
decrease the proportion of SMURF’d flies at day 19 (Figure 4.6B). Moreover, the FENLL isoform
significantly decreased γH2AX and SA-β-gal fluorescence in the ovaries upon irradiation (Figure 4.6C&D).
In total, these results suggest the role of DOR in maintaining germline resilience and, consequently,
overall organismal health and survival.
71
Figure 4.6 - DOR FENLL isoform overexpression (OE) increases resilience. (A) Lifespan extension of
whole-body DOR FENLL isoform OE using GeneSwitch driver Da-GS, AL- control shown as solid line, AL+
as dashed line. (B) Bar plots of the proportion of flies in each vial that show a SMURF phenotype at day
19 under control (AL-) or DOR FENLL OE (AL+) conditions. (C) Representative images of fluorescence
staining of senescence-related factors SA-β-Gal (green) and γH2AX (red) in ovaries dissected from
whole-body (Da-GS driver) DOR FENLL OE flies at day 19 on AL- (labeled Ctrl) or AL+ (labeled DOR OE)
with and without 10 Gy x-ray radiation. (D) Quantifications of mean fluorescence for all figures
represented in C. Black dots represent the mean fluorescence of one developing egg. Comparisons
made using Student’s t-test unless otherwise indicated. Significant differences for all tests are indicated
by *. * = p < 0.05, ** = p < 0.01, *** = p < 0.001, **** = p < 0.0001.
72
Discussion
The genes underlying an individual’s resilience, taken here to be both the healthspan and lifespan,
remain to be elucidated. The mechanisms that impact late-life mortality and a decrease in resilience, in
particular, are still poorly understood. While an individual’s frailty is a good marker for aging-related
decline in humans, the specific mechanisms that fail are largely unknown (Banzato et al., 2019; Elliott et
al., 2021; Mitnitski et al., 2017; Whitehead et al., 2014). In this study, we utilized a previously published
dataset of DGRP fly survival data on two diets to identify genes that associated with late-life mortality
rate. We demonstrate that the gene DOR plays a role in maintaining a fly’s resilience, and that its loss
triggers a time-specific decline in healthspan and increase in mortality. Further, the increased mortality
was also seen in flies on a DR diet, though delayed. These results suggest that DOR regulates the ability
of the organism to respond to damage accumulated over time. Previous studies of TP53INP1&2, the
DOR homologs, have identified it as a key regulator of stress response and senescence factors (B. Huang
& Vassilev, 2009; Peuget et al., 2014; Saadi et al., 2015; Sándor et al.,
2015). Indeed, DOR inhibited flies showed strong increases in various
immune response and senescence pathways (Figure 4.4 and Table 4.1).
While these increases suggest a role of DOR/TP53INP1&2 in overall
health, these have not been previously shown.
Table 4.1. Senescence phenotypes observed in mice vs flies.
Comparison of senescence phenotypes seen in mice versus what we
saw altered by DOR modulation (Yousefzadeh et al., 2019). A
checkmark indicates the phenotype occurs in the species; a question
mark indicates it was not tested.
While characterizing the healthspan of these flies, it was observed this
too declined on the same timeline as the increase in mortality. Each healthspan metric suggested a
potential tissue and mechanism for the mortality effect. The increased proportion of SMURF flies
suggested a role of the gut in the increased mortality, however the insufficiency of gut-specific DOR
73
inhibition in regulating mortality pointed to an alternative mechanism and tissue. Similarly, the
decreased survival under starvation stress suggested a role of the fat body. Despite this, DOR inhibition
in the fat body did not influence lifespan. Further investigation of other tissues showed that germline-
specific DOR inhibition was sufficient to cause a decreased lifespan. This, combined with the increase in
inflammatory and senescence markers, showed a potential mechanism by which germline inflammation
and senescence can impact the organism’s lifespan.
Previous studies have shown a role for DOR’s homolog, TP53INP1, in regulating germline G0/1 cell cycle
arrest in response to elevated ROS-related stress from germline nursing cells (Tomasini et al., 2005). We
showed that loss of DOR increases germline senescence in response to both age and radiation-induced
senescence. Furthermore, the overexpression of the DOR FENLL isoform was sufficient to protect from
both stressors. The role of DOR/TP53INP1&2 in germline senescence has not previously been studied,
and its connection of germline health and overall organism mortality add an interesting link to the
disposable soma theory of aging (Kirkwood, 1977). The ability of DOR FENLL overexpression to bolster
many of the healthspan traits that decline quickly when DOR is lost further point to its integral role in
maintaining overall organismal resilience. Indeed, an experiment to see if DOR FENLL overexpression
could rescue p16-3MR senescent mice is an obvious next step.
Even though the strongest effects of DOR loss were seen in one genetic background, we noticed variable
responses to DOR modulation in a second fly background. This variability in response suggests a
genotype-specific undergirding of resilience, where the resilience of different genetic backgrounds is
secured by other genetic mechanisms. Variable responses to alteration of other lifespan-related
pathways further support this suggestion. Our study points to the need for more comprehensive studies
on genetic variability and lifespan response. Further, it highlights the need to use more representative
metrics when attempting to represent overall lifespan.
74
SUPPLEMENTAL FIGURES
Supplemental Figure 4.1. Mortality Curves of 160 DGRP strains on AL and DR. Mortality curves plotted
for each strain on one of two diets differing in yeast extract concentration, AL (A) or DR (B). Each line
represents the linear best fit line of hazard rates measured every two days from day 21 to the day 95%
of that strain were remaining. There were an average of 200 flies for a single DGRP strain on each diet.
75
Supplemental Figure 4.2. Loss of autophagy regulator Keap1 decreases initial mortality and rate of
aging. (A) Lifespan of flies with RNAi for Keap1 driven with Da-GS, throughout the whole-body. Numbers
are listed in figure legend. (B) Best fit lines of mortality curves for Keap1 survival curves using Gompertz
equation. Stats performed using the Cox proportional hazards analysis in the survival package of R
programming. P-values less than an alpha of 0.05 were considered significant. In survival plots, solid
lines represent control condition, dotted lines show RNAi.
Supplemental Figure 4.3. DOR and Keap1 inhibition have diet-independent effect on lifespan. (A)
Survival curves for whole-body RNAi of DOR (A) or Keap1 (C) on a DR diet using GeneSwitch-activated
driver following the expression pattern of the daughterless (Da) gene. The best fit lines of the gompertz
curves on each diet are shown for DOR (B) and Keap1 (D). For survival curves, solid lines represent
control condition, dotted lines show RNAi.
76
Supplemental Figure 4.4. Survival curves for DOR inhibition or homozygous mutants. (A) Whole-body
RNAi for DOR using BDSC strain 60389. (B) Homozygous DOR mutant of BDSC strain 42129 (B) or strain
23307 (C). AL shown in red, DR in blue. Solid lines represent control condition, dotted lines show RNAi.
N-values shown in each figure legend.
77
CHAPTER 5: COMMON METABOLITE AND PHENOTYPIC TRAITS UNDERLY LIFESPAN AND HEALTHSPAN
RESPONSE TO DIETARY RESTRICTION
Abstract
Different genotypes can respond to dietary conditions in varying ways, with drastically different lifespan,
healthspan, and metabolomic responses. These responses interact on a systems-wide level, where all
these traits can respond to each other to result in a phenotypic outcome. Dietary restriction (DR) has
previously been shown to influence these traits, but not all genotypes respond in the same way. We
utilized previously published metabolomics, phenotypic, and GWAS data of Drosophila Genetic
Reference Panel (DGRP) flies that were raised under ad libitum (AL) or DR conditions to elucidate the
way lifespan and healthspan response traits are influenced. We found that many intra-dataset
correlations (ie, metabolites with metabolites), but relatively few inter-dataset correlations (ie
metabolites with phenotypes). By including all traits in a Random Forest modeling approach to model
these response traits, we found traits from each dataset were important features in these models. A few
of these traits, such as malondialdehyde and quinolate, have previously been shown to impact the
glucose levels and lifespan traits they were important in building. Additional metabolites and traits were
shown to be important for various models, including inosine monophosphate (IMP) and threonine for
maximum lifespan, glyceraldehyde for initial mortality and rate of aging, and citraconic acid for
triglyceride levels. We conclude that Random Forest modeling can identify traits already known to
influence their response trait, giving credence to other identified traits that have not previously been
linked. Further, we can identify common pathways that influence multiple lifespan and healthspan traits
through comparing the important traits for each model and the GWAS candidates for all traits.
Results
Variation in DGRP metabolite and phenotype dietary response
78
We combined datasets from expanded versions of previously published DGRP metabolite and
phenotype datasets from Nelson et. al. 2016, Jin et. al. 2020 and Wilson et. al. 2019 on both AL and DR
diets. From these data, we separated nine traits as response variables for modeling and used the
remaining traits as predictors. A Principal Component Analysis (PCA) of predictors, after removing
strains with incomplete data across all traits, failed to cluster into groups by diet. To determine if trait
values from these strains would allow the data to cluster by diet, we imputed averaged values across all
strains for these missing values. Strains with missing values included four that lacked data for the
majority of phenotypes but had data for all metabolites (DGRP strains 28149, 28154, 28206, and 28247),
and 33 additional strains with all metabolite data but missing at least one phenotype value (DGRP
strains 25181, 25186, 25187, 25188, 25197, 28131, 28134, 28137, 28143, 28145, 28150, 28151, 28152,
28153, 28165, 28166, 28174, 28189, 28192, 28194, 28199, 28200, 28227, 28239, 28242, 28246, 28255,
28258, 28260, 28263, 28264, 29660, and 37525). PCA of this imputed list clustered by diet and were
used for downstream analysis (Figure 5.1A). Diet was part of principal component (PC) 1, which
explained ~23.7% of the data’s variance. Approximately 32 principal components were sufficient to
explain 85% of the variance in the data (Figure 5.1B). Since diet explained a large portion of the
variance, we determined the dietary response of each DGRP strain for each trait (value on DR – value on
AL). In general, DGRP strains benefit from being on a DR diet, with almost all strains having decreased
body weight and an increase in most lifespan metrics (Figure 5.1C&D and Supp Figure 5.1). These data
demonstrate the variation in dietary response across the DGRP, and the few strains that do not benefit
from DR can give insight into the mechanisms underlying benefits of dietary intervention.
79
Figure 5.1. DGRP show strong strain-specific responses to diet (A) DGRP strain traits on a high yeast
(AL, red) or low yeast (DR, blue) diet plotted by top two principal components from Principal Component
Analysis (PCA). (B) Explained variance of all principal components from PCA displayed as bars, with the
cumulative explained variance shown as red line. (C-D) Bar graphs of DGRP strain dietary response (DR-
AL) in (C) body weight (mg) and (D) max lifespan.
80
DGRP dietary response shows few metabolites correlate with phenotypes
Before using the predictors to build models of the response traits, we looked for correlations between
the predictors. We found few correlations across data sets, with the majority of these being weak
correlations (Figure 5.2). To identify clusters of traits, we performed hierarchical clustering using the
Ward.D method. The strongest correlations on either diet, alone (DR or AL) or used in the same data set
(DR&AL), were between metabolites in the same pathway or between similar phenotypes (Supp Figure
5.2). This trend continued for correlations in dietary response (DR-AL), though the top three correlations
were between similar phenotypes rather than between metabolites. Unsurprisingly, the same pairs
were strongly correlated in all comparisons. The lack of strong correlations between any of the predictor
traits and the response traits point to a need for another method for identifying factors that could
predict and/or “build” these response traits.
81
Figure 5.2. DGRP trait dietary responses correlate with similar traits, but few metabolites correlate
with phenotypes. Heatmap of metabolite and phenotype dietary response correlations. Traits are
clustered via hierarchical clustering using the Ward method, with 5 clusters highlighted on the diagonal.
Pearson correlation values are shown as a gradient from 1 (dark blue) to -1 (dark red).
Common traits used to build random forest models of lifespan metrics.
To determine the predictor traits that contribute to determining the lifespan and healthspan response
traits, we built random forest models for each response using all predictor traits as inputs. Predictors
were used to build 10,000 initial models per response trait, with a final model being made based on the
initial 10,000. Predictors used to build the final models were given an “importance” score based on the
proportion of initial models for which they were included. Models were created for each diet alone,
82
both included, and the DR-AL response and the important predictor traits were plotted for each
response trait (Figure 5.3). Models for lifespan metrics in any dietary condition tended to be built with
climbing-related traits, excepting the DR-AL response lifespan models which were built by metabolite
traits (Figure 5.3B, E, F-I). Specifically, threonine, quinolate, methylhistidine, arginine, choline, and
glyceraldehyde were important traits for one or multiple lifespan models. The more traditional physical
response traits, glucose levels, triglyceride levels, and bodyweight, were built predominantly by
metabolites and protein levels (Figure 5.3A, C, D). Particularly, the models for glucose levels that
included the AL diet had malondialdehyde as the most important trait. Many of these traits have
previously been associated with the model trait found here, which suggest that the other traits used to
build these models are good candidates for influencing them.
We visualized the models and their important traits using a spring-based network organization of all
traits which groups them in similar clusters based on the push of common factors. These networks were
further augmented by the addition of top candidate GWAS genes, based on p-value. As expected, the
lifespan response traits were grouped together and had a few common candidate genes (Figure 5.4).
Similarly, climbing-related response traits clustered, though there were more common GWAS
candidates, particularly in the AL group (Supp Figure 5.4A). Visualizing the connections between these
three data sets in this manner gives a better sense of how these response traits are built, and the
genetics that underly them. These networks will be used to identify traits used to build multiple
response models, with traits identified to be relevant to humans via Mendelian Randomization selected
for validation in the fly (Figure 5.5).
83
Figure 5.3. Random Forest model compositions for 6 lifespan
and 3 healthspan traits. Predictor traits with model importance
of 0.02 or higher used to build Random Forest models of DGRP
trait dietary response of (A) body weight (mg), (B) maximum
lifespan, (C), glucose levels (μg) normalized by weight (mg), (D)
triglyceride levels (μg) normalized by weight (mg), (E) mean lifespan, (F) median lifespan, (G) initial
mortality (α) starting at day 21, (H) late-life mortality rate (β), and (I) variance in day of death. Models
built using 10,000 estimators using Python package sklearn’s RandomForestRegressor method, with
importance determined by proportion of estimators the trait was found.
84
Figure 5.4. Network diagram of DGRP dietary response models of response traits and the predictor
traits used to build them. Spring diagram of response traits (teal nodes) connected to predictor traits
with model importance of 0.02 or higher (red nodes) by grey edges whose widths represent their
importance. Nodes repel each other, forcing response traits built with similar predictor traits to be
pushed together (cluster).
85
Figure 5.5. Overall project workflow.
Discussion
Genetic variability has been shown to
greatly influence a strain’s response to
various conditions, including changes
to diet (Jin et al., 2020; Nelson et al.,
2016; Wilson et al., 2020). With dietary
restriction being one of the most
robust ways to impact lifespan and
other healthspan outcomes across species, understanding the genetics underlying beneficial responses
would help identify the mechanisms by which it functions (Wilson et al., 2021). While studies have
investigated similar connections, none have incorporated data from this many DGRP strains, nor have
they utilized our modeling and visualization approach (Everett et al., 2020; Jin et al., 2020; Rohde et al.,
2021; X. Zhao et al., 2022; S. Zhou et al., 2020). Here, we have demonstrated the variability in various
outcome responses on one of two diets, and the differing responses of each genotype. We have shown
that while trait levels may not correlate, they do play a role in different lifespan and healthspan
outcomes. Through an unbiased, data-driven approach, we confirmed the importance of traits
previously linked with their outcome variable.
Some examples of traits used to build our response models include the metabolite malondialdehyde,
which has previously been linked to glucose and triglyceride levels (Jalees & Rosaline, 2017; Moreto et
al., 2014; Noberasco et al., 1991). We found it was important for modeling glucose levels on AL and DR,
separately, as well as the DR-AL response in glucose and triglyceride levels. Another metabolite
previously associated with triglyceride levels, glyceraldehyde, was also found to be an important feature
86
in our DR-specific model. Additionally, this metabolite was important for our initial mortality and rate of
aging dietary response models. This follows from the studies showing glyceraldehyde and the enzyme
GAPDH are associated with lifespan (Hachinohe et al., 2013; Treaster et al., 2015). The metabolite
methylhistidine, previously linked to the RU486 lifespan effect, was important in our initial mortality
model on DR, and the dietary response in maximum lifespan (Landis et al., 2021). High levels of
methylhistidine have also been associated with both lower mortality (Said et al., 2021) and as a
biomarker of frailty (Kochlik et al., 2019). A downstream metabolite in the well-known kynurenine/NAD+
pathway, quinolate, that has previously been associated with aging, was an important feature in lifespan
models from both diets, separately, and the dietary response (Castro-Portuguez & Sutphin, 2020; Lugo-
Huitrón et al., 2013). Metabolites threonine, arginine, and choline were also important in our lifespan
and healthspan models and had previously been reported to influence lifespan (Bayliak et al., 2018;
Canfield & Bradshaw, 2019; Emran et al., 2014; J. Huang et al., 2021; Lombardi et al., 1968;
Ravichandran et al., 2018; Roe et al., 2017; Velazquez et al., 2019; Wu et al., 2012). Surprisingly, while
climbing and lifespan traits were previously shown to not be correlated, we found climbing traits to be
important in our models of lifespan (Wilson et al., 2020).
The identification of these already known traits lends credence to the ability of our approach to identify
underlying traits for lifespan and healthspan. Indeed, we found several traits previously unconnected to
their response trait that make promising candidates as potential regulators or biomarkers. Further, the
few GWAS candidates that are shared between traits could be used to influence multiple health
outcomes. The diet-specific nature of our models points to differing mechanisms by which the fly
responds to diet. In total, our work demonstrates the importance and value of incorporating multiple
data sets to understand how nature “built” systems that influence lifespan and healthspan traits. Our
approach also identifies several new potential mechanisms for how DR influences lifespan and
healthspan across multiple genotypes.
87
SUPPLEMENTAL FIGURES
Supplemental Figure 5.1. Variation of DGRP dietary response in lifespan and healthspan response
traits. Dietary response (DR-AL) of 160 DGRP strains in 7 lifespan and healthspan metrics, strains plotted
in ascending order.
88
Supplemental Figure 5.2. DGRP metabolite and phenotype trait correlations on DR and AL, together.
Heatmap of metabolite and phenotype value correlations on DR and AL, together. Traits are clustered
via hierarchical clustering using the Ward method, with 5 clusters highlighted on the diagonal. Pearson
correlation values are shown as a gradient from 1 (dark blue) to -1 (dark red).
89
Supplemental Figure 5.3. DGRP metabolite and phenotype trait correlations on DR alone. Heatmap of
metabolite and phenotype value correlations on DR. Traits are clustered via hierarchical clustering using
the Ward method, with 5 clusters highlighted on the diagonal. Pearson correlation values are shown as a
gradient from 1 (dark blue) to -1 (dark red).
90
Supplemental Figure 5.4. DGRP metabolite and phenotype trait correlations on AL alone. Heatmap of
metabolite and phenotype value correlations on AL. Traits are clustered via hierarchical clustering using
the Ward method, with 5 clusters highlighted on the diagonal. Pearson correlation values are shown as a
gradient from 1 (dark blue) to -1 (dark red).
91
Supplemental Figure 5.5. DR&AL combined Random Forest model compositions for 6 lifespan and 3
healthspan traits. Predictor traits with model importance of 0.02 or higher used to build Random Forest
models of DGRP traits on DR and AL, combined, of (A) body weight (mg), (B) maximum lifespan, (C),
glucose levels (μg) normalized by weight (mg), (D) triglyceride levels (μg) normalized by weight (mg), (E)
mean lifespan, (F) median lifespan, (G) initial mortality (α) starting at day 21, (H) late-life mortality rate
(β), and (I) variance in day of death. Models built using 10,000 estimators using Python package
sklearn’s RandomForestRegressor method, with importance determined by proportion of estimators the
trait was found.
92
Supplemental Figure 5.6. DR diet Random Forest model compositions for 6 lifespan and 3 healthspan
traits. Predictor traits with model importance of 0.02 or higher used to build Random Forest models of
DGRP traits on DR alone, of (A) body weight (mg), (B) maximum lifespan, (C), glucose levels (μg)
normalized by weight (mg), (D) triglyceride levels (μg) normalized by weight (mg), (E) mean lifespan, (F)
median lifespan, (G) initial mortality (α) starting at day 21, (H) late-life mortality rate (β), and (I) variance
in day of death. Models built using 10,000 estimators using Python package sklearn’s
RandomForestRegressor method, with importance determined by proportion of estimators the trait was
found.
93
Supplemental Figure 5.7. AL diet Random Forest model compositions for 6 lifespan and 3 healthspan
traits. Predictor traits with model importance of 0.02 or higher used to build Random Forest models of
DGRP traits on AL alone, of (A) body weight (mg), (B) maximum lifespan, (C), glucose levels (μg)
normalized by weight (mg), (D) triglyceride levels (μg) normalized by weight (mg), (E) mean lifespan, (F)
median lifespan, (G) initial mortality (α) starting at day 21, (H) late-life mortality rate (β), and (I) variance
in day of death. Models built using 10,000 estimators using Python package sklearn’s
RandomForestRegressor method, with importance determined by proportion of estimators the trait was
found.
94
Supplemental Figure 5.8. Network diagram of DGRP, DR and AL combined, models of response traits
and the predictor traits used to build them. Spring diagram of response traits (teal nodes) connected to
predictor traits with model importance of 0.02 or higher (red nodes) by grey edges whose widths
represent their importance. Nodes repel each other, forcing response traits built with similar predictor
traits to be pushed together (cluster).
95
Supplemental Figure 5.9. Network diagram of DGRP, DR only, models of response traits and the
predictor traits used to build them. Spring diagram of response traits (teal nodes) connected to
predictor traits with model importance of 0.02 or higher (red nodes) by grey edges whose widths
represent their importance. Nodes repel each other, forcing response traits built with similar predictor
traits to be pushed together (cluster).
96
Supplemental Figure 5.10. Network diagram of DGRP, AL only, models of response traits and the
predictor traits used to build them. Spring diagram of response traits (teal nodes) connected to
predictor traits with model importance of 0.02 or higher (red nodes) by grey edges whose widths
represent their importance. Nodes repel each other, forcing response traits built with similar predictor
traits to be pushed together (cluster).
SUPPLEMENTAL TABLES
Trait Associated Gene Geno P-val Diet
Acetoacetate hang 6.88E-25 DR-AL
Acetoacetate caps 2.50E-24 DR-AL
Acetoacetate hang 2.54E-24 DR-AL
Acetoacetate f-cup 3.23E-24 DR-AL
Acetoacetate CG14231 9.32E-24 DR-AL
Acetoacetate thoc5 9.55E-24 DR-AL
Acetoacetate RunxA 1.38E-23 DR-AL
97
Acetoacetate RunxA 1.39E-23 DR-AL
Acetoacetate CG14619 2.10E-23 DR-AL
Acetoacetate stumps 2.13E-23 DR-AL
Acetoacetate CG34353 2.58E-23 DR-AL
Acetoacetate PKD 2.77E-23 DR-AL
Acetoacetate ptr 3.04E-23 DR-AL
Acetoacetate CG34353 3.34E-23 DR-AL
Acetylcarnit csul 1.28E-46 DR-AL
Acetylcarnit form3 1.52E-46 DR-AL
Acetylcarnit Tie 2.55E-46 DR-AL
Acetylcarnit CanA-14F 2.78E-46 DR-AL
Acetylcarnit CG14200 2.85E-46 DR-AL
Acetylcarnit upd3 4.36E-46 DR-AL
Acetylcarnit Hr4 5.15E-46 DR-AL
Acetylcarnit CG12994 7.68E-46 DR-AL
Acetylcarnit CG5597 7.77E-46 DR-AL
Acetylcarnit CG9007 1.04E-45 DR-AL
Acetylcarnit CG32206 1.31E-45 DR-AL
Acetylcarnit AdoR 1.31E-45 DR-AL
Acetylcarnit DAT 1.32E-45 DR-AL
Acetylcarnit CG15745 1.38E-45 DR-AL
Acetylcarnit Tao 1.39E-45 DR-AL
Acetylcholin CG17839 3.35E-25 DR-AL
Acetylcholin ct 1.75E-24 DR-AL
Acetylcholin CG32773 2.49E-24 DR-AL
Acetylcholin CG7920 3.25E-24 DR-AL
Acetylcholin Rab40 7.75E-24 DR-AL
Acetylcholin Ptp99A 1.07E-23 DR-AL
Acetylcholin Rbp6 1.16E-23 DR-AL
Acetylcholin CG32773 1.21E-23 DR-AL
Acetylcholin Ptp99A 1.28E-23 DR-AL
Acetylcholin CG42255 1.88E-23 DR-AL
Acetylcholin Rab40 1.97E-23 DR-AL
Acetylcholin CG5549 2.01E-23 DR-AL
Acetylcholin dmrt93B 2.04E-23 DR-AL
Acetylcholin CG5873 2.25E-23 DR-AL
Acetylcholin CG10841 2.44E-23 DR-AL
Acetylcholin CG32773 2.51E-23 DR-AL
Acetylcholin Sh 2.59E-23 DR-AL
Acetylcholin CG9300 2.59E-23 DR-AL
Acetylcholin px 2.71E-23 DR-AL
98
Activityfly Pex7 3.97E-27 DR-AL
Activityfly gukh 4.64E-27 DR-AL
Activityfly CG5004 8.28E-27 DR-AL
Activityfly CG32088 9.80E-27 DR-AL
Activityfly pcm 2.05E-26 DR-AL
Activityfly gukh 2.20E-26 DR-AL
Activityfly CG4525 2.61E-26 DR-AL
Activityfly gukh 2.79E-26 DR-AL
Activityfly CG42797 3.85E-26 DR-AL
Activityfly CG43260 4.34E-26 DR-AL
Activityfly CG42732 4.42E-26 DR-AL
Activityfly CG1677 4.47E-26 DR-AL
Activityfly CG15576 5.35E-26 DR-AL
Activityfly velo 5.57E-26 DR-AL
Activityfly CG8281 6.00E-26 DR-AL
Activityfly gukh 6.45E-26 DR-AL
Activityfly pall 6.73E-26 DR-AL
Adenosine Psc 6.90E-43 DR-AL
Adenosine Psc 6.90E-43 DR-AL
Adenosine CG32373 8.62E-43 DR-AL
Adenosine CG32373 8.62E-43 DR-AL
Adenosine CG30091 1.44E-42 DR-AL
Adenosine CG30091 1.44E-42 DR-AL
Adenosine CG15199 1.86E-42 DR-AL
Adenosine CG15199 1.86E-42 DR-AL
Adenosine CG15199 4.48E-42 DR-AL
Adenosine CG15199 4.48E-42 DR-AL
Adenosine CG11726 2.34E-41 DR-AL
Adenosine CG11726 2.34E-41 DR-AL
Adenosine ths 3.02E-41 DR-AL
Adenosine ths 3.02E-41 DR-AL
Adenosine CG12263 3.66E-41 DR-AL
Adenosine CG12263 3.66E-41 DR-AL
Adenosine CG11253 4.47E-41 DR-AL
Adenosine CG11253 4.47E-41 DR-AL
AdipicAcid CG4080 8.63E-07 DR-AL
AdipicAcid CG4080 9.75E-07 DR-AL
AdipicAcid CG4080 1.06E-06 DR-AL
AdipicAcid eIF-4E 1.40E-06 DR-AL
AdipicAcid CG4080 5.39E-06 DR-AL
AdipicAcid CG30116 1.54E-05 DR-AL
99
AdipicAcid erm 1.76E-05 DR-AL
AdipicAcid sala 2.54E-05 DR-AL
AdipicAcid CG5001 3.33E-05 DR-AL
AdipicAcid scf 3.99E-05 DR-AL
AdipicAcid CG15894 4.04E-05 DR-AL
AdipicAcid btl 4.70E-05 DR-AL
AdipicAcid scrib 5.08E-05 DR-AL
AdipicAcid CG15894 5.44E-05 DR-AL
AdipicAcid sala 5.94E-05 DR-AL
AdipicAcid eIF-4E 6.35E-05 DR-AL
AdipicAcid CG5001 6.71E-05 DR-AL
AdipicAcid scf 6.80E-05 DR-AL
ADP Ptp52F 2.13E-11 DR-AL
ADP r2d2 1.44E-10 DR-AL
ADP CG31646 1.64E-10 DR-AL
ADP CG9492 3.48E-10 DR-AL
ADP r2d2 3.71E-10 DR-AL
ADP r2d2 4.36E-10 DR-AL
ADP SPR 4.83E-10 DR-AL
ADP Dys 5.32E-10 DR-AL
ADP Xpd 6.52E-10 DR-AL
ADP Ac13E 6.80E-10 DR-AL
ADP mbl 9.22E-10 DR-AL
ADP CG15611 9.35E-10 DR-AL
ADP Dys 1.05E-09 DR-AL
AgedecClimbi CG13157 4.64E-32 DR-AL
AgedecClimbi CG13157 6.16E-32 DR-AL
AgedecClimbi CG13157 7.82E-32 DR-AL
AgedecClimbi Hs6st 1.16E-31 DR-AL
AgedecClimbi Nipsnap 2.57E-31 DR-AL
AgedecClimbi mamo 7.06E-31 DR-AL
AgedecClimbi Nipsnap 8.85E-31 DR-AL
AgedecClimbi Nipsnap 9.37E-31 DR-AL
AgedecClimbi CG8834 9.62E-31 DR-AL
AgedecClimbi Nipsnap 1.03E-30 DR-AL
AgedecClimbi CG32773 1.20E-30 DR-AL
AgedecClimbi CG13157 1.33E-30 DR-AL
AgedecClimbi CG32773 1.36E-30 DR-AL
AgedecClimbi Nipsnap 1.85E-30 DR-AL
AgedecClimbi CG17600 2.60E-30 DR-AL
Agmanite Dys 0.0001059 DR-AL
100
Agmanite dnc 0.000227569 DR-AL
Agmanite ed 0.000235393 DR-AL
Agmanite Dll 0.000279502 DR-AL
Agmanite CG15270 0.000385581 DR-AL
Agmanite CG15270 0.000388281 DR-AL
Agmanite CG15270 0.000397144 DR-AL
Agmanite Kua 0.000402715 DR-AL
Agmanite ome 0.000414854 DR-AL
Agmanite CG2812 0.000515816 DR-AL
Agmanite cact 0.000542166 DR-AL
Agmanite Pde1c 0.000545748 DR-AL
Agmanite CG5525 0.000566788 DR-AL
Agmanite CG18558 0.000648562 DR-AL
Agmanite gol 0.000692448 DR-AL
Alanine CG11367 1.23E-20 DR-AL
Alanine CG43163 2.78E-20 DR-AL
Alanine siz 6.82E-20 DR-AL
Alanine siz 9.48E-20 DR-AL
Alanine CG32104 1.14E-19 DR-AL
Alanine CG14135 1.18E-19 DR-AL
Alanine CG5315 1.43E-19 DR-AL
Alanine capaR 1.76E-19 DR-AL
Alanine CG32104 1.94E-19 DR-AL
Alanine CG7694 2.36E-19 DR-AL
Alanine CG32104 2.52E-19 DR-AL
Alanine kcc 2.86E-19 DR-AL
Allantoin CG6048 5.60E-22 DR-AL
Allantoin luna 7.54E-22 DR-AL
Allantoin CG32755 1.00E-21 DR-AL
Allantoin CG13538 1.39E-20 DR-AL
Allantoin CG6048 1.49E-20 DR-AL
Allantoin CG3198 1.53E-20 DR-AL
Allantoin CG13004 1.61E-20 DR-AL
Allantoin CG13101 1.78E-20 DR-AL
Allantoin cana 2.49E-20 DR-AL
Allantoin beat-VI 3.25E-20 DR-AL
alphaDto CG34015 1.69E-07 DR-AL
alphaDto Eip75B 7.29E-07 DR-AL
alphaDto Grip 9.25E-07 DR-AL
alphaDto Sesn 1.11E-06 DR-AL
alphaDto CR44113 1.37E-06 DR-AL
101
alphaDto btsz 3.60E-06 DR-AL
alphaDto CG3955 4.38E-06 DR-AL
alphaDto CG10731 4.40E-06 DR-AL
alphaDto btsz 4.65E-06 DR-AL
alphaDto blanks 5.01E-06 DR-AL
alphaDto CG9760 5.10E-06 DR-AL
alphaDto Rbp2 6.03E-06 DR-AL
alphaDto CG43203 6.54E-06 DR-AL
alphaDto Rim 7.72E-06 DR-AL
alphaDto CG10731 7.82E-06 DR-AL
alphaDto CG32984 8.96E-06 DR-AL
alphaDto btsz 9.11E-06 DR-AL
alphaDto msn 9.50E-06 DR-AL
alphaDto sigmar 9.69E-06 DR-AL
alphaDto CG10731 1.10E-05 DR-AL
alphaDto for 1.14E-05 DR-AL
alphaDto CG31221 1.23E-05 DR-AL
alphaDto CG9531 1.36E-05 DR-AL
alphaDto svp 1.38E-05 DR-AL
alphaDto CG10731 1.44E-05 DR-AL
alphaDto CG18735 1.52E-05 DR-AL
alphaDto btsz 1.71E-05 DR-AL
alphaDto CR43643 1.74E-05 DR-AL
alphaDto CG4893 1.96E-05 DR-AL
alphaDto tou 2.26E-05 DR-AL
alphaDto TppII 2.30E-05 DR-AL
alphaDto btsz 2.31E-05 DR-AL
alphaDto CG13737 2.34E-05 DR-AL
alphaDto CG11349 2.43E-05 DR-AL
alphaDto btsz 2.86E-05 DR-AL
AlphaKetoglu dysc 5.65E-07 DR-AL
AlphaKetoglu CG42732 2.13E-06 DR-AL
AlphaKetoglu Pgam5-2 2.45E-06 DR-AL
AlphaKetoglu CR43297 3.15E-06 DR-AL
AlphaKetoglu ths 3.55E-06 DR-AL
AlphaKetoglu CG42732 3.73E-06 DR-AL
AlphaKetoglu Hil 4.66E-06 DR-AL
AlphaKetoglu PpY-55A 4.73E-06 DR-AL
AlphaKetoglu CG30440 4.82E-06 DR-AL
AlphaKetoglu mun 7.25E-06 DR-AL
AlphaKetoglu sas 8.42E-06 DR-AL
102
AlphaKetoglu dysc 8.53E-06 DR-AL
AlphaKetoglu CG3483 8.94E-06 DR-AL
AlphaKetoglu ths 9.67E-06 DR-AL
AlphaKetoglu bru-3 9.85E-06 DR-AL
Aminoisobuty lola 3.71E-54 DR-AL
Aminoisobuty CG5909 1.19E-53 DR-AL
Aminoisobuty Dys 1.41E-53 DR-AL
Aminoisobuty CG31145 1.75E-53 DR-AL
Aminoisobuty 5-HT7 1.79E-53 DR-AL
Aminoisobuty Ptp61F 1.09E-52 DR-AL
Aminoisobuty CG9059 1.12E-52 DR-AL
Aminoisobuty mamo 1.62E-52 DR-AL
Aminoisobuty Ptp61F 1.88E-52 DR-AL
Aminoisobuty CG34104 2.21E-52 DR-AL
Aminoisobuty CG13830 2.54E-52 DR-AL
Aminoisobuty CG5909 2.93E-52 DR-AL
Aminoisobuty jdp 3.17E-52 DR-AL
Aminoisobuty CG10830 3.56E-52 DR-AL
Aminoisobuty su(r) 3.61E-52 DR-AL
Aminoisobuty Ptp61F 4.02E-52 DR-AL
AMP CG15706 2.55E-12 DR-AL
AMP Drl-2 3.52E-12 DR-AL
AMP fas 3.81E-12 DR-AL
AMP Drl-2 1.09E-11 DR-AL
AMP Grip 1.17E-11 DR-AL
AMP Drl-2 1.27E-11 DR-AL
AMP CAP 1.85E-11 DR-AL
AMP zetaCOP 2.37E-11 DR-AL
AMP debcl 2.43E-11 DR-AL
AMP Prosap 2.95E-11 DR-AL
Anthranilate CG14239 9.89E-15 DR-AL
Anthranilate CG32521 3.66E-14 DR-AL
Anthranilate Mst35Ba 5.04E-14 DR-AL
Anthranilate CR32027 5.32E-14 DR-AL
Anthranilate slo 6.62E-14 DR-AL
Anthranilate CG14239 7.18E-14 DR-AL
Anthranilate nmo 1.82E-13 DR-AL
Anthranilate Mst35Ba 1.83E-13 DR-AL
Anthranilate CG6904 1.83E-13 DR-AL
Anthranilate cyr 1.98E-13 DR-AL
Anthranilate N 2.64E-13 DR-AL
103
Arachidonate Shroom 1.94E-10 DR-AL
Arachidonate CG3376 2.10E-10 DR-AL
Arachidonate exd 3.33E-10 DR-AL
Arachidonate baz 3.61E-10 DR-AL
Arachidonate baz 4.82E-10 DR-AL
Arachidonate nord 6.72E-10 DR-AL
Arachidonate axo 9.00E-10 DR-AL
Arachidonate CG14322 1.07E-09 DR-AL
Arachidonate tnc 1.31E-09 DR-AL
Arachidonate CG17211 1.32E-09 DR-AL
Arachidonate bgm 1.60E-09 DR-AL
Arachidonate rg 1.62E-09 DR-AL
Arachidonate CG10598 1.71E-09 DR-AL
Arachidonate CG33970 1.82E-09 DR-AL
Arachidonate dpr12 1.90E-09 DR-AL
Arachidonate baz 1.93E-09 DR-AL
Arachidonate baz 2.53E-09 DR-AL
Arginine Cip4 3.81E-39 DR-AL
Arginine Hsp83 6.14E-39 DR-AL
Arginine out 1.30E-38 DR-AL
Arginine pbl 3.58E-38 DR-AL
Arginine shep 4.64E-38 DR-AL
Arginine CG43955 6.24E-38 DR-AL
Arginine CG43955 6.39E-38 DR-AL
Arginine Mrtf 8.07E-38 DR-AL
Arginine sano 9.23E-38 DR-AL
Arginine CG18518 1.15E-37 DR-AL
Arginine CG9215 1.24E-37 DR-AL
Arginine Unc-89 1.41E-37 DR-AL
Arginine Fdxh 1.50E-37 DR-AL
Arginine bbg 1.64E-37 DR-AL
Arginine shep 1.87E-37 DR-AL
Arginine grh 2.23E-37 DR-AL
Asparagine klar 4.23E-16 DR-AL
Asparagine klar 6.67E-16 DR-AL
Asparagine CG6225 9.86E-16 DR-AL
Asparagine CG7886 1.18E-15 DR-AL
Asparagine CG7886 1.42E-15 DR-AL
Asparagine CG7886 1.86E-15 DR-AL
Asparagine bru-3 2.03E-15 DR-AL
Asparagine CG15036 2.15E-15 DR-AL
104
Asparagine CG34362 2.44E-15 DR-AL
Asparagine klar 2.64E-15 DR-AL
Asparagine CG43163 2.80E-15 DR-AL
Asparagine Ast 2.80E-15 DR-AL
Asparagine Ipk1 2.92E-15 DR-AL
Asparagine CG6006 3.26E-15 DR-AL
Asparagine bor 3.46E-15 DR-AL
Asparagine rdx 4.19E-15 DR-AL
Asparagine ths 4.54E-15 DR-AL
Asparagine Ubx 4.60E-15 DR-AL
Asparagine Ast 6.18E-15 DR-AL
Asparagine CG43163 6.33E-15 DR-AL
AUCLS blot 4.67E-18 DR-AL
AUCLS CG43693 1.53E-17 DR-AL
AUCLS 14-3-3zeta 1.79E-17 DR-AL
AUCLS SP2637 7.44E-17 DR-AL
AUCLS Spx 9.83E-17 DR-AL
AUCLS Nrt 1.41E-16 DR-AL
AUCLS mspo 1.85E-16 DR-AL
AUCLS CG3842 1.91E-16 DR-AL
AUCLS CG8508 2.17E-16 DR-AL
AUCLS CG31345 2.60E-16 DR-AL
AUCLS Ir94h 2.87E-16 DR-AL
AUCLS sxc 3.29E-16 DR-AL
AUCLS Prosap 3.71E-16 DR-AL
AUCLS CG3842 3.72E-16 DR-AL
AUCLS Rbp6 4.10E-16 DR-AL
AUCLS Rop 4.71E-16 DR-AL
AUCLS LpR2 4.75E-16 DR-AL
AUCLS Prosalpha3T 5.10E-16 DR-AL
AzelaicAcid CG4080 7.33E-14 DR-AL
AzelaicAcid CG4080 8.25E-14 DR-AL
AzelaicAcid Fhos 1.30E-13 DR-AL
AzelaicAcid dlp 1.35E-13 DR-AL
AzelaicAcid CG4080 1.41E-13 DR-AL
AzelaicAcid eIF-4E 1.50E-13 DR-AL
AzelaicAcid CG5888 2.16E-13 DR-AL
AzelaicAcid Awh 1.11E-12 DR-AL
AzelaicAcid otp 1.58E-12 DR-AL
AzelaicAcid Esyt2 1.72E-12 DR-AL
AzelaicAcid CG4080 1.85E-12 DR-AL
105
AzelaicAcid eIF-4E 1.93E-12 DR-AL
AzelaicAcid trpl 2.02E-12 DR-AL
AzelaicAcid CG15020 2.59E-12 DR-AL
AzelaicAcid CG32773 2.78E-12 DR-AL
AzelaicAcid CG42747 3.00E-12 DR-AL
betaDto CG7985 3.34E-10 DR-AL
betaDto Klp68D 5.13E-10 DR-AL
betaDto CG2254 6.05E-10 DR-AL
betaDto vir 8.06E-10 DR-AL
betaDto kuk 1.70E-09 DR-AL
betaDto CG9400 2.10E-09 DR-AL
betaDto CG12730 2.31E-09 DR-AL
betaDto Ntf-2r 5.57E-09 DR-AL
betaDto Upf2 7.29E-09 DR-AL
betaDto rdgA 8.62E-09 DR-AL
betaDto CG17781 8.93E-09 DR-AL
betaDto Cpr97Ea 8.99E-09 DR-AL
betaDto Ir64a 9.20E-09 DR-AL
betaDto Wwox 1.01E-08 DR-AL
betaDto spri 1.03E-08 DR-AL
betaDto chinmo 3.83E-07 DR-AL
betaDto sigmar 2.08E-06 DR-AL
betaDto PAPLA1 2.43E-06 DR-AL
betaDto CG8177 8.56E-06 DR-AL
betaDto CG42313 9.06E-06 DR-AL
betaDto brp 1.26E-05 DR-AL
betaDto l(2)not 1.60E-05 DR-AL
betaDto dre4 1.76E-05 DR-AL
betaDto CG3635 2.32E-05 DR-AL
betaDto CG9760 2.33E-05 DR-AL
betaDto CG6356 2.65E-05 DR-AL
betaDto Eip63F-2 2.87E-05 DR-AL
betaDto Nak 3.02E-05 DR-AL
betaDto hdc 3.03E-05 DR-AL
betaDto CG42732 3.39E-05 DR-AL
betaDto sNPF 3.71E-05 DR-AL
betaDto CG4238 4.87E-05 DR-AL
betaDto Su(dx) 5.22E-05 DR-AL
betaDto CG42492 5.28E-05 DR-AL
betaDto eag 5.57E-05 DR-AL
Betaine CG32791 3.65E-14 DR-AL
106
Betaine CG32791 4.47E-14 DR-AL
Betaine CG32791 4.53E-14 DR-AL
Betaine cert 7.51E-14 DR-AL
Betaine CG8861 7.71E-14 DR-AL
Betaine Antp 7.81E-14 DR-AL
Betaine aop 1.18E-13 DR-AL
Betaine CG32791 1.53E-13 DR-AL
Betaine lola 1.71E-13 DR-AL
Betaine cert 2.02E-13 DR-AL
Betaine CG8861 2.81E-13 DR-AL
Betaine CG32791 3.22E-13 DR-AL
Betaine PyK 3.55E-13 DR-AL
Betaine CG32791 3.71E-13 DR-AL
Betaine CG32791 4.09E-13 DR-AL
Betaine CG4674 4.54E-13 DR-AL
Betaine CG43444 4.79E-13 DR-AL
Betaine sima 5.11E-13 DR-AL
Bodyweightmg CG14431 3.45E-51 DR-AL
Bodyweightmg CG1677 7.37E-51 DR-AL
Bodyweightmg CG1677 8.71E-51 DR-AL
Bodyweightmg CG13711 1.45E-50 DR-AL
Bodyweightmg CG12963 1.50E-50 DR-AL
Bodyweightmg CG11255 2.18E-50 DR-AL
Bodyweightmg CG15892 2.22E-50 DR-AL
Bodyweightmg CG1677 2.97E-50 DR-AL
Bodyweightmg mus312 3.16E-50 DR-AL
Bodyweightmg Pde1c 4.07E-50 DR-AL
Bodyweightmg Kdm4B 5.03E-50 DR-AL
Bodyweightmg CG1677 5.48E-50 DR-AL
Bodyweightmg GV1 6.06E-50 DR-AL
Bodyweightmg unc-13-4A 8.58E-50 DR-AL
Bodyweightmg CG32982 1.08E-49 DR-AL
Bodyweightmg Aplip1 1.13E-49 DR-AL
Bodyweightmg NAAT1 1.71E-49 DR-AL
Cadaverine CG34104 7.18E-54 DR-AL
Cadaverine CG32698 7.36E-54 DR-AL
Cadaverine Hs6st 2.39E-52 DR-AL
Cadaverine CG3655 4.31E-52 DR-AL
Cadaverine CG10984 9.42E-52 DR-AL
Cadaverine Best4 1.87E-51 DR-AL
Cadaverine CG6145 2.41E-51 DR-AL
107
Cadaverine CG10144 2.56E-51 DR-AL
Cadaverine Inx7 4.08E-51 DR-AL
Cadaverine CG6145 4.86E-51 DR-AL
Cadaverine CG11660 5.08E-51 DR-AL
Cadaverine CG42594 5.48E-51 DR-AL
Cadaverine CG13426 6.46E-51 DR-AL
Cadaverine dally 8.32E-51 DR-AL
Cadaverine CG8270 1.02E-50 DR-AL
Cadaverine CG32698 1.05E-50 DR-AL
Cadaverine nAcRalpha-7E 1.07E-50 DR-AL
Cadaverine Cda4 1.16E-50 DR-AL
Cadaverine nAcRalpha-7E 1.23E-50 DR-AL
cGMP Or22c 3.72E-18 DR-AL
cGMP CG43813 4.14E-18 DR-AL
cGMP fz 1.39E-17 DR-AL
cGMP nAcRbeta-64B 2.45E-17 DR-AL
cGMP CG5080 2.72E-17 DR-AL
cGMP CG12075 3.15E-17 DR-AL
cGMP dpr6 3.25E-17 DR-AL
Choline CG14314 1.76E-27 DR-AL
Choline dally 7.21E-27 DR-AL
Choline Lapsyn 7.74E-27 DR-AL
Choline Fdxh 8.68E-27 DR-AL
Choline CG6765 1.14E-26 DR-AL
Choline Cdk7 1.45E-26 DR-AL
Choline Reck 2.34E-26 DR-AL
Choline CG10741 3.48E-26 DR-AL
Choline CG8949 4.22E-26 DR-AL
Choline CG32532 4.88E-26 DR-AL
Choline mamo 5.19E-26 DR-AL
Choline tara 5.47E-26 DR-AL
Choline Blimp-1 6.04E-26 DR-AL
Choline CG32532 6.83E-26 DR-AL
Choline Con 8.85E-26 DR-AL
CitraconicAc Vrp1 5.88E-18 DR-AL
CitraconicAc CG43174 1.31E-17 DR-AL
CitraconicAc CG9919 3.41E-17 DR-AL
CitraconicAc Ir68a 7.28E-17 DR-AL
CitraconicAc rod 7.95E-17 DR-AL
CitraconicAc CG30268 8.05E-17 DR-AL
CitraconicAc rod 1.01E-16 DR-AL
108
CitraconicAc CG43174 1.04E-16 DR-AL
CitraconicAc CG11414 1.25E-16 DR-AL
CitraconicAc CG9650 1.34E-16 DR-AL
CitraconicAc stg1 1.38E-16 DR-AL
CitraconicAc CG11413 1.42E-16 DR-AL
CitraconicAc CG14459 1.67E-16 DR-AL
CitraconicAc dally 1.74E-16 DR-AL
CitraconicAc GEFmeso 1.96E-16 DR-AL
CitraconicAc CG6758 1.96E-16 DR-AL
CitraconicAc CG42339 2.03E-16 DR-AL
Citrulline CG32113 4.35E-30 DR-AL
Citrulline CG31646 3.05E-29 DR-AL
Citrulline nAcRalpha-7E 4.12E-29 DR-AL
Citrulline sowah 2.42E-28 DR-AL
Citrulline AlstR 2.70E-28 DR-AL
Citrulline igl 3.66E-28 DR-AL
Citrulline shep 3.86E-28 DR-AL
Citrulline CG10051 6.45E-28 DR-AL
Citrulline CG9134 6.66E-28 DR-AL
Citrulline hth 7.96E-28 DR-AL
Citrulline rdgBbeta 1.03E-27 DR-AL
Citrulline CG15878 1.12E-27 DR-AL
Citrulline CG6142 1.26E-27 DR-AL
Citrulline CG31370 1.47E-27 DR-AL
ClimbingatDa CG2107 2.37E-26 DR-AL
ClimbingatDa CG2107 2.37E-26 DR-AL
ClimbingatDa CG43313 9.66E-26 DR-AL
ClimbingatDa Vsx2 9.67E-26 DR-AL
ClimbingatDa Hn 1.39E-25 DR-AL
ClimbingatDa Vsx2 1.82E-25 DR-AL
ClimbingatDa Vsx2 2.08E-25 DR-AL
ClimbingatDa CG43313 2.15E-25 DR-AL
ClimbingatDa CG32683 2.40E-25 DR-AL
ClimbingatDa CG43693 2.63E-25 DR-AL
ClimbingatDa bab1 2.72E-25 DR-AL
ClimbingatDa Vsx2 2.75E-25 DR-AL
Climbingatfi CG9400 5.32E-09 DR-AL
Climbingatfi CG5604 1.97E-08 DR-AL
Climbingatfi CG1695 6.35E-08 DR-AL
Climbingatfi CG9400 6.64E-08 DR-AL
Climbingatfi CG9400 1.01E-07 DR-AL
109
Climbingatfi CG9932 1.06E-07 DR-AL
Climbingatfi CG9400 1.56E-07 DR-AL
Climbingatfi CG1695 1.64E-07 DR-AL
Climbingatfi CG32521 1.86E-07 DR-AL
Climbingatfi CG9400 2.48E-07 DR-AL
Climbingatfi CG9400 2.54E-07 DR-AL
Climbingatfi stan 2.79E-07 DR-AL
Climbingatfi stan 2.96E-07 DR-AL
Climbingatfi Liprin-alpha 3.01E-07 DR-AL
Climbingatfi pr 3.10E-07 DR-AL
Climbingatfi CG5181 3.18E-07 DR-AL
Climbingatfi pr 3.25E-07 DR-AL
Climbingatfi CG43185 3.28E-07 DR-AL
Climbingatfi Fili 3.48E-07 DR-AL
Climbingatfi CG9932 3.51E-07 DR-AL
Climbingatfi CG9932 3.86E-07 DR-AL
Climbingatfi CG9932 3.89E-07 DR-AL
Climbingatse dpr9 1.15E-07 DR-AL
Climbingatse dpr12 4.82E-07 DR-AL
Climbingatse dpr12 6.36E-07 DR-AL
Climbingatse CG42730 6.78E-07 DR-AL
Climbingatse sws 8.19E-07 DR-AL
Climbingatse CG43336 8.75E-07 DR-AL
Climbingatse Cpr67B 9.13E-07 DR-AL
Climbingatse Su(var)2-10 1.01E-06 DR-AL
Climbingatse CR44305 1.02E-06 DR-AL
Climbingatse wb 1.33E-06 DR-AL
Climbingatse tam 1.43E-06 DR-AL
Climbingatse CG15283 1.66E-06 DR-AL
ClimbingAUC Dh44-R1 2.81E-30 DR-AL
ClimbingAUC 14-3-3zeta 3.61E-30 DR-AL
ClimbingAUC aret 3.96E-30 DR-AL
ClimbingAUC CG43693 3.98E-30 DR-AL
ClimbingAUC Dh44-R1 4.28E-30 DR-AL
ClimbingAUC CG43313 4.35E-30 DR-AL
ClimbingAUC CG3964 5.46E-30 DR-AL
ClimbingAUC Marf 5.64E-30 DR-AL
ClimbingAUC l(1)G0007 5.83E-30 DR-AL
ClimbingAUC CG43313 8.29E-30 DR-AL
ClimbingAUC CG43313 8.52E-30 DR-AL
ClimbingAUC Dh44-R1 9.65E-30 DR-AL
110
ClimbingAUC CG10920 9.85E-30 DR-AL
ClimbingAUC Dscam4 1.05E-29 DR-AL
ClimbingAUC mgl 1.16E-29 DR-AL
Climbingtren dao 1.77E-10 DR-AL
Climbingtren CG6426 5.86E-10 DR-AL
Climbingtren CG6426 6.07E-10 DR-AL
Climbingtren CG6426 6.57E-10 DR-AL
Climbingtren Samuel 7.30E-10 DR-AL
Climbingtren Samuel 7.87E-10 DR-AL
Climbingtren CG8177 1.19E-09 DR-AL
Climbingtren Fur1 1.59E-09 DR-AL
Climbingtren CG8177 1.79E-09 DR-AL
Climbingtren CG5217 1.96E-09 DR-AL
Climbingtren CG15657 1.96E-09 DR-AL
Climbingtren nAcRalpha-7E 1.99E-09 DR-AL
Climbingtren CG13081 2.24E-09 DR-AL
Climbingtren Amph 2.38E-09 DR-AL
Climbingtren l(2)05714 2.71E-09 DR-AL
Climbingtren CG6024 3.22E-09 DR-AL
Climbingtren CG6024 3.22E-09 DR-AL
Climbingtren elk 3.28E-09 DR-AL
CMP n-syb 1.54E-24 DR-AL
CMP Octbeta3R 1.57E-24 DR-AL
CMP CAP 1.96E-24 DR-AL
CMP na 2.14E-24 DR-AL
CMP CAP 2.21E-24 DR-AL
CMP CAP 2.54E-24 DR-AL
CMP na 2.73E-24 DR-AL
CMP na 3.94E-24 DR-AL
CMP CG8177 3.94E-24 DR-AL
CMP na 5.73E-24 DR-AL
CMP ush 5.78E-24 DR-AL
CMP CG42797 6.25E-24 DR-AL
CMP beat-Ib 6.66E-24 DR-AL
CMP CG42389 6.90E-24 DR-AL
CMP dnr1 7.26E-24 DR-AL
CMP RhoGAPp190 7.42E-24 DR-AL
CMP CG12093 8.31E-24 DR-AL
CMP dnr1 8.57E-24 DR-AL
Cystine CadN2 7.51E-20 DR-AL
Cystine CadN2 9.48E-20 DR-AL
111
Cystine CG7920 1.23E-19 DR-AL
Cystine CadN2 1.63E-19 DR-AL
Cystine CadN2 2.61E-19 DR-AL
Cystine CG5873 3.84E-19 DR-AL
Cystine Eip93F 5.10E-19 DR-AL
Cystine CG9400 6.64E-19 DR-AL
Cystine Ptp99A 8.23E-19 DR-AL
Cystine heph 8.44E-19 DR-AL
Cystine haf 8.46E-19 DR-AL
Cystine CadN2 8.88E-19 DR-AL
Cystine mld 9.06E-19 DR-AL
Cystine CG15803 9.55E-19 DR-AL
Cystine Mco1 9.86E-19 DR-AL
Cytidine CR43836 9.38E-59 DR-AL
Cytidine CR43836 9.38E-59 DR-AL
Cytidine CR43836 9.38E-59 DR-AL
Cytidine CR43836 9.38E-59 DR-AL
Cytidine CR43836 9.38E-59 DR-AL
Cytidine CR43836 9.38E-59 DR-AL
Cytidine CR43836 1.75E-58 DR-AL
Cytidine CR43836 1.75E-58 DR-AL
Cytidine CR43836 3.50E-58 DR-AL
Cytidine CR43836 3.50E-58 DR-AL
Cytidine CR43836 5.04E-58 DR-AL
Cytidine CR43836 5.04E-58 DR-AL
Cytidine CR43836 7.94E-58 DR-AL
Cytidine CR43836 7.94E-58 DR-AL
Cytidine CR43836 2.00E-57 DR-AL
Cytidine CR43836 2.00E-57 DR-AL
Cytidine Gycbeta100B 3.42E-57 DR-AL
Cytidine Gycbeta100B 3.42E-57 DR-AL
Cytidine CR43836 5.17E-57 DR-AL
Cytidine CR43836 5.17E-57 DR-AL
Cytosine CR43836 6.69E-55 DR-AL
Cytosine CR43836 6.69E-55 DR-AL
Cytosine CR43836 6.69E-55 DR-AL
Cytosine CR43836 6.69E-55 DR-AL
Cytosine CR43836 6.69E-55 DR-AL
Cytosine CR43836 6.69E-55 DR-AL
Cytosine CR43836 1.31E-54 DR-AL
Cytosine CR43836 1.31E-54 DR-AL
112
Cytosine Gef64C 1.56E-54 DR-AL
Cytosine Gef64C 1.56E-54 DR-AL
Cytosine CR43836 2.30E-54 DR-AL
Cytosine CR43836 2.30E-54 DR-AL
Cytosine CR43836 2.72E-54 DR-AL
Cytosine CR43836 2.72E-54 DR-AL
Cytosine CG7857 3.02E-54 DR-AL
Cytosine CG7857 3.02E-54 DR-AL
Cytosine TwdlX 3.11E-54 DR-AL
Cytosine TwdlX 3.11E-54 DR-AL
Cytosine CG42863 3.65E-54 DR-AL
Cytosine CG42863 3.65E-54 DR-AL
Daybelow Tie 4.37E-26 DR-AL
Daybelow mspo 9.80E-26 DR-AL
Daybelow CR43836 2.92E-25 DR-AL
Daybelow Tie 4.33E-25 DR-AL
Daybelow Mrtf 4.75E-25 DR-AL
Daybelow CG15817 5.41E-25 DR-AL
Daybelow CG15817 7.68E-25 DR-AL
Daybelow trio 1.04E-24 DR-AL
Daybelow CG33490 1.09E-24 DR-AL
Daybelow S-Lap3 1.23E-24 DR-AL
Daybelow Mrtf 1.31E-24 DR-AL
Daybelow CG32588 1.48E-24 DR-AL
Daybelow elk 1.60E-24 DR-AL
dayninetyfivepercentdead Kat60 2.29E-29 DR-AL
dayninetyfivepercentdead Mms19 3.12E-29 DR-AL
dayninetyfivepercentdead e(r) 7.46E-29 DR-AL
dayninetyfivepercentdead dpr8 9.33E-29 DR-AL
dayninetyfivepercentdead Mms19 9.73E-29 DR-AL
dayninetyfivepercentdead dpr8 2.22E-28 DR-AL
dayninetyfivepercentdead ple 2.32E-28 DR-AL
dayninetyfivepercentdead Pdp1 2.72E-28 DR-AL
dayninetyfivepercentdead Liprin-beta 3.01E-28 DR-AL
dayninetyfivepercentdead CG10598 4.20E-28 DR-AL
dayninetyfivepercentdead dpr8 5.65E-28 DR-AL
dayninetyfivepercentdead ple 5.69E-28 DR-AL
dayninetyfivepercentdead CG43163 6.43E-28 DR-AL
dayninetyfivepercentdead sif 7.52E-28 DR-AL
dayninetyfivepercentdead Aats-cys 8.66E-28 DR-AL
dayninetyfivepercentdead csw 1.05E-27 DR-AL
113
DGAP cngl 5.21E-16 DR-AL
DGAP CG32091 1.01E-15 DR-AL
DGAP CG42284 1.16E-15 DR-AL
DGAP Proc-R 1.22E-15 DR-AL
DGAP cngl 2.13E-15 DR-AL
DGAP CG34362 2.18E-15 DR-AL
DGAP CG42388 2.28E-15 DR-AL
DGAP cngl 2.66E-15 DR-AL
DGAP RhoGAP18B 3.04E-15 DR-AL
DGAP CG32773 3.04E-15 DR-AL
DGAP CG10710 4.02E-15 DR-AL
DGAP CG13040 4.46E-15 DR-AL
DGAP dysc 5.71E-15 DR-AL
DGAP Pdp 6.23E-15 DR-AL
DGAP CG7755 6.23E-15 DR-AL
DGAP l(3)72Dr 6.32E-15 DR-AL
DGAP kirre 6.43E-15 DR-AL
DLeucicAcid Con 5.43E-32 DR-AL
DLeucicAcid CG6767 6.83E-32 DR-AL
DLeucicAcid Dsp1 6.88E-32 DR-AL
DLeucicAcid Mbs 1.72E-31 DR-AL
DLeucicAcid CG43163 2.26E-31 DR-AL
DLeucicAcid fry 2.55E-31 DR-AL
DLeucicAcid pHCl 3.42E-31 DR-AL
DLeucicAcid CG42684 3.52E-31 DR-AL
DLeucicAcid CG10426 4.08E-31 DR-AL
DLeucicAcid dpr10 4.83E-31 DR-AL
DLeucicAcid CG16717 5.06E-31 DR-AL
DLeucicAcid twi 5.09E-31 DR-AL
DLeucicAcid fry 6.45E-31 DR-AL
DLeucicAcid pHCl 7.23E-31 DR-AL
DLeucicAcid CG16717 7.51E-31 DR-AL
DLeucicAcid CG10426 8.44E-31 DR-AL
DLeucicAcid trn 9.17E-31 DR-AL
FumaricAcid CG43174 8.08E-17 DR-AL
FumaricAcid CG43174 5.46E-16 DR-AL
FumaricAcid ey 1.49E-15 DR-AL
FumaricAcid GlcAT-P 1.60E-15 DR-AL
FumaricAcid GlcAT-P 1.82E-15 DR-AL
FumaricAcid toc 2.54E-15 DR-AL
FumaricAcid CG42594 1.10E-14 DR-AL
114
FumaricAcid CG6758 1.30E-14 DR-AL
FumaricAcid CG32085 1.32E-14 DR-AL
FumaricAcid ey 1.34E-14 DR-AL
FumaricAcid CR43621 1.61E-14 DR-AL
FumaricAcid CG32085 1.88E-14 DR-AL
FumaricAcid CG42524 1.92E-14 DR-AL
FumaricAcid ko 1.99E-14 DR-AL
FumaricAcid px 2.32E-14 DR-AL
FumaricAcid onecut 2.34E-14 DR-AL
FumaricAcid SP2637 2.42E-14 DR-AL
FumaricAcid CG33958 2.51E-14 DR-AL
GeranylPyrop metro 5.41E-51 DR-AL
GeranylPyrop CG11597 2.21E-50 DR-AL
GeranylPyrop CG10597 4.30E-50 DR-AL
GeranylPyrop CG5946 4.88E-50 DR-AL
GeranylPyrop CG32333 4.94E-50 DR-AL
GeranylPyrop CG5946 9.67E-50 DR-AL
GeranylPyrop ovo 1.42E-49 DR-AL
GeranylPyrop CG11597 1.48E-49 DR-AL
GeranylPyrop Gr10b 1.63E-49 DR-AL
GeranylPyrop dpr10 1.67E-49 DR-AL
GeranylPyrop CG10597 1.89E-49 DR-AL
GeranylPyrop sbr 1.92E-49 DR-AL
Glucoronate bru-3 7.15E-09 DR-AL
Glucoronate Ir56d 8.21E-09 DR-AL
Glucoronate sfl 1.04E-08 DR-AL
Glucoronate tutl 1.05E-08 DR-AL
Glucoronate CG5065 1.07E-08 DR-AL
Glucoronate kirre 1.26E-08 DR-AL
Glucoronate CG5746 1.59E-08 DR-AL
Glucoronate W 1.75E-08 DR-AL
Glucoronate Oseg1 2.13E-08 DR-AL
Glucoronate CG11686 2.27E-08 DR-AL
Glucoronate shn 2.32E-08 DR-AL
Glucoronate CG11686 2.34E-08 DR-AL
Glucoronate nAcRalpha-34E 2.45E-08 DR-AL
Glucoronate CG32773 2.56E-08 DR-AL
Glucoronate CG5065 2.60E-08 DR-AL
Glucoronate CG34245 2.63E-08 DR-AL
Glucose CG4662 2.27E-33 DR-AL
Glucose CG4662 2.29E-33 DR-AL
115
Glucose Hip1 6.27E-33 DR-AL
Glucose CG14321 6.75E-33 DR-AL
Glucose Hip1 7.70E-33 DR-AL
Glucose bnl 9.25E-33 DR-AL
Glucose GluClalpha 1.05E-32 DR-AL
Glucose Hip1 1.13E-32 DR-AL
Glucose Hip1 1.51E-32 DR-AL
Glucose CCKLR-17D1 1.77E-32 DR-AL
Glucose CG18208 1.80E-32 DR-AL
Glucose unpg 2.14E-32 DR-AL
Glucose Dys 2.41E-32 DR-AL
Glucose caps 2.80E-32 DR-AL
Glucose CG18208 2.82E-32 DR-AL
Glucose caps 3.35E-32 DR-AL
Glucose scramb1 4.05E-32 DR-AL
Glucose CG15547 4.45E-32 DR-AL
Glucose CG32106 5.18E-32 DR-AL
GlucoseugWei CG14315 5.93E-14 DR-AL
GlucoseugWei CG34411 6.12E-14 DR-AL
GlucoseugWei dpr8 6.13E-14 DR-AL
GlucoseugWei Eip63E 7.22E-14 DR-AL
GlucoseugWei Gip 7.73E-14 DR-AL
GlucoseugWei CG8838 1.50E-13 DR-AL
GlucoseugWei Ir67a 1.53E-13 DR-AL
GlucoseugWei klar 1.67E-13 DR-AL
GlucoseugWei Bre1 1.90E-13 DR-AL
GlucoseugWei klar 2.08E-13 DR-AL
GlucoseugWei Fas2 2.14E-13 DR-AL
GlucoseugWei CG42342 2.81E-13 DR-AL
GlucoseugWei CG5888 3.31E-13 DR-AL
GlucoseugWei Ptp61F 3.49E-13 DR-AL
GlucoseugWei CG31038 3.86E-13 DR-AL
GlucoseugWei CG42541 4.05E-13 DR-AL
GlucoseugWei jing 4.45E-13 DR-AL
Glutamicacid Ddr 9.44E-06 DR-AL
Glutamicacid bowl 9.48E-06 DR-AL
Glutamicacid CG31465 9.90E-06 DR-AL
Glutamicacid CG8303 1.10E-05 DR-AL
Glutamicacid CG31677 1.17E-05 DR-AL
Glutamicacid CG14085 1.26E-05 DR-AL
Glutamicacid enc 1.32E-05 DR-AL
116
Glutamicacid CG31677 1.39E-05 DR-AL
Glutamicacid Cyp317a1 1.49E-05 DR-AL
Glutamicacid CG31677 1.54E-05 DR-AL
Glutamicacid CG31677 1.60E-05 DR-AL
Glutamicacid sty 1.81E-05 DR-AL
Glutamicacid Indy 1.89E-05 DR-AL
Glutamicacid CG34362 2.01E-05 DR-AL
Glutamicacid kuz 2.14E-05 DR-AL
Glutamicacid CG1443 2.29E-05 DR-AL
Glutamicacid CG15395 2.33E-05 DR-AL
Glutamine Eip63E 9.38E-12 DR-AL
Glutamine Eip63E 9.48E-12 DR-AL
Glutamine CG3483 2.24E-11 DR-AL
Glutamine prom 4.52E-11 DR-AL
Glutamine Pgam5-2 4.84E-11 DR-AL
Glutamine prom 5.06E-11 DR-AL
Glutamine prom 5.52E-11 DR-AL
Glutamine CG31145 6.82E-11 DR-AL
Glutamine CG4563 7.95E-11 DR-AL
Glutamine CG3483 1.02E-10 DR-AL
Glutamine CG4563 1.29E-10 DR-AL
Glutamine mun 1.59E-10 DR-AL
Glutamine CG3483 1.59E-10 DR-AL
Glutamine CG30015 1.82E-10 DR-AL
GlutaricAcid CR43276 1.74E-05 DR-AL
GlutaricAcid Cpr11B 6.21E-05 DR-AL
GlutaricAcid CG3014 7.41E-05 DR-AL
GlutaricAcid CG34148 7.99E-05 DR-AL
GlutaricAcid btl 9.24E-05 DR-AL
GlutaricAcid btl 9.73E-05 DR-AL
GlutaricAcid btl 0.000121021 DR-AL
GlutaricAcid CG6398 0.000122256 DR-AL
GlutaricAcid CG6398 0.00012572 DR-AL
GlutaricAcid mmd 0.000131557 DR-AL
GlutaricAcid lola 0.000160349 DR-AL
GlutaricAcid CG12499 0.000166397 DR-AL
GlutaricAcid CG8034 0.000175441 DR-AL
GlutaricAcid l(2)k05819 0.000178684 DR-AL
GlutaricAcid mmd 0.000203949 DR-AL
GlutaricAcid run 0.000207023 DR-AL
GlutaricAcid acj6 0.000222434 DR-AL
117
GlutaricAcid CG11030 0.00022934 DR-AL
GlutaricAcid Pdcd4 0.000255832 DR-AL
Glycerate CG7886 7.83E-07 DR-AL
Glycerate caps 8.95E-07 DR-AL
Glycerate rn 1.33E-06 DR-AL
Glycerate Eip75B 1.47E-06 DR-AL
Glycerate CG34201 1.82E-06 DR-AL
Glycerate CG7945 2.00E-06 DR-AL
Glycerate Eip75B 2.09E-06 DR-AL
Glycerate shn 2.19E-06 DR-AL
Glycerate fry 2.43E-06 DR-AL
Glycerate MYPT-75D 2.86E-06 DR-AL
Glycerate Ubx 3.11E-06 DR-AL
Glycerate snRNA:U2:34ABa 3.37E-06 DR-AL
GlycerolP FR 2.84E-35 DR-AL
GlycerolP CG42578 6.54E-35 DR-AL
GlycerolP CG14786 6.82E-35 DR-AL
GlycerolP GstS1 1.19E-34 DR-AL
GlycerolP Proct 1.25E-34 DR-AL
GlycerolP CG15337 1.25E-34 DR-AL
GlycerolP ds 1.37E-34 DR-AL
GlycerolP CG9682 1.47E-34 DR-AL
GlycerolP CG42340 1.49E-34 DR-AL
GlycerolP CG14785 1.53E-34 DR-AL
GlycerolP CG16711 1.56E-34 DR-AL
GlycerolP inc 1.78E-34 DR-AL
GlycerolP inc 2.36E-34 DR-AL
GlycerolP CG15040 2.53E-34 DR-AL
GlycerolP CR44177 2.80E-34 DR-AL
Glycine CR44327 4.01E-30 DR-AL
Glycine CG5973 4.75E-30 DR-AL
Glycine CG32104 6.78E-30 DR-AL
Glycine CG32104 7.22E-30 DR-AL
Glycine CG32104 8.75E-30 DR-AL
Glycine CG32104 8.75E-30 DR-AL
Glycine CG4983 1.05E-29 DR-AL
Glycine ft 1.80E-29 DR-AL
Glycine CG33144 3.61E-29 DR-AL
Glycine sif 6.06E-29 DR-AL
Glycine CG5973 6.12E-29 DR-AL
Glycine CG4983 6.86E-29 DR-AL
118
Glycine mmy 8.80E-29 DR-AL
Glycine if 8.99E-29 DR-AL
Glycine Gef64C 9.38E-29 DR-AL
Glycine Ced-12 1.23E-28 DR-AL
GPGPFPFP Mmp1 1.09E-32 DR-AL
GPGPFPFP ACC 2.90E-32 DR-AL
GPGPFPFP hdc 8.21E-32 DR-AL
GPGPFPFP CG14120 1.73E-31 DR-AL
GPGPFPFP fog 1.97E-31 DR-AL
GPGPFPFP Ptp99A 2.05E-31 DR-AL
GPGPFPFP IA-2 2.21E-31 DR-AL
GPGPFPFP CG9065 2.40E-31 DR-AL
GPGPFPFP fog 2.92E-31 DR-AL
GPGPFPFP Gr61a 3.47E-31 DR-AL
GPGPFPFP IA-2 3.58E-31 DR-AL
GPGPFPFP CG32773 4.57E-31 DR-AL
GPGPFPFP Drak 4.77E-31 DR-AL
GPGPFPFP Hmr 4.96E-31 DR-AL
GPGPFPFP CG9065 6.37E-31 DR-AL
GPGPFPFP CG7573 6.61E-31 DR-AL
Histamine Pmp70 6.07E-47 DR-AL
Histamine Pmp70 6.07E-47 DR-AL
Histamine CG34354 6.24E-47 DR-AL
Histamine CG34354 6.24E-47 DR-AL
Histamine dpr8 7.75E-47 DR-AL
Histamine dpr8 7.75E-47 DR-AL
Histamine CG7196 9.10E-47 DR-AL
Histamine CG7196 9.10E-47 DR-AL
Histamine CG7196 1.34E-46 DR-AL
Histamine CG7196 1.34E-46 DR-AL
Histamine CG7196 1.92E-46 DR-AL
Histamine CG7196 1.92E-46 DR-AL
Histamine GATAe 4.78E-46 DR-AL
Histamine GATAe 4.78E-46 DR-AL
Histamine CG31140 5.91E-46 DR-AL
Histamine CG31140 5.91E-46 DR-AL
Histamine bru-3 8.15E-46 DR-AL
Histamine bru-3 8.15E-46 DR-AL
Histidine CG42797 6.61E-34 DR-AL
Histidine pgant8 1.17E-32 DR-AL
Histidine Meltrin 1.41E-32 DR-AL
119
Histidine dpr6 1.72E-32 DR-AL
Histidine nht 1.87E-32 DR-AL
Histidine Cad99C 2.10E-32 DR-AL
Histidine msn 2.60E-32 DR-AL
Histidine CG12090 3.31E-32 DR-AL
Histidine dpr6 3.61E-32 DR-AL
Histidine Gef64C 3.95E-32 DR-AL
Histidine rad 4.09E-32 DR-AL
Histidine Glut1 4.17E-32 DR-AL
Histidine CG6695 5.58E-32 DR-AL
Histidine pgant8 6.48E-32 DR-AL
Histidine dpr6 6.64E-32 DR-AL
Homogentisat spri 1.22E-31 DR-AL
Homogentisat spri 1.22E-31 DR-AL
Homogentisat CG13300 1.81E-31 DR-AL
Homogentisat CG13300 1.81E-31 DR-AL
Homogentisat l(3)07882 2.17E-31 DR-AL
Homogentisat l(3)07882 2.17E-31 DR-AL
Homogentisat Ten-a 4.29E-31 DR-AL
Homogentisat Ten-a 4.29E-31 DR-AL
Homogentisat caup 4.82E-31 DR-AL
Homogentisat caup 4.82E-31 DR-AL
Homogentisat Cpr50Ca 5.30E-31 DR-AL
Homogentisat Cpr50Ca 5.30E-31 DR-AL
Homogentisat l(3)07882 5.38E-31 DR-AL
Homogentisat l(3)07882 5.38E-31 DR-AL
Homogentisat CG13300 7.01E-31 DR-AL
Homogentisat CG13300 7.01E-31 DR-AL
Homogentisat CG12974 8.31E-31 DR-AL
Homogentisat CG12974 8.31E-31 DR-AL
IMP CR44327 6.79E-17 DR-AL
IMP fas 8.04E-17 DR-AL
IMP CG34104 9.73E-17 DR-AL
IMP CG42521 2.04E-16 DR-AL
IMP CG34104 2.33E-16 DR-AL
IMP CG34370 2.67E-16 DR-AL
IMP cngl 2.90E-16 DR-AL
IMP CG33696 4.02E-16 DR-AL
IMP CG34104 4.36E-16 DR-AL
IMP Ir67b 4.93E-16 DR-AL
IMP eag 5.28E-16 DR-AL
120
IMP CG34104 5.87E-16 DR-AL
IMP CR44327 5.98E-16 DR-AL
IMP eag 6.31E-16 DR-AL
IMP br 8.22E-16 DR-AL
IMP CG43955 8.78E-16 DR-AL
Inositol vvl 2.25E-08 DR-AL
Inositol CG9650 2.79E-08 DR-AL
Inositol qvr 5.56E-08 DR-AL
Inositol CadN 6.98E-08 DR-AL
Inositol spz4 1.09E-07 DR-AL
Inositol spz4 1.19E-07 DR-AL
Inositol X11Lbeta 1.52E-07 DR-AL
Inositol spz4 1.84E-07 DR-AL
Inositol Ser 1.88E-07 DR-AL
Inositol CG4797 1.99E-07 DR-AL
Inositol nompA 2.12E-07 DR-AL
Inositol Con 2.52E-07 DR-AL
Inositol CadN 2.96E-07 DR-AL
Inositol BBS4 3.16E-07 DR-AL
Inositol caps 3.89E-07 DR-AL
Inositol CG10211 4.01E-07 DR-AL
Inositol CG13229 4.08E-07 DR-AL
Inositol CG42797 4.71E-07 DR-AL
isoLeucine Cralbp 7.22E-17 DR-AL
isoLeucine bru-3 7.24E-17 DR-AL
isoLeucine melt 9.42E-17 DR-AL
isoLeucine poe 1.50E-16 DR-AL
isoLeucine Gap69C 2.06E-16 DR-AL
isoLeucine CG32106 3.35E-16 DR-AL
isoLeucine CG42335 3.52E-16 DR-AL
isoLeucine CG15036 4.12E-16 DR-AL
isoLeucine CG32106 4.15E-16 DR-AL
isoLeucine ltl 4.77E-16 DR-AL
isoLeucine Rim 4.80E-16 DR-AL
isoLeucine CG32106 5.65E-16 DR-AL
isoLeucine CG33158 7.03E-16 DR-AL
isoValericAc CG42534 1.26E-21 DR-AL
isoValericAc CG42534 1.50E-21 DR-AL
isoValericAc CG42534 1.88E-21 DR-AL
isoValericAc CG42534 2.07E-21 DR-AL
isoValericAc CG42534 2.26E-21 DR-AL
121
isoValericAc CG42534 2.68E-21 DR-AL
isoValericAc CG13285 3.35E-21 DR-AL
isoValericAc CG2246 3.57E-21 DR-AL
isoValericAc CG42534 3.80E-21 DR-AL
isoValericAc CG13285 4.84E-21 DR-AL
isoValericAc CG42534 7.72E-21 DR-AL
isoValericAc unpg 1.66E-20 DR-AL
isoValericAc to 2.04E-20 DR-AL
isoValericAc CG2246 2.14E-20 DR-AL
isoValericAc CG42534 2.20E-20 DR-AL
isoValericAc Syp 2.72E-20 DR-AL
isoValericAc simj 3.12E-20 DR-AL
isoValericAc kay 3.69E-20 DR-AL
isoValericAc Syp 3.89E-20 DR-AL
isoValericAc CG18208 4.57E-20 DR-AL
lactate Cpr65Au 3.73E-13 DR-AL
lactate Clect27 4.58E-13 DR-AL
lactate Lcp65Af 7.14E-13 DR-AL
lactate dpr10 7.35E-13 DR-AL
lactate CG12128 8.39E-13 DR-AL
lactate CG3355 8.58E-13 DR-AL
lactate Nrt 1.46E-12 DR-AL
lactate CG5065 1.72E-12 DR-AL
lactate dpr10 1.81E-12 DR-AL
lactate CG42458 1.81E-12 DR-AL
lactate Ncc69 1.89E-12 DR-AL
lactate Ir62a 1.93E-12 DR-AL
lactate CG16717 1.98E-12 DR-AL
lactate ple 2.15E-12 DR-AL
lactate pyd 2.18E-12 DR-AL
lactate S6kII 2.28E-12 DR-AL
lactate dpr8 2.33E-12 DR-AL
Lactose CG11319 3.97E-12 DR-AL
Lactose fon 2.49E-11 DR-AL
Lactose CG9109 2.80E-11 DR-AL
Lactose dpr2 2.90E-11 DR-AL
Lactose CG9987 3.02E-11 DR-AL
Lactose CG9987 3.29E-11 DR-AL
Lactose CG9109 4.08E-11 DR-AL
Lactose CG32551 4.60E-11 DR-AL
Lactose CG31869 4.89E-11 DR-AL
122
Lactose CG32264 5.29E-11 DR-AL
Lactose CG17350 5.30E-11 DR-AL
Lactose how 5.38E-11 DR-AL
Lactose raw 5.47E-11 DR-AL
Lactose Piezo 5.57E-11 DR-AL
Lactose CG13085 5.60E-11 DR-AL
Lactose Pxn 5.98E-11 DR-AL
Lactose mwh 6.02E-11 DR-AL
Lactose NK7.1 6.15E-11 DR-AL
Lactose Syx6 6.78E-11 DR-AL
Lactose CG14985 7.53E-11 DR-AL
Leucine hdc 3.69E-07 DR-AL
Leucine hdc 5.29E-07 DR-AL
Leucine hdc 7.48E-07 DR-AL
Leucine hdc 7.86E-07 DR-AL
Leucine hdc 8.73E-07 DR-AL
Leucine hdc 9.42E-07 DR-AL
Leucine H15 3.31E-06 DR-AL
Leucine hdc 3.59E-06 DR-AL
Leucine CG9861 4.19E-06 DR-AL
Leucine CG6424 6.23E-06 DR-AL
Leucine poe 8.06E-06 DR-AL
Leucine Con 8.86E-06 DR-AL
Leucine CG14257 9.18E-06 DR-AL
Leucine CG5830 1.02E-05 DR-AL
Leucine Con 1.06E-05 DR-AL
Leucine CG6424 1.13E-05 DR-AL
Leucine CAP 1.14E-05 DR-AL
Leucine Pvr 1.16E-05 DR-AL
Leucine CG17265 1.23E-05 DR-AL
LinoleicAcid CG1603 1.15E-32 DR-AL
LinoleicAcid CG4386 3.52E-32 DR-AL
LinoleicAcid CG1603 4.40E-32 DR-AL
LinoleicAcid CG9171 4.75E-32 DR-AL
LinoleicAcid CG10062 6.19E-32 DR-AL
LinoleicAcid CG32533 1.02E-31 DR-AL
LinoleicAcid CG33181 1.04E-31 DR-AL
LinoleicAcid br 1.25E-31 DR-AL
LinoleicAcid CG7860 1.72E-31 DR-AL
LinoleicAcid klar 1.80E-31 DR-AL
LinoleicAcid CG32264 1.86E-31 DR-AL
123
LinoleicAcid CG13830 2.06E-31 DR-AL
LinoleicAcid CG43729 2.16E-31 DR-AL
LinoleicAcid RunxB 2.38E-31 DR-AL
LinoleicAcid mp 2.71E-31 DR-AL
LinoleicAcid Con 3.16E-31 DR-AL
LinolenicAci cngl 1.17E-46 DR-AL
LinolenicAci Prosap 5.39E-46 DR-AL
LinolenicAci Cka 1.15E-45 DR-AL
LinolenicAci CG11898 1.75E-45 DR-AL
LinolenicAci Sra-1 2.02E-45 DR-AL
LinolenicAci dpr17 2.39E-45 DR-AL
LinolenicAci CG2211 2.45E-45 DR-AL
LinolenicAci CG10011 2.69E-45 DR-AL
LinolenicAci Cyp301a1 3.49E-45 DR-AL
LinolenicAci CG12963 3.74E-45 DR-AL
LinolenicAci Syp 3.83E-45 DR-AL
LinolenicAci su(r) 4.00E-45 DR-AL
LinolenicAci Oaz 4.00E-45 DR-AL
LinolenicAci CG14257 4.50E-45 DR-AL
LinolenicAci Sra-1 4.70E-45 DR-AL
LinolenicAci CG14257 6.06E-45 DR-AL
LinolenicAci Art6 6.84E-45 DR-AL
LinolenicAci CG32791 7.76E-45 DR-AL
Lysine Usp12-46 1.57E-10 DR-AL
Lysine Klp54D 2.79E-10 DR-AL
Lysine Kua 4.79E-10 DR-AL
Lysine dgt4 6.52E-10 DR-AL
Lysine H15 6.69E-10 DR-AL
Lysine neb 6.78E-10 DR-AL
Lysine neb 7.56E-10 DR-AL
Lysine CG18558 8.37E-10 DR-AL
Lysine Kua 8.38E-10 DR-AL
Lysine wdb 8.64E-10 DR-AL
Lysine CG32698 9.06E-10 DR-AL
Lysine CR43416 9.67E-10 DR-AL
Lysine f 1.07E-09 DR-AL
Lysine CG5890 1.11E-09 DR-AL
Malondialdeh to 7.18E-25 DR-AL
Malondialdeh CG42534 9.16E-25 DR-AL
Malondialdeh GluClalpha 1.37E-24 DR-AL
Malondialdeh Tep2 1.46E-24 DR-AL
124
Malondialdeh CG15239 1.53E-24 DR-AL
Malondialdeh CG4662 2.16E-24 DR-AL
Malondialdeh Tep2 2.70E-24 DR-AL
Malondialdeh stumps 2.79E-24 DR-AL
Malondialdeh Tep2 3.01E-24 DR-AL
Malondialdeh kirre 3.26E-24 DR-AL
Malondialdeh CG4662 3.59E-24 DR-AL
Malondialdeh CG18208 3.81E-24 DR-AL
Malondialdeh Ptp61F 3.85E-24 DR-AL
Malondialdeh CG42331 4.05E-24 DR-AL
Malondialdeh Pde6 4.28E-24 DR-AL
Malondialdeh Snmp2 4.82E-24 DR-AL
Malondialdeh cyr 5.47E-24 DR-AL
Malondialdeh CG42534 5.68E-24 DR-AL
Malondialdeh Neto 5.83E-24 DR-AL
Malondialdeh Sh 7.49E-24 DR-AL
MargaricAcid SPoCk 2.90E-07 DR-AL
MargaricAcid SPoCk 2.90E-07 DR-AL
MargaricAcid nkd 3.04E-07 DR-AL
MargaricAcid mspo 3.30E-07 DR-AL
MargaricAcid mspo 3.57E-07 DR-AL
MargaricAcid Lgr3 3.74E-07 DR-AL
MargaricAcid CG34351 4.64E-07 DR-AL
MargaricAcid tutl 5.14E-07 DR-AL
MargaricAcid jvl 6.17E-07 DR-AL
MargaricAcid mun 6.62E-07 DR-AL
MargaricAcid mun 7.08E-07 DR-AL
MargaricAcid CG32137 7.09E-07 DR-AL
MargaricAcid mun 7.50E-07 DR-AL
MargaricAcid Dscam2 7.98E-07 DR-AL
MargaricAcid GRHRII 8.46E-07 DR-AL
maxLS Blimp-1 9.02E-30 DR-AL
maxLS JIL-1 1.33E-29 DR-AL
maxLS CG32264 1.44E-29 DR-AL
maxLS JIL-1 2.22E-29 DR-AL
maxLS CG31036 2.26E-29 DR-AL
maxLS Sin3A 2.34E-29 DR-AL
maxLS Idh 3.13E-29 DR-AL
maxLS CG3362 3.13E-29 DR-AL
maxLS CG32264 3.50E-29 DR-AL
maxLS Sin3A 3.53E-29 DR-AL
125
maxLS Sin3A 4.14E-29 DR-AL
maxLS CG42713 4.51E-29 DR-AL
maxLS CG32082 4.59E-29 DR-AL
maxLS resilin 5.26E-29 DR-AL
maxLS Argk 5.28E-29 DR-AL
MeanLS pbl 5.47E-22 DR-AL
MeanLS exo70 4.42E-21 DR-AL
MeanLS CG33057 5.10E-21 DR-AL
MeanLS mRpS2 1.30E-20 DR-AL
MeanLS CG9747 1.30E-20 DR-AL
MeanLS CG9747 1.57E-20 DR-AL
MeanLS CG9747 2.30E-20 DR-AL
MeanLS Idh 2.52E-20 DR-AL
MeanLS NK7.1 2.83E-20 DR-AL
MeanLS CG32676 3.13E-20 DR-AL
MeanLS CG12057 3.59E-20 DR-AL
MeanLS Src64B 3.65E-20 DR-AL
MeanLS Mlc2 4.34E-20 DR-AL
MeanLS CG32137 4.69E-20 DR-AL
MeanLS Mlc2 4.84E-20 DR-AL
MeanLS ssp2 5.66E-20 DR-AL
MeanLS CG43367 6.44E-20 DR-AL
MeanLS exo70 8.73E-20 DR-AL
MeanStarvati Rgk1 1.32E-40 DR-AL
MeanStarvati dmrt99B 1.98E-40 DR-AL
MeanStarvati CG34354 3.96E-40 DR-AL
MeanStarvati CG4476 5.93E-40 DR-AL
MeanStarvati ome 8.80E-40 DR-AL
MeanStarvati dmrt99B 1.02E-39 DR-AL
MeanStarvati CG5687 1.58E-39 DR-AL
MeanStarvati CG34354 1.59E-39 DR-AL
MeanStarvati Or22c 1.80E-39 DR-AL
MeanStarvati CG13005 2.37E-39 DR-AL
MedianLS pbl 1.38E-19 DR-AL
MedianLS CG33057 1.30E-18 DR-AL
MedianLS CG32137 3.40E-18 DR-AL
MedianLS CG9747 3.54E-18 DR-AL
MedianLS CG32264 3.58E-18 DR-AL
MedianLS exo70 4.93E-18 DR-AL
MedianLS CG15803 4.95E-18 DR-AL
MedianLS NK7.1 7.01E-18 DR-AL
126
MedianLS CG9747 8.62E-18 DR-AL
MedianLS CG9747 1.02E-17 DR-AL
MedianLS CG43367 1.18E-17 DR-AL
MedianLS Mlc2 1.23E-17 DR-AL
MedianLS RecQ4 1.43E-17 DR-AL
MedianLS mRpS2 1.53E-17 DR-AL
MedianLS Mlc2 1.97E-17 DR-AL
Methionine Dif 6.92E-16 DR-AL
Methionine CG30263 1.67E-15 DR-AL
Methionine dally 2.34E-15 DR-AL
Methionine dally 4.63E-15 DR-AL
Methionine Cralbp 5.39E-15 DR-AL
Methionine hth 6.67E-15 DR-AL
Methionine PGRP-LC 7.02E-15 DR-AL
Methionine dally 7.42E-15 DR-AL
Methionine CG6983 8.56E-15 DR-AL
Methylmalona CG14967 1.34E-13 DR-AL
Methylmalona CG14967 4.26E-13 DR-AL
Methylmalona vfl 1.30E-12 DR-AL
Methylmalona tRNA:S2b:88A 3.74E-12 DR-AL
Methylmalona CG11505 4.27E-12 DR-AL
Methylmalona CG12034 4.36E-12 DR-AL
Methylmalona Sdc 4.59E-12 DR-AL
Methylmalona CG5707 4.64E-12 DR-AL
Methylmalona CG43163 4.68E-12 DR-AL
Methylmalona CG12236 5.75E-12 DR-AL
Methylmalona CG12034 7.68E-12 DR-AL
Methylmalona Cct1 7.89E-12 DR-AL
Methylmalona CG32085 8.21E-12 DR-AL
Methylmalona CG13073 8.89E-12 DR-AL
Methylmalona CG13073 9.37E-12 DR-AL
Methylmalona Pp2A-29B 9.39E-12 DR-AL
Methylmalona CG15614 9.61E-12 DR-AL
Methylmalona CG13073 1.07E-11 DR-AL
MyristicAcid l(1)G0196 1.21E-06 DR-AL
MyristicAcid kn 1.53E-06 DR-AL
MyristicAcid sno 2.31E-06 DR-AL
MyristicAcid kn 2.76E-06 DR-AL
MyristicAcid CG10960 3.12E-06 DR-AL
MyristicAcid rut 3.75E-06 DR-AL
MyristicAcid HDAC4 3.96E-06 DR-AL
127
MyristicAcid CG32773 4.08E-06 DR-AL
MyristicAcid CG32773 4.16E-06 DR-AL
MyristicAcid RunxA 4.40E-06 DR-AL
MyristicAcid NetA 4.56E-06 DR-AL
MyristicAcid CG32773 4.65E-06 DR-AL
MyristicAcid CycE 4.69E-06 DR-AL
MyristicAcid rut 5.75E-06 DR-AL
NAcetylGlyci Trim9 3.35E-07 DR-AL
NAcetylGlyci LanB2 3.57E-07 DR-AL
NAcetylGlyci CG9650 3.66E-07 DR-AL
NAcetylGlyci spz4 4.17E-07 DR-AL
NAcetylGlyci LanB2 5.08E-07 DR-AL
NAcetylGlyci Gale 5.34E-07 DR-AL
NAcetylGlyci Abl 6.56E-07 DR-AL
NAcetylGlyci svp 7.28E-07 DR-AL
NAcetylGlyci CG44206 7.52E-07 DR-AL
NAcetylGlyci Trim9 7.68E-07 DR-AL
NAcetylGlyci Trim9 8.80E-07 DR-AL
NAcetylGlyci CG9297 9.14E-07 DR-AL
NAcetylGlyci cv-c 9.73E-07 DR-AL
NAcetylGlyci LanB2 1.00E-06 DR-AL
NAcetylGlyci lama 1.01E-06 DR-AL
NAcetylGlyci hoe1 1.05E-06 DR-AL
NAcetylGlyci psq 1.08E-06 DR-AL
Ornithine eIF5B 2.61E-29 DR-AL
Ornithine pigs 1.32E-28 DR-AL
Ornithine cas 4.45E-28 DR-AL
Ornithine Smu1 6.83E-28 DR-AL
Ornithine CG42324 9.27E-28 DR-AL
Ornithine Sb 1.00E-27 DR-AL
Ornithine upd2 1.90E-27 DR-AL
Ornithine dally 2.17E-27 DR-AL
Ornithine CG42324 2.19E-27 DR-AL
Ornithine CG3062 2.27E-27 DR-AL
Ornithine PKD 2.50E-27 DR-AL
Ornithine klg 2.85E-27 DR-AL
Ornithine fz2 2.90E-27 DR-AL
Ornithine CG7991 3.12E-27 DR-AL
Ornithine CG9312 3.26E-27 DR-AL
Ornithine klg 4.03E-27 DR-AL
Orotate msi 2.43E-13 DR-AL
128
Orotate dpr2 3.59E-13 DR-AL
Orotate CG15744 4.31E-13 DR-AL
Orotate CG13285 6.06E-13 DR-AL
Orotate Apoltp 8.33E-13 DR-AL
Orotate CG31690 1.28E-12 DR-AL
Orotate CG6163 1.52E-12 DR-AL
Orotate rho-5 1.60E-12 DR-AL
Orotate rt 1.99E-12 DR-AL
Orotate CR32027 2.04E-12 DR-AL
Oxalacetate klar 3.38E-21 DR-AL
Oxalacetate CG34362 4.31E-20 DR-AL
Oxalacetate cnc 5.35E-20 DR-AL
Oxalacetate Abl 8.78E-20 DR-AL
Oxalacetate PGRP-LC 8.99E-20 DR-AL
Oxalacetate klar 9.36E-20 DR-AL
Oxalacetate Ipk1 1.06E-19 DR-AL
Oxalacetate CG43163 1.07E-19 DR-AL
Oxalacetate Mrtf 1.12E-19 DR-AL
Oxalacetate CG5987 1.12E-19 DR-AL
Oxalacetate bnl 1.38E-19 DR-AL
Oxalacetate Ccn 1.39E-19 DR-AL
Oxalacetate CG7886 1.45E-19 DR-AL
Oxalacetate ths 1.47E-19 DR-AL
Oxalacetate bor 1.60E-19 DR-AL
Oxalacetate Eip74EF 1.79E-19 DR-AL
Oxypurinol CG32264 2.74E-58 DR-AL
Oxypurinol Cam 1.11E-57 DR-AL
Oxypurinol rdgA 1.40E-57 DR-AL
Oxypurinol kirre 1.74E-57 DR-AL
Oxypurinol Cam 1.90E-57 DR-AL
Oxypurinol trpm 2.06E-57 DR-AL
Oxypurinol CG1532 2.19E-57 DR-AL
Oxypurinol Moe 2.29E-57 DR-AL
Oxypurinol Glut1 2.47E-57 DR-AL
Oxypurinol Ntf-2 2.95E-57 DR-AL
Oxypurinol dpr8 3.19E-57 DR-AL
Oxypurinol kn 3.25E-57 DR-AL
Oxypurinol oc 3.37E-57 DR-AL
Oxypurinol Cam 3.65E-57 DR-AL
Oxypurinol Cam 3.67E-57 DR-AL
Oxypurinol eIF5B 3.75E-57 DR-AL
129
Oxypurinol Cam 4.00E-57 DR-AL
Pentothenate CG4927 2.13E-35 DR-AL
Pentothenate CG4927 2.13E-35 DR-AL
Pentothenate Ca-alpha1T 4.22E-35 DR-AL
Pentothenate Ca-alpha1T 4.22E-35 DR-AL
Pentothenate Ca-alpha1T 9.34E-35 DR-AL
Pentothenate Ca-alpha1T 9.34E-35 DR-AL
Pentothenate CG4927 9.60E-35 DR-AL
Pentothenate CG4927 9.60E-35 DR-AL
Pentothenate Cam 2.50E-34 DR-AL
Pentothenate Cam 2.50E-34 DR-AL
Pentothenate CG30203 3.71E-34 DR-AL
Pentothenate CG30203 3.71E-34 DR-AL
Pentothenate Cam 3.83E-34 DR-AL
Pentothenate Cam 3.83E-34 DR-AL
Pentothenate Nrg 3.97E-34 DR-AL
Pentothenate Nrg 3.97E-34 DR-AL
Pentothenate Cam 4.59E-34 DR-AL
Pentothenate Cam 4.59E-34 DR-AL
Pentothenate Cam 5.27E-34 DR-AL
Pentothenate Cam 5.27E-34 DR-AL
PEP DopR2 8.48E-15 DR-AL
PEP CG32698 3.56E-14 DR-AL
PEP aret 6.69E-14 DR-AL
PEP CG14856 7.64E-14 DR-AL
PEP DopR2 8.30E-14 DR-AL
PEP Gug 1.32E-13 DR-AL
PEP dpr13 1.61E-13 DR-AL
PEP alphaTub67C 2.56E-13 DR-AL
PEP dpr2 2.67E-13 DR-AL
PEP DopR2 3.42E-13 DR-AL
PEP CG1113 3.77E-13 DR-AL
PEP CG14509 3.85E-13 DR-AL
PEP fry 3.99E-13 DR-AL
PEP DopR2 4.03E-13 DR-AL
PercentHealt fz 3.03E-14 DR-AL
PercentHealt Or30a 6.84E-14 DR-AL
PercentHealt Gad1 1.15E-13 DR-AL
PercentHealt CG32588 1.56E-13 DR-AL
PercentHealt Gad1 2.46E-13 DR-AL
PercentHealt cenG1A 2.60E-13 DR-AL
130
PercentHealt CG32588 3.58E-13 DR-AL
PercentHealt CG32698 3.93E-13 DR-AL
PercentHealt CG10960 4.08E-13 DR-AL
PercentHealt if 4.43E-13 DR-AL
PercentHealt if 4.60E-13 DR-AL
PercentHealt Rgl 5.02E-13 DR-AL
PercentHealt cenG1A 5.15E-13 DR-AL
PercentHealt cenG1A 5.28E-13 DR-AL
PercentHealt CG34417 5.29E-13 DR-AL
Phenylalanin hdc 1.88E-09 DR-AL
Phenylalanin hdc 2.69E-09 DR-AL
Phenylalanin H15 3.23E-09 DR-AL
Phenylalanin pum 3.76E-09 DR-AL
Phenylalanin Con 3.86E-09 DR-AL
Phenylalanin Con 4.08E-09 DR-AL
Phenylalanin bru-3 4.38E-09 DR-AL
Phenylalanin Con 5.71E-09 DR-AL
Phenylalanin CG18558 5.88E-09 DR-AL
Phenylalanin hdc 5.91E-09 DR-AL
Phenylalanin bru-3 6.19E-09 DR-AL
Phenylalanin hdc 6.24E-09 DR-AL
Phenylalanin poe 7.05E-09 DR-AL
Phenylalanin dgt4 8.19E-09 DR-AL
Phenylalanin hdc 8.31E-09 DR-AL
Phenylalanin mrj 8.33E-09 DR-AL
Phenylalanin CG5873 9.20E-09 DR-AL
Phenylalanin Con 1.01E-08 DR-AL
Phenylalanin hdc 1.06E-08 DR-AL
Pipecolate f 2.19E-26 DR-AL
Pipecolate dally 3.15E-26 DR-AL
Pipecolate Con 4.65E-26 DR-AL
Pipecolate CG32104 4.78E-26 DR-AL
Pipecolate CG32104 5.89E-26 DR-AL
Pipecolate CG32104 5.89E-26 DR-AL
Pipecolate CR43836 7.20E-26 DR-AL
Pipecolate CG32104 8.21E-26 DR-AL
Pipecolate CG3009 1.18E-25 DR-AL
Pipecolate CG42335 1.20E-25 DR-AL
Pipecolate Gap69C 1.34E-25 DR-AL
Pipecolate Dys 1.40E-25 DR-AL
Pipecolate Rbp6 1.48E-25 DR-AL
131
Pipecolate swaPsi 1.52E-25 DR-AL
Proline star1 2.63E-08 DR-AL
Proline CG6012 5.73E-08 DR-AL
Proline CG42313 1.57E-07 DR-AL
Proline Shab 1.67E-07 DR-AL
Proline CG14830 1.92E-07 DR-AL
Proline CG14955 2.53E-07 DR-AL
Proline CG32103 2.59E-07 DR-AL
Proline CG32103 2.68E-07 DR-AL
Proline CG32103 3.68E-07 DR-AL
Proline bowl 3.69E-07 DR-AL
Proline CG32103 4.06E-07 DR-AL
Proline CR44133 4.83E-07 DR-AL
Proline MtnC 5.97E-07 DR-AL
Proline CG13897 6.45E-07 DR-AL
Proline Shab 7.86E-07 DR-AL
Proline unc-13-4A 8.88E-07 DR-AL
ProteinugWei kek6 3.57E-34 DR-AL
ProteinugWei norpA 4.63E-34 DR-AL
ProteinugWei Rdh 5.05E-34 DR-AL
ProteinugWei lva 1.06E-33 DR-AL
ProteinugWei CG17300 1.88E-33 DR-AL
ProteinugWei comm3 2.08E-33 DR-AL
ProteinugWei CG7737 2.22E-33 DR-AL
ProteinugWei CG34104 2.51E-33 DR-AL
ProteinugWei CG1434 2.59E-33 DR-AL
ProteinugWei CG3323 3.32E-33 DR-AL
ProteinugWei CG32773 3.40E-33 DR-AL
ProteinugWei G-ialpha65A 4.25E-33 DR-AL
ProteinugWei Pkc53E 4.29E-33 DR-AL
ProteinugWei CG7737 5.39E-33 DR-AL
ProteinugWei CG17760 8.23E-33 DR-AL
ProteinugWei BHD 9.23E-33 DR-AL
Putrescine Mur89F 9.11E-12 DR-AL
Putrescine Mur89F 1.24E-11 DR-AL
Putrescine Mur89F 1.44E-11 DR-AL
Putrescine CG15140 1.48E-11 DR-AL
Putrescine CG42686 2.12E-11 DR-AL
Putrescine TyrR 3.71E-11 DR-AL
Putrescine CG15140 3.93E-11 DR-AL
Putrescine Mur89F 4.56E-11 DR-AL
132
Putrescine Mur89F 5.13E-11 DR-AL
Putrescine cenB1A 6.22E-11 DR-AL
Putrescine Mur89F 6.44E-11 DR-AL
Putrescine CG43707 6.44E-11 DR-AL
Putrescine CG7560 6.59E-11 DR-AL
Putrescine CG33282 7.89E-11 DR-AL
Putrescine Lmpt 8.89E-11 DR-AL
Putrescine CG15140 9.74E-11 DR-AL
Putrescine CG15140 1.03E-10 DR-AL
Putrescine CG11634 1.03E-10 DR-AL
PyridoxalP CG4622 1.73E-60 DR-AL
PyridoxalP CG3814 1.82E-60 DR-AL
PyridoxalP klar 6.92E-60 DR-AL
PyridoxalP CG5194 8.87E-60 DR-AL
PyridoxalP mamo 1.48E-59 DR-AL
PyridoxalP CG3511 1.52E-59 DR-AL
PyridoxalP gatA 1.61E-59 DR-AL
PyridoxalP Dys 2.60E-59 DR-AL
PyridoxalP su(r) 2.85E-59 DR-AL
PyridoxalP CG11413 2.92E-59 DR-AL
PyridoxalP Ptp61F 3.03E-59 DR-AL
PyridoxalP tRNA:S2b:88A 4.19E-59 DR-AL
PyridoxalP f 4.27E-59 DR-AL
PyridoxalP CG33958 5.54E-59 DR-AL
PyridoxalP su(r) 5.70E-59 DR-AL
Pyruvate CG34382 4.39E-16 DR-AL
Pyruvate CG34356 6.52E-16 DR-AL
Pyruvate Pde9 2.06E-15 DR-AL
Pyruvate CG34356 2.57E-15 DR-AL
Pyruvate pum 3.32E-15 DR-AL
Pyruvate CG12289 3.84E-15 DR-AL
Pyruvate CG10657 4.63E-15 DR-AL
Pyruvate CG13288 4.87E-15 DR-AL
Pyruvate fz2 5.16E-15 DR-AL
Pyruvate Obp47a 5.30E-15 DR-AL
Pyruvate rhea 6.77E-15 DR-AL
Quinolinate pAbp 1.33E-09 DR-AL
Quinolinate pAbp 1.33E-09 DR-AL
Quinolinate sm 3.45E-09 DR-AL
Quinolinate sm 3.45E-09 DR-AL
Quinolinate CG4080 3.51E-09 DR-AL
133
Quinolinate CG4080 3.51E-09 DR-AL
Quinolinate CG4080 4.62E-09 DR-AL
Quinolinate CG4080 4.62E-09 DR-AL
Quinolinate dysc 4.97E-09 DR-AL
Quinolinate dysc 4.97E-09 DR-AL
Quinolinate CG2107 5.64E-09 DR-AL
Quinolinate CG2107 5.64E-09 DR-AL
Quinolinate CG42669 5.74E-09 DR-AL
Quinolinate CG42669 5.74E-09 DR-AL
RiboseP CG32111 9.29E-52 DR-AL
RiboseP ecd 1.96E-51 DR-AL
RiboseP su(r) 2.40E-51 DR-AL
RiboseP ecd 3.20E-51 DR-AL
RiboseP Aats-ala-m 3.40E-51 DR-AL
RiboseP fz 3.63E-51 DR-AL
RiboseP CG8100 3.75E-51 DR-AL
RiboseP CG34144 4.89E-51 DR-AL
RiboseP sfl 5.53E-51 DR-AL
RiboseP CG5687 5.65E-51 DR-AL
RiboseP CG32647 5.86E-51 DR-AL
RiboseP kek5 5.91E-51 DR-AL
Sarcosine tn 1.48E-07 DR-AL
Sarcosine uif 1.63E-07 DR-AL
Sarcosine CG6638 2.35E-07 DR-AL
Sarcosine Dhpr 2.51E-07 DR-AL
Sarcosine CG16789 3.12E-07 DR-AL
Sarcosine spz 3.29E-07 DR-AL
Sarcosine Dhpr 3.47E-07 DR-AL
Sarcosine prc 4.72E-07 DR-AL
Sarcosine CG9090 5.78E-07 DR-AL
Sarcosine CG43373 6.19E-07 DR-AL
Sarcosine hdc 1.06E-06 DR-AL
Sarcosine CG31710 1.06E-06 DR-AL
Sarcosine CG5888 1.12E-06 DR-AL
Sarcosine hdc 1.13E-06 DR-AL
Sarcosine CG31710 1.14E-06 DR-AL
Sarcosine CG33970 1.18E-06 DR-AL
Serine milt 1.63E-05 DR-AL
Serine CG6006 1.82E-05 DR-AL
Serine CG6006 3.13E-05 DR-AL
Serine CG7886 5.40E-05 DR-AL
134
Serine CG7886 6.05E-05 DR-AL
Serine CG6006 8.22E-05 DR-AL
Serine Lapsyn 9.84E-05 DR-AL
Serine Task6 0.000111826 DR-AL
Serine Kua 0.000119415 DR-AL
Serine CG14521 0.000127586 DR-AL
Serine Ulp1 0.0001301 DR-AL
Serine Mnn1 0.000133931 DR-AL
Serine CG7886 0.000136304 DR-AL
Serine Wnt6 0.000141891 DR-AL
Sorbitol kuz 2.61E-29 DR-AL
Sorbitol CG1622 1.50E-28 DR-AL
Sorbitol CG42524 1.52E-28 DR-AL
Sorbitol grh 1.58E-28 DR-AL
Sorbitol CG1622 1.69E-28 DR-AL
Sorbitol CG1622 1.95E-28 DR-AL
Sorbitol CG1622 2.08E-28 DR-AL
Sorbitol CG1622 2.58E-28 DR-AL
Sorbitol Ect4 3.72E-28 DR-AL
Sorbitol CG1622 5.40E-28 DR-AL
Sorbitol CG1622 6.00E-28 DR-AL
Sorbitol fan 6.17E-28 DR-AL
Sorbitol Con 7.16E-28 DR-AL
Sorbitol CG1622 7.46E-28 DR-AL
Sorbitol Gap69C 8.94E-28 DR-AL
Sorbitol CG8909 9.39E-28 DR-AL
Startvaluexx enok 2.83E-21 DR-AL
Startvaluexx Cng 6.15E-21 DR-AL
Startvaluexx ttv 1.23E-20 DR-AL
Startvaluexx GABA-B-R1 1.35E-20 DR-AL
Startvaluexx CG30463 1.48E-20 DR-AL
Startvaluexx Tie 1.58E-20 DR-AL
Startvaluexx CG17839 2.11E-20 DR-AL
Startvaluexx Atg1 2.21E-20 DR-AL
Startvaluexx CG11581 2.31E-20 DR-AL
Startvaluexx nAcRbeta-64B 2.90E-20 DR-AL
Startvaluexx kirre 4.39E-20 DR-AL
Startvaluexx CG17129 4.76E-20 DR-AL
Startvaluexx Ten-a 5.03E-20 DR-AL
Startvaluexx l(1)G0156 6.07E-20 DR-AL
Startvaluexx CG32683 6.45E-20 DR-AL
135
Startvaluexx rept 7.10E-20 DR-AL
Startvaluexx CG18368 7.48E-20 DR-AL
Startvaluexx CG13889 8.37E-20 DR-AL
Succinate Cyp6u1 5.22E-07 DR-AL
Succinate Cyp6u1 9.93E-07 DR-AL
Succinate Cyp6u1 1.13E-06 DR-AL
Succinate Cyp6u1 2.74E-06 DR-AL
Succinate Cyp6u1 4.90E-06 DR-AL
Succinate sima 8.30E-06 DR-AL
Succinate shot 8.70E-06 DR-AL
Succinate sima 1.15E-05 DR-AL
Succinate Tsp42Ek 3.14E-05 DR-AL
Succinate CG31678 4.38E-05 DR-AL
Succinate wde 4.42E-05 DR-AL
Succinate Nf-YC 4.46E-05 DR-AL
Succinate Nf-YC 4.72E-05 DR-AL
Succinate sima 5.06E-05 DR-AL
Succinate Brf 5.82E-05 DR-AL
Succinate CG34351 5.89E-05 DR-AL
Sucrose phl 2.81E-49 DR-AL
Sucrose CG13567 3.98E-48 DR-AL
Sucrose nmo 8.98E-48 DR-AL
Sucrose CG3168 1.29E-47 DR-AL
Sucrose CG43078 1.75E-47 DR-AL
Sucrose tmod 2.83E-47 DR-AL
Sucrose CG32113 2.85E-47 DR-AL
Sucrose CG3967 3.43E-47 DR-AL
Sucrose Gr10b 3.81E-47 DR-AL
Sucrose kirre 4.28E-47 DR-AL
Sucrose trio 7.97E-47 DR-AL
Sucrose trio 8.31E-47 DR-AL
Sucrose ecd 9.53E-47 DR-AL
Sucrose NetB 1.32E-46 DR-AL
Sucrose CG32113 1.33E-46 DR-AL
Sucrose amon 1.50E-46 DR-AL
Sucrose kirre 1.54E-46 DR-AL
Taurine dally 6.05E-65 DR-AL
Taurine Lmpt 3.14E-64 DR-AL
Taurine Lmpt 4.94E-64 DR-AL
Taurine ths 3.12E-63 DR-AL
Taurine ths 4.88E-63 DR-AL
136
Taurine CrebB-17A 1.42E-62 DR-AL
Taurine Lkr 2.85E-62 DR-AL
Taurine Sh 3.45E-62 DR-AL
Taurine rg 5.71E-62 DR-AL
Taurine CG42260 9.73E-62 DR-AL
Taurine Lkr 1.12E-61 DR-AL
Taurine rdgA 1.52E-61 DR-AL
Taurine Ork1 1.92E-61 DR-AL
Taurine Mec2 1.95E-61 DR-AL
Taurine jing 1.97E-61 DR-AL
Taurine l(3)02640 1.98E-61 DR-AL
Taurine FR 2.80E-61 DR-AL
tg/weight na 1.57E-12 DR-AL
tg/weight CadN 2.57E-12 DR-AL
tg/weight RpS7 2.65E-12 DR-AL
tg/weight CG32521 2.66E-12 DR-AL
tg/weight CG6340 2.80E-12 DR-AL
tg/weight sno 2.85E-12 DR-AL
tg/weight CadN 3.18E-12 DR-AL
tg/weight CG8100 3.33E-12 DR-AL
tg/weight wit 3.41E-12 DR-AL
tg/weight CadN 4.09E-12 DR-AL
tg/weight Sh 4.62E-12 DR-AL
Threonine hiw 6.65E-52 DR-AL
Threonine trol 9.88E-52 DR-AL
Threonine pod1 1.37E-51 DR-AL
Threonine trol 1.59E-51 DR-AL
Threonine csw 1.70E-51 DR-AL
Threonine CG13004 2.92E-51 DR-AL
Threonine Klp68D 3.43E-51 DR-AL
Threonine Lkr 3.73E-51 DR-AL
Threonine CG13004 3.89E-51 DR-AL
Threonine CG34342 4.19E-51 DR-AL
Threonine CG9134 4.33E-51 DR-AL
Threonine CG6379 4.42E-51 DR-AL
Threonine CG32432 4.87E-51 DR-AL
Threonine Ser7 5.24E-51 DR-AL
Threonine dally 5.68E-51 DR-AL
Threonine pod1 5.85E-51 DR-AL
Threonine CG9134 5.87E-51 DR-AL
Threonine hiw 7.37E-51 DR-AL
137
TrendSlopest spirit 1.14E-21 DR-AL
TrendSlopest Gycbeta100B 1.54E-21 DR-AL
TrendSlopest sls 1.56E-21 DR-AL
TrendSlopest Glut1 2.39E-21 DR-AL
TrendSlopest spirit 2.85E-21 DR-AL
TrendSlopest Galpha49B 3.09E-21 DR-AL
TrendSlopest sls 3.16E-21 DR-AL
TrendSlopest GV1 4.45E-21 DR-AL
TrendSlopest Sesn 8.74E-21 DR-AL
TrendSlopest CR43458 9.10E-21 DR-AL
TrendSlopest GV1 1.02E-20 DR-AL
TrendSlopest Ptp61F 1.03E-20 DR-AL
TrendSlopest CG34362 1.03E-20 DR-AL
TrendSlopest if 1.05E-20 DR-AL
TrendSlopest Dscam2 1.06E-20 DR-AL
TrendSlopest CG15817 1.06E-20 DR-AL
TrendSlopest Ork1 1.08E-20 DR-AL
Trendtotwent kuk 7.64E-08 DR-AL
Trendtotwent CG30463 7.98E-08 DR-AL
Trendtotwent CG12017 2.00E-07 DR-AL
Trendtotwent AdoR 2.11E-07 DR-AL
Trendtotwent cert 2.21E-07 DR-AL
Trendtotwent CG12017 2.30E-07 DR-AL
Trendtotwent CG30463 2.44E-07 DR-AL
Trendtotwent CG13617 2.49E-07 DR-AL
Trendtotwent CG30463 2.72E-07 DR-AL
Trendtotwent G-oalpha47A 2.95E-07 DR-AL
Trendtotwent CG5909 3.40E-07 DR-AL
Trendtotwent CG30463 3.54E-07 DR-AL
Trendtotwent Dscam4 4.21E-07 DR-AL
Trendtotwent Hel89B 4.32E-07 DR-AL
Trimethylami bru-2 8.34E-17 DR-AL
Trimethylami sls 5.51E-16 DR-AL
Trimethylami sls 6.90E-16 DR-AL
Trimethylami RhoGEF3 8.02E-16 DR-AL
Trimethylami RhoGEF3 1.06E-15 DR-AL
Trimethylami CG2991 1.16E-15 DR-AL
Trimethylami RhoGEF3 1.64E-15 DR-AL
Trimethylami RhoGEF3 2.40E-15 DR-AL
Trimethylami CG2991 2.66E-15 DR-AL
Trimethylami CG15628 2.82E-15 DR-AL
138
Trimethylami RhoGEF3 3.02E-15 DR-AL
Trimethylami RhoGEF3 3.03E-15 DR-AL
Trimethylami CG32264 3.26E-15 DR-AL
Tyrosine CG42524 9.34E-34 DR-AL
Tyrosine Mis12 1.02E-33 DR-AL
Tyrosine kuz 1.16E-33 DR-AL
Tyrosine CG1622 1.91E-33 DR-AL
Tyrosine CG1622 2.35E-33 DR-AL
Tyrosine grh 2.47E-33 DR-AL
Tyrosine CG1622 3.54E-33 DR-AL
Tyrosine CG1622 3.66E-33 DR-AL
Tyrosine CG1622 3.67E-33 DR-AL
Tyrosine cdi 4.81E-33 DR-AL
Tyrosine CG43136 5.66E-33 DR-AL
Tyrosine Gap69C 8.54E-33 DR-AL
Tyrosine NaPi-T 8.92E-33 DR-AL
Tyrosine 5-HT1A 9.14E-33 DR-AL
Tyrosine CG1622 9.66E-33 DR-AL
Tyrosine CG1622 1.03E-32 DR-AL
Tyrosine CG31643 1.04E-32 DR-AL
Urate l(3)07882 2.57E-26 DR-AL
Urate Cpr50Ca 3.83E-26 DR-AL
Urate twi 1.09E-25 DR-AL
Urate CG13300 2.21E-25 DR-AL
Urate caup 2.28E-25 DR-AL
Urate CG13300 2.31E-25 DR-AL
Urate l(3)07882 2.87E-25 DR-AL
Urate CG18003 2.94E-25 DR-AL
Urate CG5742 3.50E-25 DR-AL
Urate CG5742 3.96E-25 DR-AL
Urate CG42284 4.09E-25 DR-AL
Urate spri 4.67E-25 DR-AL
Urate GEFmeso 5.64E-25 DR-AL
Urate CG33696 5.67E-25 DR-AL
Urate CG1304 6.50E-25 DR-AL
Urate CG42284 7.07E-25 DR-AL
Urate nuf 8.02E-25 DR-AL
Urate Tsp66E 8.92E-25 DR-AL
Urate Amph 9.25E-25 DR-AL
Uridine lms 2.10E-35 DR-AL
Uridine lms 2.10E-35 DR-AL
139
Uridine Gef64C 8.00E-34 DR-AL
Uridine Gef64C 8.00E-34 DR-AL
Uridine CG18418 1.03E-33 DR-AL
Uridine CG18418 1.03E-33 DR-AL
Uridine mus101 1.25E-33 DR-AL
Uridine mus101 1.25E-33 DR-AL
Uridine S-Lap3 5.57E-33 DR-AL
Uridine S-Lap3 5.57E-33 DR-AL
Uridine FR 7.23E-33 DR-AL
Uridine FR 7.23E-33 DR-AL
Uridine CG9917 8.72E-33 DR-AL
Uridine CG9917 8.72E-33 DR-AL
Valine Cralbp 2.29E-32 DR-AL
Valine dally 7.88E-32 DR-AL
Valine Gap69C 4.06E-31 DR-AL
Valine dally 5.08E-31 DR-AL
Valine melt 5.11E-31 DR-AL
Valine CG10657 8.39E-31 DR-AL
Valine Ptp61F 1.13E-30 DR-AL
Valine Pxn 1.51E-30 DR-AL
Valine mrj 2.82E-30 DR-AL
Valine ltl 2.92E-30 DR-AL
Valine dally 3.26E-30 DR-AL
Valine CG2543 3.35E-30 DR-AL
Valine CG42335 4.02E-30 DR-AL
Valine Spn 4.90E-30 DR-AL
Variance Cdep 1.51E-11 DR-AL
Variance Cdep 1.51E-11 DR-AL
Variance CG43955 1.96E-11 DR-AL
Variance CG43955 1.96E-11 DR-AL
Variance CG13494 2.74E-11 DR-AL
Variance CG13494 2.74E-11 DR-AL
Variance opa 6.51E-11 DR-AL
Variance opa 6.51E-11 DR-AL
Variance opa 9.58E-11 DR-AL
Variance opa 9.58E-11 DR-AL
Variance CG3339 9.99E-11 DR-AL
Variance CG3339 9.99E-11 DR-AL
Variance Grd 1.25E-10 DR-AL
Variance Grd 1.25E-10 DR-AL
Variance Eip74EF 1.71E-10 DR-AL
140
Variance Eip74EF 1.71E-10 DR-AL
Variance CG2211 1.81E-10 DR-AL
Variance CG2211 1.81E-10 DR-AL
Variance CG34417 1.99E-10 DR-AL
Variance CG34417 1.99E-10 DR-AL
Variance laf 2.18E-10 DR-AL
Variance laf 2.18E-10 DR-AL
Variance CG32647 2.51E-10 DR-AL
Variance CG32647 2.51E-10 DR-AL
Variance Apoltp 2.55E-10 DR-AL
Variance atms 2.62E-10 DR-AL
Variance atms 2.62E-10 DR-AL
Variance topi 2.72E-10 DR-AL
Variance topi 2.72E-10 DR-AL
Variance CG8713 3.20E-10 DR-AL
Variance CG8713 3.20E-10 DR-AL
Variance Grd 3.27E-10 DR-AL
Variance app 3.31E-10 DR-AL
XAminovaleri Cralbp 8.93E-31 DR-AL
XAminovaleri Gap69C 1.30E-30 DR-AL
XAminovaleri CR43836 2.63E-30 DR-AL
XAminovaleri melt 3.74E-30 DR-AL
XAminovaleri Pxn 1.05E-29 DR-AL
XAminovaleri Spn 1.43E-29 DR-AL
XAminovaleri ltl 1.45E-29 DR-AL
XAminovaleri dally 1.56E-29 DR-AL
XAminovaleri dally 1.65E-29 DR-AL
XAminovaleri dally 1.89E-29 DR-AL
XAminovaleri Ptp61F 2.22E-29 DR-AL
XAminovaleri CG42335 3.63E-29 DR-AL
XAminovaleri CG10663 4.06E-29 DR-AL
Xanthosine Sap47 1.03E-23 DR-AL
Xanthosine AP-2 2.56E-23 DR-AL
Xanthosine NK7.1 4.13E-23 DR-AL
Xanthosine Mrtf 4.94E-23 DR-AL
Xanthosine Mrtf 6.11E-23 DR-AL
Xanthosine shep 9.48E-23 DR-AL
Xanthosine CG32085 9.63E-23 DR-AL
Xanthosine CG32373 1.10E-22 DR-AL
Xanthosine l(3)05822 1.33E-22 DR-AL
Xanthosine inaC 1.45E-22 DR-AL
141
Xanthosine CG15117 1.51E-22 DR-AL
Xanthosine sws 1.68E-22 DR-AL
Xanthosine smg 2.04E-22 DR-AL
Xanthosine CG32373 2.08E-22 DR-AL
Xanthosine CG7337 2.11E-22 DR-AL
Xanthosine NK7.1 2.48E-22 DR-AL
Xanthurenate CG15661 9.82E-53 DR-AL
Xanthurenate CG15661 9.82E-53 DR-AL
Xanthurenate CR43836 1.82E-52 DR-AL
Xanthurenate CR43836 1.82E-52 DR-AL
Xanthurenate oc 5.11E-52 DR-AL
Xanthurenate oc 5.11E-52 DR-AL
Xanthurenate CG8216 5.34E-52 DR-AL
Xanthurenate CG8216 5.34E-52 DR-AL
Xanthurenate spin 6.05E-52 DR-AL
Xanthurenate spin 6.05E-52 DR-AL
Xanthurenate CG15894 8.89E-52 DR-AL
Xanthurenate CG15894 8.89E-52 DR-AL
Xanthurenate spin 1.17E-51 DR-AL
Xanthurenate spin 1.17E-51 DR-AL
Xanthurenate hfw 1.31E-51 DR-AL
Xanthurenate hfw 1.31E-51 DR-AL
XHBA CG43078 1.51E-20 DR-AL
XHBA Esyt2 1.93E-20 DR-AL
XHBA CG42575 2.49E-20 DR-AL
XHBA CG42678 2.65E-20 DR-AL
XHBA CG3277 2.77E-20 DR-AL
XHBA CG8034 2.78E-20 DR-AL
XHBA CG43313 3.59E-20 DR-AL
XHBA CG10960 4.33E-20 DR-AL
XHBA CG32687 4.73E-20 DR-AL
XHBA GEFmeso 5.72E-20 DR-AL
XHBA CG5707 6.06E-20 DR-AL
XHBA CR43963 7.70E-20 DR-AL
XHBA Gef64C 8.17E-20 DR-AL
XHBA CG4386 8.82E-20 DR-AL
XHODE CG2145 3.17E-47 DR-AL
XHODE CG2145 1.42E-46 DR-AL
XHODE GlcAT-P 1.64E-46 DR-AL
XHODE CG2145 1.65E-46 DR-AL
XHODE Octbeta3R 2.65E-46 DR-AL
142
XHODE aret 2.72E-46 DR-AL
XHODE Gap1 2.88E-46 DR-AL
XHODE CR43794 4.26E-46 DR-AL
XHODE CG5004 4.42E-46 DR-AL
XHODE CG5004 4.78E-46 DR-AL
XHODE CG5004 5.30E-46 DR-AL
XHODE CG7432 6.40E-46 DR-AL
XHODE CR43794 8.02E-46 DR-AL
XHODE CR43794 1.12E-45 DR-AL
XHODE CG8740 1.19E-45 DR-AL
XHODE comt 1.24E-45 DR-AL
XHydroxyglut CG10073 8.73E-07 DR-AL
XHydroxyglut CG10073 8.73E-07 DR-AL
XHydroxyglut pgant5 1.25E-06 DR-AL
XHydroxyglut pgant5 1.25E-06 DR-AL
XHydroxyglut Ada2a 2.90E-06 DR-AL
XHydroxyglut Ada2a 2.90E-06 DR-AL
XHydroxyglut Ada2a 3.11E-06 DR-AL
XHydroxyglut Ada2a 3.11E-06 DR-AL
XHydroxyglut Coprox 3.46E-06 DR-AL
XHydroxyglut Coprox 3.46E-06 DR-AL
XHydroxyglut Ada2a 3.54E-06 DR-AL
XHydroxyglut Ada2a 3.54E-06 DR-AL
XHydroxyglut Mrtf 3.79E-06 DR-AL
XHydroxyglut Mrtf 3.79E-06 DR-AL
XHydroxyglut pgant5 4.37E-06 DR-AL
XHydroxyglut pgant5 4.37E-06 DR-AL
XHydroxykynu CG32111 6.74E-18 DR-AL
XHydroxykynu CG32111 6.74E-18 DR-AL
XHydroxykynu CG32111 9.55E-18 DR-AL
XHydroxykynu CG32111 9.55E-18 DR-AL
XHydroxykynu CG32111 5.02E-17 DR-AL
XHydroxykynu CG32111 5.02E-17 DR-AL
XHydroxykynu CG32111 7.07E-17 DR-AL
XHydroxykynu CG32111 7.07E-17 DR-AL
XHydroxykynu CG32111 9.21E-17 DR-AL
XHydroxykynu CG32111 9.21E-17 DR-AL
XHydroxykynu klar 9.93E-17 DR-AL
XHydroxykynu klar 9.93E-17 DR-AL
XHydroxykynu CG32645 1.36E-16 DR-AL
XHydroxykynu CG32645 1.36E-16 DR-AL
143
XHydroxykynu CG32111 1.52E-16 DR-AL
XHydroxykynu CG32111 1.52E-16 DR-AL
XHydroxykynu CG32111 1.54E-16 DR-AL
XHydroxykynu CG32111 1.54E-16 DR-AL
XHydroxykynu Roc2 1.66E-16 DR-AL
XHydroxykynu Roc2 1.66E-16 DR-AL
XMethylhisti CG43901 1.20E-54 DR-AL
XMethylhisti dnc 1.24E-54 DR-AL
XMethylhisti axo 1.87E-54 DR-AL
XMethylhisti CG42525 3.99E-54 DR-AL
XMethylhisti axo 4.45E-54 DR-AL
XMethylhisti CG10426 4.99E-54 DR-AL
XMethylhisti pigs 5.77E-54 DR-AL
XMethylhisti CG10426 7.16E-54 DR-AL
XMethylhisti Ten-a 7.40E-54 DR-AL
XMethylhisti CG42340 8.82E-54 DR-AL
XMethylhisti axo 8.96E-54 DR-AL
XMethylhisti CG42340 9.44E-54 DR-AL
XMethylhisti eag 1.20E-53 DR-AL
XMethylhisti CG43901 1.33E-53 DR-AL
XMethylhisti CG33143 1.37E-53 DR-AL
XMethylhisti axo 1.41E-53 DR-AL
XMethylhisti sgg 1.49E-53 DR-AL
XMethylhisti CG43444 1.54E-53 DR-AL
XMethylhisti CG32369 1.72E-53 DR-AL
XPhosphoglyc CG32698 1.17E-26 DR-AL
XPhosphoglyc CG34411 8.63E-26 DR-AL
XPhosphoglyc CG34411 9.35E-26 DR-AL
XPhosphoglyc Lim1 1.31E-25 DR-AL
XPhosphoglyc CG30095 2.67E-25 DR-AL
XPhosphoglyc CG32698 3.44E-25 DR-AL
XPhosphoglyc aret 3.75E-25 DR-AL
XPhosphoglyc CG30095 4.05E-25 DR-AL
XPhosphoglyc CG32698 4.41E-25 DR-AL
XPhosphoglyc CG30095 4.61E-25 DR-AL
XPhosphoglyc dpr2 4.70E-25 DR-AL
XPhosphoglyc CG32264 5.63E-25 DR-AL
XPhosphoglyc Fmo-1 6.10E-25 DR-AL
XPhosphoglyc Mob2 7.00E-25 DR-AL
XPhosphoglyc CG34411 7.26E-25 DR-AL
XPhosphoglyc CG32111 8.19E-25 DR-AL
144
XPhosphoglyc nub 9.21E-25 DR-AL
XPhosphoglyc CG30095 9.74E-25 DR-AL
XPhosphoglyc Unc-89 9.99E-25 DR-AL
XPyridoxicac CG3511 2.51E-52 DR-AL
XPyridoxicac f 4.12E-52 DR-AL
XPyridoxicac f 5.47E-52 DR-AL
XPyridoxicac CG8918 1.25E-51 DR-AL
XPyridoxicac CG8918 1.25E-51 DR-AL
XPyridoxicac CG43759 1.68E-51 DR-AL
XPyridoxicac CG4622 1.76E-51 DR-AL
XPyridoxicac CG43759 1.95E-51 DR-AL
XPyridoxicac CG2930 2.42E-51 DR-AL
XPyridoxicac f 3.02E-51 DR-AL
XPyridoxicac Jarid2 3.09E-51 DR-AL
XPyridoxicac dally 3.30E-51 DR-AL
XPyridoxicac Fur1 3.56E-51 DR-AL
XPyridoxicac CG43759 3.57E-51 DR-AL
XPyridoxicac CG10597 3.73E-51 DR-AL
XPyridoxicac kirre 4.06E-51 DR-AL
Supplementary Table 5.1 - GWAS candidate genes for DR-AL metabolite and phenotype response.
145
CHAPTER 6: CONCLUSIONS
Drosophila serves as an ideal model for metabolic disease.
We showed here that genes regulating Drosophila metabolism could be used to rescue metabolic
disease phenotypes typically only seen in humans. Using the ease and power of Drosophila genetics, we
identified genes that regulate concretion formation in our hyperuricemia fly model. Two of these genes,
cacophony (cac) and medusa (mda) were also able to rescue the shortened lifespan phenotype. The role
of mda in regulating intracellular urate and inflammation was conserved, showing a function for the
human gene with unknown function, FAM214a. Our approach identified candidate genes not in
traditional hyperuricemia pathways, such as transporter genes previously found in human GWAS, which
helped bridge a gap between ER stress, inflammation, and hyperuricemia. Future studies of metabolic
diseases can take a similar approach to identify novel regulators of key pathways.
Diabetes and Obesity-Regulated (DOR) bolsters individual resilience and lifespan through regulation
of the inflammatory response
In addition to Drosophila’s use in understanding the underlying biology of metabolic diseases, it also
functions as a key model for elucidating the mechanisms of aging. Through the works presented here,
we have demonstrated that fly strains have varying mortality trajectories. While the majority of these
strains showed an extended lifespan upon dietary restriction (DR) compared to the ad libitum (AL) fed
group, the magnitude varied greatly, and some exhibited a shortened lifespan response. Representing
these lifespans in terms of mortality showed that DR impacted lifespan differently depending on the
strain, with some strains having a delayed initial mortality (α), or onset of increasing mortality, while DR
changed the rate of mortality (β) in other strains. Taking a similar GWAS approach used in our studies on
metabolism, we identified candidate genes that could regulated late-life mortality. One of the
candidates we investigated further, Diabetes and Obesity-Regulated (DOR), was found to impact
146
mortality in a diet-independent manner. Not only did its loss lead to a drastic shortening of lifespan, but
it also reduced a fly’s healthspan and resilience measured by various healthspan metrics. We
demonstrated that inhibition of DOR leads to an increase in inflammation and senescence markers
throughout the body and increases susceptibility to germline senescence with age and x-ray radiation
treatment. Further, overexpression of the DOR FENLL isoform increased expression of germline-specific
pathways and rescued some of the aging-related decline in resilience. Overall, this candidate and others
identified using this approach demonstrate the power of utilizing Drosophila to elucidate underlying
pathways of aging.
Untapped potential of a systems biology approach utilizing the DGRP
Despite the numerous studies using data collected from varying numbers of DGRP strains under multiple
conditions, several candidate genes and mechanisms remain unstudied. Through our endeavor to
consider multiple DGRP datasets when identifying mechanisms nature used to build lifespan and
healthspan traits, we have identified several known and unknown features predicted to regulate these
outcomes. Querying this rich dataset with new questions uncovers interesting answers that require
thorough investigation, providing opportunities to dissect the underlying biology first in the fly model.
The conserved nature of many of these answers provides a powerful and exciting tool to find treatments
that can be translated to humans.
Final Thoughts
Our work demonstrates the power of these approaches to identifying novel pathways and treatment
targets for aging and other metabolic diseases. While we pursued several candidates, several remain to
be investigated further. Since we used a fly model, there are likely some species-specific candidates
alongside the more general aging mechanisms. Ideally, future studies will be able to perform similar
approaches in mammals, which may serve to select for mammalian-specific candidate genes and
147
pathways that would more easily translate to humans. Regardless of the model, studies should continue
to include multiple strains to account for genotype-specific susceptibilities.
148
APPENDICES
APPENDIX A
GWAS_coxph_full.R – R code used for Cox proportional hazards analysis and results for Chapter 3.
require('survival') #loading in package with coxph function
require('survminer') #loading in package for visualization
require('ggsurv')
library('fastDummies')
windowsFonts(A = windowsFont("Arial"))
#Medusa
Medusa = read.csv('Da-GS-uriRNAiXCG9005_coxph.csv', header = T)
Medusa = Medusa[(!is.na(Medusa[, "events"])),]
for (i in 1:dim(Medusa)[1]) {
if (i == 1) {Medusa_coxph = matrix(rep(Medusa[i,], each=Medusa[i,'events']), nrow =
Medusa[i,'events'], ncol = dim(Medusa)[2])}
if (Medusa[i,'events'] == 0) {next}
else {
Medusa_coxph = rbind(Medusa_coxph, matrix(rep(Medusa[i,],
each=Medusa[i,'events']), nrow = Medusa[i,'events'], ncol = dim(Medusa)[2]))
}
}
colnames(Medusa_coxph) = colnames(Medusa)
Medusa_coxph = as.data.frame(Medusa_coxph[,c(1:2,4:dim(Medusa)[2])])
for (i in 1:dim(Medusa_coxph)[2]) {
Medusa_coxph[,i] = as.numeric(Medusa_coxph[,i])
}
Medusa.multicox = coxph(Surv(time, status) ~ RU486, data = Medusa_coxph)
Medusafit = survfit(Surv(time, status) ~ RU486, data = Medusa_coxph)
ggsurvplot(Medusafit, conf.int=TRUE, ggtheme = theme_minimal())
# > summary(Medusa.multicox)
# Call:
# coxph(formula = Surv(time, status) ~ RU486, data = Medusa_coxph)
#
# n= 1146, number of events= 1146
#
# coef exp(coef) se(coef) z Pr(>|z|)
# RU486 0.3322 1.3941 0.0316 10.52 <2e-16 ***
# ---
# Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#
# exp(coef) exp(-coef) lower .95 upper .95
149
# RU486 1.394 0.7173 1.31 1.483
#
# Concordance= 0.577 (se = 0.009 )
# Rsquare= 0.093 (max possible= 1 )
# Likelihood ratio test= 111.2 on 1 df, p=<2e-16
# Wald test = 110.6 on 1 df, p=<2e-16
# Score (logrank) test = 114.1 on 1 df, p=<2e-16
#Including date in the Medusa coxph model:
Medusadate.multicox = coxph(Surv(time, status) ~ RU486+date, data = Medusa_coxph)
Medusadatefit = survfit(Surv(time, status) ~ RU486+date, data = Medusa_coxph)
ggsurvplot(Medusadatefit, conf.int=TRUE, ggtheme = theme_minimal())
# > summary(Medusadate.multicox)
# Call:
# coxph(formula = Surv(time, status) ~ RU486 + date, data = Medusa_coxph)
#
# n= 1180, number of events= 1180
#
# coef exp(coef) se(coef) z Pr(>|z|)
# RU486 0.33713 1.40092 0.03119 10.808 <2e-16 ***
# date 0.07313 1.07587 0.03199 2.286 0.0223 *
# ---
# Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#
# exp(coef) exp(-coef) lower .95 upper .95
# RU486 1.401 0.7138 1.318 1.489
# date 1.076 0.9295 1.010 1.145
#
# Concordance= 0.584 (se = 0.01 )
# Rsquare= 0.098 (max possible= 1 )
# Likelihood ratio test= 122.2 on 2 df, p=<2e-16
# Wald test = 120.9 on 2 df, p=<2e-16
# Score (logrank) test = 124.8 on 2 df, p=<2e-16
###Limiting by date, since it was significant in the initial model containing all dates
#Date still significant with 4-6
Medusa.multicox123 = coxph(Surv(time, status) ~ RU486+date, data =
Medusa_coxph[which(Medusa_coxph$'date' %in% c(1:3)),])
Medusadatefit123 = survfit(Surv(time, status) ~ RU486+date, data =
Medusa_coxph[which(Medusa_coxph$'date' %in% c(1:3)),])
ggsurvplot(Medusadatefit123, conf.int=TRUE, ggtheme = theme_minimal())
###TRiP
TRiP = read.csv('Da-GS-uriRNAiXTRiP_coxph.csv', header = T)
for (i in 1:dim(TRiP)[1]) {
if (i == 1) {TRiP_coxph = matrix(rep(TRiP[i,], each=TRiP[i,'events']), nrow = TRiP[i,'events'], ncol =
dim(TRiP)[2])}
150
TRiP_coxph = rbind(TRiP_coxph, matrix(rep(TRiP[i,], each=TRiP[i,'events']), nrow = TRiP[i,'events'], ncol =
dim(TRiP)[2]))
}
colnames(TRiP_coxph) = colnames(TRiP)
TRiP_coxph = as.data.frame(TRiP_coxph[,c(1:2,4:dim(TRiP)[2])])
for (i in 1:dim(TRiP_coxph)[2]) {
TRiP_coxph[,i] = as.numeric(TRiP_coxph[,i])
}
TRiP.multicox = coxph(Surv(time, status) ~ RU486, data = TRiP_coxph)
TRiPfit = survfit(Surv(time, status) ~ RU486, data = TRiP_coxph)
ggsurvplot(TRiPfit, conf.int=TRUE, ggtheme = theme_minimal())
# > summary(TRiP.multicox)
# Call:
# coxph(formula = Surv(time, status) ~ RU486, data = TRiP_coxph)
#
# n= 2598, number of events= 2598
#
# coef exp(coef) se(coef) z Pr(>|z|)
# RU486 0.57990 1.78587 0.02156 26.9 <2e-16 ***
# ---
# Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#
# exp(coef) exp(-coef) lower .95 upper .95
# RU486 1.786 0.56 1.712 1.863
#
# Concordance= 0.643 (se = 0.005 )
# Rsquare= 0.239 (max possible= 1 )
# Likelihood ratio test= 709.5 on 1 df, p=<2e-16
# Wald test = 723.6 on 1 df, p=<2e-16
# Score (logrank) test = 774.2 on 1 df, p=<2e-16
#Hamlet
Hamlet = read.csv('Hamlet_deaths.csv', header = T)
for (i in 1:dim(Hamlet)[1]) {
if (i == 1) {Hamlet_coxph = matrix(rep(Hamlet[i,], each=Hamlet[i,2]), nrow = Hamlet[i,2], ncol =
dim(Hamlet)[2])}
Hamlet_coxph = rbind(Hamlet_coxph, matrix(rep(Hamlet[i,], each=Hamlet[i,2]), nrow = Hamlet[i,2], ncol
= dim(Hamlet)[2]))
}
colnames(Hamlet_coxph) = colnames(Hamlet)
Hamlet_coxph = as.data.frame(Hamlet_coxph[,c(1,3:dim(Hamlet)[2])])
Hamlet_coxph[,1] = as.numeric(Hamlet_coxph[,1])
Hamlet_coxph[,2] = as.numeric(Hamlet_coxph[,2])
Hamlet_coxph[,3] = as.numeric(Hamlet_coxph[,3])
Hamlet_coxph[,4] = as.numeric(Hamlet_coxph[,4])
151
Hamlet.multicox = coxph(Surv(time, status) ~ RU486, data = Hamlet_coxph)
#ggsurvplot(Hamlet.multicox, conf.int=TRUE, ggtheme = theme_minimal())
# > summary(Hamlet.multicox)
# Call:
# coxph(formula = Surv(time, status) ~ RU486, data = Hamlet_coxph)
#
# n= 646, number of events= 646
#
# coef exp(coef) se(coef) z Pr(>|z|)
# RU486 1.02740 2.79379 0.08465 12.14 <2e-16 ***
# ---
# Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#
# exp(coef) exp(-coef) lower .95 upper .95
# RU486 2.794 0.3579 2.367 3.298
#
# Concordance= 0.639 (se = 0.012 )
# Rsquare= 0.202 (max possible= 1 )
# Likelihood ratio test= 145.8 on 1 df, p=<2e-16
# Wald test = 147.3 on 1 df, p=<2e-16
# Score (logrank) test = 156.3 on 1 df, p=<2e-16
#Including genotypeXRU486 terms
#Medusa_TRiP
Medusa_TRiP = read.csv('Da-GS-uriRNAiXTRiPorCG9005_coxph.csv', header = T)
for (i in 1:dim(Medusa_TRiP)[1]) {
if (i == 1) {Medusa_TRiP_coxph = matrix(rep(Medusa_TRiP[i,], each=Medusa_TRiP[i,'events']),
nrow = Medusa_TRiP[i,'events'], ncol = dim(Medusa_TRiP)[2])}
Medusa_TRiP_coxph = rbind(Medusa_TRiP_coxph, matrix(rep(Medusa_TRiP[i,],
each=Medusa_TRiP[i,'events']), nrow = Medusa_TRiP[i,'events'], ncol = dim(Medusa_TRiP)[2]))
}
colnames(Medusa_TRiP_coxph) = colnames(Medusa_TRiP)
Medusa_TRiP_coxph = as.data.frame(Medusa_TRiP_coxph[,c(1:2,4:dim(Medusa_TRiP)[2])])
for (i in 1:length(Medusa_TRiP_coxph)) {
Medusa_TRiP_coxph[,i] = as.numeric(Medusa_TRiP_coxph[,i])
}
Medusa_TRiP.multicox = coxph(Surv(time, status) ~ genotype*RU486, data = Medusa_TRiP_coxph)
# > summary(Medusa_TRiP.multicox)
# Call:
# coxph(formula = Surv(time, status) ~ genotype * RU486, data = Medusa_TRiP_coxph)
#
# n= 3744, number of events= 3744
#
# coef exp(coef) se(coef) z Pr(>|z|)
# genotype -0.19939 0.81923 0.01792 -11.126 <2e-16 ***
152
# RU486 0.45064 1.56932 0.01880 23.973 <2e-16 ***
# genotype:RU486 -0.15952 0.85255 0.01792 -8.901 <2e-16 ***
# ---
# Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#
# exp(coef) exp(-coef) lower .95 upper .95
# genotype 0.8192 1.2207 0.7910 0.8485
# RU486 1.5693 0.6372 1.5125 1.6282
# genotype:RU486 0.8526 1.1730 0.8231 0.8830
#
# Concordance= 0.652 (se = 0.005 )
# Likelihood ratio test= 943.8 on 3 df, p=<2e-16
# Wald test = 1015 on 3 df, p=<2e-16
# Score (logrank) test = 1098 on 3 df, p=<2e-16
Medusa_TRiPfit = survfit(Surv(time, status) ~ genotype+RU486, data = Medusa_TRiP_coxph)
# d1 <- with(Medusa_TRiPfit, data.frame(time, surv, strata=rep(1:2, each=length(surv) / 2)))
# cols <- c("red", "blue")
# plot(d1$time, d1$surv, type="n", ylim=0:1)
# sapply(1:2, function(x) with(d1[d1$strata == x, ], lines(time, surv, type="l", col=cols[x])))
# legend("topright", legend=c("rx1", "rx2"), lty=1, col=cols, title="Strata")
png(file=paste("MedusaRNAi_WholeBody_coxPH_NoTitleNoXNoYnopval_lightconf_fixMarg_newLabs_d
ots.png"), units='in', height=5.08, width=7.62, res=600)
#windows(7,5)
par(mar=c(5,3,3,2)+1)
f = ggsurvplot(Medusa_TRiPfit,
palette= c("black", "black", "blue", "blue"),
ggtheme = theme_minimal() + theme(text = element_text(family="A",size=25),
plot.title = element_blank(),#element_text(hjust = 0.5, size=24),
axis.text.x = element_text(hjust=0.5, vjust=0.5, size=25, color='black'),
#angle=90
axis.title.x = element_blank(),
axis.title.y = element_blank(),
axis.text.y = element_text(size=25, color='black'),
legend.position = "none",# Hide panel borders and remove grid lines
axis.line = element_line(colour = "black"),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border = element_blank(),
panel.background = element_blank(),
plot.margin=unit(c(.5,.5,0,0),"cm")),
title = "Whole-body Medusa RNAi Survival",
conf.int = TRUE,
conf.int.alpha = 0.1,
#pval = paste("genotype*RNAi\npval = ",
as.character(formatC(summary(Medusa_TRiP.multicox)$coefficients[3,5], format = "e", digits = 2)),
sep=""),
#pval.coord = c(35, 0.85),
153
#pval.size = 7,
legend.labs = c("TRiP Ctrl AL-", "TRiP Ctrl AL+", "mda RNAi AL-", "mda RNAi AL+"),
break.time.by = 10,
linetype = c(1,3,1,3),#"solid", "dashed", "solid", "dashed"),
ylab = "Survival Percentage",
xlab = "Time (Days)",
axes.offset = F,
surv.scale = "percent",
legend = c(0.8, 0.6),#"right",
legend.title = "",
#font.x = c(16, "bold", "black"),
#font.y = c(16, "bold", "black"),
font.tickslab = c(25, "black"),
font.legend = c(22, "black")) #,
#font.title = 18)
#f + geom_line(aes(color = group))
#f + geom_smooth(aes(color = group))
print(f)
dev.off()
dim(Medusa_TRiP_coxph[which(Medusa_TRiP_coxph[,Medusa_TRiP_coxph[,(('genotype'==-
1)&('RU486'==-1))]])])
# > summary(Medusa_TRiP.multicox)
# Call:
# coxph(formula = Surv(time, status) ~ genotype * RU486, data = Medusa_TRiP_coxph)
#
# n= 3744, number of events= 3744
#
# coef exp(coef) se(coef) z Pr(>|z|)
# genotype -0.19939 0.81923 0.01792 -11.126 <2e-16 ***
# RU486 0.45064 1.56932 0.01880 23.973 <2e-16 ***
# genotype:RU486 -0.15952 0.85255 0.01792 -8.901 <2e-16 ***
# ---
# Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#
# exp(coef) exp(-coef) lower .95 upper .95
# genotype 0.8192 1.2207 0.7910 0.8485
# RU486 1.5693 0.6372 1.5125 1.6282
# genotype:RU486 0.8526 1.1730 0.8231 0.8830
#
# Concordance= 0.652 (se = 0.005 )
# Rsquare= 0.223 (max possible= 1 )
# Likelihood ratio test= 943.8 on 3 df, p=<2e-16
# Wald test = 1015 on 3 df, p=<2e-16
# Score (logrank) test = 1098 on 3 df, p=<2e-16
#Original run
154
# > summary(Medusa_TRiP.multicox)
# Call:
# coxph(formula = Surv(time, status) ~ genotype * RU486, data = Medusa_TRiP_coxph)
#
# n= 3058, number of events= 3058
#
# coef exp(coef) se(coef) z Pr(>|z|)
# genotype -0.002784 0.997220 0.053821 -0.052 0.959
# RU486 1.245583 3.474962 0.048588 25.636 <2e-16 ***
# genotype:RU486 -0.685157 0.504011 0.075760 -9.044 <2e-16 ***
# ---
# Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#
# exp(coef) exp(-coef) lower .95 upper .95
# genotype 0.9972 1.0028 0.8974 1.1082
# RU486 3.4750 0.2878 3.1593 3.8222
# genotype:RU486 0.5040 1.9841 0.4345 0.5847
#
# Concordance= 0.649 (se = 0.006 )
# Rsquare= 0.211 (max possible= 1 )
# Likelihood ratio test= 724.5 on 3 df, p=<2e-16
# Wald test = 787.1 on 3 df, p=<2e-16
# Score (logrank) test = 851.5 on 3 df, p=<2e-16
#Run with more data on March 6 2019
# > summary(Medusa_TRiP.multicox)
# Call:
# coxph(formula = Surv(time, status) ~ genotype * RU486, data = Medusa_TRiP_coxph)
#
# n= 3423, number of events= 3423
#
# coef exp(coef) se(coef) z Pr(>|z|)
# genotype -0.05013 0.95111 0.05238 -0.957 0.339
# RU486 1.23153 3.42647 0.04472 27.538 <2e-16 ***
# genotype:RU486 -0.68009 0.50657 0.07350 -9.253 <2e-16 ***
# ---
# Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#
# exp(coef) exp(-coef) lower .95 upper .95
# genotype 0.9511 1.0514 0.8583 1.0539
# RU486 3.4265 0.2918 3.1389 3.7404
# genotype:RU486 0.5066 1.9741 0.4386 0.5851
#
# Concordance= 0.651 (se = 0.005 )
# Rsquare= 0.218 (max possible= 1 )
# Likelihood ratio test= 840.2 on 3 df, p=<2e-16
# Wald test = 910.2 on 3 df, p=<2e-16
# Score (logrank) test = 985.1 on 3 df, p=<2e-16
155
# Medusa_TRiP_fit = survfit(Surv(time, status) ~ diet+RU, data = Medusa_TRiP_coxph)
# ggsurvplot(Medusa_TRiP_fit, palette= c("black", "black", "blue", "blue"), ggtheme = theme_minimal(),
conf.int = TRUE, p.val = TRUE, legend.labs = c("Uro Control, n = 1119", "Uro RNAi, n = 1160", "Uro +
Medusa Control, n = 542", "Uro + Medusa RNAi, n = 594"), break.time.by = 10, linetype = c("solid",
"dashed", "solid", "dashed"), ylab = "Survival Percentage", xlab = "Time (Days)", axes.offset = F,
surv.scale = "percent", legend = "bottom", font.x = c(16, "bold", "black"), font.y = c(16, "bold", "black"),
font.tickslab = c(12, "bold", "black"), font.legend = c(22, "black"))
###Uro-GAL4 with genotype terms
#UroGAL4Medusa_TRiP
UroGAL4Medusa_TRiP = read.csv('Uro-GAL4, uriRNAiXTRiPorCG9005_coxph.csv', header = T)
UroGAL4Medusa_TRiP = UroGAL4Medusa_TRiP[1:310,]
for (i in 1:dim(UroGAL4Medusa_TRiP)[1]) {
if (i == 1) {UroGAL4Medusa_TRiP_coxph = matrix(rep(UroGAL4Medusa_TRiP[i,],
each=UroGAL4Medusa_TRiP[i,'events']), nrow = UroGAL4Medusa_TRiP[i,'events'], ncol =
dim(UroGAL4Medusa_TRiP)[2])}
UroGAL4Medusa_TRiP_coxph = rbind(UroGAL4Medusa_TRiP_coxph,
matrix(rep(UroGAL4Medusa_TRiP[i,], each=UroGAL4Medusa_TRiP[i,'events']), nrow =
UroGAL4Medusa_TRiP[i,'events'], ncol = dim(UroGAL4Medusa_TRiP)[2]))
}
colnames(UroGAL4Medusa_TRiP_coxph) = colnames(UroGAL4Medusa_TRiP)
UroGAL4Medusa_TRiP_coxph =
as.data.frame(UroGAL4Medusa_TRiP_coxph[,c(1:2,4:dim(UroGAL4Medusa_TRiP)[2])])
for (i in 1:length(UroGAL4Medusa_TRiP_coxph)) {
UroGAL4Medusa_TRiP_coxph[,i] = as.numeric(UroGAL4Medusa_TRiP_coxph[,i])
}
UroGAL4Medusa_TRiP.multicox = coxph(Surv(time, status) ~ genotype, data =
UroGAL4Medusa_TRiP_coxph)
UroGAL4Medusa_TRiPfit = survfit(Surv(time, status) ~ genotype, data =
UroGAL4Medusa_TRiP_coxph)
#ggsurvplot(UroGAL4Medusa_TRiPfit, palette= c("black", "blue"), ggtheme = theme_minimal(), conf.int
= TRUE, p.val = TRUE, legend.labs = c("Uro RNAi, n = 255", "Uro + Medusa RNAi, n = 270"),
break.time.by = 10, ylab = "Survival Percentage", xlab = "Time (Days)", axes.offset = F, surv.scale =
"percent", legend = "bottom", font.x = c(16, "bold", "black"), font.y = c(16, "bold", "black"), font.tickslab
= c(12, "bold", "black"), font.legend = c(22, "black"))#, pval=TRUE)
# > summary(UroGAL4Medusa_TRiP.multicox)
# Call:
# coxph(formula = Surv(time, status) ~ genotype, data = UroGAL4Medusa_TRiP_coxph)
#
# n= 526, number of events= 526
#
# coef exp(coef) se(coef) z Pr(>|z|)
# genotype -0.26816 0.76479 0.04412 -6.078 1.21e-09 ***
# ---
# Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#
# exp(coef) exp(-coef) lower .95 upper .95
156
# genotype 0.7648 1.308 0.7014 0.8339
#
# Concordance= 0.625 (se = 0.015 )
# Rsquare= 0.067 (max possible= 1 )
# Likelihood ratio test= 36.33 on 1 df, p=2e-09
# Wald test = 36.95 on 1 df, p=1e-09
# Score (logrank) test = 37.8 on 1 df, p=8e-10
png(file=paste("MedusaRNAi_MalpigTub_coxPH_noTitlenoXnoYnopval_lightconf_fixMarg_newLabs.
png"), units='in', height=5.08, width = 7.62, res=600)
#par(mar=c(5,3,2,2)+1)
f = ggsurvplot(UroGAL4Medusa_TRiPfit,
palette= c("black", "blue"),
ggtheme = theme_minimal() + theme(text = element_text(size=25, family="A"),
plot.title = element_blank(),#element_text(hjust = 0.5, size=24),
axis.text.x = element_blank(),#element_text(hjust=0.5, vjust=0.5, size=25,
color='black'), #angle=90
axis.title.x = element_blank(),
axis.title.y = element_blank(),
axis.text.y = element_blank(),#element_text(size=25, color='black'),
legend.position = "none",# Hide panel borders and remove grid lines
axis.line = element_line(colour = "black"),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border = element_blank(),
panel.background = element_blank(),
plot.margin=unit(c(.5,.5,0,0),"cm")),
title = "Uro-GAL4, uro RNAi >",#Malpighian Tubule Medusa RNAi Survival",
conf.int = T R U E,
conf.int.alpha = 0.1,
#pval = paste("genotype\npval = ",
as.character(formatC(summary(UroGAL4Medusa_TRiP.multicox)$coefficients[1,5], format = "e", digits
= 2)), sep=""),
#pval.coord = c(25, 0.9),
#pval.size = 7,
legend.labs = c("TRiP Ctrl", expression(paste(italic("mda"), " RNAi"))),
break.time.by = 10,
linetype = c("solid", "solid"),
ylab = "Survival Percentage",
xlab = "Time (Days)",
axes.offset = F,
surv.scale = "percent",
legend = c(0.8, 0.7),#"right",
legend.title = "",
#font.x = c(16, "bold", "black"),
#font.y = c(16, "bold", "black"),
font.tickslab = c(25, "black"),
font.legend = c(22, "black"))
print(f)
dev.off()
157
#Hamlet_TRiP
Hamlet_TRiP = read.csv('Hamlet_TRiP_deaths.csv', header = T)
for (i in 1:dim(Hamlet_TRiP)[1]) {
if (i == 1) {Hamlet_TRiP_coxph = matrix(rep(Hamlet_TRiP[i,], each=Hamlet_TRiP[i,2]), nrow
= Hamlet_TRiP[i,2], ncol = dim(Hamlet_TRiP)[2])}
Hamlet_TRiP_coxph = rbind(Hamlet_TRiP_coxph, matrix(rep(Hamlet_TRiP[i,],
each=Hamlet_TRiP[i,2]), nrow = Hamlet_TRiP[i,2], ncol = dim(Hamlet_TRiP)[2]))
}
colnames(Hamlet_TRiP_coxph) = colnames(Hamlet_TRiP)
Hamlet_TRiP_coxph = as.data.frame(Hamlet_TRiP_coxph[,c(1,3:dim(Hamlet_TRiP)[2])])
for (i in 1:length(Hamlet_TRiP_coxph)) {
Hamlet_TRiP_coxph[,i] = as.numeric(Hamlet_TRiP_coxph[,i])
}
Hamlet_TRiP.multicox = coxph(Surv(time, status) ~ genotype*RU486, data = Hamlet_TRiP_coxph)
# > summary(Hamlet_TRiP.multicox)
# Call:
# coxph(formula = Surv(time, status) ~ genotype * RU486, data = Hamlet_TRiP_coxph)
#
# n= 2566, number of events= 2566
#
# coef exp(coef) se(coef) z Pr(>|z|)
# genotype 0.31498 1.37024 0.06651 4.736 2.18e-06 ***
# RU486 1.17715 3.24513 0.04924 23.905 < 2e-16 ***
# genotype:RU486 -0.10126 0.90370 0.09144 -1.107 0.268
# ---
# Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#
# exp(coef) exp(-coef) lower .95 upper .95
# genotype 1.3702 0.7298 1.2028 1.561
# RU486 3.2451 0.3082 2.9466 3.574
# genotype:RU486 0.9037 1.1066 0.7554 1.081
#
# Concordance= 0.661 (se = 0.007 )
# Rsquare= 0.247 (max possible= 1 )
# Likelihood ratio test= 729 on 3 df, p=<2e-16
# Wald test = 743.7 on 3 df, p=<2e-16
# Score (logrank) test = 799.6 on 3 df, p=<2e-16
Hamlet_TRiPfit = survfit(Surv(time, status) ~ genotype+RU486, data = Hamlet_TRiP_coxph)
png(file=paste("hamletRNAi_WholeBody_coxPH_NoTitleNoXNoYnopval_lightconf_fixMarg.png"),
units='in', height=5.08, width = 7.62, res=600)
#par(mar=c(5,3,2,2)+1)
f = ggsurvplot(Hamlet_TRiPfit,
palette= c("black", "black", "red", "red"),
ggtheme = theme_minimal() + theme(plot.title = element_blank(),#element_text(hjust = 0.5,
size=24),
text = element_text(size=25, family="A"),
axis.text.x = element_text(hjust=0.5, vjust=0.5, size=25, color='black'),
#angle=90
158
axis.title.x = element_blank(),
axis.title.y = element_blank(),
axis.text.y = element_text(size=25, color='black'),
legend.position = "none",# Hide panel borders and remove grid lines
axis.line = element_line(colour = "black"),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border = element_blank(),
panel.background = element_blank(),
plot.margin=unit(c(.5,.5,0,0),"cm")),
title = "Whole-body hamlet RNAi Survival",
conf.int = T R U E,
conf.int.alpha = 0.1,
#pval = paste("genotype*RNAi\npval = ",
as.character(formatC(summary(Hamlet_TRiP.multicox)$coefficients[3,5], format = "e", digits = 2)),
sep=""),
#pval.coord = c(35, 0.85),
#pval.size = 7,
legend.labs = c("TRiP Ctrl AL-", "TRiP Ctrl AL+", "ham RNAi AL-", "ham RNAi AL+"),
break.time.by = 10,
linetype = c("solid", "dashed", "solid", "dashed"),
ylab = "Survival Percentage",
xlab = "Time (Days)",
axes.offset = F,
surv.scale = "percent",
legend = c(0.8, 0.6),#"right",
legend.title = "",
#font.x = c(16, "bold", "black"),
#font.y = c(16, "bold", "black"),
font.tickslab = c(25, "black"),
font.legend = c(22, "black"))#,
#font.title = 18)
print(f)
dev.off()
#Stathmin_TRiP
Stathmin_TRiP = read.csv('Stathmin_TRiP_deaths.csv', header = T)
for (i in 1:dim(Stathmin_TRiP)[1]) {
if (i == 1) {Stathmin_TRiP_coxph = matrix(rep(Stathmin_TRiP[i,], each=Stathmin_TRiP[i,2]),
nrow = Stathmin_TRiP[i,2], ncol = dim(Stathmin_TRiP)[2])}
Stathmin_TRiP_coxph = rbind(Stathmin_TRiP_coxph, matrix(rep(Stathmin_TRiP[i,],
each=Stathmin_TRiP[i,2]), nrow = Stathmin_TRiP[i,2], ncol = dim(Stathmin_TRiP)[2]))
}
colnames(Stathmin_TRiP_coxph) = colnames(Stathmin_TRiP)
Stathmin_TRiP_coxph = as.data.frame(Stathmin_TRiP_coxph[,c(1,3:dim(Stathmin_TRiP)[2])])
for (i in 1:length(Stathmin_TRiP_coxph)) {
Stathmin_TRiP_coxph[,i] = as.numeric(Stathmin_TRiP_coxph[,i])
}
Stathmin_TRiP.multicox = coxph(Surv(time, status) ~ genotype*RU486, data = Stathmin_TRiP_coxph)
159
# > summary(Stathmin_TRiP.multicox)
# Call:
# coxph(formula = Surv(time, status) ~ genotype * RU486, data = Stathmin_TRiP_coxph)
#
# n= 2393, number of events= 2393
#
# coef exp(coef) se(coef) z Pr(>|z|)
# genotype -0.05261 0.94875 0.07475 -0.704 0.482
# RU486 1.22424 3.40158 0.04924 24.862 <2e-16 ***
# genotype:RU486 -0.14010 0.86927 0.10293 -1.361 0.173
# ---
# Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#
# exp(coef) exp(-coef) lower .95 upper .95
# genotype 0.9487 1.054 0.8195 1.098
# RU486 3.4016 0.294 3.0886 3.746
# genotype:RU486 0.8693 1.150 0.7105 1.064
#
# Concordance= 0.665 (se = 0.007 )
# Rsquare= 0.253 (max possible= 1 )
# Likelihood ratio test= 699 on 3 df, p=<2e-16
# Wald test = 721 on 3 df, p=<2e-16
# Score (logrank) test = 776.6 on 3 df, p=<2e-16
Stathmin_TRiPfit = survfit(Surv(time, status) ~ genotype+RU486, data = Stathmin_TRiP_coxph)
png(file=paste("stathminRNAi_WholeBody_coxPH_NoTitleNoXNoYnopval_lightconf_fixMarg.png"),
units='in', height=5.08, width = 7.62, res=600)
#par(mar=c(5,3,2,2)+1)
f = ggsurvplot(Stathmin_TRiPfit,
palette= c("black", "black", "red", "red"),
ggtheme = theme_minimal() + theme(plot.title = element_blank(),#element_text(hjust = 0.5,
size=24),
text = element_text(size=25, family="A"),
axis.text.x = element_text(hjust=0.5, vjust=0.5, size=25, color='black'),
#angle=90
axis.title.x = element_blank(),
axis.title.y = element_blank(),
axis.text.y = element_text(size=25, color='black'),
legend.position = "none",# Hide panel borders and remove grid lines
axis.line = element_line(colour = "black"),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border = element_blank(),
panel.background = element_blank(),
plot.margin=unit(c(.5,.5,0,0),"cm")),
title = "Whole-body stathmin RNAi Survival",
conf.int = T R U E,
conf.int.alpha = 0.1,
#pval = paste("genotype*RNAi\npval = ",
as.character(formatC(summary(Stathmin_TRiP.multicox)$coefficients[3,5], format = "e", digits = 2)),
sep=""),
160
#pval.coord = c(35, 0.85),
#pval.size = 7,
legend.labs = c("TRiP Ctrl AL-", "TRiP Ctrl AL+", "stai RNAi AL-", "stai RNAi AL+"),
break.time.by = 10,
linetype = c("solid", "dashed", "solid", "dashed"),
ylab = "Survival Percentage",
xlab = "Time (Days)",
axes.offset = F,
surv.scale = "percent",
legend = c(0.8, 0.6),#"right",
legend.title = "",
#font.x = c(16, "bold", "black"),
#font.y = c(16, "bold", "black"),
font.tickslab = c(25, "black"),
font.legend = c(22, "black"))#,
#font.title = 18)
print(f)
dev.off()
#Cacophany_TRiP
Cacophany_TRiP = read.csv('Cacophany_TRiP_deaths.csv', header = T)
for (i in 1:dim(Cacophany_TRiP)[1]) {
if (i == 1) {Cacophany_TRiP_coxph = matrix(rep(Cacophany_TRiP[i,],
each=Cacophany_TRiP[i,2]), nrow = Cacophany_TRiP[i,2], ncol = dim(Cacophany_TRiP)[2])}
Cacophany_TRiP_coxph = rbind(Cacophany_TRiP_coxph, matrix(rep(Cacophany_TRiP[i,],
each=Cacophany_TRiP[i,2]), nrow = Cacophany_TRiP[i,2], ncol = dim(Cacophany_TRiP)[2]))
}
colnames(Cacophany_TRiP_coxph) = colnames(Cacophany_TRiP)
Cacophany_TRiP_coxph = as.data.frame(Cacophany_TRiP_coxph[,c(1,3:dim(Cacophany_TRiP)[2])])
for (i in 1:length(Cacophany_TRiP_coxph)) {
Cacophany_TRiP_coxph[,i] = as.numeric(Cacophany_TRiP_coxph[,i])
}
Cacophany_TRiP.multicox = coxph(Surv(time, status) ~ genotype*RU486, data =
Cacophany_TRiP_coxph)
# > summary(Cacophany_TRiP.multicox)
#
# Call:
# coxph(formula = Surv(time, status) ~ genotype * RU486, data = Cacophany_TRiP_coxph)
#
# n= 2381, number of events= 2381
#
# coef exp(coef) se(coef) z Pr(>|z|)
# genotype 0.13888 1.14899 0.07693 1.805 0.071 .
# RU486 1.18627 3.27485 0.04923 24.099 < 2e-16 ***
# genotype:RU486 -0.45484 0.63455 0.10443 -4.355 1.33e-05 ***
# ---
# Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
161
#
# exp(coef) exp(-coef) lower .95 upper .95
# genotype 1.1490 0.8703 0.9882 1.3360
# RU486 3.2748 0.3054 2.9737 3.6065
# genotype:RU486 0.6345 1.5759 0.5171 0.7787
#
# Concordance= 0.653 (se = 0.007 )
# Rsquare= 0.225 (max possible= 1 )
# Likelihood ratio test= 607.3 on 3 df, p=<2e-16
# Wald test = 624.6 on 3 df, p=<2e-16
# Score (logrank) test = 668.5 on 3 df, p=<2e-16
Cacophany_TRiPfit = survfit(Surv(time, status) ~ genotype+RU486, data = Cacophany_TRiP_coxph)
png(file=paste("cacophanyRNAi_WholeBody_coxPH_NoTitleNoXNoYnopval_lightconf_fixMarg.png")
, units='in', height=5.08, width = 7.62, res=600)
#par(mar=c(5,3,2,2)+1)
f = ggsurvplot(Cacophany_TRiPfit,
palette= c("black", "black", "red", "red"),
ggtheme = theme_minimal() + theme(plot.title = element_blank(),#element_text(hjust = 0.5,
size=24),
text = element_text(size=25, family="A"),
axis.text.x = element_text(hjust=0.5, vjust=0.5, size=25, color='black'),
#angle=90
axis.title.x = element_blank(),
axis.title.y = element_blank(),
axis.text.y = element_text(size=25, color='black'),
legend.position = "none",# Hide panel borders and remove grid lines
axis.line = element_line(colour = "black"),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border = element_blank(),
panel.background = element_blank(),
plot.margin=unit(c(.5,.5,0,0),"cm")),
title = "Whole-body cacophany RNAi Survival",
conf.int = T R U E,
conf.int.alpha = 0.1,
#pval = paste("genotype*RNAi\npval = ",
as.character(formatC(summary(Cacophany_TRiP.multicox)$coefficients[3,5], format = "e", digits = 2)),
sep=""),
#pval.coord = c(35, 0.85),
#pval.size = 7,
legend.labs = c("TRiP Ctrl AL-", "TRiP Ctrl AL+", "cac RNAi AL-", "cac RNAi AL+"),
break.time.by = 10,
linetype = c("solid", "dashed", "solid", "dashed"),
ylab = "Survival Percentage",
xlab = "Time (Days)",
axes.offset = F,
surv.scale = "percent",
legend = c(0.8, 0.6),#"right",
legend.title = "",
#font.x = c(16, "bold", "black"),
162
#font.y = c(16, "bold", "black"),
font.tickslab = c(25, "black"),
font.legend = c(22, "black"))#,
#font.title = 18)
print(f)
dev.off()
#CG10362_TRiP
CG10362_TRiP = read.csv('CG10362_TRiP_deaths.csv', header = T)
for (i in 1:dim(CG10362_TRiP)[1]) {
if (i == 1) {CG10362_TRiP_coxph = matrix(rep(CG10362_TRiP[i,], each=CG10362_TRiP[i,2]), nrow
= CG10362_TRiP[i,2], ncol = dim(CG10362_TRiP)[2])}
CG10362_TRiP_coxph = rbind(CG10362_TRiP_coxph, matrix(rep(CG10362_TRiP[i,],
each=CG10362_TRiP[i,2]), nrow = CG10362_TRiP[i,2], ncol = dim(CG10362_TRiP)[2]))
}
colnames(CG10362_TRiP_coxph) = colnames(CG10362_TRiP)
CG10362_TRiP_coxph = as.data.frame(CG10362_TRiP_coxph[,c(1,3:dim(CG10362_TRiP)[2])])
for (i in 1:length(CG10362_TRiP_coxph)) {
CG10362_TRiP_coxph[,i] = as.numeric(CG10362_TRiP_coxph[,i])
}
CG10362_TRiP.multicox = coxph(Surv(time, status) ~ genotype*RU486, data = CG10362_TRiP_coxph)
# > summary(CG10362_TRiP.multicox)
# Call:
# coxph(formula = Surv(time, status) ~ genotype * RU486, data = CG10362_TRiP_coxph)
#
# n= 2143, number of events= 2143
#
# coef exp(coef) se(coef) z Pr(>|z|)
# genotype 0.38300 1.46667 0.10473 3.657 0.000255 ***
# RU486 1.20036 3.32131 0.04972 24.142 < 2e-16 ***
# genotype:RU486 -0.09724 0.90734 0.14221 -0.684 0.494112
# ---
# Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#
# exp(coef) exp(-coef) lower .95 upper .95
# genotype 1.4667 0.6818 1.1945 1.801
# RU486 3.3213 0.3011 3.0129 3.661
# genotype:RU486 0.9073 1.1021 0.6866 1.199
#
# Concordance= 0.656 (se = 0.006 )
# Likelihood ratio test= 630.4 on 3 df, p=<2e-16
# Wald test = 644.1 on 3 df, p=<2e-16
# Score (logrank) test = 693.5 on 3 df, p=<2e-16
CG10362_TRiPfit = survfit(Surv(time, status) ~ genotype+RU486, data = CG10362_TRiP_coxph)
png(file=paste("CG10362RNAi_WholeBody_coxPH_NoTitleNoXNoYnopval_lightconf_fixMarg.png"),
units='in', height=5.08, width = 7.62, res=600)
#par(mar=c(5,3,2,2)+1)
f = ggsurvplot(CG10362_TRiPfit,
163
palette= c("black", "black", "red", "red"),
ggtheme = theme_minimal() + theme(plot.title = element_blank(),#element_text(hjust = 0.5,
size=24),
text = element_text(size=25, family="A"),
axis.text.x = element_text(hjust=0.5, vjust=0.5, size=25, color='black'),
#angle=90
axis.title.x = element_blank(),
axis.title.y = element_blank(),
axis.text.y = element_text(size=25, color='black'),
legend.position = "none",# Hide panel borders and remove grid lines
axis.line = element_line(colour = "black"),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border = element_blank(),
panel.background = element_blank(),
plot.margin=unit(c(.5,.5,0,0),"cm")),
title = "Whole-body CG10362 RNAi Survival",
conf.int = T R U E,
conf.int.alpha = 0.1,
Rpval = paste("genotype*RNAi\npval = ",
as.character(formatC(summary(CG10362_TRiP.multicox)$coefficients[3,5], format = "e", digits = 2)),
sep=""),
Rpval.coord = c(35, 0.85),
Rpval.size = 7,
legend.labs = c("TRiP Ctrl AL-", "TRiP Ctrl AL+", "CG10362 RNAi AL-", "CG10362 RNAi
AL+"),
break.time.by = 10,
linetype = c("solid", "dashed", "solid", "dashed"),
ylab = "Survival Percentage",
xlab = "Time (Days)",
axes.offset = F,
surv.scale = "percent",
legend = c(0.8, 0.6),#"right",
legend.title = "",
#font.x = c(16, "bold", "black"),
#font.y = c(16, "bold", "black"),
font.tickslab = c(25, "black"),
font.legend = c(22, "black"))#,
#font.title = 18)
print(f)
dev.off()
#Medusa RNAi, Xbp1 RNAi, and TRiP (BL35785)
# Medusa_xbp1_TRiP = read.csv('medusa_xbp1_deaths.csv', header = T)
# for (i in 1:dim(Medusa_xbp1_TRiP)[1]) {
# if (i == 1) {Medusa_xbp1_TRiP_coxph = matrix(rep(Medusa_xbp1_TRiP[i,],
each=Medusa_xbp1_TRiP[i,2]), nrow = Medusa_xbp1_TRiP[i,2], ncol = dim(Medusa_xbp1_TRiP)[2])}
# Medusa_xbp1_TRiP_coxph = rbind(Medusa_xbp1_TRiP_coxph, matrix(rep(Medusa_xbp1_TRiP[i,],
each=Medusa_xbp1_TRiP[i,2]), nrow = Medusa_xbp1_TRiP[i,2], ncol = dim(Medusa_xbp1_TRiP)[2]))
# }
# colnames(Medusa_xbp1_TRiP_coxph) = colnames(Medusa_xbp1_TRiP)
164
# Medusa_xbp1_TRiP_coxph =
as.data.frame(Medusa_xbp1_TRiP_coxph[,c(1,3:dim(Medusa_xbp1_TRiP)[2])])
# for (i in 1:length(Medusa_xbp1_TRiP_coxph)) {
# Medusa_xbp1_TRiP_coxph[,i] = as.numeric(Medusa_xbp1_TRiP_coxph[,i])
# }
#
# Medusa_TRiP.multicox = coxph(Surv(time, status) ~ TRiP*mda*R406, data =
Medusa_xbp1_TRiP_coxph)
# xbp1_TRiP.multicox = coxph(Surv(time, status) ~ TRiP*Xbp1*R406, data =
Medusa_xbp1_TRiP_coxph)
# Medusa_xbp1_TRiP.multicox = coxph(Surv(time, status) ~ TRiP*mda*Xbp1*R406, data =
Medusa_xbp1_TRiP_coxph)
# > summary(Medusa_xbp1_TRiP.multicox)
# Call:
# coxph(formula = Surv(time, status) ~ TRiP * mda * Xbp1 * R406,
# data = Medusa_xbp1_TRiP_coxph)
#
# n= 898, number of events= 898
#
# coef exp(coef) se(coef) z Pr(>|z|)
# TRiP 0.36536 1.44103 0.12292 2.972 0.00295 **
# mda -0.02693 0.97343 0.12336 -0.218 0.82718
# Xbp1 NA NA 0.00000 NA NA
# R406 1.66450 5.28304 0.09656 17.237 < 2e-16 ***
# TRiP:mda NA NA 0.00000 NA NA
# TRiP:Xbp1 NA NA 0.00000 NA NA
# mda:Xbp1 NA NA 0.00000 NA NA
# TRiP:R406 -0.22903 0.79531 0.16731 -1.369 0.17104
# mda:R406 -0.91481 0.40059 0.17179 -5.325 1.01e-07 ***
# Xbp1:R406 NA NA 0.00000 NA NA
# TRiP:mda:Xbp1 NA NA 0.00000 NA NA
# TRiP:mda:R406 NA NA 0.00000 NA NA
# TRiP:Xbp1:R406 NA NA 0.00000 NA NA
# mda:Xbp1:R406 NA NA 0.00000 NA NA
# TRiP:mda:Xbp1:R406 NA NA 0.00000 NA NA
# ---
# Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#
# exp(coef) exp(-coef) lower .95 upper .95
# TRiP 1.4410 0.6939 1.1325 1.834
# mda 0.9734 1.0273 0.7644 1.240
# Xbp1 NA NA NA NA
# R406 5.2830 0.1893 4.3721 6.384
# TRiP:mda NA NA NA NA
# TRiP:Xbp1 NA NA NA NA
# mda:Xbp1 NA NA NA NA
# TRiP:R406 0.7953 1.2574 0.5730 1.104
# mda:R406 0.4006 2.4963 0.2861 0.561
# Xbp1:R406 NA NA NA NA
# TRiP:mda:Xbp1 NA NA NA NA
165
# TRiP:mda:R406 NA NA NA NA
# TRiP:Xbp1:R406 NA NA NA NA
# mda:Xbp1:R406 NA NA NA NA
# TRiP:mda:Xbp1:R406 NA NA NA NA
#
# Concordance= 0.748 (se = 0.008 )
# Likelihood ratio test= 410.8 on 5 df, p=<2e-16
# Wald test = 446.9 on 5 df, p=<2e-16
# Score (logrank) test = 508.3 on 5 df, p=<2e-16
# Medusa_xbp1_TRiPfit = survfit(Surv(time, status) ~ TRiP+mda+Xbp1+R406, data =
Medusa_xbp1_TRiP_coxph)
# png(file=paste("Medusa_xbp1_TRiP_WholeBody_coxPH_lightconf_fixMarg.png"), units='in',
height=5.08, width=7.62, res=600)
# windows(7,5)
# #par(mar=c(5,3,2,2)+1)
# f = ggsurvplot(Medusa_xbp1_TRiPfit,
# palette= c("black", "black", "blue", "blue", "red", "red"),
# ggtheme = theme_minimal() + theme(plot.title = element_blank(),#element_text(hjust = 0.5,
size=24),
# text = element_text(size=25, family="A"),
# axis.text.x = element_text(hjust=0.5, vjust=0.5, size=25, color='black'),
#angle=90
# axis.title.x = element_blank(),
# axis.title.y = element_blank(),
# axis.text.y = element_text(size=25, color='black'),
# legend.position = c(),#"none",# Hide panel borders and remove grid
lines
# axis.line = element_line(colour = "black"),
# panel.grid.major = element_blank(),
# panel.grid.minor = element_blank(),
# panel.border = element_blank(),
# panel.background = element_blank()),
# title = "Whole-body mda or xbp1 RNAi Survival",
# conf.int = TRUE,
# conf.int.alpha = 0.1,
# #pval = "Whole-body",#"genotype*RNAi\npval = ",
as.character(formatC(summary(Medusa_xbp1_TRiP.multicox)$coefficients[3,5], format = "e", digits =
2)), sep=""),
# #pval.coord = c(35, 0.85),
# pval.size = 7,
# legend.labs = c("uro Ctrl", "uro RNAi", "mda Ctrl", "mda RNAi", "xbp1 Ctrl", "xbp1 RNAi"),
# break.time.by = 10,
# linetype = c("solid", "dashed", "solid", "dashed", "solid", "dashed"),
# ylab = "Survival Percentage",
# xlab = "Time (Days)",
# axes.offset = F,
# surv.scale = "percent",
# legend = c(0.8, 0.6),#"right",
# legend.title = "",
166
# #font.x = c(16, "bold", "black"),
# #font.y = c(16, "bold", "black"),
# font.tickslab = c(25, "black"),
# font.legend = c(22, "black"))#,
# #font.title = 18)
# print(f)
# dev.off()
#Xbp1 RNAi and TRiP (BL35785)
xbp1_TRiP = read.csv('xbp1_TRiP_deaths.csv', header = T)
for (i in 1:dim(xbp1_TRiP)[1]) {
if (i == 1) {xbp1_TRiP_coxph = matrix(rep(xbp1_TRiP[i,], each=xbp1_TRiP[i,2]), nrow =
xbp1_TRiP[i,2], ncol = dim(xbp1_TRiP)[2])}
xbp1_TRiP_coxph = rbind(xbp1_TRiP_coxph, matrix(rep(xbp1_TRiP[i,], each=xbp1_TRiP[i,2]), nrow
= xbp1_TRiP[i,2], ncol = dim(xbp1_TRiP)[2]))
}
colnames(xbp1_TRiP_coxph) = colnames(xbp1_TRiP)
xbp1_TRiP_coxph = as.data.frame(xbp1_TRiP_coxph[,c(1,3:dim(xbp1_TRiP)[2])])
for (i in 1:length(xbp1_TRiP_coxph)) {
xbp1_TRiP_coxph[,i] = as.numeric(xbp1_TRiP_coxph[,i])
}
xbp1_TRiP.multicox = coxph(Surv(time, status) ~ geno*R406, data = xbp1_TRiP_coxph)
# > summary(xbp1_TRiP.multicox)
# Call:
# coxph(formula = Surv(time, status) ~ geno * R406, data = xbp1_TRiP_coxph)
#
# n= 702, number of events= 702
#
# coef exp(coef) se(coef) z Pr(>|z|)
# geno -0.3466 0.7071 0.1230 -2.818 0.00483 **
# R406 1.3679 3.9271 0.1431 9.559 < 2e-16 ***
# geno:R406 0.2277 1.2557 0.1674 1.360 0.17373
# ---
# Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#
# exp(coef) exp(-coef) lower .95 upper .95
# geno 0.7071 1.4142 0.5557 0.8999
# R406 3.9271 0.2546 2.9666 5.1985
# geno:R406 1.2557 0.7964 0.9045 1.7432
#
# Concordance= 0.742 (se = 0.008 )
# Likelihood ratio test= 334.1 on 3 df, p=<2e-16
# Wald test = 346.2 on 3 df, p=<2e-16
# Score (logrank) test = 387.4 on 3 df, p=<2e-16
xbp1_TRiPfit = survfit(Surv(time, status) ~ geno+R406, data = xbp1_TRiP_coxph)
png(file=paste("xbp1_TRiP35785_WholeBody_coxPH_NoTitleNoXNoYnopval_lightconf_fixMarg_dot.
png"), units='in', height=5.08, width = 7.62, res=600)
167
#par(mar=c(5,3,2,2)+1)
f = ggsurvplot(xbp1_TRiPfit,
palette= c("black", "black", "red", "red"),
ggtheme = theme_minimal() + theme(plot.title = element_blank(),#element_text(hjust = 0.5,
size=24),
text = element_text(size=25, family="A"),
axis.text.x = element_text(hjust=0.5, vjust=0.5, size=25, color='black'),
#angle=90
axis.title.x = element_blank(),
axis.title.y = element_blank(),
axis.text.y = element_text(size=25, color='black'),
legend.position = "none",# Hide panel borders and remove grid lines
axis.line = element_line(colour = "black"),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border = element_blank(),
panel.background = element_blank(),
plot.margin=unit(c(.5,.5,0,0),"cm")),
title = "Whole-body xbp1 RNAi Survival",
conf.int = T R U E,
conf.int.alpha = 0.1,
#pval = paste("genotype*RNAi\npval = ",
as.character(formatC(summary(xbp1_TRiP.multicox)$coefficients[3,5], format = "e", digits = 2)),
sep=""),
#pval.coord = c(35, 0.85),
#pval.size = 7,
legend.labs = c("TRiP Ctrl AL-", "TRiP Ctrl AL+", "xbp1 RNAi AL-", "xbp1 RNAi AL+"),
break.time.by = 10,
linetype = c(1,3,1,3),#"solid", "dashed", "solid", "dashed"),
ylab = "Survival Percentage",
xlab = "Time (Days)",
axes.offset = F,
surv.scale = "percent",
legend = c(0.8, 0.6),#"right",
legend.title = "",
#font.x = c(16, "bold", "black"),
#font.y = c(16, "bold", "black"),
font.tickslab = c(25, "black"),
font.legend = c(22, "black"))#,
#font.title = 18)
print(f)
dev.off()
#UAS-Xbp1.EGFP and w1118
UASXbp1GFP_w1118 = read.csv('UASXbp1GFP_w1118_deaths_11-27-20.csv', header = T)
for (i in 1:dim(UASXbp1GFP_w1118)[1]) {
if (i == 1) {UASXbp1GFP_w1118_coxph = matrix(rep(UASXbp1GFP_w1118[i,],
each=UASXbp1GFP_w1118[i,2]), nrow = UASXbp1GFP_w1118[i,2], ncol =
dim(UASXbp1GFP_w1118)[2])}
168
UASXbp1GFP_w1118_coxph = rbind(UASXbp1GFP_w1118_coxph,
matrix(rep(UASXbp1GFP_w1118[i,], each=UASXbp1GFP_w1118[i,2]), nrow =
UASXbp1GFP_w1118[i,2], ncol = dim(UASXbp1GFP_w1118)[2]))
}
colnames(UASXbp1GFP_w1118_coxph) = colnames(UASXbp1GFP_w1118)
UASXbp1GFP_w1118_coxph =
as.data.frame(UASXbp1GFP_w1118_coxph[,c(1,3:dim(UASXbp1GFP_w1118)[2])])
for (i in 1:length(UASXbp1GFP_w1118_coxph)) {
UASXbp1GFP_w1118_coxph[,i] = as.numeric(UASXbp1GFP_w1118_coxph[,i])
}
UASXbp1GFP_w1118.multicox = coxph(Surv(time, status) ~ geno*RU486, data =
UASXbp1GFP_w1118_coxph)
# > summary(UASXbp1GFP_w1118.multicox)
# Call:
# coxph(formula = Surv(time, status) ~ geno * RU486, data = UASXbp1GFP_w1118_coxph)
#
# n= 507, number of events= 507
#
# coef exp(coef) se(coef) z Pr(>|z|)
# geno 0.1364 1.1462 0.1281 1.065 0.286754
# RU486 0.4977 1.6449 0.1303 3.819 0.000134 ***
# geno:RU486 0.2800 1.3232 0.1788 1.566 0.117334
# ---
# Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#
# exp(coef) exp(-coef) lower .95 upper .95
# geno 1.146 0.8725 0.8917 1.473
# RU486 1.645 0.6079 1.2742 2.123
# geno:RU486 1.323 0.7558 0.9320 1.879
#
# Concordance= 0.632 (se = 0.015 )
# Likelihood ratio test= 58.19 on 3 df, p=1e-12
# Wald test = 61.06 on 3 df, p=3e-13
# Score (logrank) test = 63.65 on 3 df, p=1e-13
UASXbp1GFP_w1118fit = survfit(Surv(time, status) ~ geno+RU486, data =
UASXbp1GFP_w1118_coxph)
png(file=paste("UASXbp1GFP_w1118_WholeBody_coxPH_NoTitleNoXNoYnopval_lightconf_fixMarg
_dot.png"), units='in', height=5.08, width = 7.62, res=600)
#par(mar=c(5,3,2,2)+1)
f = ggsurvplot(UASXbp1GFP_w1118fit,
palette= c("black", "black", "red", "red"),
ggtheme = theme_minimal() + theme(plot.title = element_blank(),#element_text(hjust = 0.5,
size=24),
text = element_text(size=25, family="A"),
axis.text.x = element_text(hjust=0.5, vjust=0.5, size=25, color='black'),
#angle=90
axis.title.x = element_blank(),
169
axis.title.y = element_blank(),
axis.text.y = element_text(size=25, color='black'),
legend.position = "none",# Hide panel borders and remove grid lines
axis.line = element_line(colour = "black"),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border = element_blank(),
panel.background = element_blank(),
plot.margin=unit(c(.5,.5,0,0),"cm")),
title = "Whole-body UAS-xbp1.EGFP Survival",
conf.int = T R U E,
conf.int.alpha = 0.1,
#pval = paste("genotype*RNAi\npval = ",
as.character(formatC(summary(UASXbp1GFP_w1118.multicox)$coefficients[3,5], format = "e", digits =
2)), sep=""),
#pval.coord = c(30, 0.85),
#pval.size = 7,
legend.labs = c("w1118 Ctrl AL-", "w1118 Ctrl AL+", "UAS-xbp1 AL-", "UAS-xbp1 AL+"),
break.time.by = 10,
linetype = c(1,3,1,3),#"solid", "dashed", "solid", "dashed"),
ylab = "Survival Percentage",
xlab = "Time (Days)",
axes.offset = F,
surv.scale = "percent",
legend = c(0.2, 0.2),#"right",
legend.title = "",
#font.x = c(16, "bold", "black"),
#font.y = c(16, "bold", "black"),
font.tickslab = c(25, "black"),
font.legend = c(22, "black"))#,
#font.title = 18)
print(f)
dev.off()
#Medusa RNAi and TRiP (BL35785)
Medusa_TRiP = read.csv('medusa_TRiP35785_deaths.csv', header = T)
for (i in 1:dim(Medusa_TRiP)[1]) {
if (i == 1) {Medusa_TRiP_coxph = matrix(rep(Medusa_TRiP[i,], each=Medusa_TRiP[i,2]), nrow =
Medusa_TRiP[i,2], ncol = dim(Medusa_TRiP)[2])}
Medusa_TRiP_coxph = rbind(Medusa_TRiP_coxph, matrix(rep(Medusa_TRiP[i,],
each=Medusa_TRiP[i,2]), nrow = Medusa_TRiP[i,2], ncol = dim(Medusa_TRiP)[2]))
}
colnames(Medusa_TRiP_coxph) = colnames(Medusa_TRiP)
Medusa_TRiP_coxph = as.data.frame(Medusa_TRiP_coxph[,c(1,3:dim(Medusa_TRiP)[2])])
for (i in 1:length(Medusa_TRiP_coxph)) {
Medusa_TRiP_coxph[,i] = as.numeric(Medusa_TRiP_coxph[,i])
}
Medusa_TRiP.multicox = coxph(Surv(time, status) ~ geno*R406, data = Medusa_TRiP_coxph)
# > summary(Medusa_TRiP.multicox)
170
# Call:
# coxph(formula = Surv(time, status) ~ geno * R406, data = Medusa_TRiP_coxph)
#
# n= 404, number of events= 404
#
# coef exp(coef) se(coef) z Pr(>|z|)
# geno -0.3919 0.6758 0.1498 -2.617 0.008872 **
# R406 1.5157 4.5527 0.1497 10.123 < 2e-16 ***
# geno:R406 -0.6973 0.4979 0.2029 -3.437 0.000589 ***
# ---
# Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#
# exp(coef) exp(-coef) lower .95 upper .95
# geno 0.6758 1.4798 0.5039 0.9063
# R406 4.5527 0.2196 3.3948 6.1056
# geno:R406 0.4979 2.0083 0.3345 0.7411
#
# Concordance= 0.72 (se = 0.012 )
# Likelihood ratio test= 159.2 on 3 df, p=<2e-16
# Wald test = 175.9 on 3 df, p=<2e-16
# Score (logrank) test = 204.2 on 3 df, p=<2e-16
Medusa_TRiPfit = survfit(Surv(time, status) ~ geno+R406, data = Medusa_TRiP_coxph)
png(file=paste("Medusa_TRiP35785_WholeBody_coxPH_nopval.png"), units='in', height=5.08, width =
7.62, res=600)
#par(mar=c(5,3,2,2)+1)
f = ggsurvplot(Medusa_TRiPfit,
palette= c("black", "black", "blue", "blue"),
ggtheme = theme_minimal() + theme(text = element_text(family='A', size=12),
plot.title = element_text(hjust = 0.5, size=14),
axis.text.x = element_text(angle=90, hjust=1, vjust=0.5, size=12,
color='black'),
#axis.title.x = element_blank(),
axis.text.y = element_text(size=12, color='black'),
legend.position = "none",# Hide panel borders and remove grid lines
axis.line = element_line(colour = "black"),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border = element_blank(),
panel.background = element_blank(),
plot.margin=unit(c(.5,.5,0,0),"cm")),
title = "Da-GS, uro RNAi >",
conf.int = T R U E,
conf.int.alpha = 0.1,
#pval = paste("genotype*RNAi\npval = ",
as.character(formatC(summary(Medusa_TRiP.multicox)$coefficients[3,5], format = "e", digits = 2)),
sep=""),
#pval.coord = c(35, 0.85),
#pval.size = 7,
legend.labs = c("TRiP Ctrl AL-", "TRiP Ctrl AL+", "mda RNAi AL-", "mda RNAi AL+"),
171
break.time.by = 10,
linetype = c("solid", "dashed", "solid", "dashed"),
ylab = "Survival Percentage",
xlab = "Time (Days)",
axes.offset = F,
surv.scale = "percent",
legend = c(0.8, 0.6),#"right",
legend.title = "",
#font.x = c(16, "bold", "black"),
#font.y = c(16, "bold", "black"),
font.tickslab = c(11, "bold", "black"),
font.legend = c(12, "black"))#,
#font.title = 18)
print(f)
dev.off()
#DaGS_mda_TRiP35785
DaGS_mda_TRiP35785 = read.csv('DaGS_mda_TRiP35785_deaths_10-5-20.csv', header = T)
for (i in 1:dim(DaGS_mda_TRiP35785)[1]) {
if (i == 1) {DaGS_mda_TRiP35785_coxph = matrix(rep(DaGS_mda_TRiP35785[i,],
each=DaGS_mda_TRiP35785[i,2]), nrow = DaGS_mda_TRiP35785[i,2], ncol =
dim(DaGS_mda_TRiP35785)[2])}
DaGS_mda_TRiP35785_coxph = rbind(DaGS_mda_TRiP35785_coxph,
matrix(rep(DaGS_mda_TRiP35785[i,], each=DaGS_mda_TRiP35785[i,2]), nrow =
DaGS_mda_TRiP35785[i,2], ncol = dim(DaGS_mda_TRiP35785)[2]))
}
colnames(DaGS_mda_TRiP35785_coxph) = colnames(DaGS_mda_TRiP35785)
DaGS_mda_TRiP35785_coxph =
as.data.frame(DaGS_mda_TRiP35785_coxph[,c(1,3:dim(DaGS_mda_TRiP35785)[2])])
for (i in 1:length(DaGS_mda_TRiP35785_coxph)) {
DaGS_mda_TRiP35785_coxph[,i] = as.numeric(DaGS_mda_TRiP35785_coxph[,i])
}
DaGS_mda_TRiP35785.multicox = coxph(Surv(time, status) ~ geno*RU486, data =
DaGS_mda_TRiP35785_coxph)
DaGS_mda.multicox = coxph(Surv(time, status) ~ RU486, data =
DaGS_mda_TRiP35785_coxph[DaGS_mda_TRiP35785_coxph$geno==1,])
# > summary(DaGS_mda_TRiP35785.multicox)
# Call:
# coxph(formula = Surv(time, status) ~ geno * RU486, data = DaGS_mda_TRiP35785_coxph)
#
# n= 339, number of events= 339
#
# coef exp(coef) se(coef) z Pr(>|z|)
# geno -0.05909 0.94262 0.14862 -0.398 0.690916
# RU486 0.56682 1.76265 0.16538 3.427 0.000609 ***
# geno:RU486 -0.57444 0.56302 0.22202 -2.587 0.009673 **
# ---
# Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#
172
# exp(coef) exp(-coef) lower .95 upper .95
# geno 0.9426 1.0609 0.7044 1.261
# RU486 1.7627 0.5673 1.2747 2.437
# geno:RU486 0.5630 1.7761 0.3644 0.870
#
# Concordance= 0.561 (se = 0.017 )
# Likelihood ratio test= 16.92 on 3 df, p=7e-04
# Wald test = 18.84 on 3 df, p=3e-04
# Score (logrank) test = 19.4 on 3 df, p=2e-04
# > summary(DaGS_mda.multicox)
# Call:
# coxph(formula = Surv(time, status) ~ RU486, data =
DaGS_mda_TRiP35785_coxph[DaGS_mda_TRiP35785_coxph$geno ==
# 1, ])
#
# n= 181, number of events= 181
#
# coef exp(coef) se(coef) z Pr(>|z|)
# RU486 0.01413 1.01423 0.15068 0.094 0.925
#
# exp(coef) exp(-coef) lower .95 upper .95
# RU486 1.014 0.986 0.7549 1.363
#
# Concordance= 0.484 (se = 0.023 )
# Likelihood ratio test= 0.01 on 1 df, p=0.9
# Wald test = 0.01 on 1 df, p=0.9
# Score (logrank) test = 0.01 on 1 df, p=0.9
DaGS_mda_Fit = survfit(Surv(time, status) ~ RU486, data = DaGS_mda_TRiP35785_coxph)
png(file=paste("DaGS_mda_WholeBody_coxPH_NoTitleNoXNoYnopval_lightconf_fixMarg.png"),
units='in', height=5.08, width = 7.62, res=600)
#par(mar=c(5,3,2,2)+1)
f = ggsurvplot(DaGS_mda_Fit,
palette= c("blue", "blue"),
ggtheme = theme_minimal() + theme(plot.title = element_blank(),#element_text(hjust = 0.5,
size=24),
text = element_text(size=25, family="A"),
axis.text.x = element_text(hjust=0.5, vjust=0.5, size=25, color='black'),
#angle=90
axis.title.x = element_blank(),
axis.title.y = element_blank(),
axis.text.y = element_text(size=25, color='black'),
legend.position = "none",# Hide panel borders and remove grid lines
axis.line = element_line(colour = "black"),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border = element_blank(),
panel.background = element_blank(),
plot.margin=unit(c(.5,.5,0,0),"cm")),
title = "Whole-body RNAi Survival",
173
conf.int = T R U E,
conf.int.alpha = 0.1,
#pval = paste("RNAi\npval = ",
as.character(formatC(summary(DaGS_mda.multicox)$coefficients[1,5], format = "e", digits = 2)),
sep=""),
#pval.coord = c(35, 0.85),
#pval.size = 7,
legend.labs = c("AL-", "AL+"),
break.time.by = 10,
linetype = c("solid", "dashed"),
ylab = "Survival Percentage",
xlab = "Time (Days)",
axes.offset = F,
surv.scale = "percent",
legend = c(0.3, 0.2),#"right",
legend.title = "",
#font.x = c(16, "bold", "black"),
#font.y = c(16, "bold", "black"),
font.tickslab = c(25, "black"),
font.legend = c(22, "black"))#,
#font.title = 18)
print(f)
dev.off()
#ElavGS_mda_TRiP36303
ElavGS_mda_TRiP36303 = read.csv('ElavGS_mda_TRiP36303_deaths_7-25-18.csv', header = T)
for (i in 1:dim(ElavGS_mda_TRiP36303)[1]) {
if (i == 1) {ElavGS_mda_TRiP36303_coxph = matrix(rep(ElavGS_mda_TRiP36303[i,],
each=ElavGS_mda_TRiP36303[i,2]), nrow = ElavGS_mda_TRiP36303[i,2], ncol =
dim(ElavGS_mda_TRiP36303)[2])}
ElavGS_mda_TRiP36303_coxph = rbind(ElavGS_mda_TRiP36303_coxph,
matrix(rep(ElavGS_mda_TRiP36303[i,], each=ElavGS_mda_TRiP36303[i,2]), nrow =
ElavGS_mda_TRiP36303[i,2], ncol = dim(ElavGS_mda_TRiP36303)[2]))
}
colnames(ElavGS_mda_TRiP36303_coxph) = colnames(ElavGS_mda_TRiP36303)
ElavGS_mda_TRiP36303_coxph =
as.data.frame(ElavGS_mda_TRiP36303_coxph[,c(1,3:dim(ElavGS_mda_TRiP36303)[2])])
for (i in 1:length(ElavGS_mda_TRiP36303_coxph)) {
ElavGS_mda_TRiP36303_coxph[,i] = as.numeric(ElavGS_mda_TRiP36303_coxph[,i])
}
ElavGS_mda_TRiP36303.multicox = coxph(Surv(time, status) ~ geno*RU486, data =
ElavGS_mda_TRiP36303_coxph)
ElavGS_mda.multicox = coxph(Surv(time, status) ~ RU486, data =
ElavGS_mda_TRiP36303_coxph[ElavGS_mda_TRiP36303_coxph$geno==1,])
# > summary(ElavGS_mda_TRiP36303.multicox)
# Call:
# coxph(formula = Surv(time, status) ~ geno * RU486, data = ElavGS_mda_TRiP36303_coxph)
#
# n= 815, number of events= 815
174
#
# coef exp(coef) se(coef) z Pr(>|z|)
# geno -0.6111 0.5427 0.1013 -6.033 1.61e-09 ***
# RU486 -0.3964 0.6728 0.1040 -3.811 0.000138 ***
# geno:RU486 0.1086 1.1147 0.1418 0.766 0.443944
# ---
# Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#
# exp(coef) exp(-coef) lower .95 upper .95
# geno 0.5427 1.8425 0.4450 0.6619
# RU486 0.6728 1.4864 0.5487 0.8249
# geno:RU486 1.1147 0.8971 0.8442 1.4718
#
# Concordance= 0.59 (se = 0.011 )
# Likelihood ratio test= 76.97 on 3 df, p=<2e-16
# Wald test = 78.35 on 3 df, p=<2e-16
# Score (logrank) test = 81.27 on 3 df, p=<2e-16
# > summary(ElavGS_mda.multicox)
# Call:
# coxph(formula = Surv(time, status) ~ RU486, data =
ElavGS_mda_TRiP36303_coxph[ElavGS_mda_TRiP36303_coxph$geno ==
# 1, ])
#
# n= 414, number of events= 414
#
# coef exp(coef) se(coef) z Pr(>|z|)
# RU486 -0.2885 0.7494 0.1023 -2.821 0.00479 **
# ---
# Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#
# exp(coef) exp(-coef) lower .95 upper .95
# RU486 0.7494 1.334 0.6133 0.9157
#
# Concordance= 0.502 (se = 0.016 )
# Likelihood ratio test= 7.94 on 1 df, p=0.005
# Wald test = 7.96 on 1 df, p=0.005
# Score (logrank) test = 8.01 on 1 df, p=0.005
ElavGS_mda_Fit = survfit(Surv(time, status) ~ RU486, data = ElavGS_mda_TRiP36303_coxph)
png(file=paste("ElavGS_mda_Neuronal_coxPH_NoTitleNoXNoYnopval_lightconf_fixMarg.png"),
units='in', height=5.08, width=7.62, res=600)
#par(mar=c(5,3,2,2)+1)
f = ggsurvplot(ElavGS_mda_Fit,
palette= c("blue", "blue"),
ggtheme = theme_minimal() + theme(plot.title = element_blank(),#element_text(hjust = 0.5,
size=24),
text = element_text(size=25, family="A"),
axis.text.x = element_text(hjust=0.5, vjust=0.5, size=25, color='black'),
#angle=90
axis.title.x = element_blank(),
175
axis.title.y = element_blank(),
axis.text.y = element_text(size=25, color='black'),
legend.position = "none",# Hide panel borders and remove grid lines
axis.line = element_line(colour = "black"),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border = element_blank(),
panel.background = element_blank(),
plot.margin=unit(c(.5,.5,0,0),"cm")),
title = "Neuronal RNAi Survival",
conf.int = T R U E,
conf.int.alpha = 0.1,
#pval = paste("RNAi\npval = ",
as.character(formatC(summary(ElavGS_mda.multicox)$coefficients[1,5], format = "e", digits = 2)),
sep=""),
#pval.coord = c(45, 0.85),
#pval.size = 7,
legend.labs = c("AL-", "AL+"),
break.time.by = 10,
linetype = c("solid", "dashed"),
ylab = "Survival Percentage",
xlab = "Time (Days)",
axes.offset = F,
surv.scale = "percent",
legend = c(0.3, 0.2),#"right",
legend.title = "",
#font.x = c(16, "bold", "black"),
#font.y = c(16, "bold", "black"),
font.tickslab = c(25, "black"),
font.legend = c(22, "black"))#,
#font.title = 18)
print(f)
dev.off()
#UroGAL4_mda_TRiP35785
UroGAL4_mda_TRiP35785 = read.csv('UroGAL4_mda_TRiP35785_deaths_10-10-19.csv', header = T)
for (i in 1:dim(UroGAL4_mda_TRiP35785)[1]) {
if (i == 1) {UroGAL4_mda_TRiP35785_coxph = matrix(rep(UroGAL4_mda_TRiP35785[i,],
each=UroGAL4_mda_TRiP35785[i,2]), nrow = UroGAL4_mda_TRiP35785[i,2], ncol =
dim(UroGAL4_mda_TRiP35785)[2])}
UroGAL4_mda_TRiP35785_coxph = rbind(UroGAL4_mda_TRiP35785_coxph,
matrix(rep(UroGAL4_mda_TRiP35785[i,], each=UroGAL4_mda_TRiP35785[i,2]), nrow =
UroGAL4_mda_TRiP35785[i,2], ncol = dim(UroGAL4_mda_TRiP35785)[2]))
}
colnames(UroGAL4_mda_TRiP35785_coxph) = colnames(UroGAL4_mda_TRiP35785)
UroGAL4_mda_TRiP35785_coxph =
as.data.frame(UroGAL4_mda_TRiP35785_coxph[,c(1,3:dim(UroGAL4_mda_TRiP35785)[2])])
for (i in 1:length(UroGAL4_mda_TRiP35785_coxph)) {
UroGAL4_mda_TRiP35785_coxph[,i] = as.numeric(UroGAL4_mda_TRiP35785_coxph[,i])
}
176
UroGAL4_mda_TRiP35785.multicox = coxph(Surv(time, status) ~ geno, data =
UroGAL4_mda_TRiP35785_coxph)
# > summary(UroGAL4_mda_TRiP35785.multicox)
# Call:
# coxph(formula = Surv(time, status) ~ geno, data = UroGAL4_mda_TRiP35785_coxph)
#
# n= 692, number of events= 692
#
# coef exp(coef) se(coef) z Pr(>|z|)
# geno 0.16979 1.18505 0.07761 2.188 0.0287 *
# ---
# Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#
# exp(coef) exp(-coef) lower .95 upper .95
# geno 1.185 0.8438 1.018 1.38
#
# Concordance= 0.552 (se = 0.011 )
# Likelihood ratio test= 4.82 on 1 df, p=0.03
# Wald test = 4.79 on 1 df, p=0.03
# Score (logrank) test = 4.8 on 1 df, p=0.03
UroGAL4_mda_TRiP35785_Fit = survfit(Surv(time, status) ~ geno, data =
UroGAL4_mda_TRiP35785_coxph)
png(file=paste("UroGAL4_mda_TRiP35785_Malpig_coxPH_NoTitleNoXNoYnopval_lightconf_fixMar
g.png"), units='in', height=5.08, width=7.62, res=600)
#par(mar=c(5,3,2,2)+1)
f = ggsurvplot(UroGAL4_mda_TRiP35785_Fit,
palette= c("black", "blue"),
ggtheme = theme_minimal() + theme(plot.title = element_blank(),#element_text(hjust = 0.5,
size=24),
text = element_text(size=25, family="A"),
axis.text.x = element_text(hjust=0.5, vjust=0.5, size=25, color='black'),
#angle=90
axis.title.x = element_blank(),
axis.title.y = element_blank(),
axis.text.y = element_text(size=25, color='black'),
legend.position = "none",# Hide panel borders and remove grid lines
axis.line = element_line(colour = "black"),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border = element_blank(),
panel.background = element_blank(),
plot.margin=unit(c(.5,.5,0,0),"cm")),
title = "Malpighian Tubule RNAi Survival",
conf.int = T R U E,
conf.int.alpha = 0.1,
#pval = paste("genotype\npval = ",
as.character(formatC(summary(UroGAL4_mda_TRiP35785.multicox)$coefficients[1,5], format = "e",
digits = 2)), sep=""),
#pval.coord = c(35, 0.85),
177
#pval.size = 7,
legend.labs = c("TRiP (BL35785)", "mda RNAi"),
break.time.by = 10,
linetype = c("solid", "solid"),
ylab = "Survival Percentage",
xlab = "Time (Days)",
axes.offset = F,
surv.scale = "percent",
legend = c(0.3, 0.2),#"right",
legend.title = "",
#font.x = c(16, "bold", "black"),
#font.y = c(16, "bold", "black"),
font.tickslab = c(25, "black"),
font.legend = c(22, "black"))#,
#font.title = 18)
print(f)
dev.off()
#UroGAL4_mda_TRiP36303
UroGAL4_mda_TRiP36303 = read.csv('UroGAL4_mda_TRiP36303_deaths_11-8-19.csv', header = T)
for (i in 1:dim(UroGAL4_mda_TRiP36303)[1]) {
if (i == 1) {UroGAL4_mda_TRiP36303_coxph = matrix(rep(UroGAL4_mda_TRiP36303[i,],
each=UroGAL4_mda_TRiP36303[i,2]), nrow = UroGAL4_mda_TRiP36303[i,2], ncol =
dim(UroGAL4_mda_TRiP36303)[2])}
UroGAL4_mda_TRiP36303_coxph = rbind(UroGAL4_mda_TRiP36303_coxph,
matrix(rep(UroGAL4_mda_TRiP36303[i,], each=UroGAL4_mda_TRiP36303[i,2]), nrow =
UroGAL4_mda_TRiP36303[i,2], ncol = dim(UroGAL4_mda_TRiP36303)[2]))
}
colnames(UroGAL4_mda_TRiP36303_coxph) = colnames(UroGAL4_mda_TRiP36303)
UroGAL4_mda_TRiP36303_coxph =
as.data.frame(UroGAL4_mda_TRiP36303_coxph[,c(1,3:dim(UroGAL4_mda_TRiP36303)[2])])
for (i in 1:length(UroGAL4_mda_TRiP36303_coxph)) {
UroGAL4_mda_TRiP36303_coxph[,i] = as.numeric(UroGAL4_mda_TRiP36303_coxph[,i])
}
UroGAL4_mda_TRiP36303.multicox = coxph(Surv(time, status) ~ geno, data =
UroGAL4_mda_TRiP36303_coxph)
# > summary(UroGAL4_mda_TRiP36303.multicox)
# Call:
# coxph(formula = Surv(time, status) ~ geno, data = UroGAL4_mda_TRiP36303_coxph)
#
# n= 602, number of events= 602
#
# coef exp(coef) se(coef) z Pr(>|z|)
# geno -0.39946 0.67069 0.08714 -4.584 4.57e-06 ***
# ---
# Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#
# exp(coef) exp(-coef) lower .95 upper .95
# geno 0.6707 1.491 0.5654 0.7956
178
#
# Concordance= 0.56 (se = 0.011 )
# Likelihood ratio test= 20.02 on 1 df, p=8e-06
# Wald test = 21.01 on 1 df, p=5e-06
# Score (logrank) test = 21.28 on 1 df, p=4e-06
UroGAL4_mda_TRiP36303_Fit = survfit(Surv(time, status) ~ geno, data =
UroGAL4_mda_TRiP36303_coxph)
png(file=paste("UroGAL4_mda_TRiP36303_Malpig_coxPH_NoTitleNoXNoYnopval_lightconf_fixMar
g.png"), units='in', height=5.08, width=7.62, res=600)
#par(mar=c(5,3,2,2)+1)
f = ggsurvplot(UroGAL4_mda_TRiP36303_Fit,
palette= c("black", "blue"),
ggtheme = theme_minimal() + theme(plot.title = element_blank(),#element_text(hjust = 0.5,
size=24),
text = element_text(size=25, family="A"),
axis.text.x = element_text(hjust=0.5, vjust=0.5, size=25, color='black'),
#angle=90
axis.title.x = element_blank(),
axis.title.y = element_blank(),
axis.text.y = element_text(size=25, color='black'),
legend.position = "none",# Hide panel borders and remove grid lines
axis.line = element_line(colour = "black"),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border = element_blank(),
panel.background = element_blank(),
plot.margin=unit(c(.5,.5,0,0),"cm")),
title = "Malpighian Tubule RNAi Survival",
conf.int = T R U E,
conf.int.alpha = 0.1,
#pval = paste("genotype\npval = ",
as.character(formatC(summary(UroGAL4_mda_TRiP36303.multicox)$coefficients[1,5], format = "e",
digits = 2)), sep=""),
#pval.coord = c(35, 0.85),
#pval.size = 7,
legend.labs = c("TRiP (BL36303)", "mda RNAi"),
break.time.by = 10,
linetype = c("solid", "solid"),
ylab = "Survival Percentage",
xlab = "Time (Days)",
axes.offset = F,
surv.scale = "percent",
legend = c(0.3, 0.2),#"right",
legend.title = "",
#font.x = c(16, "bold", "black"),
#font.y = c(16, "bold", "black"),
font.tickslab = c(25, "black"),
font.legend = c(22, "black"))#,
#font.title = 18)
print(f)
179
dev.off()
#DaGAL4_mda_TRiP36303
DaGAL4_mda_TRiP36303 = read.csv('DaGAL4_mda_TRiP36303_deaths_1-31-18.csv', header = T)
for (i in 1:dim(DaGAL4_mda_TRiP36303)[1]) {
if (i == 1) {DaGAL4_mda_TRiP36303_coxph = matrix(rep(DaGAL4_mda_TRiP36303[i,],
each=DaGAL4_mda_TRiP36303[i,2]), nrow = DaGAL4_mda_TRiP36303[i,2], ncol =
dim(DaGAL4_mda_TRiP36303)[2])}
DaGAL4_mda_TRiP36303_coxph = rbind(DaGAL4_mda_TRiP36303_coxph,
matrix(rep(DaGAL4_mda_TRiP36303[i,], each=DaGAL4_mda_TRiP36303[i,2]), nrow =
DaGAL4_mda_TRiP36303[i,2], ncol = dim(DaGAL4_mda_TRiP36303)[2]))
}
colnames(DaGAL4_mda_TRiP36303_coxph) = colnames(DaGAL4_mda_TRiP36303)
DaGAL4_mda_TRiP36303_coxph =
as.data.frame(DaGAL4_mda_TRiP36303_coxph[,c(1,3:dim(DaGAL4_mda_TRiP36303)[2])])
for (i in 1:length(DaGAL4_mda_TRiP36303_coxph)) {
DaGAL4_mda_TRiP36303_coxph[,i] = as.numeric(DaGAL4_mda_TRiP36303_coxph[,i])
}
DaGAL4_mda_TRiP36303.multicox = coxph(Surv(time, status) ~ geno, data =
DaGAL4_mda_TRiP36303_coxph)
# > summary(DaGAL4_mda_TRiP36303.multicox)
# Call:
# coxph(formula = Surv(time, status) ~ geno, data = DaGAL4_mda_TRiP36303_coxph)
#
# n= 392, number of events= 392
#
# coef exp(coef) se(coef) z Pr(>|z|)
# geno 0.3025 1.3533 0.1037 2.919 0.00351 **
# ---
# Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#
# exp(coef) exp(-coef) lower .95 upper .95
# geno 1.353 0.7389 1.104 1.658
#
# Concordance= 0.545 (se = 0.016 )
# Likelihood ratio test= 8.5 on 1 df, p=0.004
# Wald test = 8.52 on 1 df, p=0.004
# Score (logrank) test = 8.58 on 1 df, p=0.003
DaGAL4_mda_TRiP36303_Fit = survfit(Surv(time, status) ~ geno, data =
DaGAL4_mda_TRiP36303_coxph)
png(file=paste("DaGAL4_mda_TRiP36303_WholeBody_coxPH_NoTitleNoXNoYnopval_lightconf_fix
Marg.png"), units='in', height=5.08, width=7.62, res=600)
#par(mar=c(5,3,2,2)+1)
f = ggsurvplot(DaGAL4_mda_TRiP36303_Fit,
palette= c("black", "blue"),
ggtheme = theme_minimal() + theme(plot.title = element_blank(),#element_text(hjust = 0.5,
size=24),
text = element_text(size=25, family="A"),
180
axis.text.x = element_text(hjust=0.5, vjust=0.5, size=25, color='black'),
#angle=90
axis.title.x = element_blank(),
axis.title.y = element_blank(),
axis.text.y = element_text(size=25, color='black'),
legend.position = "none",# Hide panel borders and remove grid lines
axis.line = element_line(colour = "black"),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border = element_blank(),
panel.background = element_blank(),
plot.margin=unit(c(.5,.5,0,0),"cm")),
title = "Whole-body RNAi Survival",
conf.int = T R U E,
conf.int.alpha = 0.1,
#pval = paste("genotype\npval = ",
as.character(formatC(summary(DaGAL4_mda_TRiP36303.multicox)$coefficients[1,5], format = "e",
digits = 2)), sep=""),
#pval.coord = c(31, 0.85),
#pval.size = 7,
legend.labs = c("TRiP (BL36303)", "mda RNAi"),
break.time.by = 10,
linetype = c("solid", "solid"),
ylab = "Survival Percentage",
xlab = "Time (Days)",
axes.offset = F,
surv.scale = "percent",
legend = c(0.3, 0.2),#"right",
legend.title = "",
#font.x = c(16, "bold", "black"),
#font.y = c(16, "bold", "black"),
font.tickslab = c(25, "black"),
font.legend = c(22, "black"))#,
#font.title = 18)
print(f)
dev.off()
#ElavGAL4_mda_TRiP35785
ElavGAL4_mda_TRiP35785 = read.csv('ElavGAL4_mda_TRiP35785_deaths_5-15-19.csv', header = T)
for (i in 1:dim(ElavGAL4_mda_TRiP35785)[1]) {
if (i == 1) {ElavGAL4_mda_TRiP35785_coxph = matrix(rep(ElavGAL4_mda_TRiP35785[i,],
each=ElavGAL4_mda_TRiP35785[i,2]), nrow = ElavGAL4_mda_TRiP35785[i,2], ncol =
dim(ElavGAL4_mda_TRiP35785)[2])}
ElavGAL4_mda_TRiP35785_coxph = rbind(ElavGAL4_mda_TRiP35785_coxph,
matrix(rep(ElavGAL4_mda_TRiP35785[i,], each=ElavGAL4_mda_TRiP35785[i,2]), nrow =
ElavGAL4_mda_TRiP35785[i,2], ncol = dim(ElavGAL4_mda_TRiP35785)[2]))
}
colnames(ElavGAL4_mda_TRiP35785_coxph) = colnames(ElavGAL4_mda_TRiP35785)
ElavGAL4_mda_TRiP35785_coxph =
as.data.frame(ElavGAL4_mda_TRiP35785_coxph[,c(1,3:dim(ElavGAL4_mda_TRiP35785)[2])])
for (i in 1:length(ElavGAL4_mda_TRiP35785_coxph)) {
181
ElavGAL4_mda_TRiP35785_coxph[,i] = as.numeric(ElavGAL4_mda_TRiP35785_coxph[,i])
}
ElavGAL4_mda_TRiP35785.multicox = coxph(Surv(time, status) ~ geno, data =
ElavGAL4_mda_TRiP35785_coxph)
# > summary(ElavGAL4_mda_TRiP35785.multicox)
# Call:
# coxph(formula = Surv(time, status) ~ geno, data = ElavGAL4_mda_TRiP35785_coxph)
#
# n= 614, number of events= 614
#
# coef exp(coef) se(coef) z Pr(>|z|)
# geno 0.24439 1.27684 0.08369 2.92 0.0035 **
# ---
# Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#
# exp(coef) exp(-coef) lower .95 upper .95
# geno 1.277 0.7832 1.084 1.504
#
# Concordance= 0.529 (se = 0.012 )
# Likelihood ratio test= 8.42 on 1 df, p=0.004
# Wald test = 8.53 on 1 df, p=0.003
# Score (logrank) test = 8.57 on 1 df, p=0.003
ElavGAL4_mda_TRiP35785_Fit = survfit(Surv(time, status) ~ geno, data =
ElavGAL4_mda_TRiP35785_coxph)
png(file=paste("ElavGAL4_mda_TRiP35785_Neuronal_coxPH_NoTitleNoXNoYnopval_lightconf_fixM
arg.png"), units='in', height=5.08, width=7.62, res=600)
#par(mar=c(5,3,2,2)+1)
f = ggsurvplot(ElavGAL4_mda_TRiP35785_Fit,
palette= c("black", "blue"),
ggtheme = theme_minimal() + theme(plot.title = element_blank(),#element_text(hjust = 0.5,
size=24),
text = element_text(size=25, family="A"),
axis.text.x = element_text(hjust=0.5, vjust=0.5, size=25, color='black'),
#angle=90
axis.title.x = element_blank(),
axis.title.y = element_blank(),
axis.text.y = element_text(size=25, color='black'),
legend.position = "none",# Hide panel borders and remove grid lines
axis.line = element_line(colour = "black"),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border = element_blank(),
panel.background = element_blank(),
plot.margin=unit(c(.5,.5,0,0),"cm")),
title = "Neuronal RNAi Survival",
conf.int = T R U E,
conf.int.alpha = 0.1,
182
#pval = paste("genotype\npval = ",
as.character(formatC(summary(ElavGAL4_mda_TRiP35785.multicox)$coefficients[1,5], format = "e",
digits = 2)), sep=""),
#pval.coord = c(35, 0.85),
#pval.size = 7,
legend.labs = c("TRiP (BL35785)", "mda RNAi"),
break.time.by = 10,
linetype = c("solid", "solid"),
ylab = "Survival Percentage",
xlab = "Time (Days)",
axes.offset = F,
surv.scale = "percent",
legend = c(0.3, 0.2),#"right",
legend.title = "",
#font.x = c(16, "bold", "black"),
#font.y = c(16, "bold", "black"),
font.tickslab = c(25, "black"),
font.legend = c(22, "black"))#,
#font.title = 18)
print(f)
dev.off()
#ElavGAL4_mda_TRiP36303
ElavGAL4_mda_TRiP36303 = read.csv('ElavGAL4_mda_TRiP36303_deaths_4-4-19.csv', header = T)
for (i in 1:dim(ElavGAL4_mda_TRiP36303)[1]) {
if (i == 1) {ElavGAL4_mda_TRiP36303_coxph = matrix(rep(ElavGAL4_mda_TRiP36303[i,],
each=ElavGAL4_mda_TRiP36303[i,2]), nrow = ElavGAL4_mda_TRiP36303[i,2], ncol =
dim(ElavGAL4_mda_TRiP36303)[2])}
ElavGAL4_mda_TRiP36303_coxph = rbind(ElavGAL4_mda_TRiP36303_coxph,
matrix(rep(ElavGAL4_mda_TRiP36303[i,], each=ElavGAL4_mda_TRiP36303[i,2]), nrow =
ElavGAL4_mda_TRiP36303[i,2], ncol = dim(ElavGAL4_mda_TRiP36303)[2]))
}
colnames(ElavGAL4_mda_TRiP36303_coxph) = colnames(ElavGAL4_mda_TRiP36303)
ElavGAL4_mda_TRiP36303_coxph =
as.data.frame(ElavGAL4_mda_TRiP36303_coxph[,c(1,3:dim(ElavGAL4_mda_TRiP36303)[2])])
for (i in 1:length(ElavGAL4_mda_TRiP36303_coxph)) {
ElavGAL4_mda_TRiP36303_coxph[,i] = as.numeric(ElavGAL4_mda_TRiP36303_coxph[,i])
}
ElavGAL4_mda_TRiP36303.multicox = coxph(Surv(time, status) ~ geno, data =
ElavGAL4_mda_TRiP36303_coxph)
# > summary(ElavGAL4_mda_TRiP36303.multicox)
# Call:
# coxph(formula = Surv(time, status) ~ geno, data = ElavGAL4_mda_TRiP36303_coxph)
#
# n= 267, number of events= 267
#
# coef exp(coef) se(coef) z Pr(>|z|)
# geno -0.2372 0.7889 0.1315 -1.804 0.0712 .
# ---
183
# Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#
# exp(coef) exp(-coef) lower .95 upper .95
# geno 0.7889 1.268 0.6097 1.021
#
# Concordance= 0.511 (se = 0.017 )
# Likelihood ratio test= 3.18 on 1 df, p=0.07
# Wald test = 3.25 on 1 df, p=0.07
# Score (logrank) test = 3.27 on 1 df, p=0.07
ElavGAL4_mda_TRiP36303_Fit = survfit(Surv(time, status) ~ geno, data =
ElavGAL4_mda_TRiP36303_coxph)
png(file=paste("ElavGAL4_mda_TRiP36303_Neuronal_coxPH_NoTitleNoXNoYnopval_lightconf_fixM
arg.png"), units='in', height=5.08, width=7.62, res=600)
#par(mar=c(5,3,2,2)+1)
f = ggsurvplot(ElavGAL4_mda_TRiP36303_Fit,
palette= c("black", "blue"),
ggtheme = theme_minimal() + theme(plot.title = element_blank(),#element_text(hjust = 0.5,
size=24),
text = element_text(size=25, family="A"),
axis.text.x = element_text(hjust=0.5, vjust=0.5, size=25, color='black'),
#angle=90
axis.title.x = element_blank(),
axis.title.y = element_blank(),
axis.text.y = element_text(size=25, color='black'),
legend.position = "none",# Hide panel borders and remove grid lines
axis.line = element_line(colour = "black"),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border = element_blank(),
panel.background = element_blank(),
plot.margin=unit(c(.5,.5,0,0),"cm")),
title = "Neuronal RNAi Survival",
conf.int = T R U E,
conf.int.alpha = 0.1,
#pval = paste("genotype\npval = ",
as.character(formatC(summary(ElavGAL4_mda_TRiP36303.multicox)$coefficients[1,5], format = "e",
digits = 2)), sep=""),
#pval.coord = c(35, 0.85),
#pval.size = 7,
legend.labs = c("TRiP (BL36303)", "mda RNAi"),
break.time.by = 10,
linetype = c("solid", "solid"),
ylab = "Survival Percentage",
xlab = "Time (Days)",
axes.offset = F,
surv.scale = "percent",
legend = c(0.3, 0.2),#"right",
legend.title = "",
#font.x = c(16, "bold", "black"),
#font.y = c(16, "bold", "black"),
184
font.tickslab = c(25, "black"),
font.legend = c(22, "black"))#,
#font.title = 18)
print(f)
dev.off()
##Data set from 11/3/2021 Da-GS, Uro RNAi #26 medusa paper revision experiments
Uro_xbp1 = read.csv('Uro_xbp1_deaths_11-3-2021.csv', header = T)
for (i in 1:dim(Uro_xbp1)[1]) {
if (i == 1) {Uro_xbp1_coxph = matrix(rep(Uro_xbp1[i,], each=Uro_xbp1[i,2]), nrow = Uro_xbp1[i,2],
ncol = dim(Uro_xbp1)[2])}
Uro_xbp1_coxph = rbind(Uro_xbp1_coxph, matrix(rep(Uro_xbp1[i,], each=Uro_xbp1[i,2]), nrow =
Uro_xbp1[i,2], ncol = dim(Uro_xbp1)[2]))
}
colnames(Uro_xbp1_coxph) = colnames(Uro_xbp1)
Uro_xbp1_coxph = as.data.frame(Uro_xbp1_coxph[,c(1,3:dim(Uro_xbp1)[2])])
for (i in 1:length(Uro_xbp1_coxph)) {
Uro_xbp1_coxph[,i] = as.numeric(Uro_xbp1_coxph[,i])
}
Uro_xbp1_TRiP = Uro_xbp1_coxph[which(Uro_xbp1_coxph$TRiP==1),]
Uro_xbp1_w1118 = Uro_xbp1_coxph[which(Uro_xbp1_coxph$w1118==1),]
#With all TRiP lines included in analysis
Uro_xbp1_TRiP.multicox = coxph(Surv(time, status) ~ R486*Uro*XR*dptA, data = Uro_xbp1_TRiP)
# > summary(Uro_xbp1_TRiP.multicox)
# Call:
# coxph(formula = Surv(time, status) ~ R486 * Uro * XR * dptA,
# data = Uro_xbp1_TRiP)
#
# n= 1263, number of events= 1263
#
# coef exp(coef) se(coef) z Pr(>|z|)
# R486 0.08764 1.09160 0.13810 0.635 0.525686
# Uro -0.55773 0.57250 0.14787 -3.772 0.000162 ***
# XR -0.44698 0.63956 0.13206 -3.385 0.000713 ***
# dptA -1.25446 0.28523 0.14440 -8.687 < 2e-16 ***
# R486:Uro 1.14236 3.13417 0.20160 5.666 1.46e-08 ***
# R486:XR 2.86031 17.46688 0.20012 14.293 < 2e-16 ***
# Uro:XR -0.33953 0.71211 0.18651 -1.820 0.068692 .
# R486:dptA 0.53239 1.70300 0.19947 2.669 0.007608 **
# Uro:dptA NA NA 0.00000 NA NA
# XR:dptA NA NA 0.00000 NA NA
# R486:Uro:XR -0.17330 0.84088 0.25697 -0.674 0.500057
# R486:Uro:dptA NA NA 0.00000 NA NA
# R486:XR:dptA NA NA 0.00000 NA NA
# Uro:XR:dptA NA NA 0.00000 NA NA
# R486:Uro:XR:dptA NA NA 0.00000 NA NA
# ---
# Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
185
#
# exp(coef) exp(-coef) lower .95 upper .95
# R486 1.0916 0.91609 0.8327 1.4309
# Uro 0.5725 1.74671 0.4285 0.7650
# XR 0.6396 1.56358 0.4937 0.8285
# dptA 0.2852 3.50594 0.2149 0.3785
# R486:Uro 3.1342 0.31906 2.1111 4.6529
# R486:XR 17.4669 0.05725 11.7997 25.8559
# Uro:XR 0.7121 1.40428 0.4941 1.0264
# R486:dptA 1.7030 0.58720 1.1519 2.5177
# Uro:dptA NA NA NA NA
# XR:dptA NA NA NA NA
# R486:Uro:XR 0.8409 1.18923 0.5082 1.3915
# R486:Uro:dptA NA NA NA NA
# R486:XR:dptA NA NA NA NA
# Uro:XR:dptA NA NA NA NA
# R486:Uro:XR:dptA NA NA NA NA
#
# Concordance= 0.795 (se = 0.007 )
# Likelihood ratio test= 1137 on 9 df, p=<2e-16
# Wald test = 1032 on 9 df, p=<2e-16
# Score (logrank) test = 1544 on 9 df, p=<2e-16
#With Xbp1 RNAi and control lines included in analysis
Uro_xbp1only_TRiP.multicox = coxph(Surv(time, status) ~ R486*Uro*XR, data = Uro_xbp1_TRiP)
# > summary(Uro_xbp1only_TRiP.multicox)
# Call:
# coxph(formula = Surv(time, status) ~ R486 * Uro * XR, data = Uro_xbp1_TRiP)
#
# n= 1263, number of events= 1263
#
# coef exp(coef) se(coef) z Pr(>|z|)
# R486 0.4375 1.5488 0.1009 4.334 1.47e-05 ***
# Uro 0.2326 1.2619 0.1293 1.798 0.07212 .
# XR 0.3169 1.3729 0.1138 2.784 0.00536 **
# R486:Uro 0.7303 2.0756 0.1756 4.159 3.20e-05 ***
# R486:XR 2.4256 11.3090 0.1749 13.871 < 2e-16 ***
# Uro:XR -1.0692 0.3433 0.1761 -6.072 1.27e-09 ***
# R486:Uro:XR 0.1765 1.1931 0.2395 0.737 0.46095
# ---
# Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#
# exp(coef) exp(-coef) lower .95 upper .95
# R486 1.5488 0.64566 1.2708 1.8876
# Uro 1.2619 0.79247 0.9793 1.6260
# XR 1.3729 0.72841 1.0984 1.7159
# R486:Uro 2.0756 0.48178 1.4713 2.9282
# R486:XR 11.3090 0.08843 8.0275 15.9319
# Uro:XR 0.3433 2.91312 0.2431 0.4848
# R486:Uro:XR 1.1931 0.83816 0.7462 1.9076
186
#
# Concordance= 0.765 (se = 0.007 )
# Likelihood ratio test= 1040 on 7 df, p=<2e-16
# Wald test = 961.9 on 7 df, p=<2e-16
# Score (logrank) test = 1469 on 7 df, p=<2e-16
xbp1_TRiPfit_11_3 = survfit(Surv(time, status) ~ Uro+R406, data =
Uro_xbp1_TRiP[which(Uro_xbp1_TRiP$XR==1),])
png(file=paste("xbp1_Drivers_WholeBody_coxPH_NoTitleNoXNoYnopval_lightconf_fixMarg_dot.png
"), units='in', height=5.08, width = 7.62, res=600)
par(mar=c(5,3,2,2)+1)
f = ggsurvplot(xbp1_TRiPfit_11_3,
palette= c("black", "black", "red", "red"),
ggtheme = theme_minimal() + theme(plot.title = element_blank(),#element_text(hjust = 0.5,
size=24),
text = element_text(size=25, family="A"),
axis.text.x = element_text(hjust=0.5, vjust=0.5, size=25, color='black'),
#angle=90
axis.title.x = element_blank(),
axis.title.y = element_blank(),
axis.text.y = element_text(size=25, color='black'),
legend.position = "none",# Hide panel borders and remove grid lines
axis.line = element_line(colour = "black"),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border = element_blank(),
panel.background = element_blank(),
plot.margin=unit(c(.5,.5,0,0),"cm")),
title = "Whole-body xbp1 RNAi Survival",
conf.int = T R U E,
conf.int.alpha = 0.1,
#pval = paste("genotype*RNAi\npval = ",
as.character(formatC(summary(xbp1_TRiP.multicox)$coefficients[3,5], format = "e", digits = 2)),
sep=""),
#pval.coord = c(35, 0.85),
#pval.size = 7,
legend.labs = c("Da-GS AL-", "Da-GS AL+", "Da-GS, Uro RNAi AL-", "Da-GS, Uro RNAi
AL+"),
break.time.by = 10,
linetype = c(1,3,1,3),#"solid", "dot", "solid", "dot"),
ylab = "Survival Percentage",
xlab = "Time (Days)",
axes.offset = F,
surv.scale = "percent",
legend = c(0.7, 0.95),#"right",
legend.title = "",
#font.x = c(16, "bold", "black"),
#font.y = c(16, "bold", "black"),
font.tickslab = c(25, "black"),
font.legend = c(22, "black"))#,
#font.title = 18)
187
print(f)
dev.off()
#With Xbp1 RNAi only lines included in analysis
Uro_xbp1onlyXR_TRiP.multicox = coxph(Surv(time, status) ~ R486*Uro, data =
Uro_xbp1_TRiP[which(Uro_xbp1_TRiP$XR == 1),])
# > summary(Uro_xbp1onlyXR_TRiP.multicox)
# Call:
# coxph(formula = Surv(time, status) ~ R486 * Uro, data =
Uro_xbp1_TRiP[which(Uro_xbp1_TRiP$XR ==
# 1), ])
#
# n= 658, number of events= 658
#
# coef exp(coef) se(coef) z Pr(>|z|)
# R486 3.2654 26.1905 0.1970 16.579 < 2e-16 ***
# Uro -0.9340 0.3930 0.1218 -7.665 1.78e-14 ***
# R486:Uro 1.0199 2.7729 0.1672 6.100 1.06e-09 ***
# ---
# Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#
# exp(coef) exp(-coef) lower .95 upper .95
# R486 26.190 0.03818 17.8029 38.530
# Uro 0.393 2.54460 0.3095 0.499
# R486:Uro 2.773 0.36063 1.9981 3.848
#
# Concordance= 0.798 (se = 0.006 )
# Likelihood ratio test= 776.1 on 3 df, p=<2e-16
# Wald test = 453.9 on 3 df, p=<2e-16
# Score (logrank) test = 776.3 on 3 df, p=<2e-16
#With Uro Xbp1 RNAi only lines included in analysis
Uro_xbp1onlyUro_TRiP.multicox = coxph(Surv(time, status) ~ R486*XR, data =
Uro_xbp1_TRiP[which(Uro_xbp1_TRiP$Uro == 1),])
# > summary(Uro_xbp1onlyUro_TRiP.multicox)
# Call:
# coxph(formula = Surv(time, status) ~ R406 * XR, data =
Uro_xbp1_TRiP[which(Uro_xbp1_TRiP$Uro ==
# 1), ])
#
# n= 591, number of events= 591
#
# coef exp(coef) se(coef) z Pr(>|z|)
# R406 1.1258 3.0825 0.1508 7.464 8.40e-14 ***
# XR -0.7243 0.4846 0.1330 -5.445 5.19e-08 ***
# R406:XR 2.3286 10.2633 0.2039 11.422 < 2e-16 ***
# ---
# Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#
188
# exp(coef) exp(-coef) lower .95 upper .95
# R406 3.0825 0.32441 2.2936 4.143
# XR 0.4846 2.06335 0.3734 0.629
# R406:XR 10.2633 0.09743 6.8827 15.304
#
# Concordance= 0.789 (se = 0.007 )
# Likelihood ratio test= 536.7 on 3 df, p=<2e-16
# Wald test = 438.5 on 3 df, p=<2e-16
# Score (logrank) test = 616.8 on 3 df, p=<2e-16
#With all w1118 lines included in analysis
Uro_xbp1_w1118.multicox = coxph(Surv(time, status) ~ R486*Uro*UX, data = Uro_xbp1_w1118)
# > summary(Uro_xbp1_w1118.multicox)
# Call:
# coxph(formula = Surv(time, status) ~ R486 * Uro * UX, data = Uro_xbp1_w1118)
#
# n= 773, number of events= 773
#
# coef exp(coef) se(coef) z Pr(>|z|)
# R486 0.14733 1.15873 0.19591 0.752 0.45205
# Uro -0.54202 0.58157 0.19855 -2.730 0.00634 **
# UX -0.04936 0.95184 0.16990 -0.291 0.77142
# R486:Uro 0.64713 1.91005 0.26586 2.434 0.01493 *
# R486:UX 0.20732 1.23038 0.23114 0.897 0.36974
# Uro:UX 0.53501 1.70747 0.23298 2.296 0.02166 *
# R486:Uro:UX -0.08836 0.91544 0.31736 -0.278 0.78070
# ---
# Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#
# exp(coef) exp(-coef) lower .95 upper .95
# R486 1.1587 0.8630 0.7893 1.7012
# Uro 0.5816 1.7195 0.3941 0.8582
# UX 0.9518 1.0506 0.6822 1.3280
# R486:Uro 1.9101 0.5235 1.1343 3.2162
# R486:UX 1.2304 0.8128 0.7822 1.9354
# Uro:UX 1.7075 0.5857 1.0815 2.6957
# R486:Uro:UX 0.9154 1.0924 0.4915 1.7052
#
# Concordance= 0.61 (se = 0.012 )
# Likelihood ratio test= 88.91 on 7 df, p=<2e-16
# Wald test = 93.49 on 7 df, p=<2e-16
# Score (logrank) test = 98.87 on 7 df, p=<2e-16
Uro_xbp1.multicox = coxph(Surv(time, status) ~ TRiP*R486*Uro*XR*UX*dptA*w1118, data =
Uro_xbp1_coxph)
##Data set from 11/11/2021 Da-GS, Uro RNAi #26 medusa paper rebuttal experiments repeat 2
Uro_xbp1_r2 = read.csv('Uro_xbp1_deaths_11-11-2021.csv', header = T)
for (i in 1:dim(Uro_xbp1_r2)[1]) {
189
if (i == 1) {Uro_xbp1_r2_coxph = matrix(rep(Uro_xbp1_r2[i,], each=Uro_xbp1_r2[i,2]), nrow =
Uro_xbp1_r2[i,2], ncol = dim(Uro_xbp1_r2)[2])}
Uro_xbp1_r2_coxph = rbind(Uro_xbp1_r2_coxph, matrix(rep(Uro_xbp1_r2[i,],
each=Uro_xbp1_r2[i,2]), nrow = Uro_xbp1_r2[i,2], ncol = dim(Uro_xbp1_r2)[2]))
}
colnames(Uro_xbp1_r2_coxph) = colnames(Uro_xbp1_r2)
Uro_xbp1_r2_coxph = as.data.frame(Uro_xbp1_r2_coxph[,c(1,3:dim(Uro_xbp1_r2)[2])])
for (i in 1:length(Uro_xbp1_r2_coxph)) {
Uro_xbp1_r2_coxph[,i] = as.numeric(Uro_xbp1_r2_coxph[,i])
}
Uro_xbp1_r2_TRiP = Uro_xbp1_r2_coxph[which(Uro_xbp1_r2_coxph$TRiP==1),]
Uro_xbp1_r2_w1118 = Uro_xbp1_r2_coxph[which(Uro_xbp1_r2_coxph$w1118==1),]
#With all TRiP lines included in analysis
Uro_xbp1_r2_TRiP.multicox = coxph(Surv(time, status) ~ R406*Uro*mda*dptA, data =
Uro_xbp1_r2_TRiP)
# > summary(Uro_xbp1_r2_TRiP.multicox)
# Call:
# coxph(formula = Surv(time, status) ~ R406 * Uro * mda * dptA,
# data = Uro_xbp1_r2_TRiP)
#
# n= 780, number of events= 780
#
# coef exp(coef) se(coef) z Pr(>|z|)
# R406 0.63255 1.88240 0.11354 5.571 2.53e-08 ***
# Uro NA NA 0.00000 NA NA
# mda -0.06288 0.93906 0.11054 -0.569 0.5695
# dptA -0.66365 0.51497 0.12634 -5.253 1.50e-07 ***
# R406:Uro NA NA 0.00000 NA NA
# R406:mda -0.19306 0.82444 0.16498 -1.170 0.2419
# Uro:mda NA NA 0.00000 NA NA
# R406:dptA -0.31582 0.72919 0.18835 -1.677 0.0936 .
# Uro:dptA NA NA 0.00000 NA NA
# mda:dptA NA NA 0.00000 NA NA
# R406:Uro:mda NA NA 0.00000 NA NA
# R406:Uro:dptA NA NA 0.00000 NA NA
# R406:mda:dptA NA NA 0.00000 NA NA
# Uro:mda:dptA NA NA 0.00000 NA NA
# R406:Uro:mda:dptA NA NA 0.00000 NA NA
# ---
# Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#
# exp(coef) exp(-coef) lower .95 upper .95
# R406 1.8824 0.5312 1.5068 2.3516
# Uro NA NA NA NA
# mda 0.9391 1.0649 0.7561 1.1662
# dptA 0.5150 1.9419 0.4020 0.6597
# R406:Uro NA NA NA NA
# R406:mda 0.8244 1.2130 0.5967 1.1392
190
# Uro:mda NA NA NA NA
# R406:dptA 0.7292 1.3714 0.5041 1.0548
# Uro:dptA NA NA NA NA
# mda:dptA NA NA NA NA
# R406:Uro:mda NA NA NA NA
# R406:Uro:dptA NA NA NA NA
# R406:mda:dptA NA NA NA NA
# Uro:mda:dptA NA NA NA NA
# R406:Uro:mda:dptA NA NA NA NA
#
# Concordance= 0.632 (se = 0.013 )
# Likelihood ratio test= 115.3 on 5 df, p=<2e-16
# Wald test = 114.5 on 5 df, p=<2e-16
# Score (logrank) test = 120.7 on 5 df, p=<2e-16
#With all w1118 lines included in analysis
Uro_xbp1_r2_w1118.multicox = coxph(Surv(time, status) ~ R406*Uro*UX, data =
Uro_xbp1_r2_w1118)
# > summary(Uro_xbp1_r2_w1118.multicox)
# Call:
# coxph(formula = Surv(time, status) ~ R406 * Uro * UX, data = Uro_xbp1_r2_w1118)
#
# n= 494, number of events= 494
#
# coef exp(coef) se(coef) z Pr(>|z|)
# R406 0.05594 1.05753 0.23228 0.241 0.8097
# Uro -0.86228 0.42220 0.20671 -4.171 3.03e-05 ***
# UX -0.11751 0.88913 0.15319 -0.767 0.4430
# R406:Uro 0.43128 1.53922 0.26214 1.645 0.0999 .
# R406:UX -0.10298 0.90214 0.21916 -0.470 0.6384
# Uro:UX NA NA 0.00000 NA NA
# R406:Uro:UX NA NA 0.00000 NA NA
# ---
# Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#
# exp(coef) exp(-coef) lower .95 upper .95
# R406 1.0575 0.9456 0.6708 1.6673
# Uro 0.4222 2.3686 0.2816 0.6331
# UX 0.8891 1.1247 0.6585 1.2005
# R406:Uro 1.5392 0.6497 0.9208 2.5730
# R406:UX 0.9021 1.1085 0.5871 1.3862
# Uro:UX NA NA NA NA
# R406:Uro:UX NA NA NA NA
#
# Concordance= 0.601 (se = 0.015 )
# Likelihood ratio test= 51.01 on 5 df, p=9e-10
# Wald test = 54.23 on 5 df, p=2e-10
# Score (logrank) test = 56.6 on 5 df, p=6e-11
#With all TRiP lines included in analysis
191
Uro_all_r2_TRiP.multicox = coxph(Surv(time, status) ~ R486*dptA*mda, data = Uro_xbp1_r2_TRiP)
# > summary(Uro_all_r2_TRiP.multicox)
# Call:
# coxph(formula = Surv(time, status) ~ R486 * dptA * mda, data = Uro_xbp1_r2_TRiP)
#
# n= 780, number of events= 780
#
# coef exp(coef) se(coef) z Pr(>|z|)
# R486 0.63255 1.88240 0.11354 5.571 2.53e-08 ***
# dptA -0.66365 0.51497 0.12634 -5.253 1.50e-07 ***
# mda -0.06288 0.93906 0.11054 -0.569 0.5695
# R486:dptA -0.31582 0.72919 0.18835 -1.677 0.0936 .
# R486:mda -0.19306 0.82444 0.16498 -1.170 0.2419
# dptA:mda NA NA 0.00000 NA NA
# R486:dptA:mda NA NA 0.00000 NA NA
# ---
# Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#
# exp(coef) exp(-coef) lower .95 upper .95
# R486 1.8824 0.5312 1.5068 2.3516
# dptA 0.5150 1.9419 0.4020 0.6597
# mda 0.9391 1.0649 0.7561 1.1662
# R486:dptA 0.7292 1.3714 0.5041 1.0548
# R486:mda 0.8244 1.2130 0.5967 1.1392
# dptA:mda NA NA NA NA
# R486:dptA:mda NA NA NA NA
#
# Concordance= 0.632 (se = 0.013 )
# Likelihood ratio test= 115.3 on 5 df, p=<2e-16
# Wald test = 114.5 on 5 df, p=<2e-16
# Score (logrank) test = 120.7 on 5 df, p=<2e-16
#With all TRiP lines included in analysis
Uro_xbp1_r2_TRiP.multicox = coxph(Surv(time, status) ~ R486*Uro*mda*dptA, data =
Uro_xbp1_r2_TRiP)
# > summary(Uro_xbp1_r2_TRiP.multicox)
# Call:
# coxph(formula = Surv(time, status) ~ R486 * Uro * mda * dptA,
# data = Uro_xbp1_r2_TRiP)
#
# n= 780, number of events= 780
#
# coef exp(coef) se(coef) z Pr(>|z|)
# R486 0.63255 1.88240 0.11354 5.571 2.53e-08 ***
# Uro NA NA 0.00000 NA NA
# mda -0.06288 0.93906 0.11054 -0.569 0.5695
# dptA -0.66365 0.51497 0.12634 -5.253 1.50e-07 ***
# R486:Uro NA NA 0.00000 NA NA
# R486:mda -0.19306 0.82444 0.16498 -1.170 0.2419
192
# Uro:mda NA NA 0.00000 NA NA
# R486:dptA -0.31582 0.72919 0.18835 -1.677 0.0936 .
# Uro:dptA NA NA 0.00000 NA NA
# mda:dptA NA NA 0.00000 NA NA
# R486:Uro:mda NA NA 0.00000 NA NA
# R486:Uro:dptA NA NA 0.00000 NA NA
# R486:mda:dptA NA NA 0.00000 NA NA
# Uro:mda:dptA NA NA 0.00000 NA NA
# R486:Uro:mda:dptA NA NA 0.00000 NA NA
# ---
# Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#
# exp(coef) exp(-coef) lower .95 upper .95
# R486 1.8824 0.5312 1.5068 2.3516
# Uro NA NA NA NA
# mda 0.9391 1.0649 0.7561 1.1662
# dptA 0.5150 1.9419 0.4020 0.6597
# R486:Uro NA NA NA NA
# R486:mda 0.8244 1.2130 0.5967 1.1392
# Uro:mda NA NA NA NA
# R486:dptA 0.7292 1.3714 0.5041 1.0548
# Uro:dptA NA NA NA NA
# mda:dptA NA NA NA NA
# R486:Uro:mda NA NA NA NA
# R486:Uro:dptA NA NA NA NA
# R486:mda:dptA NA NA NA NA
# Uro:mda:dptA NA NA NA NA
# R486:Uro:mda:dptA NA NA NA NA
#
# Concordance= 0.632 (se = 0.013 )
# Likelihood ratio test= 115.3 on 5 df, p=<2e-16
# Wald test = 114.5 on 5 df, p=<2e-16
# Score (logrank) test = 120.7 on 5 df, p=<2e-16
#With mda RNAi lines included in analysis, all TRiP terms
Uro_mdaonly_r2_TRiP.multicox = coxph(Surv(time, status) ~ R486*Uro*mda, data =
Uro_xbp1_r2_TRiP)
# > summary(Uro_mdaonly_r2_TRiP.multicox)
# Call:
# coxph(formula = Surv(time, status) ~ R486 * Uro * mda, data = Uro_xbp1_r2_TRiP)
#
# n= 780, number of events= 780
#
# coef exp(coef) se(coef) z Pr(>|z|)
# R486 0.43984 1.55246 0.09054 4.858 1.19e-06 ***
# Uro NA NA 0.00000 NA NA
# mda 0.19962 1.22093 0.10174 1.962 0.0498 *
# R486:Uro NA NA 0.00000 NA NA
# R486:mda -0.02780 0.97258 0.15050 -0.185 0.8535
# Uro:mda NA NA 0.00000 NA NA
193
# R486:Uro:mda NA NA 0.00000 NA NA
# ---
# Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#
# exp(coef) exp(-coef) lower .95 upper .95
# R486 1.5525 0.6441 1.3000 1.854
# Uro NA NA NA NA
# mda 1.2209 0.8190 1.0002 1.490
# R486:Uro NA NA NA NA
# R486:mda 0.9726 1.0282 0.7241 1.306
# Uro:mda NA NA NA NA
# R486:Uro:mda NA NA NA NA
#
# Concordance= 0.573 (se = 0.012 )
# Likelihood ratio test= 39.94 on 3 df, p=1e-08
# Wald test = 40.54 on 3 df, p=8e-09
# Score (logrank) test = 41.28 on 3 df, p=6e-09
#With mda RNAi lines included in analysis, all TRiP terms except Uro
Uro_mdaonlyNoUro_r2_TRiP.multicox = coxph(Surv(time, status) ~ R486*mda, data =
Uro_xbp1_r2_TRiP)
# > summary(Uro_mdaonlyNoUro_r2_TRiP.multicox)
# Call:
# coxph(formula = Surv(time, status) ~ R486 * mda, data = Uro_xbp1_r2_TRiP)
#
# n= 780, number of events= 780
#
# coef exp(coef) se(coef) z Pr(>|z|)
# R486 0.43984 1.55246 0.09054 4.858 1.19e-06 ***
# mda 0.19962 1.22093 0.10174 1.962 0.0498 *
# R486:mda -0.02780 0.97258 0.15050 -0.185 0.8535
# ---
# Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#
# exp(coef) exp(-coef) lower .95 upper .95
# R486 1.5525 0.6441 1.3000 1.854
# mda 1.2209 0.8190 1.0002 1.490
# R486:mda 0.9726 1.0282 0.7241 1.306
#
# Concordance= 0.573 (se = 0.012 )
# Likelihood ratio test= 39.94 on 3 df, p=1e-08
# Wald test = 40.54 on 3 df, p=8e-09
# Score (logrank) test = 41.28 on 3 df, p=6e-09
#With mda RNAi lines included in analysis, Uro only TRiP terms
Uro_mdaonlyUro_r2_TRiP.multicox = coxph(Surv(time, status) ~ R486*mda, data =
Uro_xbp1_r2_TRiP[which(Uro_xbp1_r2_TRiP$Uro==1),])
# > summary(Uro_mdaonlyUro_r2_TRiP.multicox)
# Call:
194
# coxph(formula = Surv(time, status) ~ R486 * mda, data =
Uro_xbp1_r2_TRiP[which(Uro_xbp1_r2_TRiP$Uro ==
# 1), ])
#
# n= 780, number of events= 780
#
# coef exp(coef) se(coef) z Pr(>|z|)
# R486 0.43984 1.55246 0.09054 4.858 1.19e-06 ***
# mda 0.19962 1.22093 0.10174 1.962 0.0498 *
# R486:mda -0.02780 0.97258 0.15050 -0.185 0.8535
# ---
# Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#
# exp(coef) exp(-coef) lower .95 upper .95
# R486 1.5525 0.6441 1.3000 1.854
# mda 1.2209 0.8190 1.0002 1.490
# R486:mda 0.9726 1.0282 0.7241 1.306
#
# Concordance= 0.573 (se = 0.012 )
# Likelihood ratio test= 39.94 on 3 df, p=1e-08
# Wald test = 40.54 on 3 df, p=8e-09
# Score (logrank) test = 41.28 on 3 df, p=6e-09
#With mda RNAi lines included in analysis, Uro only TRiP terms
Uro_mdaonlynodptA_r2_TRiP.multicox = coxph(Surv(time, status) ~ R486*mda, data =
Uro_xbp1_r2_TRiP[which(Uro_xbp1_r2_TRiP$Uro==1 & Uro_xbp1_r2_TRiP$dptA==0),])
# > summary(Uro_mdaonlynodptA_r2_TRiP.multicox)
# Call:
# coxph(formula = Surv(time, status) ~ R486 * mda, data =
Uro_xbp1_r2_TRiP[which(Uro_xbp1_r2_TRiP$Uro ==
# 1 & Uro_xbp1_r2_TRiP$dptA == 0), ])
#
# n= 601, number of events= 601
#
# coef exp(coef) se(coef) z Pr(>|z|)
# R486 0.64099 1.89837 0.11393 5.626 1.84e-08 ***
# mda -0.06029 0.94149 0.11065 -0.545 0.586
# R486:mda -0.22945 0.79497 0.16489 -1.392 0.164
# ---
# Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#
# exp(coef) exp(-coef) lower .95 upper .95
# R486 1.8984 0.5268 1.5184 2.373
# mda 0.9415 1.0621 0.7579 1.170
# R486:mda 0.7950 1.2579 0.5754 1.098
#
# Concordance= 0.604 (se = 0.014 )
# Likelihood ratio test= 43.83 on 3 df, p=2e-09
# Wald test = 46.23 on 3 df, p=5e-10
# Score (logrank) test = 47.55 on 3 df, p=3e-10
195
#With dptA RNAi lines included in analysis, all terms
Uro_dptAonly_r2_TRiP.multicox = coxph(Surv(time, status) ~ R486*Uro*dptA, data =
Uro_xbp1_r2_TRiP)
# > summary(Uro_dptAonly_r2_TRiP.multicox)
# Call:
# coxph(formula = Surv(time, status) ~ R486 * Uro * dptA, data = Uro_xbp1_r2_TRiP)
#
# n= 780, number of events= 780
#
# coef exp(coef) se(coef) z Pr(>|z|)
# R486 0.53350 1.70489 0.08346 6.392 1.64e-10 ***
# Uro NA NA 0.00000 NA NA
# dptA -0.63535 0.52975 0.11608 -5.474 4.41e-08 ***
# R486:Uro NA NA 0.00000 NA NA
# R486:dptA -0.21582 0.80588 0.17186 -1.256 0.209
# Uro:dptA NA NA 0.00000 NA NA
# R486:Uro:dptA NA NA 0.00000 NA NA
# ---
# Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#
# exp(coef) exp(-coef) lower .95 upper .95
# R486 1.7049 0.5865 1.4476 2.0079
# Uro NA NA NA NA
# dptA 0.5297 1.8877 0.4220 0.6651
# R486:Uro NA NA NA NA
# R486:dptA 0.8059 1.2409 0.5754 1.1286
# Uro:dptA NA NA NA NA
# R486:Uro:dptA NA NA NA NA
#
# Concordance= 0.62 (se = 0.013 )
# Likelihood ratio test= 110.6 on 3 df, p=<2e-16
# Wald test = 107.9 on 3 df, p=<2e-16
# Score (logrank) test = 113.2 on 3 df, p=<2e-16
xbp1_TRiPfit = survfit(Surv(time, status) ~ geno+R406, data = xbp1_TRiP_coxph)
png(file=paste("xbp1_TRiP35785_WholeBody_coxPH_NoTitleNoXNoYnopval_lightconf_fixMarg.png"
), units='in', height=5.08, width = 7.62, res=600)
#par(mar=c(5,3,2,2)+1)
f = ggsurvplot(xbp1_TRiPfit,
palette= c("black", "black", "red", "red"),
ggtheme = theme_minimal() + theme(plot.title = element_blank(),#element_text(hjust = 0.5,
size=24),
text = element_text(size=25, family="A"),
axis.text.x = element_text(hjust=0.5, vjust=0.5, size=25, color='black'),
#angle=90
axis.title.x = element_blank(),
axis.title.y = element_blank(),
axis.text.y = element_text(size=25, color='black'),
legend.position = "none",# Hide panel borders and remove grid lines
196
axis.line = element_line(colour = "black"),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border = element_blank(),
panel.background = element_blank(),
plot.margin=unit(c(.5,.5,0,0),"cm")),
title = "Whole-body xbp1 RNAi Survival",
conf.int = T R U E,
conf.int.alpha = 0.1,
#pval = paste("genotype*RNAi\npval = ",
as.character(formatC(summary(xbp1_TRiP.multicox)$coefficients[3,5], format = "e", digits = 2)),
sep=""),
#pval.coord = c(35, 0.85),
#pval.size = 7,
legend.labs = c("TRiP Ctrl AL-", "TRiP Ctrl AL+", "xbp1 RNAi AL-", "xbp1 RNAi AL+"),
break.time.by = 10,
linetype = c("solid", "dashed", "solid", "dashed"),
ylab = "Survival Percentage",
xlab = "Time (Days)",
axes.offset = F,
surv.scale = "percent",
legend = c(0.8, 0.6),#"right",
legend.title = "",
#font.x = c(16, "bold", "black"),
#font.y = c(16, "bold", "black"),
font.tickslab = c(25, "black"),
font.legend = c(22, "black"))#,
#font.title = 18)
print(f)
dev.off()
#With dptA RNAi lines included in analysis, no Uro term
Uro_dptAonlyNoUro_r2_TRiP.multicox = coxph(Surv(time, status) ~ R486*dptA, data =
Uro_xbp1_r2_TRiP)
# > summary(Uro_dptAonlyNoUro_r2_TRiP.multicox)
# Call:
# coxph(formula = Surv(time, status) ~ R486 * dptA, data = Uro_xbp1_r2_TRiP)
#
# n= 780, number of events= 780
#
# coef exp(coef) se(coef) z Pr(>|z|)
# R486 0.53350 1.70489 0.08346 6.392 1.64e-10 ***
# dptA -0.63535 0.52975 0.11608 -5.474 4.41e-08 ***
# R486:dptA -0.21582 0.80588 0.17186 -1.256 0.209
# ---
# Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#
# exp(coef) exp(-coef) lower .95 upper .95
# R486 1.7049 0.5865 1.4476 2.0079
# dptA 0.5297 1.8877 0.4220 0.6651
197
# R486:dptA 0.8059 1.2409 0.5754 1.1286
#
# Concordance= 0.62 (se = 0.013 )
# Likelihood ratio test= 110.6 on 3 df, p=<2e-16
# Wald test = 107.9 on 3 df, p=<2e-16
# Score (logrank) test = 113.2 on 3 df, p=<2e-16
#With all w1118 lines included in analysis
Uro_xbp1_r2_w1118.multicox = coxph(Surv(time, status) ~ R486*Uro*UX, data =
Uro_xbp1_r2_w1118)
# > summary(Uro_xbp1_r2_w1118.multicox)
# Call:
# coxph(formula = Surv(time, status) ~ R486 * Uro * UX, data = Uro_xbp1_r2_w1118)
#
# n= 494, number of events= 494
#
# coef exp(coef) se(coef) z Pr(>|z|)
# R486 0.05594 1.05753 0.23228 0.241 0.8097
# Uro -0.86228 0.42220 0.20671 -4.171 3.03e-05 ***
# UX -0.11751 0.88913 0.15319 -0.767 0.4430
# R486:Uro 0.43128 1.53922 0.26214 1.645 0.0999 .
# R486:UX -0.10298 0.90214 0.21916 -0.470 0.6384
# Uro:UX NA NA 0.00000 NA NA
# R486:Uro:UX NA NA 0.00000 NA NA
# ---
# Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#
# exp(coef) exp(-coef) lower .95 upper .95
# R486 1.0575 0.9456 0.6708 1.6673
# Uro 0.4222 2.3686 0.2816 0.6331
# UX 0.8891 1.1247 0.6585 1.2005
# R486:Uro 1.5392 0.6497 0.9208 2.5730
# R486:UX 0.9021 1.1085 0.5871 1.3862
# Uro:UX NA NA NA NA
# R486:Uro:UX NA NA NA NA
#
# Concordance= 0.601 (se = 0.015 )
# Likelihood ratio test= 51.01 on 5 df, p=9e-10
# Wald test = 54.23 on 5 df, p=2e-10
# Score (logrank) test = 56.6 on 5 df, p=6e-11
##Data set from 11/11/2021 Da-GS, Uro RNAi #26 medusa paper rebuttal experiments repeat 2,
#with Da-GS > TRiP (BL35785), Da-GS > diptA RNAi (BL67221), and Da-GS > UAS-Xbp1 (BL60731)
from 11-3-2021 added
Uro_xbp1_r2_add = read.csv('Uro_xbp1_deaths_11-11-2021_with11-3daGS.csv', header = T)
for (i in 1:dim(Uro_xbp1_r2_add)[1]) {
if (i == 1) {Uro_xbp1_r2_add_coxph = matrix(rep(Uro_xbp1_r2_add[i,], each=Uro_xbp1_r2_add[i,2]),
nrow = Uro_xbp1_r2_add[i,2], ncol = dim(Uro_xbp1_r2_add)[2])}
Uro_xbp1_r2_add_coxph = rbind(Uro_xbp1_r2_add_coxph, matrix(rep(Uro_xbp1_r2_add[i,],
each=Uro_xbp1_r2_add[i,2]), nrow = Uro_xbp1_r2_add[i,2], ncol = dim(Uro_xbp1_r2_add)[2]))
198
}
colnames(Uro_xbp1_r2_add_coxph) = colnames(Uro_xbp1_r2_add)
Uro_xbp1_r2_add_coxph = as.data.frame(Uro_xbp1_r2_add_coxph[,c(1,3:dim(Uro_xbp1_r2_add)[2])])
for (i in 1:length(Uro_xbp1_r2_add_coxph)) {
Uro_xbp1_r2_add_coxph[,i] = as.numeric(Uro_xbp1_r2_add_coxph[,i])
}
Uro_xbp1_r2_add_TRiP = Uro_xbp1_r2_add_coxph[which(Uro_xbp1_r2_add_coxph$TRiP==1),]
Uro_xbp1_r2_add_w1118 = Uro_xbp1_r2_add_coxph[which(Uro_xbp1_r2_add_coxph$w1118==1),]
#With all TRiP lines included in analysis
Uro_xbp1_r2_add_TRiP.multicox = coxph(Surv(time, status) ~ R406*Uro*dptA, data =
Uro_xbp1_r2_add_TRiP)
# > summary(Uro_xbp1_r2_add_TRiP.multicox)
# Call:
# coxph(formula = Surv(time, status) ~ R406 * Uro * dptA, data = Uro_xbp1_r2_add_TRiP)
#
# n= 1190, number of events= 1190
#
# coef exp(coef) se(coef) z Pr(>|z|)
# R406 0.07473 1.07759 0.13810 0.541 0.588425
# Uro -0.42175 0.65590 0.11350 -3.716 0.000202 ***
# dptA -1.24906 0.28677 0.14378 -8.687 < 2e-16 ***
# R406:Uro 0.47999 1.61605 0.16107 2.980 0.002883 **
# R406:dptA 0.51297 1.67024 0.19948 2.571 0.010126 *
# Uro:dptA 0.58535 1.79561 0.18140 3.227 0.001252 **
# R406:Uro:dptA -0.72828 0.48274 0.26345 -2.764 0.005704 **
# ---
# Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#
# exp(coef) exp(-coef) lower .95 upper .95
# R406 1.0776 0.9280 0.8221 1.4126
# Uro 0.6559 1.5246 0.5251 0.8193
# dptA 0.2868 3.4871 0.2163 0.3801
# R406:Uro 1.6161 0.6188 1.1786 2.2160
# R406:dptA 1.6702 0.5987 1.1297 2.4693
# Uro:dptA 1.7956 0.5569 1.2584 2.5623
# R406:Uro:dptA 0.4827 2.0715 0.2880 0.8090
#
# Concordance= 0.642 (se = 0.01 )
# Likelihood ratio test= 230.5 on 7 df, p=<2e-16
# Wald test = 220 on 7 df, p=<2e-16
# Score (logrank) test = 233.8 on 7 df, p=<2e-16
#With all w1118 lines in added group included in analysis
Uro_xbp1_r2_add_w1118.multicox = coxph(Surv(time, status) ~ R406*Uro*UX, data =
Uro_xbp1_r2_add_w1118)
# > summary(Uro_xbp1_r2_add_w1118.multicox)
# Call:
199
# coxph(formula = Surv(time, status) ~ R406 * Uro * UX, data = Uro_xbp1_r2_add_w1118)
#
# n= 767, number of events= 767
#
# coef exp(coef) se(coef) z Pr(>|z|)
# R406 0.0507 1.0520 0.2323 0.218 0.8272
# Uro -0.9519 0.3860 0.2061 -4.619 3.86e-06 ***
# UX -1.5180 0.2192 0.2147 -7.071 1.54e-12 ***
# R406:Uro 0.4406 1.5536 0.2621 1.681 0.0928 .
# R406:UX 0.2900 1.3364 0.2629 1.103 0.2700
# Uro:UX 1.3675 3.9256 0.2624 5.212 1.86e-07 ***
# R406:Uro:UX -0.3385 0.7128 0.3411 -0.992 0.3211
# ---
# Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#
# exp(coef) exp(-coef) lower .95 upper .95
# R406 1.0520 0.9506 0.6673 1.6585
# Uro 0.3860 2.5908 0.2577 0.5781
# UX 0.2191 4.5631 0.1439 0.3338
# R406:Uro 1.5536 0.6436 0.9294 2.5971
# R406:UX 1.3364 0.7483 0.7983 2.2372
# Uro:UX 3.9256 0.2547 2.3474 6.5650
# R406:Uro:UX 0.7128 1.4028 0.3653 1.3911
#
# Concordance= 0.641 (se = 0.011 )
# Likelihood ratio test= 132.1 on 7 df, p=<2e-16
# Wald test = 141.7 on 7 df, p=<2e-16
# Score (logrank) test = 152.9 on 7 df, p=<2e-16
##Data set from 11/26/2021 Da-GS, Uro RNAi #26 medusa paper rebuttal experiments repeat 3
Uro_xbp1_r3 = read.csv('Uro_xbp1_deaths_11-26-2021.csv', header = T)
for (i in 1:dim(Uro_xbp1_r3)[1]) {
if (i == 1) {Uro_xbp1_r3_coxph = matrix(rep(Uro_xbp1_r3[i,], each=Uro_xbp1_r3[i,2]), nrow =
Uro_xbp1_r3[i,2], ncol = dim(Uro_xbp1_r3)[2])}
Uro_xbp1_r3_coxph = rbind(Uro_xbp1_r3_coxph, matrix(rep(Uro_xbp1_r3[i,],
each=Uro_xbp1_r3[i,2]), nrow = Uro_xbp1_r3[i,2], ncol = dim(Uro_xbp1_r3)[2]))
}
colnames(Uro_xbp1_r3_coxph) = colnames(Uro_xbp1_r3)
Uro_xbp1_r3_coxph = as.data.frame(Uro_xbp1_r3_coxph[,c(1,3:dim(Uro_xbp1_r3)[2])])
for (i in 1:length(Uro_xbp1_r3_coxph)) {
Uro_xbp1_r3_coxph[,i] = as.numeric(Uro_xbp1_r3_coxph[,i])
}
Uro_xbp1_r3_TRiP = Uro_xbp1_r3_coxph[which(Uro_xbp1_r3_coxph$TRiP==1),]
Uro_xbp1_r3_w1118 = Uro_xbp1_r3_coxph[which(Uro_xbp1_r3_coxph$w1118==1),]
#With all TRiP lines included in analysis
Uro_xbp1_r3_TRiP.multicox = coxph(Surv(time, status) ~ R486*Uro*XR*dptA*mda, data =
Uro_xbp1_r3_TRiP)
# > summary(Uro_xbp1_r3_TRiP.multicox)
200
# Call:
# coxph(formula = Surv(time, status) ~ R486 * Uro * XR * dptA *
# mda, data = Uro_xbp1_r3_TRiP)
#
# n= 1958, number of events= 1795
#
# coef exp(coef) se(coef) z Pr(>|z|)
# R486 -0.5395 0.5830 0.1263 -4.272 1.94e-05 ***
# Uro -0.9329 0.3934 0.1339 -6.969 3.20e-12 ***
# XR -0.4015 0.6693 0.1350 -2.974 0.00294 **
# dptA -1.1148 0.3280 0.1322 -8.432 < 2e-16 ***
# mda -0.5842 0.5575 0.1317 -4.437 9.14e-06 ***
# R486:Uro 1.9280 6.8760 0.1951 9.881 < 2e-16 ***
# R486:XR 3.4525 31.5804 0.2022 17.077 < 2e-16 ***
# Uro:XR 0.1239 1.1318 0.1865 0.664 0.50654
# R486:dptA 1.0783 2.9396 0.1835 5.875 4.23e-09 ***
# Uro:dptA 1.3137 3.7199 0.1955 6.718 1.84e-11 ***
# XR:dptA NA NA 0.0000 NA NA
# R486:mda 0.3363 1.3997 0.1843 1.825 0.06805 .
# Uro:mda 0.5236 1.6882 0.1851 2.829 0.00466 **
# XR:mda NA NA 0.0000 NA NA
# dptA:mda NA NA 0.0000 NA NA
# R486:Uro:XR -1.2543 0.2853 0.2659 -4.718 2.39e-06 ***
# R486:Uro:dptA -1.7651 0.1712 0.2823 -6.253 4.03e-10 ***
# R486:XR:dptA NA NA 0.0000 NA NA
# Uro:XR:dptA NA NA 0.0000 NA NA
# R486:Uro:mda -1.5848 0.2050 0.2725 -5.816 6.01e-09 ***
# R486:XR:mda NA NA 0.0000 NA NA
# Uro:XR:mda NA NA 0.0000 NA NA
# R486:dptA:mda NA NA 0.0000 NA NA
# Uro:dptA:mda NA NA 0.0000 NA NA
# XR:dptA:mda NA NA 0.0000 NA NA
# R486:Uro:XR:dptA NA NA 0.0000 NA NA
# R486:Uro:XR:mda NA NA 0.0000 NA NA
# R486:Uro:dptA:mda NA NA 0.0000 NA NA
# R486:XR:dptA:mda NA NA 0.0000 NA NA
# Uro:XR:dptA:mda NA NA 0.0000 NA NA
# R486:Uro:XR:dptA:mda NA NA 0.0000 NA NA
# ---
# Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#
# exp(coef) exp(-coef) lower .95 upper .95
# R486 0.5830 1.71514 0.45521 0.7468
# Uro 0.3934 2.54195 0.30261 0.5114
# XR 0.6693 1.49410 0.51369 0.8720
# dptA 0.3280 3.04907 0.25310 0.4250
# mda 0.5575 1.79360 0.43071 0.7217
# R486:Uro 6.8760 0.14543 4.69080 10.0792
# R486:XR 31.5804 0.03167 21.24862 46.9358
# Uro:XR 1.1318 0.88351 0.78537 1.6312
# R486:dptA 2.9396 0.34019 2.05141 4.2122
201
# Uro:dptA 3.7199 0.26882 2.53565 5.4572
# XR:dptA NA NA NA NA
# R486:mda 1.3997 0.71443 0.97538 2.0087
# Uro:mda 1.6882 0.59236 1.17458 2.4263
# XR:mda NA NA NA NA
# dptA:mda NA NA NA NA
# R486:Uro:XR 0.2853 3.50550 0.16941 0.4804
# R486:Uro:dptA 0.1712 5.84216 0.09843 0.2977
# R486:XR:dptA NA NA NA NA
# Uro:XR:dptA NA NA NA NA
# R486:Uro:mda 0.2050 4.87842 0.12017 0.3497
# R486:XR:mda NA NA NA NA
# Uro:XR:mda NA NA NA NA
# R486:dptA:mda NA NA NA NA
# Uro:dptA:mda NA NA NA NA
# XR:dptA:mda NA NA NA NA
# R486:Uro:XR:dptA NA NA NA NA
# R486:Uro:XR:mda NA NA NA NA
# R486:Uro:dptA:mda NA NA NA NA
# R486:XR:dptA:mda NA NA NA NA
# Uro:XR:dptA:mda NA NA NA NA
# R486:Uro:XR:dptA:mda NA NA NA NA
#
# Concordance= 0.715 (se = 0.007 )
# Likelihood ratio test= 1087 on 15 df, p=<2e-16
# Wald test = 1220 on 15 df, p=<2e-16
# Score (logrank) test = 2050 on 15 df, p=<2e-16
#With mda TRiP lines included in analysis
Uro_mdaonly_r3_TRiP.multicox = coxph(Surv(time, status) ~ R486*Uro*mda, data =
Uro_xbp1_r3_TRiP[which(Uro_xbp1_r3_TRiP$XR==0 & Uro_xbp1_r3_TRiP$dptA==0),])
# > summary(Uro_mdaonly_r3_TRiP.multicox)
# Call:
# coxph(formula = Surv(time, status) ~ R486 * Uro * mda, data =
Uro_xbp1_r3_TRiP[which(Uro_xbp1_r3_TRiP$XR ==
# 0 & Uro_xbp1_r3_TRiP$dptA == 0), ])
#
# n= 974, number of events= 958
#
# coef exp(coef) se(coef) z Pr(>|z|)
# R486 -0.5715 0.5647 0.1249 -4.575 4.75e-06 ***
# Uro -0.8896 0.4108 0.1297 -6.857 7.05e-12 ***
# mda -0.6279 0.5337 0.1307 -4.806 1.54e-06 ***
# R486:Uro 1.7514 5.7624 0.1906 9.190 < 2e-16 ***
# R486:mda 0.4664 1.5943 0.1810 2.577 0.00995 **
# Uro:mda 0.5299 1.6988 0.1785 2.968 0.00300 **
# R486:Uro:mda -1.5156 0.2197 0.2639 -5.743 9.31e-09 ***
# ---
# Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#
202
# exp(coef) exp(-coef) lower .95 upper .95
# R486 0.5647 1.7709 0.4421 0.7213
# Uro 0.4108 2.4342 0.3186 0.5298
# mda 0.5337 1.8736 0.4131 0.6895
# R486:Uro 5.7624 0.1735 3.9664 8.3717
# R486:mda 1.5943 0.6272 1.1182 2.2730
# Uro:mda 1.6988 0.5887 1.1972 2.4105
# R486:Uro:mda 0.2197 4.5522 0.1310 0.3685
#
# Concordance= 0.628 (se = 0.012 )
# Likelihood ratio test= 130.5 on 7 df, p=<2e-16
# Wald test = 150.5 on 7 df, p=<2e-16
# Score (logrank) test = 161.8 on 7 df, p=<2e-16
#With Xbp1 RNAi TRiP lines included in analysis
Uro_XRonly_r3_TRiP.multicox = coxph(Surv(time, status) ~ R486*Uro*XR, data =
Uro_xbp1_r3_TRiP[which(Uro_xbp1_r3_TRiP$mda==0 & Uro_xbp1_r3_TRiP$dptA==0),])
# > summary(Uro_XRonly_r3_TRiP.multicox)
# Call:
# coxph(formula = Surv(time, status) ~ R486 * Uro * XR, data =
Uro_xbp1_r3_TRiP[which(Uro_xbp1_r3_TRiP$mda ==
# 0 & Uro_xbp1_r3_TRiP$dptA == 0), ])
#
# n= 1026, number of events= 1010
#
# coef exp(coef) se(coef) z Pr(>|z|)
# R486 -0.5919 0.5533 0.1251 -4.732 2.22e-06 ***
# Uro -0.8707 0.4187 0.1303 -6.680 2.38e-11 ***
# XR -0.4366 0.6462 0.1334 -3.272 0.00107 **
# R486:Uro 1.7843 5.9555 0.1909 9.346 < 2e-16 ***
# R486:XR 3.4104 30.2788 0.2097 16.263 < 2e-16 ***
# Uro:XR 0.1572 1.1702 0.1780 0.883 0.37724
# R486:Uro:XR -1.2030 0.3003 0.2594 -4.638 3.52e-06 ***
# ---
# Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#
# exp(coef) exp(-coef) lower .95 upper .95
# R486 0.5533 1.80749 0.4330 0.7070
# Uro 0.4187 2.38858 0.3243 0.5405
# XR 0.6462 1.54747 0.4975 0.8394
# R486:Uro 5.9555 0.16791 4.0965 8.6581
# R486:XR 30.2788 0.03303 20.0739 45.6716
# Uro:XR 1.1702 0.85453 0.8255 1.6589
# R486:Uro:XR 0.3003 3.33009 0.1806 0.4993
#
# Concordance= 0.775 (se = 0.008 )
# Likelihood ratio test= 794.9 on 7 df, p=<2e-16
# Wald test = 755 on 7 df, p=<2e-16
# Score (logrank) test = 1122 on 7 df, p=<2e-16
203
#With Xbp1 RNAi Uro TRiP lines included in analysis
Uro_XRonlyUro_r3_TRiP.multicox = coxph(Surv(time, status) ~ R486*XR, data =
Uro_xbp1_r3_TRiP[which(Uro_xbp1_r3_TRiP$Uro==1 & Uro_xbp1_r3_TRiP$mda==0 &
Uro_xbp1_r3_TRiP$dptA==0),])
# > summary(Uro_XRonlyUro_r3_TRiP.multicox)
# Call:
# coxph(formula = Surv(time, status) ~ R486 * XR, data =
Uro_xbp1_r3_TRiP[which(Uro_xbp1_r3_TRiP$Uro ==
# 1 & Uro_xbp1_r3_TRiP$mda == 0 &
Uro_xbp1_r3_TRiP$dptA ==
# 0), ])
#
# n= 547, number of events= 478
#
# coef exp(coef) se(coef) z Pr(>|z|)
# R486 1.2304 3.4224 0.1504 8.179 2.86e-16 ***
# XR -0.2567 0.7736 0.1288 -1.993 0.0462 *
# R486:XR 1.6789 5.3594 0.2054 8.174 2.98e-16 ***
# ---
# Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#
# exp(coef) exp(-coef) lower .95 upper .95
# R486 3.4224 0.2922 2.5485 4.5960
# XR 0.7736 1.2926 0.6011 0.9957
# R486:XR 5.3594 0.1866 3.5834 8.0158
#
# Concordance= 0.76 (se = 0.009 )
# Likelihood ratio test= 387.1 on 3 df, p=<2e-16
# Wald test = 376.1 on 3 df, p=<2e-16
# Score (logrank) test = 523.1 on 3 df, p=<2e-16
#With Xbp1 RNAi TRiP lines and no TRiP controls included in analysis
Uro_XRonlyNoTRiP_r3_TRiP.multicox = coxph(Surv(time, status) ~ R486*Uro, data =
Uro_xbp1_r3_TRiP[which(Uro_xbp1_r3_TRiP$XR==1),])
# > summary(Uro_XRonlyNoTRiP_r3_TRiP.multicox)
# Call:
# coxph(formula = Surv(time, status) ~ R486 * Uro, data =
Uro_xbp1_r3_TRiP[which(Uro_xbp1_r3_TRiP$XR ==
# 1), ])
#
# n= 556, number of events= 509
#
# coef exp(coef) se(coef) z Pr(>|z|)
# R486 3.3508 28.5249 0.2238 14.972 < 2e-16 ***
# Uro -0.8109 0.4445 0.1342 -6.041 1.54e-09 ***
# R486:Uro 0.6384 1.8935 0.1847 3.456 0.000547 ***
# ---
# Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#
204
# exp(coef) exp(-coef) lower .95 upper .95
# R486 28.5249 0.03506 18.3962 44.2304
# Uro 0.4445 2.24996 0.3416 0.5782
# R486:Uro 1.8935 0.52812 1.3184 2.7195
#
# Concordance= 0.788 (se = 0.007 )
# Likelihood ratio test= 628.6 on 3 df, p=<2e-16
# Wald test = 379.9 on 3 df, p=<2e-16
# Score (logrank) test = 649.7 on 3 df, p=<2e-16
#With dptA RNAi TRiP lines included in analysis
Uro_dptAonly_r3_TRiP.multicox = coxph(Surv(time, status) ~ R486*Uro*dptA, data =
Uro_xbp1_r3_TRiP[which(Uro_xbp1_r3_TRiP$mda==0 & Uro_xbp1_r3_TRiP$XR==0),])
# > summary(Uro_dptAonly_r3_TRiP.multicox)
# Call:
# coxph(formula = Surv(time, status) ~ R486 * Uro * dptA, data =
Uro_xbp1_r3_TRiP[which(Uro_xbp1_r3_TRiP$mda ==
# 0 & Uro_xbp1_r3_TRiP$XR == 0), ])
#
# n= 916, number of events= 899
#
# coef exp(coef) se(coef) z Pr(>|z|)
# R486 -0.5876 0.5556 0.1249 -4.703 2.56e-06 ***
# Uro -0.8891 0.4110 0.1297 -6.854 7.20e-12 ***
# dptA -1.0660 0.3444 0.1274 -8.369 < 2e-16 ***
# R486:Uro 1.7719 5.8818 0.1906 9.298 < 2e-16 ***
# R486:dptA 1.0146 2.7583 0.1785 5.685 1.31e-08 ***
# Uro:dptA 0.8749 2.3986 0.1839 4.757 1.96e-06 ***
# R486:Uro:dptA -1.3947 0.2479 0.2726 -5.117 3.10e-07 ***
# ---
# Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#
# exp(coef) exp(-coef) lower .95 upper .95
# R486 0.5556 1.7997 0.4350 0.7098
# Uro 0.4110 2.4331 0.3187 0.5300
# dptA 0.3444 2.9039 0.2683 0.4420
# R486:Uro 5.8818 0.1700 4.0486 8.5449
# R486:dptA 2.7583 0.3625 1.9441 3.9134
# Uro:dptA 2.3986 0.4169 1.6727 3.4395
# R486:Uro:dptA 0.2479 4.0339 0.1453 0.4229
#
# Concordance= 0.662 (se = 0.012 )
# Likelihood ratio test= 159.5 on 7 df, p=<2e-16
# Wald test = 175.4 on 7 df, p=<2e-16
# Score (logrank) test = 189.4 on 7 df, p=<2e-16
#With dptA RNAi TRiP lines included in analysis
Uro_dptAonlyUro_r3_TRiP.multicox = coxph(Surv(time, status) ~ R486*dptA, data =
Uro_xbp1_r3_TRiP[which(Uro_xbp1_r3_TRiP$Uro==1 & Uro_xbp1_r3_TRiP$mda==0 &
Uro_xbp1_r3_TRiP$XR==0),])
205
# > summary(Uro_dptAonlyUro_r3_TRiP.multicox)
# Call:
# coxph(formula = Surv(time, status) ~ R486 * dptA, data =
Uro_xbp1_r3_TRiP[which(Uro_xbp1_r3_TRiP$Uro ==
# 1 & Uro_xbp1_r3_TRiP$mda == 0 &
Uro_xbp1_r3_TRiP$XR == 0),
# ])
#
# n= 386, number of events= 353
#
# coef exp(coef) se(coef) z Pr(>|z|)
# R486 1.2276 3.4129 0.1507 8.146 3.77e-16 ***
# dptA 0.1622 1.1761 0.1442 1.124 0.26081
# R486:dptA -0.6414 0.5265 0.2152 -2.980 0.00288 **
# ---
# Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#
# exp(coef) exp(-coef) lower .95 upper .95
# R486 3.4129 0.2930 2.5401 4.5857
# dptA 1.1761 0.8503 0.8865 1.5603
# R486:dptA 0.5265 1.8992 0.3453 0.8029
#
# Concordance= 0.65 (se = 0.018 )
# Likelihood ratio test= 73.05 on 3 df, p=9e-16
# Wald test = 80.47 on 3 df, p=<2e-16
# Score (logrank) test = 87.22 on 3 df, p=<2e-16
dptA_TRiPfit = survfit(Surv(time, status) ~ dptA+R486, data =
Uro_xbp1_r3_TRiP[which(Uro_xbp1_r3_TRiP$Uro==1 & Uro_xbp1_r3_TRiP$mda==0 &
Uro_xbp1_r3_TRiP$XR==0),])
png(file=paste("diptARNAi_WholeBody_coxPH_NoTitleNoXNoYnopval_lightconf_fixMarg_newLabs_
dots.png"), units='in', height=5.08, width=7.62, res=600)
#windows(7,5)
par(mar=c(5,3,3,2)+1)
f = ggsurvplot(dptA_TRiPfit,
palette= c("black", "black", "red", "red"),
ggtheme = theme_minimal() + theme(text = element_text(family="A",size=25),
plot.title = element_blank(),#element_text(hjust = 0.5, size=24),
axis.text.x = element_text(hjust=0.5, vjust=0.5, size=25, color='black'),
#angle=90
axis.title.x = element_blank(),
axis.title.y = element_blank(),
axis.text.y = element_text(size=25, color='black'),
legend.position = "none",# Hide panel borders and remove grid lines
axis.line = element_line(colour = "black"),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border = element_blank(),
panel.background = element_blank(),
plot.margin=unit(c(.5,.5,0,0),"cm")),
206
title = "Whole-body diptA RNAi Survival",
conf.int = T R U E,
conf.int.alpha = 0.1,
#pval = paste("genotype*RNAi\npval = ",
as.character(formatC(summary(Medusa_TRiP.multicox)$coefficients[3,5], format = "e", digits = 2)),
sep=""),
#pval.coord = c(35, 0.85),
#pval.size = 7,
legend.labs = c("TRiP Ctrl AL-", "TRiP Ctrl AL+", "diptA RNAi AL-", "diptA RNAi AL+"),
break.time.by = 10,
linetype = c(1,3,1,3),#"solid", "dashed", "solid", "dashed"),
ylab = "Survival Percentage",
xlab = "Time (Days)",
axes.offset = F,
surv.scale = "percent",
legend = c(0.2, 0.2),#"right",
legend.title = "",
#font.x = c(16, "bold", "black"),
#font.y = c(16, "bold", "black"),
font.tickslab = c(25, "black"),
font.legend = c(22, "black")) + #,
guides(color = guide_legend(override.aes = list(shape = N A)))
#font.title = 18)
#f + geom_line(aes(color = group))
#f + geom_smooth(aes(color = group))
print(f)
dev.off()
#With all w1118 lines included in analysis
Uro_xbp1_r3_w1118.multicox = coxph(Surv(time, status) ~ R486*Uro*UX, data =
Uro_xbp1_r3_w1118)
# > summary(Uro_xbp1_r3_w1118.multicox)
# Call:
# coxph(formula = Surv(time, status) ~ R486 * Uro * UX, data = Uro_xbp1_r3_w1118)
#
# n= 856, number of events= 815
#
# coef exp(coef) se(coef) z Pr(>|z|)
# R486 0.03499 1.03561 0.13051 0.268 0.788620
# Uro -0.22598 0.79774 0.12661 -1.785 0.074299 .
# UX -0.40018 0.67020 0.14072 -2.844 0.004457 **
# R486:Uro 0.69521 2.00413 0.19497 3.566 0.000363 ***
# R486:UX 0.01586 1.01598 0.19724 0.080 0.935923
# Uro:UX 0.36662 1.44286 0.18947 1.935 0.052988 .
# R486:Uro:UX -0.42437 0.65418 0.28691 -1.479 0.139107
# ---
# Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#
# exp(coef) exp(-coef) lower .95 upper .95
# R486 1.0356 0.9656 0.8019 1.337
207
# Uro 0.7977 1.2535 0.6224 1.022
# UX 0.6702 1.4921 0.5087 0.883
# R486:Uro 2.0041 0.4990 1.3676 2.937
# R486:UX 1.0160 0.9843 0.6902 1.495
# Uro:UX 1.4429 0.6931 0.9953 2.092
# R486:Uro:UX 0.6542 1.5286 0.3728 1.148
#
# Concordance= 0.593 (se = 0.012 )
# Likelihood ratio test= 46.74 on 7 df, p=6e-08
# Wald test = 50.56 on 7 df, p=1e-08
# Score (logrank) test = 52.24 on 7 df, p=5e-09
##Data set from 11/9/2021 Uro-GAL4, Uro RNAi medusa paper rebuttal experiments
UroUri_mda = read.csv('UroUri_mda_deaths_11-9-2021.csv', header = T)
for (i in 1:dim(UroUri_mda)[1]) {
if (i == 1) {UroUri_mda_coxph = matrix(rep(UroUri_mda[i,], each=UroUri_mda[i,2]), nrow =
UroUri_mda[i,2], ncol = dim(UroUri_mda)[2])}
UroUri_mda_coxph = rbind(UroUri_mda_coxph, matrix(rep(UroUri_mda[i,], each=UroUri_mda[i,2]),
nrow = UroUri_mda[i,2], ncol = dim(UroUri_mda)[2]))
}
colnames(UroUri_mda_coxph) = colnames(UroUri_mda)
UroUri_mda_coxph <- dummy_cols(UroUri_mda_coxph, select_columns = 'Uro',
remove_selected_columns = T R U E)
UroUri_mda_coxph = as.data.frame(UroUri_mda_coxph[,c(1,3:dim(UroUri_mda_coxph)[2])])
for (i in 1:length(UroUri_mda_coxph)) {
UroUri_mda_coxph[,i] = as.numeric(UroUri_mda_coxph[,i])
}
#All Uro terms as alphabetical, with Uro-gal4 only controls from 11-9-2021
UroUri_mda_TRiP.multicox = coxph(Surv(time, status) ~
Uro_0*Uro_A*Uro_B*Uro_E*Uro_F*Uro_G*mda, data = UroUri_mda_coxph)
# > summary(UroUri_mda_TRiP.multicox)
# Call:
# coxph(formula = Surv(time, status) ~ Uro_0 * Uro_A * Uro_B *
# Uro_E * Uro_F * Uro_G * mda, data = UroUri_mda_coxph)
#
# n= 2002, number of events= 1976
#
# coef exp(coef) se(coef) z Pr(>|z|)
# Uro_0 -0.2557 0.7744 0.1206 -2.120 0.033975 *
# Uro_A 0.3659 1.4418 0.1484 2.466 0.013657 *
# Uro_B -0.4586 0.6322 0.1395 -3.287 0.001012 **
# Uro_E 0.6167 1.8528 0.1508 4.091 4.30e-05 ***
# Uro_F -0.6998 0.4967 0.1168 -5.993 2.06e-09 ***
# Uro_G NA NA 0.0000 NA NA
# mda -0.1603 0.8519 0.1688 -0.949 0.342405
# Uro_0:Uro_A NA NA 0.0000 NA NA
# Uro_0:Uro_B NA NA 0.0000 NA NA
# Uro_A:Uro_B NA NA 0.0000 NA NA
# Uro_0:Uro_E NA NA 0.0000 NA NA
208
# Uro_A:Uro_E NA NA 0.0000 NA NA
# Uro_B:Uro_E NA NA 0.0000 NA NA
# Uro_0:Uro_F NA NA 0.0000 NA NA
# Uro_A:Uro_F NA NA 0.0000 NA NA
# Uro_B:Uro_F NA NA 0.0000 NA NA
# Uro_E:Uro_F NA NA 0.0000 NA NA
# Uro_0:Uro_G NA NA 0.0000 NA NA
# Uro_A:Uro_G NA NA 0.0000 NA NA
# Uro_B:Uro_G NA NA 0.0000 NA NA
# Uro_E:Uro_G NA NA 0.0000 NA NA
# Uro_F:Uro_G NA NA 0.0000 NA NA
# Uro_0:mda 0.6626 1.9398 0.1927 3.438 0.000587 ***
# Uro_A:mda 0.0570 1.0587 0.2163 0.264 0.792111
# Uro_B:mda -0.2112 0.8096 0.2128 -0.992 0.321077
# Uro_E:mda -0.5541 0.5746 0.2167 -2.558 0.010540 *
# Uro_F:mda 0.2133 1.2378 0.1868 1.142 0.253511
# Uro_G:mda NA NA 0.0000 NA NA
# Uro_0:Uro_A:Uro_B NA NA 0.0000 NA NA
# Uro_0:Uro_A:Uro_E NA NA 0.0000 NA NA
# Uro_0:Uro_B:Uro_E NA NA 0.0000 NA NA
# Uro_A:Uro_B:Uro_E NA NA 0.0000 NA NA
# Uro_0:Uro_A:Uro_F NA NA 0.0000 NA NA
# Uro_0:Uro_B:Uro_F NA NA 0.0000 NA NA
# Uro_A:Uro_B:Uro_F NA NA 0.0000 NA NA
# Uro_0:Uro_E:Uro_F NA NA 0.0000 NA NA
# Uro_A:Uro_E:Uro_F NA NA 0.0000 NA NA
# Uro_B:Uro_E:Uro_F NA NA 0.0000 NA NA
# Uro_0:Uro_A:Uro_G NA NA 0.0000 NA NA
# Uro_0:Uro_B:Uro_G NA NA 0.0000 NA NA
# Uro_A:Uro_B:Uro_G NA NA 0.0000 NA NA
# Uro_0:Uro_E:Uro_G NA NA 0.0000 NA NA
# Uro_A:Uro_E:Uro_G NA NA 0.0000 NA NA
# Uro_B:Uro_E:Uro_G NA NA 0.0000 NA NA
# Uro_0:Uro_F:Uro_G NA NA 0.0000 NA NA
# Uro_A:Uro_F:Uro_G NA NA 0.0000 NA NA
# Uro_B:Uro_F:Uro_G NA NA 0.0000 NA NA
# Uro_E:Uro_F:Uro_G NA NA 0.0000 NA NA
# Uro_0:Uro_A:mda NA NA 0.0000 NA NA
# Uro_0:Uro_B:mda NA NA 0.0000 NA NA
# Uro_A:Uro_B:mda NA NA 0.0000 NA NA
# Uro_0:Uro_E:mda NA NA 0.0000 NA NA
# Uro_A:Uro_E:mda NA NA 0.0000 NA NA
# Uro_B:Uro_E:mda NA NA 0.0000 NA NA
# Uro_0:Uro_F:mda NA NA 0.0000 NA NA
# Uro_A:Uro_F:mda NA NA 0.0000 NA NA
# Uro_B:Uro_F:mda NA NA 0.0000 NA NA
# Uro_E:Uro_F:mda NA NA 0.0000 NA NA
# Uro_0:Uro_G:mda NA NA 0.0000 NA NA
# Uro_A:Uro_G:mda NA NA 0.0000 NA NA
# Uro_B:Uro_G:mda NA NA 0.0000 NA NA
# Uro_E:Uro_G:mda NA NA 0.0000 NA NA
209
# Uro_F:Uro_G:mda NA NA 0.0000 NA NA
# Uro_0:Uro_A:Uro_B:Uro_E NA NA 0.0000 NA NA
# Uro_0:Uro_A:Uro_B:Uro_F NA NA 0.0000 NA NA
# Uro_0:Uro_A:Uro_E:Uro_F NA NA 0.0000 NA NA
# Uro_0:Uro_B:Uro_E:Uro_F NA NA 0.0000 NA NA
# Uro_A:Uro_B:Uro_E:Uro_F NA NA 0.0000 NA NA
# Uro_0:Uro_A:Uro_B:Uro_G NA NA 0.0000 NA NA
# Uro_0:Uro_A:Uro_E:Uro_G NA NA 0.0000 NA NA
# Uro_0:Uro_B:Uro_E:Uro_G NA NA 0.0000 NA NA
# Uro_A:Uro_B:Uro_E:Uro_G NA NA 0.0000 NA NA
# Uro_0:Uro_A:Uro_F:Uro_G NA NA 0.0000 NA NA
# Uro_0:Uro_B:Uro_F:Uro_G NA NA 0.0000 NA NA
# Uro_A:Uro_B:Uro_F:Uro_G NA NA 0.0000 NA NA
# Uro_0:Uro_E:Uro_F:Uro_G NA NA 0.0000 NA NA
# Uro_A:Uro_E:Uro_F:Uro_G NA NA 0.0000 NA NA
# Uro_B:Uro_E:Uro_F:Uro_G NA NA 0.0000 NA NA
# Uro_0:Uro_A:Uro_B:mda NA NA 0.0000 NA NA
# Uro_0:Uro_A:Uro_E:mda NA NA 0.0000 NA NA
# Uro_0:Uro_B:Uro_E:mda NA NA 0.0000 NA NA
# Uro_A:Uro_B:Uro_E:mda NA NA 0.0000 NA NA
# Uro_0:Uro_A:Uro_F:mda NA NA 0.0000 NA NA
# Uro_0:Uro_B:Uro_F:mda NA NA 0.0000 NA NA
# Uro_A:Uro_B:Uro_F:mda NA NA 0.0000 NA NA
# Uro_0:Uro_E:Uro_F:mda NA NA 0.0000 NA NA
# Uro_A:Uro_E:Uro_F:mda NA NA 0.0000 NA NA
# Uro_B:Uro_E:Uro_F:mda NA NA 0.0000 NA NA
# Uro_0:Uro_A:Uro_G:mda NA NA 0.0000 NA NA
# Uro_0:Uro_B:Uro_G:mda NA NA 0.0000 NA NA
# Uro_A:Uro_B:Uro_G:mda NA NA 0.0000 NA NA
# Uro_0:Uro_E:Uro_G:mda NA NA 0.0000 NA NA
# Uro_A:Uro_E:Uro_G:mda NA NA 0.0000 NA NA
# Uro_B:Uro_E:Uro_G:mda NA NA 0.0000 NA NA
# Uro_0:Uro_F:Uro_G:mda NA NA 0.0000 NA NA
# Uro_A:Uro_F:Uro_G:mda NA NA 0.0000 NA NA
# Uro_B:Uro_F:Uro_G:mda NA NA 0.0000 NA NA
# Uro_E:Uro_F:Uro_G:mda NA NA 0.0000 NA NA
# Uro_0:Uro_A:Uro_B:Uro_E:Uro_F NA NA 0.0000 NA NA
# Uro_0:Uro_A:Uro_B:Uro_E:Uro_G NA NA 0.0000 NA NA
# Uro_0:Uro_A:Uro_B:Uro_F:Uro_G NA NA 0.0000 NA NA
# Uro_0:Uro_A:Uro_E:Uro_F:Uro_G NA NA 0.0000 NA NA
# Uro_0:Uro_B:Uro_E:Uro_F:Uro_G NA NA 0.0000 NA NA
# Uro_A:Uro_B:Uro_E:Uro_F:Uro_G NA NA 0.0000 NA NA
# Uro_0:Uro_A:Uro_B:Uro_E:mda NA NA 0.0000 NA NA
# Uro_0:Uro_A:Uro_B:Uro_F:mda NA NA 0.0000 NA NA
# Uro_0:Uro_A:Uro_E:Uro_F:mda NA NA 0.0000 NA NA
# Uro_0:Uro_B:Uro_E:Uro_F:mda NA NA 0.0000 NA NA
# Uro_A:Uro_B:Uro_E:Uro_F:mda NA NA 0.0000 NA NA
# Uro_0:Uro_A:Uro_B:Uro_G:mda NA NA 0.0000 NA NA
# Uro_0:Uro_A:Uro_E:Uro_G:mda NA NA 0.0000 NA NA
# Uro_0:Uro_B:Uro_E:Uro_G:mda NA NA 0.0000 NA NA
# Uro_A:Uro_B:Uro_E:Uro_G:mda NA NA 0.0000 NA NA
210
# Uro_0:Uro_A:Uro_F:Uro_G:mda NA NA 0.0000 NA NA
# Uro_0:Uro_B:Uro_F:Uro_G:mda NA NA 0.0000 NA NA
# Uro_A:Uro_B:Uro_F:Uro_G:mda NA NA 0.0000 NA NA
# Uro_0:Uro_E:Uro_F:Uro_G:mda NA NA 0.0000 NA NA
# Uro_A:Uro_E:Uro_F:Uro_G:mda NA NA 0.0000 NA NA
# Uro_B:Uro_E:Uro_F:Uro_G:mda NA NA 0.0000 NA NA
# Uro_0:Uro_A:Uro_B:Uro_E:Uro_F:Uro_G NA NA 0.0000 NA NA
# Uro_0:Uro_A:Uro_B:Uro_E:Uro_F:mda NA NA 0.0000 NA NA
# Uro_0:Uro_A:Uro_B:Uro_E:Uro_G:mda NA NA 0.0000 NA NA
# Uro_0:Uro_A:Uro_B:Uro_F:Uro_G:mda NA NA 0.0000 NA NA
# Uro_0:Uro_A:Uro_E:Uro_F:Uro_G:mda NA NA 0.0000 NA NA
# Uro_0:Uro_B:Uro_E:Uro_F:Uro_G:mda NA NA 0.0000 NA NA
# Uro_A:Uro_B:Uro_E:Uro_F:Uro_G:mda NA NA 0.0000 NA NA
# Uro_0:Uro_A:Uro_B:Uro_E:Uro_F:Uro_G:mda NA NA 0.0000 NA NA
# ---
# Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#
# exp(coef) exp(-coef) lower .95 upper .95
# Uro_0 0.7744 1.2914 0.6113 0.9808
# Uro_A 1.4418 0.6936 1.0780 1.9285
# Uro_B 0.6322 1.5818 0.4810 0.8310
# Uro_E 1.8528 0.5397 1.3788 2.4898
# Uro_F 0.4967 2.0133 0.3951 0.6244
# Uro_G NA NA NA NA
# mda 0.8519 1.1738 0.6119 1.1860
# Uro_0:Uro_A NA NA NA NA
# Uro_0:Uro_B NA NA NA NA
# Uro_A:Uro_B NA NA NA NA
# Uro_0:Uro_E NA NA NA NA
# Uro_A:Uro_E NA NA NA NA
# Uro_B:Uro_E NA NA NA NA
# Uro_0:Uro_F NA NA NA NA
# Uro_A:Uro_F NA NA NA NA
# Uro_B:Uro_F NA NA NA NA
# Uro_E:Uro_F NA NA NA NA
# Uro_0:Uro_G NA NA NA NA
# Uro_A:Uro_G NA NA NA NA
# Uro_B:Uro_G NA NA NA NA
# Uro_E:Uro_G NA NA NA NA
# Uro_F:Uro_G NA NA NA NA
# Uro_0:mda 1.9398 0.5155 1.3295 2.8301
# Uro_A:mda 1.0587 0.9446 0.6929 1.6175
# Uro_B:mda 0.8096 1.2351 0.5335 1.2287
# Uro_E:mda 0.5746 1.7404 0.3758 0.8786
# Uro_F:mda 1.2378 0.8079 0.8583 1.7851
# Uro_G:mda NA NA NA NA
# Uro_0:Uro_A:Uro_B NA NA NA NA
# Uro_0:Uro_A:Uro_E NA NA NA NA
# Uro_0:Uro_B:Uro_E NA NA NA NA
# Uro_A:Uro_B:Uro_E NA NA NA NA
# Uro_0:Uro_A:Uro_F NA NA NA NA
211
# Uro_0:Uro_B:Uro_F NA NA NA NA
# Uro_A:Uro_B:Uro_F NA NA NA NA
# Uro_0:Uro_E:Uro_F NA NA NA NA
# Uro_A:Uro_E:Uro_F NA NA NA NA
# Uro_B:Uro_E:Uro_F NA NA NA NA
# Uro_0:Uro_A:Uro_G NA NA NA NA
# Uro_0:Uro_B:Uro_G NA NA NA NA
# Uro_A:Uro_B:Uro_G NA NA NA NA
# Uro_0:Uro_E:Uro_G NA NA NA NA
# Uro_A:Uro_E:Uro_G NA NA NA NA
# Uro_B:Uro_E:Uro_G NA NA NA NA
# Uro_0:Uro_F:Uro_G NA NA NA NA
# Uro_A:Uro_F:Uro_G NA NA NA NA
# Uro_B:Uro_F:Uro_G NA NA NA NA
# Uro_E:Uro_F:Uro_G NA NA NA NA
# Uro_0:Uro_A:mda NA NA NA NA
# Uro_0:Uro_B:mda NA NA NA NA
# Uro_A:Uro_B:mda NA NA NA NA
# Uro_0:Uro_E:mda NA NA NA NA
# Uro_A:Uro_E:mda NA NA NA NA
# Uro_B:Uro_E:mda NA NA NA NA
# Uro_0:Uro_F:mda NA NA NA NA
# Uro_A:Uro_F:mda NA NA NA NA
# Uro_B:Uro_F:mda NA NA NA NA
# Uro_E:Uro_F:mda NA NA NA NA
# Uro_0:Uro_G:mda NA NA NA NA
# Uro_A:Uro_G:mda NA NA NA NA
# Uro_B:Uro_G:mda NA NA NA NA
# Uro_E:Uro_G:mda NA NA NA NA
# Uro_F:Uro_G:mda NA NA NA NA
# Uro_0:Uro_A:Uro_B:Uro_E NA NA NA NA
# Uro_0:Uro_A:Uro_B:Uro_F NA NA NA NA
# Uro_0:Uro_A:Uro_E:Uro_F NA NA NA NA
# Uro_0:Uro_B:Uro_E:Uro_F NA NA NA NA
# Uro_A:Uro_B:Uro_E:Uro_F NA NA NA NA
# Uro_0:Uro_A:Uro_B:Uro_G NA NA NA NA
# Uro_0:Uro_A:Uro_E:Uro_G NA NA NA NA
# Uro_0:Uro_B:Uro_E:Uro_G NA NA NA NA
# Uro_A:Uro_B:Uro_E:Uro_G NA NA NA NA
# Uro_0:Uro_A:Uro_F:Uro_G NA NA NA NA
# Uro_0:Uro_B:Uro_F:Uro_G NA NA NA NA
# Uro_A:Uro_B:Uro_F:Uro_G NA NA NA NA
# Uro_0:Uro_E:Uro_F:Uro_G NA NA NA NA
# Uro_A:Uro_E:Uro_F:Uro_G NA NA NA NA
# Uro_B:Uro_E:Uro_F:Uro_G NA NA NA NA
# Uro_0:Uro_A:Uro_B:mda NA NA NA NA
# Uro_0:Uro_A:Uro_E:mda NA NA NA NA
# Uro_0:Uro_B:Uro_E:mda NA NA NA NA
# Uro_A:Uro_B:Uro_E:mda NA NA NA NA
# Uro_0:Uro_A:Uro_F:mda NA NA NA NA
# Uro_0:Uro_B:Uro_F:mda NA NA NA NA
212
# Uro_A:Uro_B:Uro_F:mda NA NA NA NA
# Uro_0:Uro_E:Uro_F:mda NA NA NA NA
# Uro_A:Uro_E:Uro_F:mda NA NA NA NA
# Uro_B:Uro_E:Uro_F:mda NA NA NA NA
# Uro_0:Uro_A:Uro_G:mda NA NA NA NA
# Uro_0:Uro_B:Uro_G:mda NA NA NA NA
# Uro_A:Uro_B:Uro_G:mda NA NA NA NA
# Uro_0:Uro_E:Uro_G:mda NA NA NA NA
# Uro_A:Uro_E:Uro_G:mda NA NA NA NA
# Uro_B:Uro_E:Uro_G:mda NA NA NA NA
# Uro_0:Uro_F:Uro_G:mda NA NA NA NA
# Uro_A:Uro_F:Uro_G:mda NA NA NA NA
# Uro_B:Uro_F:Uro_G:mda NA NA NA NA
# Uro_E:Uro_F:Uro_G:mda NA NA NA NA
# Uro_0:Uro_A:Uro_B:Uro_E:Uro_F NA NA NA NA
# Uro_0:Uro_A:Uro_B:Uro_E:Uro_G NA NA NA NA
# Uro_0:Uro_A:Uro_B:Uro_F:Uro_G NA NA NA NA
# Uro_0:Uro_A:Uro_E:Uro_F:Uro_G NA NA NA NA
# Uro_0:Uro_B:Uro_E:Uro_F:Uro_G NA NA NA NA
# Uro_A:Uro_B:Uro_E:Uro_F:Uro_G NA NA NA NA
# Uro_0:Uro_A:Uro_B:Uro_E:mda NA NA NA NA
# Uro_0:Uro_A:Uro_B:Uro_F:mda NA NA NA NA
# Uro_0:Uro_A:Uro_E:Uro_F:mda NA NA NA NA
# Uro_0:Uro_B:Uro_E:Uro_F:mda NA NA NA NA
# Uro_A:Uro_B:Uro_E:Uro_F:mda NA NA NA NA
# Uro_0:Uro_A:Uro_B:Uro_G:mda NA NA NA NA
# Uro_0:Uro_A:Uro_E:Uro_G:mda NA NA NA NA
# Uro_0:Uro_B:Uro_E:Uro_G:mda NA NA NA NA
# Uro_A:Uro_B:Uro_E:Uro_G:mda NA NA NA NA
# Uro_0:Uro_A:Uro_F:Uro_G:mda NA NA NA NA
# Uro_0:Uro_B:Uro_F:Uro_G:mda NA NA NA NA
# Uro_A:Uro_B:Uro_F:Uro_G:mda NA NA NA NA
# Uro_0:Uro_E:Uro_F:Uro_G:mda NA NA NA NA
# Uro_A:Uro_E:Uro_F:Uro_G:mda NA NA NA NA
# Uro_B:Uro_E:Uro_F:Uro_G:mda NA NA NA NA
# Uro_0:Uro_A:Uro_B:Uro_E:Uro_F:Uro_G NA NA NA NA
# Uro_0:Uro_A:Uro_B:Uro_E:Uro_F:mda NA NA NA NA
# Uro_0:Uro_A:Uro_B:Uro_E:Uro_G:mda NA NA NA NA
# Uro_0:Uro_A:Uro_B:Uro_F:Uro_G:mda NA NA NA NA
# Uro_0:Uro_A:Uro_E:Uro_F:Uro_G:mda NA NA NA NA
# Uro_0:Uro_B:Uro_E:Uro_F:Uro_G:mda NA NA NA NA
# Uro_A:Uro_B:Uro_E:Uro_F:Uro_G:mda NA NA NA NA
# Uro_0:Uro_A:Uro_B:Uro_E:Uro_F:Uro_G:mda NA NA NA NA
#
# Concordance= 0.63 (se = 0.007 )
# Likelihood ratio test= 310.2 on 11 df, p=<2e-16
# Wald test = 320.5 on 11 df, p=<2e-16
# Score (logrank) test = 339.2 on 11 df, p=<2e-16
#Uro 0 terms as strings, with Uro-gal4 only controls from 11-9-2021
213
UroUri_mda_TRiP0.multicox = coxph(Surv(time, status) ~ mda, data =
UroUri_mda_coxph[which(UroUri_mda_coxph$Uro_0==1),])
# > summary(UroUri_mda_TRiP0.multicox)
# Call:
# coxph(formula = Surv(time, status) ~ mda, data =
UroUri_mda_coxph[which(UroUri_mda_coxph$Uro_0 ==
# 1), ])
#
# n= 466, number of events= 464
#
# coef exp(coef) se(coef) z Pr(>|z|)
# mda 0.50274 1.65324 0.09417 5.339 9.35e-08 ***
# ---
# Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#
# exp(coef) exp(-coef) lower .95 upper .95
# mda 1.653 0.6049 1.375 1.988
#
# Concordance= 0.59 (se = 0.014 )
# Likelihood ratio test= 28.44 on 1 df, p=1e-07
# Wald test = 28.5 on 1 df, p=9e-08
# Score (logrank) test = 29.06 on 1 df, p=7e-08
#Uro A terms as alphabetical, with Uro-gal4 only controls from 11-9-2021
UroUri_mda_TRiPA.multicox = coxph(Surv(time, status) ~ Uro_A*mda, data =
UroUri_mda_coxph[which(UroUri_mda_coxph$Uro_0==1 | UroUri_mda_coxph$Uro_A==1),])
# > summary(UroUri_mda_TRiPA.multicox)
# Call:
# coxph(formula = Surv(time, status) ~ Uro_A * mda, data =
UroUri_mda_coxph[which(UroUri_mda_coxph$Uro_0 ==
# 1 | UroUri_mda_coxph$Uro_A == 1), ])
#
# n= 708, number of events= 706
#
# coef exp(coef) se(coef) z Pr(>|z|)
# Uro_A 0.62519 1.86861 0.12979 4.817 1.46e-06 ***
# mda 0.52178 1.68503 0.09375 5.566 2.61e-08 ***
# Uro_A:mda -0.64234 0.52606 0.16455 -3.904 9.48e-05 ***
# ---
# Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#
# exp(coef) exp(-coef) lower .95 upper .95
# Uro_A 1.8686 0.5352 1.449 2.4099
# mda 1.6850 0.5935 1.402 2.0249
# Uro_A:mda 0.5261 1.9009 0.381 0.7263
#
# Concordance= 0.587 (se = 0.013 )
# Likelihood ratio test= 44.75 on 3 df, p=1e-09
# Wald test = 42.6 on 3 df, p=3e-09
214
# Score (logrank) test = 43.54 on 3 df, p=2e-09
#Uro B terms as alphabetical, with Uro-gal4 only controls from 11-9-2021
UroUri_mda_TRiPB.multicox = coxph(Surv(time, status) ~ Uro_B*mda, data =
UroUri_mda_coxph[which(UroUri_mda_coxph$Uro_0==1 | UroUri_mda_coxph$Uro_B==1),])
# > summary(UroUri_mda_TRiPB.multicox)
# Call:
# coxph(formula = Surv(time, status) ~ Uro_B * mda, data =
UroUri_mda_coxph[which(UroUri_mda_coxph$Uro_0 ==
# 1 | UroUri_mda_coxph$Uro_B == 1), ])
#
# n= 720, number of events= 709
#
# coef exp(coef) se(coef) z Pr(>|z|)
# Uro_B -0.15566 0.85585 0.11925 -1.305 0.192
# mda 0.45964 1.58350 0.09378 4.901 9.52e-07 ***
# Uro_B:mda -0.82672 0.43748 0.15984 -5.172 2.31e-07 ***
# ---
# Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#
# exp(coef) exp(-coef) lower .95 upper .95
# Uro_B 0.8558 1.1684 0.6775 1.0812
# mda 1.5835 0.6315 1.3176 1.9030
# Uro_B:mda 0.4375 2.2858 0.3198 0.5984
#
# Concordance= 0.6 (se = 0.013 )
# Likelihood ratio test= 83.7 on 3 df, p=<2e-16
# Wald test = 82.82 on 3 df, p=<2e-16
# Score (logrank) test = 86.29 on 3 df, p=<2e-16
#Uro E terms as alphabetical, with Uro-gal4 only controls from 11-9-2021
UroUri_mda_TRiPE.multicox = coxph(Surv(time, status) ~ Uro_E*mda, data =
UroUri_mda_coxph[which(UroUri_mda_coxph$Uro_0==1 | UroUri_mda_coxph$Uro_E==1),])
# > summary(UroUri_mda_TRiPE.multicox)
# Call:
# coxph(formula = Surv(time, status) ~ Uro_E * mda, data =
UroUri_mda_coxph[which(UroUri_mda_coxph$Uro_0 ==
# 1 | UroUri_mda_coxph$Uro_E == 1), ])
#
# n= 721, number of events= 718
#
# coef exp(coef) se(coef) z Pr(>|z|)
# Uro_E 0.87710 2.40391 0.13463 6.515 7.28e-11 ***
# mda 0.51479 1.67328 0.09376 5.490 4.01e-08 ***
# Uro_E:mda -1.23194 0.29173 0.16964 -7.262 3.81e-13 ***
# ---
# Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#
# exp(coef) exp(-coef) lower .95 upper .95
215
# Uro_E 2.4039 0.4160 1.8464 3.1298
# mda 1.6733 0.5976 1.3924 2.0108
# Uro_E:mda 0.2917 3.4279 0.2092 0.4068
#
# Concordance= 0.59 (se = 0.012 )
# Likelihood ratio test= 54.69 on 3 df, p=8e-12
# Wald test = 57.14 on 3 df, p=2e-12
# Score (logrank) test = 58.97 on 3 df, p=1e-12
#Uro F terms as alphabetical, with Uro-gal4 only controls from 11-9-2021
UroUri_mda_TRiPF.multicox = coxph(Surv(time, status) ~ Uro_F*mda, data =
UroUri_mda_coxph[which(UroUri_mda_coxph$Uro_0==1 | UroUri_mda_coxph$Uro_F==1),])
# > summary(UroUri_mda_TRiPF.multicox)
# Call:
# coxph(formula = Surv(time, status) ~ Uro_F * mda, data =
UroUri_mda_coxph[which(UroUri_mda_coxph$Uro_0 ==
# 1 | UroUri_mda_coxph$Uro_F == 1), ])
#
# n= 1093, number of events= 1080
#
# coef exp(coef) se(coef) z Pr(>|z|)
# Uro_F -0.46155 0.63030 0.09045 -5.103 3.35e-07 ***
# mda 0.51244 1.66935 0.09349 5.481 4.23e-08 ***
# Uro_F:mda -0.46461 0.62838 0.12359 -3.759 0.00017 ***
# ---
# Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#
# exp(coef) exp(-coef) lower .95 upper .95
# Uro_F 0.6303 1.587 0.5279 0.7526
# mda 1.6694 0.599 1.3898 2.0051
# Uro_F:mda 0.6284 1.591 0.4932 0.8006
#
# Concordance= 0.625 (se = 0.009 )
# Likelihood ratio test= 136.8 on 3 df, p=<2e-16
# Wald test = 151.3 on 3 df, p=<2e-16
# Score (logrank) test = 159.8 on 3 df, p=<2e-16
#Uro G terms as alphabetical, with Uro-gal4 only controls from 11-9-2021
UroUri_mda_TRiPG.multicox = coxph(Surv(time, status) ~ Uro_G*mda, data =
UroUri_mda_coxph[which(UroUri_mda_coxph$Uro_0==1 | UroUri_mda_coxph$Uro_G==1),])
# > summary(UroUri_mda_TRiPG.multicox)
# Call:
# coxph(formula = Surv(time, status) ~ Uro_G * mda, data =
UroUri_mda_coxph[which(UroUri_mda_coxph$Uro_0 ==
# 1 | UroUri_mda_coxph$Uro_G == 1), ])
#
# n= 624, number of events= 619
#
# coef exp(coef) se(coef) z Pr(>|z|)
216
# Uro_G 0.23180 1.26087 0.12067 1.921 0.05475 .
# mda 0.49343 1.63793 0.09385 5.258 1.46e-07 ***
# Uro_G:mda -0.54341 0.58076 0.19362 -2.807 0.00501 **
# ---
# Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#
# exp(coef) exp(-coef) lower .95 upper .95
# Uro_G 1.2609 0.7931 0.9953 1.5973
# mda 1.6379 0.6105 1.3627 1.9687
# Uro_G:mda 0.5808 1.7219 0.3974 0.8488
#
# Concordance= 0.582 (se = 0.013 )
# Likelihood ratio test= 27.71 on 3 df, p=4e-06
# Wald test = 27.96 on 3 df, p=4e-06
# Score (logrank) test = 28.4 on 3 df, p=3e-06
##Data set from 11/18/2021 Uro-GAL4, Uro RNAi medusa paper rebuttal experiments repeat 2
UroUri_mda_r2 = read.csv('UroUri_mda_deaths_11-18-2021.csv', header = T)
for (i in 1:dim(UroUri_mda_r2)[1]) {
if (i == 1) {UroUri_mda_r2_coxph = matrix(rep(UroUri_mda_r2[i,], each=UroUri_mda_r2[i,2]), nrow =
UroUri_mda_r2[i,2], ncol = dim(UroUri_mda_r2)[2])}
UroUri_mda_r2_coxph = rbind(UroUri_mda_r2_coxph, matrix(rep(UroUri_mda_r2[i,],
each=UroUri_mda_r2[i,2]), nrow = UroUri_mda_r2[i,2], ncol = dim(UroUri_mda_r2)[2]))
}
colnames(UroUri_mda_r2_coxph) = colnames(UroUri_mda_r2)
UroUri_mda_r2_coxph <- dummy_cols(UroUri_mda_r2_coxph, select_columns = 'Uro',
remove_selected_columns = T R U E)
UroUri_mda_r2_coxph = as.data.frame(UroUri_mda_r2_coxph[,c(1,3:dim(UroUri_mda_r2_coxph)[2])])
for (i in 1:length(UroUri_mda_r2_coxph)) {
UroUri_mda_r2_coxph[,i] = as.numeric(UroUri_mda_r2_coxph[,i])
}
#All Uro terms as alphabetical, with Uro-gal4 only controls from 11-18-2021
UroUri_mda_r2_TRiP.multicox = coxph(Surv(time, status) ~
Uro_0*Uro_A*Uro_C*Uro_E*Uro_F*Uro_G*mda*XR, data = UroUri_mda_r2_coxph)
# > summary(UroUri_mda_r2_TRiP.multicox)
# Call:
# coxph(formula = Surv(time, status) ~ Uro_0 * Uro_A * Uro_C *
# Uro_E * Uro_F * Uro_G * mda * XR, data = UroUri_mda_r2_coxph)
#
# n= 2476, number of events= 2326
#
# coef exp(coef) se(coef) z Pr(>|z|)
# Uro_0 0.74245 2.10108 0.11810 6.287 3.24e-10 ***
# Uro_A 0.33859 1.40296 0.11192 3.025 0.002485 **
# Uro_C 0.86086 2.36520 0.15893 5.417 6.08e-08 ***
# Uro_E 0.41254 1.51065 0.11561 3.568 0.000359 ***
# Uro_F 0.40446 1.49849 0.11588 3.490 0.000482 ***
# Uro_G NA NA 0.00000 NA NA
# mda 0.27331 1.31430 0.13872 1.970 0.048811 *
217
# XR 0.74233 2.10082 0.09412 7.887 3.10e-15 ***
# Uro_0:Uro_A NA NA 0.00000 NA NA
# Uro_0:Uro_C NA NA 0.00000 NA NA
# Uro_A:Uro_C NA NA 0.00000 NA NA
# Uro_0:Uro_E NA NA 0.00000 NA NA
# Uro_A:Uro_E NA NA 0.00000 NA NA
# Uro_C:Uro_E NA NA 0.00000 NA NA
# Uro_0:Uro_F NA NA 0.00000 NA NA
# Uro_A:Uro_F NA NA 0.00000 NA NA
# Uro_C:Uro_F NA NA 0.00000 NA NA
# Uro_E:Uro_F NA NA 0.00000 NA NA
# Uro_0:Uro_G NA NA 0.00000 NA NA
# Uro_A:Uro_G NA NA 0.00000 NA NA
# Uro_C:Uro_G NA NA 0.00000 NA NA
# Uro_E:Uro_G NA NA 0.00000 NA NA
# Uro_F:Uro_G NA NA 0.00000 NA NA
# Uro_0:mda -0.09629 0.90820 0.17356 -0.555 0.579021
# Uro_A:mda 0.15556 1.16832 0.16507 0.942 0.345997
# Uro_C:mda -0.11720 0.88941 0.21258 -0.551 0.581416
# Uro_E:mda 0.66622 1.94686 0.17162 3.882 0.000104 ***
# Uro_F:mda -0.08815 0.91563 0.17014 -0.518 0.604412
# Uro_G:mda NA NA 0.00000 NA NA
# Uro_0:XR NA NA 0.00000 NA NA
# Uro_A:XR NA NA 0.00000 NA NA
# Uro_C:XR NA NA 0.00000 NA NA
# Uro_E:XR NA NA 0.00000 NA NA
# Uro_F:XR NA NA 0.00000 NA NA
# Uro_G:XR NA NA 0.00000 NA NA
# mda:XR NA NA 0.00000 NA NA
# Uro_0:Uro_A:Uro_C NA NA 0.00000 NA NA
# Uro_0:Uro_A:Uro_E NA NA 0.00000 NA NA
# Uro_0:Uro_C:Uro_E NA NA 0.00000 NA NA
# Uro_A:Uro_C:Uro_E NA NA 0.00000 NA NA
# Uro_0:Uro_A:Uro_F NA NA 0.00000 NA NA
# Uro_0:Uro_C:Uro_F NA NA 0.00000 NA NA
# Uro_A:Uro_C:Uro_F NA NA 0.00000 NA NA
# Uro_0:Uro_E:Uro_F NA NA 0.00000 NA NA
# Uro_A:Uro_E:Uro_F NA NA 0.00000 NA NA
# Uro_C:Uro_E:Uro_F NA NA 0.00000 NA NA
# Uro_0:Uro_A:Uro_G NA NA 0.00000 NA NA
# Uro_0:Uro_C:Uro_G NA NA 0.00000 NA NA
# Uro_A:Uro_C:Uro_G NA NA 0.00000 NA NA
# Uro_0:Uro_E:Uro_G NA NA 0.00000 NA NA
# Uro_A:Uro_E:Uro_G NA NA 0.00000 NA NA
# Uro_C:Uro_E:Uro_G NA NA 0.00000 NA NA
# Uro_0:Uro_F:Uro_G NA NA 0.00000 NA NA
# Uro_A:Uro_F:Uro_G NA NA 0.00000 NA NA
# Uro_C:Uro_F:Uro_G NA NA 0.00000 NA NA
# Uro_E:Uro_F:Uro_G NA NA 0.00000 NA NA
# Uro_0:Uro_A:mda NA NA 0.00000 NA NA
# Uro_0:Uro_C:mda NA NA 0.00000 NA NA
218
# Uro_A:Uro_C:mda NA NA 0.00000 NA NA
# Uro_0:Uro_E:mda NA NA 0.00000 NA NA
# Uro_A:Uro_E:mda NA NA 0.00000 NA NA
# Uro_C:Uro_E:mda NA NA 0.00000 NA NA
# Uro_0:Uro_F:mda NA NA 0.00000 NA NA
# Uro_A:Uro_F:mda NA NA 0.00000 NA NA
# Uro_C:Uro_F:mda NA NA 0.00000 NA NA
# Uro_E:Uro_F:mda NA NA 0.00000 NA NA
# Uro_0:Uro_G:mda NA NA 0.00000 NA NA
# Uro_A:Uro_G:mda NA NA 0.00000 NA NA
# Uro_C:Uro_G:mda NA NA 0.00000 NA NA
# Uro_E:Uro_G:mda NA NA 0.00000 NA NA
# Uro_F:Uro_G:mda NA NA 0.00000 NA NA
# Uro_0:Uro_A:XR NA NA 0.00000 NA NA
# Uro_0:Uro_C:XR NA NA 0.00000 NA NA
# Uro_A:Uro_C:XR NA NA 0.00000 NA NA
# Uro_0:Uro_E:XR NA NA 0.00000 NA NA
# Uro_A:Uro_E:XR NA NA 0.00000 NA NA
# Uro_C:Uro_E:XR NA NA 0.00000 NA NA
# Uro_0:Uro_F:XR NA NA 0.00000 NA NA
# Uro_A:Uro_F:XR NA NA 0.00000 NA NA
# Uro_C:Uro_F:XR NA NA 0.00000 NA NA
# Uro_E:Uro_F:XR NA NA 0.00000 NA NA
# Uro_0:Uro_G:XR NA NA 0.00000 NA NA
# Uro_A:Uro_G:XR NA NA 0.00000 NA NA
# Uro_C:Uro_G:XR NA NA 0.00000 NA NA
# Uro_E:Uro_G:XR NA NA 0.00000 NA NA
# Uro_F:Uro_G:XR NA NA 0.00000 NA NA
# Uro_0:mda:XR NA NA 0.00000 NA NA
# Uro_A:mda:XR NA NA 0.00000 NA NA
# Uro_C:mda:XR NA NA 0.00000 NA NA
# Uro_E:mda:XR NA NA 0.00000 NA NA
# Uro_F:mda:XR NA NA 0.00000 NA NA
# Uro_G:mda:XR NA NA 0.00000 NA NA
# Uro_0:Uro_A:Uro_C:Uro_E NA NA 0.00000 NA NA
# Uro_0:Uro_A:Uro_C:Uro_F NA NA 0.00000 NA NA
# Uro_0:Uro_A:Uro_E:Uro_F NA NA 0.00000 NA NA
# Uro_0:Uro_C:Uro_E:Uro_F NA NA 0.00000 NA NA
# Uro_A:Uro_C:Uro_E:Uro_F NA NA 0.00000 NA NA
# Uro_0:Uro_A:Uro_C:Uro_G NA NA 0.00000 NA NA
# Uro_0:Uro_A:Uro_E:Uro_G NA NA 0.00000 NA NA
# Uro_0:Uro_C:Uro_E:Uro_G NA NA 0.00000 NA NA
# Uro_A:Uro_C:Uro_E:Uro_G NA NA 0.00000 NA NA
# Uro_0:Uro_A:Uro_F:Uro_G NA NA 0.00000 NA NA
# Uro_0:Uro_C:Uro_F:Uro_G NA NA 0.00000 NA NA
# Uro_A:Uro_C:Uro_F:Uro_G NA NA 0.00000 NA NA
# Uro_0:Uro_E:Uro_F:Uro_G NA NA 0.00000 NA NA
# Uro_A:Uro_E:Uro_F:Uro_G NA NA 0.00000 NA NA
# Uro_C:Uro_E:Uro_F:Uro_G NA NA 0.00000 NA NA
# Uro_0:Uro_A:Uro_C:mda NA NA 0.00000 NA NA
# Uro_0:Uro_A:Uro_E:mda NA NA 0.00000 NA NA
219
# Uro_0:Uro_C:Uro_E:mda NA NA 0.00000 NA NA
# Uro_A:Uro_C:Uro_E:mda NA NA 0.00000 NA NA
# Uro_0:Uro_A:Uro_F:mda NA NA 0.00000 NA NA
# Uro_0:Uro_C:Uro_F:mda NA NA 0.00000 NA NA
# Uro_A:Uro_C:Uro_F:mda NA NA 0.00000 NA NA
# Uro_0:Uro_E:Uro_F:mda NA NA 0.00000 NA NA
# Uro_A:Uro_E:Uro_F:mda NA NA 0.00000 NA NA
# Uro_C:Uro_E:Uro_F:mda NA NA 0.00000 NA NA
# Uro_0:Uro_A:Uro_G:mda NA NA 0.00000 NA NA
# Uro_0:Uro_C:Uro_G:mda NA NA 0.00000 NA NA
# Uro_A:Uro_C:Uro_G:mda NA NA 0.00000 NA NA
# Uro_0:Uro_E:Uro_G:mda NA NA 0.00000 NA NA
# Uro_A:Uro_E:Uro_G:mda NA NA 0.00000 NA NA
# Uro_C:Uro_E:Uro_G:mda NA NA 0.00000 NA NA
# Uro_0:Uro_F:Uro_G:mda NA NA 0.00000 NA NA
# Uro_A:Uro_F:Uro_G:mda NA NA 0.00000 NA NA
# Uro_C:Uro_F:Uro_G:mda NA NA 0.00000 NA NA
# Uro_E:Uro_F:Uro_G:mda NA NA 0.00000 NA NA
# Uro_0:Uro_A:Uro_C:XR NA NA 0.00000 NA NA
# Uro_0:Uro_A:Uro_E:XR NA NA 0.00000 NA NA
# Uro_0:Uro_C:Uro_E:XR NA NA 0.00000 NA NA
# Uro_A:Uro_C:Uro_E:XR NA NA 0.00000 NA NA
# Uro_0:Uro_A:Uro_F:XR NA NA 0.00000 NA NA
# Uro_0:Uro_C:Uro_F:XR NA NA 0.00000 NA NA
# Uro_A:Uro_C:Uro_F:XR NA NA 0.00000 NA NA
# Uro_0:Uro_E:Uro_F:XR NA NA 0.00000 NA NA
# Uro_A:Uro_E:Uro_F:XR NA NA 0.00000 NA NA
# Uro_C:Uro_E:Uro_F:XR NA NA 0.00000 NA NA
# Uro_0:Uro_A:Uro_G:XR NA NA 0.00000 NA NA
# Uro_0:Uro_C:Uro_G:XR NA NA 0.00000 NA NA
# Uro_A:Uro_C:Uro_G:XR NA NA 0.00000 NA NA
# Uro_0:Uro_E:Uro_G:XR NA NA 0.00000 NA NA
# Uro_A:Uro_E:Uro_G:XR NA NA 0.00000 NA NA
# Uro_C:Uro_E:Uro_G:XR NA NA 0.00000 NA NA
# Uro_0:Uro_F:Uro_G:XR NA NA 0.00000 NA NA
# Uro_A:Uro_F:Uro_G:XR NA NA 0.00000 NA NA
# Uro_C:Uro_F:Uro_G:XR NA NA 0.00000 NA NA
# Uro_E:Uro_F:Uro_G:XR NA NA 0.00000 NA NA
# Uro_0:Uro_A:mda:XR NA NA 0.00000 NA NA
# Uro_0:Uro_C:mda:XR NA NA 0.00000 NA NA
# Uro_A:Uro_C:mda:XR NA NA 0.00000 NA NA
# Uro_0:Uro_E:mda:XR NA NA 0.00000 NA NA
# Uro_A:Uro_E:mda:XR NA NA 0.00000 NA NA
# Uro_C:Uro_E:mda:XR NA NA 0.00000 NA NA
# Uro_0:Uro_F:mda:XR NA NA 0.00000 NA NA
# Uro_A:Uro_F:mda:XR NA NA 0.00000 NA NA
# Uro_C:Uro_F:mda:XR NA NA 0.00000 NA NA
# Uro_E:Uro_F:mda:XR NA NA 0.00000 NA NA
# Uro_0:Uro_G:mda:XR NA NA 0.00000 NA NA
# Uro_A:Uro_G:mda:XR NA NA 0.00000 NA NA
# Uro_C:Uro_G:mda:XR NA NA 0.00000 NA NA
220
# Uro_E:Uro_G:mda:XR NA NA 0.00000 NA NA
# Uro_F:Uro_G:mda:XR NA NA 0.00000 NA NA
# Uro_0:Uro_A:Uro_C:Uro_E:Uro_F NA NA 0.00000 NA NA
# Uro_0:Uro_A:Uro_C:Uro_E:Uro_G NA NA 0.00000 NA NA
# Uro_0:Uro_A:Uro_C:Uro_F:Uro_G NA NA 0.00000 NA NA
# Uro_0:Uro_A:Uro_E:Uro_F:Uro_G NA NA 0.00000 NA NA
# [ reached getOption("max.print") -- omitted 89 rows ]
# ---
# Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#
# exp(coef) exp(-coef) lower .95 upper .95
# Uro_0 2.1011 0.4759 1.6669 2.648
# Uro_A 1.4030 0.7128 1.1266 1.747
# Uro_C 2.3652 0.4228 1.7321 3.230
# Uro_E 1.5106 0.6620 1.2044 1.895
# Uro_F 1.4985 0.6673 1.1940 1.881
# Uro_G NA NA NA NA
# mda 1.3143 0.7609 1.0014 1.725
# XR 2.1008 0.4760 1.7469 2.526
# Uro_0:Uro_A NA NA NA NA
# Uro_0:Uro_C NA NA NA NA
# Uro_A:Uro_C NA NA NA NA
# Uro_0:Uro_E NA NA NA NA
# Uro_A:Uro_E NA NA NA NA
# Uro_C:Uro_E NA NA NA NA
# Uro_0:Uro_F NA NA NA NA
# Uro_A:Uro_F NA NA NA NA
# Uro_C:Uro_F NA NA NA NA
# Uro_E:Uro_F NA NA NA NA
# Uro_0:Uro_G NA NA NA NA
# Uro_A:Uro_G NA NA NA NA
# Uro_C:Uro_G NA NA NA NA
# Uro_E:Uro_G NA NA NA NA
# Uro_F:Uro_G NA NA NA NA
# Uro_0:mda 0.9082 1.1011 0.6463 1.276
# Uro_A:mda 1.1683 0.8559 0.8454 1.615
# Uro_C:mda 0.8894 1.1243 0.5863 1.349
# Uro_E:mda 1.9469 0.5136 1.3908 2.725
# Uro_F:mda 0.9156 1.0921 0.6560 1.278
# Uro_G:mda NA NA NA NA
# Uro_0:XR NA NA NA NA
# Uro_A:XR NA NA NA NA
# Uro_C:XR NA NA NA NA
# Uro_E:XR NA NA NA NA
# Uro_F:XR NA NA NA NA
# Uro_G:XR NA NA NA NA
# mda:XR NA NA NA NA
# Uro_0:Uro_A:Uro_C NA NA NA NA
# Uro_0:Uro_A:Uro_E NA NA NA NA
# Uro_0:Uro_C:Uro_E NA NA NA NA
# Uro_A:Uro_C:Uro_E NA NA NA NA
221
# Uro_0:Uro_A:Uro_F NA NA NA NA
# Uro_0:Uro_C:Uro_F NA NA NA NA
# Uro_A:Uro_C:Uro_F NA NA NA NA
# Uro_0:Uro_E:Uro_F NA NA NA NA
# Uro_A:Uro_E:Uro_F NA NA NA NA
# Uro_C:Uro_E:Uro_F NA NA NA NA
# Uro_0:Uro_A:Uro_G NA NA NA NA
# Uro_0:Uro_C:Uro_G NA NA NA NA
# Uro_A:Uro_C:Uro_G NA NA NA NA
# Uro_0:Uro_E:Uro_G NA NA NA NA
# Uro_A:Uro_E:Uro_G NA NA NA NA
# Uro_C:Uro_E:Uro_G NA NA NA NA
# Uro_0:Uro_F:Uro_G NA NA NA NA
# Uro_A:Uro_F:Uro_G NA NA NA NA
# Uro_C:Uro_F:Uro_G NA NA NA NA
# Uro_E:Uro_F:Uro_G NA NA NA NA
# Uro_0:Uro_A:mda NA NA NA NA
# Uro_0:Uro_C:mda NA NA NA NA
# Uro_A:Uro_C:mda NA NA NA NA
# Uro_0:Uro_E:mda NA NA NA NA
# Uro_A:Uro_E:mda NA NA NA NA
# Uro_C:Uro_E:mda NA NA NA NA
# Uro_0:Uro_F:mda NA NA NA NA
# Uro_A:Uro_F:mda NA NA NA NA
# Uro_C:Uro_F:mda NA NA NA NA
# Uro_E:Uro_F:mda NA NA NA NA
# Uro_0:Uro_G:mda NA NA NA NA
# Uro_A:Uro_G:mda NA NA NA NA
# Uro_C:Uro_G:mda NA NA NA NA
# Uro_E:Uro_G:mda NA NA NA NA
# Uro_F:Uro_G:mda NA NA NA NA
# Uro_0:Uro_A:XR NA NA NA NA
# Uro_0:Uro_C:XR NA NA NA NA
# Uro_A:Uro_C:XR NA NA NA NA
# Uro_0:Uro_E:XR NA NA NA NA
# Uro_A:Uro_E:XR NA NA NA NA
# Uro_C:Uro_E:XR NA NA NA NA
# Uro_0:Uro_F:XR NA NA NA NA
# Uro_A:Uro_F:XR NA NA NA NA
# Uro_C:Uro_F:XR NA NA NA NA
# Uro_E:Uro_F:XR NA NA NA NA
# Uro_0:Uro_G:XR NA NA NA NA
# Uro_A:Uro_G:XR NA NA NA NA
# Uro_C:Uro_G:XR NA NA NA NA
# Uro_E:Uro_G:XR NA NA NA NA
# Uro_F:Uro_G:XR NA NA NA NA
# Uro_0:mda:XR NA NA NA NA
# Uro_A:mda:XR NA NA NA NA
# Uro_C:mda:XR NA NA NA NA
# Uro_E:mda:XR NA NA NA NA
# Uro_F:mda:XR NA NA NA NA
222
# Uro_G:mda:XR NA NA NA NA
# Uro_0:Uro_A:Uro_C:Uro_E NA NA NA NA
# Uro_0:Uro_A:Uro_C:Uro_F NA NA NA NA
# Uro_0:Uro_A:Uro_E:Uro_F NA NA NA NA
# Uro_0:Uro_C:Uro_E:Uro_F NA NA NA NA
# Uro_A:Uro_C:Uro_E:Uro_F NA NA NA NA
# Uro_0:Uro_A:Uro_C:Uro_G NA NA NA NA
# Uro_0:Uro_A:Uro_E:Uro_G NA NA NA NA
# Uro_0:Uro_C:Uro_E:Uro_G NA NA NA NA
# Uro_A:Uro_C:Uro_E:Uro_G NA NA NA NA
# Uro_0:Uro_A:Uro_F:Uro_G NA NA NA NA
# Uro_0:Uro_C:Uro_F:Uro_G NA NA NA NA
# Uro_A:Uro_C:Uro_F:Uro_G NA NA NA NA
# Uro_0:Uro_E:Uro_F:Uro_G NA NA NA NA
# Uro_A:Uro_E:Uro_F:Uro_G NA NA NA NA
# Uro_C:Uro_E:Uro_F:Uro_G NA NA NA NA
# Uro_0:Uro_A:Uro_C:mda NA NA NA NA
# Uro_0:Uro_A:Uro_E:mda NA NA NA NA
# Uro_0:Uro_C:Uro_E:mda NA NA NA NA
# Uro_A:Uro_C:Uro_E:mda NA NA NA NA
# Uro_0:Uro_A:Uro_F:mda NA NA NA NA
# Uro_0:Uro_C:Uro_F:mda NA NA NA NA
# Uro_A:Uro_C:Uro_F:mda NA NA NA NA
# Uro_0:Uro_E:Uro_F:mda NA NA NA NA
# Uro_A:Uro_E:Uro_F:mda NA NA NA NA
# Uro_C:Uro_E:Uro_F:mda NA NA NA NA
# Uro_0:Uro_A:Uro_G:mda NA NA NA NA
# Uro_0:Uro_C:Uro_G:mda NA NA NA NA
# Uro_A:Uro_C:Uro_G:mda NA NA NA NA
# Uro_0:Uro_E:Uro_G:mda NA NA NA NA
# Uro_A:Uro_E:Uro_G:mda NA NA NA NA
# Uro_C:Uro_E:Uro_G:mda NA NA NA NA
# Uro_0:Uro_F:Uro_G:mda NA NA NA NA
# Uro_A:Uro_F:Uro_G:mda NA NA NA NA
# Uro_C:Uro_F:Uro_G:mda NA NA NA NA
# Uro_E:Uro_F:Uro_G:mda NA NA NA NA
# Uro_0:Uro_A:Uro_C:XR NA NA NA NA
# Uro_0:Uro_A:Uro_E:XR NA NA NA NA
# Uro_0:Uro_C:Uro_E:XR NA NA NA NA
# Uro_A:Uro_C:Uro_E:XR NA NA NA NA
# Uro_0:Uro_A:Uro_F:XR NA NA NA NA
# Uro_0:Uro_C:Uro_F:XR NA NA NA NA
# Uro_A:Uro_C:Uro_F:XR NA NA NA NA
# Uro_0:Uro_E:Uro_F:XR NA NA NA NA
# Uro_A:Uro_E:Uro_F:XR NA NA NA NA
# Uro_C:Uro_E:Uro_F:XR NA NA NA NA
# Uro_0:Uro_A:Uro_G:XR NA NA NA NA
# Uro_0:Uro_C:Uro_G:XR NA NA NA NA
# Uro_A:Uro_C:Uro_G:XR NA NA NA NA
# Uro_0:Uro_E:Uro_G:XR NA NA NA NA
# Uro_A:Uro_E:Uro_G:XR NA NA NA NA
223
# Uro_C:Uro_E:Uro_G:XR NA NA NA NA
# Uro_0:Uro_F:Uro_G:XR NA NA NA NA
# Uro_A:Uro_F:Uro_G:XR NA NA NA NA
# Uro_C:Uro_F:Uro_G:XR NA NA NA NA
# Uro_E:Uro_F:Uro_G:XR NA NA NA NA
# Uro_0:Uro_A:mda:XR NA NA NA NA
# Uro_0:Uro_C:mda:XR NA NA NA NA
# Uro_A:Uro_C:mda:XR NA NA NA NA
# Uro_0:Uro_E:mda:XR NA NA NA NA
# Uro_A:Uro_E:mda:XR NA NA NA NA
# Uro_C:Uro_E:mda:XR NA NA NA NA
# Uro_0:Uro_F:mda:XR NA NA NA NA
# Uro_A:Uro_F:mda:XR NA NA NA NA
# Uro_C:Uro_F:mda:XR NA NA NA NA
# Uro_E:Uro_F:mda:XR NA NA NA NA
# Uro_0:Uro_G:mda:XR NA NA NA NA
# Uro_A:Uro_G:mda:XR NA NA NA NA
# Uro_C:Uro_G:mda:XR NA NA NA NA
# Uro_E:Uro_G:mda:XR NA NA NA NA
# Uro_F:Uro_G:mda:XR NA NA NA NA
# Uro_0:Uro_A:Uro_C:Uro_E:Uro_F NA NA NA NA
# Uro_0:Uro_A:Uro_C:Uro_E:Uro_G NA NA NA NA
# Uro_0:Uro_A:Uro_C:Uro_F:Uro_G NA NA NA NA
# Uro_0:Uro_A:Uro_E:Uro_F:Uro_G NA NA NA NA
# Uro_0:Uro_C:Uro_E:Uro_F:Uro_G NA NA NA NA
# Uro_A:Uro_C:Uro_E:Uro_F:Uro_G NA NA NA NA
# Uro_0:Uro_A:Uro_C:Uro_E:mda NA NA NA NA
# Uro_0:Uro_A:Uro_C:Uro_F:mda NA NA NA NA
# Uro_0:Uro_A:Uro_E:Uro_F:mda NA NA NA NA
# Uro_0:Uro_C:Uro_E:Uro_F:mda NA NA NA NA
# Uro_A:Uro_C:Uro_E:Uro_F:mda NA NA NA NA
# Uro_0:Uro_A:Uro_C:Uro_G:mda NA NA NA NA
# Uro_0:Uro_A:Uro_E:Uro_G:mda NA NA NA NA
# Uro_0:Uro_C:Uro_E:Uro_G:mda NA NA NA NA
# Uro_A:Uro_C:Uro_E:Uro_G:mda NA NA NA NA
# Uro_0:Uro_A:Uro_F:Uro_G:mda NA NA NA NA
# Uro_0:Uro_C:Uro_F:Uro_G:mda NA NA NA NA
# Uro_A:Uro_C:Uro_F:Uro_G:mda NA NA NA NA
# Uro_0:Uro_E:Uro_F:Uro_G:mda NA NA NA NA
# Uro_A:Uro_E:Uro_F:Uro_G:mda NA NA NA NA
# Uro_C:Uro_E:Uro_F:Uro_G:mda NA NA NA NA
# Uro_0:Uro_A:Uro_C:Uro_E:XR NA NA NA NA
# Uro_0:Uro_A:Uro_C:Uro_F:XR NA NA NA NA
# Uro_0:Uro_A:Uro_E:Uro_F:XR NA NA NA NA
# Uro_0:Uro_C:Uro_E:Uro_F:XR NA NA NA NA
# Uro_A:Uro_C:Uro_E:Uro_F:XR NA NA NA NA
# Uro_0:Uro_A:Uro_C:Uro_G:XR NA NA NA NA
# Uro_0:Uro_A:Uro_E:Uro_G:XR NA NA NA NA
# Uro_0:Uro_C:Uro_E:Uro_G:XR NA NA NA NA
# Uro_A:Uro_C:Uro_E:Uro_G:XR NA NA NA NA
# Uro_0:Uro_A:Uro_F:Uro_G:XR NA NA NA NA
224
# Uro_0:Uro_C:Uro_F:Uro_G:XR NA NA NA NA
# Uro_A:Uro_C:Uro_F:Uro_G:XR NA NA NA NA
# Uro_0:Uro_E:Uro_F:Uro_G:XR NA NA NA NA
# Uro_A:Uro_E:Uro_F:Uro_G:XR NA NA NA NA
# Uro_C:Uro_E:Uro_F:Uro_G:XR NA NA NA NA
# Uro_0:Uro_A:Uro_C:mda:XR NA NA NA NA
# Uro_0:Uro_A:Uro_E:mda:XR NA NA NA NA
# Uro_0:Uro_C:Uro_E:mda:XR NA NA NA NA
# Uro_A:Uro_C:Uro_E:mda:XR NA NA NA NA
# Uro_0:Uro_A:Uro_F:mda:XR NA NA NA NA
# Uro_0:Uro_C:Uro_F:mda:XR NA NA NA NA
# Uro_A:Uro_C:Uro_F:mda:XR NA NA NA NA
# Uro_0:Uro_E:Uro_F:mda:XR NA NA NA NA
# Uro_A:Uro_E:Uro_F:mda:XR NA NA NA NA
# Uro_C:Uro_E:Uro_F:mda:XR NA NA NA NA
# Uro_0:Uro_A:Uro_G:mda:XR NA NA NA NA
# Uro_0:Uro_C:Uro_G:mda:XR NA NA NA NA
# Uro_A:Uro_C:Uro_G:mda:XR NA NA NA NA
# Uro_0:Uro_E:Uro_G:mda:XR NA NA NA NA
# Uro_A:Uro_E:Uro_G:mda:XR NA NA NA NA
# Uro_C:Uro_E:Uro_G:mda:XR NA NA NA NA
# Uro_0:Uro_F:Uro_G:mda:XR NA NA NA NA
# Uro_A:Uro_F:Uro_G:mda:XR NA NA NA NA
# Uro_C:Uro_F:Uro_G:mda:XR NA NA NA NA
# Uro_E:Uro_F:Uro_G:mda:XR NA NA NA NA
# Uro_0:Uro_A:Uro_C:Uro_E:Uro_F:Uro_G NA NA NA NA
# Uro_0:Uro_A:Uro_C:Uro_E:Uro_F:mda NA NA NA NA
# Uro_0:Uro_A:Uro_C:Uro_E:Uro_G:mda NA NA NA NA
# Uro_0:Uro_A:Uro_C:Uro_F:Uro_G:mda NA NA NA NA
# Uro_0:Uro_A:Uro_E:Uro_F:Uro_G:mda NA NA NA NA
# Uro_0:Uro_C:Uro_E:Uro_F:Uro_G:mda NA NA NA NA
# Uro_A:Uro_C:Uro_E:Uro_F:Uro_G:mda NA NA NA NA
# Uro_0:Uro_A:Uro_C:Uro_E:Uro_F:XR NA NA NA NA
# Uro_0:Uro_A:Uro_C:Uro_E:Uro_G:XR NA NA NA NA
# Uro_0:Uro_A:Uro_C:Uro_F:Uro_G:XR NA NA NA NA
# Uro_0:Uro_A:Uro_E:Uro_F:Uro_G:XR NA NA NA NA
# Uro_0:Uro_C:Uro_E:Uro_F:Uro_G:XR NA NA NA NA
# Uro_A:Uro_C:Uro_E:Uro_F:Uro_G:XR NA NA NA NA
# Uro_0:Uro_A:Uro_C:Uro_E:mda:XR NA NA NA NA
# Uro_0:Uro_A:Uro_C:Uro_F:mda:XR NA NA NA NA
# Uro_0:Uro_A:Uro_E:Uro_F:mda:XR NA NA NA NA
# Uro_0:Uro_C:Uro_E:Uro_F:mda:XR NA NA NA NA
# Uro_A:Uro_C:Uro_E:Uro_F:mda:XR NA NA NA NA
# Uro_0:Uro_A:Uro_C:Uro_G:mda:XR NA NA NA NA
# Uro_0:Uro_A:Uro_E:Uro_G:mda:XR NA NA NA NA
# Uro_0:Uro_C:Uro_E:Uro_G:mda:XR NA NA NA NA
# Uro_A:Uro_C:Uro_E:Uro_G:mda:XR NA NA NA NA
# Uro_0:Uro_A:Uro_F:Uro_G:mda:XR NA NA NA NA
# Uro_0:Uro_C:Uro_F:Uro_G:mda:XR NA NA NA NA
# Uro_A:Uro_C:Uro_F:Uro_G:mda:XR NA NA NA NA
# Uro_0:Uro_E:Uro_F:Uro_G:mda:XR NA NA NA NA
225
# Uro_A:Uro_E:Uro_F:Uro_G:mda:XR NA NA NA NA
# Uro_C:Uro_E:Uro_F:Uro_G:mda:XR NA NA NA NA
# Uro_0:Uro_A:Uro_C:Uro_E:Uro_F:Uro_G:mda NA NA NA NA
# Uro_0:Uro_A:Uro_C:Uro_E:Uro_F:Uro_G:XR NA NA NA NA
# Uro_0:Uro_A:Uro_C:Uro_E:Uro_F:mda:XR NA NA NA NA
# Uro_0:Uro_A:Uro_C:Uro_E:Uro_G:mda:XR NA NA NA NA
# [ reached getOption("max.print") -- omitted 5 rows ]
#
# Concordance= 0.6 (se = 0.007 )
# Likelihood ratio test= 277.9 on 12 df, p=<2e-16
# Wald test = 281.7 on 12 df, p=<2e-16
# Score (logrank) test = 295.5 on 12 df, p=<2e-16
#Uro A terms as alphabetical, with Uro-gal4 only controls from 11-18-2021
UroUri_mda_r2_TRiPA.multicox = coxph(Surv(time, status) ~ Uro_A*mda, data =
UroUri_mda_r2_coxph[which(UroUri_mda_r2_coxph$Uro_0==1 |
UroUri_mda_r2_coxph$Uro_A==1),])
# > summary(UroUri_mda_r2_TRiPA.multicox)
# Call:
# coxph(formula = Surv(time, status) ~ Uro_A * mda, data =
UroUri_mda_r2_coxph[which(UroUri_mda_r2_coxph$Uro_0 ==
# 1 | UroUri_mda_r2_coxph$Uro_A == 1), ])
#
# n= 940, number of events= 869
#
# coef exp(coef) se(coef) z Pr(>|z|)
# Uro_A -0.3238 0.7234 0.0981 -3.300 0.000966 ***
# mda 0.1769 1.1935 0.1044 1.694 0.090198 .
# Uro_A:mda 0.1781 1.1949 0.1379 1.291 0.196685
# ---
# Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#
# exp(coef) exp(-coef) lower .95 upper .95
# Uro_A 0.7234 1.3823 0.5969 0.8768
# mda 1.1935 0.8379 0.9727 1.4644
# Uro_A:mda 1.1949 0.8369 0.9119 1.5659
#
# Concordance= 0.533 (se = 0.012 )
# Likelihood ratio test= 29.9 on 3 df, p=1e-06
# Wald test = 29.05 on 3 df, p=2e-06
# Score (logrank) test = 29.42 on 3 df, p=2e-06
#Uro C terms as alphabetical, with Uro-gal4 only controls from 11-18-2021
UroUri_mda_r2_TRiPC.multicox = coxph(Surv(time, status) ~ Uro_C*mda, data =
UroUri_mda_r2_coxph[which(UroUri_mda_r2_coxph$Uro_0==1 |
UroUri_mda_r2_coxph$Uro_C==1),])
# > summary(UroUri_mda_r2_TRiPC.multicox)
# Call:
226
# coxph(formula = Surv(time, status) ~ Uro_C * mda, data =
UroUri_mda_r2_coxph[which(UroUri_mda_r2_coxph$Uro_0 ==
# 1 | UroUri_mda_r2_coxph$Uro_C == 1), ])
#
# n= 552, number of events= 536
#
# coef exp(coef) se(coef) z Pr(>|z|)
# Uro_C 0.10563 1.11141 0.14877 0.710 0.4777
# mda 0.18970 1.20889 0.10446 1.816 0.0694 .
# Uro_C:mda -0.02972 0.97072 0.19210 -0.155 0.8770
# ---
# Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#
# exp(coef) exp(-coef) lower .95 upper .95
# Uro_C 1.1114 0.8998 0.8303 1.488
# mda 1.2089 0.8272 0.9851 1.484
# Uro_C:mda 0.9707 1.0302 0.6662 1.415
#
# Concordance= 0.532 (se = 0.014 )
# Likelihood ratio test= 5.81 on 3 df, p=0.1
# Wald test = 5.78 on 3 df, p=0.1
# Score (logrank) test = 5.81 on 3 df, p=0.1
#Uro E terms as alphabetical, with Uro-gal4 only controls from 11-18-2021
UroUri_mda_r2_TRiPE.multicox = coxph(Surv(time, status) ~ Uro_E*mda*XR, data =
UroUri_mda_r2_coxph[which(UroUri_mda_r2_coxph$Uro_0==1 |
UroUri_mda_r2_coxph$Uro_E==1),])
# > summary(UroUri_mda_r2_TRiPE.multicox)
# Call:
# coxph(formula = Surv(time, status) ~ Uro_E * mda * XR, data =
UroUri_mda_r2_coxph[which(UroUri_mda_r2_coxph$Uro_0 ==
# 1 | UroUri_mda_r2_coxph$Uro_E == 1), ])
#
# n= 1068, number of events= 1034
#
# coef exp(coef) se(coef) z Pr(>|z|)
# Uro_E -0.32094 0.72547 0.10199 -3.147 0.00165 **
# mda 0.17685 1.19345 0.10436 1.695 0.09014 .
# XR 0.73313 2.08158 0.09592 7.643 2.12e-14 ***
# Uro_E:mda 0.75844 2.13495 0.14699 5.160 2.47e-07 ***
# Uro_E:XR NA NA 0.00000 NA NA
# mda:XR NA NA 0.00000 NA NA
# Uro_E:mda:XR NA NA 0.00000 NA NA
# ---
# Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#
# exp(coef) exp(-coef) lower .95 upper .95
# Uro_E 0.7255 1.3784 0.5940 0.886
# mda 1.1935 0.8379 0.9727 1.464
# XR 2.0816 0.4804 1.7248 2.512
227
# Uro_E:mda 2.1349 0.4684 1.6006 2.848
# Uro_E:XR NA NA NA NA
# mda:XR NA NA NA NA
# Uro_E:mda:XR NA NA NA NA
#
# Concordance= 0.586 (se = 0.012 )
# Likelihood ratio test= 101.5 on 4 df, p=<2e-16
# Wald test = 99.07 on 4 df, p=<2e-16
# Score (logrank) test = 102.5 on 4 df, p=<2e-16
#Uro E terms as alphabetical, with Uro-gal4 only controls and mda RNAi from 11-18-2021
UroUri_mda_r2_TRiPE_mdaOnly.multicox = coxph(Surv(time, status) ~ Uro_E*mda, data =
UroUri_mda_r2_coxph[which(UroUri_mda_r2_coxph$Uro_0==1 | UroUri_mda_r2_coxph$Uro_E==1 &
UroUri_mda_r2_coxph$XR==0),])
# > summary(UroUri_mda_r2_TRiPE_mdaOnly.multicox)
# Call:
# coxph(formula = Surv(time, status) ~ Uro_E * mda, data =
UroUri_mda_r2_coxph[which(UroUri_mda_r2_coxph$Uro_0 ==
# 1 | UroUri_mda_r2_coxph$Uro_E == 1 &
UroUri_mda_r2_coxph$XR ==
# 0), ])
#
# n= 801, number of events= 768
#
# coef exp(coef) se(coef) z Pr(>|z|)
# Uro_E -0.3116 0.7323 0.1022 -3.050 0.00229 **
# mda 0.1726 1.1883 0.1044 1.653 0.09832 .
# Uro_E:mda 0.7360 2.0875 0.1474 4.992 5.96e-07 ***
# ---
# Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#
# exp(coef) exp(-coef) lower .95 upper .95
# Uro_E 0.7323 1.3656 0.5994 0.8946
# mda 1.1883 0.8415 0.9685 1.4581
# Uro_E:mda 2.0875 0.4790 1.5637 2.7869
#
# Concordance= 0.59 (se = 0.013 )
# Likelihood ratio test= 76.42 on 3 df, p=<2e-16
# Wald test = 78.63 on 3 df, p=<2e-16
# Score (logrank) test = 81.65 on 3 df, p=<2e-16
#Uro E terms as alphabetical with Xbp1-RNAi, without Uro-gal4 only controls from 11-18-2021
UroUri_mda_r2_TRiPE_XRonly.multicox = coxph(Surv(time, status) ~ XR, data =
UroUri_mda_r2_coxph[which(UroUri_mda_r2_coxph$Uro_E==1 & UroUri_mda_r2_coxph$mda==0),])
# > summary(UroUri_mda_r2_TRiPE_XRonly.multicox)
# Call:
# coxph(formula = Surv(time, status) ~ XR, data =
UroUri_mda_r2_coxph[which(UroUri_mda_r2_coxph$Uro_E ==
# 1 & UroUri_mda_r2_coxph$mda == 0), ])
228
#
# n= 490, number of events= 471
#
# coef exp(coef) se(coef) z Pr(>|z|)
# XR 0.7658 2.1507 0.1002 7.643 2.13e-14 ***
# ---
# Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#
# exp(coef) exp(-coef) lower .95 upper .95
# XR 2.151 0.465 1.767 2.617
#
# Concordance= 0.569 (se = 0.015 )
# Likelihood ratio test= 59.58 on 1 df, p=1e-14
# Wald test = 58.41 on 1 df, p=2e-14
# Score (logrank) test = 60.45 on 1 df, p=8e-15
#Uro F terms as alphabetical, with Uro-gal4 only controls from 11-18-2021
UroUri_mda_r2_TRiPF.multicox = coxph(Surv(time, status) ~ Uro_F*mda, data =
UroUri_mda_r2_coxph[which(UroUri_mda_r2_coxph$Uro_0==1 |
UroUri_mda_r2_coxph$Uro_F==1),])
# > summary(UroUri_mda_r2_TRiPF.multicox)
# Call:
# coxph(formula = Surv(time, status) ~ Uro_F * mda, data =
UroUri_mda_r2_coxph[which(UroUri_mda_r2_coxph$Uro_0 ==
# 1 | UroUri_mda_r2_coxph$Uro_F == 1), ])
#
# n= 818, number of events= 780
#
# coef exp(coef) se(coef) z Pr(>|z|)
# Uro_F -0.358772 0.698534 0.101957 -3.519 0.000433 ***
# mda 0.189041 1.208090 0.104392 1.811 0.070161 .
# Uro_F:mda 0.004284 1.004293 0.143928 0.030 0.976257
# ---
# Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#
# exp(coef) exp(-coef) lower .95 upper .95
# Uro_F 0.6985 1.4316 0.5720 0.853
# mda 1.2081 0.8278 0.9846 1.482
# Uro_F:mda 1.0043 0.9957 0.7574 1.332
#
# Concordance= 0.578 (se = 0.013 )
# Likelihood ratio test= 30.75 on 3 df, p=1e-06
# Wald test = 31.01 on 3 df, p=8e-07
# Score (logrank) test = 31.49 on 3 df, p=7e-07
#Uro G terms as alphabetical, with Uro-gal4 only controls from 11-18-2021
UroUri_mda_r2_TRiPG.multicox = coxph(Surv(time, status) ~ Uro_G*mda, data =
UroUri_mda_r2_coxph[which(UroUri_mda_r2_coxph$Uro_0==1 |
UroUri_mda_r2_coxph$Uro_G==1),])
229
# > summary(UroUri_mda_r2_TRiPG.multicox)
# Call:
# coxph(formula = Surv(time, status) ~ Uro_G * mda, data =
UroUri_mda_r2_coxph[which(UroUri_mda_r2_coxph$Uro_0 ==
# 1 | UroUri_mda_r2_coxph$Uro_G == 1), ])
#
# n= 630, number of events= 579
#
# coef exp(coef) se(coef) z Pr(>|z|)
# Uro_G -0.74777 0.47342 0.11897 -6.285 3.27e-10 ***
# mda 0.19854 1.21962 0.10445 1.901 0.0573 .
# Uro_G:mda 0.06934 1.07181 0.17376 0.399 0.6898
# ---
# Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#
# exp(coef) exp(-coef) lower .95 upper .95
# Uro_G 0.4734 2.1123 0.3750 0.5977
# mda 1.2196 0.8199 0.9938 1.4967
# Uro_G:mda 1.0718 0.9330 0.7625 1.5067
#
# Concordance= 0.63 (se = 0.013 )
# Likelihood ratio test= 79.31 on 3 df, p=<2e-16
# Wald test = 75.7 on 3 df, p=3e-16
# Score (logrank) test = 79.34 on 3 df, p=<2e-16
##Data set from 11/30/2021 Uro-GAL4, Uro RNAi medusa paper rebuttal experiments repeat 3
UroUri_mda_r3 = read.csv('UroUri_mda_deaths_11-30-2021.csv', header = T)
for (i in 1:dim(UroUri_mda_r3)[1]) {
if (i == 1) {UroUri_mda_r3_coxph = matrix(rep(UroUri_mda_r3[i,], each=UroUri_mda_r3[i,2]), nrow =
UroUri_mda_r3[i,2], ncol = dim(UroUri_mda_r3)[2])}
UroUri_mda_r3_coxph = rbind(UroUri_mda_r3_coxph, matrix(rep(UroUri_mda_r3[i,],
each=UroUri_mda_r3[i,2]), nrow = UroUri_mda_r3[i,2], ncol = dim(UroUri_mda_r3)[2]))
}
colnames(UroUri_mda_r3_coxph) = colnames(UroUri_mda_r3)
UroUri_mda_r3_coxph <- dummy_cols(UroUri_mda_r3_coxph, select_columns = 'Uro',
remove_selected_columns = T R U E)
UroUri_mda_r3_coxph = as.data.frame(UroUri_mda_r3_coxph[,c(1,3:dim(UroUri_mda_r3_coxph)[2])])
for (i in 1:length(UroUri_mda_r3_coxph)) {
UroUri_mda_r3_coxph[,i] = as.numeric(UroUri_mda_r3_coxph[,i])
}
#All Uro terms as alphabetical, with Uro-gal4 only controls from 11-30-2021
UroUri_mda_r3_TRiP.multicox = coxph(Surv(time, status) ~
Uro_0*Uro_A*Uro_C*Uro_E*Uro_F*XR*mda, data = UroUri_mda_r3_coxph)
# > summary(UroUri_mda_r3_TRiP.multicox)
# Call:
# coxph(formula = Surv(time, status) ~ Uro_0 * Uro_A * Uro_C *
# Uro_E * Uro_F * XR * mda, data = UroUri_mda_r3_coxph)
#
# n= 2741, number of events= 1713
230
#
# coef exp(coef) se(coef) z Pr(>|z|)
# Uro_0 1.11546 3.05097 0.12993 8.585 < 2e-16 ***
# Uro_A 0.97574 2.65313 0.12856 7.590 3.20e-14 ***
# Uro_C -0.02931 0.97112 0.27010 -0.108 0.9136
# Uro_E 1.05471 2.87113 0.09986 10.562 < 2e-16 ***
# Uro_F NA NA 0.00000 NA NA
# XR -0.08812 0.91565 0.12588 -0.700 0.4839
# mda 0.63102 1.87952 0.10948 5.764 8.23e-09 ***
# Uro_0:Uro_A NA NA 0.00000 NA NA
# Uro_0:Uro_C NA NA 0.00000 NA NA
# Uro_A:Uro_C NA NA 0.00000 NA NA
# Uro_0:Uro_E NA NA 0.00000 NA NA
# Uro_A:Uro_E NA NA 0.00000 NA NA
# Uro_C:Uro_E NA NA 0.00000 NA NA
# Uro_0:Uro_F NA NA 0.00000 NA NA
# Uro_A:Uro_F NA NA 0.00000 NA NA
# Uro_C:Uro_F NA NA 0.00000 NA NA
# Uro_E:Uro_F NA NA 0.00000 NA NA
# Uro_0:XR -0.17649 0.83820 0.20161 -0.875 0.3813
# Uro_A:XR -0.23193 0.79301 0.17724 -1.309 0.1907
# Uro_C:XR 0.30820 1.36098 0.29904 1.031 0.3027
# Uro_E:XR NA NA 0.00000 NA NA
# Uro_F:XR NA NA 0.00000 NA NA
# Uro_0:mda -1.08993 0.33624 0.18196 -5.990 2.10e-09 ***
# Uro_A:mda -1.29035 0.27517 0.17286 -7.465 8.35e-14 ***
# Uro_C:mda -0.85194 0.42659 0.38121 -2.235 0.0254 *
# Uro_E:mda -1.29145 0.27487 0.14673 -8.802 < 2e-16 ***
# Uro_F:mda NA NA 0.00000 NA NA
# XR:mda NA NA 0.00000 NA NA
# Uro_0:Uro_A:Uro_C NA NA 0.00000 NA NA
# Uro_0:Uro_A:Uro_E NA NA 0.00000 NA NA
# Uro_0:Uro_C:Uro_E NA NA 0.00000 NA NA
# Uro_A:Uro_C:Uro_E NA NA 0.00000 NA NA
# Uro_0:Uro_A:Uro_F NA NA 0.00000 NA NA
# Uro_0:Uro_C:Uro_F NA NA 0.00000 NA NA
# Uro_A:Uro_C:Uro_F NA NA 0.00000 NA NA
# Uro_0:Uro_E:Uro_F NA NA 0.00000 NA NA
# Uro_A:Uro_E:Uro_F NA NA 0.00000 NA NA
# Uro_C:Uro_E:Uro_F NA NA 0.00000 NA NA
# Uro_0:Uro_A:XR NA NA 0.00000 NA NA
# Uro_0:Uro_C:XR NA NA 0.00000 NA NA
# Uro_A:Uro_C:XR NA NA 0.00000 NA NA
# Uro_0:Uro_E:XR NA NA 0.00000 NA NA
# Uro_A:Uro_E:XR NA NA 0.00000 NA NA
# Uro_C:Uro_E:XR NA NA 0.00000 NA NA
# Uro_0:Uro_F:XR NA NA 0.00000 NA NA
# Uro_A:Uro_F:XR NA NA 0.00000 NA NA
# Uro_C:Uro_F:XR NA NA 0.00000 NA NA
# Uro_E:Uro_F:XR NA NA 0.00000 NA NA
# Uro_0:Uro_A:mda NA NA 0.00000 NA NA
231
# Uro_0:Uro_C:mda NA NA 0.00000 NA NA
# Uro_A:Uro_C:mda NA NA 0.00000 NA NA
# Uro_0:Uro_E:mda NA NA 0.00000 NA NA
# Uro_A:Uro_E:mda NA NA 0.00000 NA NA
# Uro_C:Uro_E:mda NA NA 0.00000 NA NA
# Uro_0:Uro_F:mda NA NA 0.00000 NA NA
# Uro_A:Uro_F:mda NA NA 0.00000 NA NA
# Uro_C:Uro_F:mda NA NA 0.00000 NA NA
# Uro_E:Uro_F:mda NA NA 0.00000 NA NA
# Uro_0:XR:mda NA NA 0.00000 NA NA
# Uro_A:XR:mda NA NA 0.00000 NA NA
# Uro_C:XR:mda NA NA 0.00000 NA NA
# Uro_E:XR:mda NA NA 0.00000 NA NA
# Uro_F:XR:mda NA NA 0.00000 NA NA
# Uro_0:Uro_A:Uro_C:Uro_E NA NA 0.00000 NA NA
# Uro_0:Uro_A:Uro_C:Uro_F NA NA 0.00000 NA NA
# Uro_0:Uro_A:Uro_E:Uro_F NA NA 0.00000 NA NA
# Uro_0:Uro_C:Uro_E:Uro_F NA NA 0.00000 NA NA
# Uro_A:Uro_C:Uro_E:Uro_F NA NA 0.00000 NA NA
# Uro_0:Uro_A:Uro_C:XR NA NA 0.00000 NA NA
# Uro_0:Uro_A:Uro_E:XR NA NA 0.00000 NA NA
# Uro_0:Uro_C:Uro_E:XR NA NA 0.00000 NA NA
# Uro_A:Uro_C:Uro_E:XR NA NA 0.00000 NA NA
# Uro_0:Uro_A:Uro_F:XR NA NA 0.00000 NA NA
# Uro_0:Uro_C:Uro_F:XR NA NA 0.00000 NA NA
# Uro_A:Uro_C:Uro_F:XR NA NA 0.00000 NA NA
# Uro_0:Uro_E:Uro_F:XR NA NA 0.00000 NA NA
# Uro_A:Uro_E:Uro_F:XR NA NA 0.00000 NA NA
# Uro_C:Uro_E:Uro_F:XR NA NA 0.00000 NA NA
# Uro_0:Uro_A:Uro_C:mda NA NA 0.00000 NA NA
# Uro_0:Uro_A:Uro_E:mda NA NA 0.00000 NA NA
# Uro_0:Uro_C:Uro_E:mda NA NA 0.00000 NA NA
# Uro_A:Uro_C:Uro_E:mda NA NA 0.00000 NA NA
# Uro_0:Uro_A:Uro_F:mda NA NA 0.00000 NA NA
# Uro_0:Uro_C:Uro_F:mda NA NA 0.00000 NA NA
# Uro_A:Uro_C:Uro_F:mda NA NA 0.00000 NA NA
# Uro_0:Uro_E:Uro_F:mda NA NA 0.00000 NA NA
# Uro_A:Uro_E:Uro_F:mda NA NA 0.00000 NA NA
# Uro_C:Uro_E:Uro_F:mda NA NA 0.00000 NA NA
# Uro_0:Uro_A:XR:mda NA NA 0.00000 NA NA
# Uro_0:Uro_C:XR:mda NA NA 0.00000 NA NA
# Uro_A:Uro_C:XR:mda NA NA 0.00000 NA NA
# Uro_0:Uro_E:XR:mda NA NA 0.00000 NA NA
# Uro_A:Uro_E:XR:mda NA NA 0.00000 NA NA
# Uro_C:Uro_E:XR:mda NA NA 0.00000 NA NA
# Uro_0:Uro_F:XR:mda NA NA 0.00000 NA NA
# Uro_A:Uro_F:XR:mda NA NA 0.00000 NA NA
# Uro_C:Uro_F:XR:mda NA NA 0.00000 NA NA
# Uro_E:Uro_F:XR:mda NA NA 0.00000 NA NA
# Uro_0:Uro_A:Uro_C:Uro_E:Uro_F NA NA 0.00000 NA NA
# Uro_0:Uro_A:Uro_C:Uro_E:XR NA NA 0.00000 NA NA
232
# Uro_0:Uro_A:Uro_C:Uro_F:XR NA NA 0.00000 NA NA
# Uro_0:Uro_A:Uro_E:Uro_F:XR NA NA 0.00000 NA NA
# Uro_0:Uro_C:Uro_E:Uro_F:XR NA NA 0.00000 NA NA
# Uro_A:Uro_C:Uro_E:Uro_F:XR NA NA 0.00000 NA NA
# Uro_0:Uro_A:Uro_C:Uro_E:mda NA NA 0.00000 NA NA
# Uro_0:Uro_A:Uro_C:Uro_F:mda NA NA 0.00000 NA NA
# Uro_0:Uro_A:Uro_E:Uro_F:mda NA NA 0.00000 NA NA
# Uro_0:Uro_C:Uro_E:Uro_F:mda NA NA 0.00000 NA NA
# Uro_A:Uro_C:Uro_E:Uro_F:mda NA NA 0.00000 NA NA
# Uro_0:Uro_A:Uro_C:XR:mda NA NA 0.00000 NA NA
# Uro_0:Uro_A:Uro_E:XR:mda NA NA 0.00000 NA NA
# Uro_0:Uro_C:Uro_E:XR:mda NA NA 0.00000 NA NA
# Uro_A:Uro_C:Uro_E:XR:mda NA NA 0.00000 NA NA
# Uro_0:Uro_A:Uro_F:XR:mda NA NA 0.00000 NA NA
# Uro_0:Uro_C:Uro_F:XR:mda NA NA 0.00000 NA NA
# Uro_A:Uro_C:Uro_F:XR:mda NA NA 0.00000 NA NA
# Uro_0:Uro_E:Uro_F:XR:mda NA NA 0.00000 NA NA
# Uro_A:Uro_E:Uro_F:XR:mda NA NA 0.00000 NA NA
# Uro_C:Uro_E:Uro_F:XR:mda NA NA 0.00000 NA NA
# Uro_0:Uro_A:Uro_C:Uro_E:Uro_F:XR NA NA 0.00000 NA NA
# Uro_0:Uro_A:Uro_C:Uro_E:Uro_F:mda NA NA 0.00000 NA NA
# Uro_0:Uro_A:Uro_C:Uro_E:XR:mda NA NA 0.00000 NA NA
# Uro_0:Uro_A:Uro_C:Uro_F:XR:mda NA NA 0.00000 NA NA
# Uro_0:Uro_A:Uro_E:Uro_F:XR:mda NA NA 0.00000 NA NA
# Uro_0:Uro_C:Uro_E:Uro_F:XR:mda NA NA 0.00000 NA NA
# Uro_A:Uro_C:Uro_E:Uro_F:XR:mda NA NA 0.00000 NA NA
# Uro_0:Uro_A:Uro_C:Uro_E:Uro_F:XR:mda NA NA 0.00000 NA NA
# ---
# Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#
# exp(coef) exp(-coef) lower .95 upper .95
# Uro_0 3.0510 0.3278 2.3650 3.9358
# Uro_A 2.6531 0.3769 2.0622 3.4134
# Uro_C 0.9711 1.0297 0.5720 1.6489
# Uro_E 2.8711 0.3483 2.3608 3.4918
# Uro_F NA NA NA NA
# XR 0.9157 1.0921 0.7155 1.1719
# mda 1.8795 0.5320 1.5166 2.3294
# Uro_0:Uro_A NA NA NA NA
# Uro_0:Uro_C NA NA NA NA
# Uro_A:Uro_C NA NA NA NA
# Uro_0:Uro_E NA NA NA NA
# Uro_A:Uro_E NA NA NA NA
# Uro_C:Uro_E NA NA NA NA
# Uro_0:Uro_F NA NA NA NA
# Uro_A:Uro_F NA NA NA NA
# Uro_C:Uro_F NA NA NA NA
# Uro_E:Uro_F NA NA NA NA
# Uro_0:XR 0.8382 1.1930 0.5646 1.2444
# Uro_A:XR 0.7930 1.2610 0.5603 1.1224
# Uro_C:XR 1.3610 0.7348 0.7574 2.4456
233
# Uro_E:XR NA NA NA NA
# Uro_F:XR NA NA NA NA
# Uro_0:mda 0.3362 2.9741 0.2354 0.4803
# Uro_A:mda 0.2752 3.6341 0.1961 0.3861
# Uro_C:mda 0.4266 2.3442 0.2021 0.9005
# Uro_E:mda 0.2749 3.6380 0.2062 0.3665
# Uro_F:mda NA NA NA NA
# XR:mda NA NA NA NA
# Uro_0:Uro_A:Uro_C NA NA NA NA
# Uro_0:Uro_A:Uro_E NA NA NA NA
# Uro_0:Uro_C:Uro_E NA NA NA NA
# Uro_A:Uro_C:Uro_E NA NA NA NA
# Uro_0:Uro_A:Uro_F NA NA NA NA
# Uro_0:Uro_C:Uro_F NA NA NA NA
# Uro_A:Uro_C:Uro_F NA NA NA NA
# Uro_0:Uro_E:Uro_F NA NA NA NA
# Uro_A:Uro_E:Uro_F NA NA NA NA
# Uro_C:Uro_E:Uro_F NA NA NA NA
# Uro_0:Uro_A:XR NA NA NA NA
# Uro_0:Uro_C:XR NA NA NA NA
# Uro_A:Uro_C:XR NA NA NA NA
# Uro_0:Uro_E:XR NA NA NA NA
# Uro_A:Uro_E:XR NA NA NA NA
# Uro_C:Uro_E:XR NA NA NA NA
# Uro_0:Uro_F:XR NA NA NA NA
# Uro_A:Uro_F:XR NA NA NA NA
# Uro_C:Uro_F:XR NA NA NA NA
# Uro_E:Uro_F:XR NA NA NA NA
# Uro_0:Uro_A:mda NA NA NA NA
# Uro_0:Uro_C:mda NA NA NA NA
# Uro_A:Uro_C:mda NA NA NA NA
# Uro_0:Uro_E:mda NA NA NA NA
# Uro_A:Uro_E:mda NA NA NA NA
# Uro_C:Uro_E:mda NA NA NA NA
# Uro_0:Uro_F:mda NA NA NA NA
# Uro_A:Uro_F:mda NA NA NA NA
# Uro_C:Uro_F:mda NA NA NA NA
# Uro_E:Uro_F:mda NA NA NA NA
# Uro_0:XR:mda NA NA NA NA
# Uro_A:XR:mda NA NA NA NA
# Uro_C:XR:mda NA NA NA NA
# Uro_E:XR:mda NA NA NA NA
# Uro_F:XR:mda NA NA NA NA
# Uro_0:Uro_A:Uro_C:Uro_E NA NA NA NA
# Uro_0:Uro_A:Uro_C:Uro_F NA NA NA NA
# Uro_0:Uro_A:Uro_E:Uro_F NA NA NA NA
# Uro_0:Uro_C:Uro_E:Uro_F NA NA NA NA
# Uro_A:Uro_C:Uro_E:Uro_F NA NA NA NA
# Uro_0:Uro_A:Uro_C:XR NA NA NA NA
# Uro_0:Uro_A:Uro_E:XR NA NA NA NA
# Uro_0:Uro_C:Uro_E:XR NA NA NA NA
234
# Uro_A:Uro_C:Uro_E:XR NA NA NA NA
# Uro_0:Uro_A:Uro_F:XR NA NA NA NA
# Uro_0:Uro_C:Uro_F:XR NA NA NA NA
# Uro_A:Uro_C:Uro_F:XR NA NA NA NA
# Uro_0:Uro_E:Uro_F:XR NA NA NA NA
# Uro_A:Uro_E:Uro_F:XR NA NA NA NA
# Uro_C:Uro_E:Uro_F:XR NA NA NA NA
# Uro_0:Uro_A:Uro_C:mda NA NA NA NA
# Uro_0:Uro_A:Uro_E:mda NA NA NA NA
# Uro_0:Uro_C:Uro_E:mda NA NA NA NA
# Uro_A:Uro_C:Uro_E:mda NA NA NA NA
# Uro_0:Uro_A:Uro_F:mda NA NA NA NA
# Uro_0:Uro_C:Uro_F:mda NA NA NA NA
# Uro_A:Uro_C:Uro_F:mda NA NA NA NA
# Uro_0:Uro_E:Uro_F:mda NA NA NA NA
# Uro_A:Uro_E:Uro_F:mda NA NA NA NA
# Uro_C:Uro_E:Uro_F:mda NA NA NA NA
# Uro_0:Uro_A:XR:mda NA NA NA NA
# Uro_0:Uro_C:XR:mda NA NA NA NA
# Uro_A:Uro_C:XR:mda NA NA NA NA
# Uro_0:Uro_E:XR:mda NA NA NA NA
# Uro_A:Uro_E:XR:mda NA NA NA NA
# Uro_C:Uro_E:XR:mda NA NA NA NA
# Uro_0:Uro_F:XR:mda NA NA NA NA
# Uro_A:Uro_F:XR:mda NA NA NA NA
# Uro_C:Uro_F:XR:mda NA NA NA NA
# Uro_E:Uro_F:XR:mda NA NA NA NA
# Uro_0:Uro_A:Uro_C:Uro_E:Uro_F NA NA NA NA
# Uro_0:Uro_A:Uro_C:Uro_E:XR NA NA NA NA
# Uro_0:Uro_A:Uro_C:Uro_F:XR NA NA NA NA
# Uro_0:Uro_A:Uro_E:Uro_F:XR NA NA NA NA
# Uro_0:Uro_C:Uro_E:Uro_F:XR NA NA NA NA
# Uro_A:Uro_C:Uro_E:Uro_F:XR NA NA NA NA
# Uro_0:Uro_A:Uro_C:Uro_E:mda NA NA NA NA
# Uro_0:Uro_A:Uro_C:Uro_F:mda NA NA NA NA
# Uro_0:Uro_A:Uro_E:Uro_F:mda NA NA NA NA
# Uro_0:Uro_C:Uro_E:Uro_F:mda NA NA NA NA
# Uro_A:Uro_C:Uro_E:Uro_F:mda NA NA NA NA
# Uro_0:Uro_A:Uro_C:XR:mda NA NA NA NA
# Uro_0:Uro_A:Uro_E:XR:mda NA NA NA NA
# Uro_0:Uro_C:Uro_E:XR:mda NA NA NA NA
# Uro_A:Uro_C:Uro_E:XR:mda NA NA NA NA
# Uro_0:Uro_A:Uro_F:XR:mda NA NA NA NA
# Uro_0:Uro_C:Uro_F:XR:mda NA NA NA NA
# Uro_A:Uro_C:Uro_F:XR:mda NA NA NA NA
# Uro_0:Uro_E:Uro_F:XR:mda NA NA NA NA
# Uro_A:Uro_E:Uro_F:XR:mda NA NA NA NA
# Uro_C:Uro_E:Uro_F:XR:mda NA NA NA NA
# Uro_0:Uro_A:Uro_C:Uro_E:Uro_F:XR NA NA NA NA
# Uro_0:Uro_A:Uro_C:Uro_E:Uro_F:mda NA NA NA NA
# Uro_0:Uro_A:Uro_C:Uro_E:XR:mda NA NA NA NA
235
# Uro_0:Uro_A:Uro_C:Uro_F:XR:mda NA NA NA NA
# Uro_0:Uro_A:Uro_E:Uro_F:XR:mda NA NA NA NA
# Uro_0:Uro_C:Uro_E:Uro_F:XR:mda NA NA NA NA
# Uro_A:Uro_C:Uro_E:Uro_F:XR:mda NA NA NA NA
# Uro_0:Uro_A:Uro_C:Uro_E:Uro_F:XR:mda NA NA NA NA
#
# Concordance= 0.624 (se = 0.007 )
# Likelihood ratio test= 231.2 on 13 df, p=<2e-16
# Wald test = 225.9 on 13 df, p=<2e-16
# Score (logrank) test = 238.3 on 13 df, p=<2e-16
#Uro A terms as alphabetical, with Uro-gal4 only controls from 11-30-2021
UroUri_mda_r3_TRiPA.multicox = coxph(Surv(time, status) ~ Uro_A*mda*XR, data =
UroUri_mda_r3_coxph[which(UroUri_mda_r3_coxph$Uro_0==1 |
UroUri_mda_r3_coxph$Uro_A==1),])
# > summary(UroUri_mda_r3_TRiPA.multicox)
# Call:
# coxph(formula = Surv(time, status) ~ Uro_A * mda * XR, data =
UroUri_mda_r3_coxph[which(UroUri_mda_r3_coxph$Uro_0 ==
# 1 | UroUri_mda_r3_coxph$Uro_A == 1), ])
#
# n= 997, number of events= 675
#
# coef exp(coef) se(coef) z Pr(>|z|)
# Uro_A -0.13704 0.87194 0.14404 -0.951 0.34140
# mda -0.45424 0.63493 0.14536 -3.125 0.00178 **
# XR -0.26077 0.77046 0.15761 -1.654 0.09803 .
# Uro_A:mda -0.20171 0.81733 0.19721 -1.023 0.30640
# Uro_A:XR -0.05799 0.94366 0.20100 -0.288 0.77297
# mda:XR NA NA 0.00000 NA NA
# Uro_A:mda:XR NA NA 0.00000 NA NA
# ---
# Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#
# exp(coef) exp(-coef) lower .95 upper .95
# Uro_A 0.8719 1.147 0.6575 1.1563
# mda 0.6349 1.575 0.4775 0.8442
# XR 0.7705 1.298 0.5657 1.0493
# Uro_A:mda 0.8173 1.223 0.5553 1.2030
# Uro_A:XR 0.9437 1.060 0.6364 1.3993
# mda:XR NA NA NA NA
# Uro_A:mda:XR NA NA NA NA
#
# Concordance= 0.591 (se = 0.012 )
# Likelihood ratio test= 44.2 on 5 df, p=2e-08
# Wald test = 44 on 5 df, p=2e-08
# Score (logrank) test = 45.22 on 5 df, p=1e-08
#Uro A terms as alphabetical, with Uro-gal4 only controls and mda RNAi only from 11-30-2021
236
UroUri_mda_r3_TRiPA_mdaOnly.multicox = coxph(Surv(time, status) ~ Uro_A*mda, data =
UroUri_mda_r3_coxph[which(UroUri_mda_r3_coxph$Uro_0==1 | UroUri_mda_r3_coxph$Uro_A==1
& UroUri_mda_r3_coxph$XR==0),])
# > summary(UroUri_mda_r3_TRiPA_mdaOnly.multicox)
# Call:
# coxph(formula = Surv(time, status) ~ Uro_A * mda, data =
UroUri_mda_r3_coxph[which(UroUri_mda_r3_coxph$Uro_0 ==
# 1 | UroUri_mda_r3_coxph$Uro_A == 1 &
UroUri_mda_r3_coxph$XR ==
# 0), ])
#
# n= 713, number of events= 489
#
# coef exp(coef) se(coef) z Pr(>|z|)
# Uro_A -0.02043 0.97978 0.12755 -0.160 0.87274
# mda -0.34092 0.71111 0.12899 -2.643 0.00822 **
# Uro_A:mda -0.32110 0.72535 0.18555 -1.731 0.08354 .
# ---
# Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#
# exp(coef) exp(-coef) lower .95 upper .95
# Uro_A 0.9798 1.021 0.7631 1.2580
# mda 0.7111 1.406 0.5523 0.9157
# Uro_A:mda 0.7254 1.379 0.5042 1.0435
#
# Concordance= 0.603 (se = 0.013 )
# Likelihood ratio test= 42.07 on 3 df, p=4e-09
# Wald test = 40.39 on 3 df, p=9e-09
# Score (logrank) test = 41.66 on 3 df, p=5e-09
#Uro A terms as alphabetical, with Uro-gal4 only controls and mda RNAi only from 11-30-2021
UroUri_mda_r3_TRiPA_XROnly.multicox = coxph(Surv(time, status) ~ Uro_A*XR, data =
UroUri_mda_r3_coxph[which(UroUri_mda_r3_coxph$Uro_0==1 | UroUri_mda_r3_coxph$Uro_A==1
& UroUri_mda_r3_coxph$mda==0),])
# > summary(UroUri_mda_r3_TRiPA_XROnly.multicox)
# Call:
# coxph(formula = Surv(time, status) ~ Uro_A * XR, data =
UroUri_mda_r3_coxph[which(UroUri_mda_r3_coxph$Uro_0 ==
# 1 | UroUri_mda_r3_coxph$Uro_A == 1 &
UroUri_mda_r3_coxph$mda ==
# 0), ])
#
# n= 770, number of events= 544
#
# coef exp(coef) se(coef) z Pr(>|z|)
# Uro_A 0.113476 1.120165 0.124387 0.912 0.362
# XR -0.008812 0.991227 0.139822 -0.063 0.950
# Uro_A:XR -0.300126 0.740725 0.187481 -1.601 0.109
#
237
# exp(coef) exp(-coef) lower .95 upper .95
# Uro_A 1.1202 0.8927 0.8778 1.429
# XR 0.9912 1.0089 0.7536 1.304
# Uro_A:XR 0.7407 1.3500 0.5129 1.070
#
# Concordance= 0.536 (se = 0.014 )
# Likelihood ratio test= 7.18 on 3 df, p=0.07
# Wald test = 7.14 on 3 df, p=0.07
# Score (logrank) test = 7.17 on 3 df, p=0.07
#Uro C terms as alphabetical, with Uro-gal4 only controls from 11-30-2021
UroUri_mda_r3_TRiPC.multicox = coxph(Surv(time, status) ~ Uro_C*mda, data =
UroUri_mda_r3_coxph[which(UroUri_mda_r3_coxph$Uro_0==1 |
UroUri_mda_r3_coxph$Uro_C==1),])
# > summary(UroUri_mda_r3_TRiPC.multicox)
# Call:
# coxph(formula = Surv(time, status) ~ Uro_C * mda, data =
UroUri_mda_r3_coxph[which(UroUri_mda_r3_coxph$Uro_0 ==
# 1 | UroUri_mda_r3_coxph$Uro_C == 1), ])
#
# n= 724, number of events= 435
#
# coef exp(coef) se(coef) z Pr(>|z|)
# Uro_C -0.81874 0.44099 0.11152 -7.342 2.11e-13 ***
# mda -0.33641 0.71433 0.12901 -2.608 0.00912 **
# Uro_C:mda -0.08163 0.92161 0.29920 -0.273 0.78497
# ---
# Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#
# exp(coef) exp(-coef) lower .95 upper .95
# Uro_C 0.4410 2.268 0.3544 0.5487
# mda 0.7143 1.400 0.5547 0.9198
# Uro_C:mda 0.9216 1.085 0.5127 1.6566
#
# Concordance= 0.619 (se = 0.013 )
# Likelihood ratio test= 65.56 on 3 df, p=4e-14
# Wald test = 64.51 on 3 df, p=6e-14
# Score (logrank) test = 68.23 on 3 df, p=1e-14
UroUri_mda_r3_TRiPC.fit = survfit(Surv(time, status) ~ Uro_C+mda, data =
UroUri_mda_r3_coxph[which(UroUri_mda_r3_coxph$Uro_0==1 |
UroUri_mda_r3_coxph$Uro_C==1),])
png(file=paste("UroUriC_mda_r3_coxPH_NoTitleNoXNoYnopval_lightconf_fixMarg.png"), units='in',
height=5.08, width = 7.62, res=600)
#par(mar=c(5,3,2,2)+1)
f = ggsurvplot(UroUri_mda_r3_TRiPC.fit,
palette= c("black", "red", "black", "red"),
ggtheme = theme_minimal() + theme(plot.title = element_blank(),#element_text(hjust = 0.5,
size=24),
238
text = element_text(size=25, family="A"),
axis.text.x = element_text(hjust=0.5, vjust=0.5, size=25, color='black'),
#angle=90
axis.title.x = element_blank(),
axis.title.y = element_blank(),
axis.text.y = element_text(size=25, color='black'),
legend.position = "none",# Hide panel borders and remove grid lines
axis.line = element_line(colour = "black"),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border = element_blank(),
panel.background = element_blank(),
plot.margin=unit(c(.5,.5,0,0),"cm")),
title = "Malpighian Tubule Uro RNAi Survival",
conf.int = T R U E,
conf.int.alpha = 0.1,
pval = T,
#pval = paste("genotype*RNAi\npval = ",
as.character(formatC(summary(Uro_xbp1.multicox)$coefficients[3,5], format = "e", digits = 2)),
sep=""),
#pval.coord = c(35, 0.85),
#pval.size = 7,
legend.labs = c("TRiP Ctrl", "mda RNAi Ctrl", "Uro RNAi Ctrl", "Uro + mda RNAi"),
break.time.by = 10,
linetype = c("solid", "solid", "dashed", "dashed"),
ylab = "Survival Percentage",
xlab = "Time (Days)",
axes.offset = F,
surv.scale = "percent",
legend = c(0.8, 0.6),#"right",
legend.title = "",
#font.x = c(16, "bold", "black"),
#font.y = c(16, "bold", "black"),
font.tickslab = c(25, "black"),
font.legend = c(22, "black"))#,
#font.title = 18)
print(f)
dev.off()
#Uro E terms as alphabetical, with Uro-gal4 only controls from 11-30-2021
UroUri_mda_r3_TRiPE.multicox = coxph(Surv(time, status) ~ Uro_E*mda*XR, data =
UroUri_mda_r3_coxph[which(UroUri_mda_r3_coxph$Uro_0==1 |
UroUri_mda_r3_coxph$Uro_E==1),])
# > summary(UroUri_mda_r3_TRiPE.multicox)
# Call:
# coxph(formula = Surv(time, status) ~ Uro_E * mda * XR, data =
UroUri_mda_r3_coxph[which(UroUri_mda_r3_coxph$Uro_0 ==
# 1 | UroUri_mda_r3_coxph$Uro_E == 1), ])
#
# n= 1104, number of events= 788
239
#
# coef exp(coef) se(coef) z Pr(>|z|)
# Uro_E -0.06079 0.94102 0.11904 -0.511 0.60956
# mda -0.44942 0.63800 0.14532 -3.093 0.00198 **
# XR -0.26069 0.77052 0.15760 -1.654 0.09809 .
# Uro_E:mda -0.19992 0.81880 0.17477 -1.144 0.25267
# Uro_E:XR 0.17744 1.19416 0.20162 0.880 0.37882
# mda:XR NA NA 0.00000 NA NA
# Uro_E:mda:XR NA NA 0.00000 NA NA
# ---
# Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#
# exp(coef) exp(-coef) lower .95 upper .95
# Uro_E 0.9410 1.0627 0.7452 1.1883
# mda 0.6380 1.5674 0.4799 0.8482
# XR 0.7705 1.2978 0.5658 1.0494
# Uro_E:mda 0.8188 1.2213 0.5813 1.1533
# Uro_E:XR 1.1942 0.8374 0.8043 1.7729
# mda:XR NA NA NA NA
# Uro_E:mda:XR NA NA NA NA
#
# Concordance= 0.593 (se = 0.011 )
# Likelihood ratio test= 59.17 on 5 df, p=2e-11
# Wald test = 56.02 on 5 df, p=8e-11
# Score (logrank) test = 57.64 on 5 df, p=4e-11
#Uro E terms as alphabetical, with Uro-gal4 only controls and mda RNAi only from 11-30-2021
UroUri_mda_r3_TRiPE_mdaOnly.multicox = coxph(Surv(time, status) ~ Uro_E*mda, data =
UroUri_mda_r3_coxph[which(UroUri_mda_r3_coxph$Uro_0==1 | UroUri_mda_r3_coxph$Uro_E==1 &
UroUri_mda_r3_coxph$XR==0),])
# > summary(UroUri_mda_r3_TRiPE_mdaOnly.multicox)
# Call:
# coxph(formula = Surv(time, status) ~ Uro_E * mda, data =
UroUri_mda_r3_coxph[which(UroUri_mda_r3_coxph$Uro_0 ==
# 1 | UroUri_mda_r3_coxph$Uro_E == 1 &
UroUri_mda_r3_coxph$XR ==
# 0), ])
#
# n= 992, number of events= 706
#
# coef exp(coef) se(coef) z Pr(>|z|)
# Uro_E 0.05989 1.06172 0.09849 0.608 0.54308
# mda -0.33894 0.71252 0.12893 -2.629 0.00856 **
# Uro_E:mda -0.32239 0.72442 0.16149 -1.996 0.04589 *
# ---
# Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#
# exp(coef) exp(-coef) lower .95 upper .95
# Uro_E 1.0617 0.9419 0.8753 1.2878
# mda 0.7125 1.4035 0.5534 0.9174
240
# Uro_E:mda 0.7244 1.3804 0.5279 0.9941
#
# Concordance= 0.596 (se = 0.011 )
# Likelihood ratio test= 56.3 on 3 df, p=4e-12
# Wald test = 53.43 on 3 df, p=1e-11
# Score (logrank) test = 55.01 on 3 df, p=7e-12
#Uro E terms as alphabetical, with Uro-gal4 only controls and mda RNAi only from 11-30-2021
UroUri_mda_r3_TRiPE_XROnly.multicox = coxph(Surv(time, status) ~ Uro_E*XR, data =
UroUri_mda_r3_coxph[which(UroUri_mda_r3_coxph$Uro_0==1 | UroUri_mda_r3_coxph$Uro_E==1 &
UroUri_mda_r3_coxph$mda==0),])
# > summary(UroUri_mda_r3_TRiPE_XROnly.multicox)
# Call:
# coxph(formula = Surv(time, status) ~ Uro_E * XR, data =
UroUri_mda_r3_coxph[which(UroUri_mda_r3_coxph$Uro_0 ==
# 1 | UroUri_mda_r3_coxph$Uro_E == 1 &
UroUri_mda_r3_coxph$mda ==
# 0), ])
#
# n= 816, number of events= 617
#
# coef exp(coef) se(coef) z Pr(>|z|)
# Uro_E 0.18282 1.20060 0.09441 1.937 0.0528 .
# XR -0.01069 0.98937 0.13982 -0.076 0.9391
# Uro_E:XR -0.05761 0.94402 0.18821 -0.306 0.7595
# ---
# Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#
# exp(coef) exp(-coef) lower .95 upper .95
# Uro_E 1.2006 0.8329 0.9978 1.445
# XR 0.9894 1.0107 0.7522 1.301
# Uro_E:XR 0.9440 1.0593 0.6528 1.365
#
# Concordance= 0.525 (se = 0.012 )
# Likelihood ratio test= 4.66 on 3 df, p=0.2
# Wald test = 4.64 on 3 df, p=0.2
# Score (logrank) test = 4.65 on 3 df, p=0.2
png(file=paste("UroUriE_mda_r3_coxPH_NoTitleNoXNoYnopval_lightconf_fixMarg.png"), units='in',
height=5.08, width = 7.62, res=600)
#par(mar=c(5,3,2,2)+1)
f = ggsurvplot(UroUri_mda_r3_TRiPE.fit,
palette= c("black", "red", "black", "red"),
ggtheme = theme_minimal() + theme(plot.title = element_blank(),#element_text(hjust = 0.5,
size=24),
text = element_text(size=25, family="A"),
axis.text.x = element_text(hjust=0.5, vjust=0.5, size=25, color='black'),
#angle=90
axis.title.x = element_blank(),
241
axis.title.y = element_blank(),
axis.text.y = element_text(size=25, color='black'),
legend.position = "none",# Hide panel borders and remove grid lines
axis.line = element_line(colour = "black"),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border = element_blank(),
panel.background = element_blank(),
plot.margin=unit(c(.5,.5,0,0),"cm")),
title = "Malpighian Tubule Uro RNAi Survival",
conf.int = T R U E,
conf.int.alpha = 0.1,
pval = T,
#pval = paste("genotype*RNAi\npval = ",
as.character(formatC(summary(Uro_xbp1.multicox)$coefficients[3,5], format = "e", digits = 2)),
sep=""),
#pval.coord = c(35, 0.85),
#pval.size = 7,
legend.labs = c("TRiP Ctrl", "mda RNAi Ctrl", "Uro RNAi Ctrl", "Uro + mda RNAi"),
break.time.by = 10,
linetype = c("solid", "solid", "dashed", "dashed"),
ylab = "Survival Percentage",
xlab = "Time (Days)",
axes.offset = F,
surv.scale = "percent",
legend = c(0.8, 0.6),#"right",
legend.title = "",
#font.x = c(16, "bold", "black"),
#font.y = c(16, "bold", "black"),
font.tickslab = c(25, "black"),
font.legend = c(22, "black"))#,
#font.title = 18)
print(f)
dev.off()
#Uro F terms as alphabetical, with Uro-gal4 only controls from 11-30-2021
UroUri_mda_r3_TRiPF.multicox = coxph(Surv(time, status) ~ Uro_F*mda, data =
UroUri_mda_r3_coxph[which(UroUri_mda_r3_coxph$Uro_0==1 |
UroUri_mda_r3_coxph$Uro_F==1),])
# > summary(UroUri_mda_r3_TRiPF.multicox)
# Call:
# coxph(formula = Surv(time, status) ~ Uro_F * mda, data =
UroUri_mda_r3_coxph[which(UroUri_mda_r3_coxph$Uro_0 ==
# 1 | UroUri_mda_r3_coxph$Uro_F == 1), ])
#
# n= 984, number of events= 595
#
# coef exp(coef) se(coef) z Pr(>|z|)
# Uro_F -0.9994 0.3681 0.1117 -8.949 < 2e-16 ***
# mda -0.3437 0.7092 0.1290 -2.665 0.0077 **
242
# Uro_F:mda 0.9777 2.6583 0.1695 5.770 7.95e-09 ***
# ---
# Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#
# exp(coef) exp(-coef) lower .95 upper .95
# Uro_F 0.3681 2.7167 0.2957 0.4582
# mda 0.7092 1.4101 0.5508 0.9131
# Uro_F:mda 2.6583 0.3762 1.9071 3.7055
#
# Concordance= 0.618 (se = 0.012 )
# Likelihood ratio test= 86.71 on 3 df, p=<2e-16
# Wald test = 82.71 on 3 df, p=<2e-16
# Score (logrank) test = 87.45 on 3 df, p=<2e-16
UroUri_mda_r3_TRiPF.fit = survfit(Surv(time, status) ~ Uro_F+mda, data =
UroUri_mda_r3_coxph[which(UroUri_mda_r3_coxph$Uro_0==1 |
UroUri_mda_r3_coxph$Uro_F==1),])
png(file=paste("UroUriF_mda_r3_coxPH_NoTitleNoXNoYnopval_lightconf_fixMarg.png"), units='in',
height=5.08, width = 7.62, res=600)
#par(mar=c(5,3,2,2)+1)
f = ggsurvplot(UroUri_mda_r3_TRiPF.fit,
palette= c("black", "red", "black", "red"),
ggtheme = theme_minimal() + theme(plot.title = element_blank(),#element_text(hjust = 0.5,
size=24),
text = element_text(size=25, family="A"),
axis.text.x = element_text(hjust=0.5, vjust=0.5, size=25, color='black'),
#angle=90
axis.title.x = element_blank(),
axis.title.y = element_blank(),
axis.text.y = element_text(size=25, color='black'),
legend.position = "none",# Hide panel borders and remove grid lines
axis.line = element_line(colour = "black"),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border = element_blank(),
panel.background = element_blank(),
plot.margin=unit(c(.5,.5,0,0),"cm")),
title = "Malpighian Tubule Uro RNAi Survival",
conf.int = T R U E,
conf.int.alpha = 0.1,
pval = T,
#pval = paste("genotype*RNAi\npval = ",
as.character(formatC(summary(Uro_xbp1.multicox)$coefficients[3,5], format = "e", digits = 2)),
sep=""),
#pval.coord = c(35, 0.85),
#pval.size = 7,
legend.labs = c("TRiP Ctrl", "mda RNAi Ctrl", "Uro RNAi Ctrl", "Uro + mda RNAi"),
break.time.by = 10,
linetype = c("solid", "solid", "dashed", "dashed"),
ylab = "Survival Percentage",
243
xlab = "Time (Days)",
axes.offset = F,
surv.scale = "percent",
legend = c(0.8, 0.6),#"right",
legend.title = "",
#font.x = c(16, "bold", "black"),
#font.y = c(16, "bold", "black"),
font.tickslab = c(25, "black"),
font.legend = c(22, "black"))#,
#font.title = 18)
print(f)
dev.off()
APPENDIX B
DGRP Lifespan Code – D21 to 95percent – R code used to represent DGRP survival data as mortality
curves from Day 21 until day 95% of population was dead in Chapter 4.
##Hazard Ratio - tw = 1, Day 21 (Average day DGRP strains on AL diet had 25% of population dead) until
day 95% of flies are dead. Day 95% dead should have mortality (u) of 1
#AL
tw = 1 #Time window to sum number of deaths within. Each column represents 2 days, so 1 = 2 days.
Will need to change variables below to reflect this number.
rl = dim(Split_DGRPDeathsData_Sum_AL)[1] #number of rows in data matrix, should be 432 for DGRP
deaths data
cl = dim(Split_DGRPDeathsData_Sum_AL)[2] #number of columns in data matrix, should be 79 for DGRP
deaths data
Split_DGRPDeathsData_Sum_AL_P_tw1_D21_95 = matrix(0, nrow = rl, ncol = (cl/tw)) #Creating an
empty matrix for the hazard ratio with rowlength equal to number of strains in Split_DGRPDeathsData
and columns equal to ratio of total time points and time window size
244
rownames(Split_DGRPDeathsData_Sum_AL_P_tw1_D21_95) = DGRP_DeathsdataStrains_Unique
#Setting rownames equal to the strains
Split_DGRPDeathsData_Sum_AL_u_tw1_D21_95 = matrix(0, nrow = rl, ncol = (cl/tw)) #Creating an
empty matrix for the force of mortality with row length equal to number of strains in
Split_DGRPDeathsData and columns equal to ratio of total time points and time window
rownames(Split_DGRPDeathsData_Sum_AL_u_tw1_D21_95) = DGRP_DeathsdataStrains_Unique
#Setting rownames equal to the strains
#Determining the hazard ratio for each time window, tw, using the number that died during that tw
compared to the number that survived to that tw
for (s in 1:rl) { #looping through strain and diet repeats
Split_DGRPDeathsData_Sum_AL_D21_95 =
Split_DGRPDeathsData_Sum_AL[s,Split_DGRPDeathsData_Sum_AL_Survival[s,]>=0.05] #Creating D21 to
D95 reduced deaths data matrix for each strain to force the last timepoint (D95) to have a hazard ratio
of 1 (All flies entering time window die). This is a single dimensional list, so do not need to use s to point
towards the correct strain when looping through the time windows, below.
cl = dim(Split_DGRPDeathsData_Sum_AL_D21_95)[2] #number of columns in D21 to D95 reduced
deaths data matrix
for (t in (1:cl/tw)) { #looping through time windows
245
Split_DGRPDeathsData_Sum_AL_P_tw1_D21_95[s, t] =
(((sum(Split_DGRPDeathsData_Sum_AL_D21_95[((t*tw)-(tw-1)):cl]))-
sum(Split_DGRPDeathsData_Sum_AL_D21_95[((t*tw)-(tw-
1)):(t*tw)]))/(sum(Split_DGRPDeathsData_Sum_AL_D21_95[((t*tw)-(tw-1)):cl])))^(1/(tw*2))}#((Sum of
flies entering window - sum of flies leaving window)/(sum of flies entering window))^(1/(time window in
days, 2 days per 1 window)
Split_DGRPDeathsData_Sum_AL_u_tw1_D21_95[s,] = -
log(Split_DGRPDeathsData_Sum_AL_P_tw1_D21_95[s,])
Split_DGRPDeathsData_Sum_AL_u_tw1_D21_95[s, cl] = 1 #Setting time window where all flies die (first
P = 0) to 1, meaning all flies die. This is because the first P value of 0, meaning no flies survive past that
time window, becomes an infinite value when the log is taken, and is taken out. This does not lead to a
logarithmic increase in hazard ratio.
}
Split_DGRPDeathsData_Sum_AL_u_tw1_D21_95[is.infinite(Split_DGRPDeathsData_Sum_AL_u_tw1_D21
_95)] = NA
write.csv(Split_DGRPDeathsData_Sum_AL_P_tw1_D21_95, file =
"Split_DGRPDeathsData_Sum_AL_P_tw1_D21_95.csv")
write.csv(Split_DGRPDeathsData_Sum_AL_u_tw1_D21_95, file =
"Split_DGRPDeathsData_Sum_AL_u_tw1_D21_95.csv")
#DR
246
tw = 1 #Time window to sum number of deaths within. Each column represents 2 days, so 1 = 2 days.
Will need to change variables below to reflect this number.
rl = dim(Split_DGRPDeathsData_Sum_DR)[1] #number of rows in data matrix, should be 432 for DGRP
deaths data
cl = dim(Split_DGRPDeathsData_Sum_DR)[2] #number of columns in data matrix, should be 79 for DGRP
deaths data
Split_DGRPDeathsData_Sum_DR_P_tw1_D21_95 = matrix(0, nrow = rl, ncol = (cl/tw)) #Creating an
empty matrix for the hazard ratio with rowlength equal to number of strains in Split_DGRPDeathsData
and columns equal to ratio of total time points and time window size
rownames(Split_DGRPDeathsData_Sum_DR_P_tw1_D21_95) = DGRP_DeathsdataStrains_Unique
#Setting rownames equal to the strains
Split_DGRPDeathsData_Sum_DR_u_tw1_D21_95 = matrix(0, nrow = rl, ncol = (cl/tw)) #Creating an
empty matrix for the force of mortality with row length equal to number of strains in
Split_DGRPDeathsData and columns equal to ratio of total time points and time window
rownames(Split_DGRPDeathsData_Sum_DR_u_tw1_D21_95) = DGRP_DeathsdataStrains_Unique
#Setting rownames equal to the strains
#Determining the hazard ratio for each time window, tw, using the number that died during that tw
compared to the number that survived to that tw
for (s in 1:rl) { #looping through strain and diet repeats
247
Split_DGRPDeathsData_Sum_DR_D21_95 =
Split_DGRPDeathsData_Sum_DR[s,Split_DGRPDeathsData_Sum_DR_Survival[s,]>=0.05] #Creating D21
to D95 reduced deaths data matrix for each strain to force the last timepoint (D95) to have a hazard
ratio of 1 (All flies entering time window die). This is a single dimensional list, so do not need to use s to
point towards the correct strain when looping through the time windows, below.
cl = dim(Split_DGRPDeathsData_Sum_DR_D21_95)[2] #number of columns in D21 to D95 reduced
deaths data matrix
for (t in (1:cl/tw)) { #looping through time windows
Split_DGRPDeathsData_Sum_DR_P_tw1_D21_95[s, t] =
(((sum(Split_DGRPDeathsData_Sum_DR_D21_95[((t*tw)-(tw-1)):cl]))-
sum(Split_DGRPDeathsData_Sum_DR_D21_95[((t*tw)-(tw-
1)):(t*tw)]))/(sum(Split_DGRPDeathsData_Sum_DR_D21_95[((t*tw)-(tw-1)):cl])))^(1/(tw*2))}#((Sum of
flies entering window - sum of flies leaving window)/(sum of flies entering window))^(1/(time window in
days, 2 days per 1 window)
Split_DGRPDeathsData_Sum_DR_u_tw1_D21_95[s,] = -
log(Split_DGRPDeathsData_Sum_DR_P_tw1_D21_95[s,])
Split_DGRPDeathsData_Sum_DR_u_tw1_D21_95[s, cl] = 1 #Setting time window where all flies die (first
P = 0) to 1, meaning all flies die. This is because the first P value of 0, meaning no flies survive past that
time window, becomes an infinite value when the log is taken, and is taken out. This does not lead to a
logarithmic increase in hazard ratio.
}
248
Split_DGRPDeathsData_Sum_DR_u_tw1_D21_95[is.infinite(Split_DGRPDeathsData_Sum_DR_u_tw1_D2
1_95)] = NA
write.csv(Split_DGRPDeathsData_Sum_DR_P_tw1_D21_95, file =
"Split_DGRPDeathsData_Sum_DR_P_tw1_D21_95.csv")
write.csv(Split_DGRPDeathsData_Sum_DR_u_tw1_D21_95, file =
"Split_DGRPDeathsData_Sum_DR_u_tw1_D21_95.csv")
#######Now plotting only day 21 and later, taking the day 95% are dead as the last timepoint (setting it
as final timepoint for all strains, to avoid "straggler" flies having an undue influence on the gompertz fits
(Data sets: Split_DGRPDeathsData_Sum_AL_u_tw1_D21_95 and
Split_DGRPDeathsData_Sum_DR_u_tw1_D21_95, last day with >5% flies alive)
gomp.y=as.numeric(Split_DGRPDeathsData_Sum_AL_u_tw1_D21_95[i,1:79])
gomp.y[is.infinite(gomp.y)]=NA #Removing all infinite values caused by the log transformation
gomp.y_D21 = gomp.y[8:length(!is.na(Split_DGRPDeathsData_Sum_AL_u_tw1_D21_95[i,]))]
x_D21 = x[8:length(!is.na(Split_DGRPDeathsData_Sum_AL_u_tw1_D21_95[i,]))]
plot(x=x_D21, y=gomp.yD21, col=1, main = paste("Gompertz Fit for DGRP Strain",
DGRP_DeathsdataStrains_Unique[i], "on AL"), xlab = "Time (Days)", ylab = "Hazard Ratio", ylim = c(0, 1),
xlim = c(0,
x[length(Split_DGRPDeathsData_Sum_AL_u_tw1_D21_95[i,Split_DGRPDeathsData_Sum_AL_u_tw1_D2
1_95[i,]>=0.05])]))
249
gompfitD21 = nls(gomp.yD21~a*exp(b*x_D21),start=list(a=-5,b=0.1),lower = c(-10, 0), upper = c(10, 1),
na.action = na.exclude, algorithm="port")
yFittedD21 = predict(gompfitD21)
lines(x=x_D21,y=yFittedD21)
###Creating empty vectors for alpha and beta values (log10 transformed alpha for gompertz and
gompertz-makeham)
Split_DGRPDeathsData_Sum_AL_u_tw1_alpha_betas_linear_D21_95 = matrix(0, nrow = 160, ncol = 2)
Split_DGRPDeathsData_Sum_DR_u_tw1_alpha_betas_linear_D21_95 = matrix(0, nrow = 160, ncol = 2)
Split_DGRPDeathsData_Sum_AL_u_tw1_alpha_betas_gomp_D21_95 = matrix(0, nrow = 160, ncol = 2)
Split_DGRPDeathsData_Sum_DR_u_tw1_alpha_betas_gomp_D21_95 = matrix(0, nrow = 160, ncol = 2)
Split_DGRPDeathsData_Sum_AL_u_tw1_alpha_betas_gompMak_D21_95 = matrix(0, nrow = 160, ncol =
3)
Split_DGRPDeathsData_Sum_DR_u_tw1_alpha_betas_gompMak_D21_95 = matrix(0, nrow = 160, ncol =
3)
###Creating data matrices for fitting and plotting
x = seq(7, 164, by = 2)
for (i in 1:160) {
gomp.y=as.numeric(Split_DGRPDeathsData_Sum_AL_u_tw1_D21_95[i,1:79])
gomp.y[is.infinite(gomp.y)]=NA #Removing all infinite values caused by the log transformation
250
gomp.y_D21 = gomp.y[8:length(gomp.y[!is.na(gomp.y)])]
#gompMak.y_D21=as.numeric(Split_DGRPDeathsData_Sum_AL_u_tw1[i,1:79])
#gompMak.y_D21[is.infinite(gompMak.y_D21)]=NA #Removing all infinite values caused by the log
transformation
#gompMak.y_D21 =
gompMak.y[8:length(Split_DGRPDeathsData_Sum_DR_u_tw1_D21_95[i,Split_DGRPDeathsData_Sum_D
R_u_tw1_D21_95[i,]>=0.05])] #Taking from day 21 to day 95% dead
log.y_D21=log(gomp.y_D21)
log.y_D21[is.infinite(log.y_D21)]=NA
x_D21 = x[8:length(gomp.y[!is.na(gomp.y)])]
###Plotting Logistic Fit for strains 25174 (i=1, col=black) or 25177 (i=4, col=blue) on AL
plot(x= x_D21, y=log.y_D21, col="black", main = paste("Logistic Fit for DGRP Strain",
DGRP_DeathsdataStrains_Unique[i], "on AL"), xlab = "Time (Days)", ylab = "log(Hazard Ratio)", ylim = c(-
9.5, 0), xlim = c(0, 60), cex.lab = 1.5, cex.main = 1.5, cex.axis = 1.5) #Creating plot using the first strain
fit = lm(log.y_D21~x_D21) #Linear fit of log transformed hazard ratios
abline(a=Split_DGRPDeathsData_Sum_AL_u_tw1_alpha_betas_linear_D21_95[i,1],
b=Split_DGRPDeathsData_Sum_AL_u_tw1_alpha_betas_linear_D21_95[i,2], col="black")
#Split_DGRPDeathsData_Sum_AL_u_tw1_alpha_betas_linear_D21_95[i,] = coef(fit)
###Plotting Logistic Fit for strain 25174 (i=1, col=black) on same figure as 25177 (i=4, col=blue) on AL
i=4
251
gomp.y=as.numeric(Split_DGRPDeathsData_Sum_AL_u_tw1_D21_95[i,1:79])
gomp.y[is.infinite(gomp.y)]=NA #Removing all infinite values caused by the log transformation
gomp.y_D21 = gomp.y[8:length(gomp.y[!is.na(gomp.y)])]
log.y_D21=log(gomp.y_D21)
log.y_D21[is.infinite(log.y_D21)]=NA
x_D21 = x[8:length(gomp.y[!is.na(gomp.y)])]
plot(x= x_D21, y=log.y_D21, col="blue", main = paste("Logistic Fit for DGRP Strains",
DGRP_DeathsdataStrains_Unique[1]," (black) and", DGRP_DeathsdataStrains_Unique[4], " (blue) on
AL"), xlab = "Time (Days)", ylab = "log(Hazard Ratio)", ylim = c(-9.5, 0), xlim = c(0, 60), cex.lab = 1.5,
cex.main = 1.5, cex.axis = 1.5) #Creating plot using the first strain
fit = lm(log.y_D21~x_D21) #Linear fit of log transformed hazard ratios
abline(a=Split_DGRPDeathsData_Sum_AL_u_tw1_alpha_betas_linear_D21_95[i,1],
b=Split_DGRPDeathsData_Sum_AL_u_tw1_alpha_betas_linear_D21_95[i,2], col="blue")
i=1
gomp.y=as.numeric(Split_DGRPDeathsData_Sum_AL_u_tw1_D21_95[i,1:79])
gomp.y[is.infinite(gomp.y)]=NA #Removing all infinite values caused by the log transformation
gomp.y_D21 = gomp.y[8:length(gomp.y[!is.na(gomp.y)])]
log.y_D21=log(gomp.y_D21)
log.y_D21[is.infinite(log.y_D21)]=NA
x_D21 = x[8:length(gomp.y[!is.na(gomp.y)])]
252
points(x= x_D21, y=log.y_D21, col="black", main = paste("Logistic Fit for DGRP Strain",
DGRP_DeathsdataStrains_Unique[i], "on AL"), xlab = "Time (Days)", ylab = "log(Hazard Ratio)", ylim = c(-
9.5, 0), xlim = c(0, 60), cex.lab = 1.5, cex.main = 1.5, cex.axis = 1.5) #Creating plot using the first strain
fit = lm(log.y_D21~x_D21) #Linear fit of log transformed hazard ratios
abline(a=Split_DGRPDeathsData_Sum_AL_u_tw1_alpha_betas_linear_D21_95[i,1],
b=Split_DGRPDeathsData_Sum_AL_u_tw1_alpha_betas_linear_D21_95[i,2], col="black")
###Plotting Logistic Fit for strain 25174 (i=1, col=black) on same figure as 25177 (i=4, col=blue) on DR
i=1
gomp.y=as.numeric(Split_DGRPDeathsData_Sum_DR_u_tw1_D21_95[i,1:79])
gomp.y[is.infinite(gomp.y)]=NA #Removing all infinite values caused by the log transformation
gomp.y_D21 = gomp.y[8:length(gomp.y[!is.na(gomp.y)])]
log.y_D21=log(gomp.y_D21)
log.y_D21[is.infinite(log.y_D21)]=NA
x_D21 = x[8:length(gomp.y[!is.na(gomp.y)])]
plot(x= x_D21, y=log.y_D21, col="black", main = paste("Logistic Fit for DGRP Strains",
DGRP_DeathsdataStrains_Unique[1]," (black), ", DGRP_DeathsdataStrains_Unique[4], " (blue),\n and",
DGRP_DeathsdataStrains_Unique[15], " (red) on DR"), xlab = "Time (Days)", ylab = "log(Hazard Ratio)",
ylim = c(-11.5, 0), xlim = c(0, 60), cex.lab = 1.5, cex.main = 1.5, cex.axis = 1.5) #Creating plot using the
first strain
253
fit = lm(log.y_D21~x_D21) #Linear fit of log transformed hazard ratios
abline(a=Split_DGRPDeathsData_Sum_DR_u_tw1_alpha_betas_linear_D21_95[i,1],
b=Split_DGRPDeathsData_Sum_DR_u_tw1_alpha_betas_linear_D21_95[i,2], col="black")
i=4
gomp.y=as.numeric(Split_DGRPDeathsData_Sum_DR_u_tw1_D21_95[i,1:79])
gomp.y[is.infinite(gomp.y)]=NA #Removing all infinite values caused by the log transformation
gomp.y_D21 = gomp.y[8:length(gomp.y[!is.na(gomp.y)])]
log.y_D21=log(gomp.y_D21)
log.y_D21[is.infinite(log.y_D21)]=NA
x_D21 = x[8:length(gomp.y[!is.na(gomp.y)])]
points(x= x_D21, y=log.y_D21, col="blue", main = paste("Logistic Fit for DGRP Strain",
DGRP_DeathsdataStrains_Unique[i], "on DR"), xlab = "Time (Days)", ylab = "log(Hazard Ratio)", ylim = c(-
11.5, 0), xlim = c(0, 60), cex.lab = 1.5, cex.main = 1.5, cex.axis = 1.5) #Creating plot using the first strain
fit = lm(log.y_D21~x_D21) #Linear fit of log transformed hazard ratios
abline(a=Split_DGRPDeathsData_Sum_DR_u_tw1_alpha_betas_linear_D21_95[i,1],
b=Split_DGRPDeathsData_Sum_DR_u_tw1_alpha_betas_linear_D21_95[i,2], col="blue")
i=15
gomp.y=as.numeric(Split_DGRPDeathsData_Sum_DR_u_tw1_D21_95[i,1:79])
gomp.y[is.infinite(gomp.y)]=NA #Removing all infinite values caused by the log transformation
gomp.y_D21 = gomp.y[8:length(gomp.y[!is.na(gomp.y)])]
254
log.y_D21=log(gomp.y_D21)
log.y_D21[is.infinite(log.y_D21)]=NA
x_D21 = x[8:length(gomp.y[!is.na(gomp.y)])]
points(x= x_D21, y=log.y_D21, col="red", main = paste("Logistic Fit for DGRP Strain",
DGRP_DeathsdataStrains_Unique[i], "on DR"), xlab = "Time (Days)", ylab = "log(Hazard Ratio)", ylim = c(-
11.5, 0), xlim = c(0, 60), cex.lab = 1.5, cex.main = 1.5, cex.axis = 1.5) #Creating plot using the first strain
fit = lm(log.y_D21~x_D21) #Linear fit of log transformed hazard ratios
abline(a=Split_DGRPDeathsData_Sum_DR_u_tw1_alpha_betas_linear_D21_95[i,1],
b=Split_DGRPDeathsData_Sum_DR_u_tw1_alpha_betas_linear_D21_95[i,2], col="red")
###Plotting Gomp Fit
out = tryCatch(
{
gompfit = nls(gomp.y_D21~a*exp(b*x_D21),start=list(a=-5,b=0.1),lower = c(-10, 0), upper = c(10, 1),
na.action = na.exclude, algorithm="port", control = list(maxiter = 5000))
out = gompfit
},
error=function(cond) {
#message("Strain not fit by gompertz, only")
return(NA)
255
})
if (is.na(out)) {
Split_DGRPDeathsData_Sum_AL_u_tw1_alpha_betas_gomp_D21_95[i,] = 0} else {
plot(x= x_D21, y=gomp.y_D21, col=1, main = paste("Gompertz Curve for DGRP Strain",
DGRP_DeathsdataStrains_Unique[i], "on AL"), xlab = "Time (Days)", ylab = "Hazard Ratio", ylim = c(0, 1))
Split_DGRPDeathsData_Sum_AL_u_tw1_alpha_betas_gomp_D21_95[i, 1] = log(coef(out)[1])
Split_DGRPDeathsData_Sum_AL_u_tw1_alpha_betas_gomp_D21_95[i, 2] = coef(out)[2]
yFitted = predict(out)
#yFitted = yFitted[8:length(gomp.y[!is.na(gomp.y)])]
lines(x= x_D21,y=yFitted, col='red')
}
###Plotting Gompertz-Makeham Fit
out = tryCatch(
{
gompMakfit = nls(gomp.y_D21~(a*exp(b*x_D21)+c),start=list(a=-5,b=0.1,c=0),lower = c(-10, 0, -100),
upper = c(10, 1, 100), na.action = na.exclude, algorithm="port", control = list(maxiter = 5000))
out = gompMakfit
},
error=function(cond) {
256
#message("Strain not fit by gompertz, only")
return(NA)
})
if (is.na(out)) {
Split_DGRPDeathsData_Sum_AL_u_tw1_alpha_betas_gompMak_D21_95[i,] = 0} else {
plot(x= x_D21, y=gomp.y_D21, col=1, main = paste("Gompertz-Makeham Curve for DGRP Strain",
DGRP_DeathsdataStrains_Unique[i], "on AL"), xlab = "Time (Days)", ylab = "Hazard Ratio", ylim = c(0, 1))
Split_DGRPDeathsData_Sum_AL_u_tw1_alpha_betas_gompMak_D21_95[i, 1] = log(coef(out)[1])
Split_DGRPDeathsData_Sum_AL_u_tw1_alpha_betas_gompMak_D21_95[i, 2:3] = coef(out)[2:3]
GMakyFitted = predict(out)
#GMakyFitted = GMakyFitted[8:length(gomp.y[!is.na(gomp.y)])]
lines(x= x_D21,y=GMakyFitted, col='blue')
}
}
rownames(Split_DGRPDeathsData_Sum_AL_u_tw1_alpha_betas_linear_D21_95) =
DGRP_DeathsdataStrains_Unique
colnames(Split_DGRPDeathsData_Sum_AL_u_tw1_alpha_betas_linear_D21_95) = c('alpha', 'beta')
rownames(Split_DGRPDeathsData_Sum_AL_u_tw1_alpha_betas_gomp_D21_95) =
DGRP_DeathsdataStrains_Unique
257
colnames(Split_DGRPDeathsData_Sum_AL_u_tw1_alpha_betas_gomp_D21_95) = c('alpha', 'beta')
rownames(Split_DGRPDeathsData_Sum_AL_u_tw1_alpha_betas_gompMak_D21_95) =
DGRP_DeathsdataStrains_Unique
colnames(Split_DGRPDeathsData_Sum_AL_u_tw1_alpha_betas_gompMak_D21_95) = c('alpha', 'beta',
'lambda')
write.csv(Split_DGRPDeathsData_Sum_AL_u_tw1_alpha_betas_linear_D21_95, file =
"Split_DGRPDeathsData_Sum_AL_u_tw1_alpha_betas_linear_D21_95.csv")
write.csv(Split_DGRPDeathsData_Sum_AL_u_tw1_alpha_betas_gomp_D21_95, file =
"Split_DGRPDeathsData_Sum_AL_u_tw1_alpha_betas_gomp_D21_95.csv")
write.csv(Split_DGRPDeathsData_Sum_AL_u_tw1_alpha_betas_gompMak_D21_95, file =
"Split_DGRPDeathsData_Sum_AL_u_tw1_alpha_betas_gompMak_D21_95.csv")
APPENDIX C
modelingCode.py – Python code used for PCA and Random Forest modeling in Chapter 5.
### Following pipeline at https://towardsdatascience.com/random-forest-in-python-24d0893d51c0
# Pandas is used for data manipulation
%matplotlib inline
import pandas as pd
import scipy.stats
import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns; sns.set()
import math
from pylab import *
import re
import random
from sklearn.decomposition import PCA
# Using Skicit-learn to split data into training and testing sets
from sklearn.model_selection import train_test_split
# Import the model we are using
258
from sklearn.ensemble import RandomForestRegressor
# Import tools needed for visualization
from sklearn.tree import export_graphviz
from sklearn.preprocessing import StandardScaler
import pydot
from yellowbrick.datasets import load_concrete
from yellowbrick.regressor import ResidualsPlot
from sklearn.metrics import r2_score
from sklearn.metrics import mean_squared_error
from sklearn.impute import SimpleImputer
import statsmodels.api as sm
from datetime import date
from bioinfokit.visuz import cluster
plt.rcParams['axes.facecolor'] = 'white'
today = date.today()
def draw_vector(v0, v1, ax=None):
ax = ax or plt.gca()
arrowprops=dict(arrowstyle='->',
linewidth=2,
shrinkA=0, shrinkB=0)
ax.annotate('', v1, v0, arrowprops=arrowprops)
#Setting seed for reproducibility to 10 on first run
random.seed(10)
# Read in data and display first 5 rows
features = pd.read_csv('ModelingData_Metab&Pheno.csv')
features.head(5)
print('The shape of our features is:', features.shape)
#Making the trait names nicer
headernames = features.columns.values
nameN = 0
regex = re.compile('[^a-zA-Z]') #Telling regex.sub what to look for during re.sub
for name in headernames: #Removing non-alphanumeric characters to make sure the phenotype names
are playing nice and do not produce errors
headernames[nameN] = regex.sub('', name)
nameN += 1
#Determining DR-AL difference and (DR-AL)/AL Fold Change
#features_dietdiff = [features.loc[(features['strain'] == s) & (features['diet'] == 'DR')] -
features.loc[(features['strain'] == s) & (features['diet'] == 'AL')] for s in unique(features['strain'])]
features_dietdiff = {}
features_foldchange = {}
for s in unique(features['strain']):
features_dietdiff[s] = {}
259
features_foldchange[s] = {}
AL = features.loc[(features['strain'] == s) & (features['diet'] == 'AL')]
DR = features.loc[(features['strain'] == s) & (features['diet'] == 'DR')]
[AL.pop(x) for x in ['strain', 'diet']]
[DR.pop(x) for x in ['strain', 'diet']]
for t in list(AL):
features_dietdiff[s][t] = float(DR[t]) - float(AL[t])
features_foldchange[s][t] = (float(DR[t]) - float(AL[t]))/(float(AL[t]) + 0.00001) #Adding near 0 value
to avoid errors due to zeros. Adding to both DR and AL is negated on top.
#Separating diet-specific feature data
features_AL = features[features['diet'] == 'AL']
features_DR = features[features['diet'] == 'DR']
#Writing output
with open('MetabPheno_dietdiff_'+today.strftime("%m-%d-%y")+'.tsv', 'w') as f:
#write header
for h in headernames[headernames != 'diet']:
f.write(h)
f.write('\t')
f.write('\n')
for l in features_dietdiff:
f.write(str(l))
f.write('\t')
for v in features_dietdiff[l]:
f.write(str(features_dietdiff[l][v]))
f.write('\t')
f.write('\n')
f.close()
with open('MetabPheno_foldchange_'+today.strftime("%m-%d-%y")+'.tsv', 'w') as f:
#write header
for h in headernames[headernames != 'diet']:
f.write(h)
f.write('\t')
f.write('\n')
for l in features_foldchange:
f.write(str(l))
f.write('\t')
for v in features_foldchange[l]:
f.write(str(features_foldchange[l][v]))
f.write('\t')
f.write('\n')
f.close()
# Descriptive statistics for each column
feat_desc = features.describe()
260
#Plotting trait values to check data quality by looping through traits
#Setting x and y values
# x = np.linspace(0, 2*np.pi, 16)
# y = np.sin(x**2)
subplots_adjust(hspace=0.000)
number_of_subplots=int(ceil(features.shape[1]/8))
# for i,v in enumerate(xrange(number_of_subplots)):
# v = v+1
# ax1 = subplot(number_of_subplots,1,v)
# ax1.plot(x,y)
for t in range(1, number_of_subplots+1):
if t == 1:
y = features.iloc[:, (t+1):8]
else:
if (t*8) > features.shape[1]:
y = features.iloc[:,((t*8)-8):features.shape[1]]
else:
y = features.iloc[:, ((t*8)-8):((t*8))]
# Initialise the subplot function using number of rows and columns
fig, axs = plt.subplots(int(ceil(y.shape[1]/2)), 2)
axs[0, 0].plot(x, y.iloc[:,0])
axs[0, 0].set_title(list(y.columns.values)[0])
axs[0, 1].plot(x, y.iloc[:,1], 'tab:orange')
axs[0, 1].set_title(list(y.columns.values)[1])
if y.shape[1] > 2:
axs[1, 0].plot(x, y.iloc[:,2], 'tab:green')
axs[1, 0].set_title(list(y.columns.values)[2])
axs[1, 1].plot(x, y.iloc[:,3], 'tab:red')
axs[1, 1].set_title(list(y.columns.values)[3])
axs[2, 0].plot(x, y.iloc[:,4])
axs[2, 0].set_title(list(y.columns.values)[4])
axs[2, 1].plot(x, y.iloc[:,5], 'tab:orange')
axs[2, 1].set_title(list(y.columns.values)[5])
if y.shape[1] > 6:
axs[3, 0].plot(x, y.iloc[:,6], 'tab:green')
axs[3, 0].set_title(list(y.columns.values)[6])
if y.shape[1] > 7:
axs[3, 1].plot(x, y.iloc[:,7], 'tab:red')
axs[3, 1].set_title(list(y.columns.values)[7])
for ax in axs.flat:
ax.set(xlabel='strain', ylabel='trait value')
# Hide x labels and tick labels for top plots and y ticks for right plots.
for ax in axs.flat:
261
ax.label_outer()
# Combine all the operations and display
plt.show()
# Saving figure
fig.savefig('modelTraits_'+str(t)+'.pdf', bbox_inches='tight')
#Diet order
diet = features['diet']
strain_order = features['strain']
strain_order_AL = features_AL['strain']
strain_order_DR = features_DR['strain']
traits = list(features.columns.values)
features_dropCol = features.dropna(axis=1)
features_dropRow = features.dropna(axis=0)
strain_order_dropRow = features_dropRow['strain']
traits_dropCol = list(features_dropCol.columns.values)
features = features.drop('strain', axis=1)
features_AL = features_AL.drop('strain', axis=1)
features_DR = features_DR.drop('strain', axis=1)
features_AL = features_AL.drop('diet', axis=1)
features_DR = features_DR.drop('diet', axis=1)
features_dropCol = features_dropCol.drop('strain', axis=1)
features_dropRow = features_dropRow.drop('strain', axis=1)
###Data Preparation
###Now setting up response and predictor variable data sets
# Response are the values we want to predict
#Full data that will have NaN values replaced with mean imputed values
Response = np.array(features.iloc[:,-10:])
Response_AL = np.array(features_AL.iloc[:,-10:])
Response_DR = np.array(features_DR.iloc[:,-10:])
Response_names = features.columns.values[-10:]
Response_AL_names = features_AL.columns.values[-10:]
Response_DR_names = features_DR.columns.values[-10:]
#Now Response_names with incomplete strains (rows) dropped
Response_dropRow = np.array(features_dropRow.iloc[:,-10:])
Response_dropRow_names = features_dropRow.columns.values[-10:]
# Remove the labels from the features
# axis 1 refers to the columns
#Predictors for whole set that will be imputed
predictors = features.drop(Response_names, axis = 1)
predictors_AL = features_AL.drop(Response_AL_names, axis = 1)
predictors_DR = features_DR.drop(Response_DR_names, axis = 1)
262
#predictors from dropRow group
predictors_dropRow = features_dropRow.drop(Response_dropRow_names, axis = 1)
# One-hot encode the data using pandas get_dummies to convert categorical variables to numeric
#Full features for correlation
features_cor = pd.get_dummies(features)
features_AL_cor = pd.get_dummies(features_AL)
features_DR_cor = pd.get_dummies(features_DR)
features_dietdiff_cor = pd.get_dummies(transpose(pd.DataFrame(features_dietdiff)))
#Separating for PCA and modeling
predictors = pd.get_dummies(predictors)
predictors_AL = pd.get_dummies(predictors_AL)
predictors_DR = pd.get_dummies(predictors_DR)
predictors_dropRow = pd.get_dummies(predictors_dropRow)
# Saving predictor for later use
predictors_list = list(predictors.columns)
predictors_AL_list = list(predictors_AL.columns)
predictors_DR_list = list(predictors_DR.columns)
predictors_dropRow_list = list(predictors_dropRow.columns)
# Convert to numpy array
predictors = np.array(predictors)
predictors_AL = np.array(predictors_AL)
predictors_DR = np.array(predictors_DR)
predictors_dropRow = np.array(predictors_dropRow)
# Saving features for corr
features_cor_list = list(features_cor.columns)
features_AL_list = list(features_AL_cor.columns)
features_DR_list = list(features_DR_cor.columns)
features_dietdiff_list = list(features_dietdiff_cor.columns)
# Convert to numpy array
features_cor = np.array(features_cor)
features_AL_cor = np.array(features_AL_cor)
features_DR_cor = np.array(features_DR_cor)
features_dietdiff_cor = np.array(features_dietdiff_cor)
#Scaling data to zero mean and unit variance. Do not need to scale for Random Forest, but would for
PCA
predictors_scaled = StandardScaler().fit_transform(predictors)
predictors_scaled = pd.DataFrame(predictors_scaled, columns=predictors_list)
predictors_AL_scaled = StandardScaler().fit_transform(predictors_AL)
predictors_AL_scaled = pd.DataFrame(predictors_AL_scaled, columns=predictors_AL_list)
predictors_DR_scaled = StandardScaler().fit_transform(predictors_DR)
predictors_DR_scaled = pd.DataFrame(predictors_DR_scaled, columns=predictors_DR_list)
predictors_dropRow_scaled = StandardScaler().fit_transform(predictors_dropRow)
predictors_dropRow_scaled = pd.DataFrame(predictors_dropRow_scaled,
columns=predictors_dropRow_list)
263
#Imputing missing data for PCA
predictors_scaled_imputed = SimpleImputer(strategy = 'mean')
predictors_scaled_imputed = predictors_scaled_imputed.fit_transform(predictors_scaled)
predictors_AL_scaled_imputed = SimpleImputer(strategy = 'mean')
predictors_AL_scaled_imputed = predictors_AL_scaled_imputed.fit_transform(predictors_AL_scaled)
predictors_DR_scaled_imputed = SimpleImputer(strategy = 'mean')
predictors_DR_scaled_imputed = predictors_DR_scaled_imputed.fit_transform(predictors_DR_scaled)
#Imputing missing data for modeling
predictors_imputed = SimpleImputer(strategy = 'mean')
predictors_imputed = predictors_imputed.fit_transform(predictors)
Response_imputed = SimpleImputer(strategy = 'mean')
Response_imputed = Response_imputed.fit_transform(Response)
predictors_AL_imputed = SimpleImputer(strategy = 'mean')
predictors_AL_imputed = predictors_AL_imputed.fit_transform(predictors_AL)
Response_AL_imputed = SimpleImputer(strategy = 'mean')
Response_AL_imputed = Response_AL_imputed.fit_transform(Response_AL)
predictors_DR_imputed = SimpleImputer(strategy = 'mean')
predictors_DR_imputed = predictors_DR_imputed.fit_transform(predictors_DR)
Response_DR_imputed = SimpleImputer(strategy = 'mean')
Response_DR_imputed = Response_DR_imputed.fit_transform(Response_DR)
#Imputing missing data for correlation
features_cor_imputed = SimpleImputer(strategy = 'mean')
features_cor_imputed = features_cor_imputed.fit_transform(features_cor)
features_AL_cor_imputed = SimpleImputer(strategy = 'mean')
features_AL_cor_imputed = features_AL_cor_imputed.fit_transform(features_AL_cor)
features_DR_cor_imputed = SimpleImputer(strategy = 'mean')
features_DR_cor_imputed = features_DR_cor_imputed.fit_transform(features_DR_cor)
features_dietdiff_cor_imputed = SimpleImputer(strategy = 'mean')
features_dietdiff_cor_imputed = features_dietdiff_cor_imputed.fit_transform(features_dietdiff_cor)
#Correlations using code from https://www.kaggle.com/drazen/heatmap-with-sized-markers and
https://towardsdatascience.com/better-heatmaps-and-correlation-matrix-plots-in-python-41445d0f2bec
(Same code, second link is to explanation)
#PCA with all predictors, imputed data.
predictors_scaled_pca = PCA(n_components='mle')
predictors_scaled_pca_trans = predictors_scaled_pca.fit_transform(predictors_scaled_imputed)
imputed_explainedVar = predictors_scaled_pca.explained_variance_ratio_
#predictors_scaled_pca_trans = predictors_scaled_imputed.transform(features)
principalDf_imputed = pd.DataFrame(data = predictors_scaled_pca_trans[:,:2]
, columns = ['principal component 1', 'principal component 2'])
finalDf_imputed = pd.concat([principalDf_imputed, diet], axis = 1)
#AL only
predictors_AL_scaled_pca = PCA(n_components='mle')
264
predictors_AL_scaled_pca_trans =
predictors_AL_scaled_pca.fit_transform(predictors_AL_scaled_imputed)
imputed_AL_explainedVar = predictors_AL_scaled_pca.explained_variance_ratio_
#predictors_scaled_pca_trans = predictors_scaled_imputed.transform(features)
principalDf_AL_imputed = pd.DataFrame(data = predictors_AL_scaled_pca_trans[:,:2]
, columns = ['principal component 1', 'principal component 2'])
finalDf_AL_imputed = pd.concat([principalDf_AL_imputed], axis = 1)
#DR only
predictors_DR_scaled_pca = PCA(n_components='mle')
predictors_DR_scaled_pca_trans =
predictors_DR_scaled_pca.fit_transform(predictors_DR_scaled_imputed)
imputed_DR_explainedVar = predictors_DR_scaled_pca.explained_variance_ratio_
#predictors_scaled_pca_trans = predictors_scaled_imputed.transform(features)
principalDf_DR_imputed = pd.DataFrame(data = predictors_DR_scaled_pca_trans[:,:2]
, columns = ['principal component 1', 'principal component 2'])
finalDf_DR_imputed = pd.concat([principalDf_DR_imputed], axis = 1)
#PCA with all predictors, but only completed strains.
predictors_dropRow_scaled_pca = PCA(n_components='mle')
predictors_dropRow_scaled_pca_trans =
predictors_dropRow_scaled_pca.fit_transform(predictors_dropRow_scaled)
dropRow_explainedVar = predictors_dropRow_scaled_pca.explained_variance_ratio_
#predictors_dropRow_scaled_pca_trans = predictors_dropRow_scaled.transform(features_dropRow)
principalDf_dropRow = pd.DataFrame(data = predictors_dropRow_scaled_pca_trans[:,:2]
, columns = ['principal component 1', 'principal component 2'])
finalDf_dropRow = pd.concat([principalDf_dropRow, diet], axis = 1)
#Setting up loading matrix
loadings_imputed = predictors_scaled_pca.components_
loadings_AL_imputed = predictors_AL_scaled_pca.components_
loadings_DR_imputed = predictors_DR_scaled_pca.components_
loadings_dropRow = predictors_dropRow_scaled_pca.components_
# get PCA loadings plots (2D and 3D) using code from https://www.reneshbedre.com/blog/principal-
component-analysis.html#pca-interpretation
#Imputed data
# 2D both diets
plt.scatter(x=loadings_imputed[0], y=loadings_imputed[1])
cluster.pcaplot(x=loadings_imputed[0], y=loadings_imputed[1], labels=predictors_list,
var1=round(predictors_scaled_pca.explained_variance_ratio_[0]*100, 2),
var2=round(predictors_scaled_pca.explained_variance_ratio_[1]*100, 2))
#AL only
plt.scatter(x=loadings_AL_imputed[0], y=loadings_AL_imputed[1])
plt.ylabel('Principle Component 1')
plt.xlabel('Principle Component 2')
plt.title('Imputed PCA - AL Diet')
plt.grid(None)
265
cluster.pcaplot(x=loadings_AL_imputed[0], y=loadings_AL_imputed[1], labels=predictors_AL_list,
var1=round(predictors_AL_scaled_pca.explained_variance_ratio_[0]*100, 2),
var2=round(predictors_AL_scaled_pca.explained_variance_ratio_[1]*100, 2))
#DR only
plt.scatter(x=loadings_DR_imputed[0], y=loadings_DR_imputed[1])
plt.ylabel('Principle Component 1')
plt.xlabel('Principle Component 2')
plt.title('Imputed PCA - DR Diet')
plt.grid(None)
cluster.pcaplot(x=loadings_DR_imputed[0], y=loadings_DR_imputed[1], labels=predictors_DR_list,
var1=round(predictors_DR_scaled_pca.explained_variance_ratio_[0]*100, 2),
var2=round(predictors_DR_scaled_pca.explained_variance_ratio_[1]*100, 2))
# 3D
cluster.pcaplot(x=loadings_imputed[0], y=loadings_imputed[1], z=loadings_imputed[2],
labels=predictors_list,
var1=round(predictors_scaled_pca.explained_variance_ratio_[0]*100, 2),
var2=round(predictors_scaled_pca.explained_variance_ratio_[1]*100, 2),
var3=round(predictors_scaled_pca.explained_variance_ratio_[2]*100, 2))
#Reduced data
# 2D
cluster.pcaplot(x=loadings_dropRow[0], y=loadings_dropRow[1], labels=predictors_dropRow_list,
var1=round(predictors_dropRow_scaled_pca.explained_variance_ratio_[0]*100, 2),
var2=round(predictors_dropRow_scaled_pca.explained_variance_ratio_[1]*100, 2))
# 3D
cluster.pcaplot(x=loadings_dropRow[0], y=loadings_dropRow[1], z=loadings_dropRow[2],
labels=predictors_dropRow_list,
var1=round(predictors_dropRow_scaled_pca.explained_variance_ratio_[0]*100, 2),
var2=round(predictors_dropRow_scaled_pca.explained_variance_ratio_[1]*100, 2),
var3=round(predictors_dropRow_scaled_pca.explained_variance_ratio_[2]*100, 2))
#Plotting PCA based on https://ostwalprasad.github.io/machine-learning/PCA-using-python.html
# plot data cumulative sum of variances
#explained_variance_ plot for imputed
plt.bar(range(1,len(predictors_scaled_pca.explained_variance_
)+1),predictors_scaled_pca.explained_variance_ )
plt.ylabel('Explained variance')
plt.xlabel('Components')
plt.grid(None)
plt.title('Imputed Set Explained Variance')
plt.plot(range(1,len(predictors_scaled_pca.explained_variance_ )+1),
np.cumsum(predictors_scaled_pca.explained_variance_),
c='red',
label="Cumulative Explained Variance")
plt.legend(loc='upper left')
266
#AL only
plt.bar(range(1,len(predictors_AL_scaled_pca.explained_variance_
)+1),predictors_AL_scaled_pca.explained_variance_ )
plt.ylabel('Explained variance')
plt.xlabel('Components')
plt.grid(None)
plt.title('AL only Imputed Set Explained Variance')
plt.plot(range(1,len(predictors_AL_scaled_pca.explained_variance_ )+1),
np.cumsum(predictors_AL_scaled_pca.explained_variance_),
c='red',
label="Cumulative Explained Variance")
plt.legend(loc='upper left')
#DR only
plt.bar(range(1,len(predictors_DR_scaled_pca.explained_variance_
)+1),predictors_DR_scaled_pca.explained_variance_ )
plt.ylabel('Explained variance')
plt.xlabel('Components')
plt.grid(None)
plt.title('DR only Imputed Set Explained Variance')
plt.plot(range(1,len(predictors_DR_scaled_pca.explained_variance_ )+1),
np.cumsum(predictors_DR_scaled_pca.explained_variance_),
c='red',
label="Cumulative Explained Variance")
plt.legend(loc='upper left')
#explained_variance_ plot for dropRow
plt.bar(range(1,len(predictors_dropRow_scaled_pca.explained_variance_
)+1),predictors_dropRow_scaled_pca.explained_variance_ )
plt.ylabel('Explained variance')
plt.xlabel('Components')
plt.grid(None)
plt.title('Reduced Set Explained Variance')
plt.plot(range(1,len(predictors_dropRow_scaled_pca.explained_variance_ )+1),
np.cumsum(predictors_dropRow_scaled_pca.explained_variance_),
c='red',
label="Cumulative Explained Variance")
plt.legend(loc='upper left')
#explained_variance_ratio_ plot
#Full imputed set
#PCA1 is at 0 in xscale
plt.plot(predictors_scaled_pca.explained_variance_ratio_)
plt.xlabel('number of components')
plt.ylabel('cumulative explained variance')
plt.title('Imputed Set Explained Variance')
plt.show()
267
#Scree plot
plt.plot(predictors_scaled_pca.explained_variance_)
plt.grid(None)
plt.xlabel('number of components')
plt.ylabel('cumulative explained variance')
plt.title('Imputed Set Scree plot')
plt.show()
#Scree plot AL only
plt.plot(predictors_AL_scaled_pca.explained_variance_)
plt.grid(None)
plt.xlabel('number of components')
plt.ylabel('cumulative explained variance')
plt.title('AL only Imputed Set Scree plot')
plt.show()
#Scree plot
plt.plot(predictors_DR_scaled_pca.explained_variance_)
plt.grid(None)
plt.xlabel('number of components')
plt.ylabel('cumulative explained variance')
plt.title('DR onlyImputed Set Scree plot')
plt.show()
#Scatter of PC1 & 2
fig = plt.figure(figsize = (8,8))
ax = fig.add_subplot(1,1,1)
ax.set_xlabel('Principal Component 1', fontsize = 16)
ax.set_ylabel('Principal Component 2', fontsize = 16)
ax.set_title('Imputed Data 2 Component PCA', fontsize = 20)
ax.grid(None)
plt.xticks(fontsize=14)
plt.yticks(fontsize=14)
diets = ['AL', 'DR']
colors = ['r', 'b']
for d, color in zip(diets,colors):
indicesToKeep = finalDf_imputed['diet'] == d
ax.scatter(finalDf_imputed.loc[indicesToKeep, 'principal component 1']
, finalDf_imputed.loc[indicesToKeep, 'principal component 2']
, c = color
, s = 50)
ax.legend(diets, fontsize = 14)
fig.savefig('imputed_PC1vsPC2_'+today.strftime("%m-%d-%y")+'.pdf', bbox_inches='tight')
#dropRow set
#PCA1 is at 0 in xscale
plt.plot(predictors_dropRow_scaled_pca.explained_variance_ratio_)
268
plt.xlabel('number of components')
plt.ylabel('cumulative explained variance')
plt.show()
#Scree plot
plt.plot(predictors_dropRow_scaled_pca.explained_variance_)
plt.xlabel('number of components')
plt.ylabel('cumulative explained variance')
plt.show()
#Scatter of PC1 & 2
fig = plt.figure(figsize = (8,8))
ax = fig.add_subplot(1,1,1)
ax.set_xlabel('Principal Component 1', fontsize = 16)
ax.set_ylabel('Principal Component 2', fontsize = 16)
ax.set_title('Reduced Data 2 Component PCA', fontsize = 20)
ax.grid(None)
plt.xticks(fontsize=14)
plt.yticks(fontsize=14)
diets = ['AL', 'DR']
colors = ['r', 'b']
for d, color in zip(diets,colors):
indicesToKeep = finalDf_dropRow['diet'] == d
ax.scatter(finalDf_dropRow.loc[indicesToKeep, 'principal component 1']
, finalDf_dropRow.loc[indicesToKeep, 'principal component 2']
, c = color
, s = 50)
ax.legend(diets, fontsize = 14)
fig.savefig('reduced_PC1vsPC2_'+today.strftime("%m-%d-%y")+'.pdf', bbox_inches='tight')
#3D scatter plot with first 3 PCs
#Make Plotly figure
# import plotly.plotly as py
# import plotly.graph_objs as go
# plotly.tools.set_credentials_file(username='prasadostwal', api_key='yourapikey')
# # api key hidden
# fig1 = go.Scatter3d(x=predictors_dropRow_pca[:, 0],
# y=predictors_dropRow_pca[:, 1],
# z=predictors_dropRow_pca[:, 2],
# marker=dict(opacity=0.9,
# reversescale=True,
# colorscale='Blues',
# size=5),
# line=dict (width=0.02),
# mode='markers')
269
# #Make Plot.ly Layout
# mylayout = go.Layout(scene=dict(xaxis=dict( title="PCA1"),
# yaxis=dict( title="PCA2"),
# zaxis=dict(title="PCA3")),)
# #Plot and save html
# py.iplot({"data": [fig1],
# "layout": mylayout},
# auto_open=True,
# filename=("3DPlot.html"))
#Plotting effect of variables on components
ax = sns.heatmap(predictors_dropRow_scaled_pca.components_,
cmap='YlGnBu',
yticklabels=[ "PCA"+str(x) for x in range(1,predictors_dropRow_scaled_pca.n_components_+1)],
xticklabels=list(predictors_dropRow_list),
cbar_kws={"orientation": "horizontal"})
ax.set_aspect("equal")
## get PCA loadings plots (2D and 3D) from https://www.reneshbedre.com/blog/principal-component-
analysis.html#pca-interpretation
# 2D
cluster.pcaplot(x=loadings[0], y=loadings[1], labels=df.columns.values,
var1=round(pca_out.explained_variance_ratio_[0]*100, 2),
var2=round(pca_out.explained_variance_ratio_[1]*100, 2))
# 3D
cluster.pcaplot(x=loadings[0], y=loadings[1], z=loadings[2], labels=df.columns.values,
var1=round(pca_out.explained_variance_ratio_[0]*100, 2),
var2=round(pca_out.explained_variance_ratio_[1]*100, 2),
var3=round(pca_out.explained_variance_ratio_[2]*100, 2))
#Plotting PCA Biplot
def myplot(score,coeff,maintitle,labels=None):
xs = score[:,0]
ys = score[:,1]
n = coeff.shape[0]
scalex = 1.0/(xs.max() - xs.min())
scaley = 1.0/(ys.max() - ys.min())
plt.scatter(xs * scalex,ys * scaley,s=5)
plt.title(maintitle)
plt.xlabel("PC{}".format(1))
plt.ylabel("PC{}".format(2))
plt.grid(None)
for i in range(n):
plt.arrow(0, 0, coeff[i,0], coeff[i,1],color = 'r',alpha = 0.5)
if labels is None:
plt.text(coeff[i,0]* 1.15, coeff[i,1] * 1.15, "Var"+str(i+1), color = 'black', ha = 'center', va = 'center')
else:
270
plt.text(coeff[i,0]* 1.15, coeff[i,1] * 1.15, labels[i], color = 'black', ha = 'center', va = 'center')
#full imputed Biplot
myplot(predictors_scaled_pca_trans[:,0:2],np.transpose(predictors_scaled_pca.components_[0:2,
:]),"Imputed Biplot", list(predictors_list)[0:3])
plt.show()
#AL imputed Biplot
myplot(predictors_AL_scaled_pca_trans[:,0:2],np.transpose(predictors_AL_scaled_pca.components_[0:
2, :]),"AL only Imputed Biplot", list(predictors_AL_list)[0:3])
plt.show()
#DR imputed Biplot
myplot(predictors_DR_scaled_pca_trans[:,0:2],np.transpose(predictors_DR_scaled_pca.components_[0:
2, :]),"DR only Imputed Biplot", list(predictors_DR_list)[0:3])
plt.show()
#dropRow reduced Biplot
myplot(predictors_dropRow_scaled_pca_trans[:,0:2],np.transpose(predictors_dropRow_scaled_pca.co
mponents_[0:2, :]),"Reduced Biplot", list(predictors_dropRow_list)[0:5])
plt.show()
# Split the data into training and testing sets
train_features, test_features, train_labels, test_labels = train_test_split(predictors_imputed,
Response_imputed, test_size = 0.25, random_state = 10) #original random state set to 10
#train_features, test_features, train_labels, test_labels = train_test_split(predictors_dropRow_scaled,
Response_dropRow, test_size = 0.25, random_state = 10) #original random state set to 10
#AL only Split the data into training and testing sets
train_features_AL, test_features_AL, train_labels_AL, test_labels_AL =
train_test_split(predictors_AL_imputed, Response_AL_imputed, test_size = 0.25, random_state = 10)
#original random state set to 10
#train_features, test_features, train_labels, test_labels = train_test_split(predictors_dropRow_scaled,
Response_dropRow, test_size = 0.25, random_state = 10) #original random state set to 10
#DR only Split the data into training and testing sets
train_features_DR, test_features_DR, train_labels_DR, test_labels_DR =
train_test_split(predictors_DR_imputed, Response_DR_imputed, test_size = 0.25, random_state = 10)
#original random state set to 10
#train_features, test_features, train_labels, test_labels = train_test_split(predictors_dropRow_scaled,
Response_dropRow, test_size = 0.25, random_state = 10) #original random state set to 10
#DR-AL diet diff Split the data into training and testing sets
train_features_dietdiff, test_features_dietdiff, train_labels_dietdiff, test_labels_dietdiff =
train_test_split(predictors_dietdiff_imputed, Response_dietdiff_imputed, test_size = 0.25,
random_state = 10) #original random state set to 10
#train_features, test_features, train_labels, test_labels = train_test_split(predictors_dropRow_scaled,
Response_dropRow, test_size = 0.25, random_state = 10) #original random state set to 10
print('Training Features Shape:', train_features.shape)
271
print('Training Labels Shape:', train_labels.shape)
print('Testing Features Shape:', test_features.shape)
print('Testing Labels Shape:', test_labels.shape)
###Need to figure out best baseline predictor to use
# The baseline predictions are the historical averages
# baseline_preds = test_features[:, predictor_list.index('medianLS')]
# # Baseline errors, and display average baseline error
# baseline_errors = abs(baseline_preds - test_labels)
# print('Average baseline error: ', round(np.mean(baseline_errors), 2))
#Full imputed data
output = {}
output['Columns'] = ['#Estimators', 'Mean Squared Error', 'R^2', 'Important Features']
Nestimators = 10000
for r in range(len(Response_names)):#_dropRow_names)):
figname = Response_names[r]#Response_dropRow_names[r]
#Setting up output list
###Now training the model: Need to do for each response variable, as started with [:,1] below
# Instantiate model with 1000 decision trees
rf = RandomForestRegressor(n_estimators = Nestimators, random_state = 10, criterion='mse')
# Train the model on training data: ['alphaDto', 'betaDto', 'Variance', 'Bodyweightmg',
'TGugWeightmg', 'MeanLS']
rf.fit(train_features, train_labels[:,r]);
###Now testing model:
# Use the forest's predict method on the test data
predictions = rf.predict(test_features)
predictions_train = rf.predict(train_features)
# Calculate the absolute errors
errors = abs(predictions - test_labels[:,r])
# Print out the mean absolute error (mae)
print('Mean Absolute Error:', [round(np.mean(errors[i]), 2) for i in range(0, errors.shape[0])])
###When removing strains without complete data sets, above
# Mean Absolute Error: [0.89, 0.03, 0.02, 0.14, 11.15, 1.68] #1000 estimators
# Mean Absolute Error: [0.88, 0.03, 0.02, 0.14, 11.19, 1.69] #10000 estimators
# Calculate mean absolute percentage error (MAPE), Mean Squared Error (MSE), and Accuracy
mape = [100 * (errors[i] / test_labels[i]) for i in range(0,errors.shape[0])]
print('MSE train: %.2f, test: %.2f' % (mean_squared_error(train_labels[:,r], predictions_train),
mean_squared_error(test_labels[:,r], predictions)))
# Calculate and display accuracy
accuracy = [100 - np.mean(mape[i]) for i in range(0, errors.shape[0])]
print('Accuracy:', [round(accuracy[i], 2) for i in range(0, errors.shape[0])], '%')
# Accuracy: [113.43, 69.52, 74.48, 87.64, 73.33, 94.36] % #with 10000 estimators
#R^2
r2_score(test_labels[:,r], predictions)
272
print('R^2 train: %.2f, test: %.2f' % (r2_score(train_labels[:,r], predictions_train),
r2_score(test_labels[:,r], predictions)))
###Now checking predictor importance:
# Get numerical feature importances
importances = list(rf.feature_importances_)
# List of tuples with variable and importance
feature_importances = [(feature, round(importance, 2)) for feature, importance in zip(predictors_list,
importances)] #predictors_dropRow_list
# Sort the feature importances by most important first
feature_importances = sorted(feature_importances, key = lambda x: x[1], reverse = True)
feature_importances_out = [(feature, importance) for feature, importance in feature_importances if
importance >= 0.02]
#Adding model values to output
output[figname] = [Nestimators, mean_squared_error(test_labels[:,r], predictions),
r2_score(test_labels[:,r], predictions), feature_importances_out]
# # Plotting residuals
# plt.scatter(
# predictions_train,
# predictions_train - train_labels[:,r],
# c='blue',
# marker='o',
# label='Training data')
# plt.scatter(
# predictions,
# predictions - test_labels[:,r],
# c='green',
# marker='s',
# label='Test data')
# plt.xlabel('Predicted values')
# plt.ylabel('Residuals')
# plt.legend(loc='upper left')
# plt.title(figname+' Residual Plot')
# plt.hlines(y=0, xmin=-10, xmax=50, lw=2, color='red')
# plt.xlim([min(predictions), max(predictions)])
# plt.tight_layout()
# #plt.show()
# plt.savefig(figname+'_resPlot_nonScaled_imputed_'+str(Nestimators)+'Est_'+today.strftime("%m-
%d-%y")+'.png')
# plt.close()
# #Now plotting predictions vs observed
# plt.scatter(predictions_train, train_labels[:,r], c='blue', marker='o', label='Training data')
# plt.scatter(predictions, test_labels[:,r], c='green', marker='s', label='Test data')
# plt.xlabel('Predicted values')
# plt.ylabel('Observed values')
273
# plt.legend(loc='upper left')
# plt.title(figname + ' Predicted vs Observed')
# plt.tight_layout()
# #plt.show()
# plt.savefig(figname+'_PvsO_nonScaled_imputed_'+str(Nestimators)+'Est_'+today.strftime("%m-%d-
%y")+'.png')
# plt.close()
#Writing output
with open('MetabPheno_ALDRmodelRlts_nonSca_imp_'+str(Nestimators)+'Est_'+today.strftime("%m-
%d-%y")+'.tsv', 'w+') as f:
for l in output:
f.write(l)
f.write('\t')
for v in output[l]:
f.write(str(v))
f.write('\t')
f.write('\n')
f.close()
#qqplot
sm.qqplot(predictions)
py.show()
#AL only imputed data
output_AL = {}
output_AL['Columns'] = ['#Estimators', 'Mean Squared Error', 'R^2', 'Important Features']
Nestimators = 10000
for r in range(len(Response_AL_names)):#_dropRow_names)):
figname = Response_AL_names[r]#Response_dropRow_names[r]
#Setting up output list
###Now training the model: Need to do for each response variable, as started with [:,1] below
# Instantiate model with 1000 decision trees
rf_AL = RandomForestRegressor(n_estimators = Nestimators, random_state = 10, criterion='mse')
# Train the model on training data: ['alphaDto', 'betaDto', 'Variance', 'Bodyweightmg',
'TGugWeightmg', 'MeanLS']
rf_AL.fit(train_features_AL, train_labels_AL[:,r]);
###Now testing model:
# Use the forest's predict method on the test data
predictions_AL = rf_AL.predict(test_features_AL)
predictions_train_AL = rf_AL.predict(train_features_AL)
# Calculate the absolute errors
errors_AL = abs(predictions_AL - test_labels_AL[:,r])
# Print out the mean absolute error (mae)
print('Mean Absolute Error:', [round(np.mean(errors_AL[i]), 2) for i in range(0, errors_AL.shape[0])])
###When removing strains without complete data sets, above
# Mean Absolute Error: [0.89, 0.03, 0.02, 0.14, 11.15, 1.68] #1000 estimators
274
# Mean Absolute Error: [0.88, 0.03, 0.02, 0.14, 11.19, 1.69] #10000 estimators
# Calculate mean absolute percentage error (MAPE), Mean Squared Error (MSE), and Accuracy
mape_AL = [100 * (errors_AL[i] / test_labels_AL[i]) for i in range(0,errors_AL.shape[0])]
print('MSE train: %.2f, test: %.2f' % (mean_squared_error(train_labels_AL[:,r], predictions_train_AL),
mean_squared_error(test_labels_AL[:,r], predictions_AL)))
# Calculate and display accuracy
accuracy_AL = [100 - np.mean(mape_AL[i]) for i in range(0, errors_AL.shape[0])]
print('Accuracy:', [round(accuracy_AL[i], 2) for i in range(0, errors_AL.shape[0])], '%')
# Accuracy: [113.43, 69.52, 74.48, 87.64, 73.33, 94.36] % #with 10000 estimators
#R^2
r2_score(test_labels_AL[:,r], predictions_AL)
print('R^2 train: %.2f, test: %.2f' % (r2_score(train_labels_AL[:,r], predictions_train_AL),
r2_score(test_labels_AL[:,r], predictions_AL)))
###Now checking predictor importance:
# Get numerical feature importances
importances_AL = list(rf_AL.feature_importances_)
# List of tuples with variable and importance
feature_importances_AL = [(feature, round(importance, 2)) for feature, importance in
zip(predictors_AL_list, importances_AL)] #predictors_dropRow_list
# Sort the feature importances by most important first
feature_importances_AL = sorted(feature_importances_AL, key = lambda x: x[1], reverse = True)
feature_importances_out_AL = [(feature, importance) for feature, importance in
feature_importances_AL if importance >= 0.02]
#Adding model values to output
output_AL[figname] = [Nestimators, mean_squared_error(test_labels_AL[:,r], predictions_AL),
r2_score(test_labels_AL[:,r], predictions_AL), feature_importances_out_AL]
# # Plotting residuals
# plt.scatter(
# predictions_train_AL,
# predictions_train_AL - train_labels_AL[:,r],
# c='blue',
# marker='o',
# label='Training data')
# plt.scatter(
# predictions_AL,
# predictions_AL - test_labels_AL[:,r],
# c='green',
# marker='s',
# label='Test data')
# plt.xlabel('Predicted values')
# plt.ylabel('Residuals')
# plt.legend(loc='upper left')
# plt.title(figname+' Residual Plot - AL Only')
# plt.hlines(y=0, xmin=-10, xmax=50, lw=2, color='red')
275
# plt.xlim([min(predictions_AL), max(predictions_AL)])
# plt.tight_layout()
# #plt.show()
#
plt.savefig(figname+'_resPlot_ALonly_nonScaled_imputed_'+str(Nestimators)+'Est_'+today.strftime("%
m-%d-%y")+'.png')
# plt.close()
# #Now plotting predictions vs observed
# plt.scatter(predictions_train_AL, train_labels_AL[:,r], c='blue', marker='o', label='Training data')
# plt.scatter(predictions_AL, test_labels_AL[:,r], c='green', marker='s', label='Test data')
# plt.xlabel('Predicted values')
# plt.ylabel('Observed values')
# plt.legend(loc='upper left')
# plt.title(figname + ' Predicted vs Observed - AL Only')
# plt.tight_layout()
# #plt.show()
#
plt.savefig(figname+'_PvsO_ALonly_nonScaled_imputed_'+str(Nestimators)+'Est_'+today.strftime("%m-
%d-%y")+'.png')
# plt.close()
#Writing output
with
open('MetabPheno_modelRlts_nonSca_ALonly_imp_'+str(Nestimators)+'Est_'+today.strftime("%m-%d-
%y")+'.tsv', 'w+') as f:
for l in output_AL:
f.write(l)
f.write('\t')
for v in output_AL[l]:
f.write(str(v))
f.write('\t')
f.write('\n')
f.close()
#qqplot
sm.qqplot(predictions_AL)
py.show()
#DR only imputed data
output_DR = {}
output_DR['Columns'] = ['#Estimators', 'Mean Squared Error', 'R^2', 'Important Features']
Nestimators = 10000
for r in range(len(Response_DR_names)):#_dropRow_names)):
figname = Response_DR_names[r]#Response_dropRow_names[r]
#Setting up output list
###Now training the model: Need to do for each response variable, as started with [:,1] below
# Instantiate model with 1000 decision trees
276
rf_DR = RandomForestRegressor(n_estimators = Nestimators, random_state = 10, criterion='mse')
# Train the model on training data: ['alphaDto', 'betaDto', 'Variance', 'Bodyweightmg',
'TGugWeightmg', 'MeanLS']
rf_DR.fit(train_features_DR, train_labels_DR[:,r]);
###Now testing model:
# Use the forest's predict method on the test data
predictions_DR = rf_DR.predict(test_features_DR)
predictions_train_DR = rf_DR.predict(train_features_DR)
# Calculate the absolute errors
errors_DR = abs(predictions_DR - test_labels_DR[:,r])
# Print out the mean absolute error (mae)
print('Mean Absolute Error:', [round(np.mean(errors_DR[i]), 2) for i in range(0, errors_DR.shape[0])])
###When removing strains without complete data sets, above
# Mean Absolute Error: [0.89, 0.03, 0.02, 0.14, 11.15, 1.68] #1000 estimators
# Mean Absolute Error: [0.88, 0.03, 0.02, 0.14, 11.19, 1.69] #10000 estimators
# Calculate mean absolute percentage error (MAPE), Mean Squared Error (MSE), and Accuracy
mape_DR = [100 * (errors_DR[i] / test_labels_DR[i]) for i in range(0,errors_DR.shape[0])]
print('MSE train: %.2f, test: %.2f' % (mean_squared_error(train_labels_DR[:,r], predictions_train_DR),
mean_squared_error(test_labels_DR[:,r], predictions_DR)))
# Calculate and display accuracy
accuracy_DR = [100 - np.mean(mape_DR[i]) for i in range(0, errors_DR.shape[0])]
print('Accuracy:', [round(accuracy_DR[i], 2) for i in range(0, errors_DR.shape[0])], '%')
# Accuracy: [113.43, 69.52, 74.48, 87.64, 73.33, 94.36] % #with 10000 estimators
#R^2
r2_score(test_labels_DR[:,r], predictions_DR)
print('R^2 train: %.2f, test: %.2f' % (r2_score(train_labels_DR[:,r], predictions_train_DR),
r2_score(test_labels_DR[:,r], predictions_DR)))
###Now checking predictor importance:
# Get numerical feature importances
importances_DR = list(rf_DR.feature_importances_)
# List of tuples with variable and importance
feature_importances_DR = [(feature, round(importance, 2)) for feature, importance in
zip(predictors_DR_list, importances_DR)] #predictors_dropRow_list
# Sort the feature importances by most important first
feature_importances_DR = sorted(feature_importances_DR, key = lambda x: x[1], reverse = True)
feature_importances_out_DR = [(feature, importance) for feature, importance in
feature_importances_DR if importance >= 0.02]
#Adding model values to output
output_DR[figname] = [Nestimators, mean_squared_error(test_labels_DR[:,r], predictions_DR),
r2_score(test_labels_DR[:,r], predictions_DR), feature_importances_out_DR]
# # Plotting residuals
# plt.scatter(
# predictions_train_DR,
277
# predictions_train_DR - train_labels_DR[:,r],
# c='blue',
# marker='o',
# label='Training data')
# plt.scatter(
# predictions_DR,
# predictions_DR - test_labels_DR[:,r],
# c='green',
# marker='s',
# label='Test data')
# plt.xlabel('Predicted values')
# plt.ylabel('Residuals')
# plt.legend(loc='upper left')
# plt.title(figname+' Residual Plot - DR Only')
# plt.hlines(y=0, xmin=-10, xmax=50, lw=2, color='red')
# plt.xlim([min(predictions_DR), max(predictions_DR)])
# plt.tight_layout()
# #plt.show()
#
plt.savefig(figname+'_resPlot_DRonly_nonScaled_imputed_'+str(Nestimators)+'Est_'+today.strftime("%
m-%d-%y")+'.png')
# plt.close()
# #Now plotting predictions vs observed
# plt.scatter(predictions_train_DR, train_labels_DR[:,r], c='blue', marker='o', label='Training data')
# plt.scatter(predictions_DR, test_labels_DR[:,r], c='green', marker='s', label='Test data')
# plt.xlabel('Predicted values')
# plt.ylabel('Observed values')
# plt.legend(loc='upper left')
# plt.title(figname + ' Predicted vs Observed - DR Only')
# plt.tight_layout()
# #plt.show()
#
plt.savefig(figname+'_PvsO_DRonly_nonScaled_imputed_'+str(Nestimators)+'Est_'+today.strftime("%m-
%d-%y")+'.png')
# plt.close()
#Writing output
with
open('MetabPheno_modelRlts_nonSca_DRonly_imp_'+str(Nestimators)+'Est_'+today.strftime("%m-%d-
%y")+'.tsv', 'w+') as f:
for l in output_DR:
f.write(l)
f.write('\t')
for v in output_DR[l]:
f.write(str(v))
f.write('\t')
f.write('\n')
278
f.close()
#qqplot
sm.qqplot(predictions_DR)
py.show()
###Plotting predictor importance:
# Import matplotlib for plotting and use magic command for Jupyter Notebooks
#All imputed data
output_plot = output.pop('Columns')
import matplotlib.pyplot as plt
responseN = 0
for r in output.keys():
responseN += 1
mostimportant = [[p[0] for p in output[r][3]], [i[1] for i in output[r][3]]]
%matplotlib inline
# Set the style
plt.style.use('fivethirtyeight')
# list of x locations for plotting
x_values = list(range(len(mostimportant[1])))
# Make a bar chart
plt.bar(x_values, mostimportant[1], orientation = 'vertical')
# Tick labels for x axis
plt.xticks(x_values, mostimportant[0], rotation='vertical')
#Removing grid
plt.grid(None)
# Axis labels and title
plt.ylabel('Importance');
plt.xlabel('Variable');
plt.title(r+' DR&AL Random Forest Variable Importances');
plt.show()
#plt.savefig(r+' RandomForest_Var_Importances_'+str(Nestimators)+'Est_'+today.strftime("%m-%d-
%y")+'.png')
#AL imputed data
outputAL_plot = output_AL.pop('Columns')
import matplotlib.pyplot as plt
responseN = 0
for r in output_AL.keys():
responseN += 1
mostimportant = [[p[0] for p in output_AL[r][3]], [i[1] for i in output_AL[r][3]]]
%matplotlib inline
# Set the style
plt.style.use('fivethirtyeight')
# list of x locations for plotting
x_values = list(range(len(mostimportant[1])))
# Make a bar chart
plt.bar(x_values, mostimportant[1], orientation = 'vertical')
279
# Tick labels for x axis
plt.xticks(x_values, mostimportant[0], rotation='vertical')
#Removing grid
plt.grid(None)
# Axis labels and title
plt.ylabel('Importance');
plt.xlabel('Variable');
plt.title(r+' Random Forest Variable Importances - AL only');
plt.show()
#plt.savefig(r+'
RandomForest_Var_Importances_ALonly_'+str(Nestimators)+'Est_'+today.strftime("%m-%d-%y")+'.png')
#DR imputed data
outputDR_plot = output_DR.pop('Columns')
import matplotlib.pyplot as plt
responseN = 0
for r in output_DR.keys():
responseN += 1
mostimportant = [[p[0] for p in output_DR[r][3]], [i[1] for i in output_DR[r][3]]]
%matplotlib inline
# Set the style
plt.style.use('fivethirtyeight')
# list of x locations for plotting
x_values = list(range(len(mostimportant[1])))
# Make a bar chart
plt.bar(x_values, mostimportant[1], orientation = 'vertical')
# Tick labels for x axis
plt.xticks(x_values, mostimportant[0], rotation='vertical')
#Removing grid
plt.grid(None)
# Axis labels and title
plt.ylabel('Importance');
plt.xlabel('Variable');
plt.title(r+' Random Forest Variable Importances - DR only');
plt.show()
#plt.savefig(r+'
RandomForest_Var_Importances_DRonly_'+str(Nestimators)+'Est_'+today.strftime("%m-%d-%y")+'.png')
###Plotting one of the trees:
# Pull out one tree from the forest
# tree = rf.estimators_[5]
# # Export the image to a dot file
# export_graphviz(tree, out_file = 'tree.dot', feature_names = predictors_dropRow_list, rounded = True,
precision = 1)
# # Use dot file to create a graph
# (graph, ) = pydot.graph_from_dot_file('tree.dot')
# # Write graph to a png file
# graph.write_png('tree.png')
280
# # Limit depth of tree to 3 levels
# rf_small = RandomForestRegressor(n_estimators=10, max_depth = 3)
# rf_small.fit(train_features, train_labels)
# # Extract the small tree
# tree_small = rf_small.estimators_[5]
# # Save the tree as a png image
# export_graphviz(tree_small, out_file = 'small_tree.dot', feature_names = predictor_list, rounded =
True, precision = 1)
# (graph, ) = pydot.graph_from_dot_file('small_tree.dot')
# graph.write_png('small_tree.png');
###Now checking predictor importance:
# Get numerical feature importances
importances = list(rf.feature_importances_)
# List of tuples with variable and importance
feature_importances = [(feature, round(importance, 2)) for feature, importance in
zip(predictors_dropRow_list, importances)]
# Sort the feature importances by most important first
feature_importances = sorted(feature_importances, key = lambda x: x[1], reverse = True)
# Print out the feature and importances
[print('Variable: {:20} Importance: {}'.format(*pair)) for pair in feature_importances];
###Now only using most important predictors:
# New random forest with only the most important variables >= 0.02
rf_most_important = RandomForestRegressor(n_estimators= 1000, random_state=42)
# Extract the two most important features
important_indices = [predictor_list.index('medianLS'), predictor_list.index('Phenylalanine'),
predictor_list.index('FumaricAcid'), predictor_list.index('Climbingatdead'),
predictor_list.index('ProteinugWeightmg'), predictor_list.index('Daypercentdead')]
train_important = train_features[:, important_indices]
test_important = test_features[:, important_indices]
# Train the random forest
rf_most_important.fit(train_important, train_labels)
# Make predictions and determine the error
predictions = rf_most_important.predict(test_important)
errors = abs(predictions - test_labels)
# Display the performance metrics
print('Mean Absolute Error:', [round(np.mean(errors[:,i]), 2) for i in range(errors.shape[1])])
#Mean Absolute Error: [0.91, 0.03, 0.02, 0.16, 11.74, 1.62] #with 1000 estimators
mape = [100 * (errors[:,i] / test_labels[:,i]) for i in range(errors.shape[1])]
# Calculate and display accuracy
accuracy = [100 - np.mean(mape[i]) for i in range(errors.shape[1])]
print('Accuracy:', [round(accuracy[i], 2) for i in range(errors.shape[1])], '%')
#Accuracy: [113.7, 68.49, 75.08, 85.51, 73.19, 94.92] % with 1000 estimators
###Plotting predictor importance:
281
# Import matplotlib for plotting and use magic command for Jupyter Notebooks
import matplotlib.pyplot as plt
%matplotlib inline
# Set the style
plt.style.use('fivethirtyeight')
# list of x locations for plotting
x_values = list(range(len(importances)))
# Make a bar chart
plt.bar(x_values, importances, orientation = 'vertical')
# Tick labels for x axis
plt.xticks(x_values, predictor_list, rotation='vertical')
# Axis labels and title
plt.ylabel('Importance'); plt.xlabel('Variable'); plt.title('Variable Importances');
APPENDIX D
FullPearsonCorrelation_PhenoMetab_modelingdata.R – R code used for correlation analyses in
Chapter 5.
#set.seed(12345) Uncomment this if you want to only have one random file for permutations
library(openxlsx)
library(factoextra)
library(cluster)
require('corrplot')
start = Sys.time()
source('FDRCalc.R')
writefiles = 0 #Write all files to current working directory. 0 turns off.
savegraphs = 1 #Save scatterplots of correlations of R >= 0.2
allmetdata = read.csv("ModelingData_Metab&Pheno_DR-AL.csv")
TrigAndStarve = read.csv("ModelingData_Metab&Pheno_DR-AL.csv")
allmetdata[allmetdata==""] = NA #Replaces blanks in the matrix with NA, which will be removed later
TrigAndStarve[TrigAndStarve==""] = NA
diet = "DR-AL" #Diet used for experiments
PERMs = 100 #Number of permutations to run
filestem = paste("ModelPhenoMet_", PERMs, "perms_PearCor", sep="") #Name used as header for all
files
ThresholdZScore = 2.5 #Minimum z-score you are wanting. Used to calculate minimum R value needed to
achieve significance.
allmetdata_original = allmetdata
# TrigAndStarve = cbind(TrigAndStarve, allmetdata) #Adding phenos to mets so all traits compared to
self, as well
# allmetdata = TrigAndStarve
282
#allmetdata = allmetdata[complete.cases(TrigAndStarve),] #This removes incomplete cases for all
phenotypes, which is a broad brush. Moved just before analysis and added removal of cases only if they
are incomplete for that phenotype.
#TrigAndStarve = TrigAndStarve[complete.cases(TrigAndStarve),]
print (length(allmetdata))
print (length(TrigAndStarve))
metnames = colnames(allmetdata)
phenonames = colnames(TrigAndStarve)
### Determing Pearson Correlation Coefficients across both data sets provided above. ###
PearsonCorrelations = matrix(nrow = length(allmetdata), ncol = length(TrigAndStarve))
colnames(PearsonCorrelations) = phenonames[1:length(phenonames)]
rownames(PearsonCorrelations) = metnames[1:length(metnames)]
PearsonCorrelations_P_values = matrix(nrow = length(allmetdata), ncol = length(TrigAndStarve))
colnames(PearsonCorrelations_P_values) = phenonames[1:length(phenonames)]
rownames(PearsonCorrelations_P_values) = metnames[1:length(metnames)]
sigCorrelationOut = matrix(nrow = length(PearsonCorrelations), ncol = 3)
colnames(sigCorrelationOut) = c('Correlation Score (R)', "Correlation's P-Value", 'FDR')
sigCorrelationOutrownames = matrix(nrow = length(PearsonCorrelations))
PearsonCorrelationsNames = matrix(nrow = length(PearsonCorrelations), ncol = 1)
sigcount = 0
namecount = 0
if (writefiles == 1) { #This is for ALcorring
subDir = paste(filestem, "_",diet, " ", Sys.Date(), sep = "")
outputpath = file.path(getwd(), subDir)
dir.create(outputpath)
#filestem = paste(outputpath, "/", filestem, sep = "")
finaloutput = matrix(nrow = length(PearsonCorrelations), ncol = 3)
}
for (pheno in 1:length(TrigAndStarve)) {
skip = 0
for (met in 1:length(allmetdata)) {
if (metnames[met] %in% c("strain","diet")) {skip = skip + 1; next}
else {
#print (phenonames[pheno])
#print (metnames[met])
namecount = namecount + 1
PearsonCorrelations[(met-skip), (pheno)] =
cor(as.numeric(TrigAndStarve[pheno][complete.cases(TrigAndStarve[pheno]),]),
as.numeric(allmetdata[met][complete.cases(TrigAndStarve[pheno]),]), method = "pearson", use =
"complete.obs")#PearsonCorrelations[met, pheno] = cor(TrigAndStarve[pheno], allmetdata[met],
method = "pearson") #Removing strains with no data for a phenotype. This results in different strain
numbers being used to for each phenotype.
PearsonCorrelations_P_values[(met-skip), (pheno)] =
cor.ALcorr(as.numeric(TrigAndStarve[pheno][complete.cases(TrigAndStarve[pheno]),]),
as.numeric(allmetdata[met][complete.cases(TrigAndStarve[pheno]),]), method = "pearson", use =
"complete.obs")$p.value
283
PearsonCorrelationsNames[namecount] = paste(phenonames[pheno], " and ",
metnames[(met-skip)])
if (savegraphs == 1 && !exists(paste(outputpath, "/", phenonames[pheno], '_',
metnames[(met-skip)], '-plot.pdf', sep = ""))) {
if ((abs(PearsonCorrelations[(met-skip), (pheno)]) > 0.4) &
(PearsonCorrelations_P_values[(met-skip), (pheno)] < 0.01)) {
sigcount = sigcount + 1
sigCorrelationOut[sigcount, 1] = PearsonCorrelations[(met-skip),
(pheno)]
sigCorrelationOut[sigcount, 2] =
PearsonCorrelations_P_values[(met-skip), (pheno)]
templm = lm(TrigAndStarve[,pheno] ~ allmetdata[,(met-skip)])
dev.new()
plot(allmetdata[,(met-skip)], TrigAndStarve[,pheno], xlab =
metnames[(met-skip)], ylab = phenonames[pheno], main = paste(phenonames[pheno], "'s Correlation
with ", metnames[(met-skip)], "\non ", diet, ", r = ", PearsonCorrelations[(met-skip), pheno])) #
abline(templm, col = "blue")
#abline(a=PearsonCorrelations[(met-skip), pheno],
b=ALcorr$coefficients[1], col = "red")
legend('topright', c("Line of Best Fit"), lty=c(1), lwd=c(1),
col=c("blue"))
dev.print(pdf, paste(outputpath, "/", phenonames[pheno], '_',
metnames[(met-skip)], '-plot.pdf', sep = ""))
dev.off()
}
}
}
}
}
#filestem = "Phenotype_Stoch_Pheno_PearCor"
#filestem = paste("C:", outputpath, "/", filestem)
if (writefiles == 1) {
write.csv(PearsonCorrelations, paste(outputpath, "/", filestem, "_", diet, "_", Sys.Date(),".csv",
sep = ""))
write.csv(PearsonCorrelations_P_values, paste(outputpath, "/", filestem, diet, "_P-values_",
Sys.Date(),".csv", sep = ""))
}
#rownames(sigCorrelationOut) = sigCorrelationOutrownames[1:length(sigCorrelationOutrownames)]
#Now going to determine the highest r value to expect from these permutations
PearsonCorrelations = PearsonCorrelations[complete.cases(PearsonCorrelations)] #Removing rows with
any NA values. This should remove all strain and diet_dr rows, allowing for calculation of mean and
standard deviation
PearsonCorrelations_P_values =
PearsonCorrelations_P_values[complete.cases(PearsonCorrelations_P_values)] #Removing rows with
any NA values. This should remove all strain and diet_dr rows, allowing for counting of p-values
#Using Corrplot() with method='circle'e and order='hclust' to plot matrix
#DR&AL
284
DRandALcorrs = read.table('ModelPhenoMet_1000perms_PearCor_DR&AL_2022-01-26.csv',
row.names=1, header=TRUE, sep=',')
colnames(DRandALcorrs) = gsub('[[:digit:][:punct:]]+', '', colnames(DRminALcorrs))
rownames(DRandALcorrs) = gsub('[[:digit:][:punct:]]+', '', rownames(DRminALcorrs))
#define linkage methods
m <- c( "average", "single", "complete", "ward", "ward")
names(m) <- c( "average", "single", "complete", "ward")
#function to compute agglomerative coefficient
ac <- function(x) {
agnes(as.matrix(DRminALcorrs), method = x)$ac
}
#calculate agglomerative coefficient for each clustering linkage method, closer to 1 the better
sapply(m, ac)
# average single complete ward
# 0.6728689 0.3704919 0.8064456 0.9333948
dev.new()
corrplot(as.matrix(DRandALcorrs),
method = "circle",
order = "hclust", # Ordering method of the matrix
hclust.method = "ward.D2", # If order = "hclust", is the cluster method to be used
addrect = 5, # If order = "hclust", number of cluster rectangles
rect.col = 1, # Color of the rectangles
rect.lwd = 3,
#title = 'Pheno & Metab Correlation Plot - DR&AL',
tl.col = 'black',
bg = 'white',
tl.cex = .3)
dev.print(pdf, paste(outputpath, "/", 'PhenoMetab_DR&AL_Corrplot.pdf', sep = ""))
dev.off()
#AL Only
ALcorr = read.table('ModelPhenoMet_100perms_PearCor_AL_2022-01-27.csv', row.names=1,
header=TRUE, sep=',')
colnames(ALcorr) = gsub('[[:digit:][:punct:]]+', '', colnames(ALcorr))
rownames(ALcorr) = gsub('[[:digit:][:punct:]]+', '', rownames(ALcorr))
#function to compute agglomerative coefficient
ac <- function(x) {
agnes(as.matrix(ALcorr), method = x)$ac
}
#calculate agglomerative coefficient for each clustering linkage method, closer to 1 the better
sapply(m, ac)
# average single complete ward
# 0.7271214 0.4589022 0.8377543 0.9478365
285
dev.new()
corrplot(as.matrix(ALcorr),
method = "circle",
order = "hclust", # Ordering method of the matrix
hclust.method = "ward.D2", # If order = "hclust", is the cluster method to be used
addrect = 5, # If order = "hclust", number of cluster rectangles
rect.col = 1, # Color of the rectangles
rect.lwd = 3,
#title = 'Pheno & Metab Correlation Plot - AL only',
tl.col = 'black',
bg = 'white',
tl.cex = .3)
dev.print(pdf, paste(outputpath, "/", 'PhenoMetab_ALonly_Corrplot.pdf', sep = ""))
dev.off()
#DR only
DRcorrs = read.table('ModelPhenoMet_100perms_PearCor_DR_2022-01-27.csv', row.names=1,
header=TRUE, sep=',')
colnames(DRcorrs) = gsub('[[:digit:][:punct:]]+', '', colnames(DRcorrs))
rownames(DRcorrs) = gsub('[[:digit:][:punct:]]+', '', rownames(DRcorrs))
#function to compute agglomerative coefficient
ac <- function(x) {
agnes(as.matrix(DRcorrs), method = x)$ac
}
#calculate agglomerative coefficient for each clustering linkage method, closer to 1 the better
sapply(m, ac)
# average single complete ward
# 0.7421574 0.4490277 0.8429683 0.9483554
dev.new()
corrplot(as.matrix(DRcorrs),
method = "circle",
order = "hclust", # Ordering method of the matrix
hclust.method = "ward.D2", # If order = "hclust", is the cluster method to be used
addrect = 5, # If order = "hclust", number of cluster rectangles
rect.col = 1, # Color of the rectangles
rect.lwd = 3,
#title = 'Pheno & Metab Correlation Plot - DR only',
tl.col = 'black',
bg = 'white',
tl.cex = .3)
dev.print(pdf, paste(outputpath, "/", 'PhenoMetab_DRonly_Corrplot.pdf', sep = ""))
dev.off()
#DR-AL only
286
DRminALcorrs = read.table('ModelPhenoMet_100perms_PearCor_DR-AL_2022-01-27.csv',
row.names=1, header=TRUE, sep=',')
colnames(DRminALcorrs) = gsub('[[:digit:][:punct:]]+', '', colnames(DRminALcorrs))
rownames(DRminALcorrs) = gsub('[[:digit:][:punct:]]+', '', rownames(DRminALcorrs))
#function to compute agglomerative coefficient
ac <- function(x) {
agnes(as.matrix(DRminALcorrs), method = x)$ac
}
#calculate agglomerative coefficient for each clustering linkage method, closer to 1 the better
sapply(m, ac)
# average single complete ward
# 0.6728689 0.3704919 0.8064456 0.9333948
dev.new()
corrplot(as.matrix(DRminALcorrs),
method = "circle",
order = "hclust", # Ordering method of the matrix
hclust.method = "ward.D2", # If order = "hclust", is the cluster method to be used
addrect = 5, # If order = "hclust", number of cluster rectangles
rect.col = 1, # Color of the rectangles
rect.lwd = 3,
#title = 'Pheno & Metab Correlation Plot - DR-AL',
tl.col = 'black',
bg = 'white',
tl.cex = .3)
dev.print(pdf, paste(outputpath, "/", 'PhenoMetab_DR-AL_Corrplot.pdf', sep = ""))
dev.off()
#dev.new()
#hist(PearsonCorrelations)
#dev.new()
#hist(PearsonCorrelations_P_values)
#belowthresPValue = sum(PearsonCorrelations_P_values < ThresholdPValue)
PvalueTable = matrix(nrow = 10, ncol = 1)
rownames(PvalueTable) = c("5*10^-1", "5*10^-2", "5*10^-3", "5*10^-4", "5*10^-5", "5*10^-6", "5*10^-
7", "5*10^-8", "5*10^-9", "5*10^-10")
colnames(PvalueTable) = c('Number of Correlations with P-Value or Below')
for (i in 1:10) {
PvalueTable[i] = sum(PearsonCorrelations_P_values <= (10^-i))
}
if (writefiles == 1) {write.csv(PvalueTable, paste(outputpath, "/", filestem, "_P-values_Totals_", diet, "_",
Sys.Date(),".csv", sep = ""))}
### Running permutations of the above ALcorr to determine false detection rates for real p-values found
above. ###
for (p in 1:PERMs) {
287
scramble = sample(1:length(allmetdata_original[, 1])) #Creating newly scrambled permutation
order of metab