annotate fimo_wrapper.py @ 10:b8c05adb68da draft

planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit 3f116ddc83447056068573320c148a9bfca9aa2e
author iuc
date Wed, 23 Aug 2017 20:57:09 -0400
parents e8b209806a20
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
7
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
1 #!/usr/bin/env python
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
2 import argparse
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
3 import os
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
4 import shutil
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
5 import string
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
6 import subprocess
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
7 import sys
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
8 import tempfile
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
9
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
10 BUFFSIZE = 1048576
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
11 # Translation table for reverse Complement, with ambiguity codes.
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
12 DNA_COMPLEMENT = string.maketrans("ACGTRYKMBDHVacgtrykmbdhv", "TGCAYRMKVHDBtgcayrmkvhdb")
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
13
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
14
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
15 def get_stderr(tmp_stderr):
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
16 tmp_stderr.seek(0)
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
17 stderr = ''
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
18 try:
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
19 while True:
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
20 stderr += tmp_stderr.read(BUFFSIZE)
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
21 if not stderr or len(stderr) % BUFFSIZE != 0:
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
22 break
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
23 except OverflowError:
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
24 pass
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
25 return stderr
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
26
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
27
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
28 def reverse(sequence):
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
29 # Reverse sequence string.
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
30 return sequence[::-1]
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
31
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
32
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
33 def dna_complement(sequence):
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
34 # Complement DNA sequence string.
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
35 return sequence.translate(DNA_COMPLEMENT)
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
36
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
37
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
38 def dna_reverse_complement(sequence):
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
39 # Returns the reverse complement of the sequence.
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
40 sequence = reverse(sequence)
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
41 return dna_complement(sequence)
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
42
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
43
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
44 def stop_err(msg):
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
45 sys.stderr.write(msg)
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
46 sys.exit(1)
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
47
8
e8b209806a20 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit bcfc8451fa622a6bf3aa31fa1e308c394feefb38
iuc
parents: 7
diff changeset
48
7
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
49 parser = argparse.ArgumentParser()
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
50 parser.add_argument('--input_motifs', dest='input_motifs', help='MEME output formatted files for input to fimo')
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
51 parser.add_argument('--input_fasta', dest='input_fasta', help='Fassta sequence file')
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
52 parser.add_argument('--options_type', dest='options_type', help='Basic or Advance options')
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
53 parser.add_argument('--input_psp', dest='input_psp', default=None, help='File containing position specific priors')
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
54 parser.add_argument('--input_prior_dist', dest='input_prior_dist', default=None, help='File containing binned distribution of priors')
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
55 parser.add_argument('--alpha', dest='alpha', type=float, default=1.0, help='The alpha parameter for calculating position specific priors')
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
56 parser.add_argument('--bgfile', dest='bgfile', default=None, help='Background file type, used only if not "default"')
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
57 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')
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
58 parser.add_argument('--max_stored_scores', dest='max_stored_scores', type=int, help='Maximum score count to store')
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
59 parser.add_argument('--motif', dest='motifs', action='append', default=[], help='Specify motif by id')
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
60 parser.add_argument('--output_separate_motifs', dest='output_separate_motifs', default='no', help='Output one dataset per motif')
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
61 parser.add_argument('--motif_pseudo', dest='motif_pseudo', type=float, default=0.1, help='Pseudocount to add to counts in motif matrix')
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
62 parser.add_argument('--no_qvalue', action='store_true', help='Do not compute a q-value for each p-value')
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
63 parser.add_argument('--norc', action='store_true', help='Do not score the reverse complement DNA strand')
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
64 parser.add_argument('--output_path', dest='output_path', help='Output files directory')
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
65 parser.add_argument('--parse_genomic_coord', dest='parse_genomic_coord', default='no', help='Check each sequence header for UCSC style genomic coordinates')
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
66 parser.add_argument('--remove_duplicate_coords', dest='remove_duplicate_coords', default='no', help='Remove duplicate entries in unique GFF coordinates')
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
67 parser.add_argument('--qv_thresh', action='store_true', help='Use q-values for the output threshold')
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
68 parser.add_argument('--thresh', dest='thresh', type=float, help='p-value threshold')
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
69 parser.add_argument('--gff_output', dest='gff_output', help='Gff output file')
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
70 parser.add_argument('--html_output', dest='html_output', help='HTML output file')
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
71 parser.add_argument('--interval_output', dest='interval_output', help='Interval output file')
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
72 parser.add_argument('--txt_output', dest='txt_output', help='Text output file')
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
73 parser.add_argument('--xml_output', dest='xml_output', help='XML output file')
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
74 args = parser.parse_args()
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
75
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
76 fimo_cmd_list = ['fimo']
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
77 if args.options_type == 'advanced':
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
78 fimo_cmd_list.append('--alpha %4f' % args.alpha)
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
79 if args.bgfile is not None:
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
80 fimo_cmd_list.append('--bgfile "%s"' % args.bgfile)
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
81 if args.max_strand:
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
82 fimo_cmd_list.append('--max-strand')
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
83 fimo_cmd_list.append('--max-stored-scores %d' % args.max_stored_scores)
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
84 if len(args.motifs) > 0:
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
85 for motif in args.motifs:
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
86 fimo_cmd_list.append('--motif "%s"' % motif)
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
87 fimo_cmd_list.append('--motif-pseudo %4f' % args.motif_pseudo)
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
88 if args.no_qvalue:
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
89 fimo_cmd_list.append('--no-qvalue')
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
90 if args.norc:
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
91 fimo_cmd_list.append('--norc')
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
92 if args.parse_genomic_coord == 'yes':
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
93 fimo_cmd_list.append('--parse-genomic-coord')
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
94 if args.qv_thresh:
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
95 fimo_cmd_list.append('--qv-thresh')
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
96 fimo_cmd_list.append('--thresh %4f' % args.thresh)
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
97 if args.input_psp is not None:
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
98 fimo_cmd_list.append('--psp "%s"' % args.input_psp)
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
99 if args.input_prior_dist is not None:
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
100 fimo_cmd_list.append('--prior-dist "%s"' % args.input_prior_dist)
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
101 fimo_cmd_list.append('--o "%s"' % (args.output_path))
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
102 fimo_cmd_list.append('--verbosity 1')
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
103 fimo_cmd_list.append(args.input_motifs)
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
104 fimo_cmd_list.append(args.input_fasta)
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
105
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
106 fimo_cmd = ' '.join(fimo_cmd_list)
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
107
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
108 try:
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
109 tmp_stderr = tempfile.NamedTemporaryFile()
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
110 proc = subprocess.Popen(args=fimo_cmd, shell=True, stderr=tmp_stderr)
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
111 returncode = proc.wait()
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
112 if returncode != 0:
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
113 stderr = get_stderr(tmp_stderr)
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
114 stop_err(stderr)
10
b8c05adb68da planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit 3f116ddc83447056068573320c148a9bfca9aa2e
iuc
parents: 8
diff changeset
115 except Exception as e:
b8c05adb68da planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit 3f116ddc83447056068573320c148a9bfca9aa2e
iuc
parents: 8
diff changeset
116 stop_err('Error running FIMO:\n%s' % e)
7
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
117
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
118 shutil.move(os.path.join(args.output_path, 'fimo.txt'), args.txt_output)
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
119
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
120 gff_file = os.path.join(args.output_path, 'fimo.gff')
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
121 if args.remove_duplicate_coords == 'yes':
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
122 tmp_stderr = tempfile.NamedTemporaryFile()
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
123 # Identify and eliminating identical motif occurrences. These
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
124 # are identical if the combination of chrom, start, end and
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
125 # motif id are identical.
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
126 cmd = 'sort -k1,1 -k4,4n -k5,5n -k9.1,9.6 -u -o %s %s' % (gff_file, gff_file)
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
127 proc = subprocess.Popen(args=cmd, stderr=tmp_stderr, shell=True)
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
128 returncode = proc.wait()
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
129 if returncode != 0:
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
130 stderr = get_stderr(tmp_stderr)
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
131 stop_err(stderr)
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
132 # Sort GFF output by a combination of chrom, score, start.
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
133 cmd = 'sort -k1,1 -k4,4n -k6,6n -o %s %s' % (gff_file, gff_file)
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
134 proc = subprocess.Popen(args=cmd, stderr=tmp_stderr, shell=True)
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
135 returncode = proc.wait()
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
136 if returncode != 0:
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
137 stderr = get_stderr(tmp_stderr)
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
138 stop_err(stderr)
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
139 if args.output_separate_motifs == 'yes':
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
140 # Create the collection output directory.
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
141 collection_path = (os.path.join(os.getcwd(), 'output'))
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
142 # Keep track of motif occurrences.
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
143 header_line = None
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
144 motif_ids = []
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
145 file_handles = []
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
146 for line in open(gff_file, 'r'):
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
147 if line.startswith('#'):
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
148 if header_line is None:
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
149 header_line = line
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
150 continue
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
151 items = line.split('\t')
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
152 attribute = items[8]
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
153 attributes = attribute.split(';')
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
154 name = attributes[0]
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
155 motif_id = name.split('=')[1]
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
156 file_name = os.path.join(collection_path, 'MOTIF%s.gff' % motif_id)
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
157 if motif_id in motif_ids:
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
158 i = motif_ids.index(motif_id)
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
159 fh = file_handles[i]
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
160 fh.write(line)
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
161 else:
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
162 fh = open(file_name, 'wb')
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
163 if header_line is not None:
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
164 fh.write(header_line)
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
165 fh.write(line)
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
166 motif_ids.append(motif_id)
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
167 file_handles.append(fh)
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
168 for file_handle in file_handles:
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
169 file_handle.close()
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
170 else:
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
171 shutil.move(gff_file, args.gff_output)
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
172 shutil.move(os.path.join(args.output_path, 'fimo.xml'), args.xml_output)
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
173 shutil.move(os.path.join(args.output_path, 'fimo.html'), args.html_output)
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
174
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
175 out_file = open(args.interval_output, 'wb')
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
176 out_file.write("#%s\n" % "\t".join(("chr", "start", "end", "pattern name", "score", "strand", "matched sequence", "p-value", "q-value")))
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
177 for line in open(args.txt_output):
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
178 if line.startswith('#'):
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
179 continue
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
180 fields = line.rstrip("\n\r").split("\t")
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
181 start, end = int(fields[2]), int(fields[3])
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
182 sequence = fields[7]
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
183 if start > end:
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
184 # Flip start and end and set strand.
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
185 start, end = end, start
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
186 strand = "-"
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
187 # We want sequences relative to strand; FIMO always provides + stranded sequence.
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
188 sequence = dna_reverse_complement(sequence)
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
189 else:
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
190 strand = "+"
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
191 # Make 0-based start position.
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
192 start -= 1
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
193 out_file.write("%s\n" % "\t".join([fields[1], str(start), str(end), fields[0], fields[4], strand, sequence, fields[5], fields[6]]))
487ce3fa1822 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/meme commit ef11594cf3ca79e444ab4e30d83de5951a636faf
iuc
parents:
diff changeset
194 out_file.close()