Hamond
Hamond is an implementation of speedup DIAMOND in parallel by using Apache Hadoop. It has some advantages.
- It has high failure tolerance, availability and scalability
- It's faster than single PC DIAMOND in dealing with large size genomes
- It accepts all DIAMOND alignment options
- It can run either on an in-house Hadoop cluster or on Amazon Web Service
DIAMOND is an alignment tool:
DIAMOND is a BLAST-compatible local aligner for mapping protein and translated DNA query sequences against a protein reference database (BLASTP and BLASTX alignment mode). The speedup over BLAST is up to 20,000 on short reads at a typical sensitivity of 90-99% relative to BLAST depending on the data and settings.
Hamond is the abbreviation of Hadoop and DIAMOND. :-P
Version
1.0
System requirements
-
In-house cluster
- Linux system
- Hadoop-2.4.0 or higher
- Java 1.7 environment or higher
-
Amazon Web Service
- Elastic Map Reduce service
- An S3 bucket
You need Gulp installed globally:
$ npm i -g gulp
$ git clone [git-repo-url] dillinger
$ cd dillinger
$ npm i -d
$ NODE_ENV=production node app
Plugins
Dillinger is currently extended with the following plugins
- Dropbox
- Github
- Google Drive
- OneDrive
Readmes, how to use them in your own application can be found here:
- [plugins/dropbox/README.md] PlDb
- [plugins/github/README.md] PlGh
- [plugins/googledrive/README.md] PlGd
- [plugins/onedrive/README.md] PlOd
Development
Want to contribute? Great!
Dillinger uses Gulp + Webpack for fast developing. Make a change in your file and instantanously see your updates!
Open your favorite Terminal and run these commands.
First Tab:
$ node app
Second Tab:
$ gulp watch
(optional) Third:
$ karma start
Docker
Dillinger is very easy to install and deploy in a Docker container.
By default, the Docker will expose port 80, so change this within the Dockerfile if necessary. When ready, simply use the Dockerfile to build the image.
cd dillinger
docker build -t <youruser>/dillinger:latest .
This will create the dillinger image and pull in the necessary dependencies. Once done, run the Docker and map the port to whatever you wish on your host. In this example, we simply map port 80 of the host to port 80 of the Docker (or whatever port was exposed in the Dockerfile):
docker run -d -p 80:80 --restart="always" <youruser>/dillinger:latest
Verify the deployment by navigating to your server address in your preferred browser.
N|Solid and NGINX
More details coming soon.
docker-compose.yml
Change the path for the nginx conf mounting path to your full path, not mine!
Todos
- Write Tests
- Rethink Github Save
- Add Code Comments
- Add Night Mode
License
MIT
Free Software, Hell Yeah!