JBrowse: Difference between revisions

From HPCwiki
Jump to navigation Jump to search
Line 14: Line 14:
Download the latest JBrowse here: http://jbrowse.org/
Download the latest JBrowse here: http://jbrowse.org/


Make a directory in <code>/cm/shared/apps/jbrowse/</code> for your species of interested (e.g. Cyprinus_carpio). Move the downloaded JBrowse source files there. All further procedures detailed in this Wiki page assume working from that directory (NOTE: if your species of interest is already there, contact the maintainer of that JBrowse instance).
Run the setup script to install perl dependencies and required modules
Run the setup script to install perl dependencies and required modules



Revision as of 13:13, 16 December 2016

Typical commands used to set up a JBrowse

Author: Martijn Derks

Install JBrowse

Download the latest JBrowse here: http://jbrowse.org/

Make a directory in /cm/shared/apps/jbrowse/ for your species of interested (e.g. Cyprinus_carpio). Move the downloaded JBrowse source files there. All further procedures detailed in this Wiki page assume working from that directory (NOTE: if your species of interest is already there, contact the maintainer of that JBrowse instance). Run the setup script to install perl dependencies and required modules

<source lang='bash'> unzip JBrowse-1.12.0.zip cd JBrowse-1.12.0 ./setup.sh </source>

Add reference sequence

Example code for chicken genome

<source lang='bash'> bin/prepare-refseqs.pl --fasta /lustre/nobackup/WUR/ABGC/shared/public_data_store/genomes/chicken/Ensembl74/Gallus_gallus.Galgal4.74.dna.toplevel.fa </source>

To remove tracks use following command:

<source lang='bash'> bin/remove-track.pl -D --trackLabel 'trackname' </source>

Add annotation files (GFF/BED)

Data can be downloaded from the Ensembl FTP site: http://www.ensembl.org/info/data/ftp/index.html

Add gene features:

<source lang='bash'> bin/flatfile-to-json.pl --key "Gene spans" --className feature5 --type gene --noSubfeatures --config '{ "category": "GalGal4.83 Annotation" }' --trackLabel Genes --gff ../ensembl_data/Gallus_gallus.Galgal4.83.gff3 </source>

Add corresponding transcripts:

<source lang='bash'> bin/flatfile-to-json.pl --key "Transcripts" --className transcript --subfeatureClasses '{"exon": "exon", "CDS": "CDS", "five_prime_UTR": "five_prime_UTR", "three_prime_UTR": "three_prime_UTR"}' --config '{ "category": "GalGal4.83 Annotation" }' --type transcript --trackLabel Transcripts --gff ../ensembl_data/Gallus_gallus.Galgal4.83.gff3 </source>

Alignment tracks (BAM)

You can load single BAM-files by following command: <source lang='bash'> bin/add-bam-track --label <label> --bam_url <url> </source>

To load multiple BAM files present in a certain directory use: <source lang='bash'>

for bam in /<dir>*.bam; do

       ln -s $bam track_symlinks/ ## Make symlinks from the BAM files
       ln -s $bam.bai track_symlinks/ ## Make symlinks to the BAM index files
       tissue=`echo $bam | rev | cut -c 5- | cut -d'/' -f1 | rev` ## USe the name of the file without .bam as trackLabel
       
       ## Add BAM in alignment mode (Alignments2)
       echo '{
               "label" : "'${tissue}'_alignment",
               "key" : "'${tissue}'_alignment",
               "storeClass" : "JBrowse/Store/SeqFeature/BAM",
               "urlTemplate" : "../track_symlinks/'${tissue}'",
               "category" : "3. RNA-seq alignments",
               "type" : "Alignments2"
       }' | bin/add-track-json.pl data/trackList.json
       ## Add BAM in coverage mode (SNPCoverage)
       echo '{
               "label" : "'${tissue}'_coverage",
               "key" : "'${tissue}'_coverage",
               "storeClass" : "JBrowse/Store/SeqFeature/BAM",
               "urlTemplate" : "../track_symlinks/'${tissue}'",
               "category" : "3. RNA-seq alignments",
               "type" : "SNPCoverage"
       }' | bin/add-track-json.pl data/trackList.json

done </source>

Make sure the BAM file can be read by a everybody if not use: <source lang='bash'> chmod +r <BAM_file> </source>

Make sure that all directoryies in the full path of the BAMfile are executable: <source lang='bash'> chmod +x <dir> </source>

Variant tracks (VCF)

To load a VCF file in JBrowse make sure the file is gzipped and indexed

<source lang='bash'> tabix -p vcf Gallus_gallus_incl_consequences.vcf.gz

echo ' {

      "label" : "Gallus_gallus_incl_consequences",
      "key" : "Gallus_gallus_incl_consequences",
      "storeClass" : "JBrowse/Store/SeqFeature/VCFTabix",
      "urlTemplate" : "../../ensembl_data/VCF/Gallus_gallus_incl_consequences.vcf.gz",
      "category" : "2. Variants",
      "type" : "HTMLVariants"
    } ' | bin/add-track-json.pl data/trackList.json

</source>

Wiggle/BigWig tracks (WIG)

You can load single BigWig-files by following command: <source lang='bash'> bin/add-bam-track --label <label> --bam_url <url> </source>

To load multiple BAM files present in a certain directory use: <source lang='bash'>

for bw in /lustre/nobackup/WUR/ABGC/shared/Chicken/Ensembl_Rna_Seq/*.bw; do

       ln -s $bw track_symlinks/
       tissue=`echo $bw | rev | cut -c 8- | cut -d'/' -f1 | rev`
       echo '{
               "label" : "'${tissue}'_BWcoverage",
               "key" : "'${tissue}'_BWcoverage",
               "storeClass" : "BigWig",
               "urlTemplate" : "../track_symlinks/'${tissue}.bam.bw'",
               "category" : "3. RNA-seq alignments",
               "type" : "JBrowse/View/Track/Wiggle/XYPlot",
               "variance_band" : true
       }' | bin/add-track-json.pl data/trackList.json

done </source>

Make sure the BAM file can be read by a everybody if not use: <source lang='bash'> chmod +r <BAM_file> </source>

Make sure that all directoryies in the full path of the BAMfile are executable: <source lang='bash'> chmod +x <dir> </source>

Evidence tracks

Evidence tracks can be loaded in bed, gff and gbk format using

<source lang='bash'> bin/flatfile-to-json.pl </source>

Examples are given above.