1 new changeset in galaxy-central:
http://bitbucket.org/galaxy/galaxy-central/changeset/5774231adb8d/
changeset: r5253:5774231adb8d
user: natefoo
date: 2011-03-23 15:59:26
summary: Set the ftype of SRMA test outputs so the BAMs are compared as SAMs
affected #: 1 file (24 bytes)
--- a/tools/sr_mapping/srma_wrapper.xml Wed Mar 23 09:57:06 2011 -0400
+++ b/tools/sr_mapping/srma_wrapper.xml Wed Mar 23 10:59:26 2011 -0400
@@ -91,7 +91,7 @@
<param name="ref" value="hg18chr21" /><param name="input" value="srma_in1.bam" type="bam" /><param name="source_select" value="pre_set" />
- <output name="output" file="srma_out1.bam"/>
+ <output name="output" file="srma_out1.bam" ftype="bam"/></test><test><!-- Commands to run to prepare test files (uses custom genome):
@@ -118,7 +118,7 @@
<param name="correctBases" value="true" /><param name="useSequenceQualities" value="true" /><param name="maxHeapSize" value="8192" />
- <output name="output" file="srma_out2.bam"/>
+ <output name="output" file="srma_out2.bam" ftype="bam"/></test></tests><help>
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1 new changeset in galaxy-central:
http://bitbucket.org/galaxy/galaxy-central/changeset/a62cec23a157/
changeset: r5252:a62cec23a157
user: dan
date: 2011-03-23 14:57:06
summary: Add IGV as an external display application. Contributed by Tobias Wohlfrom.
Provides two links for IGV:
1) web - to view with Java web start IGV if the user has no IGV installed
2) local - to view in the user's running IGV instance (requires remote port enabled in IGV)
affected #: 2 files (52 bytes)
--- a/datatypes_conf.xml.sample Wed Mar 23 09:03:13 2011 -0400
+++ b/datatypes_conf.xml.sample Wed Mar 23 09:57:06 2011 -0400
@@ -9,6 +9,7 @@
<converter file="bam_to_summary_tree_converter.xml" target_datatype="summary_tree" depends_on="bai"/><display file="ucsc/bam.xml" /><display file="ensembl/ensembl_bam.xml" />
+ <!-- <display file="igv/bam.xml" /> --></datatype><datatype extension="bed" type="galaxy.datatypes.interval:Bed" display_in_upload="true"><converter file="bed_to_gff_converter.xml" target_datatype="gff"/>
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1 new changeset in galaxy-central:
http://bitbucket.org/galaxy/galaxy-central/changeset/ce872e9673aa/
changeset: r5250:ce872e9673aa
user: dan
date: 2011-03-23 13:42:01
summary: Disable functional test for not being able to import your own history which was enabled in 5248:dc9efb540f61.
affected #: 1 file (73 bytes)
--- a/test/functional/test_history_functions.py Tue Mar 22 20:29:32 2011 -0400
+++ b/test/functional/test_history_functions.py Wed Mar 23 08:42:01 2011 -0400
@@ -189,9 +189,10 @@
if not history3.importable:
raise AssertionError, "History 3 is not marked as importable after make_accessible_via_link"
# Try importing history3
- self.import_history_via_url( self.security.encode_id( history3.id ),
- admin_user.email,
- strings_displayed_after_submit=[ 'You cannot import your own history.' ] )
+ #Importing your own history was enabled in 5248:dc9efb540f61.
+ #self.import_history_via_url( self.security.encode_id( history3.id ),
+ # admin_user.email,
+ # strings_displayed_after_submit=[ 'You cannot import your own history.' ] )
# Disable access via link for history3.
self.disable_access_via_link( self.security.encode_id( history3.id ),
strings_displayed=[ 'Anyone can view and import this history' ],
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1 new changeset in galaxy-central:
http://bitbucket.org/galaxy/galaxy-central/changeset/dc9efb540f61/
changeset: r5248:dc9efb540f61
user: dan
date: 2011-03-23 00:43:32
summary: Allow importing one's own history.
affected #: 1 file (49 bytes)
--- a/lib/galaxy/web/controllers/history.py Tue Mar 22 17:49:09 2011 -0400
+++ b/lib/galaxy/web/controllers/history.py Tue Mar 22 19:43:32 2011 -0400
@@ -669,8 +669,9 @@
if not trans.user_is_admin() and not self.security_check( user, import_history, check_ownership=False, check_accessible=True ):
return trans.show_error_message( "You cannot access this history.<br>You can %s." % referer_message, use_panels=True )
if user:
- if import_history.user_id == user.id:
- return trans.show_error_message( "You cannot import your own history.<br>You can %s." % referer_message, use_panels=True )
+ #dan: I can import my own history.
+ #if import_history.user_id == user.id:
+ # return trans.show_error_message( "You cannot import your own history.<br>You can %s." % referer_message, use_panels=True )
new_history = import_history.copy( target_user=user )
new_history.name = "imported: " + new_history.name
new_history.user_id = user.id
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1 new changeset in galaxy-central:
http://bitbucket.org/galaxy/galaxy-central/changeset/4d521da04318/
changeset: r5247:4d521da04318
user: kanwei
date: 2011-03-22 22:49:09
summary: Refactor Grouping tool and fix bug where data after a blank value in the group_by column returns the wrong data.
affected #: 2 files (5.1 KB)
--- a/tools/stats/grouping.py Tue Mar 22 14:08:32 2011 -0400
+++ b/tools/stats/grouping.py Tue Mar 22 17:49:09 2011 -0400
@@ -1,10 +1,12 @@
#!/usr/bin/env python
-#Guruprasad Ananda
+# Guruprasad Ananda
+# Refactored 2011, Kanwei Li
"""
This tool provides the SQL "group by" functionality.
"""
import sys, string, re, commands, tempfile, random
from rpy import *
+from itertools import groupby
def stop_err(msg):
sys.stderr.write(msg)
@@ -53,10 +55,10 @@
stop_err( "Group column not specified." )
str_ops = ['c', 'length', 'unique', 'random', 'cuniq', 'Mode'] #ops that can handle string/non-numeric inputs
- for k,col in enumerate(cols):
+ for k, col in enumerate(cols):
col = int(col)-1
if ops[k] not in str_ops:
- # We'll get here only if the user didn't choose 'Concatenate' or 'Count' or 'Count Distinct' or 'pick randmly', which are the
+ # We'll get here only if the user didn't choose 'Concatenate' or 'Count' or 'Count Distinct' or 'pick randomly', which are the
# only aggregation functions that can be used on columns containing strings.
try:
float( elems[col] )
@@ -90,191 +92,94 @@
if error_code != 0:
stop_err( "Sorting input dataset resulted in error: %s: %s" %( error_code, stdout ))
- prev_item = ""
- prev_vals = []
+ prev_item = None
skipped_lines = 0
- first_invalid_line = 0
- invalid_line = ''
+ first_invalid_line = None
invalid_value = ''
invalid_column = 0
fout = open(sys.argv[1], "w")
- for ii, line in enumerate( file( tmpfile.name )):
- if line and not line.startswith( '#' ):
- line = line.rstrip( '\r\n' )
- try:
- fields = line.split("\t")
- item = fields[group_col]
- if ignorecase == 1:
- item = item.lower()
- if prev_item != "":
- # At this level, we're grouping on values (item and prev_item) in group_col
- if item == prev_item:
- # Keep iterating and storing values until a new value is encountered.
- for i, col in enumerate(cols):
- col = int(col)-1
- valid = True
- # Before appending the current value, make sure it is numeric if the
- # operation for the column requires it.
- if ops[i] not in str_ops:
- try:
- float( fields[col].strip())
- except:
- valid = False
- skipped_lines += 1
- if not first_invalid_line:
- first_invalid_line = ii+1
- invalid_value = fields[col]
- invalid_column = col+1
- if valid:
- prev_vals[i].append(fields[col].strip())
- else:
- """
- When a new value is encountered, write the previous value and the
- corresponding aggregate values into the output file. This works
- due to the sort on group_col we've applied to the data above.
- """
- out_str = prev_item
- multiple_modes = False
- mode_index = None
- for i, op in enumerate( ops ):
- if op == 'cuniq':
- rfunc = "r.c"
- else:
- rfunc = "r." + op
- if op not in str_ops:
- for j, elem in enumerate( prev_vals[i] ):
- prev_vals[i][j] = float( elem )
- rout = eval( rfunc )( prev_vals[i] )
- if rounds[i] == 'yes':
- rout = int(round(float(rout)))
- else:
- rout = '%g' %(float(rout))
- else:
- if op != 'random':
- rout = eval( rfunc )( prev_vals[i] )
- else:
- try:
- rand_index = random.randint(0,len(prev_vals[i])-1) #if the two inputs to randint are equal, it seems to throw a ValueError. This can't be reproduced with the python interpreter in its interactive mode.
- except Exception, ValueError:
- rand_index = 0
- rout = prev_vals[i][rand_index]
-
- if op == 'Mode' and rout == '>1 mode':
- multiple_modes = True
- mode_index = i
- if op == 'unique':
- rfunc = "r.length"
- rout = eval( rfunc )( rout )
- if op in ['c', 'cuniq']:
- if op == 'c':
- if type(rout) == type([]):
- out_str += "\t" + ','.join(rout)
- else:
- out_str += "\t" + str(rout)
- else:
- if type(rout) == type([]):
- out_str += "\t" + ','.join(list(set(rout)))
- else:
- out_str += "\t" + str(rout)
- else:
- out_str += "\t" + str(rout)
- if multiple_modes and mode_index != None:
- out_str_list = out_str.split('\t')
- for val in prev_vals[mode_index]:
- out_str = '\t'.join(out_str_list[:mode_index+1]) + '\t' + str(val) + '\t' + '\t'.join(out_str_list[mode_index+2:])
- print >>fout, out_str.rstrip('\t')
- else:
- print >>fout, out_str
-
- prev_item = item
- prev_vals = []
- for col in cols:
- col = int(col)-1
- val_list = []
- val_list.append(fields[col].strip())
- prev_vals.append(val_list)
- else:
- # This only occurs once, right at the start of the iteration.
- prev_item = item
- for col in cols:
- col = int(col)-1
- val_list = []
- val_list.append(fields[col].strip())
- prev_vals.append(val_list)
-
- except Exception, exc:
- skipped_lines += 1
- if not first_invalid_line:
- first_invalid_line = ii+1
- else:
- skipped_lines += 1
- if not first_invalid_line:
- first_invalid_line = ii+1
-
- # Handle the last grouped value
- out_str = prev_item
- multiple_modes = False
- mode_index = None
- for i, op in enumerate(ops):
- if op == 'cuniq':
- rfunc = "r.c"
- else:
- rfunc = "r." + op
- try:
+ def is_new_item(line):
+ item = line.strip().split("\t")[group_col]
+ if ignorecase == 1:
+ item = item.lower()
+ return item
+
+ for key, line_list in groupby(tmpfile, key=is_new_item):
+ op_vals = [ [] for op in cols ]
+ out_str = key
+ multiple_modes = False
+ mode_index = None
+
+ for line in line_list:
+ fields = line.strip().split("\t")
+ for i, col in enumerate(cols):
+ col = int(col)-1 # cXX from galaxy is 1-based
+ val = fields[col].strip()
+ # Before appending the current value, make sure it is numeric if the
+ # operation for the column requires it.
+ if ops[i] not in str_ops:
+ try:
+ float(val)
+ except ValueError:
+ skipped_lines += 1
+ if first_invalid_line is None:
+ first_invalid_line = i+1
+ invalid_value = fields[col]
+ invalid_column = col+1
+ break
+
+ op_vals[i].append(val)
+
+ for i, op in enumerate( ops ):
+ if op == 'cuniq':
+ rfunc = "r.c"
+ else:
+ rfunc = "r." + op
if op not in str_ops:
- for j, elem in enumerate( prev_vals[i] ):
- prev_vals[i][j] = float( elem )
- rout = eval( rfunc )( prev_vals[i] )
+ for j, elem in enumerate( op_vals[i] ):
+ op_vals[i][j] = float( elem )
+ rout = eval( rfunc )( op_vals[i] )
if rounds[i] == 'yes':
- rout = int(round(float(rout)))
+ rout = round(float(rout))
else:
rout = '%g' %(float(rout))
else:
if op != 'random':
- rout = eval( rfunc )( prev_vals[i] )
+ rout = eval( rfunc )( op_vals[i] )
else:
try:
- rand_index = random.randint(0,len(prev_vals[i])-1) #if the two inputs to randint are equal, it seems to throw a ValueError. This can't be reproduced with the python interpreter in its interactive mode.
- except Exception, ValueError:
+ rand_index = random.randint(0,len(op_vals[i])-1) #if the two inputs to randint are equal, it seems to throw a ValueError. This can't be reproduced with the python interpreter in its interactive mode.
+ except:
rand_index = 0
- rout = prev_vals[i][rand_index]
+ rout = op_vals[i][rand_index]
if op == 'Mode' and rout == '>1 mode':
multiple_modes = True
- mode_index = i
+ mode_index = i
if op == 'unique':
rfunc = "r.length"
- rout = eval( rfunc )( rout )
- if op in ['c','cuniq']:
- if op == 'c':
- if type(rout) == type([]):
- out_str += "\t" + ','.join(rout)
- else:
- out_str += "\t" + str(rout)
+ rout = eval( rfunc )( rout )
+ if op in ['c', 'cuniq']:
+ if isinstance(rout, list):
+ if op == 'cuniq':
+ rout = set(rout)
+ out_str += "\t" + ','.join(rout)
else:
- if type(rout) == type([]):
- out_str += "\t" + ','.join(list(set(rout)))
- else:
- out_str += "\t" + str(rout)
+ out_str += "\t" + str(rout)
else:
- out_str += "\t" + str( rout )
- except:
- skipped_lines += 1
- if not first_invalid_line:
- first_invalid_line = ii+1
-
- if multiple_modes and mode_index != None:
- out_str_list = out_str.split('\t')
- for val in prev_vals[mode_index]:
- out_str = '\t'.join(out_str_list[:mode_index+1]) + '\t' + str(val) + '\t' + '\t'.join(out_str_list[mode_index+2:])
- print >>fout, out_str.rstrip('\t')
- else:
- print >>fout, out_str
+ out_str += "\t" + str(rout)
+ if multiple_modes and mode_index != None:
+ out_str_list = out_str.split('\t')
+ for val in op_vals[mode_index]:
+ out_str = '\t'.join(out_str_list[:mode_index+1]) + '\t' + str(val) + '\t' + '\t'.join(out_str_list[mode_index+2:])
+ fout.write(out_str.rstrip('\t') + "\n")
+ else:
+ fout.write(out_str + "\n")
# Generate a useful info message.
msg = "--Group by c%d: " %(group_col+1)
- for i,op in enumerate(ops):
+ for i, op in enumerate(ops):
if op == 'c':
op = 'concat'
elif op == 'length':
--- a/tools/stats/grouping.xml Tue Mar 22 14:08:32 2011 -0400
+++ b/tools/stats/grouping.xml Tue Mar 22 17:49:09 2011 -0400
@@ -1,4 +1,4 @@
-<tool id="Grouping1" name="Group" version="1.9.3">
+<tool id="Grouping1" name="Group" version="1.9.4"><description>data by a column and perform aggregate operation on other columns.</description><command interpreter="python">
grouping.py
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1 new changeset in galaxy-central:
http://bitbucket.org/galaxy/galaxy-central/changeset/0319becf5e76/
changeset: r5246:0319becf5e76
user: fubar
date: 2011-03-22 19:08:32
summary: Adding two new tool wrappers and tests - clustalw (http://www.clustal.org) for multiple alignments and a sequence motif generator based on weblogo3 (http://weblogo.berkeley.edu) which works on fasta files such as alignments from clustalw
affected #: 8 files (155 bytes)
--- a/tool_conf.xml.sample Tue Mar 22 13:45:31 2011 -0400
+++ b/tool_conf.xml.sample Tue Mar 22 14:08:32 2011 -0400
@@ -204,6 +204,10 @@
</section><section name="Motif Tools" id="motifs"><tool file="meme/meme.xml"/>
+ <tool file="rgenetics/rgWebLogo3.xml" />
+ </section>
+ <section name="Multiple Alignments" id="clustal">
+ <tool file="rgenetics/rgClustalw.xml" /></section><section name="Metagenomic analyses" id="tax_manipulation"><tool file="taxonomy/gi2taxonomy.xml" />
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1 new changeset in galaxy-central:
http://bitbucket.org/galaxy/galaxy-central/changeset/47f813d8cd6a/
changeset: r5244:47f813d8cd6a
user: greg
date: 2011-03-22 15:50:27
summary: Fix for bug introduced in change set 5243:45b772580403.
affected #: 1 file (0 bytes)
--- a/lib/galaxy/web/controllers/user.py Tue Mar 22 10:33:42 2011 -0400
+++ b/lib/galaxy/web/controllers/user.py Tue Mar 22 10:50:27 2011 -0400
@@ -494,7 +494,7 @@
else:
status = 'error'
if webapp == 'galaxy':
- user_type_form_definition = self.__get_user_type_form_definition( trans, user=user, **kwd )
+ user_type_form_definition = self.__get_user_type_form_definition( trans, user=None, **kwd )
user_type_fd_id = params.get( 'user_type_fd_id', 'none' )
if user_type_fd_id == 'none' and user_type_form_definition is not None:
user_type_fd_id = trans.security.encode_id( user_type_form_definition.id )
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.