Stratified by Genotype
COMPOUND NIPBL WAPL
n 12 5 9
Mother (%)
F08978 2 ( 16.7) 2 ( 40.0) 4 ( 44.4)
F08980 2 ( 16.7) 1 ( 20.0) 1 ( 11.1)
F08984 1 ( 8.3) 1 ( 20.0) 1 ( 11.1)
F09231 2 ( 16.7) 0 ( 0.0) 3 ( 33.3)
F09233 3 ( 25.0) 0 ( 0.0) 0 ( 0.0)
F09449 2 ( 16.7) 1 ( 20.0) 0 ( 0.0)
Embryo (mean (SD)) 0.68 (0.13) 0.61 (0.12) 0.84 (0.15)
Placenta (mean (SD)) 0.09 (0.01) 0.09 (0.01) 0.08 (0.01)
Genotype (%)
COMPOUND 12 (100.0) 0 ( 0.0) 0 ( 0.0)
NIPBL 0 ( 0.0) 5 (100.0) 0 ( 0.0)
WAPL 0 ( 0.0) 0 ( 0.0) 9 (100.0)
WAPL_NIPBL_FLOX 0 ( 0.0) 0 ( 0.0) 0 ( 0.0)
WT 0 ( 0.0) 0 ( 0.0) 0 ( 0.0)
Sex = Male (%) 8 ( 66.7) 2 ( 40.0) 6 ( 66.7)
Embryo_Placenta (mean (SD)) 7.83 (1.34) 6.95 (1.16) 10.07 (1.45)
Stratified by Genotype
WAPL_NIPBL_FLOX WT p test
n 2 6
Mother (%) 0.260
F08978 0 ( 0.0) 0 ( 0.0)
F08980 0 ( 0.0) 2 ( 33.3)
F08984 1 ( 50.0) 1 ( 16.7)
F09231 0 ( 0.0) 0 ( 0.0)
F09233 0 ( 0.0) 3 ( 50.0)
F09449 1 ( 50.0) 0 ( 0.0)
Embryo (mean (SD)) 0.88 (0.17) 1.05 (0.03) <0.001
Placenta (mean (SD)) 0.09 (0.02) 0.09 (0.01) 0.563
Genotype (%) <0.001
COMPOUND 0 ( 0.0) 0 ( 0.0)
NIPBL 0 ( 0.0) 0 ( 0.0)
WAPL 0 ( 0.0) 0 ( 0.0)
WAPL_NIPBL_FLOX 2 (100.0) 0 ( 0.0)
WT 0 ( 0.0) 6 (100.0)
Sex = Male (%) 1 ( 50.0) 1 ( 16.7) 0.277
Embryo_Placenta (mean (SD)) 9.26 (0.35) 11.79 (1.32) <0.001
Shapiro-Wilk normality test
data: R_Wapl_and_Nipbl$Embryo
W = 0.95105, p-value = 0.1321
Shapiro-Wilk normality test
data: R_Wapl_and_Nipbl$Placenta
W = 0.9809, p-value = 0.8007
Shapiro-Wilk normality test
data: R_Wapl_and_Nipbl$Embryo_Placenta
W = 0.96439, p-value = 0.325
All variables passed normality test
Welch Two Sample t-test
data: Embryo - Placenta by Genotype
t = -4.1601, df = 9.6608, p-value = 0.002099
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
-0.31974146 -0.09600298
sample estimates:
mean in group WAPL mean in group WT
0.7561444 0.9640167
Df Sum Sq Mean Sq F value Pr(>F)
Genotype 4 94.44 23.610 13.49 2.52e-06 ***
Residuals 29 50.77 1.751
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Tukey multiple comparisons of means
95% family-wise confidence level
Fit: aov(formula = Embryo_Placenta ~ Genotype, data = R_Wapl_and_Nipbl)
$Genotype
diff lwr upr p adj
NIPBL-COMPOUND -0.8751612 -2.9224611 1.172139 0.7270437
WAPL-COMPOUND 2.2443427 0.5483249 3.940360 0.0050741
WAPL_NIPBL_FLOX-COMPOUND 1.4309999 -1.5065890 4.368589 0.6226762
WT-COMPOUND 3.9624760 2.0393726 5.885579 0.0000154
WAPL-NIPBL 3.1195039 0.9741923 5.264815 0.0018683
WAPL_NIPBL_FLOX-NIPBL 2.3061611 -0.9118062 5.524129 0.2543442
WT-NIPBL 4.8376372 2.5086434 7.166631 0.0000135
WAPL_NIPBL_FLOX-WAPL -0.8133428 -3.8200608 2.193375 0.9325310
WT-WAPL 1.7181333 -0.3089956 3.745262 0.1272170
WT-WAPL_NIPBL_FLOX 2.5314761 -0.6089385 5.671891 0.1603826
Overall Anova is significant indicating difference in genotypes
We also can look at individual relationships using the posthoc testing
Df Sum Sq Mean Sq F value Pr(>F)
Genotype 4 94.44 23.610 47.899 2.28e-08 ***
Mother 5 39.10 7.821 15.866 1.59e-05 ***
Genotype:Mother 9 4.28 0.475 0.964 0.504
Residuals 15 7.39 0.493
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Tukey multiple comparisons of means
95% family-wise confidence level
Fit: aov(formula = Embryo_Placenta ~ Genotype * Mother, data = R_Wapl_and_Nipbl)
$Genotype
diff lwr upr p adj
NIPBL-COMPOUND -0.8751612 -2.0291504 0.2788279 0.1854976
WAPL-COMPOUND 2.2443427 1.2883586 3.2003267 0.0000243
WAPL_NIPBL_FLOX-COMPOUND 1.4309999 -0.2248130 3.0868129 0.1068667
WT-COMPOUND 3.9624760 2.8784919 5.0464600 0.0000001
WAPL-NIPBL 3.1195039 1.9102691 4.3287387 0.0000079
WAPL_NIPBL_FLOX-NIPBL 2.3061611 0.4923089 4.1200134 0.0100484
WT-NIPBL 4.8376372 3.5248673 6.1504071 0.0000001
WAPL_NIPBL_FLOX-WAPL -0.8133428 -2.5081213 0.8814358 0.5884403
WT-WAPL 1.7181333 0.5755138 2.8607528 0.0025101
WT-WAPL_NIPBL_FLOX 2.5314761 0.7613375 4.3016146 0.0038868
$Mother
diff lwr upr p adj
F08980-F08978 2.4997275 1.2678286 3.73162636 0.0001037
F08984-F08978 1.8008638 0.5004746 3.10125293 0.0046377
F09231-F08978 0.1985110 -1.1018782 1.49890018 0.9955742
F09233-F08978 0.3772246 -0.8546743 1.60912350 0.9125559
F09449-F08978 -0.3432881 -1.7401301 1.05355396 0.9634289
F08984-F08980 -0.6988637 -2.0800981 0.68237066 0.5847730
F09231-F08980 -2.3012165 -3.6824508 -0.91998208 0.0008350
F09233-F08980 -2.1225029 -3.4394582 -0.80554756 0.0011569
F09449-F08980 -2.8430156 -4.3154164 -1.37061477 0.0001794
F09231-F08984 -1.6023527 -3.0450050 -0.15970048 0.0254757
F09233-F08984 -1.4236391 -2.8048735 -0.04240476 0.0415478
F09449-F08984 -2.1441518 -3.6743156 -0.61398805 0.0041898
F09233-F09231 0.1787136 -1.2025208 1.55994798 0.9979659
F09449-F09231 -0.5417991 -2.0719629 0.98836469 0.8526930
F09449-F09233 -0.7205127 -2.1929135 0.75188810 0.6166675
$`Genotype:Mother`
diff lwr
NIPBL:F08978-COMPOUND:F08978 -0.77845281 -3.94527515
WAPL:F08978-COMPOUND:F08978 2.25705369 -0.48549490
WAPL_NIPBL_FLOX:F08978-COMPOUND:F08978 NA NA
WT:F08978-COMPOUND:F08978 NA NA
COMPOUND:F08980-COMPOUND:F08978 2.70092311 -0.46589923
NIPBL:F08980-COMPOUND:F08978 1.30881167 -2.56973775
WAPL:F08980-COMPOUND:F08978 5.29362700 1.41507759
WAPL_NIPBL_FLOX:F08980-COMPOUND:F08978 NA NA
WT:F08980-COMPOUND:F08978 6.23570453 3.06888219
COMPOUND:F08984-COMPOUND:F08978 2.06376377 -1.81478564
NIPBL:F08984-COMPOUND:F08978 0.87462324 -3.00392618
WAPL:F08984-COMPOUND:F08978 5.27467975 1.39613034
WAPL_NIPBL_FLOX:F08984-COMPOUND:F08978 2.47225347 -1.40629595
WT:F08984-COMPOUND:F08978 5.23431895 1.35576953
COMPOUND:F09231-COMPOUND:F08978 0.07443174 -3.09239060
NIPBL:F09231-COMPOUND:F08978 NA NA
WAPL:F09231-COMPOUND:F08978 2.57646089 -0.31443916
WAPL_NIPBL_FLOX:F09231-COMPOUND:F08978 NA NA
WT:F09231-COMPOUND:F08978 NA NA
COMPOUND:F09233-COMPOUND:F08978 1.17121000 -1.71969006
NIPBL:F09233-COMPOUND:F08978 NA NA
WAPL:F09233-COMPOUND:F08978 NA NA
WAPL_NIPBL_FLOX:F09233-COMPOUND:F08978 NA NA
WT:F09233-COMPOUND:F08978 3.60678043 0.71588038
COMPOUND:F09449-COMPOUND:F08978 -0.81283825 -3.97966059
NIPBL:F09449-COMPOUND:F08978 -1.04299087 -4.92154028
WAPL:F09449-COMPOUND:F08978 NA NA
WAPL_NIPBL_FLOX:F09449-COMPOUND:F08978 1.97348418 -1.90506524
WT:F09449-COMPOUND:F08978 NA NA
WAPL:F08978-NIPBL:F08978 3.03550650 0.29295791
WAPL_NIPBL_FLOX:F08978-NIPBL:F08978 NA NA
WT:F08978-NIPBL:F08978 NA NA
COMPOUND:F08980-NIPBL:F08978 3.47937592 0.31255358
NIPBL:F08980-NIPBL:F08978 2.08726448 -1.79128494
WAPL:F08980-NIPBL:F08978 6.07207982 2.19353040
WAPL_NIPBL_FLOX:F08980-NIPBL:F08978 NA NA
WT:F08980-NIPBL:F08978 7.01415734 3.84733500
COMPOUND:F08984-NIPBL:F08978 2.84221659 -1.03633283
NIPBL:F08984-NIPBL:F08978 1.65307605 -2.22547337
WAPL:F08984-NIPBL:F08978 6.05313257 2.17458315
WAPL_NIPBL_FLOX:F08984-NIPBL:F08978 3.25070628 -0.62784314
WT:F08984-NIPBL:F08978 6.01277176 2.13422234
COMPOUND:F09231-NIPBL:F08978 0.85288455 -2.31393779
NIPBL:F09231-NIPBL:F08978 NA NA
WAPL:F09231-NIPBL:F08978 3.35491370 0.46401365
WAPL_NIPBL_FLOX:F09231-NIPBL:F08978 NA NA
WT:F09231-NIPBL:F08978 NA NA
COMPOUND:F09233-NIPBL:F08978 1.94966281 -0.94123724
NIPBL:F09233-NIPBL:F08978 NA NA
WAPL:F09233-NIPBL:F08978 NA NA
WAPL_NIPBL_FLOX:F09233-NIPBL:F08978 NA NA
WT:F09233-NIPBL:F08978 4.38523325 1.49433320
COMPOUND:F09449-NIPBL:F08978 -0.03438544 -3.20120778
NIPBL:F09449-NIPBL:F08978 -0.26453805 -4.14308747
WAPL:F09449-NIPBL:F08978 NA NA
WAPL_NIPBL_FLOX:F09449-NIPBL:F08978 2.75193700 -1.12661242
WT:F09449-NIPBL:F08978 NA NA
WAPL_NIPBL_FLOX:F08978-WAPL:F08978 NA NA
WT:F08978-WAPL:F08978 NA NA
COMPOUND:F08980-WAPL:F08978 0.44386941 -2.29867918
NIPBL:F08980-WAPL:F08978 -0.94824202 -4.48885703
WAPL:F08980-WAPL:F08978 3.03657331 -0.50404170
WAPL_NIPBL_FLOX:F08980-WAPL:F08978 NA NA
WT:F08980-WAPL:F08978 3.97865084 1.23610224
COMPOUND:F08984-WAPL:F08978 -0.19328992 -3.73390493
NIPBL:F08984-WAPL:F08978 -1.38243046 -4.92304547
WAPL:F08984-WAPL:F08978 3.01762606 -0.52298895
WAPL_NIPBL_FLOX:F08984-WAPL:F08978 0.21519978 -3.32541524
WT:F08984-WAPL:F08978 2.97726526 -0.56334976
COMPOUND:F09231-WAPL:F08978 -2.18262195 -4.92517055
NIPBL:F09231-WAPL:F08978 NA NA
WAPL:F09231-WAPL:F08978 0.31940720 -2.09929332
WAPL_NIPBL_FLOX:F09231-WAPL:F08978 NA NA
WT:F09231-WAPL:F08978 NA NA
COMPOUND:F09233-WAPL:F08978 -1.08584370 -3.50454421
NIPBL:F09233-WAPL:F08978 NA NA
WAPL:F09233-WAPL:F08978 NA NA
WAPL_NIPBL_FLOX:F09233-WAPL:F08978 NA NA
WT:F09233-WAPL:F08978 1.34972674 -1.06897377
COMPOUND:F09449-WAPL:F08978 -3.06989194 -5.81244054
NIPBL:F09449-WAPL:F08978 -3.30004456 -6.84065957
WAPL:F09449-WAPL:F08978 NA NA
WAPL_NIPBL_FLOX:F09449-WAPL:F08978 -0.28356951 -3.82418452
WT:F09449-WAPL:F08978 NA NA
WT:F08978-WAPL_NIPBL_FLOX:F08978 NA NA
COMPOUND:F08980-WAPL_NIPBL_FLOX:F08978 NA NA
NIPBL:F08980-WAPL_NIPBL_FLOX:F08978 NA NA
WAPL:F08980-WAPL_NIPBL_FLOX:F08978 NA NA
WAPL_NIPBL_FLOX:F08980-WAPL_NIPBL_FLOX:F08978 NA NA
WT:F08980-WAPL_NIPBL_FLOX:F08978 NA NA
COMPOUND:F08984-WAPL_NIPBL_FLOX:F08978 NA NA
NIPBL:F08984-WAPL_NIPBL_FLOX:F08978 NA NA
WAPL:F08984-WAPL_NIPBL_FLOX:F08978 NA NA
WAPL_NIPBL_FLOX:F08984-WAPL_NIPBL_FLOX:F08978 NA NA
WT:F08984-WAPL_NIPBL_FLOX:F08978 NA NA
COMPOUND:F09231-WAPL_NIPBL_FLOX:F08978 NA NA
NIPBL:F09231-WAPL_NIPBL_FLOX:F08978 NA NA
WAPL:F09231-WAPL_NIPBL_FLOX:F08978 NA NA
WAPL_NIPBL_FLOX:F09231-WAPL_NIPBL_FLOX:F08978 NA NA
WT:F09231-WAPL_NIPBL_FLOX:F08978 NA NA
COMPOUND:F09233-WAPL_NIPBL_FLOX:F08978 NA NA
NIPBL:F09233-WAPL_NIPBL_FLOX:F08978 NA NA
WAPL:F09233-WAPL_NIPBL_FLOX:F08978 NA NA
WAPL_NIPBL_FLOX:F09233-WAPL_NIPBL_FLOX:F08978 NA NA
WT:F09233-WAPL_NIPBL_FLOX:F08978 NA NA
COMPOUND:F09449-WAPL_NIPBL_FLOX:F08978 NA NA
NIPBL:F09449-WAPL_NIPBL_FLOX:F08978 NA NA
WAPL:F09449-WAPL_NIPBL_FLOX:F08978 NA NA
WAPL_NIPBL_FLOX:F09449-WAPL_NIPBL_FLOX:F08978 NA NA
WT:F09449-WAPL_NIPBL_FLOX:F08978 NA NA
COMPOUND:F08980-WT:F08978 NA NA
NIPBL:F08980-WT:F08978 NA NA
WAPL:F08980-WT:F08978 NA NA
WAPL_NIPBL_FLOX:F08980-WT:F08978 NA NA
WT:F08980-WT:F08978 NA NA
COMPOUND:F08984-WT:F08978 NA NA
NIPBL:F08984-WT:F08978 NA NA
WAPL:F08984-WT:F08978 NA NA
WAPL_NIPBL_FLOX:F08984-WT:F08978 NA NA
WT:F08984-WT:F08978 NA NA
COMPOUND:F09231-WT:F08978 NA NA
NIPBL:F09231-WT:F08978 NA NA
WAPL:F09231-WT:F08978 NA NA
WAPL_NIPBL_FLOX:F09231-WT:F08978 NA NA
WT:F09231-WT:F08978 NA NA
COMPOUND:F09233-WT:F08978 NA NA
NIPBL:F09233-WT:F08978 NA NA
WAPL:F09233-WT:F08978 NA NA
WAPL_NIPBL_FLOX:F09233-WT:F08978 NA NA
WT:F09233-WT:F08978 NA NA
COMPOUND:F09449-WT:F08978 NA NA
NIPBL:F09449-WT:F08978 NA NA
WAPL:F09449-WT:F08978 NA NA
WAPL_NIPBL_FLOX:F09449-WT:F08978 NA NA
WT:F09449-WT:F08978 NA NA
NIPBL:F08980-COMPOUND:F08980 -1.39211144 -5.27066085
WAPL:F08980-COMPOUND:F08980 2.59270390 -1.28584552
WAPL_NIPBL_FLOX:F08980-COMPOUND:F08980 NA NA
WT:F08980-COMPOUND:F08980 3.53478142 0.36795908
COMPOUND:F08984-COMPOUND:F08980 -0.63715933 -4.51570875
NIPBL:F08984-COMPOUND:F08980 -1.82629987 -5.70484929
WAPL:F08984-COMPOUND:F08980 2.57375665 -1.30479277
WAPL_NIPBL_FLOX:F08984-COMPOUND:F08980 -0.22866964 -4.10721906
WT:F08984-COMPOUND:F08980 2.53339584 -1.34515358
COMPOUND:F09231-COMPOUND:F08980 -2.62649137 -5.79331371
NIPBL:F09231-COMPOUND:F08980 NA NA
WAPL:F09231-COMPOUND:F08980 -0.12446222 -3.01536227
WAPL_NIPBL_FLOX:F09231-COMPOUND:F08980 NA NA
WT:F09231-COMPOUND:F08980 NA NA
COMPOUND:F09233-COMPOUND:F08980 -1.52971311 -4.42061316
NIPBL:F09233-COMPOUND:F08980 NA NA
WAPL:F09233-COMPOUND:F08980 NA NA
WAPL_NIPBL_FLOX:F09233-COMPOUND:F08980 NA NA
WT:F09233-COMPOUND:F08980 0.90585733 -1.98504272
COMPOUND:F09449-COMPOUND:F08980 -3.51376136 -6.68058369
NIPBL:F09449-COMPOUND:F08980 -3.74391397 -7.62246339
WAPL:F09449-COMPOUND:F08980 NA NA
WAPL_NIPBL_FLOX:F09449-COMPOUND:F08980 -0.72743892 -4.60598834
WT:F09449-COMPOUND:F08980 NA NA
WAPL:F08980-NIPBL:F08980 3.98481533 -0.49374777
WAPL_NIPBL_FLOX:F08980-NIPBL:F08980 NA NA
WT:F08980-NIPBL:F08980 4.92689286 1.04834344
COMPOUND:F08984-NIPBL:F08980 0.75495210 -3.72361100
NIPBL:F08984-NIPBL:F08980 -0.43418844 -4.91275154
WAPL:F08984-NIPBL:F08980 3.96586808 -0.51269502
WAPL_NIPBL_FLOX:F08984-NIPBL:F08980 1.16344180 -3.31512130
WT:F08984-NIPBL:F08980 3.92550728 -0.55305582
COMPOUND:F09231-NIPBL:F08980 -1.23437993 -5.11292935
NIPBL:F09231-NIPBL:F08980 NA NA
WAPL:F09231-NIPBL:F08980 1.26764922 -2.38908224
WAPL_NIPBL_FLOX:F09231-NIPBL:F08980 NA NA
WT:F09231-NIPBL:F08980 NA NA
COMPOUND:F09233-NIPBL:F08980 -0.13760168 -3.79433314
NIPBL:F09233-NIPBL:F08980 NA NA
WAPL:F09233-NIPBL:F08980 NA NA
WAPL_NIPBL_FLOX:F09233-NIPBL:F08980 NA NA
WT:F09233-NIPBL:F08980 2.29796876 -1.35876270
COMPOUND:F09449-NIPBL:F08980 -2.12164992 -6.00019934
NIPBL:F09449-NIPBL:F08980 -2.35180254 -6.83036564
WAPL:F09449-NIPBL:F08980 NA NA
WAPL_NIPBL_FLOX:F09449-NIPBL:F08980 0.66467251 -3.81389059
WT:F09449-NIPBL:F08980 NA NA
WAPL_NIPBL_FLOX:F08980-WAPL:F08980 NA NA
WT:F08980-WAPL:F08980 0.94207752 -2.93647189
COMPOUND:F08984-WAPL:F08980 -3.22986323 -7.70842633
NIPBL:F08984-WAPL:F08980 -4.41900377 -8.89756687
WAPL:F08984-WAPL:F08980 -0.01894725 -4.49751035
WAPL_NIPBL_FLOX:F08984-WAPL:F08980 -2.82137354 -7.29993664
WT:F08984-WAPL:F08980 -0.05930806 -4.53787116
COMPOUND:F09231-WAPL:F08980 -5.21919526 -9.09774468
NIPBL:F09231-WAPL:F08980 NA NA
WAPL:F09231-WAPL:F08980 -2.71716611 -6.37389757
WAPL_NIPBL_FLOX:F09231-WAPL:F08980 NA NA
WT:F09231-WAPL:F08980 NA NA
COMPOUND:F09233-WAPL:F08980 -4.12241701 -7.77914847
NIPBL:F09233-WAPL:F08980 NA NA
WAPL:F09233-WAPL:F08980 NA NA
WAPL_NIPBL_FLOX:F09233-WAPL:F08980 NA NA
WT:F09233-WAPL:F08980 -1.68684657 -5.34357803
COMPOUND:F09449-WAPL:F08980 -6.10646525 -9.98501467
NIPBL:F09449-WAPL:F08980 -6.33661787 -10.81518097
WAPL:F09449-WAPL:F08980 NA NA
WAPL_NIPBL_FLOX:F09449-WAPL:F08980 -3.32014282 -7.79870592
WT:F09449-WAPL:F08980 NA NA
WT:F08980-WAPL_NIPBL_FLOX:F08980 NA NA
COMPOUND:F08984-WAPL_NIPBL_FLOX:F08980 NA NA
NIPBL:F08984-WAPL_NIPBL_FLOX:F08980 NA NA
WAPL:F08984-WAPL_NIPBL_FLOX:F08980 NA NA
WAPL_NIPBL_FLOX:F08984-WAPL_NIPBL_FLOX:F08980 NA NA
WT:F08984-WAPL_NIPBL_FLOX:F08980 NA NA
COMPOUND:F09231-WAPL_NIPBL_FLOX:F08980 NA NA
NIPBL:F09231-WAPL_NIPBL_FLOX:F08980 NA NA
WAPL:F09231-WAPL_NIPBL_FLOX:F08980 NA NA
WAPL_NIPBL_FLOX:F09231-WAPL_NIPBL_FLOX:F08980 NA NA
WT:F09231-WAPL_NIPBL_FLOX:F08980 NA NA
COMPOUND:F09233-WAPL_NIPBL_FLOX:F08980 NA NA
NIPBL:F09233-WAPL_NIPBL_FLOX:F08980 NA NA
WAPL:F09233-WAPL_NIPBL_FLOX:F08980 NA NA
WAPL_NIPBL_FLOX:F09233-WAPL_NIPBL_FLOX:F08980 NA NA
WT:F09233-WAPL_NIPBL_FLOX:F08980 NA NA
COMPOUND:F09449-WAPL_NIPBL_FLOX:F08980 NA NA
NIPBL:F09449-WAPL_NIPBL_FLOX:F08980 NA NA
WAPL:F09449-WAPL_NIPBL_FLOX:F08980 NA NA
WAPL_NIPBL_FLOX:F09449-WAPL_NIPBL_FLOX:F08980 NA NA
WT:F09449-WAPL_NIPBL_FLOX:F08980 NA NA
COMPOUND:F08984-WT:F08980 -4.17194075 -8.05049017
NIPBL:F08984-WT:F08980 -5.36108129 -9.23963071
WAPL:F08984-WT:F08980 -0.96102477 -4.83957419
WAPL_NIPBL_FLOX:F08984-WT:F08980 -3.76345106 -7.64200048
WT:F08984-WT:F08980 -1.00138558 -4.87993500
COMPOUND:F09231-WT:F08980 -6.16127279 -9.32809513
NIPBL:F09231-WT:F08980 NA NA
WAPL:F09231-WT:F08980 -3.65924364 -6.55014369
WAPL_NIPBL_FLOX:F09231-WT:F08980 NA NA
WT:F09231-WT:F08980 NA NA
COMPOUND:F09233-WT:F08980 -5.06449453 -7.95539458
NIPBL:F09233-WT:F08980 NA NA
WAPL:F09233-WT:F08980 NA NA
WAPL_NIPBL_FLOX:F09233-WT:F08980 NA NA
WT:F09233-WT:F08980 -2.62892409 -5.51982414
COMPOUND:F09449-WT:F08980 -7.04854278 -10.21536512
NIPBL:F09449-WT:F08980 -7.27869539 -11.15724481
WAPL:F09449-WT:F08980 NA NA
WAPL_NIPBL_FLOX:F09449-WT:F08980 -4.26222034 -8.14076976
WT:F09449-WT:F08980 NA NA
NIPBL:F08984-COMPOUND:F08984 -1.18914054 -5.66770364
WAPL:F08984-COMPOUND:F08984 3.21091598 -1.26764712
WAPL_NIPBL_FLOX:F08984-COMPOUND:F08984 0.40848969 -4.07007341
WT:F08984-COMPOUND:F08984 3.17055517 -1.30800793
COMPOUND:F09231-COMPOUND:F08984 -1.98933203 -5.86788145
NIPBL:F09231-COMPOUND:F08984 NA NA
WAPL:F09231-COMPOUND:F08984 0.51269712 -3.14403434
WAPL_NIPBL_FLOX:F09231-COMPOUND:F08984 NA NA
WT:F09231-COMPOUND:F08984 NA NA
COMPOUND:F09233-COMPOUND:F08984 -0.89255378 -4.54928524
NIPBL:F09233-COMPOUND:F08984 NA NA
WAPL:F09233-COMPOUND:F08984 NA NA
WAPL_NIPBL_FLOX:F09233-COMPOUND:F08984 NA NA
WT:F09233-COMPOUND:F08984 1.54301666 -2.11371480
COMPOUND:F09449-COMPOUND:F08984 -2.87660202 -6.75515144
NIPBL:F09449-COMPOUND:F08984 -3.10675464 -7.58531774
WAPL:F09449-COMPOUND:F08984 NA NA
WAPL_NIPBL_FLOX:F09449-COMPOUND:F08984 -0.09027959 -4.56884269
WT:F09449-COMPOUND:F08984 NA NA
WAPL:F08984-NIPBL:F08984 4.40005652 -0.07850658
WAPL_NIPBL_FLOX:F08984-NIPBL:F08984 1.59763023 -2.88093287
WT:F08984-NIPBL:F08984 4.35969571 -0.11886739
COMPOUND:F09231-NIPBL:F08984 -0.80019149 -4.67874091
NIPBL:F09231-NIPBL:F08984 NA NA
WAPL:F09231-NIPBL:F08984 1.70183765 -1.95489381
WAPL_NIPBL_FLOX:F09231-NIPBL:F08984 NA NA
WT:F09231-NIPBL:F08984 NA NA
COMPOUND:F09233-NIPBL:F08984 0.29658676 -3.36014470
NIPBL:F09233-NIPBL:F08984 NA NA
WAPL:F09233-NIPBL:F08984 NA NA
WAPL_NIPBL_FLOX:F09233-NIPBL:F08984 NA NA
WT:F09233-NIPBL:F08984 2.73215720 -0.92457426
COMPOUND:F09449-NIPBL:F08984 -1.68746148 -5.56601090
NIPBL:F09449-NIPBL:F08984 -1.91761410 -6.39617720
WAPL:F09449-NIPBL:F08984 NA NA
WAPL_NIPBL_FLOX:F09449-NIPBL:F08984 1.09886095 -3.37970215
WT:F09449-NIPBL:F08984 NA NA
WAPL_NIPBL_FLOX:F08984-WAPL:F08984 -2.80242629 -7.28098939
WT:F08984-WAPL:F08984 -0.04036081 -4.51892391
COMPOUND:F09231-WAPL:F08984 -5.20024801 -9.07879743
NIPBL:F09231-WAPL:F08984 NA NA
WAPL:F09231-WAPL:F08984 -2.69821887 -6.35495033
WAPL_NIPBL_FLOX:F09231-WAPL:F08984 NA NA
WT:F09231-WAPL:F08984 NA NA
COMPOUND:F09233-WAPL:F08984 -4.10346976 -7.76020122
NIPBL:F09233-WAPL:F08984 NA NA
WAPL:F09233-WAPL:F08984 NA NA
WAPL_NIPBL_FLOX:F09233-WAPL:F08984 NA NA
WT:F09233-WAPL:F08984 -1.66789932 -5.32463078
COMPOUND:F09449-WAPL:F08984 -6.08751800 -9.96606742
NIPBL:F09449-WAPL:F08984 -6.31767062 -10.79623372
WAPL:F09449-WAPL:F08984 NA NA
WAPL_NIPBL_FLOX:F09449-WAPL:F08984 -3.30119557 -7.77975867
WT:F09449-WAPL:F08984 NA NA
WT:F08984-WAPL_NIPBL_FLOX:F08984 2.76206548 -1.71649762
COMPOUND:F09231-WAPL_NIPBL_FLOX:F08984 -2.39782173 -6.27637115
NIPBL:F09231-WAPL_NIPBL_FLOX:F08984 NA NA
WAPL:F09231-WAPL_NIPBL_FLOX:F08984 0.10420742 -3.55252404
WAPL_NIPBL_FLOX:F09231-WAPL_NIPBL_FLOX:F08984 NA NA
WT:F09231-WAPL_NIPBL_FLOX:F08984 NA NA
COMPOUND:F09233-WAPL_NIPBL_FLOX:F08984 -1.30104347 -4.95777493
NIPBL:F09233-WAPL_NIPBL_FLOX:F08984 NA NA
WAPL:F09233-WAPL_NIPBL_FLOX:F08984 NA NA
WAPL_NIPBL_FLOX:F09233-WAPL_NIPBL_FLOX:F08984 NA NA
WT:F09233-WAPL_NIPBL_FLOX:F08984 1.13452697 -2.52220449
COMPOUND:F09449-WAPL_NIPBL_FLOX:F08984 -3.28509172 -7.16364114
NIPBL:F09449-WAPL_NIPBL_FLOX:F08984 -3.51524433 -7.99380744
WAPL:F09449-WAPL_NIPBL_FLOX:F08984 NA NA
WAPL_NIPBL_FLOX:F09449-WAPL_NIPBL_FLOX:F08984 -0.49876929 -4.97733239
WT:F09449-WAPL_NIPBL_FLOX:F08984 NA NA
COMPOUND:F09231-WT:F08984 -5.15988721 -9.03843663
NIPBL:F09231-WT:F08984 NA NA
WAPL:F09231-WT:F08984 -2.65785806 -6.31458952
WAPL_NIPBL_FLOX:F09231-WT:F08984 NA NA
WT:F09231-WT:F08984 NA NA
COMPOUND:F09233-WT:F08984 -4.06310895 -7.71984041
NIPBL:F09233-WT:F08984 NA NA
WAPL:F09233-WT:F08984 NA NA
WAPL_NIPBL_FLOX:F09233-WT:F08984 NA NA
WT:F09233-WT:F08984 -1.62753851 -5.28426997
COMPOUND:F09449-WT:F08984 -6.04715720 -9.92570662
NIPBL:F09449-WT:F08984 -6.27730981 -10.75587292
WAPL:F09449-WT:F08984 NA NA
WAPL_NIPBL_FLOX:F09449-WT:F08984 -3.26083476 -7.73939787
WT:F09449-WT:F08984 NA NA
NIPBL:F09231-COMPOUND:F09231 NA NA
WAPL:F09231-COMPOUND:F09231 2.50202915 -0.38887090
WAPL_NIPBL_FLOX:F09231-COMPOUND:F09231 NA NA
WT:F09231-COMPOUND:F09231 NA NA
COMPOUND:F09233-COMPOUND:F09231 1.09677826 -1.79412180
NIPBL:F09233-COMPOUND:F09231 NA NA
WAPL:F09233-COMPOUND:F09231 NA NA
WAPL_NIPBL_FLOX:F09233-COMPOUND:F09231 NA NA
WT:F09233-COMPOUND:F09231 3.53234869 0.64144864
COMPOUND:F09449-COMPOUND:F09231 -0.88726999 -4.05409233
NIPBL:F09449-COMPOUND:F09231 -1.11742261 -4.99597203
WAPL:F09449-COMPOUND:F09231 NA NA
WAPL_NIPBL_FLOX:F09449-COMPOUND:F09231 1.89905244 -1.97949698
WT:F09449-COMPOUND:F09231 NA NA
WAPL:F09231-NIPBL:F09231 NA NA
WAPL_NIPBL_FLOX:F09231-NIPBL:F09231 NA NA
WT:F09231-NIPBL:F09231 NA NA
COMPOUND:F09233-NIPBL:F09231 NA NA
NIPBL:F09233-NIPBL:F09231 NA NA
WAPL:F09233-NIPBL:F09231 NA NA
WAPL_NIPBL_FLOX:F09233-NIPBL:F09231 NA NA
WT:F09233-NIPBL:F09231 NA NA
COMPOUND:F09449-NIPBL:F09231 NA NA
NIPBL:F09449-NIPBL:F09231 NA NA
WAPL:F09449-NIPBL:F09231 NA NA
WAPL_NIPBL_FLOX:F09449-NIPBL:F09231 NA NA
WT:F09449-NIPBL:F09231 NA NA
WAPL_NIPBL_FLOX:F09231-WAPL:F09231 NA NA
WT:F09231-WAPL:F09231 NA NA
COMPOUND:F09233-WAPL:F09231 -1.40525089 -3.99095051
NIPBL:F09233-WAPL:F09231 NA NA
WAPL:F09233-WAPL:F09231 NA NA
WAPL_NIPBL_FLOX:F09233-WAPL:F09231 NA NA
WT:F09233-WAPL:F09231 1.03031955 -1.55538007
COMPOUND:F09449-WAPL:F09231 -3.38929914 -6.28019919
NIPBL:F09449-WAPL:F09231 -3.61945176 -7.27618322
WAPL:F09449-WAPL:F09231 NA NA
WAPL_NIPBL_FLOX:F09449-WAPL:F09231 -0.60297671 -4.25970817
WT:F09449-WAPL:F09231 NA NA
WT:F09231-WAPL_NIPBL_FLOX:F09231 NA NA
COMPOUND:F09233-WAPL_NIPBL_FLOX:F09231 NA NA
NIPBL:F09233-WAPL_NIPBL_FLOX:F09231 NA NA
WAPL:F09233-WAPL_NIPBL_FLOX:F09231 NA NA
WAPL_NIPBL_FLOX:F09233-WAPL_NIPBL_FLOX:F09231 NA NA
WT:F09233-WAPL_NIPBL_FLOX:F09231 NA NA
COMPOUND:F09449-WAPL_NIPBL_FLOX:F09231 NA NA
NIPBL:F09449-WAPL_NIPBL_FLOX:F09231 NA NA
WAPL:F09449-WAPL_NIPBL_FLOX:F09231 NA NA
WAPL_NIPBL_FLOX:F09449-WAPL_NIPBL_FLOX:F09231 NA NA
WT:F09449-WAPL_NIPBL_FLOX:F09231 NA NA
COMPOUND:F09233-WT:F09231 NA NA
NIPBL:F09233-WT:F09231 NA NA
WAPL:F09233-WT:F09231 NA NA
WAPL_NIPBL_FLOX:F09233-WT:F09231 NA NA
WT:F09233-WT:F09231 NA NA
COMPOUND:F09449-WT:F09231 NA NA
NIPBL:F09449-WT:F09231 NA NA
WAPL:F09449-WT:F09231 NA NA
WAPL_NIPBL_FLOX:F09449-WT:F09231 NA NA
WT:F09449-WT:F09231 NA NA
NIPBL:F09233-COMPOUND:F09233 NA NA
WAPL:F09233-COMPOUND:F09233 NA NA
WAPL_NIPBL_FLOX:F09233-COMPOUND:F09233 NA NA
WT:F09233-COMPOUND:F09233 2.43557044 -0.15012917
COMPOUND:F09449-COMPOUND:F09233 -1.98404824 -4.87494830
NIPBL:F09449-COMPOUND:F09233 -2.21420086 -5.87093232
WAPL:F09449-COMPOUND:F09233 NA NA
WAPL_NIPBL_FLOX:F09449-COMPOUND:F09233 0.80227419 -2.85445727
WT:F09449-COMPOUND:F09233 NA NA
WAPL:F09233-NIPBL:F09233 NA NA
WAPL_NIPBL_FLOX:F09233-NIPBL:F09233 NA NA
WT:F09233-NIPBL:F09233 NA NA
COMPOUND:F09449-NIPBL:F09233 NA NA
NIPBL:F09449-NIPBL:F09233 NA NA
WAPL:F09449-NIPBL:F09233 NA NA
WAPL_NIPBL_FLOX:F09449-NIPBL:F09233 NA NA
WT:F09449-NIPBL:F09233 NA NA
WAPL_NIPBL_FLOX:F09233-WAPL:F09233 NA NA
WT:F09233-WAPL:F09233 NA NA
COMPOUND:F09449-WAPL:F09233 NA NA
NIPBL:F09449-WAPL:F09233 NA NA
WAPL:F09449-WAPL:F09233 NA NA
WAPL_NIPBL_FLOX:F09449-WAPL:F09233 NA NA
WT:F09449-WAPL:F09233 NA NA
WT:F09233-WAPL_NIPBL_FLOX:F09233 NA NA
COMPOUND:F09449-WAPL_NIPBL_FLOX:F09233 NA NA
NIPBL:F09449-WAPL_NIPBL_FLOX:F09233 NA NA
WAPL:F09449-WAPL_NIPBL_FLOX:F09233 NA NA
WAPL_NIPBL_FLOX:F09449-WAPL_NIPBL_FLOX:F09233 NA NA
WT:F09449-WAPL_NIPBL_FLOX:F09233 NA NA
COMPOUND:F09449-WT:F09233 -4.41961868 -7.31051873
NIPBL:F09449-WT:F09233 -4.64977130 -8.30650276
WAPL:F09449-WT:F09233 NA NA
WAPL_NIPBL_FLOX:F09449-WT:F09233 -1.63329625 -5.29002771
WT:F09449-WT:F09233 NA NA
NIPBL:F09449-COMPOUND:F09449 -0.23015262 -4.10870204
WAPL:F09449-COMPOUND:F09449 NA NA
WAPL_NIPBL_FLOX:F09449-COMPOUND:F09449 2.78632243 -1.09222699
WT:F09449-COMPOUND:F09449 NA NA
WAPL:F09449-NIPBL:F09449 NA NA
WAPL_NIPBL_FLOX:F09449-NIPBL:F09449 3.01647505 -1.46208805
WT:F09449-NIPBL:F09449 NA NA
WAPL_NIPBL_FLOX:F09449-WAPL:F09449 NA NA
WT:F09449-WAPL:F09449 NA NA
WT:F09449-WAPL_NIPBL_FLOX:F09449 NA NA
upr p adj
NIPBL:F08978-COMPOUND:F08978 2.38836953 0.9999715
WAPL:F08978-COMPOUND:F08978 4.99960229 0.1789732
WAPL_NIPBL_FLOX:F08978-COMPOUND:F08978 NA NA
WT:F08978-COMPOUND:F08978 NA NA
COMPOUND:F08980-COMPOUND:F08978 5.86774545 0.1458119
NIPBL:F08980-COMPOUND:F08978 5.18736109 0.9965575
WAPL:F08980-COMPOUND:F08978 9.17217642 0.0031401
WAPL_NIPBL_FLOX:F08980-COMPOUND:F08978 NA NA
WT:F08980-COMPOUND:F08978 9.40252687 0.0000491
COMPOUND:F08984-COMPOUND:F08978 5.94231319 0.7900033
NIPBL:F08984-COMPOUND:F08978 4.75317265 0.9999941
WAPL:F08984-COMPOUND:F08978 9.15322917 0.0032566
WAPL_NIPBL_FLOX:F08984-COMPOUND:F08978 6.35080289 0.5306596
WT:F08984-COMPOUND:F08978 9.11286837 0.0035197
COMPOUND:F09231-COMPOUND:F08978 3.24125408 1.0000000
NIPBL:F09231-COMPOUND:F08978 NA NA
WAPL:F09231-COMPOUND:F08978 5.46736094 0.1112602
WAPL_NIPBL_FLOX:F09231-COMPOUND:F08978 NA NA
WT:F09231-COMPOUND:F08978 NA NA
COMPOUND:F09233-COMPOUND:F08978 4.06211005 0.9735335
NIPBL:F09233-COMPOUND:F08978 NA NA
WAPL:F09233-COMPOUND:F08978 NA NA
WAPL_NIPBL_FLOX:F09233-COMPOUND:F08978 NA NA
WT:F09233-COMPOUND:F08978 6.49768049 0.0075897
COMPOUND:F09449-COMPOUND:F08978 2.35398409 0.9999401
NIPBL:F09449-COMPOUND:F08978 2.83555855 0.9998703
WAPL:F09449-COMPOUND:F08978 NA NA
WAPL_NIPBL_FLOX:F09449-COMPOUND:F08978 5.85203360 0.8388511
WT:F09449-COMPOUND:F08978 NA NA
WAPL:F08978-NIPBL:F08978 5.77805510 0.0222293
WAPL_NIPBL_FLOX:F08978-NIPBL:F08978 NA NA
WT:F08978-NIPBL:F08978 NA NA
COMPOUND:F08980-NIPBL:F08978 6.64619826 0.0236518
NIPBL:F08980-NIPBL:F08978 5.96581390 0.7764264
WAPL:F08980-NIPBL:F08978 9.95062923 0.0007282
WAPL_NIPBL_FLOX:F08980-NIPBL:F08978 NA NA
WT:F08980-NIPBL:F08978 10.18097968 0.0000111
COMPOUND:F08984-NIPBL:F08978 6.72076600 0.3182471
NIPBL:F08984-NIPBL:F08978 5.53162547 0.9576140
WAPL:F08984-NIPBL:F08978 9.93168199 0.0007539
WAPL_NIPBL_FLOX:F08984-NIPBL:F08978 7.12925570 0.1614442
WT:F08984-NIPBL:F08978 9.89132118 0.0008119
COMPOUND:F09231-NIPBL:F08978 4.01970689 0.9998671
NIPBL:F09231-NIPBL:F08978 NA NA
WAPL:F09231-NIPBL:F08978 6.24581375 0.0147473
WAPL_NIPBL_FLOX:F09231-NIPBL:F08978 NA NA
WT:F09231-NIPBL:F08978 NA NA
COMPOUND:F09233-NIPBL:F08978 4.84056286 0.4415742
NIPBL:F09233-NIPBL:F08978 NA NA
WAPL:F09233-NIPBL:F08978 NA NA
WAPL_NIPBL_FLOX:F09233-NIPBL:F08978 NA NA
WT:F09233-NIPBL:F08978 7.27613330 0.0010308
COMPOUND:F09449-NIPBL:F08978 3.13243690 1.0000000
NIPBL:F09449-NIPBL:F08978 3.61401136 1.0000000
WAPL:F09449-NIPBL:F08978 NA NA
WAPL_NIPBL_FLOX:F09449-NIPBL:F08978 6.63048641 0.3644488
WT:F09449-NIPBL:F08978 NA NA
WAPL_NIPBL_FLOX:F08978-WAPL:F08978 NA NA
WT:F08978-WAPL:F08978 NA NA
COMPOUND:F08980-WAPL:F08978 3.18641801 1.0000000
NIPBL:F08980-WAPL:F08978 2.59237299 0.9998786
WAPL:F08980-WAPL:F08978 6.57718832 0.1410612
WAPL_NIPBL_FLOX:F08980-WAPL:F08978 NA NA
WT:F08980-WAPL:F08978 6.72119943 0.0016658
COMPOUND:F08984-WAPL:F08978 3.34732509 1.0000000
NIPBL:F08984-WAPL:F08978 2.15818455 0.9816939
WAPL:F08984-WAPL:F08978 6.55824107 0.1464130
WAPL_NIPBL_FLOX:F08984-WAPL:F08978 3.75581479 1.0000000
WT:F08984-WAPL:F08978 6.51788027 0.1584090
COMPOUND:F09231-WAPL:F08978 0.55992664 0.2143937
NIPBL:F09231-WAPL:F08978 NA NA
WAPL:F09231-WAPL:F08978 2.73810771 1.0000000
WAPL_NIPBL_FLOX:F09231-WAPL:F08978 NA NA
WT:F09231-WAPL:F08978 NA NA
COMPOUND:F09233-WAPL:F08978 1.33285682 0.9341363
NIPBL:F09233-WAPL:F08978 NA NA
WAPL:F09233-WAPL:F08978 NA NA
WAPL_NIPBL_FLOX:F09233-WAPL:F08978 NA NA
WT:F09233-WAPL:F08978 3.76842726 0.7298694
COMPOUND:F09449-WAPL:F08978 -0.32734335 0.0201988
NIPBL:F09449-WAPL:F08978 0.24057045 0.0827966
WAPL:F09449-WAPL:F08978 NA NA
WAPL_NIPBL_FLOX:F09449-WAPL:F08978 3.25704550 1.0000000
WT:F09449-WAPL:F08978 NA NA
WT:F08978-WAPL_NIPBL_FLOX:F08978 NA NA
COMPOUND:F08980-WAPL_NIPBL_FLOX:F08978 NA NA
NIPBL:F08980-WAPL_NIPBL_FLOX:F08978 NA NA
WAPL:F08980-WAPL_NIPBL_FLOX:F08978 NA NA
WAPL_NIPBL_FLOX:F08980-WAPL_NIPBL_FLOX:F08978 NA NA
WT:F08980-WAPL_NIPBL_FLOX:F08978 NA NA
COMPOUND:F08984-WAPL_NIPBL_FLOX:F08978 NA NA
NIPBL:F08984-WAPL_NIPBL_FLOX:F08978 NA NA
WAPL:F08984-WAPL_NIPBL_FLOX:F08978 NA NA
WAPL_NIPBL_FLOX:F08984-WAPL_NIPBL_FLOX:F08978 NA NA
WT:F08984-WAPL_NIPBL_FLOX:F08978 NA NA
COMPOUND:F09231-WAPL_NIPBL_FLOX:F08978 NA NA
NIPBL:F09231-WAPL_NIPBL_FLOX:F08978 NA NA
WAPL:F09231-WAPL_NIPBL_FLOX:F08978 NA NA
WAPL_NIPBL_FLOX:F09231-WAPL_NIPBL_FLOX:F08978 NA NA
WT:F09231-WAPL_NIPBL_FLOX:F08978 NA NA
COMPOUND:F09233-WAPL_NIPBL_FLOX:F08978 NA NA
NIPBL:F09233-WAPL_NIPBL_FLOX:F08978 NA NA
WAPL:F09233-WAPL_NIPBL_FLOX:F08978 NA NA
WAPL_NIPBL_FLOX:F09233-WAPL_NIPBL_FLOX:F08978 NA NA
WT:F09233-WAPL_NIPBL_FLOX:F08978 NA NA
COMPOUND:F09449-WAPL_NIPBL_FLOX:F08978 NA NA
NIPBL:F09449-WAPL_NIPBL_FLOX:F08978 NA NA
WAPL:F09449-WAPL_NIPBL_FLOX:F08978 NA NA
WAPL_NIPBL_FLOX:F09449-WAPL_NIPBL_FLOX:F08978 NA NA
WT:F09449-WAPL_NIPBL_FLOX:F08978 NA NA
COMPOUND:F08980-WT:F08978 NA NA
NIPBL:F08980-WT:F08978 NA NA
WAPL:F08980-WT:F08978 NA NA
WAPL_NIPBL_FLOX:F08980-WT:F08978 NA NA
WT:F08980-WT:F08978 NA NA
COMPOUND:F08984-WT:F08978 NA NA
NIPBL:F08984-WT:F08978 NA NA
WAPL:F08984-WT:F08978 NA NA
WAPL_NIPBL_FLOX:F08984-WT:F08978 NA NA
WT:F08984-WT:F08978 NA NA
COMPOUND:F09231-WT:F08978 NA NA
NIPBL:F09231-WT:F08978 NA NA
WAPL:F09231-WT:F08978 NA NA
WAPL_NIPBL_FLOX:F09231-WT:F08978 NA NA
WT:F09231-WT:F08978 NA NA
COMPOUND:F09233-WT:F08978 NA NA
NIPBL:F09233-WT:F08978 NA NA
WAPL:F09233-WT:F08978 NA NA
WAPL_NIPBL_FLOX:F09233-WT:F08978 NA NA
WT:F09233-WT:F08978 NA NA
COMPOUND:F09449-WT:F08978 NA NA
NIPBL:F09449-WT:F08978 NA NA
WAPL:F09449-WT:F08978 NA NA
WAPL_NIPBL_FLOX:F09449-WT:F08978 NA NA
WT:F09449-WT:F08978 NA NA
NIPBL:F08980-COMPOUND:F08980 2.48643798 0.9927214
WAPL:F08980-COMPOUND:F08980 6.47125332 0.4554114
WAPL_NIPBL_FLOX:F08980-COMPOUND:F08980 NA NA
WT:F08980-COMPOUND:F08980 6.70160376 0.0206934
COMPOUND:F08984-COMPOUND:F08980 3.24139009 1.0000000
NIPBL:F08984-COMPOUND:F08980 2.05224955 0.9048072
WAPL:F08984-COMPOUND:F08980 6.45230607 0.4669390
WAPL_NIPBL_FLOX:F08984-COMPOUND:F08980 3.64987978 1.0000000
WT:F08984-COMPOUND:F08980 6.41194526 0.4919099
COMPOUND:F09231-COMPOUND:F08980 0.54033097 0.1713774
NIPBL:F09231-COMPOUND:F08980 NA NA
WAPL:F09231-COMPOUND:F08980 2.76643783 1.0000000
WAPL_NIPBL_FLOX:F09231-COMPOUND:F08980 NA NA
WT:F09231-COMPOUND:F08980 NA NA
COMPOUND:F09233-COMPOUND:F08980 1.36118694 0.7964926
NIPBL:F09233-COMPOUND:F08980 NA NA
WAPL:F09233-COMPOUND:F08980 NA NA
WAPL_NIPBL_FLOX:F09233-COMPOUND:F08980 NA NA
WT:F09233-COMPOUND:F08980 3.79675738 0.9987085
COMPOUND:F09449-COMPOUND:F08980 -0.34693902 0.0217698
NIPBL:F09449-COMPOUND:F08980 0.13463545 0.0648007
WAPL:F09449-COMPOUND:F08980 NA NA
WAPL_NIPBL_FLOX:F09449-COMPOUND:F08980 3.15111050 0.9999998
WT:F09449-COMPOUND:F08980 NA NA
WAPL:F08980-NIPBL:F08980 8.46337843 0.1124419
WAPL_NIPBL_FLOX:F08980-NIPBL:F08980 NA NA
WT:F08980-NIPBL:F08980 8.80544228 0.0063913
COMPOUND:F08984-NIPBL:F08980 5.23351520 1.0000000
NIPBL:F08984-NIPBL:F08980 4.04437467 1.0000000
WAPL:F08984-NIPBL:F08980 8.44443119 0.1158866
WAPL_NIPBL_FLOX:F08984-NIPBL:F08980 5.64200490 0.9999266
WT:F08984-NIPBL:F08980 8.40407038 0.1235441
COMPOUND:F09231-NIPBL:F08980 2.64416949 0.9984018
NIPBL:F09231-NIPBL:F08980 NA NA
WAPL:F09231-NIPBL:F08980 4.92438068 0.9951903
WAPL_NIPBL_FLOX:F09231-NIPBL:F08980 NA NA
WT:F09231-NIPBL:F08980 NA NA
COMPOUND:F09233-NIPBL:F08980 3.51912978 1.0000000
NIPBL:F09233-NIPBL:F08980 NA NA
WAPL:F09233-NIPBL:F08980 NA NA
WAPL_NIPBL_FLOX:F09233-NIPBL:F08980 NA NA
WT:F09233-NIPBL:F08980 5.95470022 0.5531621
COMPOUND:F09449-NIPBL:F08980 1.75689950 0.7560164
NIPBL:F09449-NIPBL:F08980 2.12676056 0.8052135
WAPL:F09449-NIPBL:F08980 NA NA
WAPL_NIPBL_FLOX:F09449-NIPBL:F08980 5.14323561 1.0000000
WT:F09449-NIPBL:F08980 NA NA
WAPL_NIPBL_FLOX:F08980-WAPL:F08980 NA NA
WT:F08980-WAPL:F08980 4.82062694 0.9999770
COMPOUND:F08984-WAPL:F08980 1.24869987 0.3407953
NIPBL:F08984-WAPL:F08980 0.05955933 0.0552409
WAPL:F08984-WAPL:F08980 4.45961585 1.0000000
WAPL_NIPBL_FLOX:F08984-WAPL:F08980 1.65718957 0.5492649
WT:F08984-WAPL:F08980 4.41925505 1.0000000
COMPOUND:F09231-WAPL:F08980 -1.34064584 0.0036238
NIPBL:F09231-WAPL:F08980 NA NA
WAPL:F09231-WAPL:F08980 0.93956535 0.2992264
WAPL_NIPBL_FLOX:F09231-WAPL:F08980 NA NA
WT:F09231-WAPL:F08980 NA NA
COMPOUND:F09233-WAPL:F08980 -0.46568555 0.0190019
NIPBL:F09233-WAPL:F08980 NA NA
WAPL:F09233-WAPL:F08980 NA NA
WAPL_NIPBL_FLOX:F09233-WAPL:F08980 NA NA
WT:F09233-WAPL:F08980 1.96988489 0.9184236
COMPOUND:F09449-WAPL:F08980 -2.22791583 0.0006839
NIPBL:F09449-WAPL:F08980 -1.85805477 0.0021671
WAPL:F09449-WAPL:F08980 NA NA
WAPL_NIPBL_FLOX:F09449-WAPL:F08980 1.15842028 0.3023546
WT:F09449-WAPL:F08980 NA NA
WT:F08980-WAPL_NIPBL_FLOX:F08980 NA NA
COMPOUND:F08984-WAPL_NIPBL_FLOX:F08980 NA NA
NIPBL:F08984-WAPL_NIPBL_FLOX:F08980 NA NA
WAPL:F08984-WAPL_NIPBL_FLOX:F08980 NA NA
WAPL_NIPBL_FLOX:F08984-WAPL_NIPBL_FLOX:F08980 NA NA
WT:F08984-WAPL_NIPBL_FLOX:F08980 NA NA
COMPOUND:F09231-WAPL_NIPBL_FLOX:F08980 NA NA
NIPBL:F09231-WAPL_NIPBL_FLOX:F08980 NA NA
WAPL:F09231-WAPL_NIPBL_FLOX:F08980 NA NA
WAPL_NIPBL_FLOX:F09231-WAPL_NIPBL_FLOX:F08980 NA NA
WT:F09231-WAPL_NIPBL_FLOX:F08980 NA NA
COMPOUND:F09233-WAPL_NIPBL_FLOX:F08980 NA NA
NIPBL:F09233-WAPL_NIPBL_FLOX:F08980 NA NA
WAPL:F09233-WAPL_NIPBL_FLOX:F08980 NA NA
WAPL_NIPBL_FLOX:F09233-WAPL_NIPBL_FLOX:F08980 NA NA
WT:F09233-WAPL_NIPBL_FLOX:F08980 NA NA
COMPOUND:F09449-WAPL_NIPBL_FLOX:F08980 NA NA
NIPBL:F09449-WAPL_NIPBL_FLOX:F08980 NA NA
WAPL:F09449-WAPL_NIPBL_FLOX:F08980 NA NA
WAPL_NIPBL_FLOX:F09449-WAPL_NIPBL_FLOX:F08980 NA NA
WT:F09449-WAPL_NIPBL_FLOX:F08980 NA NA
COMPOUND:F08984-WT:F08980 -0.29339133 0.0281978
NIPBL:F08984-WT:F08980 -1.48253187 0.0027591
WAPL:F08984-WT:F08980 2.91752465 0.9999673
WAPL_NIPBL_FLOX:F08984-WT:F08980 0.11509836 0.0624196
WT:F08984-WT:F08980 2.87716384 0.9999338
COMPOUND:F09231-WT:F08980 -2.99445045 0.0000569
NIPBL:F09231-WT:F08980 NA NA
WAPL:F09231-WT:F08980 -0.76834359 0.0066135
WAPL_NIPBL_FLOX:F09231-WT:F08980 NA NA
WT:F09231-WT:F08980 NA NA
COMPOUND:F09233-WT:F08980 -2.17359448 0.0002010
NIPBL:F09233-WT:F08980 NA NA
WAPL:F09233-WT:F08980 NA NA
WAPL_NIPBL_FLOX:F09233-WT:F08980 NA NA
WT:F09233-WT:F08980 0.26197596 0.0976481
COMPOUND:F09449-WT:F08980 -3.88172044 0.0000105
NIPBL:F09449-WT:F08980 -3.40014597 0.0000884
WAPL:F09449-WT:F08980 NA NA
WAPL_NIPBL_FLOX:F09449-WT:F08980 -0.38367093 0.0236112
WT:F09449-WT:F08980 NA NA
NIPBL:F08984-COMPOUND:F08984 3.28942256 0.9998946
WAPL:F08984-COMPOUND:F08984 7.68947908 0.3492621
WAPL_NIPBL_FLOX:F08984-COMPOUND:F08984 4.88705280 1.0000000
WT:F08984-COMPOUND:F08984 7.64911828 0.3677484
COMPOUND:F09231-COMPOUND:F08984 1.88921739 0.8306914
NIPBL:F09231-COMPOUND:F08984 NA NA
WAPL:F09231-COMPOUND:F08984 4.16942858 1.0000000
WAPL_NIPBL_FLOX:F09231-COMPOUND:F08984 NA NA
WT:F09231-COMPOUND:F08984 NA NA
COMPOUND:F09233-COMPOUND:F08984 2.76417768 0.9999749
NIPBL:F09233-COMPOUND:F08984 NA NA
WAPL:F09233-COMPOUND:F08984 NA NA
WAPL_NIPBL_FLOX:F09233-COMPOUND:F08984 NA NA
WT:F09233-COMPOUND:F08984 5.19974812 0.9612516
COMPOUND:F09449-COMPOUND:F08984 1.00194740 0.3017546
NIPBL:F09449-COMPOUND:F08984 1.37180846 0.3981818
WAPL:F09449-COMPOUND:F08984 NA NA
WAPL_NIPBL_FLOX:F09449-COMPOUND:F08984 4.38828351 1.0000000
WT:F09449-COMPOUND:F08984 NA NA
WAPL:F08984-NIPBL:F08984 8.87861962 0.0570159
WAPL_NIPBL_FLOX:F08984-NIPBL:F08984 6.07619334 0.9932255
WT:F08984-NIPBL:F08984 8.83825881 0.0609803
COMPOUND:F09231-NIPBL:F08984 3.07835792 0.9999989
NIPBL:F09231-NIPBL:F08984 NA NA
WAPL:F09231-NIPBL:F08984 5.35856911 0.9127469
WAPL_NIPBL_FLOX:F09231-NIPBL:F08984 NA NA
WT:F09231-NIPBL:F08984 NA NA
COMPOUND:F09233-NIPBL:F08984 3.95331822 1.0000000
NIPBL:F09233-NIPBL:F08984 NA NA
WAPL:F09233-NIPBL:F08984 NA NA
WAPL_NIPBL_FLOX:F09233-NIPBL:F08984 NA NA
WT:F09233-NIPBL:F08984 6.38888866 0.2918543
COMPOUND:F09449-NIPBL:F08984 2.19108793 0.9492710
NIPBL:F09449-NIPBL:F08984 2.56094900 0.9558512
WAPL:F09449-NIPBL:F08984 NA NA
WAPL_NIPBL_FLOX:F09449-NIPBL:F08984 5.57742405 0.9999725
WT:F09449-NIPBL:F08984 NA NA
WAPL_NIPBL_FLOX:F08984-WAPL:F08984 1.67613682 0.5599062
WT:F08984-WAPL:F08984 4.43820230 1.0000000
COMPOUND:F09231-WAPL:F08984 -1.32169860 0.0037588
NIPBL:F09231-WAPL:F08984 NA NA
WAPL:F09231-WAPL:F08984 0.95851260 0.3087338
WAPL_NIPBL_FLOX:F09231-WAPL:F08984 NA NA
WT:F09231-WAPL:F08984 NA NA
COMPOUND:F09233-WAPL:F08984 -0.44673830 0.0197695
NIPBL:F09233-WAPL:F08984 NA NA
WAPL:F09233-WAPL:F08984 NA NA
WAPL_NIPBL_FLOX:F09233-WAPL:F08984 NA NA
WT:F09233-WAPL:F08984 1.98883214 0.9252661
COMPOUND:F09449-WAPL:F08984 -2.20896858 0.0007080
NIPBL:F09449-WAPL:F08984 -1.83910752 0.0022358
WAPL:F09449-WAPL:F08984 NA NA
WAPL_NIPBL_FLOX:F09449-WAPL:F08984 1.17736753 0.3101587
WT:F09449-WAPL:F08984 NA NA
WT:F08984-WAPL_NIPBL_FLOX:F08984 7.24062858 0.5826968
COMPOUND:F09231-WAPL_NIPBL_FLOX:F08984 1.48072769 0.5789038
NIPBL:F09231-WAPL_NIPBL_FLOX:F08984 NA NA
WAPL:F09231-WAPL_NIPBL_FLOX:F08984 3.76093888 1.0000000
WAPL_NIPBL_FLOX:F09231-WAPL_NIPBL_FLOX:F08984 NA NA
WT:F09231-WAPL_NIPBL_FLOX:F08984 NA NA
COMPOUND:F09233-WAPL_NIPBL_FLOX:F08984 2.35568799 0.9934311
NIPBL:F09233-WAPL_NIPBL_FLOX:F08984 NA NA
WAPL:F09233-WAPL_NIPBL_FLOX:F08984 NA NA
WAPL_NIPBL_FLOX:F09233-WAPL_NIPBL_FLOX:F08984 NA NA
WT:F09233-WAPL_NIPBL_FLOX:F08984 4.79125843 0.9988748
COMPOUND:F09449-WAPL_NIPBL_FLOX:F08984 0.59345770 0.1518869
NIPBL:F09449-WAPL_NIPBL_FLOX:F08984 0.96331877 0.2301941
WAPL:F09449-WAPL_NIPBL_FLOX:F08984 NA NA
WAPL_NIPBL_FLOX:F09449-WAPL_NIPBL_FLOX:F08984 3.97979382 1.0000000
WT:F09449-WAPL_NIPBL_FLOX:F08984 NA NA
COMPOUND:F09231-WT:F08984 -1.28133779 0.0040636
NIPBL:F09231-WT:F08984 NA NA
WAPL:F09231-WT:F08984 0.99887340 0.3296885
WAPL_NIPBL_FLOX:F09231-WT:F08984 NA NA
WT:F09231-WT:F08984 NA NA
COMPOUND:F09233-WT:F08984 -0.40637749 0.0215091
NIPBL:F09233-WT:F08984 NA NA
WAPL:F09233-WT:F08984 NA NA
WAPL_NIPBL_FLOX:F09233-WT:F08984 NA NA
WT:F09233-WT:F08984 2.02919295 0.9386083
COMPOUND:F09449-WT:F08984 -2.16860778 0.0007622
NIPBL:F09449-WT:F08984 -1.79874671 0.0023897
WAPL:F09449-WT:F08984 NA NA
WAPL_NIPBL_FLOX:F09449-WT:F08984 1.21772834 0.3272510
WT:F09449-WT:F08984 NA NA
NIPBL:F09231-COMPOUND:F09231 NA NA
WAPL:F09231-COMPOUND:F09231 5.39292920 0.1335279
WAPL_NIPBL_FLOX:F09231-COMPOUND:F09231 NA NA
WT:F09231-COMPOUND:F09231 NA NA
COMPOUND:F09233-COMPOUND:F09231 3.98767831 0.9864651
NIPBL:F09233-COMPOUND:F09231 NA NA
WAPL:F09233-COMPOUND:F09231 NA NA
WAPL_NIPBL_FLOX:F09233-COMPOUND:F09231 NA NA
WT:F09233-COMPOUND:F09231 6.42324875 0.0092314
COMPOUND:F09449-COMPOUND:F09231 2.27955235 0.9997510
NIPBL:F09449-COMPOUND:F09231 2.76112681 0.9996176
WAPL:F09449-COMPOUND:F09231 NA NA
WAPL_NIPBL_FLOX:F09449-COMPOUND:F09231 5.77760186 0.8745187
WT:F09449-COMPOUND:F09231 NA NA
WAPL:F09231-NIPBL:F09231 NA NA
WAPL_NIPBL_FLOX:F09231-NIPBL:F09231 NA NA
WT:F09231-NIPBL:F09231 NA NA
COMPOUND:F09233-NIPBL:F09231 NA NA
NIPBL:F09233-NIPBL:F09231 NA NA
WAPL:F09233-NIPBL:F09231 NA NA
WAPL_NIPBL_FLOX:F09233-NIPBL:F09231 NA NA
WT:F09233-NIPBL:F09231 NA NA
COMPOUND:F09449-NIPBL:F09231 NA NA
NIPBL:F09449-NIPBL:F09231 NA NA
WAPL:F09449-NIPBL:F09231 NA NA
WAPL_NIPBL_FLOX:F09449-NIPBL:F09231 NA NA
WT:F09449-NIPBL:F09231 NA NA
WAPL_NIPBL_FLOX:F09231-WAPL:F09231 NA NA
WT:F09231-WAPL:F09231 NA NA
COMPOUND:F09233-WAPL:F09231 1.18044872 0.7642653
NIPBL:F09233-WAPL:F09231 NA NA
WAPL:F09233-WAPL:F09231 NA NA
WAPL_NIPBL_FLOX:F09233-WAPL:F09231 NA NA
WT:F09233-WAPL:F09231 3.61601916 0.9775142
COMPOUND:F09449-WAPL:F09231 -0.49839909 0.0134659
NIPBL:F09449-WAPL:F09231 0.03727970 0.0539724
WAPL:F09449-WAPL:F09231 NA NA
WAPL_NIPBL_FLOX:F09449-WAPL:F09231 3.05375475 1.0000000
WT:F09449-WAPL:F09231 NA NA
WT:F09231-WAPL_NIPBL_FLOX:F09231 NA NA
COMPOUND:F09233-WAPL_NIPBL_FLOX:F09231 NA NA
NIPBL:F09233-WAPL_NIPBL_FLOX:F09231 NA NA
WAPL:F09233-WAPL_NIPBL_FLOX:F09231 NA NA
WAPL_NIPBL_FLOX:F09233-WAPL_NIPBL_FLOX:F09231 NA NA
WT:F09233-WAPL_NIPBL_FLOX:F09231 NA NA
COMPOUND:F09449-WAPL_NIPBL_FLOX:F09231 NA NA
NIPBL:F09449-WAPL_NIPBL_FLOX:F09231 NA NA
WAPL:F09449-WAPL_NIPBL_FLOX:F09231 NA NA
WAPL_NIPBL_FLOX:F09449-WAPL_NIPBL_FLOX:F09231 NA NA
WT:F09449-WAPL_NIPBL_FLOX:F09231 NA NA
COMPOUND:F09233-WT:F09231 NA NA
NIPBL:F09233-WT:F09231 NA NA
WAPL:F09233-WT:F09231 NA NA
WAPL_NIPBL_FLOX:F09233-WT:F09231 NA NA
WT:F09233-WT:F09231 NA NA
COMPOUND:F09449-WT:F09231 NA NA
NIPBL:F09449-WT:F09231 NA NA
WAPL:F09449-WT:F09231 NA NA
WAPL_NIPBL_FLOX:F09449-WT:F09231 NA NA
WT:F09449-WT:F09231 NA NA
NIPBL:F09233-COMPOUND:F09233 NA NA
WAPL:F09233-COMPOUND:F09233 NA NA
WAPL_NIPBL_FLOX:F09233-COMPOUND:F09233 NA NA
WT:F09233-COMPOUND:F09233 5.02127005 0.0770050
COMPOUND:F09449-COMPOUND:F09233 0.90685181 0.4145189
NIPBL:F09449-COMPOUND:F09233 1.44253060 0.6111995
WAPL:F09449-COMPOUND:F09233 NA NA
WAPL_NIPBL_FLOX:F09449-COMPOUND:F09233 4.45900565 0.9999965
WT:F09449-COMPOUND:F09233 NA NA
WAPL:F09233-NIPBL:F09233 NA NA
WAPL_NIPBL_FLOX:F09233-NIPBL:F09233 NA NA
WT:F09233-NIPBL:F09233 NA NA
COMPOUND:F09449-NIPBL:F09233 NA NA
NIPBL:F09449-NIPBL:F09233 NA NA
WAPL:F09449-NIPBL:F09233 NA NA
WAPL_NIPBL_FLOX:F09449-NIPBL:F09233 NA NA
WT:F09449-NIPBL:F09233 NA NA
WAPL_NIPBL_FLOX:F09233-WAPL:F09233 NA NA
WT:F09233-WAPL:F09233 NA NA
COMPOUND:F09449-WAPL:F09233 NA NA
NIPBL:F09449-WAPL:F09233 NA NA
WAPL:F09449-WAPL:F09233 NA NA
WAPL_NIPBL_FLOX:F09449-WAPL:F09233 NA NA
WT:F09449-WAPL:F09233 NA NA
WT:F09233-WAPL_NIPBL_FLOX:F09233 NA NA
COMPOUND:F09449-WAPL_NIPBL_FLOX:F09233 NA NA
NIPBL:F09449-WAPL_NIPBL_FLOX:F09233 NA NA
WAPL:F09449-WAPL_NIPBL_FLOX:F09233 NA NA
WAPL_NIPBL_FLOX:F09449-WAPL_NIPBL_FLOX:F09233 NA NA
WT:F09449-WAPL_NIPBL_FLOX:F09233 NA NA
COMPOUND:F09449-WT:F09233 -1.52871863 0.0009464
NIPBL:F09449-WT:F09233 -0.99303984 0.0063300
WAPL:F09449-WT:F09233 NA NA
WAPL_NIPBL_FLOX:F09449-WT:F09233 2.02343521 0.9368071
WT:F09449-WT:F09233 NA NA
NIPBL:F09449-COMPOUND:F09449 3.64839680 1.0000000
WAPL:F09449-COMPOUND:F09449 NA NA
WAPL_NIPBL_FLOX:F09449-COMPOUND:F09449 6.66487185 0.3463636
WT:F09449-COMPOUND:F09449 NA NA
WAPL:F09449-NIPBL:F09449 NA NA
WAPL_NIPBL_FLOX:F09449-NIPBL:F09449 7.49503815 0.4436047
WT:F09449-NIPBL:F09449 NA NA
WAPL_NIPBL_FLOX:F09449-WAPL:F09449 NA NA
WT:F09449-WAPL:F09449 NA NA
WT:F09449-WAPL_NIPBL_FLOX:F09449 NA NA
We see that there is significant effects of litter on embryo/placenta and an effect of genotype on embryo/placenta but there is no interaction between the litter and gemotype. Thus, each of these effects on the data is not caused by their relationship.
Dashboard made by Jacob Noeker
---
title: "Wapl Nipbl"
output:
flexdashboard::flex_dashboard:
orientation: columns
vertical_layout: fill
source_code: embed
---
```{r setup, include=FALSE}
library(tidyverse)
library(readxl)
library(ggplot2)
library(plotly)
library(tableone)
knitr::opts_chunk$set(message = FALSE)
```
Weight Data {vertical_layout=fill data-icon="fa-archive" data-orientation=rows}
=====================================
Column {data-width=10000}
------------------------------------------------------------------------------
### A look at the data
```{r raw data}
R_Wapl_and_Nipbl <- read_excel("R_Wapl_and_Nipbl.xlsx",
sheet = "R") %>% mutate(Genotype = as.factor(Genotype))
colnames(R_Wapl_and_Nipbl)[colnames(R_Wapl_and_Nipbl)=="Embryo-Placenta"] <- "Embryo_Placenta"
#AD Look at tableone::createTableOne for some better options than `summary`
vars <- c("Mother", "Embryo", "Placenta", "Genotype", "Sex", "Embryo_Placenta")
tableOne <- CreateTableOne(vars = vars, strata = c("Genotype"), data = R_Wapl_and_Nipbl)
tableOne
```
Statistics {vertical_layout=scroll data-icon="fa-asterisk"}
=====================================
Row {.tabset .tabset-fade data-height=10000}
------------------------------------------------------------------------------
### Normality Tests
***
Embryo Data
```{r embryo}
shapiro.test(R_Wapl_and_Nipbl$Embryo)
```
***
Placenta Data
```{r Placenta}
shapiro.test(R_Wapl_and_Nipbl$Placenta)
```
***
Embryo/Placenta Data
```{r EP}
shapiro.test(R_Wapl_and_Nipbl$Embryo_Placenta)
```
***
All variables passed normality test
### T-test
***
WAPL vs WT Genotype Comparison
```{r ttest}
t.test(Embryo-Placenta ~ Genotype, data = R_Wapl_and_Nipbl, subset = Genotype %in% c("WT", "WAPL"))
```
### One-way Anova
***
Embryo/Placenta vs Genotype Anova
```{r Anova}
anova <- aov(Embryo_Placenta ~ Genotype, data = R_Wapl_and_Nipbl)
summary(anova)
```
***
Post-hoc Testing
```{r posthoc a}
TukeyHSD(anova)
```
***
Overall Anova is significant indicating difference in genotypes
We also can look at individual relationships using the posthoc testing
### Two-way Anova
***
Embryo/Placenta vs Genotype * Mother Two-way Anova
```{r 2Anova}
litter_genotype_anova <- aov(Embryo_Placenta ~ Genotype * Mother, data = R_Wapl_and_Nipbl) #star tests if these two categoricals interact and affect outcome
summary(litter_genotype_anova) #output will show what categorical variables have an affect on embryo_placenta weight
TukeyHSD(litter_genotype_anova) #posthoc testing for normally distruted data
```
***
We see that there is significant effects of litter on embryo/placenta and an effect of genotype on embryo/placenta but there is no interaction between the litter and gemotype. Thus, each of these effects on the data is not caused by their relationship.
Visualizations {data-orientation=columns data-icon="fa-chart-bar"}
=====================================
Row {.tabset data-height=400}
------------------------------------------------------------------------------
### Visual Data
```{r Violin Plot}
jn_theme <- function(){
theme_bw() +
theme(axis.text = element_text(size = 8, color = "Black"),
axis.title = element_text(size = 14),
panel.grid.minor = element_blank(),
strip.text = element_text(size=10),
strip.background = element_blank(),
plot.title = element_text(size = 20, hjust = 0.5),
panel.grid.major.x = element_blank())
}
ggplot(R_Wapl_and_Nipbl, aes(x=Genotype, y=Embryo_Placenta)) +
geom_violin() +
geom_point(size = .5, height = 0, width = 0.05) +
stat_summary(fun.y = mean, geom="point", shape = 18, size = 3, color = "red") +
stat_summary(fun.y = median, geom = "point", shape = 3, size = 3, color = "blue") +
jn_theme() +
scale_x_discrete(limits = c("WT", "WAPL", "NIPBL", "COMPOUND", "WAPL_NIPBL_FLOX"))
```
### Interactive
```{r interactive}
jn_theme <- function(){
theme_bw() +
theme(axis.text = element_text(size = 14, color = "Black"),
axis.title = element_text(size = 16),
panel.grid.minor = element_blank(),
strip.text = element_text(size=14),
strip.background = element_blank(),
plot.title = element_text(size = 20, hjust = 0.5),
panel.grid.major.x = element_blank())
}
plot1 <- ggplot(R_Wapl_and_Nipbl, aes(x=Genotype, y=Embryo_Placenta, label = Mother)) +
geom_violin() +
geom_point(size = .5, height = 0, width = 0.05) +
stat_summary(fun.y = mean, geom="point", shape = 18, size = 3, color = "red") +
stat_summary(fun.y = median, geom = "point", shape = 3, size = 3, color = "blue") +
jn_theme() +
scale_x_discrete(limits = c("WT", "WAPL", "NIPBL", "COMPOUND", "WAPL_NIPBL_FLOX"))
plot1
library(plotly)
ggplotly(plot1, tooltip = c("Embryo_Placenta", "Mother"))%>%layout(violinmode = 'group', violingap = 1, violingroupgap = 1)
```
RNA-Seq {data-orientation=columns data-icon="fa-sitemap"}
=====================================
Row {.tabset data-height=400}
------------------------------------------------------------------------------
### WT vs WAPL
```{r RNA-Seq}
#Jacob_Noeker
#RNA Seq Analysis
#WAPL NIPBL Project
#install.packages("BiocManager")
library(DESeq2)
# Set up variables, output folders, etc
#
# This section does the following:
# 1. Checks for output folders and creates them if absent
# 2. Defines input read count files
# 3. Strips annotation columns and saves annotation info
# 4. Defines FDR threshold
# output directory for deseq2 files
# create these if not present
deseq.folder <- "output/deseq2/"
norm.folder <- "output/vstnorm/"
degenes.folder <- "output/degenes/"
# check for subfolders and if not present, create folder
#ifelse(!dir.exists(file.path('.',deseq.folder)),
# dir.create(file.path('.',deseq.folder), recursive = TRUE), NA)
#ifelse(!dir.exists(file.path('.',norm.folder)),
# dir.create(file.path('.',norm.folder), recursive = TRUE), NA)
#ifelse(!dir.exists(file.path('.',degenes.folder)),
# dir.create(file.path('.',degenes.folder), recursive = TRUE), NA)
# hardcoded column names from featureCounts output
# only 'EnsID' column name is dependent on GTF file
annot.cols <- c("Chr","Start","End","Strand","Length")
geneid.colname <- "Geneid"
# Define FDR threshold and FDR column name
fdr.thres <- 0.1
# Define FC threshold
fc.thres <- 0
# Define limits for MA and volcano plots
#fc.lim <- c(-2, 2)
# define size of pdf for MA and volcano plots (in inches)
#ma.width <- 10
#ma.height <- 8
# define size of PDF file for degPattern plots (in inches)
#pdf.width <- 20
#pdf.height <- 20
# read count tables
# count tables from featureCounts
# 1. The first line with the commant is commented out and not read
# 2. the second line wth the file names can be parsed within R using
# grep() to match specified sample names
counts <- read.table("counts_CT_simp.txt",
sep="\t",header=TRUE, row.names=1)
exptname <- 'wapl_nipbl'
# strip annotation columns but save annot data
annot.data <- cbind(rownames(counts), counts[,colnames(counts) %in% annot.cols])
colnames(annot.data)[1] <- geneid.colname
counts <- counts[,!colnames(counts) %in% annot.cols]
# sample list
# converted to input variable
all.samples <- c("DD_WAPL","WT")
# reformat column names matching sample names
# TODO: throw error if sample name does not match column names
sample.vec <- NULL
for(i in 1:length(all.samples)){
# which column names match the sample name
idx <- grep(all.samples[i], colnames(counts))
# create named vector to save metadata
# this maps column names to sample names
temp.vec <- rep(all.samples[i], length(idx))
names(temp.vec) <- colnames(counts)[idx]
sample.vec <- c(sample.vec, temp.vec)
}
# DESeq2 analysis
#
# Input: read counts in TSV format
# Output: differential expression results from DESeq2 in TSV format
#
# This section takes the cleaned count files and performs the following steps:
#
# 1. creates DESeq data object
# 2. creates sample lists for individual comparisons
# 3. performs DESeq2 comparisons between samples separately for plus & minus BMP2
#
# Also, obtains a list of genes to be used as background for downstream analysis
#
# create a list for read counts
all.reads <- list(counts)
names(all.reads) <- exptname
# create sample lists for individual comparisons
# create input variable with this info
all.comps <- list(a = c("DD_WAPL","WT"))
# list of genes to be used as background
background.genes <- NULL
# list of DE results
res.list <- list()
# list of DE genes
deg.list <- list()
# list of upregulated genes
up.list <- list()
for(k in 1:length(all.reads)){
read.mat <- all.reads[[k]]
for(i in 1:length(all.comps)){
# get treatment and control names
treatment <- all.comps[[i]][1]
control <- all.comps[[i]][2]
# get column indices corresponding to samples in comparison
sample.idx <- NULL
for(j in all.comps[[i]]){
sample.idx <- c(sample.idx, grep(j, colnames(read.mat)))
}
# extract reads for specific sample columns
reads.sub <- read.mat[,sample.idx]
# create design matrix by selection from sample.vec
idx <- which(sample.vec %in% all.comps[[i]])
design <- data.frame(row.names = names(sample.vec[idx]),
condition = sample.vec[idx])
design$sampleid <- sub("_.+", "", rownames(design))
# DESeq2 object
dds <- DESeqDataSetFromMatrix(countData = reads.sub,
colData = design,
design = ~condition)
# run DESeq2
dds <- DESeq(dds, betaPrior = FALSE)
#res <- results(dds, contrast=c("condition", treatment, control),
# cooksCutoff=FALSE)
# get results with lfcShrink
res <- lfcShrink(dds, contrast=c("condition", treatment, control))
res.list[[length(res.list) + 1]] <- res
names(deg.list)[length(deg.list)] <- names(all.comps)[i]
# output DESeq2 results to file
write.table(cbind(geneid=rownames(res),res),
paste0(deseq.folder, names(all.reads)[k], "_", treatment, "-vs-", control,".txt"),
sep="\t",quote=FALSE, row.names=FALSE)
# keep list of degenes
idx <- which(res$padj < fdr.thres &
!is.na(res$padj) &
abs(res$log2FoldChange) >= fc.thres)
deg.list[[length(deg.list) + 1]] <- rownames(res)[idx]
names(deg.list)[length(deg.list)] <- names(all.comps)[i]
# output DE genes to file
write.table(deg.list[[i]],
paste0(degenes.folder, names(all.reads)[k], "_fdr", fdr.thres, "_fc", fc.thres, ".txt"),
sep="\t", quote=FALSE, row.names=FALSE, col.names=FALSE)
# list of upregulated genes (for easy reference)
idx <- which(res$padj < fdr.thres &
!is.na(res$padj) &
res$log2FoldChange >= fc.thres)
up.list[[length(up.list) + 1]] <- rownames(res)[idx]
names(up.list)[length(up.list)] <- names(all.comps)[i]
# get normalized data
norm.vst <- vst(dds)
# write normalized data to file
write.table(cbind(geneid=rownames(assay(norm.vst), assay(norm.vst))),
paste0(norm.folder, "vstnorm_", treatment, "-", control,".txt"),
sep="\t", quote=FALSE, row.names=FALSE)
}
# collect genes that have baseMean != 0 in at least one comparison
background.genes <- c(background.genes, rownames(res)[res$baseMean != 0])
}
# keep unique bg genes and sort by gene names
background.genes <- unique(background.genes)
background.genes <- background.genes[order(background.genes)]
# extract annotation data for bg genes and output Ensembl ID and gene symbols
background.annot <- annot.data[annot.data[,geneid.colname] %in% background.genes,
geneid.colname]
# write background list to file
write.table(background.annot, paste0(deseq.folder, "background-genes_", ".txt"),
sep="\t", quote=FALSE, row.names=FALSE, col.names=FALSE)
waplvwt_pca <- plotPCA(norm.vst, intgroup="condition")
library(ggrepel)
waplvwt_pca + geom_text_repel(aes_string(x = "PC1", y = "PC2", label = "name"), color = "black")
```
### WT vs Wapl No Outlier
```{r no_out1}
#Jacob_Noeker
#RNA Seq Analysis
#WAPL NIPBL Project
#install.packages("BiocManager")
library(DESeq2)
# Set up variables, output folders, etc
#
# This section does the following:
# 1. Checks for output folders and creates them if absent
# 2. Defines input read count files
# 3. Strips annotation columns and saves annotation info
# 4. Defines FDR threshold
# output directory for deseq2 files
# create these if not present
deseq.folder <- "output/deseq2/"
norm.folder <- "output/vstnorm/"
degenes.folder <- "output/degenes/"
# check for subfolders and if not present, create folder
#ifelse(!dir.exists(file.path('.',deseq.folder)),
# dir.create(file.path('.',deseq.folder), recursive = TRUE), NA)
#ifelse(!dir.exists(file.path('.',norm.folder)),
# dir.create(file.path('.',norm.folder), recursive = TRUE), NA)
#ifelse(!dir.exists(file.path('.',degenes.folder)),
# dir.create(file.path('.',degenes.folder), recursive = TRUE), NA)
# hardcoded column names from featureCounts output
# only 'EnsID' column name is dependent on GTF file
annot.cols <- c("Chr","Start","End","Strand","Length")
geneid.colname <- "Geneid"
# Define FDR threshold and FDR column name
fdr.thres <- 0.1
# Define FC threshold
fc.thres <- 0
# Define limits for MA and volcano plots
#fc.lim <- c(-2, 2)
# define size of pdf for MA and volcano plots (in inches)
#ma.width <- 10
#ma.height <- 8
# define size of PDF file for degPattern plots (in inches)
#pdf.width <- 20
#pdf.height <- 20
# read count tables
# count tables from featureCounts
# 1. The first line with the commant is commented out and not read
# 2. the second line wth the file names can be parsed within R using
# grep() to match specified sample names
counts <- read.table("counts_CT_no_outlier.txt",
sep="\t",header=TRUE, row.names=1)
exptname <- 'wapl_nipbl'
# strip annotation columns but save annot data
annot.data <- cbind(rownames(counts), counts[,colnames(counts) %in% annot.cols])
colnames(annot.data)[1] <- geneid.colname
counts <- counts[,!colnames(counts) %in% annot.cols]
# sample list
# converted to input variable
all.samples <- c("DD_WAPL","WT")
# reformat column names matching sample names
# TODO: throw error if sample name does not match column names
sample.vec <- NULL
for(i in 1:length(all.samples)){
# which column names match the sample name
idx <- grep(all.samples[i], colnames(counts))
# create named vector to save metadata
# this maps column names to sample names
temp.vec <- rep(all.samples[i], length(idx))
names(temp.vec) <- colnames(counts)[idx]
sample.vec <- c(sample.vec, temp.vec)
}
# DESeq2 analysis
#
# Input: read counts in TSV format
# Output: differential expression results from DESeq2 in TSV format
#
# This section takes the cleaned count files and performs the following steps:
#
# 1. creates DESeq data object
# 2. creates sample lists for individual comparisons
# 3. performs DESeq2 comparisons between samples separately for plus & minus BMP2
#
# Also, obtains a list of genes to be used as background for downstream analysis
#
# create a list for read counts
all.reads <- list(counts)
names(all.reads) <- exptname
# create sample lists for individual comparisons
# create input variable with this info
all.comps <- list(a = c("DD_WAPL","WT"))
# list of genes to be used as background
background.genes <- NULL
# list of DE results
res.list <- list()
# list of DE genes
deg.list <- list()
# list of upregulated genes
up.list <- list()
for(k in 1:length(all.reads)){
read.mat <- all.reads[[k]]
for(i in 1:length(all.comps)){
# get treatment and control names
treatment <- all.comps[[i]][1]
control <- all.comps[[i]][2]
# get column indices corresponding to samples in comparison
sample.idx <- NULL
for(j in all.comps[[i]]){
sample.idx <- c(sample.idx, grep(j, colnames(read.mat)))
}
# extract reads for specific sample columns
reads.sub <- read.mat[,sample.idx]
# create design matrix by selection from sample.vec
idx <- which(sample.vec %in% all.comps[[i]])
design <- data.frame(row.names = names(sample.vec[idx]),
condition = sample.vec[idx])
design$sampleid <- sub("_.+", "", rownames(design))
# DESeq2 object
dds <- DESeqDataSetFromMatrix(countData = reads.sub,
colData = design,
design = ~condition)
# run DESeq2
dds <- DESeq(dds, betaPrior = FALSE)
#res <- results(dds, contrast=c("condition", treatment, control),
# cooksCutoff=FALSE)
# get results with lfcShrink
res <- lfcShrink(dds, contrast=c("condition", treatment, control))
res.list[[length(res.list) + 1]] <- res
names(deg.list)[length(deg.list)] <- names(all.comps)[i]
# output DESeq2 results to file
write.table(cbind(geneid=rownames(res),res),
paste0(deseq.folder, names(all.reads)[k], "_", treatment, "-vs-", control,".txt"),
sep="\t",quote=FALSE, row.names=FALSE)
# keep list of degenes
idx <- which(res$padj < fdr.thres &
!is.na(res$padj) &
abs(res$log2FoldChange) >= fc.thres)
deg.list[[length(deg.list) + 1]] <- rownames(res)[idx]
names(deg.list)[length(deg.list)] <- names(all.comps)[i]
# output DE genes to file
write.table(deg.list[[i]],
paste0(degenes.folder, names(all.reads)[k], "_fdr", fdr.thres, "_fc", fc.thres, ".txt"),
sep="\t", quote=FALSE, row.names=FALSE, col.names=FALSE)
# list of upregulated genes (for easy reference)
idx <- which(res$padj < fdr.thres &
!is.na(res$padj) &
res$log2FoldChange >= fc.thres)
up.list[[length(up.list) + 1]] <- rownames(res)[idx]
names(up.list)[length(up.list)] <- names(all.comps)[i]
# get normalized data
norm.vst <- vst(dds)
# write normalized data to file
write.table(cbind(geneid=rownames(assay(norm.vst), assay(norm.vst))),
paste0(norm.folder, "vstnorm_", treatment, "-", control,".txt"),
sep="\t", quote=FALSE, row.names=FALSE)
}
# collect genes that have baseMean != 0 in at least one comparison
background.genes <- c(background.genes, rownames(res)[res$baseMean != 0])
}
# keep unique bg genes and sort by gene names
background.genes <- unique(background.genes)
background.genes <- background.genes[order(background.genes)]
# extract annotation data for bg genes and output Ensembl ID and gene symbols
background.annot <- annot.data[annot.data[,geneid.colname] %in% background.genes,
geneid.colname]
# write background list to file
write.table(background.annot, paste0(deseq.folder, "background-genes_", ".txt"),
sep="\t", quote=FALSE, row.names=FALSE, col.names=FALSE)
waplvwt_pca <- plotPCA(norm.vst, intgroup="condition")
library(ggrepel)
waplvwt_pca + geom_text_repel(aes_string(x = "PC1", y = "PC2", label = "name"), color = "black")
```
### WT vs NIPBL
```{r RNA Seq2}
#Jacob_Noeker
#RNA Seq Analysis
#WAPL NIPBL Project
#install.packages("BiocManager")
library(DESeq2)
# Set up variables, output folders, etc
#
# This section does the following:
# 1. Checks for output folders and creates them if absent
# 2. Defines input read count files
# 3. Strips annotation columns and saves annotation info
# 4. Defines FDR threshold
# output directory for deseq2 files
# create these if not present
deseq.folder <- "output/deseq2/"
norm.folder <- "output/vstnorm/"
degenes.folder <- "output/degenes/"
# check for subfolders and if not present, create folder
#ifelse(!dir.exists(file.path('.',deseq.folder)),
# dir.create(file.path('.',deseq.folder), recursive = TRUE), NA)
#ifelse(!dir.exists(file.path('.',norm.folder)),
# dir.create(file.path('.',norm.folder), recursive = TRUE), NA)
#ifelse(!dir.exists(file.path('.',degenes.folder)),
# dir.create(file.path('.',degenes.folder), recursive = TRUE), NA)
# hardcoded column names from featureCounts output
# only 'EnsID' column name is dependent on GTF file
annot.cols <- c("Chr","Start","End","Strand","Length")
geneid.colname <- "Geneid"
# Define FDR threshold and FDR column name
fdr.thres <- 0.1
# Define FC threshold
fc.thres <- 0
# Define limits for MA and volcano plots
#fc.lim <- c(-2, 2)
# define size of pdf for MA and volcano plots (in inches)
#ma.width <- 10
#ma.height <- 8
# define size of PDF file for degPattern plots (in inches)
#pdf.width <- 20
#pdf.height <- 20
# read count tables
# count tables from featureCounts
# 1. The first line with the commant is commented out and not read
# 2. the second line wth the file names can be parsed within R using
# grep() to match specified sample names
counts <- read.table("counts_CT_simp.txt",
sep="\t",header=TRUE, row.names=1)
exptname <- 'wapl_nipbl'
# strip annotation columns but save annot data
annot.data <- cbind(rownames(counts), counts[,colnames(counts) %in% annot.cols])
colnames(annot.data)[1] <- geneid.colname
counts <- counts[,!colnames(counts) %in% annot.cols]
# sample list
# converted to input variable
all.samples <- c("DD_NIPBL","WT")
# reformat column names matching sample names
# TODO: throw error if sample name does not match column names
sample.vec <- NULL
for(i in 1:length(all.samples)){
# which column names match the sample name
idx <- grep(all.samples[i], colnames(counts))
# create named vector to save metadata
# this maps column names to sample names
temp.vec <- rep(all.samples[i], length(idx))
names(temp.vec) <- colnames(counts)[idx]
sample.vec <- c(sample.vec, temp.vec)
}
# DESeq2 analysis
#
# Input: read counts in TSV format
# Output: differential expression results from DESeq2 in TSV format
#
# This section takes the cleaned count files and performs the following steps:
#
# 1. creates DESeq data object
# 2. creates sample lists for individual comparisons
# 3. performs DESeq2 comparisons between samples separately for plus & minus BMP2
#
# Also, obtains a list of genes to be used as background for downstream analysis
#
# create a list for read counts
all.reads <- list(counts)
names(all.reads) <- exptname
# create sample lists for individual comparisons
# create input variable with this info
all.comps <- list(a = c("DD_NIPBL","WT"))
# list of genes to be used as background
background.genes <- NULL
# list of DE results
res.list <- list()
# list of DE genes
deg.list <- list()
# list of upregulated genes
up.list <- list()
for(k in 1:length(all.reads)){
read.mat <- all.reads[[k]]
for(i in 1:length(all.comps)){
# get treatment and control names
treatment <- all.comps[[i]][1]
control <- all.comps[[i]][2]
# get column indices corresponding to samples in comparison
sample.idx <- NULL
for(j in all.comps[[i]]){
sample.idx <- c(sample.idx, grep(j, colnames(read.mat)))
}
# extract reads for specific sample columns
reads.sub <- read.mat[,sample.idx]
# create design matrix by selection from sample.vec
idx <- which(sample.vec %in% all.comps[[i]])
design <- data.frame(row.names = names(sample.vec[idx]),
condition = sample.vec[idx])
design$sampleid <- sub("_.+", "", rownames(design))
# DESeq2 object
dds <- DESeqDataSetFromMatrix(countData = reads.sub,
colData = design,
design = ~condition)
# run DESeq2
dds <- DESeq(dds, betaPrior = FALSE)
#res <- results(dds, contrast=c("condition", treatment, control),
# cooksCutoff=FALSE)
# get results with lfcShrink
res <- lfcShrink(dds, contrast=c("condition", treatment, control))
res.list[[length(res.list) + 1]] <- res
names(deg.list)[length(deg.list)] <- names(all.comps)[i]
# output DESeq2 results to file
write.table(cbind(geneid=rownames(res),res),
paste0(deseq.folder, names(all.reads)[k], "_", treatment, "-vs-", control,".txt"),
sep="\t",quote=FALSE, row.names=FALSE)
# keep list of degenes
idx <- which(res$padj < fdr.thres &
!is.na(res$padj) &
abs(res$log2FoldChange) >= fc.thres)
deg.list[[length(deg.list) + 1]] <- rownames(res)[idx]
names(deg.list)[length(deg.list)] <- names(all.comps)[i]
# output DE genes to file
write.table(deg.list[[i]],
paste0(degenes.folder, names(all.reads)[k], "_fdr", fdr.thres, "_fc", fc.thres, ".txt"),
sep="\t", quote=FALSE, row.names=FALSE, col.names=FALSE)
# list of upregulated genes (for easy reference)
idx <- which(res$padj < fdr.thres &
!is.na(res$padj) &
res$log2FoldChange >= fc.thres)
up.list[[length(up.list) + 1]] <- rownames(res)[idx]
names(up.list)[length(up.list)] <- names(all.comps)[i]
# get normalized data
norm.vst <- vst(dds)
# write normalized data to file
write.table(cbind(geneid=rownames(assay(norm.vst), assay(norm.vst))),
paste0(norm.folder, "vstnorm_", treatment, "-", control,".txt"),
sep="\t", quote=FALSE, row.names=FALSE)
}
# collect genes that have baseMean != 0 in at least one comparison
background.genes <- c(background.genes, rownames(res)[res$baseMean != 0])
}
# keep unique bg genes and sort by gene names
background.genes <- unique(background.genes)
background.genes <- background.genes[order(background.genes)]
# extract annotation data for bg genes and output Ensembl ID and gene symbols
background.annot <- annot.data[annot.data[,geneid.colname] %in% background.genes,
geneid.colname]
# write background list to file
write.table(background.annot, paste0(deseq.folder, "background-genes_", ".txt"),
sep="\t", quote=FALSE, row.names=FALSE, col.names=FALSE)
nipblvwt_pca <- plotPCA(norm.vst, intgroup="condition")
library(ggrepel)
nipblvwt_pca + geom_text_repel(aes_string(x = "PC1", y = "PC2", label = "name"), color = "black")
```
### WT vs Nipbl No Outlier
```{r no_out2}
#Jacob_Noeker
#RNA Seq Analysis
#WAPL NIPBL Project
#install.packages("BiocManager")
library(DESeq2)
# Set up variables, output folders, etc
#
# This section does the following:
# 1. Checks for output folders and creates them if absent
# 2. Defines input read count files
# 3. Strips annotation columns and saves annotation info
# 4. Defines FDR threshold
# output directory for deseq2 files
# create these if not present
deseq.folder <- "output/deseq2/"
norm.folder <- "output/vstnorm/"
degenes.folder <- "output/degenes/"
# check for subfolders and if not present, create folder
#ifelse(!dir.exists(file.path('.',deseq.folder)),
# dir.create(file.path('.',deseq.folder), recursive = TRUE), NA)
#ifelse(!dir.exists(file.path('.',norm.folder)),
# dir.create(file.path('.',norm.folder), recursive = TRUE), NA)
#ifelse(!dir.exists(file.path('.',degenes.folder)),
# dir.create(file.path('.',degenes.folder), recursive = TRUE), NA)
# hardcoded column names from featureCounts output
# only 'EnsID' column name is dependent on GTF file
annot.cols <- c("Chr","Start","End","Strand","Length")
geneid.colname <- "Geneid"
# Define FDR threshold and FDR column name
fdr.thres <- 0.1
# Define FC threshold
fc.thres <- 0
# Define limits for MA and volcano plots
#fc.lim <- c(-2, 2)
# define size of pdf for MA and volcano plots (in inches)
#ma.width <- 10
#ma.height <- 8
# define size of PDF file for degPattern plots (in inches)
#pdf.width <- 20
#pdf.height <- 20
# read count tables
# count tables from featureCounts
# 1. The first line with the commant is commented out and not read
# 2. the second line wth the file names can be parsed within R using
# grep() to match specified sample names
counts <- read.table("counts_CT_no_outlier.txt",
sep="\t",header=TRUE, row.names=1)
exptname <- 'wapl_nipbl'
# strip annotation columns but save annot data
annot.data <- cbind(rownames(counts), counts[,colnames(counts) %in% annot.cols])
colnames(annot.data)[1] <- geneid.colname
counts <- counts[,!colnames(counts) %in% annot.cols]
# sample list
# converted to input variable
all.samples <- c("DD_NIPBL","WT")
# reformat column names matching sample names
# TODO: throw error if sample name does not match column names
sample.vec <- NULL
for(i in 1:length(all.samples)){
# which column names match the sample name
idx <- grep(all.samples[i], colnames(counts))
# create named vector to save metadata
# this maps column names to sample names
temp.vec <- rep(all.samples[i], length(idx))
names(temp.vec) <- colnames(counts)[idx]
sample.vec <- c(sample.vec, temp.vec)
}
# DESeq2 analysis
#
# Input: read counts in TSV format
# Output: differential expression results from DESeq2 in TSV format
#
# This section takes the cleaned count files and performs the following steps:
#
# 1. creates DESeq data object
# 2. creates sample lists for individual comparisons
# 3. performs DESeq2 comparisons between samples separately for plus & minus BMP2
#
# Also, obtains a list of genes to be used as background for downstream analysis
#
# create a list for read counts
all.reads <- list(counts)
names(all.reads) <- exptname
# create sample lists for individual comparisons
# create input variable with this info
all.comps <- list(a = c("DD_NIPBL","WT"))
# list of genes to be used as background
background.genes <- NULL
# list of DE results
res.list <- list()
# list of DE genes
deg.list <- list()
# list of upregulated genes
up.list <- list()
for(k in 1:length(all.reads)){
read.mat <- all.reads[[k]]
for(i in 1:length(all.comps)){
# get treatment and control names
treatment <- all.comps[[i]][1]
control <- all.comps[[i]][2]
# get column indices corresponding to samples in comparison
sample.idx <- NULL
for(j in all.comps[[i]]){
sample.idx <- c(sample.idx, grep(j, colnames(read.mat)))
}
# extract reads for specific sample columns
reads.sub <- read.mat[,sample.idx]
# create design matrix by selection from sample.vec
idx <- which(sample.vec %in% all.comps[[i]])
design <- data.frame(row.names = names(sample.vec[idx]),
condition = sample.vec[idx])
design$sampleid <- sub("_.+", "", rownames(design))
# DESeq2 object
dds <- DESeqDataSetFromMatrix(countData = reads.sub,
colData = design,
design = ~condition)
# run DESeq2
dds <- DESeq(dds, betaPrior = FALSE)
#res <- results(dds, contrast=c("condition", treatment, control),
# cooksCutoff=FALSE)
# get results with lfcShrink
res <- lfcShrink(dds, contrast=c("condition", treatment, control))
res.list[[length(res.list) + 1]] <- res
names(deg.list)[length(deg.list)] <- names(all.comps)[i]
# output DESeq2 results to file
write.table(cbind(geneid=rownames(res),res),
paste0(deseq.folder, names(all.reads)[k], "_", treatment, "-vs-", control,".txt"),
sep="\t",quote=FALSE, row.names=FALSE)
# keep list of degenes
idx <- which(res$padj < fdr.thres &
!is.na(res$padj) &
abs(res$log2FoldChange) >= fc.thres)
deg.list[[length(deg.list) + 1]] <- rownames(res)[idx]
names(deg.list)[length(deg.list)] <- names(all.comps)[i]
# output DE genes to file
write.table(deg.list[[i]],
paste0(degenes.folder, names(all.reads)[k], "_fdr", fdr.thres, "_fc", fc.thres, ".txt"),
sep="\t", quote=FALSE, row.names=FALSE, col.names=FALSE)
# list of upregulated genes (for easy reference)
idx <- which(res$padj < fdr.thres &
!is.na(res$padj) &
res$log2FoldChange >= fc.thres)
up.list[[length(up.list) + 1]] <- rownames(res)[idx]
names(up.list)[length(up.list)] <- names(all.comps)[i]
# get normalized data
norm.vst <- vst(dds)
# write normalized data to file
write.table(cbind(geneid=rownames(assay(norm.vst), assay(norm.vst))),
paste0(norm.folder, "vstnorm_", treatment, "-", control,".txt"),
sep="\t", quote=FALSE, row.names=FALSE)
}
# collect genes that have baseMean != 0 in at least one comparison
background.genes <- c(background.genes, rownames(res)[res$baseMean != 0])
}
# keep unique bg genes and sort by gene names
background.genes <- unique(background.genes)
background.genes <- background.genes[order(background.genes)]
# extract annotation data for bg genes and output Ensembl ID and gene symbols
background.annot <- annot.data[annot.data[,geneid.colname] %in% background.genes,
geneid.colname]
# write background list to file
write.table(background.annot, paste0(deseq.folder, "background-genes_", ".txt"),
sep="\t", quote=FALSE, row.names=FALSE, col.names=FALSE)
nipblvwt_pca <- plotPCA(norm.vst, intgroup="condition")
library(ggrepel)
nipblvwt_pca + geom_text_repel(aes_string(x = "PC1", y = "PC2", label = "name"), color = "black")
```
### WT vs Compound
```{r RNA Seq3}
#Jacob_Noeker
#RNA Seq Analysis
#WAPL NIPBL Project
#install.packages("BiocManager")
library(DESeq2)
# Set up variables, output folders, etc
#
# This section does the following:
# 1. Checks for output folders and creates them if absent
# 2. Defines input read count files
# 3. Strips annotation columns and saves annotation info
# 4. Defines FDR threshold
# output directory for deseq2 files
# create these if not present
deseq.folder <- "output/deseq2/"
norm.folder <- "output/vstnorm/"
degenes.folder <- "output/degenes/"
# check for subfolders and if not present, create folder
#ifelse(!dir.exists(file.path('.',deseq.folder)),
# dir.create(file.path('.',deseq.folder), recursive = TRUE), NA)
#ifelse(!dir.exists(file.path('.',norm.folder)),
# dir.create(file.path('.',norm.folder), recursive = TRUE), NA)
#ifelse(!dir.exists(file.path('.',degenes.folder)),
# dir.create(file.path('.',degenes.folder), recursive = TRUE), NA)
# hardcoded column names from featureCounts output
# only 'EnsID' column name is dependent on GTF file
annot.cols <- c("Chr","Start","End","Strand","Length")
geneid.colname <- "Geneid"
# Define FDR threshold and FDR column name
fdr.thres <- 0.1
# Define FC threshold
fc.thres <- 0
# Define limits for MA and volcano plots
#fc.lim <- c(-2, 2)
# define size of pdf for MA and volcano plots (in inches)
#ma.width <- 10
#ma.height <- 8
# define size of PDF file for degPattern plots (in inches)
#pdf.width <- 20
#pdf.height <- 20
# read count tables
# count tables from featureCounts
# 1. The first line with the commant is commented out and not read
# 2. the second line wth the file names can be parsed within R using
# grep() to match specified sample names
counts <- read.table("counts_CT_simp.txt",
sep="\t",header=TRUE, row.names=1)
exptname <- 'wapl_nipbl'
# strip annotation columns but save annot data
annot.data <- cbind(rownames(counts), counts[,colnames(counts) %in% annot.cols])
colnames(annot.data)[1] <- geneid.colname
counts <- counts[,!colnames(counts) %in% annot.cols]
# sample list
# converted to input variable
all.samples <- c("DD_COMPOUND","WT")
# reformat column names matching sample names
# TODO: throw error if sample name does not match column names
sample.vec <- NULL
for(i in 1:length(all.samples)){
# which column names match the sample name
idx <- grep(all.samples[i], colnames(counts))
# create named vector to save metadata
# this maps column names to sample names
temp.vec <- rep(all.samples[i], length(idx))
names(temp.vec) <- colnames(counts)[idx]
sample.vec <- c(sample.vec, temp.vec)
}
# DESeq2 analysis
#
# Input: read counts in TSV format
# Output: differential expression results from DESeq2 in TSV format
#
# This section takes the cleaned count files and performs the following steps:
#
# 1. creates DESeq data object
# 2. creates sample lists for individual comparisons
# 3. performs DESeq2 comparisons between samples separately for plus & minus BMP2
#
# Also, obtains a list of genes to be used as background for downstream analysis
#
# create a list for read counts
all.reads <- list(counts)
names(all.reads) <- exptname
# create sample lists for individual comparisons
# create input variable with this info
all.comps <- list(a = c("DD_COMPOUND","WT"))
# list of genes to be used as background
background.genes <- NULL
# list of DE results
res.list <- list()
# list of DE genes
deg.list <- list()
# list of upregulated genes
up.list <- list()
for(k in 1:length(all.reads)){
read.mat <- all.reads[[k]]
for(i in 1:length(all.comps)){
# get treatment and control names
treatment <- all.comps[[i]][1]
control <- all.comps[[i]][2]
# get column indices corresponding to samples in comparison
sample.idx <- NULL
for(j in all.comps[[i]]){
sample.idx <- c(sample.idx, grep(j, colnames(read.mat)))
}
# extract reads for specific sample columns
reads.sub <- read.mat[,sample.idx]
# create design matrix by selection from sample.vec
idx <- which(sample.vec %in% all.comps[[i]])
design <- data.frame(row.names = names(sample.vec[idx]),
condition = sample.vec[idx])
design$sampleid <- sub("_.+", "", rownames(design))
# DESeq2 object
dds <- DESeqDataSetFromMatrix(countData = reads.sub,
colData = design,
design = ~condition)
# run DESeq2
dds <- DESeq(dds, betaPrior = FALSE)
#res <- results(dds, contrast=c("condition", treatment, control),
# cooksCutoff=FALSE)
# get results with lfcShrink
res <- lfcShrink(dds, contrast=c("condition", treatment, control))
res.list[[length(res.list) + 1]] <- res
names(deg.list)[length(deg.list)] <- names(all.comps)[i]
# output DESeq2 results to file
write.table(cbind(geneid=rownames(res),res),
paste0(deseq.folder, names(all.reads)[k], "_", treatment, "-vs-", control,".txt"),
sep="\t",quote=FALSE, row.names=FALSE)
# keep list of degenes
idx <- which(res$padj < fdr.thres &
!is.na(res$padj) &
abs(res$log2FoldChange) >= fc.thres)
deg.list[[length(deg.list) + 1]] <- rownames(res)[idx]
names(deg.list)[length(deg.list)] <- names(all.comps)[i]
# output DE genes to file
write.table(deg.list[[i]],
paste0(degenes.folder, names(all.reads)[k], "_fdr", fdr.thres, "_fc", fc.thres, ".txt"),
sep="\t", quote=FALSE, row.names=FALSE, col.names=FALSE)
# list of upregulated genes (for easy reference)
idx <- which(res$padj < fdr.thres &
!is.na(res$padj) &
res$log2FoldChange >= fc.thres)
up.list[[length(up.list) + 1]] <- rownames(res)[idx]
names(up.list)[length(up.list)] <- names(all.comps)[i]
# get normalized data
norm.vst <- vst(dds)
# write normalized data to file
write.table(cbind(geneid=rownames(assay(norm.vst), assay(norm.vst))),
paste0(norm.folder, "vstnorm_", treatment, "-", control,".txt"),
sep="\t", quote=FALSE, row.names=FALSE)
}
# collect genes that have baseMean != 0 in at least one comparison
background.genes <- c(background.genes, rownames(res)[res$baseMean != 0])
}
# keep unique bg genes and sort by gene names
background.genes <- unique(background.genes)
background.genes <- background.genes[order(background.genes)]
# extract annotation data for bg genes and output Ensembl ID and gene symbols
background.annot <- annot.data[annot.data[,geneid.colname] %in% background.genes,
geneid.colname]
# write background list to file
write.table(background.annot, paste0(deseq.folder, "background-genes_", ".txt"),
sep="\t", quote=FALSE, row.names=FALSE, col.names=FALSE)
compoundvwt_pca <- plotPCA(norm.vst, intgroup="condition")
library(ggrepel)
compoundvwt_pca + geom_text_repel(aes_string(x = "PC1", y = "PC2", label = "name"), color = "black")
```
### WT vs Compound No Outlier
```{r no_out3}
#Jacob_Noeker
#RNA Seq Analysis
#WAPL NIPBL Project
#install.packages("BiocManager")
library(DESeq2)
# Set up variables, output folders, etc
#
# This section does the following:
# 1. Checks for output folders and creates them if absent
# 2. Defines input read count files
# 3. Strips annotation columns and saves annotation info
# 4. Defines FDR threshold
# output directory for deseq2 files
# create these if not present
deseq.folder <- "output/deseq2/"
norm.folder <- "output/vstnorm/"
degenes.folder <- "output/degenes/"
# check for subfolders and if not present, create folder
#ifelse(!dir.exists(file.path('.',deseq.folder)),
# dir.create(file.path('.',deseq.folder), recursive = TRUE), NA)
#ifelse(!dir.exists(file.path('.',norm.folder)),
# dir.create(file.path('.',norm.folder), recursive = TRUE), NA)
#ifelse(!dir.exists(file.path('.',degenes.folder)),
# dir.create(file.path('.',degenes.folder), recursive = TRUE), NA)
# hardcoded column names from featureCounts output
# only 'EnsID' column name is dependent on GTF file
annot.cols <- c("Chr","Start","End","Strand","Length")
geneid.colname <- "Geneid"
# Define FDR threshold and FDR column name
fdr.thres <- 0.1
# Define FC threshold
fc.thres <- 0
# Define limits for MA and volcano plots
#fc.lim <- c(-2, 2)
# define size of pdf for MA and volcano plots (in inches)
#ma.width <- 10
#ma.height <- 8
# define size of PDF file for degPattern plots (in inches)
#pdf.width <- 20
#pdf.height <- 20
# read count tables
# count tables from featureCounts
# 1. The first line with the commant is commented out and not read
# 2. the second line wth the file names can be parsed within R using
# grep() to match specified sample names
counts <- read.table("counts_CT_no_outlier.txt",
sep="\t",header=TRUE, row.names=1)
exptname <- 'wapl_nipbl'
# strip annotation columns but save annot data
annot.data <- cbind(rownames(counts), counts[,colnames(counts) %in% annot.cols])
colnames(annot.data)[1] <- geneid.colname
counts <- counts[,!colnames(counts) %in% annot.cols]
# sample list
# converted to input variable
all.samples <- c("DD_COMPOUND","WT")
# reformat column names matching sample names
# TODO: throw error if sample name does not match column names
sample.vec <- NULL
for(i in 1:length(all.samples)){
# which column names match the sample name
idx <- grep(all.samples[i], colnames(counts))
# create named vector to save metadata
# this maps column names to sample names
temp.vec <- rep(all.samples[i], length(idx))
names(temp.vec) <- colnames(counts)[idx]
sample.vec <- c(sample.vec, temp.vec)
}
# DESeq2 analysis
#
# Input: read counts in TSV format
# Output: differential expression results from DESeq2 in TSV format
#
# This section takes the cleaned count files and performs the following steps:
#
# 1. creates DESeq data object
# 2. creates sample lists for individual comparisons
# 3. performs DESeq2 comparisons between samples separately for plus & minus BMP2
#
# Also, obtains a list of genes to be used as background for downstream analysis
#
# create a list for read counts
all.reads <- list(counts)
names(all.reads) <- exptname
# create sample lists for individual comparisons
# create input variable with this info
all.comps <- list(a = c("DD_COMPOUND","WT"))
# list of genes to be used as background
background.genes <- NULL
# list of DE results
res.list <- list()
# list of DE genes
deg.list <- list()
# list of upregulated genes
up.list <- list()
for(k in 1:length(all.reads)){
read.mat <- all.reads[[k]]
for(i in 1:length(all.comps)){
# get treatment and control names
treatment <- all.comps[[i]][1]
control <- all.comps[[i]][2]
# get column indices corresponding to samples in comparison
sample.idx <- NULL
for(j in all.comps[[i]]){
sample.idx <- c(sample.idx, grep(j, colnames(read.mat)))
}
# extract reads for specific sample columns
reads.sub <- read.mat[,sample.idx]
# create design matrix by selection from sample.vec
idx <- which(sample.vec %in% all.comps[[i]])
design <- data.frame(row.names = names(sample.vec[idx]),
condition = sample.vec[idx])
design$sampleid <- sub("_.+", "", rownames(design))
# DESeq2 object
dds <- DESeqDataSetFromMatrix(countData = reads.sub,
colData = design,
design = ~condition)
# run DESeq2
dds <- DESeq(dds, betaPrior = FALSE)
#res <- results(dds, contrast=c("condition", treatment, control),
# cooksCutoff=FALSE)
# get results with lfcShrink
res <- lfcShrink(dds, contrast=c("condition", treatment, control))
res.list[[length(res.list) + 1]] <- res
names(deg.list)[length(deg.list)] <- names(all.comps)[i]
# output DESeq2 results to file
write.table(cbind(geneid=rownames(res),res),
paste0(deseq.folder, names(all.reads)[k], "_", treatment, "-vs-", control,".txt"),
sep="\t",quote=FALSE, row.names=FALSE)
# keep list of degenes
idx <- which(res$padj < fdr.thres &
!is.na(res$padj) &
abs(res$log2FoldChange) >= fc.thres)
deg.list[[length(deg.list) + 1]] <- rownames(res)[idx]
names(deg.list)[length(deg.list)] <- names(all.comps)[i]
# output DE genes to file
write.table(deg.list[[i]],
paste0(degenes.folder, names(all.reads)[k], "_fdr", fdr.thres, "_fc", fc.thres, ".txt"),
sep="\t", quote=FALSE, row.names=FALSE, col.names=FALSE)
# list of upregulated genes (for easy reference)
idx <- which(res$padj < fdr.thres &
!is.na(res$padj) &
res$log2FoldChange >= fc.thres)
up.list[[length(up.list) + 1]] <- rownames(res)[idx]
names(up.list)[length(up.list)] <- names(all.comps)[i]
# get normalized data
norm.vst <- vst(dds)
# write normalized data to file
write.table(cbind(geneid=rownames(assay(norm.vst), assay(norm.vst))),
paste0(norm.folder, "vstnorm_", treatment, "-", control,".txt"),
sep="\t", quote=FALSE, row.names=FALSE)
}
# collect genes that have baseMean != 0 in at least one comparison
background.genes <- c(background.genes, rownames(res)[res$baseMean != 0])
}
# keep unique bg genes and sort by gene names
background.genes <- unique(background.genes)
background.genes <- background.genes[order(background.genes)]
# extract annotation data for bg genes and output Ensembl ID and gene symbols
background.annot <- annot.data[annot.data[,geneid.colname] %in% background.genes,
geneid.colname]
# write background list to file
write.table(background.annot, paste0(deseq.folder, "background-genes_", ".txt"),
sep="\t", quote=FALSE, row.names=FALSE, col.names=FALSE)
compoundvwt_pca <- plotPCA(norm.vst, intgroup="condition")
library(ggrepel)
compoundvwt_pca + geom_text_repel(aes_string(x = "PC1", y = "PC2", label = "name"), color = "black")
```
### NIPBL vs WAPL
```{r RNA Seq4}
#Jacob_Noeker
#RNA Seq Analysis
#WAPL NIPBL Project
#install.packages("BiocManager")
library(DESeq2)
# Set up variables, output folders, etc
#
# This section does the following:
# 1. Checks for output folders and creates them if absent
# 2. Defines input read count files
# 3. Strips annotation columns and saves annotation info
# 4. Defines FDR threshold
# output directory for deseq2 files
# create these if not present
deseq.folder <- "output/deseq2/"
norm.folder <- "output/vstnorm/"
degenes.folder <- "output/degenes/"
# check for subfolders and if not present, create folder
#ifelse(!dir.exists(file.path('.',deseq.folder)),
# dir.create(file.path('.',deseq.folder), recursive = TRUE), NA)
#ifelse(!dir.exists(file.path('.',norm.folder)),
# dir.create(file.path('.',norm.folder), recursive = TRUE), NA)
#ifelse(!dir.exists(file.path('.',degenes.folder)),
# dir.create(file.path('.',degenes.folder), recursive = TRUE), NA)
# hardcoded column names from featureCounts output
# only 'EnsID' column name is dependent on GTF file
annot.cols <- c("Chr","Start","End","Strand","Length")
geneid.colname <- "Geneid"
# Define FDR threshold and FDR column name
fdr.thres <- 0.1
# Define FC threshold
fc.thres <- 0
# Define limits for MA and volcano plots
#fc.lim <- c(-2, 2)
# define size of pdf for MA and volcano plots (in inches)
#ma.width <- 10
#ma.height <- 8
# define size of PDF file for degPattern plots (in inches)
#pdf.width <- 20
#pdf.height <- 20
# read count tables
# count tables from featureCounts
# 1. The first line with the commant is commented out and not read
# 2. the second line wth the file names can be parsed within R using
# grep() to match specified sample names
counts <- read.table("counts_CT_simp.txt",
sep="\t",header=TRUE, row.names=1)
exptname <- 'wapl_nipbl'
# strip annotation columns but save annot data
annot.data <- cbind(rownames(counts), counts[,colnames(counts) %in% annot.cols])
colnames(annot.data)[1] <- geneid.colname
counts <- counts[,!colnames(counts) %in% annot.cols]
# sample list
# converted to input variable
all.samples <- c("DD_NIPBL","DD_WAPL")
# reformat column names matching sample names
# TODO: throw error if sample name does not match column names
sample.vec <- NULL
for(i in 1:length(all.samples)){
# which column names match the sample name
idx <- grep(all.samples[i], colnames(counts))
# create named vector to save metadata
# this maps column names to sample names
temp.vec <- rep(all.samples[i], length(idx))
names(temp.vec) <- colnames(counts)[idx]
sample.vec <- c(sample.vec, temp.vec)
}
# DESeq2 analysis
#
# Input: read counts in TSV format
# Output: differential expression results from DESeq2 in TSV format
#
# This section takes the cleaned count files and performs the following steps:
#
# 1. creates DESeq data object
# 2. creates sample lists for individual comparisons
# 3. performs DESeq2 comparisons between samples separately for plus & minus BMP2
#
# Also, obtains a list of genes to be used as background for downstream analysis
#
# create a list for read counts
all.reads <- list(counts)
names(all.reads) <- exptname
# create sample lists for individual comparisons
# create input variable with this info
all.comps <- list(a = c("DD_NIPBL","DD_WAPL"))
# list of genes to be used as background
background.genes <- NULL
# list of DE results
res.list <- list()
# list of DE genes
deg.list <- list()
# list of upregulated genes
up.list <- list()
for(k in 1:length(all.reads)){
read.mat <- all.reads[[k]]
for(i in 1:length(all.comps)){
# get treatment and control names
treatment <- all.comps[[i]][1]
control <- all.comps[[i]][2]
# get column indices corresponding to samples in comparison
sample.idx <- NULL
for(j in all.comps[[i]]){
sample.idx <- c(sample.idx, grep(j, colnames(read.mat)))
}
# extract reads for specific sample columns
reads.sub <- read.mat[,sample.idx]
# create design matrix by selection from sample.vec
idx <- which(sample.vec %in% all.comps[[i]])
design <- data.frame(row.names = names(sample.vec[idx]),
condition = sample.vec[idx])
design$sampleid <- sub("_.+", "", rownames(design))
# DESeq2 object
dds <- DESeqDataSetFromMatrix(countData = reads.sub,
colData = design,
design = ~condition)
# run DESeq2
dds <- DESeq(dds, betaPrior = FALSE)
#res <- results(dds, contrast=c("condition", treatment, control),
# cooksCutoff=FALSE)
# get results with lfcShrink
res <- lfcShrink(dds, contrast=c("condition", treatment, control))
res.list[[length(res.list) + 1]] <- res
names(deg.list)[length(deg.list)] <- names(all.comps)[i]
# output DESeq2 results to file
write.table(cbind(geneid=rownames(res),res),
paste0(deseq.folder, names(all.reads)[k], "_", treatment, "-vs-", control,".txt"),
sep="\t",quote=FALSE, row.names=FALSE)
# keep list of degenes
idx <- which(res$padj < fdr.thres &
!is.na(res$padj) &
abs(res$log2FoldChange) >= fc.thres)
deg.list[[length(deg.list) + 1]] <- rownames(res)[idx]
names(deg.list)[length(deg.list)] <- names(all.comps)[i]
# output DE genes to file
write.table(deg.list[[i]],
paste0(degenes.folder, names(all.reads)[k], "_fdr", fdr.thres, "_fc", fc.thres, ".txt"),
sep="\t", quote=FALSE, row.names=FALSE, col.names=FALSE)
# list of upregulated genes (for easy reference)
idx <- which(res$padj < fdr.thres &
!is.na(res$padj) &
res$log2FoldChange >= fc.thres)
up.list[[length(up.list) + 1]] <- rownames(res)[idx]
names(up.list)[length(up.list)] <- names(all.comps)[i]
# get normalized data
norm.vst <- vst(dds)
# write normalized data to file
write.table(cbind(geneid=rownames(assay(norm.vst), assay(norm.vst))),
paste0(norm.folder, "vstnorm_", treatment, "-", control,".txt"),
sep="\t", quote=FALSE, row.names=FALSE)
}
# collect genes that have baseMean != 0 in at least one comparison
background.genes <- c(background.genes, rownames(res)[res$baseMean != 0])
}
# keep unique bg genes and sort by gene names
background.genes <- unique(background.genes)
background.genes <- background.genes[order(background.genes)]
# extract annotation data for bg genes and output Ensembl ID and gene symbols
background.annot <- annot.data[annot.data[,geneid.colname] %in% background.genes,
geneid.colname]
# write background list to file
write.table(background.annot, paste0(deseq.folder, "background-genes_", ".txt"),
sep="\t", quote=FALSE, row.names=FALSE, col.names=FALSE)
nipblvwapl_pca <- plotPCA(norm.vst, intgroup="condition")
library(ggrepel)
nipblvwapl_pca + geom_text_repel(aes_string(x = "PC1", y = "PC2", label = "name"), color = "black")
```
### Nipbl vs Compound
```{r RNA Seq6}
#Jacob_Noeker
#RNA Seq Analysis
#WAPL NIPBL Project
#install.packages("BiocManager")
library(DESeq2)
# Set up variables, output folders, etc
#
# This section does the following:
# 1. Checks for output folders and creates them if absent
# 2. Defines input read count files
# 3. Strips annotation columns and saves annotation info
# 4. Defines FDR threshold
# output directory for deseq2 files
# create these if not present
deseq.folder <- "output/deseq2/"
norm.folder <- "output/vstnorm/"
degenes.folder <- "output/degenes/"
# check for subfolders and if not present, create folder
#ifelse(!dir.exists(file.path('.',deseq.folder)),
# dir.create(file.path('.',deseq.folder), recursive = TRUE), NA)
#ifelse(!dir.exists(file.path('.',norm.folder)),
# dir.create(file.path('.',norm.folder), recursive = TRUE), NA)
#ifelse(!dir.exists(file.path('.',degenes.folder)),
# dir.create(file.path('.',degenes.folder), recursive = TRUE), NA)
# hardcoded column names from featureCounts output
# only 'EnsID' column name is dependent on GTF file
annot.cols <- c("Chr","Start","End","Strand","Length")
geneid.colname <- "Geneid"
# Define FDR threshold and FDR column name
fdr.thres <- 0.1
# Define FC threshold
fc.thres <- 0
# Define limits for MA and volcano plots
#fc.lim <- c(-2, 2)
# define size of pdf for MA and volcano plots (in inches)
#ma.width <- 10
#ma.height <- 8
# define size of PDF file for degPattern plots (in inches)
#pdf.width <- 20
#pdf.height <- 20
# read count tables
# count tables from featureCounts
# 1. The first line with the commant is commented out and not read
# 2. the second line wth the file names can be parsed within R using
# grep() to match specified sample names
counts <- read.table("counts_CT_simp.txt",
sep="\t",header=TRUE, row.names=1)
exptname <- 'wapl_nipbl'
# strip annotation columns but save annot data
annot.data <- cbind(rownames(counts), counts[,colnames(counts) %in% annot.cols])
colnames(annot.data)[1] <- geneid.colname
counts <- counts[,!colnames(counts) %in% annot.cols]
# sample list
# converted to input variable
all.samples <- c("DD_NIPBL","DD_COMPOUND")
# reformat column names matching sample names
# TODO: throw error if sample name does not match column names
sample.vec <- NULL
for(i in 1:length(all.samples)){
# which column names match the sample name
idx <- grep(all.samples[i], colnames(counts))
# create named vector to save metadata
# this maps column names to sample names
temp.vec <- rep(all.samples[i], length(idx))
names(temp.vec) <- colnames(counts)[idx]
sample.vec <- c(sample.vec, temp.vec)
}
# DESeq2 analysis
#
# Input: read counts in TSV format
# Output: differential expression results from DESeq2 in TSV format
#
# This section takes the cleaned count files and performs the following steps:
#
# 1. creates DESeq data object
# 2. creates sample lists for individual comparisons
# 3. performs DESeq2 comparisons between samples separately for plus & minus BMP2
#
# Also, obtains a list of genes to be used as background for downstream analysis
#
# create a list for read counts
all.reads <- list(counts)
names(all.reads) <- exptname
# create sample lists for individual comparisons
# create input variable with this info
all.comps <- list(a = c("DD_NIPBL","DD_COMPOUND"))
# list of genes to be used as background
background.genes <- NULL
# list of DE results
res.list <- list()
# list of DE genes
deg.list <- list()
# list of upregulated genes
up.list <- list()
for(k in 1:length(all.reads)){
read.mat <- all.reads[[k]]
for(i in 1:length(all.comps)){
# get treatment and control names
treatment <- all.comps[[i]][1]
control <- all.comps[[i]][2]
# get column indices corresponding to samples in comparison
sample.idx <- NULL
for(j in all.comps[[i]]){
sample.idx <- c(sample.idx, grep(j, colnames(read.mat)))
}
# extract reads for specific sample columns
reads.sub <- read.mat[,sample.idx]
# create design matrix by selection from sample.vec
idx <- which(sample.vec %in% all.comps[[i]])
design <- data.frame(row.names = names(sample.vec[idx]),
condition = sample.vec[idx])
design$sampleid <- sub("_.+", "", rownames(design))
# DESeq2 object
dds <- DESeqDataSetFromMatrix(countData = reads.sub,
colData = design,
design = ~condition)
# run DESeq2
dds <- DESeq(dds, betaPrior = FALSE)
#res <- results(dds, contrast=c("condition", treatment, control),
# cooksCutoff=FALSE)
# get results with lfcShrink
res <- lfcShrink(dds, contrast=c("condition", treatment, control))
res.list[[length(res.list) + 1]] <- res
names(deg.list)[length(deg.list)] <- names(all.comps)[i]
# output DESeq2 results to file
write.table(cbind(geneid=rownames(res),res),
paste0(deseq.folder, names(all.reads)[k], "_", treatment, "-vs-", control,".txt"),
sep="\t",quote=FALSE, row.names=FALSE)
# keep list of degenes
idx <- which(res$padj < fdr.thres &
!is.na(res$padj) &
abs(res$log2FoldChange) >= fc.thres)
deg.list[[length(deg.list) + 1]] <- rownames(res)[idx]
names(deg.list)[length(deg.list)] <- names(all.comps)[i]
# output DE genes to file
write.table(deg.list[[i]],
paste0(degenes.folder, names(all.reads)[k], "_fdr", fdr.thres, "_fc", fc.thres, ".txt"),
sep="\t", quote=FALSE, row.names=FALSE, col.names=FALSE)
# list of upregulated genes (for easy reference)
idx <- which(res$padj < fdr.thres &
!is.na(res$padj) &
res$log2FoldChange >= fc.thres)
up.list[[length(up.list) + 1]] <- rownames(res)[idx]
names(up.list)[length(up.list)] <- names(all.comps)[i]
# get normalized data
norm.vst <- vst(dds)
# write normalized data to file
write.table(cbind(geneid=rownames(assay(norm.vst), assay(norm.vst))),
paste0(norm.folder, "vstnorm_", treatment, "-", control,".txt"),
sep="\t", quote=FALSE, row.names=FALSE)
}
# collect genes that have baseMean != 0 in at least one comparison
background.genes <- c(background.genes, rownames(res)[res$baseMean != 0])
}
# keep unique bg genes and sort by gene names
background.genes <- unique(background.genes)
background.genes <- background.genes[order(background.genes)]
# extract annotation data for bg genes and output Ensembl ID and gene symbols
background.annot <- annot.data[annot.data[,geneid.colname] %in% background.genes,
geneid.colname]
# write background list to file
write.table(background.annot, paste0(deseq.folder, "background-genes_", ".txt"),
sep="\t", quote=FALSE, row.names=FALSE, col.names=FALSE)
nipblvcompound_pca <- plotPCA(norm.vst, intgroup="condition")
library(ggrepel)
nipblvcompound_pca + geom_text_repel(aes_string(x = "PC1", y = "PC2", label = "name"), color = "black")
```
### Wapl vs Compound
```{r RNA Seq7}
#Jacob_Noeker
#RNA Seq Analysis
#WAPL NIPBL Project
#install.packages("BiocManager")
library(DESeq2)
# Set up variables, output folders, etc
#
# This section does the following:
# 1. Checks for output folders and creates them if absent
# 2. Defines input read count files
# 3. Strips annotation columns and saves annotation info
# 4. Defines FDR threshold
# output directory for deseq2 files
# create these if not present
deseq.folder <- "output/deseq2/"
norm.folder <- "output/vstnorm/"
degenes.folder <- "output/degenes/"
# check for subfolders and if not present, create folder
#ifelse(!dir.exists(file.path('.',deseq.folder)),
# dir.create(file.path('.',deseq.folder), recursive = TRUE), NA)
#ifelse(!dir.exists(file.path('.',norm.folder)),
# dir.create(file.path('.',norm.folder), recursive = TRUE), NA)
#ifelse(!dir.exists(file.path('.',degenes.folder)),
# dir.create(file.path('.',degenes.folder), recursive = TRUE), NA)
# hardcoded column names from featureCounts output
# only 'EnsID' column name is dependent on GTF file
annot.cols <- c("Chr","Start","End","Strand","Length")
geneid.colname <- "Geneid"
# Define FDR threshold and FDR column name
fdr.thres <- 0.1
# Define FC threshold
fc.thres <- 0
# Define limits for MA and volcano plots
#fc.lim <- c(-2, 2)
# define size of pdf for MA and volcano plots (in inches)
#ma.width <- 10
#ma.height <- 8
# define size of PDF file for degPattern plots (in inches)
#pdf.width <- 20
#pdf.height <- 20
# read count tables
# count tables from featureCounts
# 1. The first line with the commant is commented out and not read
# 2. the second line wth the file names can be parsed within R using
# grep() to match specified sample names
counts <- read.table("counts_CT_simp.txt",
sep="\t",header=TRUE, row.names=1)
exptname <- 'wapl_nipbl'
# strip annotation columns but save annot data
annot.data <- cbind(rownames(counts), counts[,colnames(counts) %in% annot.cols])
colnames(annot.data)[1] <- geneid.colname
counts <- counts[,!colnames(counts) %in% annot.cols]
# sample list
# converted to input variable
all.samples <- c("DD_WAPL","DD_COMPOUND")
# reformat column names matching sample names
# TODO: throw error if sample name does not match column names
sample.vec <- NULL
for(i in 1:length(all.samples)){
# which column names match the sample name
idx <- grep(all.samples[i], colnames(counts))
# create named vector to save metadata
# this maps column names to sample names
temp.vec <- rep(all.samples[i], length(idx))
names(temp.vec) <- colnames(counts)[idx]
sample.vec <- c(sample.vec, temp.vec)
}
# DESeq2 analysis
#
# Input: read counts in TSV format
# Output: differential expression results from DESeq2 in TSV format
#
# This section takes the cleaned count files and performs the following steps:
#
# 1. creates DESeq data object
# 2. creates sample lists for individual comparisons
# 3. performs DESeq2 comparisons between samples separately for plus & minus BMP2
#
# Also, obtains a list of genes to be used as background for downstream analysis
#
# create a list for read counts
all.reads <- list(counts)
names(all.reads) <- exptname
# create sample lists for individual comparisons
# create input variable with this info
all.comps <- list(a = c("DD_WAPL","DD_COMPOUND"))
# list of genes to be used as background
background.genes <- NULL
# list of DE results
res.list <- list()
# list of DE genes
deg.list <- list()
# list of upregulated genes
up.list <- list()
for(k in 1:length(all.reads)){
read.mat <- all.reads[[k]]
for(i in 1:length(all.comps)){
# get treatment and control names
treatment <- all.comps[[i]][1]
control <- all.comps[[i]][2]
# get column indices corresponding to samples in comparison
sample.idx <- NULL
for(j in all.comps[[i]]){
sample.idx <- c(sample.idx, grep(j, colnames(read.mat)))
}
# extract reads for specific sample columns
reads.sub <- read.mat[,sample.idx]
# create design matrix by selection from sample.vec
idx <- which(sample.vec %in% all.comps[[i]])
design <- data.frame(row.names = names(sample.vec[idx]),
condition = sample.vec[idx])
design$sampleid <- sub("_.+", "", rownames(design))
# DESeq2 object
dds <- DESeqDataSetFromMatrix(countData = reads.sub,
colData = design,
design = ~condition)
# run DESeq2
dds <- DESeq(dds, betaPrior = FALSE)
#res <- results(dds, contrast=c("condition", treatment, control),
# cooksCutoff=FALSE)
# get results with lfcShrink
res <- lfcShrink(dds, contrast=c("condition", treatment, control))
res.list[[length(res.list) + 1]] <- res
names(deg.list)[length(deg.list)] <- names(all.comps)[i]
# output DESeq2 results to file
write.table(cbind(geneid=rownames(res),res),
paste0(deseq.folder, names(all.reads)[k], "_", treatment, "-vs-", control,".txt"),
sep="\t",quote=FALSE, row.names=FALSE)
# keep list of degenes
idx <- which(res$padj < fdr.thres &
!is.na(res$padj) &
abs(res$log2FoldChange) >= fc.thres)
deg.list[[length(deg.list) + 1]] <- rownames(res)[idx]
names(deg.list)[length(deg.list)] <- names(all.comps)[i]
# output DE genes to file
write.table(deg.list[[i]],
paste0(degenes.folder, names(all.reads)[k], "_fdr", fdr.thres, "_fc", fc.thres, ".txt"),
sep="\t", quote=FALSE, row.names=FALSE, col.names=FALSE)
# list of upregulated genes (for easy reference)
idx <- which(res$padj < fdr.thres &
!is.na(res$padj) &
res$log2FoldChange >= fc.thres)
up.list[[length(up.list) + 1]] <- rownames(res)[idx]
names(up.list)[length(up.list)] <- names(all.comps)[i]
# get normalized data
norm.vst <- vst(dds)
# write normalized data to file
write.table(cbind(geneid=rownames(assay(norm.vst), assay(norm.vst))),
paste0(norm.folder, "vstnorm_", treatment, "-", control,".txt"),
sep="\t", quote=FALSE, row.names=FALSE)
}
# collect genes that have baseMean != 0 in at least one comparison
background.genes <- c(background.genes, rownames(res)[res$baseMean != 0])
}
# keep unique bg genes and sort by gene names
background.genes <- unique(background.genes)
background.genes <- background.genes[order(background.genes)]
# extract annotation data for bg genes and output Ensembl ID and gene symbols
background.annot <- annot.data[annot.data[,geneid.colname] %in% background.genes,
geneid.colname]
# write background list to file
write.table(background.annot, paste0(deseq.folder, "background-genes_", ".txt"),
sep="\t", quote=FALSE, row.names=FALSE, col.names=FALSE)
waplvcompound_pca <- plotPCA(norm.vst, intgroup="condition")
library(ggrepel)
waplvcompound_pca + geom_text_repel(aes_string(x = "PC1", y = "PC2", label = "name"), color = "black")
```
About {data-orientation=rows data-icon="fa-comment-alt"}
=====================================
Row {data-height=1000}
------------------------------------------------------------------------------
Dashboard made by Jacob Noeker