Question: Can ChIPQC analyze mandarin duck ChIP-Seq data?
gravatar for Gary
20 months ago by
Gary10 wrote:


I am analyzing mandarin duck (Aix galericulata) ChIP-Seq data. We have a mandarin duck genome assembly .fa file and a genome annotation .gff file produced by our cooperators. May I know whether ChIPQC can analyze mandarin duck histone modification ChIP-Seq data? Could you show me how to do it, if it is doable? Many thanks.



chipqc • 421 views
ADD COMMENTlink modified 20 months ago by Thomas Carroll400 • written 20 months ago by Gary10
Answer: Can ChIPQC analyze mandarin duck ChIP-Seq data?
gravatar for Thomas Carroll
20 months ago by
United States/New York/The Rockefeller University
Thomas Carroll400 wrote:


hi Gary,

ChIPQC should work fine for BAM files aligned to any genome. Since there isn't a prebuilt TxDB package for mandarin duck, the summary of gene signal within genic regions is not immediately supported.

To run ChIPQC on a single BAM.


I would recommend running all your samples together using the ChIPQC function with a sample sheet showing the set-up of your experiment. This is detailed in the package vignette (

You can also  provide custom annotation to ChIPQC in the form of a list of GRanges objects. This is described in this workshop

and in this previous post

creating custom genome annotation for the ChIPQC package

If you have a gtf for gene models you should be able to build a ChIPQC annotation for your genome of interest.


txdb <- makeTxDbFromGFF("MyGTF.gtf",format="gtf") 

All5utrs <- reduce(unique(unlist(fiveUTRsByTranscript(txdb))))
All3utrs <- reduce(unique(unlist(threeUTRsByTranscript(txdb))))
Allcds <- reduce(unique(unlist(cdsBy(txdb,"tx"))))
Allintrons <- reduce(unique(unlist(intronsByTranscript(txdb))))
Alltranscripts <- reduce(unique(unlist(transcripts(txdb))))

posAllTranscripts <- Alltranscripts[strand(Alltranscripts) == "+"]
posAllTranscripts <- posAllTranscripts[!(start(posAllTranscripts)-20000 < 0)]
negAllTranscripts <- Alltranscripts[strand(Alltranscripts) == "-"]
chrLimits <- seqlengths(negAllTranscripts)[as.character(seqnames(negAllTranscripts))]      
negAllTranscripts <- negAllTranscripts[!(end(negAllTranscripts)+20000 > chrLimits)]      
Alltranscripts <- c(posAllTranscripts,negAllTranscripts)
Promoters500 <-  reduce(flank(Alltranscripts,500))    
Promoters2000to500 <-  reduce(flank(Promoters500,1500))
LongPromoter20000to2000  <- reduce(flank(Promoters2000to500,18000))

duckAnnotation <- list(version="",LongPromoter20000to2000=LongPromoter20000to2000,



very best,


ADD COMMENTlink modified 20 months ago • written 20 months ago by Thomas Carroll400
Please log in to add an answer.


Use of this site constitutes acceptance of our User Agreement and Privacy Policy.
Powered by Biostar version 16.09
Traffic: 114 users visited in the last hour