{"id":37702981,"url":"https://github.com/fertiglab/cogapsdevtools","last_synced_at":"2026-01-16T13:04:12.591Z","repository":{"id":74338992,"uuid":"191442247","full_name":"FertigLab/CogapsDevtools","owner":"FertigLab","description":"Tools useful for developers of CoGAPS","archived":false,"fork":false,"pushed_at":"2019-10-01T04:27:37.000Z","size":39420,"stargazers_count":0,"open_issues_count":1,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-16T04:56:53.491Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/FertigLab.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2019-06-11T20:11:33.000Z","updated_at":"2019-10-01T04:27:39.000Z","dependencies_parsed_at":null,"dependency_job_id":"de476f59-8f11-4236-86d6-1ec7cc59bdef","html_url":"https://github.com/FertigLab/CogapsDevtools","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/FertigLab/CogapsDevtools","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FertigLab%2FCogapsDevtools","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FertigLab%2FCogapsDevtools/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FertigLab%2FCogapsDevtools/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FertigLab%2FCogapsDevtools/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/FertigLab","download_url":"https://codeload.github.com/FertigLab/CogapsDevtools/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FertigLab%2FCogapsDevtools/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28478906,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-16T11:59:17.896Z","status":"ssl_error","status_checked_at":"2026-01-16T11:55:55.838Z","response_time":107,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":[],"created_at":"2026-01-16T13:04:11.859Z","updated_at":"2026-01-16T13:04:12.585Z","avatar_url":"https://github.com/FertigLab.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CoGAPS Developers Guide\n\n# Table of Contents\n\n1. [Devtools Setup](#devtools-setup)\n2. [GitHub](#GitHub)\n    1. [Installing Git](#installing-git)\n    2. [Getting CoGAPS from GitHub](#getting-cogaps-from-github)\n    3. [Installing CoGAPS from Source](#installing-cogaps-from-source)\n    4. [Switching to a Different Branch](#switching-to-a-different-branch)\n3. [Running CoGAPS on MARCC](#running-cogaps-on-marcc)\n4. [Making Changes to CoGAPS](#making-changes-to-cogaps)\n    1. [Creating Your Own Branch](#creating-your-own-branch)\n    2. [Making Changes in Your Branch](#making-changes-in-your-branch)\n    3. [Resolving Merge Conflicts](#resolving-merge-conflicts)\n    4. [Review Process](#review-process)\n    5. [Incrementing the Version](#incrementing-the-version)\n5. [CoGAPS Devtools](#cogaps-devtools)\n    1. [Settin up the Repository](#setting-up-the-repository)\n6. [Coding Style Guide](#coding-style-guide)\n\n# GitHub\n\n## Installing Git\n\nBefore getting CoGAPS from GitHub you need to install Git on your computer. Try running `git --version` to see if it is already installed. If you need to install it follow the instructions [here](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git).\n\n# Devtools Setup\n\n```\ngit clone --recurse-submodules https://github.com/FertigLab/CoGAPS_devtools.git\ncd CoGAPS_devtools/R_Package\ngit checkout master\ncd ../Standalone_CLI\ngit checkout master\ncd src/Rpackage\ngit checkout master\n```\n\n## Getting CoGAPS from GitHub\n\nThe main repository for CoGAPS is located in the FertigLab group on github [here](https://github.com/FertigLab/CoGAPS). In order to clone the repository run `git clone https://github.com/FertigLab/CoGAPS.git`. This will create a folder called `CoGAPS` that contains the package source code and data.\n\n## Installing CoGAPS from Source\n\nNow that you have the source code cloned, you can install it directly by running\n\n```\nR CMD build --no-build-vignettes CoGAPS\nR CMD INSTALL CoGAPS_*.tar.gz\n```\n\n## Switching to a Different Branch\n\nBy default, when you clone the CoGAPS repository you will be on the `master` branch. This branch is kept in sync with the bioconductor development version. If you want to switch to a different version of CoGAPS you need to switch branches. To see what branch you are currently on use `git branch`. To switch to a different branch use `git checkout \u003cbranch-name\u003e`, e.g. to use the internal development version of CoGAPS, run `git checkout develop` to switch to the `develop` branch and install CoGAPS from source. The `develop` branch should always been in stable condition and contains the latest changes and bug fixes.\n\n# Running CoGAPS on MARCC\n\nFirst you need to set up your environment to install R packages locally, instructions [here](https://www.marcc.jhu.edu/getting-started/local-r-packages/). Now you can follow the steps previously outlined for installing packages from source. To use `git` on Marcc run `module load git`.\n\n## Command Line Version\n\nWhen building the command line version of CoGAPS you need to link against the\nboost library. The command `make configure_CLI` handles the configuration of\ncogaps, but on MARCC we need to pass it the location of boost. So instead use,\n\n```\nmake configure_CLI CONFIG_ARGS=--with-boost=/cm/shared/apps/boost/1.66.0/gcc/5.4/openmpi/2.1\n```\n\nIf you see the lines\n\n```\nchecking whether the Boost::Program_Options library is available... yes\nchecking for exit in -lboost_program_options... yes\n``` \n\nThen it has been configured correctly, if you see\n\n```\nchecking for boostlib \u003e= 1.32... configure: We could not detect the boost libraries (version 1.32 or higher). If you have a staged boost library (still not installed) please specify $BOOST_ROOT in your environment and do not give a PATH to --with-boost option.  If you are sure you have boost installed, then check your version number looking in \u003cboost/version.hpp\u003e. See http://randspringer.de/boost for more documentation.\n```\n\nThat means that the configure script can't find the boost libraries and\nsomething has gone wrong.\n\nOnce cogaps is configured correctly, run `make build_CLI` to create the program\n`cogaps` located in the `CLI_build` folder.\n\nIn order to run `cogaps` we need to make sure it can find the boost libraries\nat runtime. This is done with the command,\n\n```\nexport LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/cm/shared/apps/boost/1.66.0/gcc/5.4/openmpi/2.1/lib\n```\n\nIf you don't want to type this every session, add that line to the bottom of your\n`~/.bashrc` file and it will run every time you login.\n\nRun `make example_CLI` to see if it has installed correctly.\n\n# Making Changes to CoGAPS\n\n## Creating Your Own Branch\n\nBefore making a change to CoGAPS, you must set up a separate branch to track your changes. Once your changes are completed then you can open a pull request on github to merge your branch. Any changes should be based off of the develop branch.\n\nTo create a new branch and push it to github:\n\n```\ngit checkout develop\ngit checkout -b \u003cyour-branch-name\u003e\ngit push origin \u003cyour-branch-name\u003e\n```\n\n## Making Changes in Your Branch\n\nUse `git branch` to ensure you are in the correct branch. After making changes to your code use `git status` to see what files have been changed. If you want to commit those changes to your branch use `git add -A` and `git commit -m \"\u003cyour-message\u003e\"`. Now if you use `git status` you will see that your local branch is ahead of the remote branch (github). If you want to sync your local changes with github, first make sure (using `git status`) that all recent changes have been committed, then use `git pull origin \u003cyour-branch-name\u003e` to update your local branch with any changes others have made. If no conflicts are present you are free to push your changes to github with `git push origin \u003cyour-branch-name\u003e`.\n\n## Resolving Merge Conflicts\n\nIf your changes conflict with any changes other have made, then you need to resolve the conflicts in each file and commit the resolution. Git should prompt you with all the file names that have conflicts. Open each one up in a text editor and search for areas like:\n\n```\nnon-conflicting code\n\u003c\u003c\u003c\u003c\u003c\u003c\u003c HEAD\n\"HEAD\" version of conflicting code\n=======\n\"some-branch-name\" version of conflicting code\n\u003e\u003e\u003e\u003e\u003e\u003e\u003e some-branch-name\n```\n\nResolve the conflict by keeping changes from one branch or another, or possibly writing your own merged solution. Once this is done, commit your merged changes with `git add -A` and `git commit -m \"\u003ccommit-message\u003e\"` just as before. You can now run `git push origin \u003cyour-branch-name\u003e`.\n\n## Review Process\n\nOnce your branch is ready to be merged back into develop, follow these steps for verifying the branch is in good shape.\n\n1) Open Pull Request on GitHub (developer)\n2) Verify branch is passing TravisCI (developer)\n3) Run complete package checks on MARCC (reviewer)\n4) Comments about results and code (reviewer)\n5) Commit fixes (developer)\n6) Merge Pull Request (reviewer)\n\n**1) Open Pull Request on GitHub**\n\nThe first step to merge your branch back into develop is to open a pull request. Go to **https://github.com/FertigLab/CoGAPS/tree/your-branch-name** to see the homepage for your branch. Select \"New Pull Request\" next to the branch drop down menu (top left). Make sure the base branch is set to `develop`. From here add any initial comments and select \"Create Pull Request\". This will create a page for your branch under \"Pull Requests\".\n\n**2) Verify branch is passing TravisCI**\n\nIn the Pull Request page for your branch, you should see the result of our automatic package checks. If any of them have failed, click on the status message to see the cause of failure. Before moving on with the review, these checks need to be passing since they reflect the checks that BioConductor runs to see if CoGAPS is fit to stay on the repository.\n\n**6) Commit fixes**\nTo commit any fixes regarding the Pull Request feedback or to get the package tests passing, simply commit your changes to the branch as normal. The Pull Request page will automatically detect any new changes to the branch and re-run the tests.\n\n## Incrementing the version\n\nThe last step after a change has been made is to increment the package version,\nhere's a checklist of the things that need to be done:\n\n1) change version number and date in DESCRIPTION\n2) change version number in README\n3) update Changelog with a description about the new version\n4) (optional - not critical) rebuild configure script to pull in new version\n\n# CoGAPS Devtools\n\nThe devtools repository (FertigLab/CoGAPS_devtools) contains various tools for checking, benchmarking, profiling, etc. that are helpful when developing CoGAPS. Most of these tools are accessed from the top level Makefile, i.e. `make install` will build the package and install it, `make check` will run `R CMD check` and `R CMD BiocCheck` on the pacage, for a full list of Makefile commands use `make help`.\n\n## Setting up the repository\n\n```\ngit clone https://github.com/FertigLab/CoGAPS_devtools.git\nmv CoGAPS_devtools CoGAPS\ncd CoGAPS\ngit clone https://github.com/FertigLab/CoGAPS.git\nmv CoGAPS Repo\n```\n\nThis creates a top-level directory `CoGAPS` with all the development tools and a sub-directory `Repo` the contains the package repository. This configuration is expected for the tools to work.\n\n# Coding Style Guide\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffertiglab%2Fcogapsdevtools","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffertiglab%2Fcogapsdevtools","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffertiglab%2Fcogapsdevtools/lists"}