{"id":13703637,"url":"https://github.com/SeqWare/seqware","last_synced_at":"2025-05-05T07:31:42.551Z","repository":{"id":3260262,"uuid":"4298816","full_name":"SeqWare/seqware","owner":"SeqWare","description":"This is the SeqWare Project's main repo.","archived":false,"fork":false,"pushed_at":"2018-07-09T21:19:47.000Z","size":26902,"stargazers_count":27,"open_issues_count":5,"forks_count":17,"subscribers_count":26,"default_branch":"develop","last_synced_at":"2024-08-03T21:03:54.679Z","etag":null,"topics":["bioinformatics","java","ngs"],"latest_commit_sha":null,"homepage":"http://seqware.io/","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SeqWare.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2012-05-11T15:51:55.000Z","updated_at":"2024-06-03T09:21:04.000Z","dependencies_parsed_at":"2022-08-02T13:30:55.725Z","dependency_job_id":null,"html_url":"https://github.com/SeqWare/seqware","commit_stats":null,"previous_names":[],"tags_count":74,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeqWare%2Fseqware","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeqWare%2Fseqware/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeqWare%2Fseqware/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeqWare%2Fseqware/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SeqWare","download_url":"https://codeload.github.com/SeqWare/seqware/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224431247,"owners_count":17310071,"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","java","ngs"],"created_at":"2024-08-02T21:00:58.166Z","updated_at":"2024-11-13T10:31:01.900Z","avatar_url":"https://github.com/SeqWare.png","language":"Java","funding_links":[],"categories":["Next Generation Sequencing"],"sub_categories":["Workflow Managers"],"readme":"[![Build Status](https://travis-ci.org/SeqWare/seqware.svg?branch=develop)](https://travis-ci.org/SeqWare/seqware)\n[![Join the chat at https://gitter.im/SeqWare/seqware](https://badges.gitter.im/SeqWare/seqware.svg)](https://gitter.im/SeqWare/seqware?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge\u0026utm_content=badge)\n[![Coverity Scan](https://img.shields.io/coverity/scan/9681.svg?maxAge=2592000)](https://scan.coverity.com/projects/seqware-seqware)\n\n[![DOI](https://zenodo.org/badge/doi/10.5281/zenodo.33952.svg)](http://dx.doi.org/10.5281/zenodo.33952)\n\n\n## Introduction \n\nThis README is just a quick overview of building SeqWare. See our\n[project homepage](http://seqware.github.com) for much more documentation.\n\nThis is top level of the [SeqWare Project](http://seqware.github.com).\nThis contains the 6 major components of the SeqWare project along with\ndocumentation and testing:\n\n* seqware-meta-db\n* seqware-webservice\n* seqware-admin-webservice\n* seqware-portal\n* seqware-pipeline\n* seqware-queryengine\n* seqware-common\n* the http://seqware.github.com website and manual\n* seqware-ext-testing\n* seqware-ext-admin-testing\n\nThe seqware-common sub-project provides a location for common code\nand most of the other sub-projects have this as a dependency.\n\n## Prerequisites \n\n###A Recent Linux Distribution\n\nThis pretty much goes without saying but the SeqWare project is targeted at\nLinux.  You may be able to compile and use the software on MacOS X but, in all\nhonesty, we recommend you use a recent Linux distribution such as Debian\n(Ubuntu, Linux Mint, etc) or RedHat (RedHat Enterprise, Fedora, etc).  This\nsoftware, although written in Java mostly, was never intended to work on\nWindows. If you need to use Windows for development or deployment we recommend\nyou simply use our VirtualBox VM for both activities, see our extensive documentation\non http://seqware.github.com for more information. You can also use this same\napproach on MacOS (or even another version of Linux).\n\n###Java\n\nSeqWare requires Oracle JDK 1.8 or greater, we primarily write and test with JDK 1.8.x.\nAn example of instructions on how to update your Linux installation can be found [here](https://ccp.cloudera.com/display/CDH4DOC/Before+You+Install+CDH4+on+a+Single+Node#BeforeYouInstallCDH4onaSingleNode-InstalltheOracleJavaDevelopmentKit). You will need to use the method appropriate to your distribution to install this.\n\n## Building \n\n### Getting the Source Code \n\nOur source code is available from [GitHub](https://github.com/SeqWare/seqware) or the \"Fork me on GitHub\" banner at the upper right of our website\n\nTo get a copy of of our source code you will first need to install Git (\u003ccode\u003esudo apt-get install git\u003c/code\u003e in Ubuntu) and then clone our repository.\n\n\u003cpre title=\"Cloning the git repository\"\u003e\n\u003cspan class=\"prompt\"\u003e~$\u003c/span\u003e \u003ckbd\u003egit clone git://github.com/SeqWare/seqware.git\u003c/kbd\u003e\nCloning into 'seqware'...\nremote: Counting objects: 8984, done.\nremote: Compressing objects: 100% (2908/2908), done.\nremote: Total 8984 (delta 4308), reused 8940 (delta 4265)\nReceiving objects: 100% (8984/8984), 33.57 MiB | 392 KiB/s, done.\nResolving deltas: 100% (4308/4308), done.\n\u003c/pre\u003e\n\nBy default, this will land you on the default branch. You will want to check-out the latest release. \n\nFor example:\n\n\t~$ cd seqware_github/\n\t~/seqware_github$ git checkout 0.13.6.5\n\tHEAD is now at f8698e9... Merge branch 'hotfix/0.13.6.5'\n\n### Building and Automated Testing \n\nWe're moving to Maven for our builds, this is currently how\nyou build without running any tests in the trunk directory:\n\n    mvn clean install -DskipTests\n\nMaven now runs unit tests as follows (unit tests in the SeqWare context are quick tests that do not require the embedded HBase or Tomcat instance):\n\n    mvn clean install  \n\nIn order to run the integration tests on the entire project, please ensure that you have followed the steps in each of the integration testing guides for our sub-projects. This includes [MetaDB](http://seqware.github.com/docs/github_readme/3-metadb/) , [Web Service](http://seqware.github.com/docs/github_readme/4-webservice/) , and [Query Engine](http://seqware.github.com/docs/github_readme/2-queryengine/). \n\n**WARNING:  While integration and extended tests are running, launching workflows and workflow status checking MUST not occur.  If you have a cronjob performing these tasks it MUST be disabled prior to integration and extended testing.**\n\nWhen this is complete: \n\n    export MAVEN_OPTS=\"-Xmx1024m -XX:MaxPermSize=512m\" \n(This ensures that enough memory is allocated for integration tests)\n    mvn clean install -DskipITs=false\n(This runs all unit tests and integration tests that only require postgres as a prerequisite)\n    mvn clean install -DskipITs=false -P extITs,embeddedTomcat\n(runs all unit tests and all integration tests including those that require Oozie)\n    mvn clean install -DskipITs=false -P longITs,embeddedTomcat\n(runs all unit tests and just the long integration tests that take longer than can run on Travis-CI)\n\nIn the last case, the extended integration tests profile is used to trigger integration tests that run our command line utilities. \nIn order to point your command-line tools at the web service brought up by the integration tests, you will need to comment out your crontab and modify your SeqWare ~/.seqware/settings to include:\n\n    SW_REST_URL=http://localhost:8889/seqware-webservice\n\nIt is possible to disable our embedded tomcat instance and run against both a remote postgres and Tomcat instance. Set the following variables in your .seqware/settings to override these settings for basic integration tests and extended integration tests respectively:\n\n    BASIC_TEST_DB_HOST=otherserver.ca\n    BASIC_TEST_DB_NAME=test_seqware_meta_db\n    BASIC_TEST_DB_USER=seqware\n    BASIC_TEST_DB_PASSWORD=seqware\n\n    EXTENDED_TEST_DB_HOST=otherserver.ca\n    EXTENDED_TEST_DB_NAME=test_seqware_meta_db\n    EXTENDED_TEST_DB_USER=seqware\n    EXTENDED_TEST_DB_PASSWORD=seqware\n\nThen set your SW\\_REST\\_URL to the web service that uses the above database and invoke the following command. Note that you will need to deploy the seqware-webservice war yourself. \n\n    mvn clean install -DskipITs=false -P 'extITs,!embeddedTomcat'\n\nAlternatively, if you wish to still use an embedded tomcat instance for testing, modify the properties at the beginning of your seqware-webservice/pom.xml to match the above databases and invoke the integration tests with your SW\\_REST\\_URL set to http://localhost:8889/seqware-webservice\n\n    mvn clean install -DskipITs=false -P extITs,embeddedTomcat\n\nYou can also run the integration tests by using a locally installed tomcat instance. Make sure the BASIC_TEST_* and EXTENDED_TEST_* are defined to get this to work:\n\n    mvn clean install -DskipITs=false -P extITs\n\nYou can also build individual components such as the new query engine with: \n\n    cd seqware-queryengine\n    mvn clean install\n\n### Coding Standards\n\nPlease refer to SeqWare's [Coding Standards](https://seqware.github.io/docs/100-coding-standards/). \n\n### Building Our Site\n\nIn order to publish to seqware.io , checkout our current master and publish our site:\n\n    git checkout master \n    mvn site-deploy\n\nThen you would look at the site at: http://seqware.io\n\nIn order to publish our docs leading up to 1.1.x , checkout from develop and publish:\n\n    git checkout develop \n    mvn site-deploy\n\nThen you would look at the site at: http://seqware.github.io/unstable.seqware.io/\n\n###Problems with Maven\n\nSometimes we run into problems when building, strange missing dependency issues\nand broken packages. A lot of the time this is an issue with Maven, try\ndeleting your ~/.m2 directory and running the build process again.\n\n## Citations\n\nBrowse DOI codes for SeqWare and related software for software engineering at OICR at [Software Engineering at Zenodo](https://zenodo.org/collection/user-softeng-at-oicr)\n\n\n## Installing\n\nSee our [Installation Guide](http://seqware.github.com/docs/2-installation/) for detailed installation instructions\nincluding links to a pre-configured virtual machine that can be used for\ntesting, development, and deployment.\n\n## seqware-docker\nThis organization as a whole also documents the various docker distributions used by the SeqWare and Pancancer projects.\nPrerequisite containers can be resolved from Docker Hub which also runs continuous integration (except for seqware\\_full which does not work in the docker hub environment). \n\nInstall Docker using the following script. This will automatically setup AUFS which is recommended for performance reasons. \n\n        curl -sSL https://get.docker.com/ | sudo sh\n        sudo usermod -aG docker ubuntu\n\nWhen using Ubuntu, we recommend 14.04. \nAfter setting up, remember to exit your shell and log back in to refresh your environment.\n\nCurrently, most of these containers (including all of the SeqWare ones) are available and served as [automated builds](https://registry.hub.docker.com/repos/seqware/) on Docker Hub. We are also working on [quay.io](https://quay.io/repository/?namespace=seqware). \n\n### Java\n\nYou will need Java 7 to extract the workflow .zip bundles.  Please install that version for your system.\n\n### SeqWare WhiteStar \n\nThis version of SeqWare uses the WhiteStar workflow engine to quickly run workflows without any dependencies on SGE, Oozie, Hadoop, or even the SeqWare webservice. These containers start quickly and with no running services or overhead. The trade-off is that running workflows is less robust and access to features such as throttling based on memory (SGE), retrying workflows (Oozie), or querying metadata (webservice) are not available.\n\nGo to [seqware\\_whitestar](https://github.com/SeqWare/seqware_whitestar) for setup instructions\n\n#### Documentation Builder \n\nPre-requisite: SeqWare WhiteStar\n\nUsed internally for the SeqWare project to build documentation via jenkins when changes are pushed to GitHub. \n\nGo to [documentation\\_builder](https://github.com/SeqWare/documentation_builder) for setup instructions\n\n### SeqWare Oozie-SGE \n\nThis version of SeqWare uses the Oozie-SGE workflow engine to run workflows. This requires SGE, Oozie, Hadoop, and the SeqWare webservice and thus containers are started with a script which spins up these services. These containers should be functionally very similar to full VMs spun up using [Bindle](https://github.com/CloudBindle/Bindle) and ansible-playbooks from [seqware-bag](https://github.com/SeqWare/seqware-bag).\n\nGo to [seqware\\_full](https://github.com/SeqWare/seqware_full) for setup instructions\n\n\n## Copyright\n\nCopyright 2008-2015 Brian D O'Connor, OICR, UNC, and Nimbus Informatics, LLC\n\n## Contributors\n\nPlease see our [partners and contributors](http://seqware.github.com/partners/)\n\n## License\n\nSeqWare is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nSeqWare is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with SeqWare.  If not, see \u003chttp://www.gnu.org/licenses/\u003e.\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FSeqWare%2Fseqware","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FSeqWare%2Fseqware","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FSeqWare%2Fseqware/lists"}