2. Installation & Analysis Setup

Brieflow and Brieflow Analysis are designed to work together to analyze optical pooled screens. Follow these steps to get set up for a screen analysis!

Developer Workflow

If you are contributing new features or fixes back to the core Brieflow codebase, follow the standard workflow above with these key differences:

  1. Fork Brieflow first: Create a fork of brieflow as described here.

  2. Use the optional fork setup in step 2.1 of Brieflow Setup to point the submodule to your fork before initializing.

  3. Configure the remote repository for your fork (more info here):

    # Navigate to brieflow directory
    cd brieflow
    
    # Set remote upstream repo
    git remote add upstream https://github.com/cheeseman-lab/brieflow.git
    
    # Check origin and upstream repos
    git remote -v
    # Confirm you see the below output
    > origin    https://github.com/YOUR-USERNAME/brieflow.git (fetch)
    > origin    https://github.com/YOUR-USERNAME/brieflow.git (push)
    > upstream  https://github.com/cheeseman-lab/brieflow.git (fetch)
    > upstream  https://github.com/cheeseman-lab/brieflow.git (push)
    

    Follow the GitHub documentation to sync changes between your fork and cheeseman-lab/brieflow (e.g., to pull a new branch).

  4. Create feature branches inside the brieflow submodule (not in the top-level analysis repo) for your changes.

  5. Contribute changes back: Track changes to computational processing in a new branch on your fork. Contribute these changes to cheeseman-lab/brieflow with a pull request. See GitHub’s documentation for contributing to a project and Brieflow’s development guide for more info.

Note: We highly recommend reading the GitHub documentation for explanation of forks to understand how your fork of brieflow syncs with the cheeseman-lab brieflow. From the documentation:

A fork is a new repository that shares code and visibility settings with the original “upstream” repository. Forks are often used to iterate on ideas or changes before they are proposed back to the upstream repository, such as in open source projects or when a user does not have write access to the upstream repository. For more information, see Working with forks.

Full contribution details are in 4. Development & Contributing.