We've moved!
This site is now read-only. You can find our new documentation site and support forum for posting questions here.
Be sure to read our welcome blog!

what does "ContextCovariate" mean?

What does the covariate "ContextCovariate" in BQSR mean? Is it "reference sequence context" or "read context"? Is it the same with "Dinuc" in older versions of gatk?
Thanks a lot!

Best Answer


  • Geraldine_VdAuweraGeraldine_VdAuwera Cambridge, MAMember, Administrator, Broadie admin

    It refers to the reference sequence context. Dinuc was the dinucleotide context covariate, yes.

  • douymdouym Member
    edited November 2014

    Thanks for your reply, but I'am afraid it's not true. Yesterday I took a test, and the results indicate it refers to reads context.

    The test results are like this:

    1. cat reference.fasta |grep GT (7 "GT" in this region of referece sequence)


    1. cat test.recal.table |grep GT (2 reads covering this region, with a same mismatch from "GT" to "GC". If it refers to reference context, then there should be 14 "GT"s in recal_table, but there are only 12 "GT"s, as follows。)

      shu_family.64.L1 27 GT Context M 27.0000 1 0.00
      shu_family.64.L1 29 GT Context M 29.0000 1 0.00
      shu_family.64.L1 30 GT Context M 30.0000 1 0.00
      shu_family.64.L1 31 GT Context M 31.0000 4 0.00
      shu_family.64.L1 32 GT Context M 32.0000 4 0.00
      shu_family.64.L1 33 GT Context M 33.0000 1 0.00

    I think it's not very good to consider only reads contexts, because mutations come from reference contexts, and different reference contexts should have different mutation rates.

    Is there a co-variate in BQSR describing reference contexts? The on-line manual of GATK seems chaotic, and I cannot find that. If there is not a co-variate describing that, I think it will be worth to develop one.

    Best, Dou

    Post edited by Geraldine_VdAuwera on
  • Geraldine_VdAuweraGeraldine_VdAuwera Cambridge, MAMember, Administrator, Broadie admin

    Ah, my mistake, you're correct that it is the read context.

    Keep in mind that BQSR doesn't aim to model true mutations, it models technical bias in the instrument's output. For that purpose it makes more sense to look at read context, since that is what the instrument sees and processes. The idea is to ask "does the instrument make mistakes at specific places depending on e.g. what base it just read?". The reference context itself is not informative for answering this question.

  • douymdouym Member
    edited November 2014

    hi Geraldin,
    Thanks for your reply, but yet I cannot agree with you. You mentioned that the idea is to ask "does the instrument make mistakes at specific places depending on e.g. what base it just read", and it really puzzled me.

    First of all, it seems the instrument you mentioned has only one ability: reading read clusters. But as we all know, the NGS technology is very complicated. Take illumina for example, the whole sequencing procedure include library generation (adapter ligation, PCR amplification), cluster generation (library annealing, bridging amplification, cleavage and washing out one strand) and sequencing by synthesis. Reading read clusters is just the last step, and errors can come from all those procedures.

    What's more, even if we suppose that the "instrument" is only able to read read clusters, the "reads" we see finally are read out **of the instrument. I think we **cannot confirm "read in" is the same as "read out" . For example, if the true read cluster is "GAT" while the sequencing result is "GAC", what is the "read context"? I think it should be "GAT", but not "GAC".

    In conclusion, I think the context should be what are the real bases. The context should be a string of bases from the very start of sequencing, not necessarily "reference context", but can also be "major allele context". For example, if a read out is G(55)|A(1), A, C, then the read context should G, A, C.

    Best, Dou

Sign In or Register to comment.