# HG changeset patch
# User iuc
# Date 1467203211 14400
# Node ID e5e9a09ac2de0319a722d2e36431fa0b6525dbb2
# Parent d44c2896957f00700e0555184a4dc097ba991eac
Uploaded
diff -r d44c2896957f -r e5e9a09ac2de Users/gvk/work/git_workspace/tools-iuc/tools/meme/fimo.xml
--- a/Users/gvk/work/git_workspace/tools-iuc/tools/meme/fimo.xml Wed Jun 29 08:24:33 2016 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,294 +0,0 @@
-
- - Scan a set of sequences for motifs.
-
- imagemagick
- meme
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- value == True
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- options_type['output_separate_motifs'] == 'no'
-
-
-
-
-
-
-
-
-
-
-
-
- options_type['output_separate_motifs'] == 'yes'
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-.. class:: warningmark
-
-**WARNING: This tool is only available for non-commercial use. Use for educational, research and non-profit purposes is permitted.
-Before using, be sure to review, agree, and comply with the license.**
-
-FIMO scans a sequence database for individual matches to each of the motifs you provide (sample output for motifs and sequences).
-The name FIMO stands for 'Find Individual Motif Occurrences'. The program searches a database of sequences for occurrences of
-known motifs, treating each motif independently. Motifs must be in MEME Motif Format. You can define the statistical threshold
-(p-value) for motifs and whether FIMO scans just the given sequences or their reverse complements (where applicable).
-
-.. class:: infomark
-
-For detailed information on FIMO, click here_, or view the license_.
-
-.. _here: http://meme-suite.org/doc/fimo.html?man_type=web
-.. _license: http://meme-suite.org/doc/copyright.html?man_type=web
-
-
-
- 10.1093/bioinformatics/btr064
-
-
diff -r d44c2896957f -r e5e9a09ac2de Users/gvk/work/git_workspace/tools-iuc/tools/meme/fimo_wrapper.py
--- a/Users/gvk/work/git_workspace/tools-iuc/tools/meme/fimo_wrapper.py Wed Jun 29 08:24:33 2016 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,193 +0,0 @@
-#!/usr/bin/env python
-import argparse
-import os
-import shutil
-import string
-import subprocess
-import sys
-import tempfile
-
-BUFFSIZE = 1048576
-# Translation table for reverse Complement, with ambiguity codes.
-DNA_COMPLEMENT = string.maketrans("ACGTRYKMBDHVacgtrykmbdhv", "TGCAYRMKVHDBtgcayrmkvhdb")
-
-
-def get_stderr(tmp_stderr):
- tmp_stderr.seek(0)
- stderr = ''
- try:
- while True:
- stderr += tmp_stderr.read(BUFFSIZE)
- if not stderr or len(stderr) % BUFFSIZE != 0:
- break
- except OverflowError:
- pass
- return stderr
-
-
-def reverse(sequence):
- # Reverse sequence string.
- return sequence[::-1]
-
-
-def dna_complement(sequence):
- # Complement DNA sequence string.
- return sequence.translate(DNA_COMPLEMENT)
-
-
-def dna_reverse_complement(sequence):
- # Returns the reverse complement of the sequence.
- sequence = reverse(sequence)
- return dna_complement(sequence)
-
-
-def stop_err(msg):
- sys.stderr.write(msg)
- sys.exit(1)
-
-parser = argparse.ArgumentParser()
-parser.add_argument('--input_motifs', dest='input_motifs', help='MEME output formatted files for input to fimo')
-parser.add_argument('--input_fasta', dest='input_fasta', help='Fassta sequence file')
-parser.add_argument('--options_type', dest='options_type', help='Basic or Advance options')
-parser.add_argument('--input_psp', dest='input_psp', default=None, help='File containing position specific priors')
-parser.add_argument('--input_prior_dist', dest='input_prior_dist', default=None, help='File containing binned distribution of priors')
-parser.add_argument('--alpha', dest='alpha', type=float, default=1.0, help='The alpha parameter for calculating position specific priors')
-parser.add_argument('--bgfile', dest='bgfile', default=None, help='Background file type, used only if not "default"')
-parser.add_argument('--max_strand', action='store_true', help='If matches on both strands at a given position satisfy the output threshold, only report the match for the strand with the higher score')
-parser.add_argument('--max_stored_scores', dest='max_stored_scores', type=int, help='Maximum score count to store')
-parser.add_argument('--motif', dest='motifs', action='append', default=[], help='Specify motif by id')
-parser.add_argument('--output_separate_motifs', dest='output_separate_motifs', default='no', help='Output one dataset per motif')
-parser.add_argument('--motif_pseudo', dest='motif_pseudo', type=float, default=0.1, help='Pseudocount to add to counts in motif matrix')
-parser.add_argument('--no_qvalue', action='store_true', help='Do not compute a q-value for each p-value')
-parser.add_argument('--norc', action='store_true', help='Do not score the reverse complement DNA strand')
-parser.add_argument('--output_path', dest='output_path', help='Output files directory')
-parser.add_argument('--parse_genomic_coord', dest='parse_genomic_coord', default='no', help='Check each sequence header for UCSC style genomic coordinates')
-parser.add_argument('--remove_duplicate_coords', dest='remove_duplicate_coords', default='no', help='Remove duplicate entries in unique GFF coordinates')
-parser.add_argument('--qv_thresh', action='store_true', help='Use q-values for the output threshold')
-parser.add_argument('--thresh', dest='thresh', type=float, help='p-value threshold')
-parser.add_argument('--gff_output', dest='gff_output', help='Gff output file')
-parser.add_argument('--html_output', dest='html_output', help='HTML output file')
-parser.add_argument('--interval_output', dest='interval_output', help='Interval output file')
-parser.add_argument('--txt_output', dest='txt_output', help='Text output file')
-parser.add_argument('--xml_output', dest='xml_output', help='XML output file')
-args = parser.parse_args()
-
-fimo_cmd_list = ['fimo']
-if args.options_type == 'advanced':
- fimo_cmd_list.append('--alpha %4f' % args.alpha)
- if args.bgfile is not None:
- fimo_cmd_list.append('--bgfile "%s"' % args.bgfile)
- if args.max_strand:
- fimo_cmd_list.append('--max-strand')
- fimo_cmd_list.append('--max-stored-scores %d' % args.max_stored_scores)
- if len(args.motifs) > 0:
- for motif in args.motifs:
- fimo_cmd_list.append('--motif "%s"' % motif)
- fimo_cmd_list.append('--motif-pseudo %4f' % args.motif_pseudo)
- if args.no_qvalue:
- fimo_cmd_list.append('--no-qvalue')
- if args.norc:
- fimo_cmd_list.append('--norc')
- if args.parse_genomic_coord == 'yes':
- fimo_cmd_list.append('--parse-genomic-coord')
- if args.qv_thresh:
- fimo_cmd_list.append('--qv-thresh')
- fimo_cmd_list.append('--thresh %4f' % args.thresh)
- if args.input_psp is not None:
- fimo_cmd_list.append('--psp "%s"' % args.input_psp)
- if args.input_prior_dist is not None:
- fimo_cmd_list.append('--prior-dist "%s"' % args.input_prior_dist)
-fimo_cmd_list.append('--o "%s"' % (args.output_path))
-fimo_cmd_list.append('--verbosity 1')
-fimo_cmd_list.append(args.input_motifs)
-fimo_cmd_list.append(args.input_fasta)
-
-fimo_cmd = ' '.join(fimo_cmd_list)
-
-try:
- tmp_stderr = tempfile.NamedTemporaryFile()
- proc = subprocess.Popen(args=fimo_cmd, shell=True, stderr=tmp_stderr)
- returncode = proc.wait()
- if returncode != 0:
- stderr = get_stderr(tmp_stderr)
- stop_err(stderr)
-except Exception, e:
- stop_err('Error running FIMO:\n%s' % str(e))
-
-shutil.move(os.path.join(args.output_path, 'fimo.txt'), args.txt_output)
-
-gff_file = os.path.join(args.output_path, 'fimo.gff')
-if args.remove_duplicate_coords == 'yes':
- tmp_stderr = tempfile.NamedTemporaryFile()
- # Identify and eliminating identical motif occurrences. These
- # are identical if the combination of chrom, start, end and
- # motif id are identical.
- cmd = 'sort -k1,1 -k4,4n -k5,5n -k9.1,9.6 -u -o %s %s' % (gff_file, gff_file)
- proc = subprocess.Popen(args=cmd, stderr=tmp_stderr, shell=True)
- returncode = proc.wait()
- if returncode != 0:
- stderr = get_stderr(tmp_stderr)
- stop_err(stderr)
- # Sort GFF output by a combination of chrom, score, start.
- cmd = 'sort -k1,1 -k4,4n -k6,6n -o %s %s' % (gff_file, gff_file)
- proc = subprocess.Popen(args=cmd, stderr=tmp_stderr, shell=True)
- returncode = proc.wait()
- if returncode != 0:
- stderr = get_stderr(tmp_stderr)
- stop_err(stderr)
-if args.output_separate_motifs == 'yes':
- # Create the collection output directory.
- collection_path = (os.path.join(os.getcwd(), 'output'))
- # Keep track of motif occurrences.
- header_line = None
- motif_ids = []
- file_handles = []
- for line in open(gff_file, 'r'):
- if line.startswith('#'):
- if header_line is None:
- header_line = line
- continue
- items = line.split('\t')
- attribute = items[8]
- attributes = attribute.split(';')
- name = attributes[0]
- motif_id = name.split('=')[1]
- file_name = os.path.join(collection_path, 'MOTIF%s.gff' % motif_id)
- if motif_id in motif_ids:
- i = motif_ids.index(motif_id)
- fh = file_handles[i]
- fh.write(line)
- else:
- fh = open(file_name, 'wb')
- if header_line is not None:
- fh.write(header_line)
- fh.write(line)
- motif_ids.append(motif_id)
- file_handles.append(fh)
- for file_handle in file_handles:
- file_handle.close()
-else:
- shutil.move(gff_file, args.gff_output)
-shutil.move(os.path.join(args.output_path, 'fimo.xml'), args.xml_output)
-shutil.move(os.path.join(args.output_path, 'fimo.html'), args.html_output)
-
-out_file = open(args.interval_output, 'wb')
-out_file.write("#%s\n" % "\t".join(("chr", "start", "end", "pattern name", "score", "strand", "matched sequence", "p-value", "q-value")))
-for line in open(args.txt_output):
- if line.startswith('#'):
- continue
- fields = line.rstrip("\n\r").split("\t")
- start, end = int(fields[2]), int(fields[3])
- sequence = fields[7]
- if start > end:
- # Flip start and end and set strand.
- start, end = end, start
- strand = "-"
- # We want sequences relative to strand; FIMO always provides + stranded sequence.
- sequence = dna_reverse_complement(sequence)
- else:
- strand = "+"
- # Make 0-based start position.
- start -= 1
- out_file.write("%s\n" % "\t".join([fields[1], str(start), str(end), fields[0], fields[4], strand, sequence, fields[5], fields[6]]))
-out_file.close()
diff -r d44c2896957f -r e5e9a09ac2de fimo.xml
--- a/fimo.xml Wed Jun 29 08:24:33 2016 -0400
+++ b/fimo.xml Wed Jun 29 08:26:51 2016 -0400
@@ -117,7 +117,10 @@
-
+
+
+
+
diff -r d44c2896957f -r e5e9a09ac2de fimo_wrapper.py
--- a/fimo_wrapper.py Wed Jun 29 08:24:33 2016 -0400
+++ b/fimo_wrapper.py Wed Jun 29 08:26:51 2016 -0400
@@ -56,13 +56,13 @@
parser.add_argument('--max_strand', action='store_true', help='If matches on both strands at a given position satisfy the output threshold, only report the match for the strand with the higher score')
parser.add_argument('--max_stored_scores', dest='max_stored_scores', type=int, help='Maximum score count to store')
parser.add_argument('--motif', dest='motifs', action='append', default=[], help='Specify motif by id')
-parser.add_argument('--output_separate_motifs', default="no", help='Output one dataset per motif')
+parser.add_argument('--output_separate_motifs', dest='output_separate_motifs', default='no', help='Output one dataset per motif')
parser.add_argument('--motif_pseudo', dest='motif_pseudo', type=float, default=0.1, help='Pseudocount to add to counts in motif matrix')
parser.add_argument('--no_qvalue', action='store_true', help='Do not compute a q-value for each p-value')
parser.add_argument('--norc', action='store_true', help='Do not score the reverse complement DNA strand')
parser.add_argument('--output_path', dest='output_path', help='Output files directory')
-parser.add_argument('--parse_genomic_coord', default='no', help='Check each sequence header for UCSC style genomic coordinates')
-parser.add_argument('--remove_duplicate_coords', default='no', help='Remove duplicate entries in unique GFF coordinates')
+parser.add_argument('--parse_genomic_coord', dest='parse_genomic_coord', default='no', help='Check each sequence header for UCSC style genomic coordinates')
+parser.add_argument('--remove_duplicate_coords', dest='remove_duplicate_coords', default='no', help='Remove duplicate entries in unique GFF coordinates')
parser.add_argument('--qv_thresh', action='store_true', help='Use q-values for the output threshold')
parser.add_argument('--thresh', dest='thresh', type=float, help='p-value threshold')
parser.add_argument('--gff_output', dest='gff_output', help='Gff output file')
diff -r d44c2896957f -r e5e9a09ac2de meme.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/meme.xml Wed Jun 29 08:26:51 2016 -0400
@@ -0,0 +1,335 @@
+
+ - Multiple Em for Motif Elicitation
+
+ imagemagick
+ meme
+
+
+ &1 || echo "Error running MEME."
+ && mv ${html_outfile.files_path}/meme.html ${html_outfile}
+ && mv ${html_outfile.files_path}/meme.txt ${txt_outfile}
+ && mv ${html_outfile.files_path}/meme.xml ${xml_outfile}
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ value == True
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+.. class:: warningmark
+
+**WARNING: This tool is only available for non-commercial use. Use for educational, research and non-profit purposes is permitted.
+Before using, be sure to review, agree, and comply with the license.**
+
+If you want to specify sequence weights, you must include them at the top of your input FASTA file.
+
+MEME discovers novel, ungapped motifs (recurring, fixed-length patterns) in your sequences (sample output from sequences).
+MEME splits variable-length patterns into two or more separate motifs. A motif is a sequence pattern that occurs repeatedly
+in a group of related sequences. MEME represents motifs as position-dependent letter-probability matrices which describe the
+probability of each possible letter at each position in the pattern. Individual MEME motifs do not contain gaps. Patterns
+with variable-length gaps are split by MEME into two or more separate motifs. MEME takes as input a group of sequences and
+outputs as many motifs as requested. MEME uses statistical modeling techniques to automatically choose the best width, number
+of occurrences, and description for each motif.
+
+.. class:: infomark
+
+For detailed information on MEME, click here_, or view the license_.
+
+.. _here: http://meme-suite.org/doc/meme.html?man_type=web
+.. _license: http://meme-suite.org/doc/copyright.html?man_type=web
+
+
+
+
+ @article{Proceedings of the Second International Conference on Intelligent Systems for Molecular Biology, pp. 28-36, AAAI Press, Menlo Park, California,
+ author = {Bailey,Timothy L. and Elkan, Charles},
+ title = {Fitting a mixture model by expectation maximization to discover motifs in biopolymers},
+ year = {1994},
+ eprint = {None},
+ url = {http://www.sdsc.edu/~tbailey/papers/ismb94.pdf}
+ }
+
+
diff -r d44c2896957f -r e5e9a09ac2de test-data/meme_input_1.fasta
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/meme_input_1.fasta Wed Jun 29 08:26:51 2016 -0400
@@ -0,0 +1,66 @@
+>chr21_19617074_19617124_+
+AAAAATTATTACTAGGGAGGGGGCCGGAACCTCGGGACGTGGGTATATAA
+>chr21_26934381_26934431_+
+GCGCCTGGTCGGTTATGAGTCACAAGTGAGTTATAAAAGGGTCGCACGTT
+>chr21_28217753_28217803_-
+CAAAGGGGAGGAGTGGGGTGGGGGTGGGGGTTTCACTGGTCCACTATAAA
+>chr21_31710037_31710087_-
+AACACCCAGGTTTCTGAGTATATAATCGCCGCACCAAAGAATTTAATTTT
+>chr21_31744582_31744632_-
+CCCAGGTCTAAGAGCATATATAACTTGGAGTCCAGACTATGACATTCAAA
+>chr21_31768316_31768366_+
+AACGTATATAAATGGTCCTGTCCAGATGTGGCATGCAAACTCAGAATCTT
+>chr21_31914206_31914256_-
+TGACACCCACTACTTAGAGTATAAAATCATTCTGAGAAGTTAGAGACACC
+>chr21_31933633_31933683_-
+TCAGAGTATATATAAATGTTCCTGTCCAGTCACAGTCACCAAACTGACCT
+>chr21_31962741_31962791_-
+ACATATAACTCAGGTTGGATAAAATAATTTGTACAAATCAGGAGAGTCAA
+>chr21_31964683_31964733_+
+TCTGATTCACTGAGGCATATAAAAGGCCCTCTGCGGAGAAGTGTCCATAC
+>chr21_31973364_31973414_+
+aaacttaaaactctataaacttaaaactCTAGAATCTGATCCTGCTATAC
+>chr21_31992870_31992920_+
+CTCATACACTATTGAAGATGTATAAAATTTCATTTGCAGATGGTGACATT
+>chr21_32185595_32185645_-
+TCACCACCCACCAGAGCTGGGATATATAAAGAAGGTTCTGAGACTAGGAA
+>chr21_32202076_32202126_-
+TGCCCACCAGCTTGAGGTATAAAAAGCCCTGTACGGGAAGAGACCTTCAT
+>chr21_32253899_32253949_-
+AGCCCCACCCACCAGCAAGGATATATAAAAGCTCAGGAGTCTGGAGTGAC
+>chr21_32410820_32410870_-
+TCTACCCCACTAATCACTGAGGATGTATAAAAGTCCCAGGGAAGCTGGTG
+>chr21_36411748_36411798_-
+ATAGTTCTGTATAGTTTCAGTTGGCATCtaaaaattatataactttattt
+>chr21_37838750_37838800_-
+gatggttttataaggggcctcaccctcggctcagccctcattcttctcct
+>chr21_45705687_45705737_+
+CCGGGGCGGAGCGGCCTTTGCTCTTTGCGTGGTCGCGGGGGTATAACAGC
+>chr21_45971413_45971463_-
+CAGGCCCTGGGCATATAAAAGCCCCAGCAGCCAACAGGctcacacacaca
+>chr21_45978668_45978718_-
+CAGAGGGGTATAAAGGTTCCGACCACTCAGAGGCCTGGCACGAtcactca
+>chr21_45993530_45993580_+
+CCAAGGAGGAGTATAAAAGCCCCACAAACCCGAGCACCTCACTCACTCGC
+>chr21_46020421_46020471_+
+GAGACATATAAAAGCCAACATCCCTGAGCACCTAACACACGGactcactc
+>chr21_46031920_46031970_+
+GGAAAATACCCAGGGAGGGTATAAAACCTCAGCAGCCAGGGCACACAAAC
+>chr21_46046964_46047014_+
+ACAAGGCCAGGAGGGGTATAAAAGCCTGAGAGCCCCAAGAACctcacaca
+>chr21_46057197_46057247_+
+ATTGCTGAGTCTCCTGCTGGGAAAACACAGGCCCTGGGCATATAAAAGCC
+>chr21_46086869_46086919_-
+GACAGGTGTGCTTCTGTGCTGTGGGGATGCCTGGGCCCAGGTATAAAGGC
+>chr21_46102103_46102153_-
+AGGTGTGTGCTTCTGTGCTGTGGGGATGCCTGGGTCCAGGTATAAAGGCT
+>chr21_47517957_47518007_+
+CCTGGCGGCGGGGCGGGTCAGGCCGGCGGGGCGGGGTATAAAGGGGGCGG
+>chr21_47517957_47518007_+
+CCTGGCGGCGGGGCGGGTCAGGCCGGCGGGGCGGGGTATAAAGGGGGCGG
+>chr21_47517957_47518007_+
+CCTGGCGGCGGGGCGGGTCAGGCCGGCGGGGCGGGGTATAAAGGGGGCGG
+>chr21_47575506_47575556_-
+TGAGAAGCCGGTGGGGAGGTGCTGCCGGTGAGCGTATAAAGGCCCTGGCG
+>chr21_47575506_47575556_-
+TGAGAAGCCGGTGGGGAGGTGCTGCCGGTGAGCGTATAAAGGCCCTGGCG
diff -r d44c2896957f -r e5e9a09ac2de test-data/prior30.plib
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/prior30.plib Wed Jun 29 08:26:51 2016 -0400
@@ -0,0 +1,275 @@
+Alphabet= ACDEFGHIKLMNPQRSTVWY
+NumDistr= 30
+Number= 0
+Mixture= 0.055795
+B= 5.623820
+Alpha= 0.0855491 0.0221831 0.0111063 0.0209959 0.0505726 0.025437 0.0155389 0.132951 0.0247865 0.150287 0.0577239 0.0209317 0.0166629 0.0220905 0.0244295 0.0497608 0.070277 0.157532 0.0102219 0.0309633
+FullUpdate= 1
+QUpdate= 1
+StructID= 0
+Comment= HMM9.4 reestimated in henikoff29.2
+
+Number= 1
+Mixture= 0.198333
+B= 0.097240
+Alpha= 0.0562629 0.0329597 0.0692513 0.0385232 0.0400041 0.143573 0.0428939 0.0226244 0.0442102 0.0665467 0.0117853 0.0447655 0.0833299 0.0395825 0.0611271 0.0588852 0.0513472 0.0317153 0.0237865 0.0368161
+FullUpdate= 1
+QUpdate= 1
+StructID= 24
+Comment= Outside
+
+Number= 2
+Mixture= 0.043566
+B= 1.648336
+Alpha= 0.0144564 0.00845337 0.00785519 0.00864933 0.255959 0.0110815 0.0509526 0.0234533 0.0120443 0.0561967 0.015111 0.0190974 0.00857653 0.0167812 0.0164918 0.0197108 0.0151013 0.0252782 0.050139 0.364613
+FullUpdate= 1
+QUpdate= 1
+StructID= 26
+Comment= Inside
+
+Number= 3
+Mixture= 0.060170
+B= 2.595432
+Alpha= 0.0452144 0.00587917 0.169731 0.0751478 0.00749471 0.0845832 0.0369819 0.00610072 0.0548186 0.011029 0.00382749 0.212785 0.0206532 0.0416705 0.0280716 0.117267 0.0533742 0.00943157 0.00216149 0.0137784
+FullUpdate= 1
+QUpdate= 1
+StructID= 19
+Comment= Outside Alpha
+
+Number= 4
+Mixture= 0.065466
+B= 3.112271
+Alpha= 0.0361167 0.0049157 0.0134924 0.0461325 0.00557631 0.0209043 0.0302551 0.016425 0.307554 0.0338255 0.0139435 0.0360733 0.0127659 0.0873761 0.222668 0.0369042 0.0354442 0.0228891 0.00434827 0.0123906
+FullUpdate= 1
+QUpdate= 1
+StructID= 21
+Comment= Outside Beta
+
+Number= 5
+Mixture= 0.067614
+B= 2.053644
+Alpha= 0.0194362 0.00765176 0.00188738 0.00372898 0.0849894 0.00421787 0.00400459 0.152735 0.00407958 0.4568 0.106051 0.00304386 0.00545956 0.00900935 0.00605071 0.00519029 0.016255 0.0861045 0.00787965 0.0154248
+FullUpdate= 1
+QUpdate= 1
+StructID= 22
+Comment= Inside alpha
+
+Number= 6
+Mixture= 0.080724
+B= 2.138987
+Alpha= 0.0423172 0.0153891 0.00409306 0.00565735 0.0197117 0.00590607 0.00139926 0.307863 0.00544884 0.115721 0.0285808 0.00522771 0.00474851 0.00328193 0.00351054 0.00892385 0.0348922 0.380003 0.00117673 0.00614917
+FullUpdate= 1
+QUpdate= 1
+StructID= 23
+Comment= Inside beta
+
+Number= 7
+Mixture= 0.051030
+B= 3.878926
+Alpha= 0.0548123 0.000759746 0.144127 0.46019 0.00249502 0.0192754 0.0106535 0.00938765 0.0562429 0.0163148 0.00717389 0.0245612 0.0177482 0.0744802 0.0199233 0.0323535 0.0257651 0.018574 0.00087086 0.00429088
+FullUpdate= 1
+QUpdate= 1
+StructID= 23
+Comment= Alpha helix
+
+Number= 8
+Mixture= 0.103529
+B= 1.486325
+Alpha= 0.315754 0.0384546 0.0116388 0.0133665 0.0111126 0.107921 0.00752325 0.0154885 0.0111281 0.0231087 0.011626 0.0228375 0.0304785 0.0166632 0.0156345 0.186379 0.0954421 0.0546691 0.00351538 0.00725682
+FullUpdate= 1
+QUpdate= 1
+StructID= 23
+Comment= Beta strand
+
+Number= 9
+Mixture= 0.062940
+B= 8.221215
+Alpha= 0.0869919 0.00672577 0.0600995 0.10763 0.0153489 0.0378086 0.0325335 0.023388 0.113765 0.041623 0.0196906 0.0625344 0.0262599 0.0788667 0.0707399 0.0886634 0.0666777 0.0361472 0.00484308 0.0196629
+FullUpdate= 1
+QUpdate= 1
+StructID= 23
+Comment= Other
+
+Number= 10
+Mixture= 0.012518
+B= 38.955631
+Alpha= 0.732922 0.0145131 0.00623235 0.00951423 0.00717778 0.0289521 0.00351664 0.0125081 0.00886593 0.0183651 0.00832812 0.00670968 0.00364556 0.00622169 0.00812899 0.0582399 0.0205067 0.0394327 0.00207485 0.00414489
+FullUpdate= 1
+QUpdate= 1
+StructID= 0
+Comment= A
+
+Number= 11
+Mixture= 0.004953
+B= 381.562195
+Alpha= 0.00563239 0.959814 0.00144129 0.00213042 0.00158645 0.00168393 0.000989765 0.00325263 0.00148501 0.00343924 0.00168673 0.00159054 0.00121534 0.00129942 0.00195209 0.00296106 0.0039912 0.00266944 0.000327808 0.000851203
+FullUpdate= 1
+QUpdate= 1
+StructID= 0
+Comment= C
+
+Number= 12
+Mixture= 0.013849
+B= 90.727570
+Alpha= 0.00897115 0.00169015 0.859473 0.0360829 0.00269485 0.00606504 0.00469816 0.00400134 0.0047981 0.00514968 0.00208395 0.029754 0.00241276 0.0045506 0.00433816 0.0088208 0.00511143 0.00527448 0.00104469 0.00298475
+FullUpdate= 1
+QUpdate= 1
+StructID= 0
+Comment= D
+
+Number= 13
+Mixture= 0.008388
+B= 404.591034
+Alpha= 0.00241514 0.000413991 0.0122981 0.96369 0.000665578 0.00187461 0.00106904 0.00149214 0.00121548 0.00129791 0.000554145 0.00253496 0.000624495 0.00316839 0.00115045 0.00171781 0.001468 0.0014564 0.000278652 0.000614791
+FullUpdate= 1
+QUpdate= 1
+StructID= 0
+Comment= E
+
+Number= 14
+Mixture= 0.008064
+B= 83.323669
+Alpha= 0.00839779 0.00428348 0.00298116 0.00358128 0.850936 0.00329382 0.00196832 0.0130534 0.00320345 0.0351883 0.00729724 0.00287304 0.00358482 0.00218728 0.00264753 0.00833798 0.00418729 0.0120684 0.00448366 0.025446
+FullUpdate= 1
+QUpdate= 1
+StructID= 0
+Comment= F
+
+Number= 15
+Mixture= 0.032205
+B= 32.644871
+Alpha= 0.0234448 0.00236512 0.0112957 0.00811395 0.00248143 0.868718 0.00345598 0.00342985 0.00859682 0.0040966 0.00239339 0.012342 0.00423123 0.00440054 0.00795347 0.0165095 0.0065024 0.00550512 0.00140604 0.00275817
+FullUpdate= 1
+QUpdate= 1
+StructID= 0
+Comment= G
+
+Number= 16
+Mixture= 0.005033
+B= 35.520824
+Alpha= 0.0100058 0.00386024 0.0131498 0.0108984 0.0122851 0.00738691 0.722249 0.00521193 0.00686054 0.0150103 0.00673014 0.0367074 0.00625526 0.0429912 0.0234127 0.0187246 0.0128445 0.00837399 0.00390723 0.0331349
+FullUpdate= 1
+QUpdate= 1
+StructID= 0
+Comment= H
+
+Number= 17
+Mixture= 0.007454
+B= 101.265472
+Alpha= 0.0106938 0.00267663 0.00404166 0.00466637 0.00838963 0.00372808 0.00182575 0.681615 0.0059102 0.0770333 0.0184335 0.004676 0.0027124 0.00372663 0.00418165 0.00773357 0.0109237 0.140679 0.00140417 0.00494911
+FullUpdate= 1
+QUpdate= 1
+StructID= 0
+Comment= I
+
+Number= 18
+Mixture= 0.009400
+B= 150.415985
+Alpha= 0.00688657 0.00169711 0.00222738 0.00346887 0.00115861 0.00302866 0.00209171 0.00400905 0.903944 0.0037747 0.00186061 0.00449531 0.00249618 0.00324487 0.041775 0.00392196 0.00461714 0.00296607 0.000893256 0.00144282
+FullUpdate= 1
+QUpdate= 1
+StructID= 0
+Comment= K
+
+Number= 19
+Mixture= 0.017057
+B= 31.896633
+Alpha= 0.0114646 0.00367926 0.00296188 0.00596126 0.0190009 0.00382486 0.00338381 0.0401936 0.00650072 0.790038 0.031659 0.00392791 0.0050046 0.00753591 0.00771818 0.00748621 0.0101555 0.0312597 0.00242405 0.00581952
+FullUpdate= 1
+QUpdate= 1
+StructID= 0
+Comment= L
+
+Number= 20
+Mixture= 0.002761
+B= 201.346268
+Alpha= 0.00353933 0.00165628 0.0014931 0.00161065 0.00279831 0.00194259 0.00101868 0.00969101 0.00211316 0.0217036 0.928022 0.00162899 0.0015681 0.0015629 0.00138977 0.00294601 0.00311476 0.00723178 0.00156295 0.00340569
+FullUpdate= 1
+QUpdate= 1
+StructID= 0
+Comment= M
+
+Number= 21
+Mixture= 0.005734
+B= 108.343185
+Alpha= 0.0067512 0.00239062 0.0140378 0.0043452 0.00365788 0.00689345 0.0148828 0.00715373 0.00789036 0.00614036 0.00289697 0.858995 0.00399721 0.00770961 0.00570515 0.0238176 0.011602 0.00591549 0.00167893 0.00353897
+FullUpdate= 1
+QUpdate= 1
+StructID= 0
+Comment= N
+
+Number= 22
+Mixture= 0.022818
+B= 15.153304
+Alpha= 0.0417987 0.00360232 0.0113792 0.0152366 0.00564775 0.0123795 0.00606957 0.0091353 0.0165122 0.0167265 0.00490487 0.00915437 0.755604 0.0131375 0.012587 0.0283392 0.0189623 0.0140029 0.0012848 0.00353553
+FullUpdate= 1
+QUpdate= 1
+StructID= 0
+Comment= P
+
+Number= 23
+Mixture= 0.005931
+B= 79.417511
+Alpha= 0.0142993 0.00266984 0.0053289 0.0321605 0.0028715 0.00426743 0.0257509 0.00565307 0.0106106 0.0161186 0.00955753 0.0104696 0.00638107 0.807311 0.0149106 0.0111968 0.00889459 0.00681482 0.00206658 0.00266624
+FullUpdate= 1
+QUpdate= 1
+StructID= 0
+Comment= Q
+
+Number= 24
+Mixture= 0.011491
+B= 93.103897
+Alpha= 0.00756896 0.00314197 0.00296652 0.00327634 0.00194604 0.00467894 0.00721049 0.00406061 0.0277257 0.00663852 0.00217868 0.00577047 0.00473306 0.00953551 0.889701 0.00650859 0.00506022 0.00294281 0.00205549 0.00230062
+FullUpdate= 1
+QUpdate= 1
+StructID= 0
+Comment= R
+
+Number= 25
+Mixture= 0.008219
+B= 47.504795
+Alpha= 0.0284818 0.00697155 0.00749796 0.00604665 0.00515171 0.00954817 0.00380684 0.00637929 0.0104463 0.00908885 0.00471437 0.0194592 0.00711823 0.00611827 0.00979722 0.707416 0.139256 0.00656298 0.0015377 0.00460086
+FullUpdate= 1
+QUpdate= 1
+StructID= 0
+Comment= S
+
+Number= 26
+Mixture= 0.019050
+B= 14.027470
+Alpha= 0.0247201 0.00718027 0.00845584 0.0076239 0.00600101 0.0073401 0.00492149 0.0173757 0.0129878 0.0125773 0.0100452 0.0230424 0.00659406 0.0110314 0.0112037 0.107763 0.690341 0.0249364 0.00193884 0.00392074
+FullUpdate= 1
+QUpdate= 1
+StructID= 0
+Comment= T
+
+Number= 27
+Mixture= 0.007047
+B= 76.958153
+Alpha= 0.0447488 0.00734525 0.00576457 0.00805666 0.00714188 0.00593389 0.0041663 0.0688592 0.00714299 0.0255115 0.00800708 0.00501678 0.00632646 0.00492002 0.00812967 0.0100074 0.0240134 0.745035 0.00126243 0.00261056
+FullUpdate= 1
+QUpdate= 1
+StructID= 0
+Comment= V
+
+Number= 28
+Mixture= 0.003957
+B= 150.973328
+Alpha= 0.00517343 0.00213336 0.00350645 0.00390297 0.018439 0.0041919 0.0023655 0.00404231 0.00420998 0.0171406 0.00379068 0.00363696 0.00245861 0.00387467 0.00502035 0.00465674 0.00417283 0.00620977 0.888513 0.012561
+FullUpdate= 1
+QUpdate= 1
+StructID= 0
+Comment= W
+
+Number= 29
+Mixture= 0.004904
+B= 30.653225
+Alpha= 0.0342049 0.00809912 0.0126852 0.0174701 0.156033 0.0118268 0.0431342 0.0204751 0.0164439 0.0363664 0.0129811 0.0131986 0.0103037 0.0116235 0.0159032 0.0287792 0.0176143 0.024986 0.0131845 0.494687
+FullUpdate= 1
+QUpdate= 1
+StructID= 0
+Comment= Y
+
+/* $Header$ */
+/* $Header$ */
+/* $Header$ */