Question: Can ChIPQC analyze mandarin duck ChIP-Seq data?
gravatar for Gary
2.1 years ago by
Gary20 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 • 491 views
ADD COMMENTlink modified 2.1 years ago by Thomas Carroll400 • written 2.1 years ago by Gary20
Answer: Can ChIPQC analyze mandarin duck ChIP-Seq data?
gravatar for Thomas Carroll
2.1 years 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 2.1 years ago • written 2.1 years 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: 337 users visited in the last hour