Git Product home page Git Product logo

fdog's Introduction

fDOG - Feature-aware Directed OrtholoG search

PyPI version License: GPL v3 Build Status Github Build

Table of Contents

How to install

fDOG tool is distributed as a python package called fdog. It is compatible with Python โ‰ฅ v3.7.

Install the fDOG package

You can install fdog using pip:

python3 -m pip install fdog

or, in case you do not have admin rights, and don't use package systems like Anaconda to manage environments you need to use the --user option:

python3 -m pip install --user fdog

and then add the following line to the end of your ~/.bashrc or ~/.bash_profile file, restart the current terminal to apply the change (or type source ~/.bashrc):

export PATH=$HOME/.local/bin:$PATH

Setup fDOG

After installing fdog, you need to setup fdog to get its dependencies and pre-calculated data.

NOTE: in case you haven't installed greedyFAS, it will be installed automatically within fDOG setup. However, you need to run setupFAS after fDOG setup finished before actually using fDOG!

You can setup fDOG by running this command

fdog.setup -d /output/path/for/fdog/data

Pre-calculated data set of fdog will be saved in /output/path/for/fdog/data. After the setup run successfully, you can start using fdog. Please make sure to check if you need to run setupFAS first.

You will get a warning if any of the dependencies are not ready to use, please solve those issues and rerun fdog.setup.

For debugging the setup, please create a log file by running the setup as e.g. fdog.setup | tee log.txt and send us that log file, so that we can trouble shoot the issues. Most of the problems can be solved by just re-running the setup.

Usage

fdog will run smoothly with the provided sample input file 'infile.fa' if everything is set correctly.

fdog.run --seqFile infile.fa --jobName test --refspec HUMAN@9606@3

The output files with the prefix test will be saved at your current working directory. You can have an overview about all available options with the command

fdog.run -h

Please find more information in our wiki to learn about the input and outputs files of fdog.

fDOG data set

Within the data package we provide a set of 78 reference taxa. They can be automatically downloaded during the setup. This data comes "ready to use" with the fdog framework. Species data must be present in the three directories listed below:

  • searchTaxa_dir (Contains sub-directories for proteome fasta files for each species)
  • coreTaxa_dir (Contains sub-directories for BLAST databases made with makeblastdb out of your proteomes)
  • annotation_dir (Contains feature annotation files for each proteome)

For each species/taxon there is a sub-directory named in accordance to the naming schema ([Species acronym]@[NCBI ID]@[Proteome version])

fdog is not limited to those 78 taxa. If needed the user can manually add further gene sets (multiple fasta format) using provided functions.

Adding a new gene set into fDOG

For adding one gene set, please use the fdog.addTaxon function:

fdog.addTaxon -f newTaxon.fa -i tax_id [-o /output/directory] [-n abbr_tax_name] [-c] [-v protein_version] [-a]

in which, the first 3 arguments are required including newTaxon.fa is the gene set that need to be added, tax_id is its NCBI taxonomy ID, /output/directory is where the sub-directories can be found (genome_dir, blast_dir and weight_dir). If not given, new taxon will be added into the same directory of pre-calculated data. Other arguments are optional, which are -n for specify your own taxon name (if not given, an abbriviate name will be suggested based on the NCBI taxon name of the input tax_id), -c for calculating the BLAST DB (only needed if you need to include your new taxon into the list of taxa for compilating the core set), -v for identifying the genome/proteome version (default will be the current date ), and -a for turning off the annotation step (not recommended).

Adding a list of gene sets into fDOG

For adding more than one gene set, please use the fdog.addTaxa script:

fdog.addTaxa -i /path/to/newtaxa/fasta -m mapping_file [-o /output/directory] [-c]

in which, /path/to/taxa/fasta is a folder where the FASTA files of all new taxa can be found. mapping_file is a tab-delimited text file, where you provide the taxonomy IDs that stick with the FASTA files:

#filename	tax_id	abbr_tax_name	version
filename1.fa	12345678
filename2.faa	9606
filename3.fasta	4932	my_fungi
...

The header line (started with #) is a Must. The values of the last 2 columns (abbr. taxon name and genome version) are, however, optional. If you want to specify a new version for a genome, you need to define also the abbr. taxon name, so that the genome version is always at the 4th column in the mapping file.

NOTE: After adding new taxa into fdog, you should check for the validity of the new data before running fdog.

Bugs

Any bug reports or comments, suggestions are highly appreciated. Please open an issue on GitHub or be in touch via email.

How to cite

Ebersberger, I., Strauss, S. & von Haeseler, A. HaMStR: Profile hidden markov model based search for orthologs in ESTs. BMC Evol Biol 9, 157 (2009), doi:10.1186/1471-2148-9-157

Contributors

Contact

For further support or bug reports please contact: [email protected]

fdog's People

Contributors

hannahbioi avatar trvinh avatar

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.