For additional information:
My Factor 2 contains Variable 4, which is HDL. I applied reverse-coding for HDL sumstats since SNP effects in HDL GWAS are associated with increased HDL levels, which are beneficial for my second-order outcome. I applied reverse-coding to align the effect direction. The subsequent ldsc output and GWAS for multivariate GWAS analysis are constructed based on revserse-coded HDL sumstats. I wonder if the current issue relates to this process.
Best,
Mingyi Du
在2025年2月12日星期三 UTC+8 19:19:18<Mingyi Du> 写道:
Hi all,
First of all, thank you for the excellent package and this is really great work.
I just have a few questions:
I am running a hierarchical model using the userGWAS() function, which looks like this:
# hierarchical model
model <- "F1 =~ 1*Variable1 + Variable2 + Variable3
F2 =~ 1*Variable4 + Variable5 + Variable6
F3 =~ 1*Variable7 + Variable8
OutcomeFactor =~ 1*F1 + F2 + F3
F1 ~~ 0*F2
F1 ~~ 0*F3
F2 ~~ 0*F3
Variable6 ~~ a*Variable6
Variable2 ~~ b*Variable2
Variable1 ~~ c*Variable1
Variable4 ~~ d*Variable4
Variable5 ~~ e*Variable5
Variable8 ~~ f*Variable8
Variable7 ~~ g*Variable7
F1 ~~ i*F1
F2 ~~ j*F2
F3 ~~ k*F3
OutcomeFactor ~~ l*OutcomeFactor
a > 0.001
b > 0.001
c > 0.001
d > 0.001
e > 0.001
f > 0.001
g > 0.001
h > 0.001
i > 0.001
j > 0.001
k > 0.001
l > 0.001
OutcomeFactor ~ SNP
"
After Obtaining the GWAS for OutcomeFactor which is a second-order factor, I calculate the Neff (N=1,568,098) using equations listed on https://github.com/GenomicSEM/GenomicSEM/wiki/5.-Multivariate-GWAS.
After this, I plan to obtain GWAS summary statistics for all my first-order factors (F1, F2, F3) using code below:
#first-order GWAS
model <- "F1 =~ 1*Variable1 + Variable2 + Variable3
F2 =~ 1*Variable4 + Variable5 + Variable6
F3 =~ 1*Variable7 + Variable8
OutcomeFactor =~ 1*F1 + F2 + F3
F1 ~~ 0*F2
F1 ~~ 0*F3
F2 ~~ 0*F3
Variable6 ~~ a*Variable6
Variable2 ~~ b*Variable2
Variable1 ~~ c*Variable1
Variable4 ~~ d*Variable4
Variable5 ~~ e*Variable5
Variable8 ~~ f*Variable8
Variable7 ~~ g*Variable7
F1 ~~ i*F1
F2 ~~ j*F2
F3 ~~ k*F3
OutcomeFactor ~~ l*OutcomeFactor
a > 0.001
b > 0.001
c > 0.001
d > 0.001
e > 0.001
f > 0.001
g > 0.001
h > 0.001
i > 0.001
j > 0.001
k > 0.001
l > 0.001
OutcomeFactor ~ 0*SNP
F1 ~~ 0*SNP
F2 ~~ 0*SNP
F3 ~~ 0*SNP
F1 ~ SNP
F2 ~ SNP
F3 ~ SNP
"
MASLD.GWAS <- userGWAS(covstruc=MASLD_ldscout,
SNPs=MASLD_sumstat,
estimation="DWLS",
model=model,
cores=16,
toler=1e-50,
SNPSE=FALSE,
sub=c('F1 ~ SNP', 'F2 ~ SNP', 'F3 ~ SNP'),
parallel=TRUE,
GC="standard",
MPI=FALSE,
smooth_check=FALSE,
printwarn=TRUE)
This ouputs all F1 ~ SNP","F2 ~ SNP", "F3 ~ SNP" results, and I select columns only contain "F1 ~ SNP" as my F1 GWAS, etc.
First of all, I wonder if this processing of F1, F2, F3 GWAS is right.
Second, when I use the same method for calculating Neff for my F1, F2, and F3. However, the Neff for F2 is extremely low, compared to F1 and F2.
Neff for F1: 1,568,098; F2: 196,429;
F3: 1,060,424
Morever, I used the F2_GWAS summary statistics to perform LDSC and the results indicated low mean Chi^2:
Total Observed scale h2: 0.0566 (0.0059)
Lambda GC: 0.867
Mean Chi^2: 0.9508
Intercept: 0.7317 (0.007)
Ratio: NA (mean chi^2 < 1)
Everything goes reasonable for F1, F3, and my second-order OutcomeFactor. I struggled to find out what is wrong here. I would really appreciate if anyone could give me some advices.
Thanks very much!