Metadata-Version: 2.1
Name: malign
Version: 0.1.1
Summary: Library for multiple asymmetric alignments on different alphabets
Home-page: https://github.com/tresoldi/malign
Author: Tiago Tresoldi
Author-email: tresoldi@shh.mpg.de
License: MIT
Project-URL: Documentation, https://malign.readthedocs.io
Keywords: alignment,sequence alignment,multiple alphabet
Platform: UNKNOWN
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Operating System :: OS Independent
Classifier: Topic :: Software Development :: Libraries
Description-Content-Type: text/x-rst
Requires-Dist: networkx (==2.2)
Requires-Dist: catcoocc

MAlign
======

|PyPI| |Build Status| |codecov| |Codacy Badge|

MALIGN is a library for multiple asymmetric alignments on different
alphabets. It is currently under initial research and development, but
can already be used to obtain multiple alignments for DNA sequences.

Installation and usage
----------------------

The library can be installed as any standard Python library with
``pip``, and used as demonstrated in the following snippet:

In any standard Python environment, ``malign`` can be installed with:

.. code:: bash

   $ pip install malign

For most purposes, it is enough to pass the two sequences to be aligned,
along with a scorer, to the ``get_aligns()`` function:

.. code:: python

   >> import malign
   >> seq1 = ["A", "T", "T", "C", "G", "G", "A", "T"]
   >> seq2 = ["T", "A", "C", "G", "G", "A", "T", "T", "T"]
   >> graph = malign.compute_graph(seq1, seq2, malign.DNA_SCORER)
   >> dest = "%i:%i" % (len(seq1), len(seq2))
   >> aligns = malign.get_aligns(graph, ("0:0", dest), seq1, seq2, 4)
   >> for idx, align in enumerate(aligns):
   >>   print(" ".join(align[0][0]), align[1])
   >>   print(" ".join(align[0][1]), "\n")
   A T T C G G A - - T 84.0
   T A - C G G A T T T

   A T T C G G A - - T 84.0
   T - A C G G A T T T

   A T T C G G A T - - 84.0
   T A - C G G A T T T

   A T T C G G A T - - 84.0
   T - A C G G A T T T

The library can also be used by means of the command-line ``malign``
tool:

.. code:: bash

   $ malign --dna ATTCGGAT TACGGATTT
   Alignment #0 (score: 84.00)
   A T T C G G A - - T
   T A - C G G A T T T

   Alignment #1 (score: 84.00)
   A T T C G G A - - T
   T - A C G G A T T T

   Alignment #2 (score: 84.00)
   A T T C G G A T - -
   T A - C G G A T T T

   Alignment #3 (score: 84.00)
   A T T C G G A T - -
   T - A C G G A T T T

Changelog
---------

Version 0.1: - First release for internal announcement, testing, and
community outreach

Roadmap
-------

Version 0.2: - Setup readthedocs - Sort in consistent and reproducible
way all alignments, even when the score is the same - Deal with
conflicting package versions due to ``lingpy``, or write new NW
implementation - Implement single-pass function with defaults, with
scorer, graph, destnation, etc.

Community guidelines
--------------------

While the author can be contacted directly for support, it is
recommended that third parties use GitHub standard features, such as
issues and pull requests, to contribute, report problems, or seek
support.

Contributing guidelines, including a code of conduct, can be found in
the ``CONTRIBUTING.md`` file.

Author and citation
-------------------

The library is developed by Tiago Tresoldi (tresoldi@shh.mpg.de).

The author has received funding from the European Research Council (ERC)
under the European Union’s Horizon 2020 research and innovation
programme (grant agreement No. \ `ERC Grant
#715618 <https://cordis.europa.eu/project/rcn/206320/factsheet/en>`__,
`Computer-Assisted Language Comparison <https://digling.org/calc/>`__.

If you use ``malign``, please cite it as:

   Tresoldi, Tiago (2020). MALIGN, a library for multiple asymmetric
   alignments on different alphabets. Version 1.0. Jena.

In BibTeX:

.. code:: bibtex

   @misc{Tresoldi2020malign,
     author = {Tresoldi, Tiago},
     title = {MALIGN, a library for multiple asymmetric alignments on different alphabets. Version 0.1.},
     howpublished = {\url{https://github.com/tresoldi/malign}},
     address = {Jena},
     year = {2020},
   }

.. |PyPI| image:: https://img.shields.io/pypi/v/malign.svg
   :target: https://pypi.org/project/malign
.. |Build Status| image:: https://travis-ci.org/tresoldi/malign.svg?branch=master
   :target: https://travis-ci.org/tresoldi/malign
.. |codecov| image:: https://codecov.io/gh/tresoldi/malign/branch/master/graph/badge.svg
   :target: https://codecov.io/gh/tresoldi/malign
.. |Codacy Badge| image:: https://api.codacy.com/project/badge/Grade/f6428290a03742e69a6a5cb512a99650
   :target: https://www.codacy.com/manual/tresoldi/malign?utm_source=github.com&utm_medium=referral&utm_content=tresoldi/malign&utm_campaign=Badge_Grade


