Investigating sexual behaviour in relation to number of children

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

Age at first live birth

d <- make_dat("ukb-b-12405", "ieu-b-4760")
## API: public: http://gwas-api.mrcieu.ac.uk/
## Extracting data for 35 SNP(s) from 1 GWAS(s)
## Finding proxies for 1 SNPs in outcome ieu-b-4760
## Extracting data for 1 SNP(s) from 1 GWAS(s)
## Harmonising Age at first live birth || id:ukb-b-12405 (ukb-b-12405) and Number of children || id:ieu-b-4760 (ieu-b-4760)
d_mr<-mr(d)
## Analysing 'ukb-b-12405' on 'ieu-b-4760'
d_mr
##   id.exposure id.outcome                             outcome
## 1 ukb-b-12405 ieu-b-4760 Number of children || id:ieu-b-4760
## 2 ukb-b-12405 ieu-b-4760 Number of children || id:ieu-b-4760
## 3 ukb-b-12405 ieu-b-4760 Number of children || id:ieu-b-4760
## 4 ukb-b-12405 ieu-b-4760 Number of children || id:ieu-b-4760
## 5 ukb-b-12405 ieu-b-4760 Number of children || id:ieu-b-4760
##                                    exposure                    method nsnp
## 1 Age at first live birth || id:ukb-b-12405                  MR Egger   35
## 2 Age at first live birth || id:ukb-b-12405           Weighted median   35
## 3 Age at first live birth || id:ukb-b-12405 Inverse variance weighted   35
## 4 Age at first live birth || id:ukb-b-12405               Simple mode   35
## 5 Age at first live birth || id:ukb-b-12405             Weighted mode   35
##            b         se         pval
## 1 -0.3473208 0.15045346 2.737738e-02
## 2 -0.1694234 0.02669284 2.193447e-10
## 3 -0.1866257 0.02606411 8.052540e-13
## 4 -0.1825038 0.05978381 4.382305e-03
## 5 -0.1825038 0.06238366 6.086897e-03
mr_scatter_plot(d_mr,d)
## $`ukb-b-12405.ieu-b-4760`

## 
## attr(,"split_type")
## [1] "data.frame"
## attr(,"split_labels")
##   id.exposure id.outcome
## 1 ukb-b-12405 ieu-b-4760
d <- make_dat("ieu-b-4760", "ukb-b-12405")
## Extracting data for 9 SNP(s) from 1 GWAS(s)
## Finding proxies for 1 SNPs in outcome ukb-b-12405
## Extracting data for 1 SNP(s) from 1 GWAS(s)
## Harmonising Number of children || id:ieu-b-4760 (ieu-b-4760) and Age at first live birth || id:ukb-b-12405 (ukb-b-12405)
d_mr<-mr(d)
## Analysing 'ieu-b-4760' on 'ukb-b-12405'
d_mr
##   id.exposure  id.outcome                                   outcome
## 1  ieu-b-4760 ukb-b-12405 Age at first live birth || id:ukb-b-12405
## 2  ieu-b-4760 ukb-b-12405 Age at first live birth || id:ukb-b-12405
## 3  ieu-b-4760 ukb-b-12405 Age at first live birth || id:ukb-b-12405
## 4  ieu-b-4760 ukb-b-12405 Age at first live birth || id:ukb-b-12405
## 5  ieu-b-4760 ukb-b-12405 Age at first live birth || id:ukb-b-12405
##                              exposure                    method nsnp          b
## 1 Number of children || id:ieu-b-4760                  MR Egger    8  2.7369835
## 2 Number of children || id:ieu-b-4760           Weighted median    8 -0.3147974
## 3 Number of children || id:ieu-b-4760 Inverse variance weighted    8 -0.7012976
## 4 Number of children || id:ieu-b-4760               Simple mode    8 -0.3354319
## 5 Number of children || id:ieu-b-4760             Weighted mode    8 -0.1909931
##          se       pval
## 1 0.9564446 0.02874054
## 2 0.1592883 0.04812362
## 3 0.2756188 0.01094505
## 4 0.2425641 0.20921075
## 5 0.1273188 0.17726898
mr_scatter_plot(d_mr,d)
## $`ieu-b-4760.ukb-b-12405`

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

Age at first live birth has a large effect on the number of children. Interestingly high effect in the reverse (which doesn’t make sense temporally) so maybe some form of bias going on.

Age first had sexual intercourse

d <- make_dat("ukb-b-6591", "ieu-b-4760")
## Extracting data for 200 SNP(s) from 1 GWAS(s)
## Finding proxies for 15 SNPs in outcome ieu-b-4760
## Extracting data for 15 SNP(s) from 1 GWAS(s)
## Harmonising Age first had sexual intercourse || id:ukb-b-6591 (ukb-b-6591) and Number of children || id:ieu-b-4760 (ieu-b-4760)
d_mr<-mr(d)
## Analysing 'ukb-b-6591' on 'ieu-b-4760'
d_mr
##   id.exposure id.outcome                             outcome
## 1  ukb-b-6591 ieu-b-4760 Number of children || id:ieu-b-4760
## 2  ukb-b-6591 ieu-b-4760 Number of children || id:ieu-b-4760
## 3  ukb-b-6591 ieu-b-4760 Number of children || id:ieu-b-4760
## 4  ukb-b-6591 ieu-b-4760 Number of children || id:ieu-b-4760
## 5  ukb-b-6591 ieu-b-4760 Number of children || id:ieu-b-4760
##                                            exposure                    method
## 1 Age first had sexual intercourse || id:ukb-b-6591                  MR Egger
## 2 Age first had sexual intercourse || id:ukb-b-6591           Weighted median
## 3 Age first had sexual intercourse || id:ukb-b-6591 Inverse variance weighted
## 4 Age first had sexual intercourse || id:ukb-b-6591               Simple mode
## 5 Age first had sexual intercourse || id:ukb-b-6591             Weighted mode
##   nsnp          b         se         pval
## 1  197 -0.2995136 0.06471895 6.726807e-06
## 2  197 -0.1603398 0.01596348 9.747146e-24
## 3  197 -0.1624187 0.01454611 5.995993e-29
## 4  197 -0.2277443 0.05484458 4.903648e-05
## 5  197 -0.2277443 0.05095283 1.323507e-05
mr_scatter_plot(d_mr,d)
## $`ukb-b-6591.ieu-b-4760`

## 
## attr(,"split_type")
## [1] "data.frame"
## attr(,"split_labels")
##   id.exposure id.outcome
## 1  ukb-b-6591 ieu-b-4760
d <- make_dat("ieu-b-4760", "ukb-b-6591")
## Extracting data for 9 SNP(s) from 1 GWAS(s)
## Finding proxies for 1 SNPs in outcome ukb-b-6591
## Extracting data for 1 SNP(s) from 1 GWAS(s)
## Harmonising Number of children || id:ieu-b-4760 (ieu-b-4760) and Age first had sexual intercourse || id:ukb-b-6591 (ukb-b-6591)
d_mr<-mr(d)
## Analysing 'ieu-b-4760' on 'ukb-b-6591'
d_mr
##   id.exposure id.outcome                                           outcome
## 1  ieu-b-4760 ukb-b-6591 Age first had sexual intercourse || id:ukb-b-6591
## 2  ieu-b-4760 ukb-b-6591 Age first had sexual intercourse || id:ukb-b-6591
## 3  ieu-b-4760 ukb-b-6591 Age first had sexual intercourse || id:ukb-b-6591
## 4  ieu-b-4760 ukb-b-6591 Age first had sexual intercourse || id:ukb-b-6591
## 5  ieu-b-4760 ukb-b-6591 Age first had sexual intercourse || id:ukb-b-6591
##                              exposure                    method nsnp          b
## 1 Number of children || id:ieu-b-4760                  MR Egger    8 -0.3940824
## 2 Number of children || id:ieu-b-4760           Weighted median    8 -0.8060908
## 3 Number of children || id:ieu-b-4760 Inverse variance weighted    8 -0.9730322
## 4 Number of children || id:ieu-b-4760               Simple mode    8 -0.9542976
## 5 Number of children || id:ieu-b-4760             Weighted mode    8 -0.8523506
##          se         pval
## 1 1.3043858 7.727586e-01
## 2 0.1295378 4.882946e-10
## 3 0.2130925 4.965420e-06
## 4 0.2453007 5.972947e-03
## 5 0.3932080 6.684523e-02
mr_scatter_plot(d_mr,d)
## $`ieu-b-4760.ukb-b-6591`

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

Very highly related, in BOTH directions..

Lifetime number of sexual partners

d <- make_dat("ukb-b-4256", "ieu-b-4760")
## Extracting data for 63 SNP(s) from 1 GWAS(s)
## Finding proxies for 3 SNPs in outcome ieu-b-4760
## Extracting data for 3 SNP(s) from 1 GWAS(s)
## Harmonising Lifetime number of sexual partners || id:ukb-b-4256 (ukb-b-4256) and Number of children || id:ieu-b-4760 (ieu-b-4760)
d_mr<-mr(d)
## Analysing 'ukb-b-4256' on 'ieu-b-4760'
d_mr
##   id.exposure id.outcome                             outcome
## 1  ukb-b-4256 ieu-b-4760 Number of children || id:ieu-b-4760
## 2  ukb-b-4256 ieu-b-4760 Number of children || id:ieu-b-4760
## 3  ukb-b-4256 ieu-b-4760 Number of children || id:ieu-b-4760
## 4  ukb-b-4256 ieu-b-4760 Number of children || id:ieu-b-4760
## 5  ukb-b-4256 ieu-b-4760 Number of children || id:ieu-b-4760
##                                              exposure                    method
## 1 Lifetime number of sexual partners || id:ukb-b-4256                  MR Egger
## 2 Lifetime number of sexual partners || id:ukb-b-4256           Weighted median
## 3 Lifetime number of sexual partners || id:ukb-b-4256 Inverse variance weighted
## 4 Lifetime number of sexual partners || id:ukb-b-4256               Simple mode
## 5 Lifetime number of sexual partners || id:ukb-b-4256             Weighted mode
##   nsnp           b         se      pval
## 1   62  0.12635883 0.21261738 0.5545448
## 2   62 -0.01050021 0.03670790 0.7748417
## 3   62 -0.03752705 0.04553182 0.4098294
## 4   62  0.04449240 0.08612216 0.6072897
## 5   62  0.03882922 0.08839008 0.6620009
mr_scatter_plot(d_mr,d)
## $`ukb-b-4256.ieu-b-4760`

## 
## attr(,"split_type")
## [1] "data.frame"
## attr(,"split_labels")
##   id.exposure id.outcome
## 1  ukb-b-4256 ieu-b-4760
d <- make_dat("ieu-b-4760", "ukb-b-4256")
## Extracting data for 9 SNP(s) from 1 GWAS(s)
## Finding proxies for 1 SNPs in outcome ukb-b-4256
## Extracting data for 1 SNP(s) from 1 GWAS(s)
## Harmonising Number of children || id:ieu-b-4760 (ieu-b-4760) and Lifetime number of sexual partners || id:ukb-b-4256 (ukb-b-4256)
d_mr<-mr(d)
## Analysing 'ieu-b-4760' on 'ukb-b-4256'
d_mr
##   id.exposure id.outcome                                             outcome
## 1  ieu-b-4760 ukb-b-4256 Lifetime number of sexual partners || id:ukb-b-4256
## 2  ieu-b-4760 ukb-b-4256 Lifetime number of sexual partners || id:ukb-b-4256
## 3  ieu-b-4760 ukb-b-4256 Lifetime number of sexual partners || id:ukb-b-4256
## 4  ieu-b-4760 ukb-b-4256 Lifetime number of sexual partners || id:ukb-b-4256
## 5  ieu-b-4760 ukb-b-4256 Lifetime number of sexual partners || id:ukb-b-4256
##                              exposure                    method nsnp         b
## 1 Number of children || id:ieu-b-4760                  MR Egger    8 1.0964920
## 2 Number of children || id:ieu-b-4760           Weighted median    8 0.2752280
## 3 Number of children || id:ieu-b-4760 Inverse variance weighted    8 0.1081888
## 4 Number of children || id:ieu-b-4760               Simple mode    8 0.3169767
## 5 Number of children || id:ieu-b-4760             Weighted mode    8 0.3726348
##           se        pval
## 1 1.16384482 0.382495654
## 2 0.09833029 0.005125874
## 3 0.19813371 0.585039035
## 4 0.12946663 0.044215582
## 5 0.12948941 0.023728600
mr_scatter_plot(d_mr,d)
## $`ieu-b-4760.ukb-b-4256`

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

No impact.