shinyCircos: an R/Shiny application for interactive creation of Circos plot

About

Upload data for inner tracks

Data of zero or more tracks can be uploaded. For now, a maximum of 10 tracks are allowed. For any track, the first three columns of the uploaded data should be chromosome ID, the start and end coordinates of genomic regions. For plot of point, line and bar, the uploaded data can contain one or more columns to indicate the 'color', 'cex' or 'pch' used in the plot. 'cex' is used to control the size of data points while 'pch' is used to specify the symbols used in plot of point. See example data for more details.


Upload data to create links

Data to create links between different genomic regions should be composed of 6 or 7 columns. The first three columns of each row represent the coordinate of a genomic region while the 4th to 6th columns of each row represent the coordinate of another genomic region. For data with 7 columns, the 7th column should be categorical characters indicating varying colors or numbers indicating gradual colors used for different links. The name of the 7th column should be 'color'. A link will be created between the two genomic regions in each row. See example data for more details.


Data uploaded should use any of the separator in the set [,\t |;:].


Plot options

Low Color

Middle Color

High Color


Paste data below:

Each row should contain four components separated by commas including the chromosome ID, start coordinate, end coordinate and the specified color. For example, 'chr1,1,100000000,red'. Hex color codes as '#FF0000' are also supported.


Data separated by commas.

Low Color

Middle Color

High Color


Paste data below:

Each row should contain four components separated by commas including the chromosome ID, start coordinate, end coordinate and the specified color. For example, 'chr1,1,100000000,red'. Hex color codes as '#FF0000' are also supported.


Data separated by commas.

Low Color

Middle Color

High Color


Paste data below:

Each row should contain four components separated by commas including the chromosome ID, start coordinate, end coordinate and the specified color. For example, 'chr1,1,100000000,red'. Hex color codes as '#FF0000' are also supported.


Data separated by commas.

Low Color

Middle Color

High Color


Paste data below:

Each row should contain four columns separated by commas indicating the chromosome ID, start coordinate, end coordinate and specified color. For example, 'chr1,1,100000000,red'. Hex color codes like '#FF0000' are also supported.


Data separated by commas.

Low Color

Middle Color

High Color


Paste data below:

Each row should contain four components separated by commas including the chromosome ID, start coordinate, end coordinate and the specified color. For example, 'chr1,1,100000000,red'. Hex color codes as '#FF0000' are also supported.


Data separated by commas.

Low Color

Middle Color

High Color


Paste data below:

Each row should contain four components separated by commas including the chromosome ID, start coordinate, end coordinate and the specified color. For example, 'chr1,1,100000000,red'. Hex color codes as '#FF0000' are also supported.


Data separated by commas.

Low Color

Middle Color

High Color


Paste data below:

Each row should contain four components separated by commas including the chromosome ID, start coordinate, end coordinate and the specified color. For example, 'chr1,1,100000000,red'. Hex color codes as '#FF0000' are also supported.


Data separated by commas.

Low Color

Middle Color

High Color


Paste data below:

Each row should contain four components separated by commas including the chromosome ID, start coordinate, end coordinate and the specified color. For example, 'chr1,1,100000000,red'. Hex color codes as '#FF0000' are also supported.


Data separated by commas.

Low Color

Middle Color

High Color


Paste data below:

Each row should contain four components separated by commas including the chromosome ID, start coordinate, end coordinate and the specified color. For example, 'chr1,1,100000000,red'. Hex color codes as '#FF0000' are also supported.


Data separated by commas.

Low Color

Middle Color

High Color


Paste data below:

Each row should contain four components separated by commas including the chromosome ID, start coordinate, end coordinate and the specified color. For example, 'chr1,1,100000000,red'. Hex color codes as '#FF0000' are also supported.


Data separated by commas.

Data color

For data with 'color' column indicated by numbers, links are filled with colors specified by the user.

Low Color

Middle Color

High Color


Paste data below:

Each row should contain four components separated by commas including the chromosome ID, start coordinate, end coordinate and the specified color. For example, 'chr1,1,100000000,red'. Hex color codes as '#FF0000' are also supported.


Data separated by commas.


Gallery

Help

  • Software references
  • 1. R Development Core Team. R: A Language and Environment for Statistical Computing. R Foundation for Statistical Computing, Vienna (2016)
    2. RStudio and Inc. shiny: Web Application Framework for R. R package version 1.0.0 (2016)
    3. Gu, Z. circlize: Circular Visualization. R package version 0.4.1 (2017)
    4. Neuwirth, E. RColorBrewer: ColorBrewer palettes. R package version 1.1-2 (2014)
    5. Lawrence, M. GenomicRanges: Representation and manipulation of genomic intervals and variables defined along a genome. R package version 1.24.3 (2016)
    6. Dowle, M. data.table: Extension of Data.frame. R package version 1.9.6 (2015)
    7. Burow, C. RLumShiny: "Shiny" Applications for the R Package "Luminescence". R package version 0.1.1 (2016)
    8. R Core Team and contributors worldwide. grDevices: Graphics devices and support for base and grid graphics. R package version 3.3.3 (2016)

  • Further references
  • This application was created by Wen Yao and Yiming Yu . Please send bugs and feature requests to Wen Yao (ywhzau at gmail.com) or Yiming Yu (yimingyyu at gmail.com). This application uses the shiny package from RStudio .

  • Please cite
  • Yiming Yu, Yidan Ouyang, and Wen Yao. shinyCircos: an R/Shiny application for interactive creation of Circos plot. Bioinformatics. 2017 Nov. 24. doi:10.1093/bioinformatics/btx763

  • !!Note!!
  • Users are encouraged to install and use shinyCircos on local personal computers. Please check the help menu of the shinyCircos application or https://github.com/venyao/shinyCircos for the installation of shinyCircos on local computers.

    shinyCircos

    This is the repository for the Shiny application presented in “shinyCircos: an R/Shiny application for interactive creation of Circos plot” (Yu et al. Bioinformatics. 2017).


    Help manual for the usage of shinyCircos [Download!]


    Use shinyCircos online

    shinyCircos is deployed at https://yimingyu.shinyapps.io/shinycircos/, http://shinycircos.ncpgr.cn/ and http://150.109.59.144:3838/shinyCircos/ for online use.
    shinyCircos is idle until you activate it by accessing the URLs.
    So it may take some time when you access this URL for the first time.
    Once it was activated, shinyCircos could be used smoothly and easily.


    Launch shinyCircos directly from R and GitHub (preferred approach)

    User can choose to run shinyCircos installed locally for a more preferable experience.

    Step 1: Install R and RStudio

    Before running the app you will need to have R and RStudio installed (tested with R 3.3.3 and RStudio 1.0.143).
    Please check CRAN (https://cran.r-project.org/) for the installation of R.
    Please check https://www.rstudio.com/ for the installation of RStudio.

    Step 2: Install the R Shiny package and other packages required by shinyCircos

    Start an R session using RStudio and run these lines:

    install.packages("shiny")  
    install.packages("circlize")  
    install.packages("RColorBrewer")
    install.packages("data.table")
    install.packages("RLumShiny")  
    # try http:// if https:// URLs are not supported   
    source("https://bioconductor.org/biocLite.R")  
    biocLite("GenomicRanges")

    Step 3: Start the app

    Start an R session using RStudio and run these lines:

    shiny::runGitHub("shinyCircos", "venyao")  

    This command will download the code of shinyCircos from GitHub to a temporary directory of your computer and then launch the shinyCircos app in the web browser. Once the web browser was closed, the downloaded code of shinyCircos would be deleted from your computer. Next time when you run this command in RStudio, it will download the source code of shinyCircos from GitHub to a temporary directory again. This process is frustrating since it takes some time to download the code of shinyCircos from GitHub.

    Users are suggested to download the source code of shinyCircos from GitHub to a fixed directory of your computer, such as ‘E:\apps’ on Windows. Following the procedure illustrated in the following figure, a zip file named ‘shinyCircos-master.zip’ would be downloaded to the disk of your computer. Move this file to ‘E:\apps’ and unzip this file. Then a directory named ‘shinyCircos-master’ would be generated in ‘E:\apps’. The scripts ‘server.R’ and ‘ui.R’ could be found in ‘E:\apps\shinyCircos-master’.



    Then you can start the shinyCircos app by running these lines in RStudio.

    library(shiny)
    runApp("E:/apps/shinyCircos-master", launch.browser = TRUE)

    Deploy shinyCircos on local or web Linux server

    Step 1: Install R

    Please check CRAN (https://cran.r-project.org/) for the installation of R.

    Step 2: Install the R Shiny package and other packages required by shinyCircos

    Start an R session and run these lines in R:

    install.packages("shiny")  
    install.packages("circlize")  
    install.packages("RColorBrewer")
    install.packages("data.table")
    install.packages("RLumShiny")  
    ## try http:// if https:// URLs are not supported  
    source("https://bioconductor.org/biocLite.R")  
    biocLite("GenomicRanges")  

    For more information, please check the following pages:
    https://cran.r-project.org/web/packages/shiny/index.html
    https://github.com/rstudio/shiny
    https://shiny.rstudio.com/

    Step 3: Install Shiny-Server

    Please check the following pages for the installation of shiny-server.
    https://www.rstudio.com/products/shiny/download-server/
    https://github.com/rstudio/shiny-server/wiki/Building-Shiny-Server-from-Source

    Step 4: Upload files of shinyCircos

    Put the directory containing the code and data of shinyCircos to /srv/shiny-server.

    Step 5: Configure shiny server (/etc/shiny-server/shiny-server.conf)

    # Define the user to spawn R Shiny processes
    run_as shiny;
    
    # Define a top-level server which will listen on a port
    server {  
      # Use port 3838  
      listen 3838;  
      # Define the location available at the base URL  
      location /shinycircos {  
        # Directory containing the code and data of shinyCircos  
        app_dir /srv/shiny-server/shinyCircos;  
        # Directory to store the log files  
        log_dir /var/log/shiny-server;  
      }  
    }  

    Step 6: Change the owner of the shinyCircos directory

    $ chown -R shiny /srv/shiny-server/shinyCircos  

    Step 7: Start Shiny-Server

    $ start shiny-server  

    Now, the shinyCircos app is available at http://IPAddressOfTheServer:3838/shinycircos/.