/FastANI

Wrapper for FastANI.

Primary LanguagePythonGNU Affero General Public License v3.0AGPL-3.0

FastANI

PyPI

This package has been developed to provide a Python interface to the FastANI tool.

Installation

Note: You must install the FastANI binaries yourself for this package to work.

This package only has standard dependencies and works for Python versions >=3.6.

pip install fastani

Basic Usage

Note: All features except for the matrix and visualization method have been implemented.

To use this package, simply call the fastani method, all parameters except for the query and reference arguments are optional, and in this case the FastANI default values are used.

The query and reference arguments can either be a string, or collection of strings that point to the fasta file(s).

from fastani import fastani

result = fastani(query='query.fna', reference='reference.fna')
dict_results = result.as_dict()

# Accessing results
print(dict_results['query.fna']['reference.fna'].ani)         # 89.1234
print(dict_results['query.fna']['reference.fna'].n_frag)      # 50
print(dict_results['query.fna']['reference.fna'].total_frag)  # 100
print(dict_results['query.fna']['reference.fna'].align_frac)  # 0.5

# Writing results to disk
result.to_file('results.txt')

The FastANI default parameters can be overridden by passing the following arguments:

  • exe: The path to the FastANI binary.
  • k: The kmer size to use.
  • cpus: The number of CPUs to use.
  • frag_len: Fragment length to use.
  • min_frac: Minimum fraction of genome shared.
  • min_frag: Minimum number of aligned fragments (version < 1.3).

Advanced Usage

There are two additional arguments that can be supplied to the fastani method:

  • single_execution: If set to True (default), FastANI will use the query and reference list parameters. If set to False, then each genome will be analysed individually.
  • bidirectional: If set to False (default), FastANI will only perform a query -> reference comparison. If set to True, then a reference -> query comparison will also be performed.