delehef / fusta Goto Github PK
View Code? Open in Web Editor NEWA FUSE filesystem to browse & edit FASTA files
License: Other
A FUSE filesystem to browse & edit FASTA files
License: Other
Hi there,
as an idea: Would it make sense to use the file name without extension as the default name for the mount point, instead of fusta
? That would make it easier to work with multiple fusta-mounted files at the same time.
Cheers
Lucas
Hi again,
it might be beneficial to improve robustness of fusta towards user errors. Arguably, this could just be left as user error, but nonetheless it might be nice to improve on that, for more user friendliness.
For example, FASTA files containing header names with characters that are not valid in a file system (/
, \
, ?
etc) will mount and give infos
and labels
files with the correct content, but otherwise be silently empty.
Similarly, when editing sequences to contain invalid FASTA content such as editing a seqs file to contain multiple new sequences, this is just silently written to the file when unmounting. That might even be misused as a "feature" to add sequences without going through the append
directly - not sure how that messes with the internal file mapping while being mounted.
It might be good to at least give warnings for such misuse ;-)
Cheers
Lucas
Hi there,
your readme states that
On most GNU/Linux distributions, FUSE is installed by default. Otherwise, you should install it from your package manager โ note that a reboot might be necessary for the kernel module to be loaded.
However, on Ubuntu 20.04.4 LTS, I first needed
sudo apt-get install fuse3 # might not have been necessary
sudo apt-get install libfuse3-* # installs libfuse3-3 and libfuse3-dev
I thought you might want to add to the readme that one of the libfuse
dependencies might need to be install first. I am not sure which one of the two (libfuse3-3
and libfuse3-dev
) was the one that actually was needed, but after that, I was able to cargo install
fusta.
Cheers, and thanks
Lucas
Hi again,
when opening a file with windows line endings \r\n
, and renaming a sequence, the file after unmounting is broken.
Starting with
>a
GCAC-GTG-T
>b
C-T--AACCC
>c
AT-AACGTAG
and renaming one of the sequences gives me
>a
GCAC-GTG-T>x.seq
b
C-T--AAC>c
>c
AT-AAC
which does not seem right.
Best
Lucas
Hello,
when trying to mount a large FASTA file (~30GB) with mmap, Rust is giving me an OOM panic:
fusta --no-daemon --max-cache 10000 SILVA_123.1_SSURef_Nr99_tax_silva_full_align_trunc.fasta
[INFO] Caching method: Mmap
[INFO] Reading SILVA_123.1_SSURef_Nr99_tax_silva_full_align_trunc.fasta...
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Os { code: 12, kind: OutOfMemory, message: "Cannot allocate memory" }', src/fs.rs:601:34
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
I'm not sure if that can be solved, or is a general limitation of mmap for such large files. Maybe at least the exception could be caught and a suggestion could be printed to use --cache file
instead? It works fine with that option, and is surprisingly fast!
Cheers
Lucas
Hello,
I'm trying to get an understanding of how the seq
directory works - from the documentation, it seem that files in there should be editable, but that is not the case with all text editors. Opening in vim works, but neither nano nor gedit (from the file browser) work, and give me an error that I'm lacking write permissions. Not sure why those fail, but vim works.
Best
Lucas
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.