Git Product home page Git Product logo

reneo's Introduction

reneo logo

Reneo: Unraveling Viral Genomes from Metagenomes

DOI GitHub Conda Code style: black GitHub last commit (by committer) CI CodeQL

Reneo means to unravel or untangle in Latin. Reneo is a software developed to unravel or untangle high-quality genomes from viral communities (including both prokaryotic and eukaryotic viruses) found within metagenomes using assembly graphs. Reneo identifies viral components in the metagenomic assembly using virus orthologous groups from VOGDB, models as flow networks and solves a minimum flow decomposition (MFD) problem to resolve genomic paths. Reneo was motivated based on a bacteriophage recovery tool named Phables, specifically to extend the capabilities of Phables to all viruses.

NEW: Reneo is available on bioconda at https://anaconda.org/bioconda/reneo

Setting up Reneo

Installing Reneo using conda (recommended)

You can install Reneo from bioconda at https://anaconda.org/bioconda/reneo. Make sure you have conda installed.

# create conda environment and install reneo
conda create -n reneo -c conda-forge -c anaconda -c bioconda reneo

# activate environment
conda activate reneo

Now you can go to Setting up Gurobi to configure Gurobi.

Setting up Gurobi

The MFD implementation uses the linear programming solver Gurobi. The reneo conda environment does not include Gurobi. You have to install Gurobi using the following command.

conda install -c gurobi gurobi

To handle large models without any model size limitations, once you have installed Gurobi, you have to activate the (academic) license and add the key using the following command. You only have to do this once.

grbgetkey <KEY>

You can refer to further instructions at https://www.gurobi.com/academia/academic-program-and-licenses/.

Quick Start Guide

Setting up databases

reneo install

Testing the setup

After setting up, run the following command to print out the Reneo help message.

reneo --help

You can simulate a Reneo run using the following command.

reneo simulate

You can also run Reneo with the test dataset provided.

reneo test

Running Reneo

# Run Reneo
# locally: using 8 threads (default is 1 thread)
reneo run --input assembly_graph.gfa --reads fastq/ --threads 8

Issues and Questions

Reneo is still under testing. Please report any issues and suggestions under Reneo Issues.

Acknowledgement

Reneo uses the Gurobi implementation of MFD-ILP and code snippets from Phables. The Reneo logo was designed by Laura Inglis.

Citation

The Reneo manuscript is currently in preparation. In the meantime, please cite Reneo as

V Mallawaarachchi, MJ Roach, P Decewicz, B Papudeshi, SR Grigson, G Bouras, LK Inglis, SK Giles, EA Dinsdale and RA Edwards (2023). Reneo: Unraveling Viral Genomes from Metagenomes. DOI: 10.5281/zenodo.8263066

reneo's People

Contributors

beardymcjohnface avatar laura-rc avatar vini2 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

reneo's Issues

VOG database install fails

Installing the VOG database fails

mkdir: cannot create directory ‘/tmp/10353939/mamba-build/opt/mamba/envs/reneo/lib/python3.10/site-packages/reneo/workflow/../../databases/VOG’: File exists
[Sat Mar 30 17:51:49 2024]
Error in rule vog_db_download:
    jobid: 2
    output: /tmp/10353939/mamba-build/opt/mamba/envs/reneo/lib/python3.10/site-packages/reneo/workflow/../../databases/AllVOG.hmm
    conda-env: /tmp/10353939/mamba-build/opt/mamba/envs/reneo/lib/python3.10/site-packages/reneo/workflow/conda/233e73b39830a98b818f43b5ca8b38d3_
    shell:
        
            curl -Lo /tmp/10353939/mamba-build/opt/mamba/envs/reneo/lib/python3.10/site-packages/reneo/workflow/../../databases/vog.hmm.tar.gz http://fileshare.csb.univie.ac.at/vog/latest/vog.hmm.tar.gz
            mkdir /tmp/10353939/mamba-build/opt/mamba/envs/reneo/lib/python3.10/site-packages/reneo/workflow/../../databases/VOG
            tar -xf /tmp/10353939/mamba-build/opt/mamba/envs/reneo/lib/python3.10/site-packages/reneo/workflow/../../databases/vog.hmm.tar.gz -C /tmp/10353939/mamba-build/opt/mamba/envs/reneo/lib/python3.10/site-packages/reneo/workflow/../../databases/VOG
            cat /tmp/10353939/mamba-build/opt/mamba/envs/reneo/lib/python3.10/site-packages/reneo/workflow/../../databases/VOG/* > /tmp/10353939/mamba-build/opt/mamba/envs/reneo/lib/python3.10/site-packages/reneo/workflow/../../databases/AllVOG.hmm
            rm -rf /tmp/10353939/mamba-build/opt/mamba/envs/reneo/lib/python3.10/site-packages/reneo/workflow/../../databases/vog.hmm.tar.gz
            rm -rf /tmp/10353939/mamba-build/opt/mamba/envs/reneo/lib/python3.10/site-packages/reneo/workflow/../../databases/VOG
        
        (one of the commands exited with non-zero exit code; note that snakemake uses bash strict mode!)

Shutting down, this might take some time.
Exiting because a job execution failed. Look above for error message


ERROR: Databases were not setup.

(Note, I have a funky install location, so I've truncated it to start at python3.10)

The HMMs are downloaded and extracted to python3.10/site-packages/databases/VOG/hmm/:

$ ls python3.10/site-packages/databases/VOG/hmm/ | wc -l
59207

The cat command is failing:

first, the extraction puts everything into VOG/hmm and then, you can't cat VOG/hmm/* as there are too many files:

This is what reneo is trying to do:

cat python3.10/site-packages/reneo/workflow/../../databases/VOG/* > python3.10/site-packages/reneo/workflow/../../databases/AllVOG.hmm
cat: python3.10/site-packages/reneo/workflow/../../databases/VOG/hmm: Is a directory

This doesn't work

cat python3.10/site-packages/reneo/workflow/../../databases/VOG/hmm/* > python3.10/site-packages/reneo/workflow/../../databases/AllVOG.hmm
bash: /usr/bin/cat: Argument list too long

but this does:

find python3.10/site-packages/reneo/workflow/../../databases/VOG/ -type f -exec cat {} + > python3.10/site-packages/reneo/workflow/../../databases/AllVOG.hmm

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.