{"id":22281946,"url":"https://github.com/wurmlab/sequenceserver","last_synced_at":"2025-05-15T22:08:52.592Z","repository":{"id":750370,"uuid":"953600","full_name":"wurmlab/sequenceserver","owner":"wurmlab","description":"Intuitive graphical web interface for running BLAST bioinformatics tool (i.e. have your own custom NCBI BLAST site!)","archived":false,"fork":false,"pushed_at":"2025-01-05T13:42:01.000Z","size":129587,"stargazers_count":282,"open_issues_count":93,"forks_count":113,"subscribers_count":19,"default_branch":"master","last_synced_at":"2025-04-11T23:16:48.788Z","etag":null,"topics":["bioinformatics","blast","genomics","genomics-visualization","hacktoberfest","javascript","ruby","sequence-alignment","sequencing","visualization"],"latest_commit_sha":null,"homepage":"https://sequenceserver.com","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wurmlab.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"custom":["https://donorbox.org/seqserv"]}},"created_at":"2010-10-01T06:19:41.000Z","updated_at":"2025-04-11T14:51:14.000Z","dependencies_parsed_at":"2023-10-10T16:45:47.067Z","dependency_job_id":"ef683a51-7d60-48c8-9e33-7ebb95e040a1","html_url":"https://github.com/wurmlab/sequenceserver","commit_stats":{"total_commits":2080,"total_committers":47,"mean_commits":"44.255319148936174","dds":0.4110576923076923,"last_synced_commit":"588a7aec39f29dcb085a140fc92e586202d455ab"},"previous_names":["yannickwurm/sequenceserver"],"tags_count":61,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wurmlab%2Fsequenceserver","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wurmlab%2Fsequenceserver/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wurmlab%2Fsequenceserver/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wurmlab%2Fsequenceserver/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wurmlab","download_url":"https://codeload.github.com/wurmlab/sequenceserver/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248492885,"owners_count":21113163,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bioinformatics","blast","genomics","genomics-visualization","hacktoberfest","javascript","ruby","sequence-alignment","sequencing","visualization"],"created_at":"2024-12-03T16:23:46.512Z","updated_at":"2025-04-11T23:17:13.045Z","avatar_url":"https://github.com/wurmlab.png","language":"JavaScript","readme":"[![gem version](https://img.shields.io/badge/version-3.0-green.svg)](http://rubygems.org/gems/sequenceserver)\n\u003c!--[![total downloads](http://ruby-gem-downloads-badge.herokuapp.com/sequenceserver?type=total\u0026color=brightgreen)](http://rubygems.org/gems/sequenceserver) --\u003e\n[![coverage](https://codeclimate.com/github/wurmlab/sequenceserver/badges/coverage.svg)](https://codeclimate.com/github/wurmlab/sequenceserver)\n[![gitter chat](https://badges.gitter.im/gitterHQ/gitter.png)](https://gitter.im/wurmlab/sequenceserver)\n\n\n\u003c!--[![code climate](https://codeclimate.com/github/wurmlab/sequenceserver/badges/gpa.svg)](https://codeclimate.com/github/wurmlab/sequenceserver)--\u003e\n\u003c!--[![browser matrix](https://saucelabs.com/browser-matrix/yeban.svg)](https://saucelabs.com/u/yeban)--\u003e\n\n# SequenceServer - BLAST searching made easy!\n\nSequenceServer lets you rapidly set up a BLAST+ server with an intuitive user interface for personal or group use.\n\nIf you use SequenceServer, please cite our paper: \n[Sequenceserver: A modern graphical user interface for custom BLAST databases. Molecular Biology and Evolution (2019).](https://doi.org/10.1093/molbev/msz185)\n\n\n## Installation\n\nFor installation instructions and how to use SequenceServer please see\nhttps://sequenceserver.com/ - instructions for independently installing open-source sequenceserver are linked from the footer. \n\nIf you want to run SequenceServer directly from source code, please see\n'Develop and contribute' section below.\n\nWe also offer a [hosted cloud blast service](https://sequenceserver.com) for those who prefer fully point-and-click installation and want to avoid the complexities and costs of running a server. Running the cloud service enables us to further support the development of SequenceServer. \n\n## Referral scheme\n\n[Refer friends or colleagues](https://sequenceserver.com/referral-program) to SequenceServer Cloud and earn up to $400 per person who signs up (as of 2023-10; exact terms may change).\n\n## Release notes\n\nNew releases are announced on [GitHub release page](https://github.com/wurmlab/sequenceserver/releases) and on our [Support Page](https://support.sequenceserver.com).\n\n## Reporting issues\n\nPlease report any issues here: https://github.com/wurmlab/sequenceserver/issues or on the [community support forum](https://support.sequenceserver.com)\n\n## Develop and contribute\n\nTo develop and contribute, you will need to run SequenceServer from source (see below).\n\n### Run SequenceServer from source code\n\nYou will need [Ruby](https://www.ruby-lang.org/en/) and [RubyGems](https://rubygems.org/):\n\n    # Install bundler gem to install Ruby dependencies\n    gem install bundler\n\n    # Move to where you downloaded or cloned seqserv\n    cd sequenceserver\n\n    # Use bundler to install Ruby dependencies\n    bundle install\n\n    # Use bundler to run SequenceServer\n    bundle exec bin/sequenceserver\n\nIf you do not plan to develop, you can skip installing development dependencies\nby running `bundle install --without=development`.\n\n### Run SequenceServer from Docker\n\nHaving [installed Docker](https://docs.docker.com/get-docker/), to run SequenceServer locally as a\nDocker container, using the example database from the\n[ncbi-blast+ debian package](https://packages.debian.org/sid/ncbi-blast+):\n\n* Change `from final` at the end of the `Dockerfile` to `from dev`.\n* Build the image with:\n```bash\ndocker build -t sequenceserver .\n```\n* Run a container with...\n```bash\ndocker run --rm -it -p 4567:4567 sequenceserver\n```\n* then select the defaults when prompted.\n\nOtherwise, a database will need to be copied to the `db` volume.\n\n### Making changes to the code\n\nDuring development, you should use `-D` option to run SequenceServer in development mode. In this mode, SequenceServer will log verbosely.\n\n    # Run SequenceServer in development mode\n    bundle exec bin/sequenceserver -D\n\nIf you want to modify and build frontend code, you will additionally need [Node and npm](https://nodejs.org/). You can then run a watch server that will automatically build any changes you make the frontend code:\n\n    # Install frontend dependencies\n    npm install\n\n    # Run watch server to automatically build changes to the frontend code\n    npm run-script watch\n\nAlternatively, you can manually build the frontend code after you have made your changes:\n\n    # Build minified JS and CSS bundles\n    npm run-script build\n\nIf you are using docker, you can build the frontend code and include it in the image by specifying '--target=minify' to the docker build command:\n\n    docker build . -t seqserv-with-customisations --target=minify\n\n## **Testing**\n\n### **Ruby**\n\nWe use RSpec and Capybara for testing. Our test suite covers 87% of the codebase. Tests are run automatically when you open a pull-request (see Getting code merged section below) but it may be desirable sometimes to run a single test, whole file, or all tests locally:\n\nTo run a single test (a.k.a, scenario):\n\n`bundle exec rspec spec/foo_spec.rb -e 'bar'`\n\nTo run all tests in a single file:\n\n`bundle exec rspec spec/foo_spec.rb`\n\nTo run all tests:\n\n`bundle exec rspec`\n\n### **Javascript**\n\nUnit tests for the React frontend are written using React Testing Library and jest. \n\nOne option for installing jest: `npm install --save-dev jest`\n\nTo run a single test :\n\n`npm run test -e \"test name\"`\n\nTo run all tests in a single file:\n\n`npm run test file_name`\n\nTo run all tests:\n\n`npm run test`\n\n\n### Linting\n\nWe use CodeClimate for static code analysis. CodeClimate is run automatically when you open a pull-request (see Getting code merged section below) but it may be desirable sometimes to run it locally.\n\nFor this, first install CodeClimate following the instructions at https://github.com/codeclimate/codeclimate.\n\nOnce CodeClimate is installed, install the required codeclimate 'engines':\n\n    codeclimate engines:install\n\nTo run all the style checkers:\n\n    codeclimate analyze\n\nTo run eslint:\n\n    codeclimate analyze -e eslint\n\nTo run rubocop:\n\n    codeclimate analyze -e rubocop\n\nstylelint is used for CSS:\n\n    codeclimate analyze -e stylelint\n\nThe above commands respect the respective style checker's config files, e.g., .rubocopy.yml for Rubocop and so on.\n\n### GitHub Workflows\n\nTo run workflows locally, ensure [nektos/act](https://github.com/nektos/act) is installed\nas a [GitHub CLI extension](https://github.com/nektos/act#installation-as-github-cli-extension).\n\nThen, for instance, `.github/workflows/test.yml` would be run by:\n\n```\ngh act -j test\n```\n\n[action-validator](https://github.com/mpalmer/action-validator) is claimed as a yaml validator for GitHub workflows.\n\n### Getting code merged\n\nPlease open a pull-request on GitHub to get code merged. Our test suite and the CodeClimate static code analysis system will be automatically run on your pull-request. These should pass for your code to be merged. If you want to add a new feature to SequenceServer, please also add tests. In addition, code should be `rubocop` and `eslint` compliant, and hard-wrapped to 80 chars per line.\n\nIf you change frontend code (JavaScript and CSS), please build (i.e., minify and compress) and commit the resulting JS and CSS bundles before opening a pull-request. This is because SequenceServer is run in production mode by the test suite.\n\n## Contact\n\n* Yannick Wurm (PI) - [email](mailto:yannickwurm@gmail.com) | https://wurmlab.com \u0026 https://sequenceserver.com\n* [Mailing list / forum](https://support.sequenceserver.com)\n","funding_links":["https://donorbox.org/seqserv"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwurmlab%2Fsequenceserver","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwurmlab%2Fsequenceserver","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwurmlab%2Fsequenceserver/lists"}