The Integrative Genomics Viewer (IGV) from the Broad Center allows you to view several types of data files involved in any NGS analysis that employs a reference genome, including how reads from a dataset are mapped, gene annotations, and predicted genetic variants.
In this tutorial, we're going to learn how to do the following in IGV:
Because NGS datasets are very large, it is often impossible or inefficient to read them entirely into a computer's memory when searching for a specific piece of data. In order to more quickly retrieve the data we are interested in analyzing or viewing, most programs have a way of treating these data files as databases. Database indexes enable one to rapidly pull specific subsets of the data from them.
The Integrative Genomics Viewer is a program for reading several types of indexed database information, including mapped reads and variant calls, and displaying them on a reference genome. It is invaluable as a tool for viewing and interpreting the "raw data" of many NGS data analysis pipelines.
You can start this tutorial two ways:
mapping directory with output from the Mapping tutorial and the SNV calling tutorial, then you should use those files for part 1 of this tutorial. You can proceed with either one alone or with both.
Then skip down to #Launching IGV. |
IGV likes its reference genome files in GFF (Gene Feature Format). Unfortunately, our old friend bp_seqconvert.pl doesn't deal with GFF. So, we're going to show you another tool for sequence format conversion called Readseq. We've already installed it into the $BI/bin directory so you don't have to, but here we provide the steps that can be used to install it in a local directory.
To use it you need to first download the file readseq.jar linked from here. To get this onto TACC easily, use:
After that, you simply need to know where you downloaded it. As it is an executable $HOME or $WORK would be good places for it if you were going to use it on TACC (incase you can't remember where the BioITeam installation is) or if you were going to put it on your laptop as you may get tired transferring files back and forth just to do simple file conversions if you have to do them often. In tomorrows final tutorial there will be a section about making java calls easier. |
Readseq is written in java which makes it a little more complicated to use, but the general command to run the software is one of these (note that you do need to include the entire path, not just the "readseq.jar" name):
java -jar /corral-repl/utexas/BioITeam/bin/readseq.jar java -cp /corral-repl/utexas/BioITeam/bin/readseq.jar run |
This should return the help for Readseq.
You are actually using the command java and telling it where to find a "jar" file of java code to run. The -jar and -cp options run it in different ways. It is important to learn that java executables (.jar files) always require specifying the full path to the executable. In tomorrows final lecture we'll cover how you can work around this so you can build your own shortcuts and not have to remember where all your .jar files are stored (can be particularly difficult if you store them in different places (like some in your $HOME/local/bin directory, and some in various BioITeam directories. |
To do the conversion that we want, use this command:
cds mkdir GVA_IGV_Tutorial cd GVA_IGV_Tutorial java -cp /corral-repl/utexas/BioITeam/bin/readseq.jar run $SCRATCH/GVA_bowtie2_mapping/NC_012967.1.gbk -f GFF -o NC_012967.1.gbk.gff |
It's a bit hard to figure out because, unlike most conventions, it takes the unnamed arguments before the optional flag arguments, there is no example command, and you have to switch -jar to -cp. Search online for usage examples when you can't figure something out from the help. Take a look at the contents of the original Genbank file and the new GFF file and try to get a handle on what is going on in this conversion using commands like head and tail.
IGV is an interactive graphical viewer program. You can't run it on TACC, so we need to get the relevant files back to your desktop machine.
They include:
The easiest way to to this is probably to copy everything you want to transfer into a new directory called IGV_export. Since many of the tutorial output files had the same names (but resided in different directories) be careful to give them unique destination names when you copy them into the new directory together. To ensure you don't overwrite things be sure to use the -n or -i option with the cp command. The difference comes from different versions of linux having slightly different cp command options. The -n command will not allow you to overwrite files, while the -i command will prompt you before overwriting anything.
mkdir GVA_IGV_export cp -i NC_012967.1.gbk.gff GVA_IGV_export # copy the new file you just converted to the export directory cp -i $SCRATCH/GVA_bowtie2_mapping/NC_012967.1.fasta GVA_IGV_export cp -i $SCRATCH/GVA_samtools_tutorial/NC_012967.1.fasta.fai GVA_IGV_export cp -i $SCRATCH/GVA_samtools_tutorial/SRR030257.vcf GVA_IGV_export cp -i $SCRATCH/GVA_samtools_tutorial/SRR030257.sorted.bam GVA_IGV_export/bowtie2.sorted.bam cp -i $SCRATCH/GVA_samtools_tutorial/SRR030257.sorted.bam.bai GVA_IGV_export/bowtie2.sorted.bam.bai tar -czvf GVA_IGV_export.tar.gz GVA_IGV_export |
Now, copy the entire compressed IGV directory back to your local Desktop machine.
In the terminal connected to Lonestar, figure out the complete path to the IGV directory.
Open a new terminal window on your Desktop. Fill in the parts in brackets <> in this command:
|
For the remainder of the tutorial, work on your local machine. NOT TACC! |
There are multiple ways to launch IGV on a local computer, in decreasing order of recommendation due to recent mac OS updates and easy of use:
Click here to download and install the mac application version. Save it to your desktop, then extract the zip file and launch the application. |
Navigate a web browser to this page:http://www.broadinstitute.org/software/igv/download. You will need to register your email address to use this option, but in years of registration I have never noticed any emails from them. Go ahead and click on the "Launch with 2 GB" option. This will download a "Java Web Start" file that you can launch by locating it on your Desktop and double-clicking.
|
Click here to download version 2.5.2 of IGV or visit https://www.broadinstitute.org/software/igv/download to download the latest binary version. After unzipping, you should be able to click on
|
From the main window of IGV, click on Genomes > Create .genome File... and you should be presented with the following window.
Enter the ID and Name of the Genome you are working with (these can be anything that makes sense to you) and select the path to your *.fasta file (the index, *.fai file needs to be in the same directory), then select the path to your *.gff file for the Gene File. Click OK and then save this *.genome file inside the same folder as your data.
From the main window of IGV, click on File > Load from File.... Choose bowtie2.sorted.bam
After importing your reference genome and loading an alignment file, click on the + button in the upper right until reads appear! Then, your screen should look similar to the following:

We're really interested in places in the genome where we think there are mutations. In the Variant calling tutorial we identified such locations but lacked a good way to visualize them. This is your opportunity to visualize them. We have already transferred the SRR030257.vcf file back to your local computer, but before we can visualize them, we need to (guess what?) index it.
You can do this from within IGV:
SRR030257.vcf file for "Input File"It will look like nothing has happened aside from the appearance of "Done" in the messages box, but you can now close the "Run" window and choose File > Load from File. If you navigate to your IGV directory, you will now see a brand new SRR030257.vcf.idx file. You can now load the SRR030257.vcf file, and it will show up as a new track near the top of your window.
Tip: You can also index BAM and FASTA files the same way inside of IGV if you haven't already created indexes for them. But, it's usually easier and quicker to do this on the command line at TACC. Indexing BAM files can be a computationally hefty task.
You are now free to investigate different areas and their alignments in the genome.
There are a lot of things you can do in IGV. Here are a few:
page-up page-down, home, end.control-f and control-b to jump forward and backward within that list of features. Try this on the variant calls track.See the IGV Manual for more tips and how to load other kinds of data.
Interested in determining the probability that a read is not where it should be? What is a typical mapping quality (MQ) for a read?
The estimated probability that a read is mapped incorrectly is 10^(-MQ/10). Where MQ is the mapping quality. |
Can you find a variant where the sequenced sample differs from the reference? This would be like looking for a needle in a haystack if not for the use of variant callers and the control-f and control-b options to zoom right to areas where there are discrepancies between reads and the reference genome that might indicate there were mutations in the sequenced E. coli.
|
Now that you've familiarized yourself with IGV using a "simple" bacteria, let's look at something a "little" more complex: the human genome.
Throughout this class we have used the wget command several times to download files to TACC which is running bash on a linux environment. As IGV only works on your local computer rather than TACC, downloading files directly to your laptop is more practical. Unfortunately wget is a linux only command and unix does not have it so instead we shall use the curl command to download some human data to IGV and look at it. The following commands should be run in a terminal window that is not logged into tacc.
cd ~/Desktop mkdir human_IGV cd human_IGV curl -O https://xfer.genome.wustl.edu/gxfer1/project/gms/testdata/bams/hcc1143/HCC1143.normal.21.19M-20M.bam curl -O https://xfer.genome.wustl.edu/gxfer1/project/gms/testdata/bams/hcc1143/HCC1143.normal.21.19M-20M.bam.bai |
These if you look at the file names, you may notice that this bam file and its index correspond to human chromosome 21 from 19 million to 20 million bases. This limited data set is to hopefully avoid IGV crashing.
Steps:
Which is more likely to be related to disease? why?
a. Yes, both forward and reverse reads (red and blue if colored by strand) contain the SNPs compared to the reference b. The one on the left does not correspond to a dbSNP entry and is therefore more likely to be related to disease state |
There are 2 SNPs visible in the chr21:19,666,833-19,667,007 region. Answer the following questions:
Two mutations very close together is often a case of poor alignment scores. Is that the case here (remember this is human data)?
Is either likely to be related to disease?
a. No, each read only has 1 mutation on it, these are 2 different alleles each with its own SNP relative to 'wt'. Both are reported in dbSNP b. Neither is likely to be related to disease or at least to rare disease as both mutations have previously been identified as naturally occurring by dbSNP |
What is going on in the chr21:19,324,469-19,331,468 region?
Homozygous deletion. In the track on the left, right click and select 'view as pairs' to see linkage between R1 and R2 to see individual reads mapping to both sides of the deletion |
What is going on in the chr21:19,102,154-19,103,108 region?
This is an example of poor alignment to a repetitive AluY element. Notice how of the read pairs that map with numerous SNPs have 1 read that maps with lots of SNPs and the other read maps with none? This is caused by mapping reads to a limited area of the whole genome, if these reads had been allowed to map to the entire genome it is very likely that both read pairs would map without SNPs somewhere else in the genome. |
What other interesting things can you find?
You will need to index your reference FASTA and convert your SAM output files into sorted and indexed BAM files. The "why?" behind these steps is described more fully in the Variant calling tutorial. If you are in your
|
You can use IGV to visualize mapped reads and predicted variants from any later tutorial!
You may also want to check out alternative genome browsers: