Skip to content

discrepancy between qtl::scanonevar and vqtl::scanonevar #3

@rcorty

Description

@rcorty

Dear Dr. Corty,

I attach the code used as well as a cross-file with 100 markers as an example to show you the difference in the output of both functions.


marker <- "Hydroxyisobutyric_acid_2TMS1"
chromosome <- 22

# QTL scanonevar
crossData <- qtl::read.cross(format = "csv", file = paste0(marker,"_chr",chromosome,"_cross.csv"))
crossData <- qtl::calc.genoprob(crossData, step = 0)
# Available options
# qtl::scanonevar(cross = , pheno.col = , mean_covar = , var_covar = ,maxit = ,tol = ,quiet = )
result_qtl <- qtl::scanonevar(cross = crossData)
# As qtl package returns the -log10 of the p-value I converted it to compare
result_qtl[,3] <- 10^-result_qtl[,3]
result_qtl[,4] <- 10^-result_qtl[,4]
colnames(result_qtl) <- c("chr", "pos", "mQTL.p", "vQTL.p")
head(result_qtl)

# vQTL scanonevar
crossData <- qtl::read.cross(format = "csv", file = paste0(marker,"_chr",chromosome,"_cross.csv"))
crossData <- qtl::calc.genoprob(crossData, step = 0)
# Available options
# vqtl::scanonevar(cross = ,mean.formula = ,var.formula = ,chrs = ,scan_types = ,glm_family = ,return.covar.effects = )
result_vqtl <- vqtl::scanonevar(cross = crossData,
                 mean.formula = eval(parse(text = paste0(marker, " ~ mean.QTL.add + mean.QTL.dom"))),
                 var.formula = ~ var.QTL.add + var.QTL.dom)
result_vqtl <- result_vqtl$result
result_vqtl <- result_vqtl[,c(2,4,6,8,10)]
head(result_vqtl)


##### QTL PACKAGE ######
 --Read the following data:
	 1354  individuals
	 100  markers
	 1  phenotypes
 --Cross type: f2 
            chr      pos    mQTL.p    vQTL.p
22:17066768  22 17066768 0.7126233 0.5256289
22:17067504  22 17067504 0.2775431 0.8481988
22:17067856  22 17067856 0.2560010 0.5723839
22:17068400  22 17068400 0.1859521 0.1510190
22:17069064  22 17069064 0.2826160 0.1899186
22:17070120  22 17070120 0.3294673 0.4517932

##### vQTL PACKAGE ######
 --Read the following data:
	 1354  individuals
	 100  markers
	 1  phenotypes
 --Cross type: f2 
# A tibble: 6 x 5
  chr        pos mQTL.asymp.p vQTL.asymp.p mvQTL.asymp.p
  <chr>    <dbl>        <dbl>        <dbl>         <dbl>
1 22    17066768        0.905        0.966         0.991
2 22    17067504        0.871        0.944         0.983
3 22    17067856        0.859        0.926         0.977
4 22    17068400        0.814        0.773         0.922
5 22    17069064        0.878        0.809         0.954
6 22    17070120        0.840        0.919         0.973

After finished the entire genome scan for some phenotypes I found that your function vqtl::scanonevar return smaller p-values than the qtl::scanonevar.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions