Closed kcamnairb closed 7 months ago
I think I can verify that there might be a bug. I saw our shinyapps.io demos were using an older version, and when i updated them to the latest version, it had a javascript error that caused it to crash (so just blank screen)
will look into this!
if you want to try installing from github
devtools::install_github("GMOD/JBrowseR")
then it will get the latest master branch build and I believe it will have a bugfix for this!
I installed the master branch, but unfortunately I still get the blank screen when I include the text_index option.
hmmm....are you able to look at your "devtools" in your browser to see if there is an error message?
I am testing the following workflow
run "devtools::install_github("GMOD/JBrowseR")"
then clone https://github.com/GMOD/JBrowseR/
then "cd example_apps/basic_usage_with_text_index"
then "Rscript app.R"
I can try to release an official version with the fix I made earlier in case that helps, but it is a bit laborious submitting to CRAN so if what you are seeing is a different bug it would be great to find it before CRAN release :)
It works fine running Rscript app.R in example_apps/basic_usage_with_text_index with the latest master branch. When I run my code with the search index it gives this error in the developer tools console:
react-dom.min.js:121 SyntaxError: Expected ',' or '}' after property value in JSON at position 61 (line 1 column 62)
at JSON.parse (<anonymous>)
at JBrowseR.js:2:5932769
at Array.map (<anonymous>)
at View (JBrowseR.js:2:5931774)
at of (react-dom.min.js:109:301)
at Rk (react-dom.min.js:250:214)
at Si (react-dom.min.js:195:185)
at Pk (react-dom.min.js:195:116)
at Nd (react-dom.min.js:194:492)
at Mi (react-dom.min.js:189:179)
wf @ react-dom.min.js:121
c.callback @ react-dom.min.js:121
Fh @ react-dom.min.js:92
Ki @ react-dom.min.js:180
Ii @ react-dom.min.js:179
Ik @ react-dom.min.js:178
Sk @ react-dom.min.js:197
yb @ react-dom.min.js:196
Mi @ react-dom.min.js:189
db @ react-dom.min.js:79
zb @ react-dom.min.js:190
$k @ react-dom.min.js:213
Wd @ react-dom.min.js:213
Q.render @ react-dom.min.js:266
renderValue @ widget.js:96
renderValue @ htmlwidgets.js:886
shinyBinding.renderValue @ htmlwidgets.js:541
value @ outputBinding.ts:48
delegator.<computed> @ htmlwidgets.js:112
value @ outputAdapter.ts:38
value @ shinyapp.ts:559
(anonymous) @ shinyapp.ts:736
value @ shinyapp.ts:717
value @ shinyapp.ts:700
i.onmessage @ shinyapp.ts:350
_conn.onmessage @ shiny-server-client.min.js:1
MultiplexClient._conn.onmessage @ shiny-server-client.min.js:1
BufferedResendConnection._handleMessage @ shiny-server-client.min.js:1
RobustConnection._handleMessage @ shiny-server-client.min.js:1
conn.<computed> @ shiny-server-client.min.js:1
r.dispatchEvent @ eventtarget.js:51
(anonymous) @ main.js:282
w._transportMessage @ main.js:280
i.emit @ emitter.js:50
ws.onmessage @ websocket.js:35
react-dom.min.js:79 Uncaught SyntaxError: Expected ',' or '}' after property value in JSON at position 61 (line 1 column 62)
at JSON.parse (<anonymous>)
at JBrowseR.js:2:5932769
at Array.map (<anonymous>)
at View (JBrowseR.js:2:5931774)
at of (react-dom.min.js:109:301)
at Rk (react-dom.min.js:250:214)
at Si (react-dom.min.js:195:185)
at Pk (react-dom.min.js:195:116)
at Nd (react-dom.min.js:194:492)
at Mi (react-dom.min.js:189:179)
Does is look like something is wrong with my search index.? I tried a couple different ways of creating the index, one with jbrowse text-index --file Aspergillus_flavus.JCVI-afl1-v2.0.58_sorted_nosup.gff3.gz --out Aspergillus_flavus.JCVI-afl1-v2.0.58_sorted_nosup.gff3.gz
. The other method I tried was to create a config.json and run jbrowse text-index --out trix
. Are these the recommended ways to create a text index?
i believe that it can be fixed like this
JBrowseR("View",
assembly = assembly,
tracks = tracks,
defaultSession = default_session,
theme = theme("#2596be", "#2596be", "#2596be", "#2596be"),
location = "EQ963473:33515..37806",
text_index = text_index(
"http://127.0.0.1:5000/trix/Aspergillus_flavus.ix",
"http://127.0.0.1:5000/trix/Aspergillus_flavus.ixx",
"http://127.0.0.1:5000/trix/Aspergillus_flavus_meta.json",
"Aspergillus_flavus"
)
)
so, instead of the variable named "assembly" for that fourth argument, pass the assembly name as a string. this is autocomputed from the file name that was supplied initially, so "Aspergillus_flavus" i believe works
using that will solve the problem you saw i believe
I will keep this open. there is a potential to accept the code case you described, and improve the API potentially!
Colin,
I've still been struggling to get the search index working. I tried to set up a reproducible example that includes a bash script to download the files and index them, and then my R code that I used. None of the gene names are searchable through the text box using the JBrowseR
function, but when I use these same exact files with JBrowse2 I can search the gene names just fine. For example, typeing "F9C" brings up a list of gene names in JBrowse2 but nothing in JBrowseR. My JBrowse2 version is @jbrowse/cli/2.11.0 linux-x64 node-v16.13.0 and JBrowseR is JBrowseR_0.10.2. I've tried it on both Windows 10 and Ubuntu 20.04. If you have a chance to take a look at this, I'd greatly appreciate it.
download_script:
#!/bin/bash
wget https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/009/017/415/GCA_009017415.1_ASM901741v1/GCA_009017415.1_ASM901741v1_genomic.fna.gz
wget https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/009/017/415/GCA_009017415.1_ASM901741v1/GCA_009017415.1_ASM901741v1_genomic.gff.gz
gunzip GCA_009017415.1_ASM901741v1_genomic.fna.gz
gunzip GCA_009017415.1_ASM901741v1_genomic.gff.gz
jbrowse sort-gff GCA_009017415.1_ASM901741v1_genomic.gff | bgzip > GCA_009017415.1_ASM901741v1_genomic.gff.gz
tabix GCA_009017415.1_ASM901741v1_genomic.gff.gz
samtools faidx GCA_009017415.1_ASM901741v1_genomic.fna
jbrowse add-assembly GCA_009017415.1_ASM901741v1_genomic.fna --load inPlace
jbrowse add-track GCA_009017415.1_ASM901741v1_genomic.gff.gz --load inPlace --assemblyNames GCA_009017415.1_ASM901741v1_genomic.fna
jbrowse text-index
JBrowseR:
library(JBrowseR)
setwd("test")
data_server = serve_data(".", port=5011)
assembly = assembly(
"http://127.0.0.1:5011/GCA_009017415.1_ASM901741v1_genomic.fna",
bgzip = FALSE
)
annotations_track = track_feature(
"http://127.0.0.1:5011/GCA_009017415.1_ASM901741v1_genomic.gff.gz",
assembly
)
tracks = tracks(annotations_track)
default_session = default_session(
assembly,
c(annotations_track)
)
JBrowseR("View",
assembly = assembly,
tracks = tracks,
defaultSession = default_session,
text_index = text_index("http://127.0.0.1:5011/trix/GCA_009017415.1_ASM901741v1_genomic.fna.ix",
"http://127.0.0.1:5011/trix/GCA_009017415.1_ASM901741v1_genomic.fna.ixx",
"http://127.0.0.1:5011/trix/GCA_009017415.1_ASM901741v1_genomic.fna_meta.json",
"GCA_009017415.1_ASM901741v1_genomic.fna"),
location = "CP044620.1:5,082,369..5,101,183"
)
thanks for posting this with the reproducible script, I think I can confirm the issue. I'll check into it!
@kcamnairb the error I believe is fixed by changing the 'assembly name' for the text_index call in your code. fixed code
library("JBrowseR")
data_server <- serve_data(".", port = 5020)
assembly <- assembly(
"http://127.0.0.1:5020/GCA_009017415.1_ASM901741v1_genomic.fna",
bgzip = FALSE
)
annotations_track <- track_feature(
"http://127.0.0.1:5020/GCA_009017415.1_ASM901741v1_genomic.gff.gz",
assembly
)
tracks <- tracks(annotations_track)
default_session <- default_session(
assembly,
c(annotations_track)
)
JBrowseR("View",
assembly = assembly,
tracks = tracks,
defaultSession = default_session,
text_index = text_index(
"http://127.0.0.1:5020/trix/GCA_009017415.1_ASM901741v1_genomic.fna.ix",
"http://127.0.0.1:5020/trix/GCA_009017415.1_ASM901741v1_genomic.fna.ixx",
"http://127.0.0.1:5020/trix/GCA_009017415.1_ASM901741v1_genomic.fna_meta.json",
"GCA_009017415"
),
location = "CP044620.1:5,082,369..5,101,183"
)
I determined the new assembly name by going to the "Return to import form" and selecting the auto-generated name there. I believe the auto-generated assembly name GCA_009017415 was calculated by splitting the file name by "." and selecting the "first value" with was GCA_009017415 (of the file name GCA_009017415.1_ASM901741v1_genomic.fna)
That works! Thanks you so much.
Hi, thanks for this excellent software. I have a genome browser working with JBrowseR but when I add the text_index option to the JBrowseR function it just outputs a white screen. Here is my code:
and here are the first few lines of my indexes :
and here is my JSON metadata file:
Do you see anything wrong with these files, or could you tell me what the proper way is to generate a search index for a single gff3 track? Thanks, Brian