+++ /dev/null
-"""Part of an old unused and undocumented sequence writing framework (DEPRECATED)."""
-# Not clear on the distinction, if any, between 'embl' and 'embl/65'. This
-# code might apply to either or both.
-
-# See 'http://www.ebi.ac.uk/embl/Documentation/User_manual/usrman.html' for a
-# definition of this file format.
-
-# This code only makes a best effort--the output may not be strictly valid.
-# So, for example, the EMBL ID is supposed to be alphanumeric, starting with a
-# letter, but we don't check for this, etc.
-
-
-# Example:
-# ID AA03518 standard; DNA; FUN; 237 BP.
-# XX
-# AC U03518;
-# XX
-# DE Aspergillus awamori internal transcribed spacer 1 (ITS1) and 18S
-# DE rRNA and 5.8S rRNA genes, partial sequence.
-# XX
-# SQ Sequence 237 BP; 41 A; 77 C; 67 G; 52 T; 0 other;
-# aacctgcgga aggatcatta ccgagtgcgg gtcctttggg cccaacctcc catccgtgtc 60
-# tattgtaccc tgttgcttcg gcgggcccgc cgcttgtcgg ccgccggggg ggcgcctctg 120
-# ccccccgggc ccgtgcccgc cggagacccc aacacgaaca ctgtctgaaa gcgtgcagtc 180
-# tgagttgatt gaatgcaatc agttaaaact ttcaacaatg gatctcttgg ttccggc 237
-# //
-
-
-import textwrap
-
-from Bio import Alphabet
-from Bio import Writer
-
-class WriteEmbl(Writer.Writer):
- def __init__(self, outfile):
- Writer.Writer.__init__(self, outfile)
-
- def write(self, record):
- seq = record.seq
- assert seq.alphabet.size == 1, "cannot handle alphabet of size %d" % \
- seq.alphabet.size
- data = seq.data
- upperdata = data.upper()
-
-# It'd be nice if the alphabet was usefully set, but for many interesting
-# cases (e.g., reading from FASTA files), it's not.
-
- if isinstance(seq.alphabet, Alphabet.RNAAlphabet):
- molecule = 'mRNA'
- letters = ['A', 'C', 'G', 'U']
- else:
- molecule = 'DNA'
- letters = ['A', 'C', 'G', 'T']
-
- division = 'UNC' # unknown
-
- self.outfile.write("ID %s standard; %s; %s; %d BP.\n"
- % (record.id, molecule, division, len(data)))
-
- desclist = textwrap.wrap(record.description, 74)
- for l in desclist:
- self.outfile.write("DE %s\n" % l)
-
- counts = [ upperdata.count(l) for l in letters ]
- othercount = len(upperdata) - sum(counts)
-
- countstring = ''.join([ " %d %s;" % p for p in zip(counts, letters) ])
-
- self.outfile.write("SQ Sequence %s BP;%s %d other;\n"
- % (len(data), countstring, othercount))
-
- rowlength = 60
- blocklength = 10
- for i in xrange(0, len(data), rowlength):
- self.outfile.write(" " * 5)
- row = data[i:i+rowlength]
- for b in xrange(0, rowlength, blocklength):
- block = row[b:b+blocklength]
- self.outfile.write("%-*s" % (blocklength+1, block))
- self.outfile.write("%9d\n" % min(i+rowlength, len(data)))
-
- self.outfile.write("//\n")
-
-
-make_writer = WriteEmbl