Commit 4bf43ea1 authored by Julien Y. Dutheil's avatar Julien Y. Dutheil

New upstream version 1.3.0+dfsg

parent d8e65587
......@@ -63,7 +63,7 @@ if (CMAKE_INSTALL_PREFIX)
endif (CMAKE_INSTALL_PREFIX)
include (GNUInstallDirs)
find_package (bpp-phyl-omics 2.0.0 REQUIRED)
find_package (bpp-phyl-omics 3.0.0 REQUIRED)
#Find boost libraries
SET(Boost_USE_STATIC_LIBS ${BUILD_STATIC})
......@@ -152,10 +152,10 @@ ADD_SUBDIRECTORY(man)
# Packager
SET(CPACK_PACKAGE_NAME "maffilter")
SET(CPACK_PACKAGE_VENDOR "Julien Y. Dutheil")
SET(CPACK_PACKAGE_VERSION "1.2.1")
SET(CPACK_PACKAGE_VERSION "1.3.0")
SET(CPACK_PACKAGE_VERSION_MAJOR "1")
SET(CPACK_PACKAGE_VERSION_MINOR "2")
SET(CPACK_PACKAGE_VERSION_PATCH "1")
SET(CPACK_PACKAGE_VERSION_MINOR "3")
SET(CPACK_PACKAGE_VERSION_PATCH "0")
SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Filtering of genome alignment in the Multiple Alignment Format (MAF)")
SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/LICENSE")
SET(CPACK_RESOURCE_FILE_AUTHORS "${CMAKE_SOURCE_DIR}/AUTHORS")
......
29/04/18 -*- Version 1.3.0 -*-
13/04/18 Julien Dutheil
* Error output when not enough ingroup sequences in DiversityStatistics and SiteFrequencySpectrum
09/03/18 Julien Dutheil
* Logfile can now be disabled
* Merge filter can now rename chimeric contigs to avoid long concatenated names.
21/01/18 Julien Dutheil
* Added OrderFilter.
16/12/17 Julien Dutheil
* Added OutputAsTable filter
* Improved LiftOver
18/05/17 -*- Version 1.2.0 -*-
13/04/17 Julien Dutheil
......
......@@ -12,7 +12,7 @@ foreach (target ${maffilter-targets})
if (BUILD_STATIC)
target_link_libraries (${target} ${BPP_LIBS_STATIC})
target_link_libraries (${target} ${LIBS})
set_target_properties (${target} LINK_SEARCH_END_STATIC TRUE)
set_target_properties (${target} PROPERTIES LINK_SEARCH_END_STATIC TRUE)
else (BUILD_STATIC)
target_link_libraries (${target} ${BPP_LIBS_SHARED})
target_link_libraries (${target} ${LIBS})
......
This diff is collapsed.
......@@ -83,7 +83,7 @@ class OutputAsFeaturesMafIterator:
public:
MafBlock* analyseCurrentBlock_() throw (Exception) {
MafBlock* analyseCurrentBlock_() {
currentBlock_ = iterator_->nextBlock();
if (output_ && currentBlock_)
writeBlock(*output_, *currentBlock_);
......
......@@ -42,7 +42,7 @@ knowledge of the CeCILL license and that you accept its terms.
using namespace bpp;
using namespace std;
MafBlock* SystemCallMafIterator::analyseCurrentBlock_() throw (Exception) {
MafBlock* SystemCallMafIterator::analyseCurrentBlock_() {
currentBlock_ = iterator_->nextBlock();
if (! currentBlock_)
return 0;
......
......@@ -100,7 +100,7 @@ class SystemCallMafIterator:
public:
MafBlock* analyseCurrentBlock_() throw (Exception);
MafBlock* analyseCurrentBlock_();
};
......
......@@ -45,7 +45,7 @@ knowledge of the CeCILL license and that you accept its terms.
using namespace bpp;
using namespace std;
MafBlock* TreeBuildingSystemCallMafIterator::analyseCurrentBlock_() throw (Exception) {
MafBlock* TreeBuildingSystemCallMafIterator::analyseCurrentBlock_() {
currentBlock_ = iterator_->nextBlock();
if (! currentBlock_)
return 0;
......
......@@ -105,7 +105,7 @@ class TreeBuildingSystemCallMafIterator:
public:
MafBlock* analyseCurrentBlock_() throw (Exception);
MafBlock* analyseCurrentBlock_();
};
......
# MafFilter
The MafFilter genome alignment processor [[website]](https://jydu.github.io/maffilter/).
If you are using maffilter, please consider citing
```
Dutheil JY, Gaillard S, Stukenbrock EH.
BMC Genomics. 2014 Jan 22;15:53.
MafFilter: a highly flexible and extensible multiple genome alignment files processor.
```
theme: jekyll-theme-tactile
\ No newline at end of file
This diff is collapsed.
theme: jekyll-theme-tactile
title: MafFilter
description: a genome alignment processor
show_downloads: true
share: true
**MafFilter** is a program dedicated to the analysis of genome alignments. It parses and manipulates [MAF files](https://genome.ucsc.edu/FAQ/FAQformat.html#format5) as well as more simple fasta files. Despite various filtering options and format conversion tools, **MafFilter** can compute a wide range of statistics (phylogenetic trees, nucleotide diversity, inferrence of selection, etc.). Current version is 1.2.1.
## What can MafFilter do?
**MafFilter** applies a series of "filters" to a MAF file, in order to clean it, extract data and computer statistics while keeping track of the associated meta-data such as genome coordinates and quality scores.
* It can process the alignment to remove low-quality / ambiguous / masked regions.
* It can export data into a single or multiple alignment file in format such as Fasta or Clustal.
* It can read annotation data in GFF or GTF format, and extract the corresponding alignment.
* It can perform sliding windows calculations.
* It can reconstruct phylogeny/genealogy along the genome alignment.
* It can compute population genetics statistics, such as site frequency spectrum, number of fixed/polymorphic sites, etc.
## How can I get it?
**MafFilter** is built using the [Bio++ libraries](http://biopp.univ-montp2.fr), as well as the boost iostream library for handling of compressed files. [Debian](https://packages.debian.org/search?keywords=maffilter&searchon=names&suite=all&section=all) and [RPM](https://download.opensuse.org/repositories/home:/jdutheil:/Bio++2.3.0/) packages are available.
For compiling the programs yourself, from the downloaded sources or from the git repository, please follow the instructions from the [Bio++ website](http://biopp.univ-montp2.fr/wiki/index.php/Installation).
## How do I use it?
Several example data sets are distributed along with the source code of the package. A reference manual is also available [here](http://biopp.univ-montp2.fr/manual/html/maffilter/), or can be downloaded as [PDF](http://biopp.univ-montp2.fr/manual/pdf/maffilter/). Questions can be asked on the dedicated forum: [here](https://groups.google.com/forum/?hl=en#!forum/maffilter).
## References
The **MafFilter** program was published in
```
Dutheil JY, Gaillard S, Stukenbrock EH.
BMC Genomics. 2014 Jan 22;15:53.
MafFilter: a highly flexible and extensible multiple genome alignment files processor.
```
Please consider citing this work if you are using the program.
MafFilter was originally developped in the context of the study of the Gorilla genome sequence
```
Scally A, Dutheil JY, Hillier LW, Jordan GE, Goodhead I, Herrero J, Hobolth A, Lappalainen T, Mailund T, Marques-Bonet T, McCarthy S, Montgomery SH, Schwalie PC, Tang YA, Ward MC, Xue Y, Yngvadottir B, Alkan C, Andersen LN, Ayub Q, Ball EV, Beal K, Bradley BJ, Chen Y, Clee CM, Fitzgerald S, Graves TA, Gu Y, Heath P, Heger A, Karakoc E, Kolb-Kokocinski A, Laird GK, Lunter G, Meader S, Mort M, Mullikin JC, Munch K, O'Connor TD, Phillips AD, Prado-Martinez J, Rogers AS, Sajjadian S, Schmidt D, Shaw K, Simpson JT, Stenson PD, Turner DJ, Vigilant L, Vilella AJ, Whitener W, Zhu B, Cooper DN, de Jong P, Dermitzakis ET, Eichler EE, Flicek P, Goldman N, Mundy NI, Ning Z, Odom DT, Ponting CP, Quail MA, Ryder OA, Searle SM, Warren WC, Wilson RK, Schierup MH, Rogers J, Tyler-Smith C, Durbin R.
Nature. 2012 Mar 7;483(7388):169-75.
Insights into hominid evolution from the gorilla genome sequence.
```
and was further developped in the following studies:
```
Stukenbrock EH, Bataillon T, Dutheil JY, Hansen TT, Li R, Zala M, McDonald BA, Wang J, Schierup MH.
Genome Res. 2011 Dec;21(12):2157-66.
The making of a new pathogen: insights from comparative population genomics of the domesticated wheat pathogen Mycosphaerella graminicola and its wild sister species.
Stukenbrock EH, Christiansen FB, Hansen TT, Dutheil JY, Schierup MH.
Proc Natl Acad Sci U S A. 2012 Jul 3;109(27):10954-9.
Fusion of two divergent fungal individuals led to the recent emergence of a unique widespread pathogen species.
```
%define _basename maffilter
%define _version 1.2.1
%define _release 1
%define _prefix /usr
URL: http://bioweb.me/maffilter
Name: %{_basename}
Version: %{_version}
Release: %{_release}
Name: maffilter
Version: 1.3.0
Release: 1%{?dist}
License: CECILL-2.0
Vendor: The Bio++ Project
Source: %{_basename}-%{_version}.tar.gz
Source: %{name}-%{version}.tar.gz
Summary: The Multiple Alignment Format file processor
Group: Productivity/Scientific/Other
Requires: libbpp-phyl-omics2 = 2.3.1
Requires: libbpp-seq-omics2 = 2.3.1
Requires: libbpp-phyl11 = 2.3.1
Requires: libbpp-seq11 = 2.3.1
Requires: libbpp-core3 = 2.3.1
Requires: libbpp-phyl-omics3 = 2.4.0
Requires: libbpp-seq-omics3 = 2.4.0
Requires: libbpp-phyl12 = 2.4.0
Requires: libbpp-seq12 = 2.4.0
Requires: libbpp-core4 = 2.4.0
Requires: zlib
BuildRoot: %{_builddir}/%{_basename}-root
BuildRoot: %{_builddir}/%{name}-root
BuildRequires: cmake >= 2.8.11
BuildRequires: gcc-c++ >= 4.7.0
BuildRequires: groff
BuildRequires: texinfo >= 4.0.0
BuildRequires: libbpp-core3 = 2.3.1
BuildRequires: libbpp-core-devel = 2.3.1
BuildRequires: libbpp-seq11 = 2.3.1
BuildRequires: libbpp-seq-devel = 2.3.1
BuildRequires: libbpp-phyl11 = 2.3.1
BuildRequires: libbpp-phyl-devel = 2.3.1
BuildRequires: libbpp-seq-omics2 = 2.3.1
BuildRequires: libbpp-seq-omics-devel = 2.3.1
BuildRequires: libbpp-phyl-omics2 = 2.3.1
BuildRequires: libbpp-phyl-omics-devel = 2.3.1
BuildRequires: libbpp-core4 = 2.4.0
BuildRequires: libbpp-core-devel = 2.4.0
BuildRequires: libbpp-seq12 = 2.4.0
BuildRequires: libbpp-seq-devel = 2.4.0
BuildRequires: libbpp-phyl12 = 2.4.0
BuildRequires: libbpp-phyl-devel = 2.4.0
BuildRequires: libbpp-seq-omics3 = 2.4.0
BuildRequires: libbpp-seq-omics-devel = 2.4.0
BuildRequires: libbpp-phyl-omics3 = 2.4.0
BuildRequires: libbpp-phyl-omics-devel = 2.4.0
BuildRequires: zlib-devel
%if 0%{?fedora} >= 22
......@@ -110,6 +107,7 @@ rm -rf $RPM_BUILD_ROOT
%{_prefix}/share/info/maffilter.info.%{zipext}
%changelog
* Wed Mar 14 2018 Julien Dutheil <dutheil@evolbio.mpg.de> 1.3.0-1
* Fri Jun 09 2017 Julien Dutheil <dutheil@evolbio.mpg.de> 1.2.1-1
* Wed May 24 2017 Julien Dutheil <dutheil@evolbio.mpg.de> 1.2.0-1
* Fri Sep 26 2014 Julien Dutheil <julien.dutheil@univ-montp2.fr> 1.1.0-1
......
#! /usr/bin/python
# Convert an alignment into a single-block MAF file.
import sys
from Bio import AlignIO
alignment = AlignIO.read(open(sys.argv[1] + ".phy"), "phylip")
print "Alignment length %i" % alignment.get_alignment_length()
# Convert to maf:
maf = open(sys.argv[1] + ".maf", 'w')
maf.write("##maf version=1\n")
maf.write("#Generated from a single alignment\n\n")
maf.write("a\n")
for record in alignment :
maf.write("s seq%s.1\t0\t%d\t+\t%d\t%s\n" % (record.id, len(record.seq), len(record.seq), record.seq))
maf.close()
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment