Mercurial > repos > rnateam > rnacommender
comparison 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 |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:8918de535391 |
---|---|
1 """Util functions for FASTA format.""" | |
2 | |
3 __author__ = "Gianluca Corrado" | |
4 __copyright__ = "Copyright 2016, Gianluca Corrado" | |
5 __license__ = "MIT" | |
6 __maintainer__ = "Gianluca Corrado" | |
7 __email__ = "gianluca.corrado@unitn.it" | |
8 __status__ = "Production" | |
9 | |
10 | |
11 def import_fasta(fasta_file): | |
12 """Import a fasta file as a dictionary.""" | |
13 dic = {} | |
14 f = open(fasta_file) | |
15 fasta = f.read().strip() | |
16 f.close() | |
17 for a in fasta.split('>'): | |
18 k = a.split('\n')[0] | |
19 v = ''.join(a.split('\n')[1:]) | |
20 if k != '': | |
21 dic[k] = v | |
22 return dic | |
23 | |
24 | |
25 def export_fasta(dic): | |
26 """Export a dictionary.""" | |
27 fasta = "" | |
28 for (k, v) in dic.iteritems(): | |
29 fasta += ">%s\n%s\n" % (k, v) | |
30 return fasta | |
31 | |
32 | |
33 def seq_names(fasta_file): | |
34 """Get sequence names from fasta file.""" | |
35 names = [] | |
36 f = open(fasta_file) | |
37 fasta = f.read() | |
38 f.close() | |
39 for a in fasta.split('>'): | |
40 names.append(a.split('\n')[0]) | |
41 return [a for a in names if a != ''] | |
42 | |
43 | |
44 def stockholm2fasta(stockholm): | |
45 """Convert alignment in stockholm format to fasta format.""" | |
46 fasta = "" | |
47 for line in stockholm.split("\n"): | |
48 # comment line | |
49 if line[0] == "#": | |
50 continue | |
51 # termination line | |
52 elif line == "//": | |
53 return fasta | |
54 # alignment line | |
55 else: | |
56 name, align = line.split() | |
57 seq = align.replace(".", "") | |
58 fasta += ">%s\n%s\n" % (name, seq) |