Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Opening file with .fasta extension makes jbrowse desktop crash #1415

Closed
cmdcolin opened this issue Aug 8, 2019 · 9 comments
Closed

Opening file with .fasta extension makes jbrowse desktop crash #1415

cmdcolin opened this issue Aug 8, 2019 · 9 comments

Comments

@cmdcolin
Copy link
Contributor

cmdcolin commented Aug 8, 2019

The Browser.js checks for the extension of refSeq.url and if it is something like fai it uses it as the refSeq provider. This is pretty ok for fai since it is always fai, but unindexed fasta was added and it only checks for .fa, and crashes on .fasta

It should probably, if properly done, not use extension except as a heuristic (e.g. have refSeq.storeClass and refSeq.url being set) of course the heurstic will be kept for backwards compatibility and convenience though

@cmdcolin
Copy link
Contributor Author

cmdcolin commented Aug 8, 2019

short term workaround is to just rename .fasta to .fa before opening unindexed fasta in client

@cmdcolin
Copy link
Contributor Author

cmdcolin commented Aug 8, 2019

only affects jbrowse desktop

@cmdcolin
Copy link
Contributor Author

cmdcolin commented Aug 8, 2019

reported by @iankorf

@iankorf
Copy link

iankorf commented Aug 8, 2019

OK, so I'm changing all my *.fasta to *.fa, but I actually store as *.gz. New error though: doesn't get past the file load dialog even when the BGZIP file type is recognized properly. This is with a file named as *.fa.gz.

@cmdcolin
Copy link
Contributor Author

cmdcolin commented Aug 8, 2019

With loading a bgzip refseq it requires to put three files, the file.fa.gz, the file.fa.gz.fai (eg. from running samtools faidx file.fa.gz), and the file.fa.gz.gzi (made from using bgzip -i)

It might be possible to give a better error message for when this isn't inputted right

@iankorf
Copy link

iankorf commented Aug 9, 2019

I now have a related problem. I can load a *.gff3 but not a *.gff3.gz. The latter looks like jbrowse is trying to read the *.gff3.gz as json. The error message looks similar to the *.fasta vs *.fa. Is there a better file extension than .gff3? I suppose I could solve all my file reading problems by keeping everything uncompressed, but I'd rather not.

I also have an unrelated problem in that the GFF3 file from TAIR10 has CDS features that reference protein sequences as parents, but those protein sequences are not part of the FASTA file.

"some features reference other features that do not exist in the file or in the same ### scope"

Do I have to remove protein parents from the GFF, add protein sequences to the FASTA, or is there some way for jbrowse to ignore such references?

@cmdcolin
Copy link
Contributor Author

cmdcolin commented Aug 9, 2019

For gff3.gz it actually assumes that it is a bgzip'd gff3 file so it also wants a tabix index. Preparsing bgzip+tabix gff3 is a little intricate but can be done with various gff3 sorting tools and tabix

Also I think we saw this specific issue with TAIR here GMOD/gff-js#4

I suggested perhaps making the GFF3 parser less strict to allow this but there is also a suggested command to help preprocessing at that link (including the gff3 sort)

Also thank you for providing all this feedback...it's very useful to hear about these problems especially related to jbrowse desktop

@cmdcolin
Copy link
Contributor Author

cmdcolin commented Aug 9, 2019

I am not sure if that command addresses the CDS feature with protein parents but let me know if it does or if that seems relevant cc @nathanhaigh

@cmdcolin
Copy link
Contributor Author

Fixed on dev branch, pending release

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants