--- title: "How to obtain Cytoband and Stain Information" output: pdf_document: default html_document: default documentclass : article vignette: > %\VignetteIndexEntry{How to obtain Cytoband and Stain Information} %\VignetteEngine{knitr::rmarkdown} \usepackage[utf8]{inputnc} --- ```{r setup, include=FALSE} knitr::opts_chunk$set(echo = TRUE) ``` ```{r, results='hide', message=FALSE} #if (!requireNamespace("BiocManager", quietly=TRUE)) #install.packages("BiocManager") library(GenomicRanges) library(rtracklayer) library(biovizBase) #needed for stain information library(IRanges) library(R.utils) library(TxDb.Hsapiens.UCSC.hg18.knownGene) ``` # Introduction This document explains how to obtain the cytoband and stain information. The user must ensure that the input object is a GRanges object ## Method 1 - Using ```rtracklayer``` package ```{r, eval=FALSE} # create a query against a UCSC Table browser query <- rtracklayer::ucscTableQuery("hg18", "cytoBandIdeo") table1 <- rtracklayer::getTable(query) # retrieve table head(table1) #Add an extra column with strand information table1$Strand <- c("*") ## Convert object into GRanges object table1.gr <- GRanges(table1$chrom, IRanges(table1$chromStart, table1$chromEnd), table1$Strand, table1$name, table1$gieStain) head(table1.gr, n = 3) #Save this object for future use save(table1.gr, file = "hg18.ucsctrack.RData") #NOTE : For hg19, simply use "hg19" in query instead of "hg18" ``` ## Method 2 - directly from UCSC Genome Browser This example shows how to download cytoband and stain information for hg18, and hg19 genomes from the UCSC Genome Browser ```{r, eval=FALSE} # URL for hg18 url <- "http://hgdownload.soe.ucsc.edu/goldenPath/hg18/database/cytoBand.txt.gz" #Download file and un-compress it download.file(url, destfile = "cyto.txt.gz") R.utils::gunzip("cyto.txt.gz") #Read in the downloaded cytoband ideogram txt file cyto1 <- read.table(file = "cyto.txt", header = FALSE, sep = "\t") #Adding column names colnames(cyto1) <- c("Chrom", "Start", "End", "CytobandName", "Stain") #Add an extra column with strand information cyto1$Strand <- c("*") #The user must ensure that the input object is a GRanges object ## Convert object into GRanges object cyto1.gr <- GRanges(cyto1$Chrom, IRanges(cyto1$Start, cyto1$End), cyto1$Strand, cyto1$CytobandName, cyto1$Stain) head(cyto1.gr, n = 3) #The user must ensure that the input object is a GRanges object #Save this object for future use save(cyto1.gr, file = "hg18.ucsctrack.RData") #NOTE : URL for hg19 #url <- "http://hgdownload.soe.ucsc.edu/goldenPath/hg19/database/cytoBand.txt.gz" # URL FOR hg38 #url <- "http://hgdownload.soe.ucsc.edu/goldenPath/hg38/database/cytoBand.txt.gz" ``` ## Method 3 - Using ```biovizBase``` package ```{r, eval=FALSE } hg18.ucsctrack <- biovizBase::getIdeogram("hg18", cytoband = TRUE) head(hg18.ucsctrack, n=3) #The user must ensure that the input object is a GRanges object #Save this object for future use save(hg18.ucsctrack, file = "hg18.ucsctrack.RData") ```