diff fasta_utils/__init__.py @ 0:8918de535391 draft

planemo upload for repository https://github.com/bgruening/galaxytools/tree/rna_commander/tools/rna_tools/rna_commender commit 2fc7f3c08f30e2d81dc4ad19759dfe7ba9b0a3a1
author rnateam
date Tue, 31 May 2016 05:41:03 -0400
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/fasta_utils/__init__.py	Tue May 31 05:41:03 2016 -0400
@@ -0,0 +1,58 @@
+"""Util functions for FASTA format."""
+
+__author__ = "Gianluca Corrado"
+__copyright__ = "Copyright 2016, Gianluca Corrado"
+__license__ = "MIT"
+__maintainer__ = "Gianluca Corrado"
+__email__ = "gianluca.corrado@unitn.it"
+__status__ = "Production"
+
+
+def import_fasta(fasta_file):
+    """Import a fasta file as a dictionary."""
+    dic = {}
+    f = open(fasta_file)
+    fasta = f.read().strip()
+    f.close()
+    for a in fasta.split('>'):
+        k = a.split('\n')[0]
+        v = ''.join(a.split('\n')[1:])
+        if k != '':
+            dic[k] = v
+    return dic
+
+
+def export_fasta(dic):
+    """Export a dictionary."""
+    fasta = ""
+    for (k, v) in dic.iteritems():
+        fasta += ">%s\n%s\n" % (k, v)
+    return fasta
+
+
+def seq_names(fasta_file):
+    """Get sequence names from fasta file."""
+    names = []
+    f = open(fasta_file)
+    fasta = f.read()
+    f.close()
+    for a in fasta.split('>'):
+        names.append(a.split('\n')[0])
+    return [a for a in names if a != '']
+
+
+def stockholm2fasta(stockholm):
+    """Convert alignment in stockholm format to fasta format."""
+    fasta = ""
+    for line in stockholm.split("\n"):
+        # comment line
+        if line[0] == "#":
+            continue
+        # termination line
+        elif line == "//":
+            return fasta
+        # alignment line
+        else:
+            name, align = line.split()
+            seq = align.replace(".", "")
+            fasta += ">%s\n%s\n" % (name, seq)