Giter Club home page Giter Club logo

fas's Introduction

FAS - Feature Architecture Similarity

PyPI version GPLv3-license Github Build

FAS is a new release of the original FACT algorithm. It calculates the so called FAS-score which is a measure of how similar the feature architectures of two proteins are. This is done by combining the Multiplicity Score (MS) and the Positional Score (PS) from FACT. Unlike the original FACT, FAS can resolve feature architectures that have overlapping features by searching for the best overlap-free path. This can be done either extensively or by using the priority mode, a greedy approach. FAS also allows for more options in the weighting of features.

Table of Contents

Installation

FAS is provided as a python package and compatible with Python3.

You can install FAS with pip:

python3 -m pip install greedyFAS

(*) 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 (not recommended):

python3 -m pip install --user greedyFAS

and then add the following line to the end of your .bashrc or .bash_profile file, restart the current terminal to apply the change:

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

Usage

Download and install annotation tools

Before using FAS, some annotation tools and databases need to be installed. FAS' standard databases/annotation tools are: PFAM, SMART, fLPS, SEG, COILS, THMHH 2.0c and SignalP 4.1g. To get these tools and make a configuration file for FAS, please use the setupFAS function:

fas.setup -t /directory/where/you/want/to/save/annotation/tools

Inside the output directory you will find a file called annoTools.txt that contains all installed annotation tools. If you wish to discard any of them from the annotation process, you can just remove the unneeded tools from that file.

Please read our wiki page of setupFAS for other use-cases, such as how to use your old annotation tools with the new FAS, etc.

NOTE: we provide compiled code only for PFAM, COILS and SEG. fLPS will be automatically downloaded and installed. For SMART, you need to download it from EMBLEM and give the path to fas.setup. For TMHMM and SignalP, you can decide if you want to include those two tools to the annotation step (recommended) or ignore them. For using TMHMM version 2.0c and SignalP version 4.1g, you need to request a license from the authors at https://services.healthtech.dtu.dk, and save the downloaded files in the same directory. FAS will do the rest for you ;-)

NOTE2: SignalP 5.0b is not supported yet!!!

We suggest you test the annotation tools by running this command:

fas.doAnno -i test_annofas.fa -o test_output

test_annofas.fa is a demo multiple fasta file, which is saved in the installed greedyFAS directory.

Perform feature annotation

If you only want to annotate your protein sequences without calculating the FAS scores, you can use the doAnno function.

fas.doAnno --fasta your_proteins.fa --outPath /annotation/path/

The annotation output (your_proteins.json by default) will be saved in /annotation/path/.

Alternatively, you can do the annotation using InterProScan and use the function parseAnno to convert the InterProScan's tsv output into json format for using with FAS.

fas.parseAnno -i INPUT.tsv -o /annotation/path/INPUT.json -t <tool_name> -f <feature columns> ...

Please check the usage of parseAnno for more info (using fas.parseAnno -h).

Compare protein feature architectures

The main purpose of FAS is to calculate the similarity score between 2 given proteins (or two list of proteins). This can be done using the run function.

fas.run -s seed.fa -q query.fa -a /annotation/path/ -o /output/path/

If the annotations of seed and query protein(s) already exist in /annotation/path/ (seed.json and query.json, respectively), run will use these annotations for calculating the FAS scores. Otherwise, it will first annotate the proteins and then compare the feature architectures of those two protein sets.

Additional Information

A thorough guide to all FAS commands and options can be found at our WIKI page.

How-To Cite

Julian Dosch, Holger Bergmann, Vinh Tran, Ingo Ebersberger, FAS: assessing the similarity between proteins using multi-layered feature architectures, Bioinformatics, Volume 39, Issue 5, May 2023, btad226, https://doi.org/10.1093/bioinformatics/btad226

Contributors

Contact

Julian Dosch [email protected]

Ingo Ebersberger [email protected]

fas's People

Contributors

jurudo avatar trvinh avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

Forkers

chrisbluemel

fas's Issues

install without admin rights

Install succeed

$ pip install --user .
Processing /home/vinh/Desktop/programs/bionf/FAS
Installing collected packages: greedyFAS
  Running setup.py install for greedyFAS ... done
Successfully installed greedyFAS-1.0.0

but the functions (greedyFAS, annoFAS,...) not found!

FAS input

Reading in large input files with FAS can take a moment. This is not critical when doing single FAS runs but might accumulate to larger runtimes during a oneseq run.
Adding a new input format that can be read faster might be something to work on for future releases, maybe even binary files for the oneseq library species.

(moved from oneseq repo)

all-vs-all FAS

All-vs-all FAS score calculation for a given list of proteins, e.g.:

prot1a  specA
prot2a  specA
prot1b  specB
prot1c  specC
...

replace CAST

Cast is a 32-bit executable it is possible that some computer environments can't run it because they lack the proper libraries:
BIONF/HaMStR#25

We should make it possible to deactivate cast for these cases

Creating a featuretype file

Hello FAS creators

I am interested in running the FAS program using interproscan results. However i am abit stump on making the featuretype file. Currently interproscan output these annotations:
CDD Coils Gene3D MobiDBLite PANTHER Pfam PRINTS ProSitePatterns ProSiteProfiles SMART SUPERFAMILY TIGRFAM

Do you guys have any idea how to categorise these? Also do you have any preference on the weighting parameters? If possible, would you be able to clarifying what the --bidirectional setting is doing?

Thanks!

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.