ChIP-seq с Bioconductor в R
Peter Humburg
Statistician, Macquarie University


Загрузка данных:
reads <- readGAlignments(bam)
reads_gr <- granges(reads[[1]])
Получение средней длины фрагмента:
frag_length <- fragmentlength(qc_report)["GSM1598218"]
Расширение ридов и вычисление покрытия:
reads_ext <- resize(reads_gr, width=frag_length)
cover_ext <- coverage(reads_ext)

Разбивка генома на бины по 200 п.н.
bins <- tileGenome(seqinfo(reads), tilewidth=200,
cut.last.tile.in.chrom=TRUE)
Поиск всех бинов, перекрывающихся с пиками.
peak_bins_overlap <- findOverlaps(bins, peaks)
peak_bins <- bins[from(peak_bins_overlap), ]
Подсчёт ридов, перекрывающихся с каждым бином пика.
peak_bins$score <- countOverlaps(peak_bins, reads)
count_bins <- function(reads, target, bins){
# Find all bins overlapping peaks
overlap <- from(findOverlaps(bins, target))
target_bins <- bins[overlap, ]
# Count the number of reads overlapping each peak bin
target_bins$score <- countOverlaps(target_bins, reads)
target_bins
}
peak_bins <- count_bins(reads_ext, peaks, bins)
bl_bins <- count_bins(reads_ext, blacklist.hg19, bins)
Удаление уже учтённых бинов.
bkg_bins <- subset(bins, !bins %in% peak_bins & !bins %in% bl_bins)
Подсчёт ридов, перекрывающихся с каждым оставшимся бином.
bkg_bins$score <- countOverlaps(bkg_bins, reads_ext)



ChIP-seq с Bioconductor в R