Investigating hair and skin-related measures in relation to number of live births

library(TwoSampleMR)
## TwoSampleMR version 0.5.6 
## [>] New: Option to use non-European LD reference panels for clumping etc
## [>] Some studies temporarily quarantined to verify effect allele
## [>] See news(package='TwoSampleMR') and https://gwas.mrcieu.ac.uk for further details

Childhood sunburn occasions

d <- make_dat("ukb-b-13246", "ukb-b-1209")
## API: public: http://gwas-api.mrcieu.ac.uk/
## Extracting data for 81 SNP(s) from 1 GWAS(s)
## Harmonising Childhood sunburn occasions || id:ukb-b-13246 (ukb-b-13246) and Number of live births || id:ukb-b-1209 (ukb-b-1209)
## Removing the following SNPs for incompatible alleles:
## rs111650620
d_mr<-mr(d)
## Analysing 'ukb-b-13246' on 'ukb-b-1209'
d_mr
##   id.exposure id.outcome                                outcome
## 1 ukb-b-13246 ukb-b-1209 Number of live births || id:ukb-b-1209
## 2 ukb-b-13246 ukb-b-1209 Number of live births || id:ukb-b-1209
## 3 ukb-b-13246 ukb-b-1209 Number of live births || id:ukb-b-1209
## 4 ukb-b-13246 ukb-b-1209 Number of live births || id:ukb-b-1209
## 5 ukb-b-13246 ukb-b-1209 Number of live births || id:ukb-b-1209
##                                        exposure                    method nsnp
## 1 Childhood sunburn occasions || id:ukb-b-13246                  MR Egger   81
## 2 Childhood sunburn occasions || id:ukb-b-13246           Weighted median   81
## 3 Childhood sunburn occasions || id:ukb-b-13246 Inverse variance weighted   81
## 4 Childhood sunburn occasions || id:ukb-b-13246               Simple mode   81
## 5 Childhood sunburn occasions || id:ukb-b-13246             Weighted mode   81
##             b         se         pval
## 1 -0.07168223 0.02327077 0.0028444755
## 2 -0.06449763 0.01944992 0.0009128745
## 3 -0.04762060 0.01775772 0.0073252427
## 4 -0.01008223 0.04137438 0.8081001866
## 5 -0.05516701 0.01580776 0.0007890443
mr_scatter_plot(d_mr,d)
## $`ukb-b-13246.ukb-b-1209`

## 
## attr(,"split_type")
## [1] "data.frame"
## attr(,"split_labels")
##   id.exposure id.outcome
## 1 ukb-b-13246 ukb-b-1209
d <- make_dat("ukb-b-1209", "ukb-b-13246")
## Extracting data for 11 SNP(s) from 1 GWAS(s)
## Harmonising Number of live births || id:ukb-b-1209 (ukb-b-1209) and Childhood sunburn occasions || id:ukb-b-13246 (ukb-b-13246)
d_mr<-mr(d)
## Analysing 'ukb-b-1209' on 'ukb-b-13246'
d_mr
##   id.exposure  id.outcome                                       outcome
## 1  ukb-b-1209 ukb-b-13246 Childhood sunburn occasions || id:ukb-b-13246
## 2  ukb-b-1209 ukb-b-13246 Childhood sunburn occasions || id:ukb-b-13246
## 3  ukb-b-1209 ukb-b-13246 Childhood sunburn occasions || id:ukb-b-13246
## 4  ukb-b-1209 ukb-b-13246 Childhood sunburn occasions || id:ukb-b-13246
## 5  ukb-b-1209 ukb-b-13246 Childhood sunburn occasions || id:ukb-b-13246
##                                 exposure                    method nsnp
## 1 Number of live births || id:ukb-b-1209                  MR Egger   11
## 2 Number of live births || id:ukb-b-1209           Weighted median   11
## 3 Number of live births || id:ukb-b-1209 Inverse variance weighted   11
## 4 Number of live births || id:ukb-b-1209               Simple mode   11
## 5 Number of live births || id:ukb-b-1209             Weighted mode   11
##               b         se       pval
## 1  6.0389011023 3.17879893 0.08992503
## 2 -0.0077545264 0.04998767 0.87671979
## 3 -0.3508259171 0.43820317 0.42336264
## 4 -0.0001137301 0.06180844 0.99856805
## 5 -0.0001137301 0.05687882 0.99844394
mr_scatter_plot(d_mr,d)
## $`ukb-b-1209.ukb-b-13246`

## 
## attr(,"split_type")
## [1] "data.frame"
## attr(,"split_labels")
##   id.exposure  id.outcome
## 1  ukb-b-1209 ukb-b-13246

Ease of skin tanning

d <- make_dat("ukb-b-533", "ukb-b-1209")
## Extracting data for 135 SNP(s) from 1 GWAS(s)
## Harmonising Ease of skin tanning || id:ukb-b-533 (ukb-b-533) and Number of live births || id:ukb-b-1209 (ukb-b-1209)
## Removing the following SNPs for incompatible alleles:
## rs111650620, rs2094756, rs7300019, rs9545154
d_mr<-mr(d)
## Analysing 'ukb-b-533' on 'ukb-b-1209'
d_mr
##   id.exposure id.outcome                                outcome
## 1   ukb-b-533 ukb-b-1209 Number of live births || id:ukb-b-1209
## 2   ukb-b-533 ukb-b-1209 Number of live births || id:ukb-b-1209
## 3   ukb-b-533 ukb-b-1209 Number of live births || id:ukb-b-1209
## 4   ukb-b-533 ukb-b-1209 Number of live births || id:ukb-b-1209
## 5   ukb-b-533 ukb-b-1209 Number of live births || id:ukb-b-1209
##                               exposure                    method nsnp
## 1 Ease of skin tanning || id:ukb-b-533                  MR Egger  135
## 2 Ease of skin tanning || id:ukb-b-533           Weighted median  135
## 3 Ease of skin tanning || id:ukb-b-533 Inverse variance weighted  135
## 4 Ease of skin tanning || id:ukb-b-533               Simple mode  135
## 5 Ease of skin tanning || id:ukb-b-533             Weighted mode  135
##              b          se         pval
## 1 -0.032677481 0.008266329 1.247155e-04
## 2 -0.036026354 0.009958051 2.971043e-04
## 3 -0.026512277 0.007053812 1.708842e-04
## 4  0.002622662 0.025099068 9.169348e-01
## 5 -0.028962887 0.007176055 9.092337e-05
mr_scatter_plot(d_mr,d)
## $`ukb-b-533.ukb-b-1209`

## 
## attr(,"split_type")
## [1] "data.frame"
## attr(,"split_labels")
##   id.exposure id.outcome
## 1   ukb-b-533 ukb-b-1209
d <- make_dat("ukb-b-1209", "ukb-b-533")
## Extracting data for 11 SNP(s) from 1 GWAS(s)
## Harmonising Number of live births || id:ukb-b-1209 (ukb-b-1209) and Ease of skin tanning || id:ukb-b-533 (ukb-b-533)
d_mr<-mr(d)
## Analysing 'ukb-b-1209' on 'ukb-b-533'
d_mr
##   id.exposure id.outcome                              outcome
## 1  ukb-b-1209  ukb-b-533 Ease of skin tanning || id:ukb-b-533
## 2  ukb-b-1209  ukb-b-533 Ease of skin tanning || id:ukb-b-533
## 3  ukb-b-1209  ukb-b-533 Ease of skin tanning || id:ukb-b-533
## 4  ukb-b-1209  ukb-b-533 Ease of skin tanning || id:ukb-b-533
## 5  ukb-b-1209  ukb-b-533 Ease of skin tanning || id:ukb-b-533
##                                 exposure                    method nsnp
## 1 Number of live births || id:ukb-b-1209                  MR Egger   11
## 2 Number of live births || id:ukb-b-1209           Weighted median   11
## 3 Number of live births || id:ukb-b-1209 Inverse variance weighted   11
## 4 Number of live births || id:ukb-b-1209               Simple mode   11
## 5 Number of live births || id:ukb-b-1209             Weighted mode   11
##             b         se      pval
## 1 12.89089829 7.45434359 0.1178119
## 2  0.01176917 0.05245995 0.8224882
## 3 -0.98481701 1.00613560 0.3276732
## 4  0.07198254 0.06069758 0.2630668
## 5  0.04557199 0.06307038 0.4865061
mr_scatter_plot(d_mr,d)
## $`ukb-b-1209.ukb-b-533`

## 
## attr(,"split_type")
## [1] "data.frame"
## attr(,"split_labels")
##   id.exposure id.outcome
## 1  ukb-b-1209  ukb-b-533

Skin colour

d <- make_dat("ukb-b-19560", "ukb-b-1209")
## Extracting data for 154 SNP(s) from 1 GWAS(s)
## Finding proxies for 1 SNPs in outcome ukb-b-1209
## Extracting data for 1 SNP(s) from 1 GWAS(s)
## Harmonising Skin colour || id:ukb-b-19560 (ukb-b-19560) and Number of live births || id:ukb-b-1209 (ukb-b-1209)
## Removing the following SNPs for incompatible alleles:
## rs111650620, rs137673, rs2094756
d_mr<-mr(d)
## Analysing 'ukb-b-19560' on 'ukb-b-1209'
d_mr
##   id.exposure id.outcome                                outcome
## 1 ukb-b-19560 ukb-b-1209 Number of live births || id:ukb-b-1209
## 2 ukb-b-19560 ukb-b-1209 Number of live births || id:ukb-b-1209
## 3 ukb-b-19560 ukb-b-1209 Number of live births || id:ukb-b-1209
## 4 ukb-b-19560 ukb-b-1209 Number of live births || id:ukb-b-1209
## 5 ukb-b-19560 ukb-b-1209 Number of live births || id:ukb-b-1209
##                        exposure                    method nsnp            b
## 1 Skin colour || id:ukb-b-19560                  MR Egger  153  0.030843366
## 2 Skin colour || id:ukb-b-19560           Weighted median  153  0.025583221
## 3 Skin colour || id:ukb-b-19560 Inverse variance weighted  153  0.032504567
## 4 Skin colour || id:ukb-b-19560               Simple mode  153 -0.007386203
## 5 Skin colour || id:ukb-b-19560             Weighted mode  153  0.025138836
##           se       pval
## 1 0.01433892 0.03306516
## 2 0.02056739 0.21354637
## 3 0.01227271 0.00808442
## 4 0.04344668 0.86523137
## 5 0.01196714 0.03732192
mr_scatter_plot(d_mr,d)
## $`ukb-b-19560.ukb-b-1209`

## 
## attr(,"split_type")
## [1] "data.frame"
## attr(,"split_labels")
##   id.exposure id.outcome
## 1 ukb-b-19560 ukb-b-1209
d <- make_dat("ukb-b-1209", "ukb-b-19560")
## Extracting data for 11 SNP(s) from 1 GWAS(s)
## Harmonising Number of live births || id:ukb-b-1209 (ukb-b-1209) and Skin colour || id:ukb-b-19560 (ukb-b-19560)
d_mr<-mr(d)
## Analysing 'ukb-b-1209' on 'ukb-b-19560'
d_mr
##   id.exposure  id.outcome                       outcome
## 1  ukb-b-1209 ukb-b-19560 Skin colour || id:ukb-b-19560
## 2  ukb-b-1209 ukb-b-19560 Skin colour || id:ukb-b-19560
## 3  ukb-b-1209 ukb-b-19560 Skin colour || id:ukb-b-19560
## 4  ukb-b-1209 ukb-b-19560 Skin colour || id:ukb-b-19560
## 5  ukb-b-1209 ukb-b-19560 Skin colour || id:ukb-b-19560
##                                 exposure                    method nsnp
## 1 Number of live births || id:ukb-b-1209                  MR Egger   11
## 2 Number of live births || id:ukb-b-1209           Weighted median   11
## 3 Number of live births || id:ukb-b-1209 Inverse variance weighted   11
## 4 Number of live births || id:ukb-b-1209               Simple mode   11
## 5 Number of live births || id:ukb-b-1209             Weighted mode   11
##              b         se      pval
## 1 -6.352389464 3.90454023 0.1381964
## 2  0.038436397 0.03080268 0.2120947
## 3  0.556904996 0.51969021 0.2838954
## 4  0.022045281 0.04072855 0.6001691
## 5  0.008149236 0.03118986 0.7991801
mr_scatter_plot(d_mr,d)
## $`ukb-b-1209.ukb-b-19560`

## 
## attr(,"split_type")
## [1] "data.frame"
## attr(,"split_labels")
##   id.exposure  id.outcome
## 1  ukb-b-1209 ukb-b-19560

Hair/balding pattern 1

Pattern 1 - full head of hair

d <- make_dat("ukb-d-2395_1", "ukb-b-1209")
## Server code: 502; Server is possibly experiencing traffic, trying again...
## Retry succeeded!
## Extracting data for 202 SNP(s) from 1 GWAS(s)
## Finding proxies for 21 SNPs in outcome ukb-b-1209
## Extracting data for 21 SNP(s) from 1 GWAS(s)
## Harmonising Hair/balding pattern: Pattern 1 || id:ukb-d-2395_1 (ukb-d-2395_1) and Number of live births || id:ukb-b-1209 (ukb-b-1209)
d_mr<-mr(d)
## Analysing 'ukb-d-2395_1' on 'ukb-b-1209'
d_mr
##    id.exposure id.outcome                                outcome
## 1 ukb-d-2395_1 ukb-b-1209 Number of live births || id:ukb-b-1209
## 2 ukb-d-2395_1 ukb-b-1209 Number of live births || id:ukb-b-1209
## 3 ukb-d-2395_1 ukb-b-1209 Number of live births || id:ukb-b-1209
## 4 ukb-d-2395_1 ukb-b-1209 Number of live births || id:ukb-b-1209
## 5 ukb-d-2395_1 ukb-b-1209 Number of live births || id:ukb-b-1209
##                                             exposure                    method
## 1 Hair/balding pattern: Pattern 1 || id:ukb-d-2395_1                  MR Egger
## 2 Hair/balding pattern: Pattern 1 || id:ukb-d-2395_1           Weighted median
## 3 Hair/balding pattern: Pattern 1 || id:ukb-d-2395_1 Inverse variance weighted
## 4 Hair/balding pattern: Pattern 1 || id:ukb-d-2395_1               Simple mode
## 5 Hair/balding pattern: Pattern 1 || id:ukb-d-2395_1             Weighted mode
##   nsnp          b         se       pval
## 1  185 0.05658841 0.04790393 0.23902057
## 2  185 0.04343365 0.02808744 0.12201462
## 3  185 0.04765897 0.02129822 0.02524082
## 4  185 0.06189198 0.06828473 0.36591967
## 5  185 0.03744130 0.04031510 0.35425279
mr_scatter_plot(d_mr,d)
## $`ukb-d-2395_1.ukb-b-1209`

## 
## attr(,"split_type")
## [1] "data.frame"
## attr(,"split_labels")
##    id.exposure id.outcome
## 1 ukb-d-2395_1 ukb-b-1209
d <- make_dat("ukb-b-1209", "ukb-d-2395_1")
## Extracting data for 11 SNP(s) from 1 GWAS(s)
## Harmonising Number of live births || id:ukb-b-1209 (ukb-b-1209) and Hair/balding pattern: Pattern 1 || id:ukb-d-2395_1 (ukb-d-2395_1)
d_mr<-mr(d)
## Analysing 'ukb-b-1209' on 'ukb-d-2395_1'
d_mr
##   id.exposure   id.outcome                                            outcome
## 1  ukb-b-1209 ukb-d-2395_1 Hair/balding pattern: Pattern 1 || id:ukb-d-2395_1
## 2  ukb-b-1209 ukb-d-2395_1 Hair/balding pattern: Pattern 1 || id:ukb-d-2395_1
## 3  ukb-b-1209 ukb-d-2395_1 Hair/balding pattern: Pattern 1 || id:ukb-d-2395_1
## 4  ukb-b-1209 ukb-d-2395_1 Hair/balding pattern: Pattern 1 || id:ukb-d-2395_1
## 5  ukb-b-1209 ukb-d-2395_1 Hair/balding pattern: Pattern 1 || id:ukb-d-2395_1
##                                 exposure                    method nsnp
## 1 Number of live births || id:ukb-b-1209                  MR Egger   11
## 2 Number of live births || id:ukb-b-1209           Weighted median   11
## 3 Number of live births || id:ukb-b-1209 Inverse variance weighted   11
## 4 Number of live births || id:ukb-b-1209               Simple mode   11
## 5 Number of live births || id:ukb-b-1209             Weighted mode   11
##             b         se      pval
## 1  1.48652323 1.01217305 0.1759925
## 2 -0.01533559 0.04087582 0.7075302
## 3  0.13013497 0.12687092 0.3050202
## 4 -0.02932560 0.04828529 0.5571637
## 5 -0.02932560 0.04709502 0.5474245
mr_scatter_plot(d_mr,d)
## $`ukb-b-1209.ukb-d-2395_1`

## 
## attr(,"split_type")
## [1] "data.frame"
## attr(,"split_labels")
##   id.exposure   id.outcome
## 1  ukb-b-1209 ukb-d-2395_1

Hair/balding pattern 4

Pattern 4 - totally bald

d <- make_dat("ukb-a-303", "ukb-b-1209")
## Extracting data for 153 SNP(s) from 1 GWAS(s)
## Harmonising Hair/balding pattern: Pattern 4 || id:ukb-a-303 (ukb-a-303) and Number of live births || id:ukb-b-1209 (ukb-b-1209)
d_mr<-mr(d)
## Analysing 'ukb-a-303' on 'ukb-b-1209'
d_mr
##   id.exposure id.outcome                                outcome
## 1   ukb-a-303 ukb-b-1209 Number of live births || id:ukb-b-1209
## 2   ukb-a-303 ukb-b-1209 Number of live births || id:ukb-b-1209
## 3   ukb-a-303 ukb-b-1209 Number of live births || id:ukb-b-1209
## 4   ukb-a-303 ukb-b-1209 Number of live births || id:ukb-b-1209
## 5   ukb-a-303 ukb-b-1209 Number of live births || id:ukb-b-1209
##                                          exposure                    method
## 1 Hair/balding pattern: Pattern 4 || id:ukb-a-303                  MR Egger
## 2 Hair/balding pattern: Pattern 4 || id:ukb-a-303           Weighted median
## 3 Hair/balding pattern: Pattern 4 || id:ukb-a-303 Inverse variance weighted
## 4 Hair/balding pattern: Pattern 4 || id:ukb-a-303               Simple mode
## 5 Hair/balding pattern: Pattern 4 || id:ukb-a-303             Weighted mode
##   nsnp           b         se       pval
## 1  153 -0.10738100 0.05938986 0.07258567
## 2  153 -0.04995370 0.03227118 0.12163781
## 3  153 -0.05767660 0.02548186 0.02360873
## 4  153 -0.06295239 0.07853566 0.42404892
## 5  153 -0.03468742 0.05149443 0.50157918
mr_scatter_plot(d_mr,d)
## $`ukb-a-303.ukb-b-1209`

## 
## attr(,"split_type")
## [1] "data.frame"
## attr(,"split_labels")
##   id.exposure id.outcome
## 1   ukb-a-303 ukb-b-1209
d <- make_dat("ukb-b-1209", "ukb-a-303")
## Extracting data for 11 SNP(s) from 1 GWAS(s)
## Harmonising Number of live births || id:ukb-b-1209 (ukb-b-1209) and Hair/balding pattern: Pattern 4 || id:ukb-a-303 (ukb-a-303)
d_mr<-mr(d)
## Analysing 'ukb-b-1209' on 'ukb-a-303'
d_mr
##   id.exposure id.outcome                                         outcome
## 1  ukb-b-1209  ukb-a-303 Hair/balding pattern: Pattern 4 || id:ukb-a-303
## 2  ukb-b-1209  ukb-a-303 Hair/balding pattern: Pattern 4 || id:ukb-a-303
## 3  ukb-b-1209  ukb-a-303 Hair/balding pattern: Pattern 4 || id:ukb-a-303
## 4  ukb-b-1209  ukb-a-303 Hair/balding pattern: Pattern 4 || id:ukb-a-303
## 5  ukb-b-1209  ukb-a-303 Hair/balding pattern: Pattern 4 || id:ukb-a-303
##                                 exposure                    method nsnp
## 1 Number of live births || id:ukb-b-1209                  MR Egger   11
## 2 Number of live births || id:ukb-b-1209           Weighted median   11
## 3 Number of live births || id:ukb-b-1209 Inverse variance weighted   11
## 4 Number of live births || id:ukb-b-1209               Simple mode   11
## 5 Number of live births || id:ukb-b-1209             Weighted mode   11
##             b         se       pval
## 1 -1.40284918 0.69540096 0.07444289
## 2 -0.05781436 0.03253347 0.07555621
## 3 -0.12378588 0.09346863 0.18538434
## 4 -0.07668296 0.04404505 0.11230088
## 5 -0.06658691 0.04528951 0.17224356
mr_scatter_plot(d_mr,d)
## $`ukb-b-1209.ukb-a-303`

## 
## attr(,"split_type")
## [1] "data.frame"
## attr(,"split_labels")
##   id.exposure id.outcome
## 1  ukb-b-1209  ukb-a-303