GithubHelp home page GithubHelp logo

hongqin / t-coffee Goto Github PK

View Code? Open in Web Editor NEW

This project forked from gslbiotech/t-coffee

0.0 1.0 0.0 3.28 MB

Tools for multiple alignments of DNA, RNA, and Proteins.

License: Other

Perl 1.41% C 94.70% C++ 2.32% Makefile 0.01% Objective-C 1.42% QMake 0.14%

t-coffee's Introduction

Overview

This is a modification of the last stable release of TCOFFEE that allows it to build and run natively on Windows with MSVC.

Modifications

  • Use threads instead of process forking, because there is no equivalent on Windows.
  • Renamed some constants and variables that conflicted with macro names defined deep in Windows headers, such as DELETE, IN, OUT, OPTIONAL, UNALIGNED, min, max.
  • Unportable functions were renamed or re-implemented to use a Windows equivalent, such as directory creation or traversal, file existance.
  • Temp names were altered to use process AND thread ids, because unforkable code needs more info than just process id.
  • Custom makefile to use MSVC compiler and linker.
  • Complex function pointer declarations had to be typedef-ed to compile.
  • Variable Length Arrays (VLA) are not supported, so arrays were allocated or made reasonable static sizes.
  • Some functions returned nothing, but declared non-void return type.
  • Uninitialized variables were give reasonable defaults.
  • Indentation was adjusted and to use only spaces.
  • A large else-if block was split to make it compilable by MSVC.
  • Process memory ownership assumptions had to be refactored due to threading.
  • Clock utilities were replaced with std::chrono.
  • Get core count was enhanced to support Windows.
  • Use Windows environment variables where necessary.
  • Disabled embedded perl script due to exceeding MSVC compiler limits. This needs to be revisited to re-activate.
  • Removed some unused variables, functions and function args, but some might still remain.
  • Allow input and executable filenames to have spaces.
  • Build and run without crashing 64-bit executable on Windows built natively with MSVC.

Building

You'll need a c++11 compliant compiler.

Mac/Linux

cd t_coffee_source
make -j

Windows

You have to use GNU Make to support some convenient make extensions. Get it from either Chocolatey, GnuWin32 or a Git package.

cd t_coffee_source
gmake -j -f makefile.win

Debugging

QtCreator can be used to debug the executable. First create a project file:

cd t_coffee_source
qmake -project

Then open the new t_coffee_source.pro file in QtCreator and disable qmake in QtCreator > Projects > Build > Build Steps, otherwise qmake will overwrite our makefile.

Only on Windows, use an extra required flag when building due to how the MSVC compiler works:

gmake -f makefile.win DEBUG_ENABLED=1

Set args in QtCreator > Projects > Run:

-infile C:\tmp\input.fasta -type=dna -outfile C:\tmp\output.txt

t-coffee's People

Contributors

rsmz avatar

Watchers

James Cloos 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.