galaxy-commits
Threads by month
- ----- 2025 -----
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- 15302 discussions

commit/galaxy-central: jgoecks: Refactor data providers to use the get_iterator/process_data framework whenever providing individual data points.
by Bitbucket 16 Nov '11
by Bitbucket 16 Nov '11
16 Nov '11
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/changeset/9b7d5c1c0be6/
changeset: 9b7d5c1c0be6
user: jgoecks
date: 2011-11-16 23:53:27
summary: Refactor data providers to use the get_iterator/process_data framework whenever providing individual data points.
affected #: 1 file
diff -r aeb72f7dc945f5c51270f6757b6ec6b2d5544cba -r 9b7d5c1c0be64f903a928758b256326692fb0f2d lib/galaxy/visualization/tracks/data_providers.py
--- a/lib/galaxy/visualization/tracks/data_providers.py
+++ b/lib/galaxy/visualization/tracks/data_providers.py
@@ -84,6 +84,21 @@
# Override.
pass
+ def get_iterator( self, chrom, start, end ):
+ """
+ Returns an iterator that provides data in the region chrom:start-end
+ """
+ # Override.
+ pass
+
+ def process_data( self, iterator, start_val=0, max_vals=None, **kwargs ):
+ """
+ Process data from an iterator to a format that can be provided to client.
+ """
+ # Override.
+ pass
+
+
def get_data( self, chrom, start, end, start_val=0, max_vals=None, **kwargs ):
"""
Returns data in region defined by chrom, start, and end. start_val and
@@ -93,8 +108,8 @@
Return value must be a dictionary with the following attributes:
dataset_type, data
"""
- # Override.
- pass
+ iterator = self.get_iterator( chrom, start, end )
+ return self.process_data( iterator, start_val, max_vals, **kwargs )
def get_filters( self ):
"""
@@ -236,8 +251,6 @@
bgzip_fname = self.dependencies['bgzip'].file_name
- # if os.path.getsize(self.converted_dataset.file_name) == 0:
- # return { 'kind': messages.ERROR, 'message': "Tabix converted size was 0, meaning the input file had invalid values." }
tabix = ctabix.Tabixfile(bgzip_fname, index_filename=self.converted_dataset.file_name)
# If chrom is not found in indexes, try removing the first three
@@ -248,11 +261,7 @@
chrom = chrom[3:]
return tabix.fetch(reference=chrom, start=start, end=end)
-
- def get_data( self, chrom, start, end, start_val=0, max_vals=None, **kwargs ):
- iterator = self.get_iterator( chrom, start, end )
- return self.process_data( iterator, start_val, max_vals, **kwargs )
-
+
def write_data_to_file( self, chrom, start, end, filename ):
iterator = self.get_iterator( chrom, start, end )
out = open( filename, "w" )
@@ -273,11 +282,7 @@
def get_iterator( self, chrom, start, end ):
raise "Unimplemented Method"
-
- def get_data( self, chrom, start, end, start_val=0, max_vals=None, **kwargs ):
- iterator = self.get_iterator( chrom, start, end )
- return self.process_data( iterator, start_val, max_vals, **kwargs )
-
+
def process_data( self, iterator, start_val=0, max_vals=None, **kwargs ):
"""
Provides
@@ -392,14 +397,6 @@
col_name_data_attr_mapping = { 'Qual' : { 'index': 6 , 'name' : 'Qual' } }
-
- def get_iterator( self, chrom, start, end ):
- raise "Unimplemented Method"
-
- def get_data( self, chrom, start, end, start_val=0, max_vals=None, **kwargs ):
- iterator = self.get_iterator( chrom, start, end )
- return self.process_data( iterator, start_val, max_vals, **kwargs )
-
def process_data( self, iterator, start_val=0, max_vals=None, **kwargs ):
"""
Returns a dict with the following attributes:
@@ -607,11 +604,32 @@
# Cleanup.
bamfile.close()
-
- def get_data( self, chrom, start, end, start_val=0, max_vals=sys.maxint, **kwargs ):
+
+ def get_iterator( self, chrom, start, end ):
"""
- Fetch reads in the region and additional metadata.
+ Returns an iterator that provides data in the region chrom:start-end
+ """
+ start, end = int(start), int(end)
+ orig_data_filename = self.original_dataset.file_name
+ index_filename = self.converted_dataset.file_name
+ # Attempt to open the BAM file with index
+ bamfile = csamtools.Samfile( filename=orig_data_filename, mode='rb', index_filename=index_filename )
+ try:
+ data = bamfile.fetch(start=start, end=end, reference=chrom)
+ except ValueError, e:
+ # Some BAM files do not prefix chromosome names with chr, try without
+ if chrom.startswith( 'chr' ):
+ try:
+ data = bamfile.fetch( start=start, end=end, reference=chrom[3:] )
+ except ValueError:
+ return None
+ else:
+ return None
+ return data
+
+ def process_data( self, iterator, start_val=0, max_vals=None, **kwargs ):
+ """
Returns a dict with the following attributes:
data - a list of reads with the format
[<guid>, <start>, <end>, <name>, <read_1>, <read_2>]
@@ -628,26 +646,6 @@
max_high - highest coordinate for the returned reads
message - error/informative message
"""
- start, end = int(start), int(end)
- orig_data_filename = self.original_dataset.file_name
- index_filename = self.converted_dataset.file_name
- no_detail = "no_detail" in kwargs
-
- # Attempt to open the BAM file with index
- bamfile = csamtools.Samfile( filename=orig_data_filename, mode='rb', index_filename=index_filename )
- message = None
- try:
- data = bamfile.fetch(start=start, end=end, reference=chrom)
- except ValueError, e:
- # Some BAM files do not prefix chromosome names with chr, try without
- if chrom.startswith( 'chr' ):
- try:
- data = bamfile.fetch( start=start, end=end, reference=chrom[3:] )
- except ValueError:
- return None
- else:
- return None
-
# Decode strand from read flag.
def decode_strand( read_flag, mask ):
strand_flag = ( read_flag & mask == 0 )
@@ -660,7 +658,8 @@
results = []
paired_pending = {}
unmapped = 0
- for count, read in enumerate( data ):
+ message = None
+ for count, read in enumerate( iterator ):
if count < start_val:
continue
if ( count - start_val - unmapped ) >= max_vals:
@@ -720,8 +719,8 @@
results.append( [ "%i_%s" % ( read_start, qname ), read_start, read_end, qname, r1, r2 ] )
- # Clean up.
- bamfile.close()
+ # Clean up. TODO: is this needed? If so, we'll need a cleanup function after processing the data.
+ # bamfile.close()
max_low, max_high = get_bounds( results, 1, 2 )
@@ -848,13 +847,15 @@
for interval in feature.intervals:
out.write(interval.raw_line + '\n')
out.close()
-
- def get_data( self, chrom, start, end, start_val=0, max_vals=sys.maxint, **kwargs ):
+
+ def get_iterator( self, chrom, start, end ):
+ """
+ Returns an array with values: (a) source file and (b) an iterator that
+ provides data in the region chrom:start-end
+ """
start, end = int(start), int(end)
source = open( self.original_dataset.file_name )
index = Indexes( self.converted_dataset.file_name )
- results = []
- message = None
# If chrom is not found in indexes, try removing the first three
# characters (e.g. 'chr') and see if that works. This enables the
@@ -862,6 +863,13 @@
chrom = str(chrom)
if chrom not in index.indexes and chrom[3:] in index.indexes:
chrom = chrom[3:]
+
+ return index.find(chrom, start, end)
+
+ def process_data( self, iterator, start_val=0, max_vals=None, **kwargs ):
+ results = []
+ message = None
+ source = open( self.original_dataset.file_name )
#
# Build data to return. Payload format is:
@@ -872,7 +880,7 @@
#
filter_cols = from_json_string( kwargs.get( "filter_cols", "[]" ) )
no_detail = ( "no_detail" in kwargs )
- for count, val in enumerate( index.find(chrom, start, end) ):
+ for count, val in enumerate( iterator ):
start, end, offset = val[0], val[1], val[2]
if count < start_val:
continue
@@ -899,14 +907,24 @@
NOTE: this data provider does not use indices, and hence will be very slow
for large datasets.
"""
- def get_data( self, chrom, start, end, start_val=0, max_vals=sys.maxint, **kwargs ):
+
+ def get_iterator( self, chrom, start, end ):
+ """
+ Returns an iterator that provides data in the region chrom:start-end
+ """
start, end = int( start ), int( end )
source = open( self.original_dataset.file_name )
+ return GFFReaderWrapper( source, fix_strand=True )
+
+ def process_data( self, iterator, start_val=0, max_vals=None, **kwargs ):
+ """
+ Process data from an iterator to a format that can be provided to client.
+ """
results = []
message = None
offset = 0
- for count, feature in enumerate( GFFReaderWrapper( source, fix_strand=True ) ):
+ for count, feature in enumerate( iterator ):
if count < start_val:
continue
if count-start_val >= max_vals:
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
0

commit/galaxy-central: jgoecks: Update Tophat functional tests for tool version 1.3.3
by Bitbucket 16 Nov '11
by Bitbucket 16 Nov '11
16 Nov '11
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/changeset/aeb72f7dc945/
changeset: aeb72f7dc945
user: jgoecks
date: 2011-11-16 22:10:29
summary: Update Tophat functional tests for tool version 1.3.3
affected #: 2 files
diff -r 68099c26be37cb39063ebd2dea3f9d0eb21af83e -r aeb72f7dc945f5c51270f6757b6ec6b2d5544cba test-data/tophat_out2j.bed
--- a/test-data/tophat_out2j.bed
+++ b/test-data/tophat_out2j.bed
@@ -1,3 +1,3 @@
track name=junctions description="TopHat junctions"
-test_chromosome 180 402 JUNC00000001 49 + 180 402 255,0,0 2 70,52 0,170
-test_chromosome 349 550 JUNC00000002 38 + 349 550 255,0,0 2 51,50 0,151
+test_chromosome 177 400 JUNC00000001 61 + 177 400 255,0,0 2 73,50 0,173
+test_chromosome 350 550 JUNC00000002 45 + 350 550 255,0,0 2 50,50 0,150
diff -r 68099c26be37cb39063ebd2dea3f9d0eb21af83e -r aeb72f7dc945f5c51270f6757b6ec6b2d5544cba test-data/tophat_out3j.bed
--- a/test-data/tophat_out3j.bed
+++ b/test-data/tophat_out3j.bed
@@ -1,3 +1,3 @@
track name=junctions description="TopHat junctions"
-test_chromosome 180 400 JUNC00000001 26 + 180 400 255,0,0 2 70,50 0,170
-test_chromosome 349 550 JUNC00000002 22 + 349 550 255,0,0 2 51,50 0,151
+test_chromosome 177 400 JUNC00000001 32 + 177 400 255,0,0 2 73,50 0,173
+test_chromosome 350 550 JUNC00000002 26 + 350 550 255,0,0 2 50,50 0,150
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
0
3 new commits in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/changeset/f31e7076b885/
changeset: f31e7076b885
branch: updates-for-tophat-1.3.1+
user: jjohnson
date: 2011-11-03 16:30:36
summary: Tophat - update tool wrappers for Tophat version 1.3.1+
affected #: 3 files
diff -r 0cdd7bb67d95efd4a5cfc9219a36f4f6232a243a -r f31e7076b885b0a1b36969f6c293c075ddc4943a tools/ngs_rna/tophat_color_wrapper.xml
--- a/tools/ngs_rna/tophat_color_wrapper.xml
+++ b/tools/ngs_rna/tophat_color_wrapper.xml
@@ -40,15 +40,18 @@
-g $singlePaired.sParams.max_multihits
--min-segment-intron $singlePaired.sParams.min_segment_intron
--max-segment-intron $singlePaired.sParams.max_segment_intron
+ --initial-read-mismatches=$singlePaired.sParams.initial_read_mismatches
--seg-mismatches=$singlePaired.sParams.seg_mismatches
--seg-length=$singlePaired.sParams.seg_length
--library-type=$singlePaired.sParams.library_type
## Indel search.
#if $singlePaired.sParams.indel_search.allow_indel_search == "Yes":
- --allow-indels
+ ## --allow-indels
--max-insertion-length $singlePaired.sParams.indel_search.max_insertion_length
--max-deletion-length $singlePaired.sParams.indel_search.max_deletion_length
+ #else:
+ --no-novel-indels
#end if
## Supplying junctions parameters.
@@ -99,15 +102,18 @@
-g $singlePaired.pParams.max_multihits
--min-segment-intron $singlePaired.pParams.min_segment_intron
--max-segment-intron $singlePaired.pParams.max_segment_intron
+ --initial-read-mismatches=$singlePaired.pParams.initial_read_mismatches
--seg-mismatches=$singlePaired.pParams.seg_mismatches
--seg-length=$singlePaired.pParams.seg_length
--library-type=$singlePaired.pParams.library_type
## Indel search.
#if $singlePaired.pParams.indel_search.allow_indel_search == "Yes":
- --allow-indels
+ ## --allow-indels
--max-insertion-length $singlePaired.pParams.indel_search.max_insertion_length
--max-deletion-length $singlePaired.pParams.indel_search.max_deletion_length
+ #else:
+ --no-novel-indels
#end if
## Supplying junctions parameters.
@@ -203,6 +209,7 @@
<param name="max_multihits" type="integer" value="40" label="Maximum number of alignments to be allowed" /><param name="min_segment_intron" type="integer" value="50" label="Minimum intron length that may be found during split-segment (default) search" /><param name="max_segment_intron" type="integer" value="500000" label="Maximum intron length that may be found during split-segment (default) search" />
+ <param name="initial_read_mismatches" type="integer" min="0" max="3" value="2" label="Number of mismatches allowed in the initial read mapping" /><param name="seg_mismatches" type="integer" min="0" max="3" value="2" label="Number of mismatches allowed in each segment alignment for reads mapped independently" /><param name="seg_length" type="integer" value="25" label="Minimum length of read segments" />
@@ -309,6 +316,7 @@
<param name="max_multihits" type="integer" value="40" label="Maximum number of alignments to be allowed" /><param name="min_segment_intron" type="integer" value="50" label="Minimum intron length that may be found during split-segment (default) search" /><param name="max_segment_intron" type="integer" value="500000" label="Maximum intron length that may be found during split-segment (default) search" />
+ <param name="initial_read_mismatches" type="integer" min="0" max="3" value="2" label="Number of mismatches allowed in the initial read mapping" /><param name="seg_mismatches" type="integer" min="0" max="3" value="2" label="Number of mismatches allowed in each segment alignment for reads mapped independently" /><param name="seg_length" type="integer" value="25" label="Minimum length of read segments" /><!-- Options for supplying own junctions. -->
diff -r 0cdd7bb67d95efd4a5cfc9219a36f4f6232a243a -r f31e7076b885b0a1b36969f6c293c075ddc4943a tools/ngs_rna/tophat_wrapper.py
--- a/tools/ngs_rna/tophat_wrapper.py
+++ b/tools/ngs_rna/tophat_wrapper.py
@@ -29,10 +29,11 @@
help='The maximum intron length. When searching for junctions ab initio, TopHat will ignore donor/acceptor pairs farther than this many bases apart, except when such a pair is supported by a split segment alignment of a long read.' )
parser.add_option( '-F', '--junction_filter', dest='junction_filter', help='Filter out junctions supported by too few alignments (number of reads divided by average depth of coverage)' )
parser.add_option( '-g', '--max_multihits', dest='max_multihits', help='Maximum number of alignments to be allowed' )
+ parser.add_option( '', '--initial-read-mismatches', dest='initial_read_mismatches', help='Number of mismatches allowed in the initial read mapping' )
parser.add_option( '', '--seg-mismatches', dest='seg_mismatches', help='Number of mismatches allowed in each segment alignment for reads mapped independently' )
parser.add_option( '', '--seg-length', dest='seg_length', help='Minimum length of read segments' )
parser.add_option( '', '--library-type', dest='library_type', help='TopHat will treat the reads as strand specific. Every read alignment will have an XS attribute tag. Consider supplying library type options below to select the correct RNA-seq protocol.' )
- parser.add_option( '', '--allow-indels', action="store_true", help='Allow indel search. Indel search is disabled by default.' )
+ parser.add_option( '', '--allow-indels', action="store_true", help='Allow indel search. Indel search is disabled by default.(Not used since version 1.3.0)' )
parser.add_option( '', '--max-insertion-length', dest='max_insertion_length', help='The maximum insertion length. The default is 3.' )
parser.add_option( '', '--max-deletion-length', dest='max_deletion_length', help='The maximum deletion length. The default is 3.' )
@@ -50,6 +51,7 @@
sequence, inclusive.')
parser.add_option( '', '--no-novel-juncs', action="store_true", dest='no_novel_juncs', help="Only look for junctions indicated in the \
supplied GFF file. (ignored without -G)")
+ parser.add_option( '', '--no-novel-indels', action="store_true", dest='no_novel_indels', help="Skip indel search. Indel search is enabled by default.")
# Types of search.
parser.add_option( '', '--microexon-search', action="store_true", dest='microexon_search', help='With this option, the pipeline will attempt to find alignments incident to microexons. Works only for reads 50bp or longer.')
parser.add_option( '', '--closure-search', action="store_true", dest='closure_search', help='Enables the mate pair closure-based search for junctions. Closure-based search should only be used when the expected inner distance between mates is small (<= 50bp)')
@@ -160,12 +162,16 @@
opts += ' --no-novel-juncs'
if options.library_type:
opts += ' --library-type %s' % options.library_type
- if options.allow_indels:
- # Max options do not work for Tophat v1.2.0, despite documentation to the contrary.
- opts += ' --allow-indels'
- #opts += ' --max-insertion-length %i --max-deletion-length %i' % ( int( options.max_insertion_length ), int( options.max_deletion_length ) )
+ if options.no_novel_indels:
+ opts += ' --no-novel-indels'
+ else:
+ if options.max_insertion_length:
+ opts += ' --max-insertion-length %i' % int( options.max_insertion_length )
+ if options..max_deletion_length:
+ opts += ' --max-deletion-length %i' % int( options.max_deletion_length )
+ # Max options do not work for Tophat v1.2.0, despite documentation to the contrary. (Fixed in version 1.3.1)
# need to warn user of this fact
- sys.stdout.write( "Max insertion length and max deletion length options don't work in Tophat v1.2.0\n" )
+ #sys.stdout.write( "Max insertion length and max deletion length options don't work in Tophat v1.2.0\n" )
# Search type options.
if options.coverage_search:
@@ -180,6 +186,8 @@
opts += ' --microexon-search'
if options.single_paired == 'paired':
opts += ' --mate-std-dev %s' % options.mate_std_dev
+ if options.initial_read_mismatches:
+ opts += ' --initial-read-mismatches %d' % int( options.initial_read_mismatches )
if options.seg_mismatches:
opts += ' --segment-mismatches %d' % int( options.seg_mismatches )
if options.seg_length:
diff -r 0cdd7bb67d95efd4a5cfc9219a36f4f6232a243a -r f31e7076b885b0a1b36969f6c293c075ddc4943a tools/ngs_rna/tophat_wrapper.xml
--- a/tools/ngs_rna/tophat_wrapper.xml
+++ b/tools/ngs_rna/tophat_wrapper.xml
@@ -38,15 +38,18 @@
-g $singlePaired.sParams.max_multihits
--min-segment-intron $singlePaired.sParams.min_segment_intron
--max-segment-intron $singlePaired.sParams.max_segment_intron
+ --initial-read-mismatches=$singlePaired.sParams.initial_read_mismatches
--seg-mismatches=$singlePaired.sParams.seg_mismatches
--seg-length=$singlePaired.sParams.seg_length
--library-type=$singlePaired.sParams.library_type
## Indel search.
#if $singlePaired.sParams.indel_search.allow_indel_search == "Yes":
- --allow-indels
+ ## --allow-indels
--max-insertion-length $singlePaired.sParams.indel_search.max_insertion_length
--max-deletion-length $singlePaired.sParams.indel_search.max_deletion_length
+ #else:
+ --no-novel-indels
#end if
## Supplying junctions parameters.
@@ -97,15 +100,18 @@
-g $singlePaired.pParams.max_multihits
--min-segment-intron $singlePaired.pParams.min_segment_intron
--max-segment-intron $singlePaired.pParams.max_segment_intron
+ --initial-read-mismatches=$singlePaired.pParams.initial_read_mismatches
--seg-mismatches=$singlePaired.pParams.seg_mismatches
--seg-length=$singlePaired.pParams.seg_length
--library-type=$singlePaired.pParams.library_type
## Indel search.
#if $singlePaired.pParams.indel_search.allow_indel_search == "Yes":
- --allow-indels
+ ## --allow-indels
--max-insertion-length $singlePaired.pParams.indel_search.max_insertion_length
--max-deletion-length $singlePaired.pParams.indel_search.max_deletion_length
+ #else:
+ --no-novel-indels
#end if
## Supplying junctions parameters.
@@ -201,6 +207,7 @@
<param name="max_multihits" type="integer" value="40" label="Maximum number of alignments to be allowed" /><param name="min_segment_intron" type="integer" value="50" label="Minimum intron length that may be found during split-segment (default) search" /><param name="max_segment_intron" type="integer" value="500000" label="Maximum intron length that may be found during split-segment (default) search" />
+ <param name="initial_read_mismatches" type="integer" min="0" max="3" value="2" label="Number of mismatches allowed in the initial read mapping" /><param name="seg_mismatches" type="integer" min="0" max="3" value="2" label="Number of mismatches allowed in each segment alignment for reads mapped independently" /><param name="seg_length" type="integer" value="25" label="Minimum length of read segments" />
@@ -307,6 +314,7 @@
<param name="max_multihits" type="integer" value="40" label="Maximum number of alignments to be allowed" /><param name="min_segment_intron" type="integer" value="50" label="Minimum intron length that may be found during split-segment (default) search" /><param name="max_segment_intron" type="integer" value="500000" label="Maximum intron length that may be found during split-segment (default) search" />
+ <param name="initial_read_mismatches" type="integer" min="0" max="3" value="2" label="Number of mismatches allowed in the initial read mapping" /><param name="seg_mismatches" type="integer" min="0" max="3" value="2" label="Number of mismatches allowed in each segment alignment for reads mapped independently" /><param name="seg_length" type="integer" value="25" label="Minimum length of read segments" /><!-- Options for supplying own junctions. -->
https://bitbucket.org/galaxy/galaxy-central/changeset/3b176f04a8b8/
changeset: 3b176f04a8b8
branch: updates-for-tophat-1.3.1+
user: jjohnson
date: 2011-11-03 16:40:49
summary: Tophat - Indel search should be default option
affected #: 2 files
diff -r f31e7076b885b0a1b36969f6c293c075ddc4943a -r 3b176f04a8b852a6af12e7bf017d44019874ca62 tools/ngs_rna/tophat_color_wrapper.xml
--- a/tools/ngs_rna/tophat_color_wrapper.xml
+++ b/tools/ngs_rna/tophat_color_wrapper.xml
@@ -196,8 +196,8 @@
<param name="max_intron_length" type="integer" value="500000" label="The maximum intron length" help="When searching for junctions ab initio, TopHat will ignore donor/acceptor pairs farther than this many bases apart, except when such a pair is supported by a split segment alignment of a long read." /><conditional name="indel_search"><param name="allow_indel_search" type="select" label="Allow indel search">
+ <option value="Yes">Yes</option><option value="No">No</option>
- <option value="Yes">Yes</option></param><when value="No"/><when value="Yes">
@@ -303,8 +303,8 @@
<param name="max_intron_length" type="integer" value="500000" label="The maximum intron length" help="When searching for junctions ab initio, TopHat will ignore donor/acceptor pairs farther than this many bases apart, except when such a pair is supported by a split segment alignment of a long read." /><conditional name="indel_search"><param name="allow_indel_search" type="select" label="Allow indel search">
+ <option value="Yes">Yes</option><option value="No">No</option>
- <option value="Yes">Yes</option></param><when value="No"/><when value="Yes">
diff -r f31e7076b885b0a1b36969f6c293c075ddc4943a -r 3b176f04a8b852a6af12e7bf017d44019874ca62 tools/ngs_rna/tophat_wrapper.xml
--- a/tools/ngs_rna/tophat_wrapper.xml
+++ b/tools/ngs_rna/tophat_wrapper.xml
@@ -194,8 +194,8 @@
<param name="max_intron_length" type="integer" value="500000" label="The maximum intron length" help="When searching for junctions ab initio, TopHat will ignore donor/acceptor pairs farther than this many bases apart, except when such a pair is supported by a split segment alignment of a long read." /><conditional name="indel_search"><param name="allow_indel_search" type="select" label="Allow indel search">
+ <option value="Yes">Yes</option><option value="No">No</option>
- <option value="Yes">Yes</option></param><when value="No"/><when value="Yes">
@@ -301,8 +301,8 @@
<param name="max_intron_length" type="integer" value="500000" label="The maximum intron length" help="When searching for junctions ab initio, TopHat will ignore donor/acceptor pairs farther than this many bases apart, except when such a pair is supported by a split segment alignment of a long read." /><conditional name="indel_search"><param name="allow_indel_search" type="select" label="Allow indel search">
+ <option value="Yes">Yes</option><option value="No">No</option>
- <option value="Yes">Yes</option></param><when value="No"/><when value="Yes">
https://bitbucket.org/galaxy/galaxy-central/changeset/6483b3fbf1d6/
changeset: 6483b3fbf1d6
branch: updates-for-tophat-1.3.1+
user: jjohnson
date: 2011-11-03 17:09:35
summary: Tophat - fix typo in code.
affected #: 1 file
diff -r 3b176f04a8b852a6af12e7bf017d44019874ca62 -r 6483b3fbf1d689ae02e9eff2ee8cfaa38412fcbc tools/ngs_rna/tophat_wrapper.py
--- a/tools/ngs_rna/tophat_wrapper.py
+++ b/tools/ngs_rna/tophat_wrapper.py
@@ -167,7 +167,7 @@
else:
if options.max_insertion_length:
opts += ' --max-insertion-length %i' % int( options.max_insertion_length )
- if options..max_deletion_length:
+ if options.max_deletion_length:
opts += ' --max-deletion-length %i' % int( options.max_deletion_length )
# Max options do not work for Tophat v1.2.0, despite documentation to the contrary. (Fixed in version 1.3.1)
# need to warn user of this fact
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
0
2 new commits in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/changeset/72cbac1ff125/
changeset: 72cbac1ff125
user: natefoo
date: 2011-11-16 19:38:24
summary: Make linking data in a library upload a job parameter so it can be checked
during job finish to ensure the linked files are not overwritten when using
outputs_to_working_directory. This special-case fix is a temporary solution
that should be removed as soon as we have a smarter way to handle "immutable
outputs."
affected #: 4 files
diff -r 537a42e5d26578413f20b369643110404502b7c3 -r 72cbac1ff125c8133f4ba4e6c2607d816dcd8e56 lib/galaxy/jobs/__init__.py
--- a/lib/galaxy/jobs/__init__.py
+++ b/lib/galaxy/jobs/__init__.py
@@ -541,7 +541,7 @@
self.version_string = open(version_filename).read()
os.unlink(version_filename)
- if self.app.config.outputs_to_working_directory:
+ if self.app.config.outputs_to_working_directory and not self.__link_file_check():
for dataset_path in self.get_output_fnames():
try:
shutil.move( dataset_path.false_path, dataset_path.real_path )
@@ -879,6 +879,15 @@
else:
return 'anonymous@unknown'
+ def __link_file_check( self ):
+ """ outputs_to_working_directory breaks library uploads where data is
+ linked. This method is a hack that solves that problem, but is
+ specific to the upload tool and relies on an injected job param. This
+ method should be removed ASAP and replaced with some properly generic
+ and stateful way of determining link-only datasets. -nate
+ """
+ return self.tool.id == 'upload1' and self.param_dict.get( 'link_data_only', None ) == 'link_to_files'
+
class TaskWrapper(JobWrapper):
"""
Extension of JobWrapper intended for running tasks.
diff -r 537a42e5d26578413f20b369643110404502b7c3 -r 72cbac1ff125c8133f4ba4e6c2607d816dcd8e56 lib/galaxy/tools/actions/upload.py
--- a/lib/galaxy/tools/actions/upload.py
+++ b/lib/galaxy/tools/actions/upload.py
@@ -25,4 +25,4 @@
json_file_path = upload_common.create_paramfile( trans, uploaded_datasets )
data_list = [ ud.data for ud in uploaded_datasets ]
- return upload_common.create_job( trans, incoming, tool, json_file_path, data_list, return_job=True )
+ return upload_common.create_job( trans, incoming, tool, json_file_path, data_list )
diff -r 537a42e5d26578413f20b369643110404502b7c3 -r 72cbac1ff125c8133f4ba4e6c2607d816dcd8e56 lib/galaxy/tools/actions/upload_common.py
--- a/lib/galaxy/tools/actions/upload_common.py
+++ b/lib/galaxy/tools/actions/upload_common.py
@@ -294,7 +294,7 @@
json_file.write( to_json_string( json ) + '\n' )
json_file.close()
return json_file_path
-def create_job( trans, params, tool, json_file_path, data_list, folder=None, return_job=False ):
+def create_job( trans, params, tool, json_file_path, data_list, folder=None ):
"""
Create the upload job.
"""
@@ -341,10 +341,7 @@
output = odict()
for i, v in enumerate( data_list ):
output[ 'output%i' % i ] = v
- if return_job:
- return job, output
- else:
- return output
+ return job, output
def active_folders( trans, folder ):
# Stolen from galaxy.web.controllers.library_common (importing from which causes a circular issues).
# Much faster way of retrieving all active sub-folders within a given folder than the
diff -r 537a42e5d26578413f20b369643110404502b7c3 -r 72cbac1ff125c8133f4ba4e6c2607d816dcd8e56 lib/galaxy/web/controllers/library_common.py
--- a/lib/galaxy/web/controllers/library_common.py
+++ b/lib/galaxy/web/controllers/library_common.py
@@ -1045,7 +1045,12 @@
status='error' ) )
json_file_path = upload_common.create_paramfile( trans, uploaded_datasets )
data_list = [ ud.data for ud in uploaded_datasets ]
- return upload_common.create_job( trans, tool_params, tool, json_file_path, data_list, folder=library_bunch.folder )
+ job, output = upload_common.create_job( trans, tool_params, tool, json_file_path, data_list, folder=library_bunch.folder )
+ # HACK: Prevent outputs_to_working_directory from overwriting inputs when "linking"
+ job.add_parameter( 'link_data_only', to_json_string( kwd.get( 'link_data_only', 'copy_files' ) ) )
+ trans.sa_session.add( job )
+ trans.sa_session.flush()
+ return output
def make_library_uploaded_dataset( self, trans, cntrller, params, name, path, type, library_bunch, in_folder=None ):
library_bunch.replace_dataset = None # not valid for these types of upload
uploaded_dataset = util.bunch.Bunch()
https://bitbucket.org/galaxy/galaxy-central/changeset/c658f8f1e6ea/
changeset: c658f8f1e6ea
user: natefoo
date: 2011-11-16 19:53:05
summary: Bugfix for the last commit, since JobWrapper.param_dict doesn't exist after a server restart.
affected #: 1 file
diff -r 72cbac1ff125c8133f4ba4e6c2607d816dcd8e56 -r c658f8f1e6ea651c7d9f7fc2ca77512cad6beeb5 lib/galaxy/jobs/__init__.py
--- a/lib/galaxy/jobs/__init__.py
+++ b/lib/galaxy/jobs/__init__.py
@@ -886,7 +886,9 @@
method should be removed ASAP and replaced with some properly generic
and stateful way of determining link-only datasets. -nate
"""
- return self.tool.id == 'upload1' and self.param_dict.get( 'link_data_only', None ) == 'link_to_files'
+ job = self.get_job()
+ param_dict = job.get_param_values( self.app )
+ return self.tool.id == 'upload1' and param_dict.get( 'link_data_only', None ) == 'link_to_files'
class TaskWrapper(JobWrapper):
"""
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
0

16 Nov '11
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/changeset/537a42e5d265/
changeset: 537a42e5d265
user: greg
date: 2011-11-16 17:03:14
summary: Improve exception handling when loading and displaying tools in the tool shed, check content of files uploaded to a tool shed repository only when necessary, and clarify that borwsing repository files is only available for the repository tip.
affected #: 14 files
diff -r 663a2a57ed4db4303661f3771c518b7611f9c85f -r 537a42e5d26578413f20b369643110404502b7c3 lib/galaxy/webapps/community/controllers/common.py
--- a/lib/galaxy/webapps/community/controllers/common.py
+++ b/lib/galaxy/webapps/community/controllers/common.py
@@ -380,17 +380,19 @@
for name in files:
# Find all tool configs.
if name != 'datatypes_conf.xml' and name.endswith( '.xml' ):
+ full_path = os.path.abspath( os.path.join( root, name ) )
try:
- full_path = os.path.abspath( os.path.join( root, name ) )
tool = load_tool( trans, full_path )
- if tool is not None:
- can_set_metadata, invalid_files = check_tool_input_params( trans, name, tool, sample_files, invalid_files )
- if can_set_metadata:
- # Update the list of metadata dictionaries for tools in metadata_dict.
- tool_config = os.path.join( root, name )
- metadata_dict = generate_tool_metadata( trans, id, changeset_revision, tool_config, tool, metadata_dict )
+ valid = True
except Exception, e:
+ valid = False
invalid_files.append( ( name, str( e ) ) )
+ if valid and tool is not None:
+ can_set_metadata, invalid_files = check_tool_input_params( trans, name, tool, sample_files, invalid_files )
+ if can_set_metadata:
+ # Update the list of metadata dictionaries for tools in metadata_dict.
+ tool_config = os.path.join( root, name )
+ metadata_dict = generate_tool_metadata( trans, id, changeset_revision, tool_config, tool, metadata_dict )
# Find all exported workflows
elif name.endswith( '.ga' ):
try:
@@ -427,17 +429,19 @@
fh.close()
try:
tool = load_tool( trans, tmp_filename )
- if tool is not None:
- can_set_metadata, invalid_files = check_tool_input_params( trans, filename, tool, sample_files, invalid_files )
- if can_set_metadata:
- # Update the list of metadata dictionaries for tools in metadata_dict. Note that filename
- # here is the relative path to the config file within the change set context, something
- # like filtering.xml, but when the change set was the repository tip, the value was
- # something like database/community_files/000/repo_1/filtering.xml. This shouldn't break
- # anything, but may result in a bit of confusion when maintaining the code / data over time.
- metadata_dict = generate_tool_metadata( trans, id, changeset_revision, filename, tool, metadata_dict )
+ valid = True
except Exception, e:
- invalid_files.append( ( name, str( e ) ) )
+ invalid_files.append( ( filename, str( e ) ) )
+ valid = False
+ if valid and tool is not None:
+ can_set_metadata, invalid_files = check_tool_input_params( trans, filename, tool, sample_files, invalid_files )
+ if can_set_metadata:
+ # Update the list of metadata dictionaries for tools in metadata_dict. Note that filename
+ # here is the relative path to the config file within the change set context, something
+ # like filtering.xml, but when the change set was the repository tip, the value was
+ # something like database/community_files/000/repo_1/filtering.xml. This shouldn't break
+ # anything, but may result in a bit of confusion when maintaining the code / data over time.
+ metadata_dict = generate_tool_metadata( trans, id, changeset_revision, filename, tool, metadata_dict )
try:
os.unlink( tmp_filename )
except:
@@ -575,6 +579,17 @@
util.send_mail( frm, to, subject, body, trans.app.config )
except Exception, e:
log.exception( "An error occurred sending a tool shed repository update alert by email." )
+def check_file_contents( trans ):
+ # See if any admin users have chosen to receive email alerts when a repository is updated.
+ # If so, the file contents of the update must be checked for inappropriate content.
+ admin_users = trans.app.config.get( "admin_users", "" ).split( "," )
+ for repository in trans.sa_session.query( trans.model.Repository ) \
+ .filter( trans.model.Repository.table.c.email_alerts != None ):
+ email_alerts = from_json_string( repository.email_alerts )
+ for user_email in email_alerts:
+ if user_email in admin_users:
+ return True
+ return False
def update_for_browsing( trans, repository, current_working_dir, commit_message='' ):
# Make a copy of a repository's files for browsing, remove from disk all files that
# are not tracked, and commit all added, modified or removed files that have not yet
diff -r 663a2a57ed4db4303661f3771c518b7611f9c85f -r 537a42e5d26578413f20b369643110404502b7c3 lib/galaxy/webapps/community/controllers/repository.py
--- a/lib/galaxy/webapps/community/controllers/repository.py
+++ b/lib/galaxy/webapps/community/controllers/repository.py
@@ -773,7 +773,7 @@
tool_guids = []
for filename in ctx:
# Find all tool configs in this repository changeset_revision.
- if filename.endswith( '.xml' ):
+ if filename != 'datatypes_conf.xml' and filename.endswith( '.xml' ):
fctx = ctx[ filename ]
# Write the contents of the old tool config to a temporary file.
fh = tempfile.NamedTemporaryFile( 'w' )
@@ -784,11 +784,11 @@
fh.close()
try:
tool = load_tool( trans, tmp_filename )
- if tool is not None:
- tool_guids.append( generate_tool_guid( trans, repository, tool ) )
+ valid = True
except:
- # File must not be a valid tool config even though it has a .xml extension.
- pass
+ valid = False
+ if valid and tool is not None:
+ tool_guids.append( generate_tool_guid( trans, repository, tool ) )
try:
os.unlink( tmp_filename )
except:
@@ -1614,39 +1614,49 @@
status = params.get( 'status', 'done' )
webapp = params.get( 'webapp', 'community' )
repository = get_repository( trans, repository_id )
- repo = hg.repository( get_configured_ui(), repository.repo_path )
+ repo = hg.repository( get_configured_ui(), repository.repo_path )
+ valid = True
+ if changeset_revision == repository.tip:
+ try:
+ tool = load_tool( trans, os.path.abspath( tool_config ) )
+ except Exception, e:
+ tool = None
+ valid = False
+ message = "Error loading tool: %s. Clicking <b>Reset metadata</b> may correct this error." % str( e )
+ else:
+ # Get the tool config file name from the hgweb url, something like:
+ # /repos/test/convert_chars1/file/e58dcf0026c7/convert_characters.xml
+ old_tool_config_file_name = tool_config.split( '/' )[ -1 ]
+ ctx = get_changectx_for_changeset( trans, repo, changeset_revision )
+ fctx = None
+ for filename in ctx:
+ filename_head, filename_tail = os.path.split( filename )
+ if filename_tail == old_tool_config_file_name:
+ fctx = ctx[ filename ]
+ break
+ if fctx:
+ # Write the contents of the old tool config to a temporary file.
+ fh = tempfile.NamedTemporaryFile( 'w' )
+ tmp_filename = fh.name
+ fh.close()
+ fh = open( tmp_filename, 'w' )
+ fh.write( fctx.data() )
+ fh.close()
+ try:
+ tool = load_tool( trans, tmp_filename )
+ except Exception, e:
+ tool = None
+ valid = False
+ message = "Error loading tool: %s. Clicking <b>Reset metadata</b> may correct this error." % str( e )
+ try:
+ os.unlink( tmp_filename )
+ except:
+ pass
+ else:
+ tool = None
+ tool_state = self.__new_state( trans )
+ is_malicious = change_set_is_malicious( trans, repository_id, repository.tip )
try:
- if changeset_revision == repository.tip:
- # Get the tool config from the file system we use for browsing.
- tool = load_tool( trans, os.path.abspath( tool_config ) )
- else:
- # Get the tool config file name from the hgweb url, something like:
- # /repos/test/convert_chars1/file/e58dcf0026c7/convert_characters.xml
- old_tool_config_file_name = tool_config.split( '/' )[ -1 ]
- ctx = get_changectx_for_changeset( trans, repo, changeset_revision )
- fctx = None
- for filename in ctx:
- filename_head, filename_tail = os.path.split( filename )
- if filename_tail == old_tool_config_file_name:
- fctx = ctx[ filename ]
- break
- if fctx:
- # Write the contents of the old tool config to a temporary file.
- fh = tempfile.NamedTemporaryFile( 'w' )
- tmp_filename = fh.name
- fh.close()
- fh = open( tmp_filename, 'w' )
- fh.write( fctx.data() )
- fh.close()
- tool = load_tool( trans, tmp_filename )
- try:
- os.unlink( tmp_filename )
- except:
- pass
- else:
- tool = None
- tool_state = self.__new_state( trans )
- is_malicious = change_set_is_malicious( trans, repository_id, repository.tip )
return trans.fill_template( "/webapps/community/repository/tool_form.mako",
repository=repository,
changeset_revision=changeset_revision,
@@ -1657,7 +1667,7 @@
message=message,
status=status )
except Exception, e:
- message = "Error loading tool: %s. Click <b>Reset metadata</b> to correct this error." % str( e )
+ message = "Error displaying tool, probably due to a problem in the tool config. The exception is: %s." % str( e )
if webapp == 'galaxy':
return trans.response.send_redirect( web.url_for( controller='repository',
action='preview_tools_in_changeset',
diff -r 663a2a57ed4db4303661f3771c518b7611f9c85f -r 537a42e5d26578413f20b369643110404502b7c3 lib/galaxy/webapps/community/controllers/upload.py
--- a/lib/galaxy/webapps/community/controllers/upload.py
+++ b/lib/galaxy/webapps/community/controllers/upload.py
@@ -103,7 +103,10 @@
full_path = os.path.abspath( os.path.join( repo_dir, uploaded_file_filename ) )
# Move the uploaded file to the load_point within the repository hierarchy.
shutil.move( uploaded_file_name, full_path )
- if os.path.isfile( full_path ):
+ # See if any admin users have chosen to receive email alerts when a repository is
+ # updated. If so, check every uploaded file to ensure content is appropriate.
+ check_contents = check_file_contents( trans )
+ if check_contents and os.path.isfile( full_path ):
content_alert_str = self.__check_file_content( full_path )
else:
content_alert_str = ''
@@ -238,9 +241,12 @@
except OSError, e:
# The directory is not empty
pass
+ # See if any admin users have chosen to receive email alerts when a repository is
+ # updated. If so, check every uploaded file to ensure content is appropriate.
+ check_contents = check_file_contents( trans )
for filename_in_archive in filenames_in_archive:
# Check file content to ensure it is appropriate.
- if os.path.isfile( filename_in_archive ):
+ if check_contents and os.path.isfile( filename_in_archive ):
content_alert_str += self.__check_file_content( filename_in_archive )
commands.add( repo.ui, repo, filename_in_archive )
if filename_in_archive.endswith( 'tool_data_table_conf.xml.sample' ):
diff -r 663a2a57ed4db4303661f3771c518b7611f9c85f -r 537a42e5d26578413f20b369643110404502b7c3 templates/webapps/community/repository/browse_repository.mako
--- a/templates/webapps/community/repository/browse_repository.mako
+++ b/templates/webapps/community/repository/browse_repository.mako
@@ -97,7 +97,7 @@
%if can_browse_contents:
<div class="toolForm">
- <div class="toolFormTitle">Browse ${repository.name}</div>
+ <div class="toolFormTitle">Browse ${repository.name} revision ${repository.tip} (repository tip)</div>
%if can_download:
<div class="form-row"><label>Clone this repository:</label>
diff -r 663a2a57ed4db4303661f3771c518b7611f9c85f -r 537a42e5d26578413f20b369643110404502b7c3 templates/webapps/community/repository/contact_owner.mako
--- a/templates/webapps/community/repository/contact_owner.mako
+++ b/templates/webapps/community/repository/contact_owner.mako
@@ -13,9 +13,9 @@
can_manage = is_admin or repository.user == trans.user
can_view_change_log = not is_new
if can_push:
- browse_label = 'Browse or delete repository files'
+ browse_label = 'Browse or delete repository tip files'
else:
- browse_label = 'Browse repository files'
+ browse_label = 'Browse repository tip files'
%><%!
diff -r 663a2a57ed4db4303661f3771c518b7611f9c85f -r 537a42e5d26578413f20b369643110404502b7c3 templates/webapps/community/repository/manage_repository.mako
--- a/templates/webapps/community/repository/manage_repository.mako
+++ b/templates/webapps/community/repository/manage_repository.mako
@@ -16,9 +16,9 @@
can_rate = not is_new and trans.user and repository.user != trans.user
can_view_change_log = not is_new
if can_push:
- browse_label = 'Browse or delete repository files'
+ browse_label = 'Browse or delete repository tip files'
else:
- browse_label = 'Browse repository files'
+ browse_label = 'Browse repository tip files'
can_set_malicious = metadata and can_set_metadata and is_admin and changeset_revision == repository.tip
%>
diff -r 663a2a57ed4db4303661f3771c518b7611f9c85f -r 537a42e5d26578413f20b369643110404502b7c3 templates/webapps/community/repository/preview_tools_in_changeset.mako
--- a/templates/webapps/community/repository/preview_tools_in_changeset.mako
+++ b/templates/webapps/community/repository/preview_tools_in_changeset.mako
@@ -13,9 +13,9 @@
can_browse_contents = not is_new
can_view_change_log = not is_new
if can_push:
- browse_label = 'Browse or delete repository files'
+ browse_label = 'Browse or delete repository tip files'
else:
- browse_label = 'Browse repository files'
+ browse_label = 'Browse repository tip files'
%><%!
diff -r 663a2a57ed4db4303661f3771c518b7611f9c85f -r 537a42e5d26578413f20b369643110404502b7c3 templates/webapps/community/repository/rate_repository.mako
--- a/templates/webapps/community/repository/rate_repository.mako
+++ b/templates/webapps/community/repository/rate_repository.mako
@@ -16,9 +16,9 @@
can_manage = is_admin or repository.user == trans.user
can_view_change_log = not is_new
if can_push:
- browse_label = 'Browse or delete repository files'
+ browse_label = 'Browse or delete repository tip files'
else:
- browse_label = 'Browse repository files'
+ browse_label = 'Browse repository tip files'
%><%!
diff -r 663a2a57ed4db4303661f3771c518b7611f9c85f -r 537a42e5d26578413f20b369643110404502b7c3 templates/webapps/community/repository/tool_form.mako
--- a/templates/webapps/community/repository/tool_form.mako
+++ b/templates/webapps/community/repository/tool_form.mako
@@ -18,9 +18,9 @@
can_manage = is_admin or repository.user == trans.user
can_view_change_log = not is_new
if can_push:
- browse_label = 'Browse or delete repository files'
+ browse_label = 'Browse or delete repository tip files'
else:
- browse_label = 'Browse repository files'
+ browse_label = 'Browse repository tip files'
%><html>
diff -r 663a2a57ed4db4303661f3771c518b7611f9c85f -r 537a42e5d26578413f20b369643110404502b7c3 templates/webapps/community/repository/view_changelog.mako
--- a/templates/webapps/community/repository/view_changelog.mako
+++ b/templates/webapps/community/repository/view_changelog.mako
@@ -15,9 +15,9 @@
can_upload = can_push
can_download = not is_new and ( not is_malicious or can_push )
if can_push:
- browse_label = 'Browse or delete repository files'
+ browse_label = 'Browse or delete repository tip files'
else:
- browse_label = 'Browse repository files'
+ browse_label = 'Browse repository tip files'
%><%!
diff -r 663a2a57ed4db4303661f3771c518b7611f9c85f -r 537a42e5d26578413f20b369643110404502b7c3 templates/webapps/community/repository/view_changeset.mako
--- a/templates/webapps/community/repository/view_changeset.mako
+++ b/templates/webapps/community/repository/view_changeset.mako
@@ -16,9 +16,9 @@
can_upload = can_push
can_download = not is_new and ( not is_malicious or can_push )
if can_push:
- browse_label = 'Browse or delete repository files'
+ browse_label = 'Browse or delete repository tip files'
else:
- browse_label = 'Browse repository files'
+ browse_label = 'Browse repository tip files'
%><%!
diff -r 663a2a57ed4db4303661f3771c518b7611f9c85f -r 537a42e5d26578413f20b369643110404502b7c3 templates/webapps/community/repository/view_repository.mako
--- a/templates/webapps/community/repository/view_repository.mako
+++ b/templates/webapps/community/repository/view_repository.mako
@@ -14,9 +14,9 @@
can_browse_contents = webapp == 'community' and not is_new
can_view_change_log = webapp == 'community' and not is_new
if can_push:
- browse_label = 'Browse or delete repository files'
+ browse_label = 'Browse or delete repository tip files'
else:
- browse_label = 'Browse repository files'
+ browse_label = 'Browse repository tip files'
%><%!
diff -r 663a2a57ed4db4303661f3771c518b7611f9c85f -r 537a42e5d26578413f20b369643110404502b7c3 templates/webapps/community/repository/view_tool_metadata.mako
--- a/templates/webapps/community/repository/view_tool_metadata.mako
+++ b/templates/webapps/community/repository/view_tool_metadata.mako
@@ -17,9 +17,9 @@
can_manage = is_admin or repository.user == trans.user
can_view_change_log = webapp == 'community' and not is_new
if can_push:
- browse_label = 'Browse or delete repository files'
+ browse_label = 'Browse or delete repository tip files'
else:
- browse_label = 'Browse repository files'
+ browse_label = 'Browse repository tip files'
%><%!
diff -r 663a2a57ed4db4303661f3771c518b7611f9c85f -r 537a42e5d26578413f20b369643110404502b7c3 templates/webapps/community/repository/view_workflow.mako
--- a/templates/webapps/community/repository/view_workflow.mako
+++ b/templates/webapps/community/repository/view_workflow.mako
@@ -20,9 +20,9 @@
can_rate = in_tool_shed and not is_new and trans.user and repository.user != trans.user
can_view_change_log = in_tool_shed and not is_new
if can_push:
- browse_label = 'Browse or delete repository files'
+ browse_label = 'Browse or delete repository tip files'
else:
- browse_label = 'Browse repository files'
+ browse_label = 'Browse repository tip files'
%><%!
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
0

commit/galaxy-central: dan: Add information for UCSC data to annotation profiler.
by Bitbucket 16 Nov '11
by Bitbucket 16 Nov '11
16 Nov '11
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/changeset/663a2a57ed4d/
changeset: 663a2a57ed4d
user: dan
date: 2011-11-16 16:40:55
summary: Add information for UCSC data to annotation profiler.
affected #: 1 file
diff -r 26e928ede562caaaebcbe56b172b84e88a639a2e -r 663a2a57ed4db4303661f3771c518b7611f9c85f tools/annotation_profiler/annotation_profiler.xml
--- a/tools/annotation_profiler/annotation_profiler.xml
+++ b/tools/annotation_profiler/annotation_profiler.xml
@@ -136,6 +136,8 @@
**Citation**
+For the underlying data, please see http://genome.ucsc.edu/cite.html for the proper citation.
+
If you use this tool in Galaxy, please cite Blankenberg D, et al. *In preparation.*
</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
0
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/changeset/26e928ede562/
changeset: 26e928ede562
user: dan
date: 2011-11-16 15:50:34
summary: Add EMBOSS citation to EMBOSS tools.
affected #: 107 files
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_antigenic.xml
--- a/tools/emboss_5/emboss_antigenic.xml
+++ b/tools/emboss_5/emboss_antigenic.xml
@@ -48,8 +48,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help>
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_backtranseq.xml
--- a/tools/emboss_5/emboss_backtranseq.xml
+++ b/tools/emboss_5/emboss_backtranseq.xml
@@ -219,8 +219,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_banana.xml
--- a/tools/emboss_5/emboss_banana.xml
+++ b/tools/emboss_5/emboss_banana.xml
@@ -23,8 +23,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
\ No newline at end of file
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_biosed.xml
--- a/tools/emboss_5/emboss_biosed.xml
+++ b/tools/emboss_5/emboss_biosed.xml
@@ -72,8 +72,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_btwisted.xml
--- a/tools/emboss_5/emboss_btwisted.xml
+++ b/tools/emboss_5/emboss_btwisted.xml
@@ -23,8 +23,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
\ No newline at end of file
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_cai.xml
--- a/tools/emboss_5/emboss_cai.xml
+++ b/tools/emboss_5/emboss_cai.xml
@@ -184,8 +184,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_cai_custom.xml
--- a/tools/emboss_5/emboss_cai_custom.xml
+++ b/tools/emboss_5/emboss_cai_custom.xml
@@ -26,8 +26,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_chaos.xml
--- a/tools/emboss_5/emboss_chaos.xml
+++ b/tools/emboss_5/emboss_chaos.xml
@@ -22,8 +22,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
\ No newline at end of file
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_charge.xml
--- a/tools/emboss_5/emboss_charge.xml
+++ b/tools/emboss_5/emboss_charge.xml
@@ -34,8 +34,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_checktrans.xml
--- a/tools/emboss_5/emboss_checktrans.xml
+++ b/tools/emboss_5/emboss_checktrans.xml
@@ -86,8 +86,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_chips.xml
--- a/tools/emboss_5/emboss_chips.xml
+++ b/tools/emboss_5/emboss_chips.xml
@@ -29,8 +29,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
\ No newline at end of file
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_cirdna.xml
--- a/tools/emboss_5/emboss_cirdna.xml
+++ b/tools/emboss_5/emboss_cirdna.xml
@@ -22,8 +22,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
\ No newline at end of file
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_codcmp.xml
--- a/tools/emboss_5/emboss_codcmp.xml
+++ b/tools/emboss_5/emboss_codcmp.xml
@@ -329,8 +329,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
\ No newline at end of file
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_coderet.xml
--- a/tools/emboss_5/emboss_coderet.xml
+++ b/tools/emboss_5/emboss_coderet.xml
@@ -72,8 +72,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_compseq.xml
--- a/tools/emboss_5/emboss_compseq.xml
+++ b/tools/emboss_5/emboss_compseq.xml
@@ -41,8 +41,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_cpgplot.xml
--- a/tools/emboss_5/emboss_cpgplot.xml
+++ b/tools/emboss_5/emboss_cpgplot.xml
@@ -32,8 +32,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
\ No newline at end of file
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_cpgreport.xml
--- a/tools/emboss_5/emboss_cpgreport.xml
+++ b/tools/emboss_5/emboss_cpgreport.xml
@@ -48,8 +48,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_cusp.xml
--- a/tools/emboss_5/emboss_cusp.xml
+++ b/tools/emboss_5/emboss_cusp.xml
@@ -29,8 +29,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_cutseq.xml
--- a/tools/emboss_5/emboss_cutseq.xml
+++ b/tools/emboss_5/emboss_cutseq.xml
@@ -71,8 +71,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_dan.xml
--- a/tools/emboss_5/emboss_dan.xml
+++ b/tools/emboss_5/emboss_dan.xml
@@ -83,8 +83,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
\ No newline at end of file
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_degapseq.xml
--- a/tools/emboss_5/emboss_degapseq.xml
+++ b/tools/emboss_5/emboss_degapseq.xml
@@ -57,8 +57,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
\ No newline at end of file
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_descseq.xml
--- a/tools/emboss_5/emboss_descseq.xml
+++ b/tools/emboss_5/emboss_descseq.xml
@@ -71,8 +71,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
\ No newline at end of file
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_diffseq.xml
--- a/tools/emboss_5/emboss_diffseq.xml
+++ b/tools/emboss_5/emboss_diffseq.xml
@@ -63,8 +63,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
\ No newline at end of file
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_digest.xml
--- a/tools/emboss_5/emboss_digest.xml
+++ b/tools/emboss_5/emboss_digest.xml
@@ -64,8 +64,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
\ No newline at end of file
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_dotmatcher.xml
--- a/tools/emboss_5/emboss_dotmatcher.xml
+++ b/tools/emboss_5/emboss_dotmatcher.xml
@@ -28,8 +28,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
\ No newline at end of file
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_dotpath.xml
--- a/tools/emboss_5/emboss_dotpath.xml
+++ b/tools/emboss_5/emboss_dotpath.xml
@@ -35,8 +35,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
\ No newline at end of file
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_dottup.xml
--- a/tools/emboss_5/emboss_dottup.xml
+++ b/tools/emboss_5/emboss_dottup.xml
@@ -29,8 +29,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
\ No newline at end of file
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_dreg.xml
--- a/tools/emboss_5/emboss_dreg.xml
+++ b/tools/emboss_5/emboss_dreg.xml
@@ -21,8 +21,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
\ No newline at end of file
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_einverted.xml
--- a/tools/emboss_5/emboss_einverted.xml
+++ b/tools/emboss_5/emboss_einverted.xml
@@ -49,8 +49,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_epestfind.xml
--- a/tools/emboss_5/emboss_epestfind.xml
+++ b/tools/emboss_5/emboss_epestfind.xml
@@ -64,8 +64,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
\ No newline at end of file
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_equicktandem.xml
--- a/tools/emboss_5/emboss_equicktandem.xml
+++ b/tools/emboss_5/emboss_equicktandem.xml
@@ -59,8 +59,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_est2genome.xml
--- a/tools/emboss_5/emboss_est2genome.xml
+++ b/tools/emboss_5/emboss_est2genome.xml
@@ -102,8 +102,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_etandem.xml
--- a/tools/emboss_5/emboss_etandem.xml
+++ b/tools/emboss_5/emboss_etandem.xml
@@ -75,8 +75,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_extractfeat.xml
--- a/tools/emboss_5/emboss_extractfeat.xml
+++ b/tools/emboss_5/emboss_extractfeat.xml
@@ -97,6 +97,8 @@
**Citation**
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
\ No newline at end of file
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_extractseq.xml
--- a/tools/emboss_5/emboss_extractseq.xml
+++ b/tools/emboss_5/emboss_extractseq.xml
@@ -67,8 +67,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
\ No newline at end of file
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_freak.xml
--- a/tools/emboss_5/emboss_freak.xml
+++ b/tools/emboss_5/emboss_freak.xml
@@ -35,8 +35,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
\ No newline at end of file
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_fuzznuc.xml
--- a/tools/emboss_5/emboss_fuzznuc.xml
+++ b/tools/emboss_5/emboss_fuzznuc.xml
@@ -74,8 +74,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_fuzzpro.xml
--- a/tools/emboss_5/emboss_fuzzpro.xml
+++ b/tools/emboss_5/emboss_fuzzpro.xml
@@ -43,8 +43,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
\ No newline at end of file
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_fuzztran.xml
--- a/tools/emboss_5/emboss_fuzztran.xml
+++ b/tools/emboss_5/emboss_fuzztran.xml
@@ -94,8 +94,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_garnier.xml
--- a/tools/emboss_5/emboss_garnier.xml
+++ b/tools/emboss_5/emboss_garnier.xml
@@ -57,8 +57,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
\ No newline at end of file
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_geecee.xml
--- a/tools/emboss_5/emboss_geecee.xml
+++ b/tools/emboss_5/emboss_geecee.xml
@@ -23,8 +23,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
\ No newline at end of file
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_getorf.xml
--- a/tools/emboss_5/emboss_getorf.xml
+++ b/tools/emboss_5/emboss_getorf.xml
@@ -128,8 +128,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_helixturnhelix.xml
--- a/tools/emboss_5/emboss_helixturnhelix.xml
+++ b/tools/emboss_5/emboss_helixturnhelix.xml
@@ -62,8 +62,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
\ No newline at end of file
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_hmoment.xml
--- a/tools/emboss_5/emboss_hmoment.xml
+++ b/tools/emboss_5/emboss_hmoment.xml
@@ -31,8 +31,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
\ No newline at end of file
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_iep.xml
--- a/tools/emboss_5/emboss_iep.xml
+++ b/tools/emboss_5/emboss_iep.xml
@@ -37,8 +37,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
\ No newline at end of file
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_infoseq.xml
--- a/tools/emboss_5/emboss_infoseq.xml
+++ b/tools/emboss_5/emboss_infoseq.xml
@@ -75,8 +75,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
\ No newline at end of file
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_isochore.xml
--- a/tools/emboss_5/emboss_isochore.xml
+++ b/tools/emboss_5/emboss_isochore.xml
@@ -82,6 +82,8 @@
**Citation**
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help>
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_lindna.xml
--- a/tools/emboss_5/emboss_lindna.xml
+++ b/tools/emboss_5/emboss_lindna.xml
@@ -98,8 +98,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
\ No newline at end of file
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_marscan.xml
--- a/tools/emboss_5/emboss_marscan.xml
+++ b/tools/emboss_5/emboss_marscan.xml
@@ -44,8 +44,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
\ No newline at end of file
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_maskfeat.xml
--- a/tools/emboss_5/emboss_maskfeat.xml
+++ b/tools/emboss_5/emboss_maskfeat.xml
@@ -71,8 +71,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
\ No newline at end of file
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_maskseq.xml
--- a/tools/emboss_5/emboss_maskseq.xml
+++ b/tools/emboss_5/emboss_maskseq.xml
@@ -71,8 +71,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
\ No newline at end of file
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_matcher.xml
--- a/tools/emboss_5/emboss_matcher.xml
+++ b/tools/emboss_5/emboss_matcher.xml
@@ -56,8 +56,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
\ No newline at end of file
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_megamerger.xml
--- a/tools/emboss_5/emboss_megamerger.xml
+++ b/tools/emboss_5/emboss_megamerger.xml
@@ -62,8 +62,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
\ No newline at end of file
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_merger.xml
--- a/tools/emboss_5/emboss_merger.xml
+++ b/tools/emboss_5/emboss_merger.xml
@@ -75,8 +75,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
\ No newline at end of file
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_msbar.xml
--- a/tools/emboss_5/emboss_msbar.xml
+++ b/tools/emboss_5/emboss_msbar.xml
@@ -116,8 +116,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_needle.xml
--- a/tools/emboss_5/emboss_needle.xml
+++ b/tools/emboss_5/emboss_needle.xml
@@ -125,8 +125,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_newcpgreport.xml
--- a/tools/emboss_5/emboss_newcpgreport.xml
+++ b/tools/emboss_5/emboss_newcpgreport.xml
@@ -43,8 +43,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
\ No newline at end of file
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_newcpgseek.xml
--- a/tools/emboss_5/emboss_newcpgseek.xml
+++ b/tools/emboss_5/emboss_newcpgseek.xml
@@ -34,8 +34,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_newseq.xml
--- a/tools/emboss_5/emboss_newseq.xml
+++ b/tools/emboss_5/emboss_newseq.xml
@@ -71,8 +71,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
\ No newline at end of file
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_noreturn.xml
--- a/tools/emboss_5/emboss_noreturn.xml
+++ b/tools/emboss_5/emboss_noreturn.xml
@@ -30,8 +30,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
\ No newline at end of file
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_notseq.xml
--- a/tools/emboss_5/emboss_notseq.xml
+++ b/tools/emboss_5/emboss_notseq.xml
@@ -68,8 +68,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_nthseq.xml
--- a/tools/emboss_5/emboss_nthseq.xml
+++ b/tools/emboss_5/emboss_nthseq.xml
@@ -68,8 +68,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_octanol.xml
--- a/tools/emboss_5/emboss_octanol.xml
+++ b/tools/emboss_5/emboss_octanol.xml
@@ -39,6 +39,8 @@
**Citation**
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
\ No newline at end of file
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_oddcomp.xml
--- a/tools/emboss_5/emboss_oddcomp.xml
+++ b/tools/emboss_5/emboss_oddcomp.xml
@@ -39,8 +39,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
\ No newline at end of file
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_palindrome.xml
--- a/tools/emboss_5/emboss_palindrome.xml
+++ b/tools/emboss_5/emboss_palindrome.xml
@@ -52,8 +52,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_pasteseq.xml
--- a/tools/emboss_5/emboss_pasteseq.xml
+++ b/tools/emboss_5/emboss_pasteseq.xml
@@ -72,8 +72,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_patmatdb.xml
--- a/tools/emboss_5/emboss_patmatdb.xml
+++ b/tools/emboss_5/emboss_patmatdb.xml
@@ -48,8 +48,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
\ No newline at end of file
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_pepcoil.xml
--- a/tools/emboss_5/emboss_pepcoil.xml
+++ b/tools/emboss_5/emboss_pepcoil.xml
@@ -45,8 +45,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
\ No newline at end of file
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_pepinfo.xml
--- a/tools/emboss_5/emboss_pepinfo.xml
+++ b/tools/emboss_5/emboss_pepinfo.xml
@@ -27,8 +27,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
\ No newline at end of file
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_pepnet.xml
--- a/tools/emboss_5/emboss_pepnet.xml
+++ b/tools/emboss_5/emboss_pepnet.xml
@@ -32,8 +32,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
\ No newline at end of file
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_pepstats.xml
--- a/tools/emboss_5/emboss_pepstats.xml
+++ b/tools/emboss_5/emboss_pepstats.xml
@@ -29,8 +29,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
\ No newline at end of file
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_pepwheel.xml
--- a/tools/emboss_5/emboss_pepwheel.xml
+++ b/tools/emboss_5/emboss_pepwheel.xml
@@ -44,8 +44,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
\ No newline at end of file
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_pepwindow.xml
--- a/tools/emboss_5/emboss_pepwindow.xml
+++ b/tools/emboss_5/emboss_pepwindow.xml
@@ -21,8 +21,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
\ No newline at end of file
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_pepwindowall.xml
--- a/tools/emboss_5/emboss_pepwindowall.xml
+++ b/tools/emboss_5/emboss_pepwindowall.xml
@@ -21,8 +21,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
\ No newline at end of file
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_plotcon.xml
--- a/tools/emboss_5/emboss_plotcon.xml
+++ b/tools/emboss_5/emboss_plotcon.xml
@@ -21,8 +21,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
\ No newline at end of file
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_plotorf.xml
--- a/tools/emboss_5/emboss_plotorf.xml
+++ b/tools/emboss_5/emboss_plotorf.xml
@@ -39,8 +39,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_polydot.xml
--- a/tools/emboss_5/emboss_polydot.xml
+++ b/tools/emboss_5/emboss_polydot.xml
@@ -47,8 +47,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_preg.xml
--- a/tools/emboss_5/emboss_preg.xml
+++ b/tools/emboss_5/emboss_preg.xml
@@ -20,8 +20,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
\ No newline at end of file
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_prettyplot.xml
--- a/tools/emboss_5/emboss_prettyplot.xml
+++ b/tools/emboss_5/emboss_prettyplot.xml
@@ -112,8 +112,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
\ No newline at end of file
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_prettyseq.xml
--- a/tools/emboss_5/emboss_prettyseq.xml
+++ b/tools/emboss_5/emboss_prettyseq.xml
@@ -52,8 +52,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_primersearch.xml
--- a/tools/emboss_5/emboss_primersearch.xml
+++ b/tools/emboss_5/emboss_primersearch.xml
@@ -32,8 +32,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_revseq.xml
--- a/tools/emboss_5/emboss_revseq.xml
+++ b/tools/emboss_5/emboss_revseq.xml
@@ -76,8 +76,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_seqmatchall.xml
--- a/tools/emboss_5/emboss_seqmatchall.xml
+++ b/tools/emboss_5/emboss_seqmatchall.xml
@@ -53,8 +53,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_seqret.xml
--- a/tools/emboss_5/emboss_seqret.xml
+++ b/tools/emboss_5/emboss_seqret.xml
@@ -69,8 +69,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
\ No newline at end of file
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_showfeat.xml
--- a/tools/emboss_5/emboss_showfeat.xml
+++ b/tools/emboss_5/emboss_showfeat.xml
@@ -122,8 +122,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
\ No newline at end of file
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_shuffleseq.xml
--- a/tools/emboss_5/emboss_shuffleseq.xml
+++ b/tools/emboss_5/emboss_shuffleseq.xml
@@ -61,8 +61,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_sigcleave.xml
--- a/tools/emboss_5/emboss_sigcleave.xml
+++ b/tools/emboss_5/emboss_sigcleave.xml
@@ -54,8 +54,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
\ No newline at end of file
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_sirna.xml
--- a/tools/emboss_5/emboss_sirna.xml
+++ b/tools/emboss_5/emboss_sirna.xml
@@ -117,8 +117,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_sixpack.xml
--- a/tools/emboss_5/emboss_sixpack.xml
+++ b/tools/emboss_5/emboss_sixpack.xml
@@ -161,8 +161,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_skipseq.xml
--- a/tools/emboss_5/emboss_skipseq.xml
+++ b/tools/emboss_5/emboss_skipseq.xml
@@ -58,8 +58,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
\ No newline at end of file
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_splitter.xml
--- a/tools/emboss_5/emboss_splitter.xml
+++ b/tools/emboss_5/emboss_splitter.xml
@@ -78,8 +78,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_supermatcher.xml
--- a/tools/emboss_5/emboss_supermatcher.xml
+++ b/tools/emboss_5/emboss_supermatcher.xml
@@ -63,8 +63,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_syco.xml
--- a/tools/emboss_5/emboss_syco.xml
+++ b/tools/emboss_5/emboss_syco.xml
@@ -196,8 +196,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_tcode.xml
--- a/tools/emboss_5/emboss_tcode.xml
+++ b/tools/emboss_5/emboss_tcode.xml
@@ -43,8 +43,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
\ No newline at end of file
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_textsearch.xml
--- a/tools/emboss_5/emboss_textsearch.xml
+++ b/tools/emboss_5/emboss_textsearch.xml
@@ -57,8 +57,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
\ No newline at end of file
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_tmap.xml
--- a/tools/emboss_5/emboss_tmap.xml
+++ b/tools/emboss_5/emboss_tmap.xml
@@ -38,8 +38,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
\ No newline at end of file
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_tranalign.xml
--- a/tools/emboss_5/emboss_tranalign.xml
+++ b/tools/emboss_5/emboss_tranalign.xml
@@ -83,8 +83,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_transeq.xml
--- a/tools/emboss_5/emboss_transeq.xml
+++ b/tools/emboss_5/emboss_transeq.xml
@@ -121,8 +121,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_trimest.xml
--- a/tools/emboss_5/emboss_trimest.xml
+++ b/tools/emboss_5/emboss_trimest.xml
@@ -91,8 +91,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_trimseq.xml
--- a/tools/emboss_5/emboss_trimseq.xml
+++ b/tools/emboss_5/emboss_trimseq.xml
@@ -96,8 +96,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_twofeat.xml
--- a/tools/emboss_5/emboss_twofeat.xml
+++ b/tools/emboss_5/emboss_twofeat.xml
@@ -129,8 +129,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
\ No newline at end of file
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_union.xml
--- a/tools/emboss_5/emboss_union.xml
+++ b/tools/emboss_5/emboss_union.xml
@@ -64,8 +64,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_vectorstrip.xml
--- a/tools/emboss_5/emboss_vectorstrip.xml
+++ b/tools/emboss_5/emboss_vectorstrip.xml
@@ -81,8 +81,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_water.xml
--- a/tools/emboss_5/emboss_water.xml
+++ b/tools/emboss_5/emboss_water.xml
@@ -65,8 +65,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_wobble.xml
--- a/tools/emboss_5/emboss_wobble.xml
+++ b/tools/emboss_5/emboss_wobble.xml
@@ -39,8 +39,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_wordcount.xml
--- a/tools/emboss_5/emboss_wordcount.xml
+++ b/tools/emboss_5/emboss_wordcount.xml
@@ -34,8 +34,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
diff -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f -r 26e928ede562caaaebcbe56b172b84e88a639a2e tools/emboss_5/emboss_wordmatch.xml
--- a/tools/emboss_5/emboss_wordmatch.xml
+++ b/tools/emboss_5/emboss_wordmatch.xml
@@ -73,8 +73,10 @@
------
-**Citation**
-
+**Citation**
+
+For the underlying tool, please cite `Rice P, Longden I, Bleasby A. EMBOSS: the European Molecular Biology Open Software Suite. Trends Genet. 2000 Jun;16(6):276-7. <http://www.ncbi.nlm.nih.gov/pubmed/10827456>`_
+
If you use this tool in Galaxy, please cite `Blankenberg D, Taylor J, Schenck I, He J, Zhang Y, Ghent M, Veeraraghavan N, Albert I, Miller W, Makova KD, Hardison RC, Nekrutenko A. A framework for collaborative analysis of ENCODE data: making large-scale analyses biologist-friendly. Genome Res. 2007 Jun;17(6):960-4. <http://www.ncbi.nlm.nih.gov/pubmed/17568012>`_
</help></tool>
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
0

commit/galaxy-central: jgoecks: Trackster: significant refactoring to unify Drawables' HTML structure and also facilitate customization. Groups now use icons and can show/hide content.
by Bitbucket 15 Nov '11
by Bitbucket 15 Nov '11
15 Nov '11
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/changeset/0d523eebeb0d/
changeset: 0d523eebeb0d
user: jgoecks
date: 2011-11-16 00:04:09
summary: Trackster: significant refactoring to unify Drawables' HTML structure and also facilitate customization. Groups now use icons and can show/hide content.
affected #: 1 file
diff -r 43a4ef4ec6d18dbbb50dc285afe01dfb8c6a29f8 -r 0d523eebeb0dd7f9c52f037b2ee9d6a7dfe3e73f static/scripts/trackster.js
--- a/static/scripts/trackster.js
+++ b/static/scripts/trackster.js
@@ -650,8 +650,13 @@
*/
/**
- * Base interface for all drawable objects. Drawable objects have a name and are
- * associated with a view and container. They optionally have a drag handle class.
+ * Base class for all drawable objects. Drawable objects are associated with a view and live in a
+ * container. They have the following HTML elements and structure:
+ * <container_div>
+ * <header_div>
+ * <content_div>
+ *
+ * They optionally have a drag handle class.
*/
var Drawable = function(name, view, container, prefs, drag_handle_class) {
if (!Drawable.id_counter) { Drawable.id_counter = 0; }
@@ -672,6 +677,33 @@
this.prefs = this.config.values;
this.drag_handle_class = drag_handle_class;
this.is_overview = false;
+
+ // FIXME: this should be a saved setting
+ this.content_visible = true;
+
+ // Build Drawable HTML and behaviors.
+ this.container_div = this.build_container_div();
+ this.header_div = this.build_header_div();
+
+ if (this.header_div) {
+ this.container_div.append(this.header_div);
+
+ this.icons_div = this.build_icons_div().hide();
+ this.header_div.append(this.icons_div);
+
+ // Suppress double clicks in header so that they do not impact viz.
+ this.header_div.dblclick( function(e) { e.stopPropagation(); } );
+
+ // Show icons when users is hovering over track.
+ var drawable = this;
+ this.container_div.hover(
+ function() { drawable.icons_div.show(); },
+ function() { drawable.icons_div.hide(); }
+ );
+
+ // Needed for floating elts in header.
+ $("<div style='clear: both'/>").appendTo(this.container_div);
+ }
};
extend(Drawable.prototype, {
@@ -707,7 +739,31 @@
view.update_intro_div();
view.has_changes = true;
});
- }
+ },
+ /**
+ * Build drawable's container div; this is the parent div for all drawable's elements.
+ */
+ build_container_div: function() {},
+ /**
+ * Build drawable's header div.
+ */
+ build_header_div: function() {},
+ /**
+ * Build drawable's icons div.
+ */
+ build_icons_div: function() {},
+ /**
+ * Update icons.
+ */
+ update_icons: function() {},
+ /**
+ * Hide drawable's contents.
+ */
+ hide_contents: function () {},
+ /**
+ * Show drawable's contents.
+ */
+ show_contents: function() {}
});
/**
@@ -805,36 +861,54 @@
var DrawableGroup = function(name, view, container, prefs) {
DrawableCollection.call(this, "DrawableGroup", name, view, container, prefs, "group-handle");
- // HTML elements.
- this.container_div = $("<div/>").addClass("group").attr("id", "group_" + this.id).appendTo(this.container.content_div);
- this.header_div = $("<div/>").addClass("track-header").appendTo(this.container_div);
- this.header_div.append($("<div/>").addClass(this.drag_handle_class));
- this.name_div = $("<div/>").addClass("group-name menubutton popup").text(this.name).appendTo(this.header_div);
- this.content_div = $("<div/>").addClass("content-div").attr("id", "group_" + this.id + "_content_div").appendTo(this.container_div);
-
// Set up containers/moving for group: register both container_div and content div as container
// because both are used as containers (container div to recognize container, content_div to
// store elements). Group can be moved.
+ this.content_div = $("<div/>").addClass("content-div").attr("id", "group_" + this.id + "_content_div").appendTo(this.container_div);
is_container(this.container_div, this);
is_container(this.content_div, this);
moveable(this.container_div, this.drag_handle_class, ".group", this);
-
- this.update_icons();
};
extend(DrawableGroup.prototype, Drawable.prototype, DrawableCollection.prototype, {
- /**
- * Make popup menu for group.
- */
- update_icons: function() {
+ build_container_div: function() {
+ return $("<div/>").addClass("group").attr("id", "group_" + this.id).appendTo(this.container.content_div);
+ },
+ build_header_div: function() {
+ var header_div = $("<div/>").addClass("track-header");
+ header_div.append($("<div/>").addClass(this.drag_handle_class));
+ this.name_div = $("<div/>").addClass("track-name").text(this.name).appendTo(header_div);
+ return header_div;
+ },
+ build_icons_div: function() {
+ var icons_div = $("<div/>").css("float", "left");
+
+ this.toggle_icon = $("<a/>").attr("href", "javascript:void(0);").attr("title", "Hide/show group content")
+ .addClass("icon-button toggle").tipsy( {gravity: 's'} )
+ .appendTo(icons_div);
+ this.settings_icon = $("<a/>").attr("href", "javascript:void(0);").attr("title", "Edit settings")
+ .addClass("icon-button settings-icon").tipsy( {gravity: 's'} )
+ .appendTo(icons_div);
+ this.remove_icon = $("<a/>").attr("href", "javascript:void(0);").attr("title", "Remove")
+ .addClass("icon-button remove-icon").tipsy( {gravity: 's'} )
+ .appendTo(icons_div);
var group = this;
-
- var group_dropdown = {};
-
- //
- // Edit config option.
- //
- group_dropdown["Edit configuration"] = function() {
+
+ // Toggle icon hides or shows the group content.
+ this.toggle_icon.click( function() {
+ if ( group.content_visible ) {
+ group.toggle_icon.addClass("toggle-expand").removeClass("toggle");
+ group.hide_contents();
+ group.content_visible = false;
+ } else {
+ group.toggle_icon.addClass("toggle").removeClass("toggle-expand");
+ group.content_visible = true;
+ group.show_contents();
+ }
+ });
+
+ // Clicking on settings icon opens group config.
+ this.settings_icon.click( function() {
var cancel_fn = function() { hide_modal(); $(window).unbind("keypress.check_enter_esc"); },
ok_fn = function() {
group.config.update_from_form( $(".dialog-box") );
@@ -854,16 +928,25 @@
"Cancel": cancel_fn,
"OK": ok_fn
});
- };
+ });
- //
- // Remove option.
- //
- group_dropdown.Remove = function() {
+ // Clicking on remove icon removes group.
+ this.remove_icon.click( function() {
+ // Tipsy for remove icon must be deleted when group is deleted.
+ $(".tipsy").remove();
group.remove();
- };
+ });
- make_popupmenu(group.name_div, group_dropdown);
+ return icons_div;
+ },
+ hide_contents : function () {
+ this.content_div.hide();
+ },
+ show_contents : function() {
+ // Show the contents div and labels (if present)
+ this.content_div.show();
+ // Request a redraw of the content
+ this.request_draw();
}
});
@@ -2356,7 +2439,7 @@
* -------> ReadTrack
* -------> VcfTrack
*/
-var Track = function(name, view, container, show_header, prefs, data_url, data_query_wait) {
+var Track = function(name, view, container, prefs, data_url, data_query_wait) {
// For now, track's container is always view.
Drawable.call(this, name, view, container, {}, "draghandle");
@@ -2368,58 +2451,59 @@
this.data_query_wait = (data_query_wait ? data_query_wait : DEFAULT_DATA_QUERY_WAIT);
this.dataset_check_url = converted_datasets_state_url;
- // FIXME: this should be a saved setting
- this.content_visible = true;
-
if (!Track.id_counter) { Track.id_counter = 0; }
this.id = Track.id_counter++;
-
+
//
- // Create HTML element structure for track.
+ // Create content div, which is where track is displayed.
//
- this.container_div = $("<div />").addClass('track').attr("id", "track_" + this.id).css("position", "relative");
-
- // Create and initialize track header and icons.
- if (show_header) {
- this.header_div = $("<div class='track-header'/>").appendTo(this.container_div);
- if (this.view.editor) { this.drag_div = $("<div/>").addClass(this.drag_handle_class).appendTo(this.header_div); }
- this.name_div = $("<div/>").addClass("track-name").appendTo(this.header_div).text(this.name)
+ this.content_div = $("<div class='track-content'>").appendTo(this.container_div);
+ this.container.content_div.append(this.container_div);
+};
+extend(Track.prototype, Drawable.prototype, {
+ build_container_div: function () {
+ return $("<div/>").addClass('track').attr("id", "track_" + this.id).css("position", "relative");
+ },
+ build_header_div: function() {
+ var header_div = $("<div class='track-header'/>");
+ if (this.view.editor) { this.drag_div = $("<div/>").addClass(this.drag_handle_class).appendTo(header_div); }
+ this.name_div = $("<div/>").addClass("track-name").appendTo(header_div).text(this.name)
.attr( "id", this.name.replace(/\s+/g,'-').replace(/[^a-zA-Z0-9\-]/g,'').toLowerCase() );
- this.icons_div = $("<div/>").css("float", "left").appendTo(this.header_div).hide();
-
+ return header_div;
+ },
+ build_icons_div: function() {
+ var icons_div = $("<div/>").css("float", "left");
+
// Track icons.
this.mode_icon = $("<a/>").attr("href", "javascript:void(0);").attr("title", "Set display mode")
- .addClass("icon-button chevron-expand").tipsy( {gravity: 's'} ).appendTo(this.icons_div);
+ .addClass("icon-button chevron-expand").tipsy( {gravity: 's'} ).appendTo(icons_div);
this.toggle_icon = $("<a/>").attr("href", "javascript:void(0);").attr("title", "Hide/show track content")
.addClass("icon-button toggle").tipsy( {gravity: 's'} )
- .appendTo(this.icons_div);
+ .appendTo(icons_div);
this.settings_icon = $("<a/>").attr("href", "javascript:void(0);").attr("title", "Edit settings")
.addClass("icon-button settings-icon").tipsy( {gravity: 's'} )
- .appendTo(this.icons_div);
+ .appendTo(icons_div);
this.overview_icon = $("<a/>").attr("href", "javascript:void(0);").attr("title", "Set as overview")
.addClass("icon-button overview-icon").tipsy( {gravity: 's'} )
- .appendTo(this.icons_div);
+ .appendTo(icons_div);
this.filters_icon = $("<a/>").attr("href", "javascript:void(0);").attr("title", "Filters")
.addClass("icon-button filters-icon").tipsy( {gravity: 's'} )
- .appendTo(this.icons_div).hide();
+ .appendTo(icons_div).hide();
this.tools_icon = $("<a/>").attr("href", "javascript:void(0);").attr("title", "Tools")
.addClass("icon-button tools-icon").tipsy( {gravity: 's'} )
- .appendTo(this.icons_div).hide();
+ .appendTo(icons_div).hide();
this.remove_icon = $("<a/>").attr("href", "javascript:void(0);").attr("title", "Remove")
.addClass("icon-button remove-icon").tipsy( {gravity: 's'} )
- .appendTo(this.icons_div);
+ .appendTo(icons_div);
var track = this;
-
- // Suppress double clicks in header so that they do not impact viz.
- this.header_div.dblclick( function(e) { e.stopPropagation(); } );
-
+
// Set up behavior for modes popup.
if (track.display_modes !== undefined) {
var init_mode = (track.config && track.config.values['mode'] ?
track.config.values['mode'] : track.display_modes[0]);
track.mode = init_mode;
this.mode_icon.attr("title", "Set display mode (now: " + track.mode + ")");
-
+
var mode_mapping = {};
for (var i = 0, len = track.display_modes.length; i < len; i++) {
var mode = track.display_modes[i];
@@ -2432,7 +2516,7 @@
track.container_div.mouseleave(function() { track.icons_div.hide(); } ); };
}(mode);
}
-
+
make_popupmenu(this.mode_icon, mode_mapping);
}
@@ -2448,7 +2532,7 @@
track.show_contents();
}
});
-
+
// Clicking on settings icon opens track config.
this.settings_icon.click( function() {
var cancel_fn = function() { hide_modal(); $(window).unbind("keypress.check_enter_esc"); },
@@ -2471,22 +2555,22 @@
"OK": ok_fn
});
});
-
+
this.overview_icon.click( function() {
track.view.set_overview(track);
});
-
+
this.filters_icon.click( function() {
// TODO: update tipsy text.
track.filters_div.toggle();
track.filters_manager.reset_filters();
});
-
+
this.tools_icon.click( function() {
// TODO: update tipsy text.
-
+
track.dynamic_tool_div.toggle();
-
+
// Update track name.
if (track.dynamic_tool_div.is(":visible")) {
track.set_name(track.name + track.tool_region_and_parameters_str());
@@ -2497,29 +2581,39 @@
// HACK: name change modifies icon placement, which leaves tooltip incorrectly placed.
$(".tipsy").remove();
});
-
+
// Clicking on remove icon removes track.
this.remove_icon.click( function() {
// Tipsy for remove icon must be deleted when track is deleted.
$(".tipsy").remove();
track.remove();
});
-
- // Show icons when users is hovering over track.
- this.container_div.hover( function() { track.icons_div.show(); }, function() { track.icons_div.hide(); } );
- // Needed for floating elts in header.
- $("<div style='clear: both'/>").appendTo(this.container_div);
- }
-
- //
- // Create content div, which is where track is displayed.
- //
- this.content_div = $("<div class='track-content'>").appendTo(this.container_div);
- this.container.content_div.append(this.container_div);
-};
-extend(Track.prototype, Drawable.prototype, {
- /** Returns track type. */
+ return icons_div;
+ },
+ /**
+ * Hide any elements that are part of the tracks contents area. Should
+ * remove as approprite, the track will be redrawn by show_contents.
+ */
+ hide_contents : function () {
+ // Clear contents by removing any elements that are contained in
+ // the tracks content_div
+ this.content_div.children().remove();
+ // Hide the content div
+ this.content_div.hide();
+ // And any y axis labels (common to several track types)
+ this.container_div.find(".yaxislabel, .track-resize").hide()
+ },
+ show_contents : function() {
+ // Show the contents div and labels (if present)
+ this.content_div.show();
+ this.container_div.find(".yaxislabel, .track-resize").show()
+ // Request a redraw of the content
+ this.request_draw();
+ },
+ /**
+ * Returns track type.
+ */
get_type: function() {
// Order is important: start with most-specific classes and go up the track hierarchy.
if (this instanceof LabelTrack) {
@@ -2612,33 +2706,13 @@
this.update_icons();
},
/**
- * Hide any elements that are part of the tracks contents area. Should
- * remove as approprite, the track will be redrawn by show_contents.
- */
- hide_contents : function () {
- // Clear contents by removing any elements that are contained in
- // the tracks content_div
- this.content_div.children().remove();
- // Hide the content div
- this.content_div.hide();
- // And any y axis labels (common to several track types)
- this.container_div.find(".yaxislabel, .track-resize").hide()
- },
- show_contents : function() {
- // Show the contents div and labels (if present)
- this.content_div.show();
- this.container_div.find(".yaxislabel, .track-resize").show()
- // Request a redraw of the content
- this.request_draw();
- },
- /**
* Additional initialization required before drawing track for the first time.
*/
predraw_init: function() {}
});
-var TiledTrack = function(name, view, container, show_header, prefs, filters_list, tool_dict) {
- Track.call(this, name, view, container, show_header, prefs);
+var TiledTrack = function(name, view, container, prefs, filters_list, tool_dict) {
+ Track.call(this, name, view, container, prefs);
var track = this,
view = track.view;
@@ -3031,6 +3105,7 @@
this.container_div.addClass( "label-track" );
};
extend(LabelTrack.prototype, Track.prototype, {
+ build_header_div: function() {},
init: function() {
// Enable by default because there should always be data when drawing track.
this.enabled = true;
@@ -3057,7 +3132,7 @@
});
var ReferenceTrack = function (view) {
- TiledTrack.call(this, "reference", view, { content_div: view.top_labeltrack }, false, {});
+ TiledTrack.call(this, "reference", view, { content_div: view.top_labeltrack }, {});
view.reference_track = this;
this.left_offset = 200;
@@ -3072,6 +3147,7 @@
this.tile_cache = new Cache(CACHED_TILES_LINE);
};
extend(ReferenceTrack.prototype, Drawable.prototype, TiledTrack.prototype, {
+ build_header_div: function() {},
init: function() {
// Enable by default because there should always be data when drawing track.
this.enabled = true;
@@ -3109,7 +3185,7 @@
var track = this;
this.display_modes = ["Histogram", "Line", "Filled", "Intensity"];
this.mode = "Histogram";
- TiledTrack.call( this, name, view, container, true, prefs );
+ TiledTrack.call( this, name, view, container, prefs );
this.min_height_px = 16;
this.max_height_px = 400;
@@ -3269,7 +3345,7 @@
//
// Initialization.
//
- TiledTrack.call(this, name, view, container, true, prefs, filters, tool);
+ TiledTrack.call(this, name, view, container, prefs, filters, tool);
// Define and restore track configuration.
this.config = new DrawableConfig( {
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
0

commit/galaxy-central: dan: Add VCF viewer for IGV. Add necessary datatypes and converters to support this view (vcf_bgzip; vcf_bgzip to tabix).
by Bitbucket 15 Nov '11
by Bitbucket 15 Nov '11
15 Nov '11
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/changeset/43a4ef4ec6d1/
changeset: 43a4ef4ec6d1
user: dan
date: 2011-11-15 23:24:38
summary: Add VCF viewer for IGV. Add necessary datatypes and converters to support this view (vcf_bgzip; vcf_bgzip to tabix).
affected #: 7 files
diff -r 7897af491f07535915e2cd917afd0da981a1b45c -r 43a4ef4ec6d18dbbb50dc285afe01dfb8c6a29f8 datatypes_conf.xml.sample
--- a/datatypes_conf.xml.sample
+++ b/datatypes_conf.xml.sample
@@ -9,7 +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" /> -->
+ <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"/>
@@ -154,8 +154,10 @@
<datatype extension="blastxml" type="galaxy.datatypes.xml:BlastXml" mimetype="application/xml" display_in_upload="true"/><datatype extension="vcf" type="galaxy.datatypes.tabular:Vcf" display_in_upload="true"><converter file="vcf_to_bgzip_converter.xml" target_datatype="bgzip"/>
+ <converter file="vcf_to_vcf_bgzip_converter.xml" target_datatype="vcf_bgzip"/><converter file="vcf_to_tabix_converter.xml" target_datatype="tabix" depends_on="bgzip"/><converter file="vcf_to_summary_tree_converter.xml" target_datatype="summary_tree"/>
+ <display file="igv/vcf.xml" /></datatype><datatype extension="wsf" type="galaxy.datatypes.wsf:SnpFile" display_in_upload="true"/><datatype extension="velvet" type="galaxy.datatypes.assembly:Velvet" display_in_upload="false"/>
@@ -168,6 +170,10 @@
<datatype extension="interval_index" type="galaxy.datatypes.binary:Binary" subclass="True" /><datatype extension="tabix" type="galaxy.datatypes.binary:Binary" subclass="True" /><datatype extension="bgzip" type="galaxy.datatypes.binary:Binary" subclass="True" />
+ <datatype extension="vcf_bgzip" type_extension="bgzip" subclass="True" >
+ <display file="igv/vcf.xml" />
+ <converter file="vcf_bgzip_to_tabix_converter.xml" target_datatype="tabix"/>
+ </datatype><!-- Start EMBOSS tools --><datatype extension="acedb" type="galaxy.datatypes.data:Text"/><datatype extension="asn1" type="galaxy.datatypes.data:Text"/>
diff -r 7897af491f07535915e2cd917afd0da981a1b45c -r 43a4ef4ec6d18dbbb50dc285afe01dfb8c6a29f8 display_applications/igv/bam.xml
--- a/display_applications/igv/bam.xml
+++ b/display_applications/igv/bam.xml
@@ -1,12 +1,32 @@
+<?xml version="1.0"?><display id="igv_bam" version="1.0.0" name="display with IGV">
- <link id="web" name="web">
- <url>$jnlp.url</url>
- <param type="data" name="bam_file" url="galaxy_${DATASET_HASH}.bam" strip_https="True" />
- <param type="data" name="bai_file" url="galaxy_${DATASET_HASH}.bam.bai" metadata="bam_index" strip_https="True" />
- <param type="template" name="jnlp" url="galaxy_${DATASET_HASH}.jnlp" viewable="True" strip_https="True" mimetype="application/x-java-jnlp-file"><?xml version="1.0" encoding="utf-8"?>
+
+ <!-- Load links from file: one line to one link -->
+ <dynamic_links from_file="tool-data/shared/igv/igv_build_sites.txt" skip_startswith="#" id="0" name="1">
+
+ <!-- Define parameters by column from file, allow splitting on builds -->
+ <dynamic_param name="site_id" value="0"/>
+ <dynamic_param name="site_name" value="1"/>
+ <dynamic_param name="site_link" value="2"/>
+ <dynamic_param name="site_dbkeys" value="3" split="True" separator="," />
+ <dynamic_param name="site_organisms" value="4" split="True" separator="," />
+
+ <!-- Filter out some of the links based upon matching site_dbkeys to dataset dbkey -->
+ <filter>${dataset.dbkey in $site_dbkeys}</filter>
+
+ <!-- We define url and params as normal, but values defined in dynamic_param are available by specified name -->
+ <url>${redirect_url}</url>
+
+ <param type="data" name="bam_file" url="galaxy_${DATASET_HASH}.bam" />
+ <param type="data" name="bai_file" url="galaxy_${DATASET_HASH}.bam.bai" metadata="bam_index" />
+ <param type="template" name="site_organism" strip="True" >
+ $site_organisms[ $site_dbkeys.index( $bam_file.dbkey ) ]
+ </param>
+
+ <param type="template" name="jnlp" url="galaxy_${DATASET_HASH}.jnlp" viewable="True" mimetype="application/x-java-jnlp-file"><?xml version="1.0" encoding="utf-8"?>
<jnlp
spec="1.0+"
- codebase="http://www.broadinstitute.org/igvdata/jws/prod">
+ codebase="${site_link}">
<information>
<title>IGV 1.5</title>
<vendor>The Broad Institute</vendor>
@@ -54,17 +74,22 @@
<application-desc main-class="org.broad.igv.ui.IGVMainFrame">
<argument>-g</argument>
- <argument>${bam_file.dbkey}</argument>
+ <argument>${site_organism}</argument>
<argument>${bam_file.url}</argument>
</application-desc>
</jnlp>
-
</param>
- </link>
-
- <link id="local" name="local">
- <url>http://localhost:60151/load?file=${qp($bam_file.url)}&genome=${qp($bam_…</url>
- <param type="data" name="bam_file" url="galaxy_${DATASET_HASH}.bam" strip_https="True" />
- <param type="data" name="bai_file" url="galaxy_${DATASET_HASH}.bam.bai" metadata="bam_index" strip_https="True" />
- </link>
+ <param type="template" name="redirect_url" strip="True" >
+ #if $site_id.startswith( 'local_' )
+ ${site_link}?file=${bam_file.qp}&genome=${site_organism}&merge=true
+ #elif $site_id.startswith( 'web_link_' ):
+ ${site_link}?sessionURL=${bam_file.qp}&genome=${site_organism}&merge=true
+ #else:
+ ${jnlp.url}
+ #end if
+ </param>
+ </dynamic_links>
+
+
</display>
+<!-- Dan Blankenberg -->
\ No newline at end of file
diff -r 7897af491f07535915e2cd917afd0da981a1b45c -r 43a4ef4ec6d18dbbb50dc285afe01dfb8c6a29f8 display_applications/igv/vcf.xml
--- /dev/null
+++ b/display_applications/igv/vcf.xml
@@ -0,0 +1,95 @@
+<?xml version="1.0"?>
+<display id="igv_vcf" version="1.0.0" name="display with IGV">
+
+ <!-- Load links from file: one line to one link -->
+ <dynamic_links from_file="tool-data/shared/igv/igv_build_sites.txt" skip_startswith="#" id="0" name="1">
+
+ <!-- Define parameters by column from file, allow splitting on builds -->
+ <dynamic_param name="site_id" value="0"/>
+ <dynamic_param name="site_name" value="1"/>
+ <dynamic_param name="site_link" value="2"/>
+ <dynamic_param name="site_dbkeys" value="3" split="True" separator="," />
+ <dynamic_param name="site_organisms" value="4" split="True" separator="," />
+
+ <!-- Filter out some of the links based upon matching site_dbkeys to dataset dbkey -->
+ <filter>${dataset.dbkey in $site_dbkeys}</filter>
+
+ <!-- We define url and params as normal, but values defined in dynamic_param are available by specified name -->
+ <url>${redirect_url}</url>
+
+ <param type="data" name="bgzip_file" url="galaxy_${DATASET_HASH}.vcf.gz" format="vcf_bgzip" />
+ <param type="data" name="tabix_file" dataset="bgzip_file" url="galaxy_${DATASET_HASH}.vcf.gz.tbi" format="tabix" />
+ <param type="template" name="site_organism" strip="True" >
+ $site_organisms[ $site_dbkeys.index( $bgzip_file.dbkey ) ]
+ </param>
+
+ <param type="template" name="jnlp" url="galaxy_${DATASET_HASH}.jnlp" viewable="True" mimetype="application/x-java-jnlp-file"><?xml version="1.0" encoding="utf-8"?>
+<jnlp
+ spec="1.0+"
+ codebase="${site_link}">
+ <information>
+ <title>IGV 1.5</title>
+ <vendor>The Broad Institute</vendor>
+ <homepage href="http://www.broadinstitute.org/igv"/>
+ <description>IGV Software</description>
+ <description kind="short">IGV</description>
+ </information>
+ <security>
+ <all-permissions/>
+ </security>
+ <resources>
+
+<j2se version="1.5+" initial-heap-size="256m" max-heap-size="1100m"/>
+ <jar href="igv.jar" download="eager" main="true"/>
+ <jar href="batik-codec.jar" download="eager"/>
+ <property name="apple.laf.useScreenMenuBar" value="true"/>
+ <property name="com.apple.mrj.application.growbox.intrudes" value="false"/>
+ <property name="com.apple.mrj.application.live-resize" value="true"/>
+ <property name="com.apple.macos.smallTabs" value="true"/>
+ </resources>
+
+ <resources os="Mac" arch="i386">
+ <property name="apple.awt.graphics.UseQuartz" value="false"/>
+ <nativelib href="hdfnative-macintel.jar"/>
+ </resources>
+
+ <resources os="Mac" arch="ppc">
+ <property name="apple.awt.graphics.UseQuartz" value="false"/>
+ <nativelib href="hdfnative-macppc.jar"/>
+ </resources>
+
+ <resources os="Mac" arch="PowerPC">
+ <property name="apple.awt.graphics.UseQuartz" value="false"/>
+ <nativelib href="hdfnative-macppc.jar"/>
+ </resources>
+
+ <resources os="Windows">
+ <property name="sun.java2d.noddraw" value="true"/>
+ <nativelib href="hdfnative-win.jar"/>
+ </resources>
+
+ <resources os="Linux">
+ <nativelib href="hdfnative-linux64.jar"/>
+ </resources>
+
+ <application-desc main-class="org.broad.igv.ui.IGVMainFrame">
+ <argument>-g</argument>
+ <argument>${site_organism}</argument>
+ <argument>${bgzip_file.url}</argument>
+ </application-desc>
+</jnlp>
+ </param>
+ <param type="template" name="redirect_url" strip="True" >
+ #if $site_id.startswith( 'local_' )
+ ${site_link}?file=${bgzip_file.qp}&genome=${site_organism}&merge=true
+ #elif $site_id.startswith( 'web_link_' ):
+ ${site_link}?sessionURL=${bgzip_file.qp}&genome=${site_organism}&merge=true
+ #else:
+ ${jnlp.url}
+ #end if
+ </param>
+ </dynamic_links>
+
+
+</display>
+<!-- Dan Blankenberg -->
\ No newline at end of file
diff -r 7897af491f07535915e2cd917afd0da981a1b45c -r 43a4ef4ec6d18dbbb50dc285afe01dfb8c6a29f8 lib/galaxy/datatypes/converters/vcf_bgzip_to_tabix_converter.xml
--- /dev/null
+++ b/lib/galaxy/datatypes/converters/vcf_bgzip_to_tabix_converter.xml
@@ -0,0 +1,14 @@
+<tool id="CONVERTER_vcf_bgzip_to_tabix_0" name="Convert BGZ VCF to tabix" version="1.0.0" hidden="true">
+<!-- <description>__NOT_USED_CURRENTLY_FOR_CONVERTERS__</description> -->
+ <command interpreter="python">interval_to_tabix_converter.py 'vcf' '' '$input1' '$output1'</command>
+ <inputs>
+ <page>
+ <param format="vcf_bgzip" name="input1" type="data" label="Choose BGZIP'd VCF file"/>
+ </page>
+ </inputs>
+ <outputs>
+ <data format="tabix" name="output1"/>
+ </outputs>
+ <help>
+ </help>
+</tool>
diff -r 7897af491f07535915e2cd917afd0da981a1b45c -r 43a4ef4ec6d18dbbb50dc285afe01dfb8c6a29f8 lib/galaxy/datatypes/converters/vcf_to_vcf_bgzip_converter.xml
--- /dev/null
+++ b/lib/galaxy/datatypes/converters/vcf_to_vcf_bgzip_converter.xml
@@ -0,0 +1,14 @@
+<tool id="CONVERTER_vcf_to_vcf_bgzip_0" name="Convert VCF to VCF_BGZIP" version="1.0.0" hidden="true">
+<!-- <description>__NOT_USED_CURRENTLY_FOR_CONVERTERS__</description> -->
+ <command interpreter="python">bgzip.py vcf $input1 $output1</command>
+ <inputs>
+ <page>
+ <param format="vcf" name="input1" type="data" label="Choose Vcf file"/>
+ </page>
+ </inputs>
+ <outputs>
+ <data format="vcf_bgzip" name="output1"/>
+ </outputs>
+ <help>
+ </help>
+</tool>
diff -r 7897af491f07535915e2cd917afd0da981a1b45c -r 43a4ef4ec6d18dbbb50dc285afe01dfb8c6a29f8 run.sh
--- a/run.sh
+++ b/run.sh
@@ -15,6 +15,7 @@
tool_sheds_conf.xml.sample
universe_wsgi.ini.sample
tool-data/shared/ucsc/builds.txt.sample
+ tool-data/shared/igv/igv_build_sites.txt.sample
tool-data/*.sample
static/welcome.html.sample
"
diff -r 7897af491f07535915e2cd917afd0da981a1b45c -r 43a4ef4ec6d18dbbb50dc285afe01dfb8c6a29f8 tool-data/shared/igv/igv_build_sites.txt.sample
--- /dev/null
+++ b/tool-data/shared/igv/igv_build_sites.txt.sample
@@ -0,0 +1,4 @@
+#site_id site_name site_url dbkey ivg_build_name
+web_link_main web current http://www.broadinstitute.org/igv/projects/current/igv.php hg19,hg_g1k_v37,hg18,1kg_ref,hg17,hg16,mm9,mm8,mm7,panTro2,rheMac2,rn4,canFam2,bosTau6,bosTau4,bosTau3,susScrofa,galGal3,cavPor3,monDom5,xenTro2,taeGut1,zebrafish,danRer6,danRer7,gasAcu1,Aplysia,Plasmodium_3D7_v2.1,Plasmodium_3D7_v5.5,Plasmodium_6.1,PlasmoDB_7.0,pvivax,GSM552910,sacCer1,sacCer2,sk1,Y55,sacCer62,spombe_709,spombe_1.55,candida,mg8,spur_2.1,spur_2.5,spur_3.0,WS201,ce6,ce4,dm3,dm2,dmel_5.9,dmel_r5.22,dmel_r5.33,tcas_2.0,tcas_3.0,ncrassa_v3,nc10,Glamblia_2.0,me49,tb927,tbgambi,lmjr,anidulans_4.1,NC_009012,U00096.2,NC_000913.2,NC_002655.2,CSavignyi_v2.1,tair8,tair9,tair10,O_Sativa_r6,osativa_6.1,B73,ZmB73_5a,ppatens_1.2,D.discoideum hg19,b37,hg18,1kg_ref,hg17,hg16,mm9,mm8,mm7,panTro2,rheMac2,rn4,canFam2,bosTau6,bosTau4,bosTau3,susScrofa,galGal3,cavPor3,monDom5,xenTro2,taeGut1,zebrafish,danRer6,danRer7,gasAcu1,Aplysia,Plasmodium_3D7_v2.1,Plasmodium_3D7_v5.5,Plasmodium_6.1,PlasmoDB_7.0,pvivax,GSM552910,sacCer1,sacCer2,sk1,Y55,sacCer62,spombe_709,spombe_1.55,candida,mg8,spur_2.1,spur_2.5,spur_3.0,WS201,ce6,ce4,dm3,dm2,dmel_5.9,dmel_r5.22,dmel_r5.33,tcas_2.0,tcas_3.0,ncrassa_v3,nc10,Glamblia_2.0,me49,tb927,tbgambi,lmjr,anidulans_4.1,NC_009012,U00096.2,NC_000913.2,NC_002655.2,CSavignyi_v2.1,tair8,tair9,tair10,O_Sativa_r6,osativa_6.1,B73,ZmB73_5a,ppatens_1.2,D.discoideum
+#web_jnlp_1.5 web 1.5 http://www.broadinstitute.org/igvdata/jws/prod hg19,hg_g1k_v37,hg18,1kg_ref,hg17,hg16,mm9,mm8,mm7,panTro2,rheMac2,rn4,canFam2,bosTau6,bosTau4,bosTau3,susScrofa,galGal3,cavPor3,monDom5,xenTro2,taeGut1,zebrafish,danRer6,danRer7,gasAcu1,Aplysia,Plasmodium_3D7_v2.1,Plasmodium_3D7_v5.5,Plasmodium_6.1,PlasmoDB_7.0,pvivax,GSM552910,sacCer1,sacCer2,sk1,Y55,sacCer62,spombe_709,spombe_1.55,candida,mg8,spur_2.1,spur_2.5,spur_3.0,WS201,ce6,ce4,dm3,dm2,dmel_5.9,dmel_r5.22,dmel_r5.33,tcas_2.0,tcas_3.0,ncrassa_v3,nc10,Glamblia_2.0,me49,tb927,tbgambi,lmjr,anidulans_4.1,NC_009012,U00096.2,NC_000913.2,NC_002655.2,CSavignyi_v2.1,tair8,tair9,tair10,O_Sativa_r6,osativa_6.1,B73,ZmB73_5a,ppatens_1.2,D.discoideum hg19,b37,hg18,1kg_ref,hg17,hg16,mm9,mm8,mm7,panTro2,rheMac2,rn4,canFam2,bosTau6,bosTau4,bosTau3,susScrofa,galGal3,cavPor3,monDom5,xenTro2,taeGut1,zebrafish,danRer6,danRer7,gasAcu1,Aplysia,Plasmodium_3D7_v2.1,Plasmodium_3D7_v5.5,Plasmodium_6.1,PlasmoDB_7.0,pvivax,GSM552910,sacCer1,sacCer2,sk1,Y55,sacCer62,spombe_709,spombe_1.55,candida,mg8,spur_2.1,spur_2.5,spur_3.0,WS201,ce6,ce4,dm3,dm2,dmel_5.9,dmel_r5.22,dmel_r5.33,tcas_2.0,tcas_3.0,ncrassa_v3,nc10,Glamblia_2.0,me49,tb927,tbgambi,lmjr,anidulans_4.1,NC_009012,U00096.2,NC_000913.2,NC_002655.2,CSavignyi_v2.1,tair8,tair9,tair10,O_Sativa_r6,osativa_6.1,B73,ZmB73_5a,ppatens_1.2,D.discoideum
+local_default local http://localhost:60151/load hg19,hg_g1k_v37,hg18,1kg_ref,hg17,hg16,mm9,mm8,mm7,panTro2,rheMac2,rn4,canFam2,bosTau6,bosTau4,bosTau3,susScrofa,galGal3,cavPor3,monDom5,xenTro2,taeGut1,zebrafish,danRer6,danRer7,gasAcu1,Aplysia,Plasmodium_3D7_v2.1,Plasmodium_3D7_v5.5,Plasmodium_6.1,PlasmoDB_7.0,pvivax,GSM552910,sacCer1,sacCer2,sk1,Y55,sacCer62,spombe_709,spombe_1.55,candida,mg8,spur_2.1,spur_2.5,spur_3.0,WS201,ce6,ce4,dm3,dm2,dmel_5.9,dmel_r5.22,dmel_r5.33,tcas_2.0,tcas_3.0,ncrassa_v3,nc10,Glamblia_2.0,me49,tb927,tbgambi,lmjr,anidulans_4.1,NC_009012,U00096.2,NC_000913.2,NC_002655.2,CSavignyi_v2.1,tair8,tair9,tair10,O_Sativa_r6,osativa_6.1,B73,ZmB73_5a,ppatens_1.2,D.discoideum hg19,b37,hg18,1kg_ref,hg17,hg16,mm9,mm8,mm7,panTro2,rheMac2,rn4,canFam2,bosTau6,bosTau4,bosTau3,susScrofa,galGal3,cavPor3,monDom5,xenTro2,taeGut1,zebrafish,danRer6,danRer7,gasAcu1,Aplysia,Plasmodium_3D7_v2.1,Plasmodium_3D7_v5.5,Plasmodium_6.1,PlasmoDB_7.0,pvivax,GSM552910,sacCer1,sacCer2,sk1,Y55,sacCer62,spombe_709,spombe_1.55,candida,mg8,spur_2.1,spur_2.5,spur_3.0,WS201,ce6,ce4,dm3,dm2,dmel_5.9,dmel_r5.22,dmel_r5.33,tcas_2.0,tcas_3.0,ncrassa_v3,nc10,Glamblia_2.0,me49,tb927,tbgambi,lmjr,anidulans_4.1,NC_009012,U00096.2,NC_000913.2,NC_002655.2,CSavignyi_v2.1,tair8,tair9,tair10,O_Sativa_r6,osativa_6.1,B73,ZmB73_5a,ppatens_1.2,D.discoideum
\ No newline at end of file
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
0

commit/galaxy-central: jgoecks: Fix bug in Trackster's 'Add Datasets to Visualization' button.
by Bitbucket 15 Nov '11
by Bitbucket 15 Nov '11
15 Nov '11
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/changeset/7897af491f07/
changeset: 7897af491f07
user: jgoecks
date: 2011-11-15 21:50:36
summary: Fix bug in Trackster's 'Add Datasets to Visualization' button.
affected #: 1 file
diff -r a87d7b85c5771372550bd786bd15606f8e29cf41 -r 7897af491f07535915e2cd917afd0da981a1b45c static/scripts/trackster.js
--- a/static/scripts/trackster.js
+++ b/static/scripts/trackster.js
@@ -909,7 +909,7 @@
this.content_div = this.viewport_container;
is_container(this.viewport_container, view);
// Introduction div shown when there are no tracks.
- this.intro_div = $("<div/>").addClass("intro");
+ this.intro_div = $("<div/>").addClass("intro").appendTo(this.viewport_container).hide();
var add_tracks_button = $("<div/>").text("Add Datasets to Visualization").addClass("action-button").appendTo(this.intro_div).click(function () {
add_tracks();
});
@@ -1077,10 +1077,10 @@
/** Add or remove intro div depending on view state. */
update_intro_div: function() {
if (this.drawables.length === 0) {
- this.intro_div.appendTo(this.viewport_container);
+ this.intro_div.show();
}
else {
- this.intro_div.remove();
+ this.intro_div.hide();
}
},
update_location: function(low, high) {
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
0

commit/galaxy-central: fubar: Fixes for the new horrible FastQC html layout. Now wastes a whole lot of space on the left
by Bitbucket 15 Nov '11
by Bitbucket 15 Nov '11
15 Nov '11
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/changeset/a87d7b85c577/
changeset: a87d7b85c577
user: fubar
date: 2011-11-15 21:34:51
summary: Fixes for the new horrible FastQC html layout. Now wastes a whole lot of space on the left
with a fancy TOC - ugh.
Test updated also.
affected #: 3 files
diff -r e637518dada717ac2e1cde85c28d2de0f106fe8a -r a87d7b85c5771372550bd786bd15606f8e29cf41 test-data/fastqc_report.html
--- a/test-data/fastqc_report.html
+++ b/test-data/fastqc_report.html
@@ -1,117 +1,224 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Strict//EN"><html>
-<head><title>1000gsample.fastq FastQC Report</title>
+<head><title>dataset_1.dat FastQC Report</title><style type="text/css">
- body {
- font-family: sans-serif;
- color: #000000;
- background-color: #FFFFFF;
- border: 0;
- margin: 0;
- padding: 0;
- }
+ @media screen {
+ div.summary {
+ width: 18em;
+ position:fixed;
+ top: 3em;
+ margin:1em 0 0 1em;
+ }
+
+ div.main {
+ display:block;
+ position:absolute;
+ overflow:auto;
+ height:auto;
+ width:auto;
+ top:4.5em;
+ bottom:2.3em;
+ left:18em;
+ right:0;
+ border-left: 1px solid #CCC;
+ padding:0 0 0 1em;
+ background-color: white;
+ z-index:1;
+ }
+
+ div.header {
+ background-color: #EEE;
+ border:0;
+ margin:0;
+ padding: 0.5em;
+ font-size: 200%;
+ font-weight: bold;
+ position:fixed;
+ width:100%;
+ top:0;
+ left:0;
+ z-index:2;
+ }
+
+ div.footer {
+ background-color: #EEE;
+ border:0;
+ margin:0;
+ padding:0.5em;
+ height: 1.3em;
+ overflow:hidden;
+ font-size: 100%;
+ font-weight: bold;
+ position:fixed;
+ bottom:0;
+ width:100%;
+ z-index:2;
+ }
+
+ img.indented {
+ margin-left: 3em;
+ }
+ }
+
+ @media print {
+ img {
+ max-width:100% !important;
+ page-break-inside: avoid;
+ }
+ h2, h3 {
+ page-break-after: avoid;
+ }
+ div.header {
+ background-color: #FFF;
+ }
+
+ }
+
+ body {
+ font-family: sans-serif;
+ color: #000;
+ background-color: #FFF;
+ border: 0;
+ margin: 0;
+ padding: 0;
+ }
+
+ div.header {
+ border:0;
+ margin:0;
+ padding: 0.5em;
+ font-size: 200%;
+ font-weight: bold;
+ width:100%;
+ }
+
+ #header_title {
+ display:inline-block;
+ float:left;
+ clear:left;
+ }
+ #header_filename {
+ display:inline-block;
+ float:right;
+ clear:right;
+ font-size: 50%;
+ margin-right:2em;
+ text-align: right;
+ }
+
+ div.header h3 {
+ font-size: 50%;
+ margin-bottom: 0;
+ }
+
+ div.summary ul {
+ padding-left:0;
+ list-style-type:none;
+ }
+
+ div.summary ul li img {
+ margin-bottom:-0.5em;
+ margin-top:0.5em;
+ }
+
+ div.main {
+ background-color: white;
+ }
- div.header {
- background-color: #EEEEEE;
- border:0;
- margin:0;
- padding: 0.5em;
- font-size: 200%;
- font-weight: bold;
- }
+ div.module {
+ padding-bottom:1.5em;
+ padding-top:1.5em;
+ }
+
+ div.footer {
+ background-color: #EEE;
+ border:0;
+ margin:0;
+ padding: 0.5em;
+ font-size: 100%;
+ font-weight: bold;
+ width:100%;
+ }
- div.footer {
- background-color: #EEEEEE;
- border:0;
- margin:0;
- padding: 0.5em;
- font-size: 100%;
- font-weight: bold;
- }
- div.main {
- margin-left: 2em;
- margin-right: 2em;
- }
+ a {
+ color: #000080;
+ }
+
+ a:hover {
+ color: #800000;
+ }
- div.module {
- padding-bottom:1.5em;
- padding-top:1.5em;
- }
+ h2 {
+ color: #800000;
+ padding-bottom: 0;
+ margin-bottom: 0;
+ clear:left;
+ }
- a {
- color: #000080;
- }
+ table {
+ margin-left: 3em;
+ text-align: center;
+ }
+
+ th {
+ text-align: center;
+ background-color: #000080;
+ color: #FFF;
+ padding: 0.4em;
+ }
+
+ td {
+ font-family: monospace;
+ text-align: left;
+ background-color: #EEE;
+ color: #000;
+ padding: 0.4em;
+ }
- a:hover {
- color: #800000;
- }
-
- h2 {
- color: #800000;
- padding-bottom: 0;
- margin-bottom: 0;
- }
+ img {
+ padding-top: 0;
+ margin-top: 0;
+ border-top: 0;
+ }
- table {
- margin-left: 3em;
- text-align: center;
- }
-
- th {
- text-align: center;
- background-color: #000080;
- color: #FFFFFF;
- padding: 0.4em;
- }
-
- td {
- font-family: monospace;
- text-align: left;
- background-color: #EEEEEE;
- color: #000000;
- padding: 0.4em;
- }
-
- img {
- padding-top: 0;
- margin-top: 0;
- border-top: 0;
- }
-
- img.indented {
- margin-left: 3em;
- }
-
- p {
- padding-top: 0;
- margin-top: 0;
- }
+
+ p {
+ padding-top: 0;
+ margin-top: 0;
+ }
+
</style></head><body>
-<div class="header"><img src="Icons/fastqc_icon.png">FastQC Report</div>
+<div class="header">
+<div id="header_title"><img src="fastqc_icon.png" alt="FastQC">FastQC Report</div>
+<div id="header_filename">
+Wed 16 Nov 2011<br />
+dataset_1.dat
+</div>
+</div>
+<div class="summary">
+<h2>Summary</h2>
+<ul>
+<li><img src="tick.png" alt="[PASS]"><a href="#M0">Basic Statistics</a></li>
+<li><img src="warning.png" alt="[WARNING]"><a href="#M1">Per base sequence quality</a></li>
+<li><img src="warning.png" alt="[WARNING]"><a href="#M2">Per sequence quality scores</a></li>
+<li><img src="warning.png" alt="[WARNING]"><a href="#M3">Per base sequence content</a></li>
+<li><img src="tick.png" alt="[PASS]"><a href="#M4">Per base GC content</a></li>
+<li><img src="warning.png" alt="[WARNING]"><a href="#M5">Per sequence GC content</a></li>
+<li><img src="tick.png" alt="[PASS]"><a href="#M6">Per base N content</a></li>
+<li><img src="tick.png" alt="[PASS]"><a href="#M7">Sequence Length Distribution</a></li>
+<li><img src="tick.png" alt="[PASS]"><a href="#M8">Sequence Duplication Levels</a></li>
+<li><img src="warning.png" alt="[WARNING]"><a href="#M9">Overrepresented sequences</a></li>
+<li><img src="error.png" alt="[FAIL]"><a href="#M10">Kmer Content</a></li>
+</ul>
+</div><div class="main">
-<h3>Wed 27 Apr 2011</h3>
-<h3>1000gsample.fastq</h3>
-<h2 id="summary">Summary</h2>
-<ul>
-<li><img src="Icons/tick.png" alt="[PASS]"><a href="#M0">Basic Statistics</a></li>
-<li><img src="Icons/warning.png" alt="[WARNING]"><a href="#M1">Per base sequence quality</a></li>
-<li><img src="Icons/warning.png" alt="[WARNING]"><a href="#M2">Per sequence quality scores</a></li>
-<li><img src="Icons/tick.png" alt="[PASS]"><a href="#M3">Per base sequence content</a></li>
-<li><img src="Icons/tick.png" alt="[PASS]"><a href="#M4">Per base GC content</a></li>
-<li><img src="Icons/warning.png" alt="[WARNING]"><a href="#M5">Per sequence GC content</a></li>
-<li><img src="Icons/tick.png" alt="[PASS]"><a href="#M6">Per base N content</a></li>
-<li><img src="Icons/tick.png" alt="[PASS]"><a href="#M7">Sequence Length Distribution</a></li>
-<li><img src="Icons/tick.png" alt="[PASS]"><a href="#M8">Sequence Duplication Levels</a></li>
-<li><img src="Icons/warning.png" alt="[WARNING]"><a href="#M9">Overrepresented sequences</a></li>
-<li><img src="Icons/error.png" alt="[FAIL]"><a href="#M10">Kmer Content</a></li>
-</ul>
-<div class="module"><h2 id="M0"><img src="Icons/tick.png" alt="[FAIL]"> Basic Statistics</h2>
+<div class="module"><h2 id="M0"><img src="tick.png" alt="[OK]"> Basic Statistics</h2><table><tr><th>Measure</th>
@@ -119,7 +226,7 @@
</tr><tr><td>Filename</td>
-<td>1000gsample.fastq</td>
+<td>dataset_1.dat</td></tr><tr><td>File type</td>
@@ -134,6 +241,10 @@
<td>5000</td></tr><tr>
+<td>Filtered Sequences</td>
+<td>0</td>
+</tr>
+<tr><td>Sequence length</td><td>54</td></tr>
@@ -142,32 +253,32 @@
<td>43</td></tr></table>
-<p><a href="#summary">Back to summary</a></div>
-<div class="module"><h2 id="M1"><img src="Icons/warning.png" alt="[FAIL]"> Per base sequence quality</h2>
-<p><img class="indented" src="Images/per_base_quality.png"></p>
-<p><a href="#summary">Back to summary</a></div>
-<div class="module"><h2 id="M2"><img src="Icons/warning.png" alt="[FAIL]"> Per sequence quality scores</h2>
-<p><img class="indented" src="Images/per_sequence_quality.png"></p>
-<p><a href="#summary">Back to summary</a></div>
-<div class="module"><h2 id="M3"><img src="Icons/tick.png" alt="[FAIL]"> Per base sequence content</h2>
-<p><img class="indented" src="Images/per_base_sequence_content.png"></p>
-<p><a href="#summary">Back to summary</a></div>
-<div class="module"><h2 id="M4"><img src="Icons/tick.png" alt="[FAIL]"> Per base GC content</h2>
-<p><img class="indented" src="Images/per_base_gc_content.png"></p>
-<p><a href="#summary">Back to summary</a></div>
-<div class="module"><h2 id="M5"><img src="Icons/warning.png" alt="[FAIL]"> Per sequence GC content</h2>
-<p><img class="indented" src="Images/per_sequence_gc_content.png"></p>
-<p><a href="#summary">Back to summary</a></div>
-<div class="module"><h2 id="M6"><img src="Icons/tick.png" alt="[FAIL]"> Per base N content</h2>
-<p><img class="indented" src="Images/per_base_n_content.png"></p>
-<p><a href="#summary">Back to summary</a></div>
-<div class="module"><h2 id="M7"><img src="Icons/tick.png" alt="[FAIL]"> Sequence Length Distribution</h2>
-<p><img class="indented" src="Images/sequence_length_distribution.png"></p>
-<p><a href="#summary">Back to summary</a></div>
-<div class="module"><h2 id="M8"><img src="Icons/tick.png" alt="[FAIL]"> Sequence Duplication Levels</h2>
-<p><img class="indented" src="Images/duplication_levels.png"></p>
-<p><a href="#summary">Back to summary</a></div>
-<div class="module"><h2 id="M9"><img src="Icons/warning.png" alt="[FAIL]"> Overrepresented sequences</h2>
+</div>
+<div class="module"><h2 id="M1"><img src="warning.png" alt="[WARN]"> Per base sequence quality</h2>
+<p><img class="indented" src="per_base_quality.png" alt="Per base quality graph"></p>
+</div>
+<div class="module"><h2 id="M2"><img src="warning.png" alt="[WARN]"> Per sequence quality scores</h2>
+<p><img class="indented" src="per_sequence_quality.png" alt="Per Sequence quality graph"></p>
+</div>
+<div class="module"><h2 id="M3"><img src="warning.png" alt="[WARN]"> Per base sequence content</h2>
+<p><img class="indented" src="per_base_sequence_content.png" alt="Per base sequence content"></p>
+</div>
+<div class="module"><h2 id="M4"><img src="tick.png" alt="[OK]"> Per base GC content</h2>
+<p><img class="indented" src="per_base_gc_content.png" alt="Per base GC content graph"></p>
+</div>
+<div class="module"><h2 id="M5"><img src="warning.png" alt="[WARN]"> Per sequence GC content</h2>
+<p><img class="indented" src="per_sequence_gc_content.png" alt="Per sequence GC content graph"></p>
+</div>
+<div class="module"><h2 id="M6"><img src="tick.png" alt="[OK]"> Per base N content</h2>
+<p><img class="indented" src="per_base_n_content.png" alt="N content graph"></p>
+</div>
+<div class="module"><h2 id="M7"><img src="tick.png" alt="[OK]"> Sequence Length Distribution</h2>
+<p><img class="indented" src="sequence_length_distribution.png" alt="Sequence length distribution"></p>
+</div>
+<div class="module"><h2 id="M8"><img src="tick.png" alt="[OK]"> Sequence Duplication Levels</h2>
+<p><img class="indented" src="duplication_levels.png" alt="Duplication level graph"></p>
+</div>
+<div class="module"><h2 id="M9"><img src="warning.png" alt="[WARN]"> Overrepresented sequences</h2><table><tr><th>Sequence</th>
@@ -188,9 +299,9 @@
<td>Illumina Paired End PCR Primer 2 (100% over 35bp)</td></tr></table>
-<p><a href="#summary">Back to summary</a></div>
-<div class="module"><h2 id="M10"><img src="Icons/error.png" alt="[FAIL]"> Kmer Content</h2>
-<p><img class="indented" src="Images/kmer_profiles.png"></p>
+</div>
+<div class="module"><h2 id="M10"><img src="error.png" alt="[FAIL]"> Kmer Content</h2>
+<p><img class="indented" src="kmer_profiles.png" alt="Kmer graph"></p><table><tr><th>Sequence</th>
@@ -201,1132 +312,1498 @@
</tr><tr><td>CCCCC</td>
-<td>1110</td>
-<td>9.557241</td>
-<td>23.193876</td>
-<td>44</td>
+<td>1180</td>
+<td>9.957459</td>
+<td>29.638031</td>
+<td>50</td></tr><tr><td>AAAAA</td>
-<td>2130</td>
-<td>4.1300144</td>
-<td>5.698024</td>
-<td>7</td>
+<td>2175</td>
+<td>4.133217</td>
+<td>7.129659</td>
+<td>47</td></tr><tr><td>CTCCC</td>
-<td>530</td>
-<td>3.5749238</td>
+<td>555</td>
+<td>3.668942</td><td>11.56272</td><td>11</td></tr><tr><td>CCTCC</td>
-<td>510</td>
-<td>3.440021</td>
+<td>525</td>
+<td>3.4706206</td><td>11.56272</td><td>14</td></tr><tr><td>CTGGG</td><td>465</td>
-<td>3.1575248</td>
-<td>8.314476</td>
-<td>45</td>
+<td>3.0945942</td>
+<td>8.331139</td>
+<td>39</td>
+</tr>
+<tr>
+<td>GGGGG</td>
+<td>350</td>
+<td>2.9865708</td>
+<td>12.818572</td>
+<td>41</td></tr><tr><td>TGGAA</td>
-<td>785</td>
-<td>2.929684</td>
+<td>800</td>
+<td>2.9261596</td><td>6.397646</td><td>17</td></tr><tr>
-<td>GGGGG</td>
-<td>335</td>
-<td>2.9167063</td>
-<td>10.660779</td>
-<td>6</td>
+<td>CCCAG</td>
+<td>455</td>
+<td>2.855999</td>
+<td>9.429343</td>
+<td>40</td></tr><tr><td>GAATG</td><td>775</td>
-<td>2.8923633</td>
+<td>2.8347175</td><td>10.053445</td><td>20</td></tr><tr>
-<td>CCCAG</td>
-<td>450</td>
-<td>2.8820548</td>
-<td>7.8420706</td>
-<td>22</td>
+<td>GTGTG</td>
+<td>530</td>
+<td>2.763172</td>
+<td>7.8240557</td>
+<td>33</td></tr><tr>
-<td>GTGTG</td>
-<td>520</td>
-<td>2.7661672</td>
-<td>6.513526</td>
-<td>23</td>
+<td>GGGAG</td>
+<td>435</td>
+<td>2.7487729</td>
+<td>6.3220544</td>
+<td>43</td></tr><tr><td>TGTGT</td>
-<td>660</td>
-<td>2.744307</td>
+<td>670</td>
+<td>2.7303638</td><td>6.109576</td><td>27</td></tr><tr>
-<td>GGGAG</td>
-<td>425</td>
-<td>2.7401958</td>
-<td>6.315732</td>
-<td>6</td>
-</tr>
-<tr><td>ATGGA</td>
-<td>730</td>
-<td>2.7244196</td>
+<td>735</td>
+<td>2.688409</td><td>6.397646</td><td>20</td></tr><tr>
-<td>GCTGG</td>
-<td>395</td>
-<td>2.6821985</td>
-<td>6.651581</td>
-<td>16</td>
-</tr>
-<tr>
-<td>GGAGG</td>
-<td>410</td>
-<td>2.643483</td>
-<td>7.894665</td>
-<td>7</td>
-</tr>
-<tr><td>GGAAT</td>
-<td>700</td>
-<td>2.612457</td>
+<td>730</td>
+<td>2.6701207</td><td>7.3115954</td><td>19</td></tr><tr>
+<td>GCTGG</td>
+<td>400</td>
+<td>2.6620166</td>
+<td>8.322799</td>
+<td>31</td>
+</tr>
+<tr>
+<td>GGAGG</td>
+<td>420</td>
+<td>2.6539874</td>
+<td>7.9104857</td>
+<td>40</td>
+</tr>
+<tr><td>GCAGG</td>
-<td>400</td>
-<td>2.5732677</td>
+<td>405</td>
+<td>2.5535064</td><td>14.17877</td><td>16</td></tr><tr><td>CCTGG</td>
-<td>370</td>
-<td>2.5068476</td>
+<td>375</td>
+<td>2.4900866</td><td>6.6367774</td><td>7</td></tr><tr><td>CAGCC</td>
-<td>380</td>
-<td>2.4337354</td>
-<td>6.273657</td>
-<td>4</td>
+<td>390</td>
+<td>2.4479992</td>
+<td>6.279937</td>
+<td>38</td>
+</tr>
+<tr>
+<td>GGCTG</td>
+<td>365</td>
+<td>2.4290898</td>
+<td>9.97737</td>
+<td>24</td></tr><tr><td>TGGGA</td>
-<td>480</td>
-<td>2.419065</td>
+<td>490</td>
+<td>2.4202447</td><td>7.40506</td><td>20</td></tr><tr>
+<td>CCAGC</td>
+<td>385</td>
+<td>2.4166145</td>
+<td>6.286229</td>
+<td>41</td>
+</tr>
+<tr><td>AATGG</td>
-<td>645</td>
-<td>2.4071925</td>
+<td>660</td>
+<td>2.4140818</td><td>5.4836965</td><td>18</td></tr><tr>
+<td>GCCTG</td>
+<td>360</td>
+<td>2.3904827</td>
+<td>8.295971</td>
+<td>5</td>
+</tr>
+<tr><td>GCCTC</td>
-<td>355</td>
-<td>2.3998654</td>
-<td>6.622006</td>
-<td>2</td>
+<td>360</td>
+<td>2.3851626</td>
+<td>6.6286345</td>
+<td>31</td></tr><tr><td>CCCTC</td>
-<td>355</td>
-<td>2.394524</td>
-<td>8.259085</td>
-<td>13</td>
+<td>360</td>
+<td>2.379854</td>
+<td>8.267352</td>
+<td>34</td></tr><tr>
-<td>CCAGC</td>
-<td>370</td>
-<td>2.3696895</td>
-<td>6.2736564</td>
-<td>14</td>
+<td>CTGTG</td>
+<td>450</td>
+<td>2.3408678</td>
+<td>9.09864</td>
+<td>44</td></tr><tr><td>GGAAG</td>
-<td>495</td>
-<td>2.3634295</td>
+<td>500</td>
+<td>2.3397229</td><td>14.031037</td><td>2</td></tr><tr>
-<td>GGCTG</td>
-<td>345</td>
-<td>2.3426795</td>
-<td>9.97737</td>
-<td>24</td>
+<td>CAGCA</td>
+<td>500</td>
+<td>2.32932</td>
+<td>10.47649</td>
+<td>14</td></tr><tr><td>CAGGA</td>
-<td>490</td>
-<td>2.3343499</td>
+<td>495</td>
+<td>2.3111706</td><td>13.99981</td><td>17</td></tr><tr>
-<td>CCAGG</td>
-<td>360</td>
-<td>2.3107867</td>
-<td>6.2876506</td>
-<td>11</td>
-</tr>
-<tr>
-<td>CTGTG</td>
-<td>435</td>
-<td>2.3088553</td>
-<td>9.09864</td>
-<td>44</td>
-</tr>
-<tr>
-<td>GCCTG</td>
-<td>340</td>
-<td>2.3035896</td>
-<td>8.295971</td>
-<td>5</td>
-</tr>
-<tr><td>TCCCA</td>
-<td>460</td>
-<td>2.3028264</td>
-<td>6.1297736</td>
-<td>9</td>
+<td>470</td>
+<td>2.305994</td>
+<td>7.370469</td>
+<td>39</td></tr><tr><td>CTGCC</td>
-<td>340</td>
-<td>2.2984629</td>
+<td>345</td>
+<td>2.285781</td><td>8.277508</td><td>10</td></tr><tr>
-<td>CAGCA</td>
-<td>480</td>
-<td>2.2816207</td>
-<td>10.47649</td>
-<td>14</td>
+<td>GGTGG</td>
+<td>340</td>
+<td>2.2677608</td>
+<td>5.009832</td>
+<td>42</td>
+</tr>
+<tr>
+<td>CCAGG</td>
+<td>360</td>
+<td>2.264732</td>
+<td>6.300251</td>
+<td>41</td></tr><tr><td>TTCCT</td>
-<td>545</td>
-<td>2.256056</td>
+<td>555</td>
+<td>2.2516627</td><td>7.0961456</td><td>1</td></tr><tr>
+<td>TCCCC</td>
+<td>335</td>
+<td>2.2145865</td>
+<td>8.267353</td>
+<td>29</td>
+</tr>
+<tr>
+<td>CAGGC</td>
+<td>350</td>
+<td>2.2018228</td>
+<td>6.300251</td>
+<td>42</td>
+</tr>
+<tr><td>CTCCT</td>
-<td>415</td>
-<td>2.1929073</td>
+<td>425</td>
+<td>2.2009897</td><td>6.4701333</td><td>15</td></tr><tr>
-<td>TCCCC</td>
-<td>325</td>
-<td>2.1921701</td>
-<td>6.6072683</td>
-<td>28</td>
-</tr>
-<tr>
-<td>CAGGC</td>
-<td>335</td>
-<td>2.1503155</td>
-<td>6.2876506</td>
-<td>14</td>
+<td>GGCAG</td>
+<td>340</td>
+<td>2.1436844</td>
+<td>6.301676</td>
+<td>16</td></tr><tr><td>CCCCA</td>
-<td>335</td>
-<td>2.1407545</td>
-<td>6.259694</td>
-<td>20</td>
+<td>340</td>
+<td>2.129403</td>
+<td>6.26596</td>
+<td>31</td>
+</tr>
+<tr>
+<td>CTCTG</td>
+<td>410</td>
+<td>2.1280441</td>
+<td>5.1928453</td>
+<td>48</td></tr><tr><td>TGGTG</td>
-<td>400</td>
-<td>2.127821</td>
-<td>6.513526</td>
-<td>9</td>
+<td>405</td>
+<td>2.1114805</td>
+<td>6.520046</td>
+<td>33</td>
+</tr>
+<tr>
+<td>TTCCA</td>
+<td>545</td>
+<td>2.094778</td>
+<td>6.7295837</td>
+<td>33</td></tr><tr><td>CCCCT</td><td>315</td>
-<td>2.1247187</td>
+<td>2.0823722</td><td>6.607268</td><td>12</td></tr><tr>
-<td>GGCAG</td>
-<td>330</td>
-<td>2.122946</td>
-<td>6.301676</td>
-<td>16</td>
+<td>CTCAG</td>
+<td>420</td>
+<td>2.0652719</td>
+<td>6.149596</td>
+<td>46</td></tr><tr>
-<td>CTCTG</td>
-<td>400</td>
-<td>2.1183603</td>
-<td>5.187652</td>
-<td>16</td>
-</tr>
-<tr>
-<td>TTCCA</td>
-<td>540</td>
-<td>2.1177678</td>
-<td>6.7228537</td>
-<td>28</td>
+<td>AGGGA</td>
+<td>440</td>
+<td>2.0589561</td>
+<td>7.0225415</td>
+<td>31</td></tr><tr><td>CAGAG</td><td>440</td>
-<td>2.0961509</td>
-<td>5.833255</td>
-<td>28</td>
+<td>2.054374</td>
+<td>5.8390937</td>
+<td>38</td>
+</tr>
+<tr>
+<td>AGCAG</td>
+<td>440</td>
+<td>2.0543735</td>
+<td>10.499857</td>
+<td>15</td></tr><tr><td>CCCTG</td><td>310</td>
-<td>2.095657</td>
+<td>2.05389</td><td>6.622006</td><td>24</td></tr><tr>
-<td>AGGGA</td>
-<td>435</td>
-<td>2.0769534</td>
-<td>5.846266</td>
-<td>1</td>
-</tr>
-<tr>
-<td>CTCAG</td>
-<td>410</td>
-<td>2.0570977</td>
-<td>6.143447</td>
-<td>24</td>
-</tr>
-<tr><td>CTTCC</td>
-<td>385</td>
-<td>2.034384</td>
+<td>390</td>
+<td>2.0197318</td><td>6.4701333</td><td>17</td></tr><tr>
-<td>AGCAG</td>
-<td>425</td>
-<td>2.0246909</td>
-<td>10.499857</td>
-<td>15</td>
-</tr>
-<tr><td>AGGAA</td>
-<td>570</td>
-<td>2.015381</td>
+<td>580</td>
+<td>2.0098667</td><td>10.390455</td><td>18</td></tr><tr>
+<td>AGAGC</td>
+<td>430</td>
+<td>2.0076835</td>
+<td>10.499858</td>
+<td>5</td>
+</tr>
+<tr>
+<td>TCTCC</td>
+<td>385</td>
+<td>1.9938378</td>
+<td>5.181288</td>
+<td>29</td>
+</tr>
+<tr><td>TCCTC</td>
-<td>380</td>
-<td>2.0079634</td>
-<td>5.1761065</td>
-<td>1</td>
+<td>385</td>
+<td>1.9938378</td>
+<td>5.181288</td>
+<td>48</td></tr><tr><td>TCAGC</td>
-<td>400</td>
-<td>2.0069244</td>
+<td>405</td>
+<td>1.9915122</td><td>12.286894</td><td>44</td></tr><tr>
-<td>AGAGC</td>
-<td>420</td>
-<td>2.0008712</td>
-<td>10.499858</td>
-<td>5</td>
+<td>TGCTG</td>
+<td>380</td>
+<td>1.9767327</td>
+<td>6.5055346</td>
+<td>47</td>
+</tr>
+<tr>
+<td>CACCC</td>
+<td>315</td>
+<td>1.9728295</td>
+<td>6.259694</td>
+<td>9</td></tr><tr><td>TCCTG</td>
-<td>375</td>
-<td>1.9859626</td>
+<td>380</td>
+<td>1.9723336</td><td>6.4845653</td><td>8</td></tr><tr>
-<td>TCTCC</td>
-<td>375</td>
-<td>1.9815428</td>
-<td>5.1761065</td>
-<td>8</td>
-</tr>
-<tr>
-<td>CACCC</td>
+<td>CAGGG</td><td>310</td>
-<td>1.9809967</td>
-<td>6.259694</td>
-<td>9</td>
-</tr>
-<tr>
-<td>TGTGG</td>
-<td>370</td>
-<td>1.9682345</td>
-<td>5.210821</td>
-<td>4</td>
+<td>1.954536</td>
+<td>6.3016763</td>
+<td>21</td></tr><tr><td>GATGG</td>
-<td>390</td>
-<td>1.9654902</td>
+<td>395</td>
+<td>1.9510134</td><td>6.1708827</td><td>1</td></tr><tr><td>TGGCT</td>
-<td>370</td>
-<td>1.9638538</td>
+<td>375</td>
+<td>1.9507233</td><td>9.098641</td><td>45</td></tr><tr>
-<td>TCCCT</td>
-<td>370</td>
-<td>1.9551222</td>
-<td>5.1761065</td>
-<td>37</td>
-</tr>
-<tr>
-<td>CAGGG</td>
-<td>300</td>
-<td>1.9299511</td>
-<td>6.3016763</td>
-<td>21</td>
-</tr>
-<tr><td>AAGAG</td>
-<td>545</td>
-<td>1.9269869</td>
+<td>560</td>
+<td>1.9405607</td><td>9.524584</td><td>4</td></tr><tr>
+<td>TGTGG</td>
+<td>370</td>
+<td>1.929007</td>
+<td>6.5200467</td>
+<td>30</td>
+</tr>
+<tr>
+<td>CTGAG</td>
+<td>390</td>
+<td>1.9220302</td>
+<td>6.163313</td>
+<td>35</td>
+</tr>
+<tr>
+<td>CCTGT</td>
+<td>370</td>
+<td>1.9204301</td>
+<td>6.4845653</td>
+<td>6</td>
+</tr>
+<tr><td>CAGAA</td>
-<td>545</td>
-<td>1.9226985</td>
+<td>555</td>
+<td>1.9189543</td><td>6.0476103</td><td>6</td></tr><tr>
-<td>CTGAG</td>
+<td>TCCCT</td>
+<td>370</td>
+<td>1.9161558</td>
+<td>6.4766097</td>
+<td>33</td>
+</tr>
+<tr>
+<td>CCCAC</td>
+<td>305</td>
+<td>1.9101999</td>
+<td>6.259694</td>
+<td>4</td>
+</tr>
+<tr>
+<td>CACCA</td>
+<td>405</td>
+<td>1.8825499</td>
+<td>6.9757566</td>
+<td>33</td>
+</tr>
+<tr>
+<td>AAAGA</td>
+<td>730</td>
+<td>1.8732982</td>
+<td>5.1399345</td>
+<td>42</td>
+</tr>
+<tr>
+<td>CAGTG</td><td>380</td>
-<td>1.9108309</td>
-<td>6.15715</td>
-<td>11</td>
+<td>1.8727474</td>
+<td>6.163313</td>
+<td>30</td>
+</tr>
+<tr>
+<td>GAAGA</td>
+<td>540</td>
+<td>1.8712552</td>
+<td>7.792842</td>
+<td>26</td></tr><tr><td>TCTCT</td><td>460</td>
-<td>1.9041945</td>
+<td>1.8662432</td><td>5.068676</td><td>8</td></tr><tr>
+<td>TTTCC</td>
+<td>460</td>
+<td>1.8662429</td>
+<td>5.073749</td>
+<td>38</td>
+</tr>
+<tr><td>GAGGC</td><td>295</td>
-<td>1.897785</td>
+<td>1.8599615</td><td>6.301676</td><td>22</td></tr><tr>
-<td>CCCAC</td>
-<td>295</td>
-<td>1.885142</td>
-<td>6.259694</td>
-<td>4</td>
+<td>TCTGT</td>
+<td>455</td>
+<td>1.8500755</td>
+<td>5.0850673</td>
+<td>49</td></tr><tr><td>CCTGC</td><td>275</td>
-<td>1.8590509</td>
+<td>1.8219992</td><td>9.93301</td><td>6</td></tr><tr>
-<td>CCTGT</td>
+<td>CCTCT</td><td>350</td>
-<td>1.8535651</td>
-<td>6.4845653</td>
-<td>6</td>
-</tr>
-<tr>
-<td>TTTCC</td>
-<td>445</td>
-<td>1.8421009</td>
-<td>5.0686755</td>
-<td>14</td>
+<td>1.8125799</td>
+<td>7.7641597</td>
+<td>2</td></tr><tr><td>TGCCT</td><td>345</td>
-<td>1.8270856</td>
+<td>1.7906713</td><td>5.187652</td><td>12</td></tr><tr>
-<td>CACAC</td>
-<td>380</td>
-<td>1.8022629</td>
-<td>5.8073177</td>
-<td>17</td>
-</tr>
-<tr>
-<td>CCTCT</td>
-<td>340</td>
-<td>1.7965988</td>
-<td>7.7641597</td>
-<td>2</td>
-</tr>
-<tr><td>TTCCC</td>
-<td>340</td>
-<td>1.7965986</td>
+<td>345</td>
+<td>1.7866857</td><td>6.470133</td><td>18</td></tr><tr>
-<td>GAAGA</td>
-<td>500</td>
-<td>1.767878</td>
-<td>7.792842</td>
-<td>26</td>
+<td>GAGGG</td>
+<td>280</td>
+<td>1.769325</td>
+<td>6.3283887</td>
+<td>41</td>
+</tr>
+<tr>
+<td>CACAC</td>
+<td>380</td>
+<td>1.7663432</td>
+<td>5.813131</td>
+<td>33</td>
+</tr>
+<tr>
+<td>TCTGC</td>
+<td>340</td>
+<td>1.7647195</td>
+<td>5.1980486</td>
+<td>42</td></tr><tr><td>CTGGC</td>
-<td>260</td>
-<td>1.7615684</td>
-<td>6.636777</td>
-<td>8</td>
+<td>265</td>
+<td>1.7596608</td>
+<td>6.6434207</td>
+<td>43</td></tr><tr><td>TTCAG</td>
-<td>440</td>
-<td>1.7294377</td>
+<td>455</td>
+<td>1.7527524</td><td>9.6255</td><td>12</td></tr><tr>
+<td>AGCCA</td>
+<td>375</td>
+<td>1.74699</td>
+<td>5.8319354</td>
+<td>39</td>
+</tr>
+<tr><td>CTCTC</td>
-<td>325</td>
-<td>1.717337</td>
+<td>335</td>
+<td>1.7348979</td><td>5.1761065</td><td>3</td></tr><tr>
-<td>GTGGT</td>
-<td>320</td>
-<td>1.7022567</td>
-<td>5.2108207</td>
-<td>24</td>
-</tr>
-<tr><td>GGGTG</td>
-<td>250</td>
-<td>1.7013805</td>
+<td>260</td>
+<td>1.7341703</td><td>8.333022</td><td>28</td></tr><tr>
-<td>TGCTT</td>
-<td>410</td>
-<td>1.7010024</td>
-<td>5.0799813</td>
-<td>4</td>
+<td>TGGGG</td>
+<td>260</td>
+<td>1.7341703</td>
+<td>8.349721</td>
+<td>39</td>
+</tr>
+<tr>
+<td>GTGGG</td>
+<td>255</td>
+<td>1.7008208</td>
+<td>6.6730905</td>
+<td>31</td>
+</tr>
+<tr>
+<td>GGCCA</td>
+<td>270</td>
+<td>1.698549</td>
+<td>6.293945</td>
+<td>43</td>
+</tr>
+<tr>
+<td>GCCCC</td>
+<td>200</td>
+<td>1.6914694</td>
+<td>6.3460584</td>
+<td>32</td></tr><tr><td>CTTTG</td>
-<td>405</td>
-<td>1.6802584</td>
+<td>415</td>
+<td>1.6874313</td><td>5.0799813</td><td>2</td></tr><tr>
+<td>ACACA</td>
+<td>485</td>
+<td>1.6731915</td>
+<td>5.1721287</td>
+<td>14</td>
+</tr>
+<tr>
+<td>GTGGT</td>
+<td>320</td>
+<td>1.6683302</td>
+<td>5.216037</td>
+<td>31</td>
+</tr>
+<tr>
+<td>CTCAC</td>
+<td>340</td>
+<td>1.6681659</td>
+<td>7.363092</td>
+<td>31</td>
+</tr>
+<tr>
+<td>TGCTT</td>
+<td>410</td>
+<td>1.6671008</td>
+<td>5.090162</td>
+<td>40</td>
+</tr>
+<tr>
+<td>GGGGC</td>
+<td>195</td>
+<td>1.6602434</td>
+<td>8.526694</td>
+<td>40</td>
+</tr>
+<tr>
+<td>AGTGG</td>
+<td>335</td>
+<td>1.654657</td>
+<td>6.1708827</td>
+<td>3</td>
+</tr>
+<tr>
+<td>TTCTG</td>
+<td>405</td>
+<td>1.6467704</td>
+<td>5.0850663</td>
+<td>49</td>
+</tr>
+<tr><td>AGAAG</td><td>475</td>
-<td>1.6794841</td>
+<td>1.6460115</td><td>5.1952276</td><td>22</td></tr><tr><td>ACTCC</td>
-<td>330</td>
-<td>1.6520276</td>
+<td>335</td>
+<td>1.6436341</td><td>6.1297736</td><td>10</td></tr><tr>
+<td>GGCTC</td>
+<td>245</td>
+<td>1.6268562</td>
+<td>8.304275</td>
+<td>46</td>
+</tr>
+<tr>
+<td>TGGCA</td>
+<td>330</td>
+<td>1.6263331</td>
+<td>8.637284</td>
+<td>40</td>
+</tr>
+<tr>
+<td>TCCTT</td>
+<td>400</td>
+<td>1.6228201</td>
+<td>6.0946</td>
+<td>40</td>
+</tr>
+<tr>
+<td>TCTGG</td>
+<td>310</td>
+<td>1.612598</td>
+<td>5.204428</td>
+<td>43</td>
+</tr>
+<tr>
+<td>GGGGA</td>
+<td>255</td>
+<td>1.6113497</td>
+<td>6.3157325</td>
+<td>7</td>
+</tr>
+<tr><td>CTGCT</td><td>310</td>
-<td>1.6417291</td>
+<td>1.609009</td><td>6.4845653</td><td>3</td></tr><tr>
-<td>GCCCC</td>
-<td>190</td>
-<td>1.6395733</td>
-<td>6.339712</td>
-<td>37</td>
+<td>CCCAA</td>
+<td>345</td>
+<td>1.6036536</td>
+<td>5.8073177</td>
+<td>10</td></tr><tr>
-<td>AGTGG</td>
-<td>325</td>
-<td>1.6379085</td>
-<td>6.1708827</td>
-<td>3</td>
+<td>TGGCC</td>
+<td>240</td>
+<td>1.5936551</td>
+<td>6.6434207</td>
+<td>49</td></tr><tr>
-<td>TGGCA</td>
-<td>325</td>
-<td>1.6342632</td>
-<td>6.1571493</td>
-<td>16</td>
-</tr>
-<tr>
-<td>GGCTC</td>
-<td>240</td>
-<td>1.626063</td>
-<td>6.636776</td>
-<td>25</td>
-</tr>
-<tr>
-<td>ACACA</td>
-<td>460</td>
-<td>1.6192161</td>
-<td>5.1721287</td>
-<td>14</td>
+<td>GTGCT</td>
+<td>305</td>
+<td>1.5865883</td>
+<td>5.220104</td>
+<td>50</td></tr><tr><td>GCTTT</td><td>390</td>
-<td>1.6180266</td>
-<td>5.0799813</td>
-<td>5</td>
+<td>1.5857788</td>
+<td>6.1081944</td>
+<td>41</td></tr><tr>
-<td>TTCTG</td>
-<td>390</td>
-<td>1.6180266</td>
-<td>5.0799813</td>
-<td>3</td>
+<td>CCACA</td>
+<td>335</td>
+<td>1.5571709</td>
+<td>5.813131</td>
+<td>30</td></tr><tr>
-<td>TCCTT</td>
-<td>390</td>
-<td>1.6144258</td>
-<td>6.0824113</td>
-<td>16</td>
+<td>CCTTC</td>
+<td>300</td>
+<td>1.5536399</td>
+<td>6.4701333</td>
+<td>17</td></tr><tr>
-<td>CCCAA</td>
-<td>335</td>
-<td>1.588837</td>
-<td>5.8073177</td>
-<td>10</td>
+<td>CCACT</td>
+<td>315</td>
+<td>1.5455065</td>
+<td>6.135909</td>
+<td>32</td>
+</tr>
+<tr>
+<td>TCTTC</td>
+<td>380</td>
+<td>1.5416791</td>
+<td>5.0737495</td>
+<td>49</td>
+</tr>
+<tr>
+<td>GTTCA</td>
+<td>400</td>
+<td>1.5408814</td>
+<td>7.700401</td>
+<td>11</td>
+</tr>
+<tr>
+<td>AGGCA</td>
+<td>330</td>
+<td>1.5407803</td>
+<td>5.8332543</td>
+<td>6</td>
+</tr>
+<tr>
+<td>AAAAG</td>
+<td>600</td>
+<td>1.5396972</td>
+<td>5.782427</td>
+<td>41</td></tr><tr><td>GCACA</td><td>330</td>
-<td>1.5686142</td>
+<td>1.5373511</td><td>5.8202715</td><td>18</td></tr><tr>
-<td>GTTCA</td>
-<td>395</td>
-<td>1.5525635</td>
-<td>7.700401</td>
-<td>11</td>
-</tr>
-<tr>
-<td>TCTTC</td>
-<td>375</td>
-<td>1.5523325</td>
-<td>5.068676</td>
-<td>4</td>
-</tr>
-<tr>
-<td>AGGCA</td>
-<td>325</td>
-<td>1.5482932</td>
-<td>5.8332543</td>
-<td>6</td>
-</tr>
-<tr>
-<td>GGGGA</td>
-<td>240</td>
-<td>1.5474048</td>
-<td>6.3157325</td>
-<td>7</td>
-</tr>
-<tr>
-<td>CCTTC</td>
-<td>290</td>
-<td>1.5323931</td>
-<td>6.4701333</td>
-<td>17</td>
-</tr>
-<tr><td>ATGCC</td><td>305</td>
-<td>1.5302798</td>
+<td>1.4997808</td><td>12.286893</td><td>22</td></tr><tr><td>GAAGG</td><td>320</td>
-<td>1.5278738</td>
+<td>1.4974226</td><td>5.8462653</td><td>8</td></tr><tr>
+<td>GAGAG</td>
+<td>320</td>
+<td>1.4974226</td>
+<td>5.857981</td>
+<td>41</td>
+</tr>
+<tr>
+<td>TGTGC</td>
+<td>285</td>
+<td>1.4825499</td>
+<td>5.2044287</td>
+<td>29</td>
+</tr>
+<tr>
+<td>TTGGC</td>
+<td>285</td>
+<td>1.4825495</td>
+<td>5.199223</td>
+<td>15</td>
+</tr>
+<tr><td>GGGAT</td>
-<td>295</td>
-<td>1.4867171</td>
+<td>300</td>
+<td>1.4817826</td><td>7.40506</td><td>21</td></tr><tr>
-<td>TGTGC</td>
-<td>280</td>
-<td>1.4861598</td>
-<td>5.199224</td>
-<td>7</td>
+<td>AGCTG</td>
+<td>300</td>
+<td>1.4784846</td>
+<td>6.1633124</td>
+<td>30</td></tr><tr><td>AACAG</td>
-<td>420</td>
-<td>1.4817125</td>
+<td>425</td>
+<td>1.4694693</td><td>5.1836653</td><td>10</td></tr><tr>
+<td>GAGTG</td>
+<td>295</td>
+<td>1.4570862</td>
+<td>6.1770606</td>
+<td>33</td>
+</tr>
+<tr>
+<td>GGGAC</td>
+<td>230</td>
+<td>1.4501395</td>
+<td>6.3143044</td>
+<td>40</td>
+</tr>
+<tr>
+<td>GTGTT</td>
+<td>355</td>
+<td>1.4466851</td>
+<td>6.134112</td>
+<td>50</td>
+</tr>
+<tr>
+<td>TTTGG</td>
+<td>355</td>
+<td>1.4466851</td>
+<td>6.1095753</td>
+<td>3</td>
+</tr>
+<tr><td>TCTTT</td><td>455</td>
-<td>1.4755235</td>
+<td>1.4461157</td><td>5.5590916</td><td>1</td></tr><tr>
-<td>TTGGC</td>
-<td>275</td>
-<td>1.4596211</td>
-<td>5.199223</td>
-<td>15</td>
-</tr>
-<tr><td>GAGAT</td>
-<td>385</td>
-<td>1.4368514</td>
+<td>395</td>
+<td>1.4447913</td><td>6.397646</td><td>27</td></tr><tr>
-<td>TTTGG</td>
-<td>345</td>
-<td>1.4345239</td>
-<td>6.1095753</td>
-<td>3</td>
+<td>CAAAA</td>
+<td>560</td>
+<td>1.4338523</td>
+<td>5.123362</td>
+<td>31</td></tr><tr><td>GGTTC</td>
-<td>270</td>
-<td>1.4330826</td>
+<td>275</td>
+<td>1.4305303</td><td>10.398446</td><td>10</td></tr><tr>
+<td>CCCTT</td>
+<td>275</td>
+<td>1.4241698</td>
+<td>5.186479</td>
+<td>39</td>
+</tr>
+<tr>
+<td>CTGTT</td>
+<td>350</td>
+<td>1.4231348</td>
+<td>5.0799813</td>
+<td>10</td>
+</tr>
+<tr>
+<td>ATGGT</td>
+<td>365</td>
+<td>1.4091904</td>
+<td>6.7596393</td>
+<td>47</td>
+</tr>
+<tr>
+<td>TGTTG</td>
+<td>345</td>
+<td>1.4059336</td>
+<td>5.1015162</td>
+<td>40</td>
+</tr>
+<tr>
+<td>CTGTC</td>
+<td>270</td>
+<td>1.4013947</td>
+<td>5.198048</td>
+<td>39</td>
+</tr>
+<tr>
+<td>GAGAC</td>
+<td>300</td>
+<td>1.4007094</td>
+<td>5.856681</td>
+<td>50</td>
+</tr>
+<tr>
+<td>CTTCT</td>
+<td>345</td>
+<td>1.3996824</td>
+<td>7.1246448</td>
+<td>50</td>
+</tr>
+<tr>
+<td>GGCCC</td>
+<td>165</td>
+<td>1.398575</td>
+<td>6.353853</td>
+<td>2</td>
+</tr>
+<tr>
+<td>TGAGT</td>
+<td>360</td>
+<td>1.3898867</td>
+<td>5.7939773</td>
+<td>32</td>
+</tr>
+<tr>
+<td>GGCAC</td>
+<td>220</td>
+<td>1.3840029</td>
+<td>6.2876506</td>
+<td>17</td>
+</tr>
+<tr>
+<td>CCTTT</td>
+<td>340</td>
+<td>1.3793972</td>
+<td>5.068676</td>
+<td>8</td>
+</tr>
+<tr><td>CCTTG</td><td>265</td>
-<td>1.4034137</td>
+<td>1.3754432</td><td>5.187652</td><td>18</td></tr><tr>
-<td>CCCTT</td>
-<td>265</td>
-<td>1.4002901</td>
-<td>5.176106</td>
-<td>14</td>
-</tr>
-<tr>
-<td>CTGTT</td>
-<td>335</td>
-<td>1.3898433</td>
-<td>5.0799813</td>
-<td>10</td>
-</tr>
-<tr>
-<td>CCTTT</td>
-<td>335</td>
-<td>1.3867503</td>
-<td>5.068676</td>
-<td>8</td>
-</tr>
-<tr>
-<td>GGCAC</td>
-<td>215</td>
-<td>1.3800533</td>
-<td>6.2876506</td>
-<td>17</td>
-</tr>
-<tr><td>TTGAA</td>
-<td>465</td>
-<td>1.3564935</td>
+<td>475</td>
+<td>1.3580486</td><td>6.4295163</td><td>7</td></tr><tr>
-<td>CTTGG</td>
-<td>255</td>
-<td>1.3534669</td>
-<td>5.1992235</td>
-<td>18</td>
+<td>GAGCG</td>
+<td>215</td>
+<td>1.3555653</td>
+<td>12.603353</td>
+<td>6</td></tr><tr>
-<td>GTGTT</td>
-<td>325</td>
-<td>1.3513632</td>
-<td>5.091313</td>
-<td>28</td>
-</tr>
-<tr>
-<td>GGCCC</td>
-<td>155</td>
-<td>1.3405302</td>
-<td>6.353853</td>
-<td>2</td>
-</tr>
-<tr>
-<td>TGGTT</td>
-<td>320</td>
-<td>1.330573</td>
-<td>5.091313</td>
-<td>25</td>
+<td>AAGGA</td>
+<td>390</td>
+<td>1.3514621</td>
+<td>5.1952276</td>
+<td>44</td></tr><tr><td>TTCTT</td>
-<td>410</td>
-<td>1.3295923</td>
+<td>420</td>
+<td>1.3348758</td><td>7.941558</td><td>4</td></tr><tr><td>GGGGT</td>
-<td>195</td>
-<td>1.327077</td>
+<td>200</td>
+<td>1.3339773</td><td>8.333022</td><td>45</td></tr><tr>
-<td>AAGGA</td>
-<td>375</td>
-<td>1.3259085</td>
-<td>5.1952276</td>
-<td>44</td>
+<td>CAGAT</td>
+<td>365</td>
+<td>1.3320893</td>
+<td>5.4769697</td>
+<td>34</td></tr><tr>
-<td>CAGAT</td>
-<td>350</td>
-<td>1.3033215</td>
-<td>5.471493</td>
-<td>10</td>
+<td>CTTGG</td>
+<td>255</td>
+<td>1.3264918</td>
+<td>5.1992235</td>
+<td>18</td>
+</tr>
+<tr>
+<td>TGGTT</td>
+<td>320</td>
+<td>1.3040541</td>
+<td>5.091313</td>
+<td>25</td>
+</tr>
+<tr>
+<td>TTGGG</td>
+<td>250</td>
+<td>1.3033829</td>
+<td>6.5135255</td>
+<td>6</td></tr><tr><td>CTGGT</td>
-<td>245</td>
-<td>1.3003898</td>
-<td>5.1992235</td>
-<td>12</td>
+<td>250</td>
+<td>1.3004823</td>
+<td>5.204428</td>
+<td>48</td>
+</tr>
+<tr>
+<td>GCTCC</td>
+<td>195</td>
+<td>1.2919631</td>
+<td>8.277508</td>
+<td>26</td>
+</tr>
+<tr>
+<td>TGATG</td>
+<td>330</td>
+<td>1.2740628</td>
+<td>5.7939773</td>
+<td>46</td></tr><tr><td>TGTCC</td><td>245</td>
-<td>1.2974956</td>
+<td>1.2716361</td><td>5.187652</td><td>21</td></tr><tr>
-<td>GCTCC</td>
-<td>190</td>
-<td>1.2844352</td>
-<td>8.277508</td>
-<td>26</td>
+<td>GGCTT</td>
+<td>240</td>
+<td>1.2484628</td>
+<td>5.199223</td>
+<td>4</td></tr><tr><td>GACAG</td><td>265</td>
-<td>1.2624544</td>
+<td>1.2372932</td><td>5.833254</td><td>27</td></tr><tr>
-<td>GAGCG</td>
-<td>195</td>
-<td>1.2544682</td>
-<td>12.603353</td>
-<td>6</td>
-</tr>
-<tr>
-<td>TTGGG</td>
+<td>GGTGT</td><td>235</td>
-<td>1.2500948</td>
-<td>6.5135255</td>
-<td>6</td>
+<td>1.2251799</td>
+<td>5.21082</td>
+<td>27</td></tr><tr><td>AATGC</td><td>335</td>
-<td>1.2474647</td>
+<td>1.2226022</td><td>10.031068</td><td>21</td></tr><tr>
-<td>GGCTT</td>
-<td>235</td>
-<td>1.2473125</td>
-<td>5.199223</td>
-<td>4</td>
-</tr>
-<tr><td>TTTGC</td>
-<td>295</td>
-<td>1.223892</td>
+<td>300</td>
+<td>1.2198299</td><td>5.0799813</td><td>9</td></tr><tr>
-<td>GGTGT</td>
+<td>GTCCT</td><td>230</td>
-<td>1.223497</td>
-<td>5.21082</td>
-<td>27</td>
+<td>1.1937809</td>
+<td>5.1928453</td>
+<td>47</td>
+</tr>
+<tr>
+<td>GGGCC</td>
+<td>140</td>
+<td>1.1893166</td>
+<td>6.3744006</td>
+<td>43</td>
+</tr>
+<tr>
+<td>ATCCC</td>
+<td>240</td>
+<td>1.1775287</td>
+<td>6.135909</td>
+<td>43</td>
+</tr>
+<tr>
+<td>GCTCT</td>
+<td>225</td>
+<td>1.1678292</td>
+<td>7.789268</td>
+<td>47</td>
+</tr>
+<tr>
+<td>AGCCC</td>
+<td>185</td>
+<td>1.1612303</td>
+<td>6.2799363</td>
+<td>31</td></tr><tr><td>GATCG</td><td>235</td>
-<td>1.181698</td>
-<td>6.1571493</td>
-<td>45</td>
+<td>1.1581463</td>
+<td>6.1633124</td>
+<td>29</td>
+</tr>
+<tr>
+<td>ACCCT</td>
+<td>230</td>
+<td>1.128465</td>
+<td>6.129773</td>
+<td>10</td>
+</tr>
+<tr>
+<td>GTTGG</td>
+<td>215</td>
+<td>1.1209095</td>
+<td>5.2160373</td>
+<td>47</td></tr><tr><td>AGCTC</td><td>225</td>
-<td>1.1288949</td>
+<td>1.1063956</td><td>6.1434464</td><td>25</td></tr><tr>
-<td>ACCCT</td>
+<td>CCCAT</td><td>225</td>
-<td>1.1263824</td>
+<td>1.1039332</td><td>6.129773</td>
-<td>10</td>
+<td>21</td></tr><tr><td>CGGAA</td><td>235</td>
-<td>1.119535</td>
+<td>1.0972222</td><td>9.333206</td><td>1</td></tr><tr>
-<td>CCCAT</td>
-<td>220</td>
-<td>1.1013516</td>
-<td>6.129773</td>
-<td>21</td>
-</tr>
-<tr><td>TCTTG</td><td>265</td>
-<td>1.0994283</td>
+<td>1.0775164</td><td>5.0799813</td><td>21</td></tr><tr><td>ATGCA</td><td>295</td>
-<td>1.0985136</td>
+<td>1.0766199</td><td>5.4714913</td><td>37</td></tr><tr><td>GCTTG</td><td>205</td>
-<td>1.0880812</td>
+<td>1.0663953</td><td>5.199223</td><td>2</td></tr><tr><td>AGCGG</td><td>165</td>
-<td>1.061473</td>
+<td>1.0403174</td><td>12.603352</td><td>7</td></tr><tr>
+<td>TTGCC</td>
+<td>200</td>
+<td>1.0380702</td>
+<td>5.1876516</td>
+<td>3</td>
+</tr>
+<tr>
+<td>AACCT</td>
+<td>285</td>
+<td>1.0378094</td>
+<td>5.4593143</td>
+<td>13</td>
+</tr>
+<tr><td>AACCA</td><td>300</td>
-<td>1.0560105</td>
+<td>1.0349638</td><td>5.1721287</td><td>22</td></tr><tr>
-<td>AACCT</td>
-<td>280</td>
-<td>1.0403365</td>
-<td>5.4593143</td>
-<td>13</td>
-</tr>
-<tr><td>CCGAG</td><td>160</td>
-<td>1.0270164</td>
+<td>1.0065476</td><td>12.575301</td><td>25</td></tr><tr>
-<td>TTGCC</td>
+<td>GTTCC</td><td>190</td>
-<td>1.0062209</td>
-<td>5.1876516</td>
-<td>3</td>
+<td>0.9861668</td>
+<td>6.4845653</td>
+<td>27</td></tr><tr><td>ACTCA</td>
-<td>265</td>
-<td>0.9846043</td>
+<td>270</td>
+<td>0.983188</td><td>5.4593153</td><td>11</td></tr><tr><td>CTCAT</td>
-<td>250</td>
-<td>0.98044825</td>
+<td>255</td>
+<td>0.9801258</td><td>5.7624474</td><td>4</td></tr><tr>
-<td>GTTCC</td>
-<td>185</td>
-<td>0.9797416</td>
-<td>6.4845653</td>
-<td>27</td>
-</tr>
-<tr><td>GAACC</td>
-<td>205</td>
-<td>0.97444224</td>
+<td>210</td>
+<td>0.9783144</td><td>5.820272</td><td>25</td></tr><tr><td>GGCGG</td><td>110</td>
-<td>0.9555928</td>
+<td>0.93654746</td><td>10.637051</td><td>44</td></tr><tr>
+<td>GCGGG</td>
+<td>110</td>
+<td>0.93654746</td>
+<td>6.3886194</td>
+<td>36</td>
+</tr>
+<tr>
+<td>ATCGG</td>
+<td>190</td>
+<td>0.93637353</td>
+<td>6.163312</td>
+<td>30</td>
+</tr>
+<tr>
+<td>GTCTG</td>
+<td>180</td>
+<td>0.9363471</td>
+<td>5.2096424</td>
+<td>41</td>
+</tr>
+<tr><td>GCGGT</td>
-<td>130</td>
-<td>0.8827489</td>
+<td>140</td>
+<td>0.93170583</td><td>13.303162</td><td>8</td></tr><tr>
-<td>GCGGG</td>
-<td>100</td>
-<td>0.86872077</td>
-<td>6.3822303</td>
-<td>45</td>
+<td>CGGGG</td>
+<td>105</td>
+<td>0.8939771</td>
+<td>6.3886194</td>
+<td>46</td>
+</tr>
+<tr>
+<td>GGGCG</td>
+<td>105</td>
+<td>0.8939771</td>
+<td>8.518159</td>
+<td>43</td>
+</tr>
+<tr>
+<td>TCGGA</td>
+<td>170</td>
+<td>0.83780795</td>
+<td>7.395975</td>
+<td>31</td>
+</tr>
+<tr>
+<td>CTTGT</td>
+<td>205</td>
+<td>0.83355045</td>
+<td>5.0850673</td>
+<td>38</td></tr><tr><td>TGCCG</td><td>125</td>
-<td>0.846908</td>
+<td>0.83002883</td><td>14.93275</td><td>23</td></tr><tr><td>AGGCG</td>
-<td>120</td>
-<td>0.7719804</td>
+<td>125</td>
+<td>0.7881193</td><td>6.3016763</td><td>15</td></tr><tr><td>CGGTT</td>
-<td>140</td>
-<td>0.74307984</td>
+<td>150</td>
+<td>0.78028923</td><td>10.398446</td><td>9</td></tr><tr>
+<td>GTGAC</td>
+<td>150</td>
+<td>0.7392424</td>
+<td>6.163313</td>
+<td>32</td>
+</tr>
+<tr><td>GCCGA</td><td>115</td>
-<td>0.738168</td>
+<td>0.723456</td><td>12.575301</td><td>24</td></tr><tr>
+<td>CCCGC</td>
+<td>85</td>
+<td>0.7188745</td>
+<td>6.3460584</td>
+<td>30</td>
+</tr>
+<tr>
+<td>CCCCG</td>
+<td>85</td>
+<td>0.7188745</td>
+<td>10.576764</td>
+<td>29</td>
+</tr>
+<tr><td>CGAGA</td>
-<td>130</td>
-<td>0.61931723</td>
+<td>135</td>
+<td>0.6303192</td><td>9.333206</td><td>26</td></tr><tr><td>CGGGA</td>
-<td>85</td>
-<td>0.5468194</td>
+<td>90</td>
+<td>0.5674459</td><td>6.301676</td><td>24</td></tr><tr><td>CACGG</td><td>85</td>
-<td>0.54560244</td>
+<td>0.5347284</td><td>6.2876506</td><td>37</td></tr>
+<tr>
+<td>CGCCT</td>
+<td>80</td>
+<td>0.5300361</td>
+<td>6.6286345</td>
+<td>30</td>
+</tr>
+<tr>
+<td>CCGCA</td>
+<td>75</td>
+<td>0.47076905</td>
+<td>6.2799363</td>
+<td>36</td>
+</tr>
+<tr>
+<td>CGTTG</td>
+<td>40</td>
+<td>0.20807713</td>
+<td>5.2044277</td>
+<td>46</td>
+</tr></table>
-<p><a href="#summary">Back to summary</a></div>
-</div><div class="footer">Produced by <a href="http://www.bioinformatics.bbsrc.ac.uk/projects/fastqc/">FastQC</a> (version 0.9.1)</div>
-</body></html>
\ No newline at end of file
+</div>
+</body></html><div class="module"><h2>Files created by FastQC</h2><table cellspacing="2" cellpadding="2">
+<tr><td><a href="dataset_1.dat_fastqc.zip">dataset_1.dat_fastqc.zip (312.4 KB)</a></td></tr>
+<tr><td><a href="duplication_levels.png">duplication_levels.png (14.5 KB)</a></td></tr>
+<tr><td><a href="fastqc_data.txt">fastqc_data.txt (15.0 KB)</a></td></tr>
+<tr><td><a href="fastqc_report.html">fastqc_report.html (25.2 KB)</a></td></tr>
+<tr><td><a href="kmer_profiles.png">kmer_profiles.png (186.7 KB)</a></td></tr>
+<tr><td><a href="per_base_gc_content.png">per_base_gc_content.png (12.1 KB)</a></td></tr>
+<tr><td><a href="per_base_n_content.png">per_base_n_content.png (7.4 KB)</a></td></tr>
+<tr><td><a href="per_base_quality.png">per_base_quality.png (9.6 KB)</a></td></tr>
+<tr><td><a href="per_base_sequence_content.png">per_base_sequence_content.png (23.9 KB)</a></td></tr>
+<tr><td><a href="per_sequence_gc_content.png">per_sequence_gc_content.png (29.6 KB)</a></td></tr>
+<tr><td><a href="per_sequence_quality.png">per_sequence_quality.png (21.9 KB)</a></td></tr>
+<tr><td><a href="sequence_length_distribution.png">sequence_length_distribution.png (18.9 KB)</a></td></tr>
+<tr><td><a href="summary.txt">summary.txt (465 B)</a></td></tr>
+</table>
+<a href="http://www.bioinformatics.bbsrc.ac.uk/projects/fastqc/">FastQC documentation and full attribution is here</a><br/><hr/>
+FastQC was run by Galaxy using the rgenetics rgFastQC wrapper - see http://rgenetics.org for details and licensing
+</div></div><div class="footer">Produced by <a href="http://www.bioinformatics.bbsrc.ac.uk/projects/fastqc/">FastQC</a> (version 0.10.0)</div>
diff -r e637518dada717ac2e1cde85c28d2de0f106fe8a -r a87d7b85c5771372550bd786bd15606f8e29cf41 tools/rgenetics/rgFastQC.py
--- a/tools/rgenetics/rgFastQC.py
+++ b/tools/rgenetics/rgFastQC.py
@@ -91,21 +91,20 @@
def fix_fastqc(self,rep=[],flist=[],runlog=[]):
""" add some of our stuff to the html
"""
- bs = '</body></html>\n' # hope they don't change this
- try:
- bodyindex = rep.index(bs) # hope they don't change this
- except:
- bodyindex = len(rep) - 1
- res = []
- res.append('<table>\n')
+ bodyindex = len(rep) -1 # hope they don't change this
+ footrow = bodyindex - 1
+ footer = rep[footrow]
+ rep = rep[:footrow] + rep[footrow+1:]
+ res = ['<div class="module"><h2>Files created by FastQC</h2><table cellspacing="2" cellpadding="2">\n']
flist.sort()
for i,f in enumerate(flist):
if not(os.path.isdir(f)):
fn = os.path.split(f)[-1]
res.append('<tr><td><a href="%s">%s</a></td></tr>\n' % (fn,getFileString(fn, self.opts.outputdir)))
- res.append('</table><p/>\n')
+ res.append('</table>\n')
res.append('<a href="http://www.bioinformatics.bbsrc.ac.uk/projects/fastqc/">FastQC documentation and full attribution is here</a><br/><hr/>\n')
- res.append('FastQC was run by Galaxy using the rgenetics rgFastQC wrapper - see http://rgenetics.org for details and licensing\n')
+ res.append('FastQC was run by Galaxy using the rgenetics rgFastQC wrapper - see http://rgenetics.org for details and licensing\n</div>')
+ res.append(footer)
fixed = rep[:bodyindex] + res + rep[bodyindex:]
return fixed # with our additions
@@ -147,3 +146,4 @@
f.write(''.join(html))
f.close()
+
diff -r e637518dada717ac2e1cde85c28d2de0f106fe8a -r a87d7b85c5771372550bd786bd15606f8e29cf41 tools/rgenetics/rgFastQC.xml
--- a/tools/rgenetics/rgFastQC.xml
+++ b/tools/rgenetics/rgFastQC.xml
@@ -1,4 +1,4 @@
-<tool name="Fastqc: Fastqc QC" id="fastqc" version="0.2">
+<tool name="Fastqc: Fastqc QC" id="fastqc" version="0.3"><description>using FastQC from Babraham</description><command interpreter="python">
rgFastQC.py -i $input_file -d $html_file.files_path -o $html_file -n "$out_prefix" -f $input_file.ext -e ${GALAXY_DATA_INDEX_DIR}/shared/jars/FastQC/fastqc
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
0

commit/galaxy-central: jgoecks: Rename toggle-contract to toggle in CSS so that CSS class name matches icon file name.
by Bitbucket 15 Nov '11
by Bitbucket 15 Nov '11
15 Nov '11
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/changeset/e637518dada7/
changeset: e637518dada7
user: jgoecks
date: 2011-11-15 21:29:25
summary: Rename toggle-contract to toggle in CSS so that CSS class name matches icon file name.
affected #: 7 files
diff -r 4412842dc7380ea74e03aba442fa9b655832bda1 -r e637518dada717ac2e1cde85c28d2de0f106fe8a static/june_2007_style/base.css.tmpl
--- a/static/june_2007_style/base.css.tmpl
+++ b/static/june_2007_style/base.css.tmpl
@@ -865,7 +865,7 @@
-sprite-group: fugue;
-sprite-image: fugue/toggle-expand.png;
}
-.icon-button.toggle-contract {
+.icon-button.toggle {
-sprite-group: fugue;
-sprite-image: fugue/toggle.png;
}
diff -r 4412842dc7380ea74e03aba442fa9b655832bda1 -r e637518dada717ac2e1cde85c28d2de0f106fe8a static/june_2007_style/blue/base.css
--- a/static/june_2007_style/blue/base.css
+++ b/static/june_2007_style/blue/base.css
@@ -153,8 +153,8 @@
.icon-button.tag--plus{background:url(fugue.png) no-repeat 0px -52px;}
.icon-button.toggle-expand{background:transparent url(../images/fugue/toggle-expand-bw.png) no-repeat;}
.icon-button.toggle-expand:hover{background:url(fugue.png) no-repeat 0px -78px;}
-.icon-button.toggle-contract{background:transparent url(../images/fugue/toggle-bw.png) no-repeat;}
-.icon-button.toggle-contract:hover{background:url(fugue.png) no-repeat 0px -104px;}
+.icon-button.toggle{background:transparent url(../images/fugue/toggle-bw.png) no-repeat;}
+.icon-button.toggle:hover{background:url(fugue.png) no-repeat 0px -104px;}
.icon-button.arrow-circle{background:url(fugue.png) no-repeat 0px -130px;}
.icon-button.chevron{background:url(fugue.png) no-repeat 0px -156px;}
.icon-button.bug{background:url(fugue.png) no-repeat 0px -182px;}
diff -r 4412842dc7380ea74e03aba442fa9b655832bda1 -r e637518dada717ac2e1cde85c28d2de0f106fe8a static/scripts/galaxy.base.js
--- a/static/scripts/galaxy.base.js
+++ b/static/scripts/galaxy.base.js
@@ -555,7 +555,7 @@
});
// Generate 'collapse all' link
- $("#top-links > a.toggle-contract").click( function() {
+ $("#top-links > a.toggle").click( function() {
var prefs = $.jStorage.get("history_expand_state");
if (!prefs) { prefs = {}; }
$( "div.historyItemBody:visible" ).each( function() {
diff -r 4412842dc7380ea74e03aba442fa9b655832bda1 -r e637518dada717ac2e1cde85c28d2de0f106fe8a static/scripts/trackster.js
--- a/static/scripts/trackster.js
+++ b/static/scripts/trackster.js
@@ -2391,7 +2391,7 @@
this.mode_icon = $("<a/>").attr("href", "javascript:void(0);").attr("title", "Set display mode")
.addClass("icon-button chevron-expand").tipsy( {gravity: 's'} ).appendTo(this.icons_div);
this.toggle_icon = $("<a/>").attr("href", "javascript:void(0);").attr("title", "Hide/show track content")
- .addClass("icon-button toggle-contract").tipsy( {gravity: 's'} )
+ .addClass("icon-button toggle").tipsy( {gravity: 's'} )
.appendTo(this.icons_div);
this.settings_icon = $("<a/>").attr("href", "javascript:void(0);").attr("title", "Edit settings")
.addClass("icon-button settings-icon").tipsy( {gravity: 's'} )
@@ -2439,11 +2439,11 @@
// Toggle icon hides or shows the track content.
this.toggle_icon.click( function() {
if ( track.content_visible ) {
- track.toggle_icon.addClass("toggle-expand").removeClass("toggle-contract");
+ track.toggle_icon.addClass("toggle-expand").removeClass("toggle");
track.hide_contents();
track.content_visible = false;
} else {
- track.toggle_icon.addClass("toggle-contract").removeClass("toggle-expand");
+ track.toggle_icon.addClass("toggle").removeClass("toggle-expand");
track.content_visible = true;
track.show_contents();
}
diff -r 4412842dc7380ea74e03aba442fa9b655832bda1 -r e637518dada717ac2e1cde85c28d2de0f106fe8a templates/embed_base.mako
--- a/templates/embed_base.mako
+++ b/templates/embed_base.mako
@@ -44,7 +44,7 @@
<div style="float: left"><a class="display_in_embed icon-button toggle-expand tooltip" item_id="${trans.security.encode_id( item.id )}" item_class="$item.__class__.__name__" href="${display_href}"
title="Show ${item_display_name} content"></a>
- <a class="toggle-contract icon-button tooltip" href="${display_href}" title="Hide ${item_display_name} content"></a>
+ <a class="toggle icon-button tooltip" href="${display_href}" title="Hide ${item_display_name} content"></a></div><div style="float: right;">
${self.render_item_links( item )}
diff -r 4412842dc7380ea74e03aba442fa9b655832bda1 -r e637518dada717ac2e1cde85c28d2de0f106fe8a templates/page/display.mako
--- a/templates/page/display.mako
+++ b/templates/page/display.mako
@@ -26,7 +26,7 @@
container.find(".summary-content").hide("fast");
container.find(".item-content").html(item_content).show("fast");
container.find(".toggle-expand").hide();
- container.find(".toggle-contract").show();
+ container.find(".toggle").show();
// Init needed for history items.
init_history_items( container.find("div.historyItemWrapper"), "noinit", "nochanges" );
@@ -43,7 +43,7 @@
container.find(".summary-content").hide("fast");
container.find(".item-content").show("fast");
container.find(".toggle-expand").hide();
- container.find(".toggle-contract").show();
+ container.find(".toggle").show();
}
};
@@ -51,7 +51,7 @@
var hide_embedded_item = function() {
container.find(".item-content").hide("fast");
container.find(".summary-content").show("fast");
- container.find(".toggle-contract").hide();
+ container.find(".toggle").hide();
container.find(".toggle-expand").show();
};
@@ -63,7 +63,7 @@
});
// Setup toggle contract.
- var toggle_contract = $(this).find('.toggle-contract');
+ var toggle_contract = $(this).find('.toggle');
toggle_contract.click( function() {
hide_embedded_item();
return false;
@@ -89,7 +89,7 @@
${parent.stylesheets()}
${h.css( "base", "history", "autocomplete_tagging" )}
<style type="text/css">
- .toggle-contract { display: none; }
+ .toggle { display: none; }
.embedded-item h4 {
margin: 0px;
}
diff -r 4412842dc7380ea74e03aba442fa9b655832bda1 -r e637518dada717ac2e1cde85c28d2de0f106fe8a templates/root/history.mako
--- a/templates/root/history.mako
+++ b/templates/root/history.mako
@@ -432,7 +432,7 @@
<div id="top-links" class="historyLinks"><a title="${_('refresh')}" class="icon-button arrow-circle tooltip" href="${h.url_for('history', show_deleted=show_deleted)}"></a>
- <a title='${_('collapse all')}' class='icon-button toggle-contract tooltip' href='#' style="display: none"></a>
+ <a title='${_('collapse all')}' class='icon-button toggle tooltip' href='#' style="display: none"></a>
%if trans.get_user():
<div style="width: 40px; float: right; white-space: nowrap;">
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
0

15 Nov '11
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/changeset/4412842dc738/
changeset: 4412842dc738
user: greg
date: 2011-11-15 20:50:08
summary: A tool shed admin will now receive content alerts (as part of the alert message) for each file uploaded to a repository that contains either image content or html content if the admin has chosen to receive email alerts for changes to the repository.
affected #: 3 files
diff -r 3a49bca428c3f71a431a3d6f5a5c4397941aac55 -r 4412842dc7380ea74e03aba442fa9b655832bda1 lib/galaxy/webapps/community/controllers/common.py
--- a/lib/galaxy/webapps/community/controllers/common.py
+++ b/lib/galaxy/webapps/community/controllers/common.py
@@ -26,6 +26,8 @@
Change description:
${description}
+${content_alert_str}
+
-----------------------------------------------------------------------------
This change alert was sent from the Galaxy tool shed hosted on the server
"${host}"
@@ -520,7 +522,7 @@
def get_user( trans, id ):
"""Get a user from the database by id"""
return trans.sa_session.query( trans.model.User ).get( trans.security.decode_id( id ) )
-def handle_email_alerts( trans, repository ):
+def handle_email_alerts( trans, repository, content_alert_str='' ):
repo_dir = repository.repo_path
repo = hg.repository( get_configured_ui(), repo_dir )
smtp_server = trans.app.config.smtp_server
@@ -541,14 +543,25 @@
username = ctx.user().split()[0]
except:
username = ctx.user()
- # Build the email message
+ # We'll use 2 template bodies because we only want to send content
+ # alerts to tool shed admin users.
+ admin_body = string.Template( email_alert_template ) \
+ .safe_substitute( host=trans.request.host,
+ repository_name=repository.name,
+ revision='%s:%s' %( str( ctx.rev() ), ctx ),
+ display_date=display_date,
+ description=ctx.description(),
+ username=username,
+ content_alert_str=content_alert_str )
body = string.Template( email_alert_template ) \
.safe_substitute( host=trans.request.host,
repository_name=repository.name,
revision='%s:%s' %( str( ctx.rev() ), ctx ),
display_date=display_date,
description=ctx.description(),
- username=username )
+ username=username,
+ content_alert_str='' )
+ admin_users = trans.app.config.get( "admin_users", "" ).split( "," )
frm = email_from
subject = "Galaxy tool shed repository update alert"
email_alerts = from_json_string( repository.email_alerts )
@@ -556,7 +569,10 @@
to = email.strip()
# Send it
try:
- util.send_mail( frm, to, subject, body, trans.app.config )
+ if to in admin_users:
+ util.send_mail( frm, to, subject, admin_body, trans.app.config )
+ else:
+ util.send_mail( frm, to, subject, body, trans.app.config )
except Exception, e:
log.exception( "An error occurred sending a tool shed repository update alert by email." )
def update_for_browsing( trans, repository, current_working_dir, commit_message='' ):
@@ -567,30 +583,20 @@
repo = hg.repository( get_configured_ui(), repo_dir )
# The following will delete the disk copy of only the files in the repository.
#os.system( 'hg update -r null > /dev/null 2>&1' )
- repo.ui.pushbuffer()
files_to_remove_from_disk = []
files_to_commit = []
- commands.status( repo.ui, repo, all=True )
- status_and_file_names = repo.ui.popbuffer().strip().split( "\n" )
- if status_and_file_names and status_and_file_names[ 0 ] not in [ '' ]:
- # status_and_file_names looks something like:
- # ['? README', '? tmap_tool/tmap-0.0.9.tar.gz', '? dna_filtering.py', 'C filtering.py', 'C filtering.xml']
- # The codes used to show the status of files are:
- # M = modified
- # A = added
- # R = removed
- # C = clean
- # ! = deleted, but still tracked
- # ? = not tracked
- # I = ignored
- for status_and_file_name in status_and_file_names:
- if status_and_file_name.startswith( '?' ) or status_and_file_name.startswith( 'I' ):
- files_to_remove_from_disk.append( os.path.abspath( os.path.join( repo_dir, status_and_file_name.split()[1] ) ) )
- elif status_and_file_name.startswith( 'M' ) or status_and_file_name.startswith( 'A' ) or status_and_file_name.startswith( 'R' ):
- files_to_commit.append( os.path.abspath( os.path.join( repo_dir, status_and_file_name.split()[1] ) ) )
# We may have files on disk in the repo directory that aren't being tracked, so they must be removed.
- # We'll use mercurial's purge extension to do this. Using this extension requires the following entry
- # in the repository's hgrc file which was not required for some time, so we'll add it if it's missing.
+ # The codes used to show the status of files are as follows.
+ # M = modified
+ # A = added
+ # R = removed
+ # C = clean
+ # ! = deleted, but still tracked
+ # ? = not tracked
+ # I = ignored
+ # We'll use mercurial's purge extension to remove untracked file. Using this extension requires the
+ # following entry in the repository's hgrc file which was not required for some time, so we'll add it
+ # if it's missing.
# [extensions]
# hgext.purge=
lines = repo.opener( 'hgrc', 'rb' ).readlines()
@@ -624,9 +630,14 @@
commit_message = 'Committed changes to: %s' % ', '.join( files_to_commit )
repo.dirstate.write()
repo.commit( user=trans.user.username, text=commit_message )
+ cmd = 'hg update > /dev/null 2>&1'
os.chdir( repo_dir )
- os.system( 'hg update > /dev/null 2>&1' )
+ proc = subprocess.Popen( args=cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT )
+ return_code = proc.wait()
os.chdir( current_working_dir )
+ if return_code != 0:
+ output = proc.stdout.read( 32768 )
+ log.debug( 'hg update > /dev/null 2>&1 failed in repository directory %s, reason: %s' % ( repo_dir, output ) )
def load_tool( trans, config_file ):
"""
Load a single tool from the file named by `config_file` and return
diff -r 3a49bca428c3f71a431a3d6f5a5c4397941aac55 -r 4412842dc7380ea74e03aba442fa9b655832bda1 lib/galaxy/webapps/community/controllers/upload.py
--- a/lib/galaxy/webapps/community/controllers/upload.py
+++ b/lib/galaxy/webapps/community/controllers/upload.py
@@ -101,12 +101,12 @@
full_path = os.path.abspath( os.path.join( repo_dir, upload_point, uploaded_file_filename ) )
else:
full_path = os.path.abspath( os.path.join( repo_dir, uploaded_file_filename ) )
- # TODO: enhance this method to set a flag and alert an admin to review content since
- # the hard checks are too restrictive.
- #ok, message = self.__check_file_content( uploaded_file_name )
- #if ok:
# Move the uploaded file to the load_point within the repository hierarchy.
shutil.move( uploaded_file_name, full_path )
+ if os.path.isfile( full_path ):
+ content_alert_str = self.__check_file_content( full_path )
+ else:
+ content_alert_str = ''
commands.add( repo.ui, repo, full_path )
try:
commands.commit( repo.ui, repo, full_path, user=trans.user.username, message=commit_message )
@@ -128,7 +128,7 @@
# Handle the special case where a xxx.loc.sample file is
# being uploaded by copying it to ~/tool-data/xxx.loc.
copy_sample_loc_file( trans, full_path )
- handle_email_alerts( trans, repository )
+ handle_email_alerts( trans, repository, content_alert_str=content_alert_str )
if ok:
# Update the repository files for browsing.
update_for_browsing( trans, repository, current_working_dir, commit_message=commit_message )
@@ -194,18 +194,7 @@
tar.extractall( path=full_path )
tar.close()
uploaded_file.close()
- """
- # TODO: enhance this method to set a flag and alert an admin to review content since
- # the hard checks are too restrictive.
- for filename_in_archive in filenames_in_archive:
- if os.path.isfile( filename_in_archive ):
- ok, message = self.__check_file_content( filename_in_archive )
- if not ok:
- # Refresh the repository files for browsing.
- current_working_dir = os.getcwd()
- update_for_browsing( trans, repository, current_working_dir )
- return False, message, []
- """
+ content_alert_str = ''
if remove_repo_files_not_in_tar and not repository.is_new:
# We have a repository that is not new (it contains files), so discover
# those files that are in the repository, but not in the uploaded archive.
@@ -250,6 +239,9 @@
# The directory is not empty
pass
for filename_in_archive in filenames_in_archive:
+ # Check file content to ensure it is appropriate.
+ if os.path.isfile( filename_in_archive ):
+ content_alert_str += self.__check_file_content( filename_in_archive )
commands.add( repo.ui, repo, filename_in_archive )
if filename_in_archive.endswith( 'tool_data_table_conf.xml.sample' ):
# Handle the special case where a tool_data_table_conf.xml.sample
@@ -271,7 +263,7 @@
# exception. If this happens, we'll try the following.
repo.dirstate.write()
repo.commit( user=trans.user.username, text=commit_message )
- handle_email_alerts( trans, repository )
+ handle_email_alerts( trans, repository, content_alert_str )
return True, '', files_to_remove
def uncompress( self, repository, uploaded_file_name, uploaded_file_filename, isgzip, isbz2 ):
if isgzip:
@@ -349,15 +341,9 @@
return False, message
return True, ''
def __check_file_content( self, file_path ):
- return True, ''
message = ''
- ok = True
- head, tail = os.path.split( file_path )
if check_html( file_path ):
- message = 'The file <b>%s</b> contains HTML content which cannot be uploaded to a Galaxy tool shed.' % str( tail )
- ok = False
+ message = 'The file "%s" contains HTML content.\n' % str( file_path )
elif check_image( file_path ):
- # For now we won't allow images to be uploaded.
- message = 'The file <b>%s</b> contains image content that cannot be uploaded to a Galaxy tool shed.' % str( tail )
- ok = False
- return ok, message
+ message = 'The file "%s" contains image content.\n' % str( file_path )
+ return message
diff -r 3a49bca428c3f71a431a3d6f5a5c4397941aac55 -r 4412842dc7380ea74e03aba442fa9b655832bda1 templates/webapps/community/repository/upload.mako
--- a/templates/webapps/community/repository/upload.mako
+++ b/templates/webapps/community/repository/upload.mako
@@ -64,7 +64,13 @@
<div class="toolForm"><div class="toolFormTitle">Upload a single file or a tarball</div><div class="toolFormBody">
- ## TODO: nginx
+ <div class="form-row">
+ <div class="warningmessage">
+ Uploading may take a while, depending upon the size of the file. Wait until a message is displayed in your
+ browser after clicking the <b>Upload</b> button below.
+ </div>
+ <div style="clear: both"></div>
+ </div><form id="upload_form" name="upload_form" action="${h.url_for( controller='upload', action='upload', repository_id=trans.security.encode_id( repository.id ) )}" enctype="multipart/form-data" method="post"><div class="form-row"><label>File:</label>
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
0

15 Nov '11
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/changeset/3a49bca428c3/
changeset: 3a49bca428c3
user: dan
date: 2011-11-15 20:28:08
summary: Add 'type_extension' attribute to datatypes_conf.xml that allows creating a datatype from an earlier declared datatype by referencing extension. Make several datatypes that had been direct instantiations from Data become subclasses of Binary.
affected #: 3 files
diff -r 94a58c2fbf39ed76218d4af0ac30cb286b61541c -r 3a49bca428c3f71a431a3d6f5a5c4397941aac55 datatypes_conf.xml.sample
--- a/datatypes_conf.xml.sample
+++ b/datatypes_conf.xml.sample
@@ -88,7 +88,7 @@
<datatype extension="gif" type="galaxy.datatypes.images:Gif" mimetype="image/gif"/><datatype extension="gmaj.zip" type="galaxy.datatypes.images:Gmaj" mimetype="application/zip"/><datatype extension="gtf" type="galaxy.datatypes.interval:Gtf" display_in_upload="true"/>
- <datatype extension="h5" type="galaxy.datatypes.data:Data" mimetype="application/octet-stream"/>
+ <datatype extension="h5" type="galaxy.datatypes.binary:Binary" mimetype="application/octet-stream" subclass="True" /><datatype extension="html" type="galaxy.datatypes.images:Html" mimetype="text/html"/><datatype extension="interval" type="galaxy.datatypes.interval:Interval" display_in_upload="true"><converter file="interval_to_bed_converter.xml" target_datatype="bed"/>
@@ -164,10 +164,10 @@
<converter file="wiggle_to_simple_converter.xml" target_datatype="interval"/><!-- <display file="gbrowse/gbrowse_wig.xml" /> --></datatype>
- <datatype extension="summary_tree" type="galaxy.datatypes.data:Data" />
- <datatype extension="interval_index" type="galaxy.datatypes.data:Data" />
- <datatype extension="tabix" type="galaxy.datatypes.data:Data" />
- <datatype extension="bgzip" type="galaxy.datatypes.data:Data" />
+ <datatype extension="summary_tree" type="galaxy.datatypes.binary:Binary" subclass="True" />
+ <datatype extension="interval_index" type="galaxy.datatypes.binary:Binary" subclass="True" />
+ <datatype extension="tabix" type="galaxy.datatypes.binary:Binary" subclass="True" />
+ <datatype extension="bgzip" type="galaxy.datatypes.binary:Binary" subclass="True" /><!-- Start EMBOSS tools --><datatype extension="acedb" type="galaxy.datatypes.data:Text"/><datatype extension="asn1" type="galaxy.datatypes.data:Text"/>
diff -r 94a58c2fbf39ed76218d4af0ac30cb286b61541c -r 3a49bca428c3f71a431a3d6f5a5c4397941aac55 lib/galaxy/datatypes/binary.py
--- a/lib/galaxy/datatypes/binary.py
+++ b/lib/galaxy/datatypes/binary.py
@@ -26,7 +26,7 @@
"""Set the peek and blurb text"""
if not dataset.dataset.purged:
dataset.peek = 'binary data'
- dataset.blurb = 'data'
+ dataset.blurb = data.nice_size( dataset.get_size() )
else:
dataset.peek = 'file does not exist'
dataset.blurb = 'file purged from disk'
diff -r 94a58c2fbf39ed76218d4af0ac30cb286b61541c -r 3a49bca428c3f71a431a3d6f5a5c4397941aac55 lib/galaxy/datatypes/registry.py
--- a/lib/galaxy/datatypes/registry.py
+++ b/lib/galaxy/datatypes/registry.py
@@ -46,18 +46,22 @@
try:
extension = elem.get( 'extension', None )
dtype = elem.get( 'type', None )
+ type_extension = elem.get( 'type_extension', None )
mimetype = elem.get( 'mimetype', None )
display_in_upload = elem.get( 'display_in_upload', False )
make_subclass = galaxy.util.string_as_bool( elem.get( 'subclass', False ) )
- if extension and dtype:
- fields = dtype.split( ':' )
- datatype_module = fields[0]
- datatype_class_name = fields[1]
- fields = datatype_module.split( '.' )
- module = __import__( fields.pop(0) )
- for mod in fields:
- module = getattr( module, mod )
- datatype_class = getattr( module, datatype_class_name )
+ if extension and ( dtype or type_extension ):
+ if dtype:
+ fields = dtype.split( ':' )
+ datatype_module = fields[0]
+ datatype_class_name = fields[1]
+ fields = datatype_module.split( '.' )
+ module = __import__( fields.pop(0) )
+ for mod in fields:
+ module = getattr( module, mod )
+ datatype_class = getattr( module, datatype_class_name )
+ elif type_extension:
+ datatype_class = self.datatypes_by_extension[type_extension].__class__
if make_subclass:
datatype_class = type( datatype_class_name, (datatype_class,), {} )
self.datatypes_by_extension[extension] = datatype_class()
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
0

commit/galaxy-central: dan: External display applications will now return HTTP not found for non-existant parameters/datasets when requested.
by Bitbucket 15 Nov '11
by Bitbucket 15 Nov '11
15 Nov '11
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/changeset/94a58c2fbf39/
changeset: 94a58c2fbf39
user: dan
date: 2011-11-15 18:11:09
summary: External display applications will now return HTTP not found for non-existant parameters/datasets when requested.
affected #: 1 file
diff -r 04acee047c2c585730e9a8266de81d25d5c25d7f -r 94a58c2fbf39ed76218d4af0ac30cb286b61541c lib/galaxy/web/controllers/dataset.py
--- a/lib/galaxy/web/controllers/dataset.py
+++ b/lib/galaxy/web/controllers/dataset.py
@@ -806,7 +806,11 @@
#in case some display app wants all files to be in the same 'directory',
#data can be forced to param, but not the other way (no filename for other direction)
#get param name from url param name
- action_param = display_link.get_param_name_by_url( action_param )
+ try:
+ action_param = display_link.get_param_name_by_url( action_param )
+ except ValueError, e:
+ log.debug( e )
+ return paste.httpexceptions.HTTPNotFound( str( e ) )
value = display_link.get_param_value( action_param )
assert value, "An invalid parameter name was provided: %s" % action_param
assert value.parameter.viewable, "This parameter is not viewable."
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
0

commit/galaxy-central: greg: Use mercurial's purge extension to remove untracked repository files and empty directories, and fix a bug related to deleting repository files.
by Bitbucket 15 Nov '11
by Bitbucket 15 Nov '11
15 Nov '11
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/changeset/04acee047c2c/
changeset: 04acee047c2c
user: greg
date: 2011-11-15 17:51:05
summary: Use mercurial's purge extension to remove untracked repository files and empty directories, and fix a bug related to deleting repository files.
affected #: 2 files
diff -r bdf334e6017658b0864ae38552d103018d956caa -r 04acee047c2c585730e9a8266de81d25d5c25d7f lib/galaxy/webapps/community/controllers/common.py
--- a/lib/galaxy/webapps/community/controllers/common.py
+++ b/lib/galaxy/webapps/community/controllers/common.py
@@ -589,36 +589,36 @@
elif status_and_file_name.startswith( 'M' ) or status_and_file_name.startswith( 'A' ) or status_and_file_name.startswith( 'R' ):
files_to_commit.append( os.path.abspath( os.path.join( repo_dir, status_and_file_name.split()[1] ) ) )
# We may have files on disk in the repo directory that aren't being tracked, so they must be removed.
- cmd = 'hg status'
- tmp_name = tempfile.NamedTemporaryFile().name
- tmp_stdout = open( tmp_name, 'wb' )
+ # We'll use mercurial's purge extension to do this. Using this extension requires the following entry
+ # in the repository's hgrc file which was not required for some time, so we'll add it if it's missing.
+ # [extensions]
+ # hgext.purge=
+ lines = repo.opener( 'hgrc', 'rb' ).readlines()
+ if not '[extensions]\n' in lines:
+ # No extensions have been added at all, so just append to the file.
+ fp = repo.opener( 'hgrc', 'a' )
+ fp.write( '[extensions]\n' )
+ fp.write( 'hgext.purge=\n' )
+ fp.close()
+ elif not 'hgext.purge=\n' in lines:
+ # The file includes and [extensions] section, but we need to add the
+ # purge extension.
+ fp = repo.opener( 'hgrc', 'wb' )
+ for line in lines:
+ if line.startswith( '[extensions]' ):
+ fp.write( line )
+ fp.write( 'hgext.purge=\n' )
+ else:
+ fp.write( line )
+ fp.close()
+ cmd = 'hg purge'
os.chdir( repo_dir )
- proc = subprocess.Popen( args=cmd, shell=True, stdout=tmp_stdout.fileno() )
- returncode = proc.wait()
+ proc = subprocess.Popen( args=cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT )
+ return_code = proc.wait()
os.chdir( current_working_dir )
- tmp_stdout.close()
- if returncode == 0:
- for i, line in enumerate( open( tmp_name ) ):
- if line.startswith( '?' ) or line.startswith( 'I' ):
- files_to_remove_from_disk.append( os.path.abspath( os.path.join( repo_dir, line.split()[1] ) ) )
- elif line.startswith( 'M' ) or line.startswith( 'A' ) or line.startswith( 'R' ):
- files_to_commit.append( os.path.abspath( os.path.join( repo_dir, line.split()[1] ) ) )
- for full_path in files_to_remove_from_disk:
- # We'll remove all files that are not tracked or ignored.
- if os.path.isdir( full_path ):
- try:
- os.rmdir( full_path )
- except OSError, e:
- # The directory is not empty
- pass
- elif os.path.isfile( full_path ):
- os.remove( full_path )
- dir = os.path.split( full_path )[0]
- try:
- os.rmdir( dir )
- except OSError, e:
- # The directory is not empty
- pass
+ if return_code != 0:
+ output = proc.stdout.read( 32768 )
+ log.debug( 'hg purge failed in repository directory %s, reason: %s' % ( repo_dir, output ) )
if files_to_commit:
if not commit_message:
commit_message = 'Committed changes to: %s' % ', '.join( files_to_commit )
diff -r bdf334e6017658b0864ae38552d103018d956caa -r 04acee047c2c585730e9a8266de81d25d5c25d7f lib/galaxy/webapps/community/controllers/repository.py
--- a/lib/galaxy/webapps/community/controllers/repository.py
+++ b/lib/galaxy/webapps/community/controllers/repository.py
@@ -1042,13 +1042,11 @@
def __create_hgrc_file( self, repository ):
# At this point, an entry for the repository is required to be in the hgweb.config
# file so we can call repository.repo_path.
- # Create a .hg/hgrc file that looks something like this:
- # [web]
- # allow_push = test
- # name = convert_characters1
- # push_ssl = False
# Since we support both http and https, we set push_ssl to False to override
# the default (which is True) in the mercurial api.
+ # The hg purge extension purges all files and directories not being tracked by
+ # mercurial in the current repository. It'll remove unknown files and empty
+ # directories. This is used in the update_for_browsing() method.
repo = hg.repository( get_configured_ui(), path=repository.repo_path )
fp = repo.opener( 'hgrc', 'wb' )
fp.write( '[paths]\n' )
@@ -1058,6 +1056,8 @@
fp.write( 'allow_push = %s\n' % repository.user.username )
fp.write( 'name = %s\n' % repository.name )
fp.write( 'push_ssl = false\n' )
+ fp.write( '[extensions]\n' )
+ fp.write( 'hgext.purge=' )
fp.close()
@web.expose
def browse_repository( self, trans, id, **kwd ):
@@ -1150,7 +1150,7 @@
tip = repository.tip
for selected_file in selected_files_to_delete:
try:
- commands.remove( repo.ui, repo, repo_file, force=True )
+ commands.remove( repo.ui, repo, selected_file, force=True )
except Exception, e:
# I never have a problem with commands.remove on a Mac, but in the test/production
# tool shed environment, it throws an exception whenever I delete all files from a
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
0

commit/galaxy-central: fubar: Bump FastQC version in preparation for updating executable version
by Bitbucket 15 Nov '11
by Bitbucket 15 Nov '11
15 Nov '11
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/changeset/bdf334e60176/
changeset: bdf334e60176
user: fubar
date: 2011-11-15 17:09:50
summary: Bump FastQC version in preparation for updating executable version
affected #: 1 file
diff -r 9ad75ecd32daa6d97f20bf6ff9db354e7052d5b7 -r bdf334e6017658b0864ae38552d103018d956caa tools/rgenetics/rgFastQC.xml
--- a/tools/rgenetics/rgFastQC.xml
+++ b/tools/rgenetics/rgFastQC.xml
@@ -1,4 +1,4 @@
-<tool name="Fastqc: Fastqc QC" id="fastqc" version="0.1">
+<tool name="Fastqc: Fastqc QC" id="fastqc" version="0.2"><description>using FastQC from Babraham</description><command interpreter="python">
rgFastQC.py -i $input_file -d $html_file.files_path -o $html_file -n "$out_prefix" -f $input_file.ext -e ${GALAXY_DATA_INDEX_DIR}/shared/jars/FastQC/fastqc
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
0

commit/galaxy-central: greg: Revert file content checks when up0loading to a tool shed repository as they're currently too restrictive.
by Bitbucket 14 Nov '11
by Bitbucket 14 Nov '11
14 Nov '11
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/changeset/9ad75ecd32da/
changeset: 9ad75ecd32da
user: greg
date: 2011-11-14 22:59:26
summary: Revert file content checks when up0loading to a tool shed repository as they're currently too restrictive.
affected #: 1 file
diff -r f640c7bd6ffc4904996859e06157a5f67671f978 -r 9ad75ecd32daa6d97f20bf6ff9db354e7052d5b7 lib/galaxy/webapps/community/controllers/upload.py
--- a/lib/galaxy/webapps/community/controllers/upload.py
+++ b/lib/galaxy/webapps/community/controllers/upload.py
@@ -101,32 +101,34 @@
full_path = os.path.abspath( os.path.join( repo_dir, upload_point, uploaded_file_filename ) )
else:
full_path = os.path.abspath( os.path.join( repo_dir, uploaded_file_filename ) )
- ok, message = self.__check_file_content( uploaded_file_name )
- if ok:
- # Move the uploaded file to the load_point within the repository hierarchy.
- shutil.move( uploaded_file_name, full_path )
- commands.add( repo.ui, repo, full_path )
- try:
- commands.commit( repo.ui, repo, full_path, user=trans.user.username, message=commit_message )
- except Exception, e:
- # I never have a problem with commands.commit on a Mac, but in the test/production
- # tool shed environment, it occasionally throws a "TypeError: array item must be char"
- # exception. If this happens, we'll try the following.
- repo.dirstate.write()
- repo.commit( user=trans.user.username, text=commit_message )
- if full_path.endswith( 'tool_data_table_conf.xml.sample' ):
- # Handle the special case where a tool_data_table_conf.xml.sample
- # file is being uploaded by parsing the file and adding new entries
- # to the in-memory trans.app.tool_data_tables dictionary as well as
- # appending them to the shed's tool_data_table_conf.xml file on disk.
- error, error_message = handle_sample_tool_data_table_conf_file( trans, full_path )
- if error:
- message = '%s<br/>%s' % ( message, error_message )
- if full_path.endswith( '.loc.sample' ):
- # Handle the special case where a xxx.loc.sample file is
- # being uploaded by copying it to ~/tool-data/xxx.loc.
- copy_sample_loc_file( trans, full_path )
- handle_email_alerts( trans, repository )
+ # TODO: enhance this method to set a flag and alert an admin to review content since
+ # the hard checks are too restrictive.
+ #ok, message = self.__check_file_content( uploaded_file_name )
+ #if ok:
+ # Move the uploaded file to the load_point within the repository hierarchy.
+ shutil.move( uploaded_file_name, full_path )
+ commands.add( repo.ui, repo, full_path )
+ try:
+ commands.commit( repo.ui, repo, full_path, user=trans.user.username, message=commit_message )
+ except Exception, e:
+ # I never have a problem with commands.commit on a Mac, but in the test/production
+ # tool shed environment, it occasionally throws a "TypeError: array item must be char"
+ # exception. If this happens, we'll try the following.
+ repo.dirstate.write()
+ repo.commit( user=trans.user.username, text=commit_message )
+ if full_path.endswith( 'tool_data_table_conf.xml.sample' ):
+ # Handle the special case where a tool_data_table_conf.xml.sample
+ # file is being uploaded by parsing the file and adding new entries
+ # to the in-memory trans.app.tool_data_tables dictionary as well as
+ # appending them to the shed's tool_data_table_conf.xml file on disk.
+ error, error_message = handle_sample_tool_data_table_conf_file( trans, full_path )
+ if error:
+ message = '%s<br/>%s' % ( message, error_message )
+ if full_path.endswith( '.loc.sample' ):
+ # Handle the special case where a xxx.loc.sample file is
+ # being uploaded by copying it to ~/tool-data/xxx.loc.
+ copy_sample_loc_file( trans, full_path )
+ handle_email_alerts( trans, repository )
if ok:
# Update the repository files for browsing.
update_for_browsing( trans, repository, current_working_dir, commit_message=commit_message )
@@ -192,6 +194,9 @@
tar.extractall( path=full_path )
tar.close()
uploaded_file.close()
+ """
+ # TODO: enhance this method to set a flag and alert an admin to review content since
+ # the hard checks are too restrictive.
for filename_in_archive in filenames_in_archive:
if os.path.isfile( filename_in_archive ):
ok, message = self.__check_file_content( filename_in_archive )
@@ -200,6 +205,7 @@
current_working_dir = os.getcwd()
update_for_browsing( trans, repository, current_working_dir )
return False, message, []
+ """
if remove_repo_files_not_in_tar and not repository.is_new:
# We have a repository that is not new (it contains files), so discover
# those files that are in the repository, but not in the uploaded archive.
@@ -343,13 +349,15 @@
return False, message
return True, ''
def __check_file_content( self, file_path ):
+ return True, ''
message = ''
ok = True
+ head, tail = os.path.split( file_path )
if check_html( file_path ):
- message = 'Files containing HTML content cannot be uploaded to a Galaxy tool shed.'
+ message = 'The file <b>%s</b> contains HTML content which cannot be uploaded to a Galaxy tool shed.' % str( tail )
ok = False
elif check_image( file_path ):
# For now we won't allow images to be uploaded.
- message = 'Files containing images cannot be uploaded to a Galaxy tool shed.'
+ message = 'The file <b>%s</b> contains image content that cannot be uploaded to a Galaxy tool shed.' % str( tail )
ok = False
return ok, message
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
0
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/changeset/f640c7bd6ffc/
changeset: f640c7bd6ffc
user: greg
date: 2011-11-14 22:19:56
summary: Add baseline support for handling data types included in tool shed repositories, add the ability to upload files to tool shed repositories by entering a URL in the upload form, provide much better file content checking when uploading either single files or archives to a tool shed repository (niether html content nor images are currently allowed), enhance error messaging when tool config parameter tags are not functionally correct.
affected #: 11 files
diff -r 128f167ce12bd5723c5a8124d1d7ea692daf240f -r f640c7bd6ffc4904996859e06157a5f67671f978 lib/galaxy/tools/parameters/basic.py
--- a/lib/galaxy/tools/parameters/basic.py
+++ b/lib/galaxy/tools/parameters/basic.py
@@ -164,9 +164,14 @@
@classmethod
def build( cls, tool, param ):
"""Factory method to create parameter of correct type"""
+ param_name = param.get( "name" )
+ if not param_name:
+ raise ValueError( "Tool parameters require a 'name'" )
param_type = param.get("type")
- if not param_type or param_type not in parameter_types:
- raise ValueError( "Unknown tool parameter type '%s'" % param_type )
+ if not param_type:
+ raise ValueError( "Tool parameter '%s' requires a 'type'" % ( param_name ) )
+ elif param_type not in parameter_types:
+ raise ValueError( "Tool parameter '%s' uses an unknown type '%s'" % ( param_name, param_type ) )
else:
return parameter_types[param_type]( tool, param )
diff -r 128f167ce12bd5723c5a8124d1d7ea692daf240f -r f640c7bd6ffc4904996859e06157a5f67671f978 lib/galaxy/web/base/controller.py
--- a/lib/galaxy/web/base/controller.py
+++ b/lib/galaxy/web/base/controller.py
@@ -6,6 +6,7 @@
from time import strftime
from galaxy import config, tools, web, util
from galaxy.util.hash_util import *
+from galaxy.util.json import json_fix
from galaxy.web import error, form, url_for
from galaxy.model.orm import *
from galaxy.workflow.modules import *
diff -r 128f167ce12bd5723c5a8124d1d7ea692daf240f -r f640c7bd6ffc4904996859e06157a5f67671f978 lib/galaxy/web/controllers/admin.py
--- a/lib/galaxy/web/controllers/admin.py
+++ b/lib/galaxy/web/controllers/admin.py
@@ -4,12 +4,14 @@
from galaxy.web.framework.helpers import time_ago, iff, grids
from galaxy.tools.search import ToolBoxSearch
from galaxy.tools import ToolSection, json_fix
+from galaxy.util import inflector
import logging
log = logging.getLogger( __name__ )
from galaxy.actions.admin import AdminActions
from galaxy.web.params import QuotaParamParser
from galaxy.exceptions import *
+import galaxy.datatypes.registry
class UserListGrid( grids.Grid ):
class EmailColumn( grids.TextColumn ):
@@ -871,6 +873,10 @@
os.chdir( current_working_dir )
tmp_stderr.close()
if returncode == 0:
+ # Load data types required by tools.
+ # TODO: uncomment the following when we're ready...
+ #self.__load_datatypes( trans, repo_files_dir )
+ # Load tools and tool data files required by them.
sample_files, repository_tools_tups = self.__get_repository_tools_and_sample_files( trans, tool_path, repo_files_dir )
if repository_tools_tups:
# Handle missing data table entries for tool parameters that are dynamically generated select lists.
@@ -920,8 +926,9 @@
status = 'error'
if installed_repository_names:
installed_repository_names.sort()
- message += 'These %d repositories were installed and all tools were loaded into tool panel section <b>%s</b>:<br/>' % \
- ( len( installed_repository_names ), tool_section.name )
+ num_repositories_installed = len( installed_repository_names )
+ message += 'Installed %d %s and all tools were loaded into tool panel section <b>%s</b>:<br/>Installed repositories: ' % \
+ ( num_repositories_installed, inflector.cond_plural( num_repositories_installed, 'repository' ), tool_section.name )
for i, repo_name in enumerate( installed_repository_names ):
if i == len( installed_repository_names ) -1:
message += '%s.<br/>' % repo_name
@@ -1171,6 +1178,45 @@
error = tmp_stderr.read()
tmp_stderr.close()
log.debug( 'Problem installing dependencies for tool "%s"\n%s' % ( repository_tool.name, error ) )
+ def __load_datatypes( self, trans, repo_files_dir ):
+ # Find datatypes_conf.xml if it exists.
+ datatypes_config = None
+ for root, dirs, files in os.walk( repo_files_dir ):
+ if root.find( '.hg' ) < 0:
+ for name in files:
+ if name == 'datatypes_conf.xml':
+ datatypes_config = os.path.abspath( os.path.join( root, name ) )
+ break
+ if datatypes_config:
+ # Parse datatypes_config.
+ tree = ElementTree.parse( datatypes_config )
+ root = tree.getroot()
+ ElementInclude.include( root )
+ datatype_files = root.find( 'datatype_files' )
+ for elem in datatype_files.findall( 'datatype_file' ):
+ datatype_file_name = elem.get( 'name', None )
+ if datatype_file_name:
+ # Find the file in the installed repository.
+ relative_path = None
+ for root, dirs, files in os.walk( repo_files_dir ):
+ if root.find( '.hg' ) < 0:
+ for name in files:
+ if name == datatype_file_name:
+ relative_path = os.path.join( root, name )
+ break
+ relative_head, relative_tail = os.path.split( relative_path )
+ # TODO: get the import_module by parsing the <registration><datatype> tags
+ if datatype_file_name.find( '.' ) > 0:
+ import_module = datatype_file_name.split( '.' )[ 0 ]
+ else:
+ import_module = datatype_file_name
+ try:
+ sys.path.insert( 0, relative_head )
+ module = __import__( import_module )
+ sys.path.pop( 0 )
+ except Exception, e:
+ log.debug( "Execption importing datatypes code file included in installed repository: %s" % str( e ) )
+ trans.app.datatypes_registry = galaxy.datatypes.registry.Registry( trans.app.config.root, datatypes_config )
def __get_repository_tools_and_sample_files( self, trans, tool_path, repo_files_dir ):
# The sample_files list contains all files whose name ends in .sample
sample_files = []
diff -r 128f167ce12bd5723c5a8124d1d7ea692daf240f -r f640c7bd6ffc4904996859e06157a5f67671f978 lib/galaxy/webapps/community/controllers/common.py
--- a/lib/galaxy/webapps/community/controllers/common.py
+++ b/lib/galaxy/webapps/community/controllers/common.py
@@ -124,34 +124,6 @@
.filter( trans.model.RepositoryMetadata.table.c.repository_id == trans.security.decode_id( id ) ) \
.order_by( trans.model.RepositoryMetadata.table.c.id.desc() ) \
.first()
-def generate_workflow_metadata( trans, id, changeset_revision, exported_workflow_dict, metadata_dict ):
- """
- Update the received metadata_dict with changes that have been applied
- to the received exported_workflow_dict. Store everything in the database.
- """
- if 'workflows' in metadata_dict:
- metadata_dict[ 'workflows' ].append( exported_workflow_dict )
- else:
- metadata_dict[ 'workflows' ] = [ exported_workflow_dict ]
- return metadata_dict
-def new_workflow_metadata_required( trans, id, metadata_dict ):
- """
- Currently everything about an exported workflow except the name is hard-coded, so there's
- no real way to differentiate versions of exported workflows. If this changes at some future
- time, this method should be enhanced accordingly.
- """
- if 'workflows' in metadata_dict:
- repository_metadata = get_latest_repository_metadata( trans, id )
- if repository_metadata:
- if repository_metadata.metadata:
- # The repository has metadata, so update the workflows value - no new record is needed.
- return False
- else:
- # There is no saved repository metadata, so we need to create a new repository_metadata table record.
- return True
- # The received metadata_dict includes no metadata for workflows, so a new repository_metadata table
- # record is not needed.
- return False
def generate_clone_url( trans, repository_id ):
repository = get_repository( trans, repository_id )
protocol, base = trans.request.base.split( '://' )
@@ -313,6 +285,62 @@
# The received metadata_dict includes no metadata for tools, so a new repository_metadata table
# record is not needed.
return False
+def generate_workflow_metadata( trans, id, changeset_revision, exported_workflow_dict, metadata_dict ):
+ """
+ Update the received metadata_dict with changes that have been applied
+ to the received exported_workflow_dict. Store everything in the database.
+ """
+ if 'workflows' in metadata_dict:
+ metadata_dict[ 'workflows' ].append( exported_workflow_dict )
+ else:
+ metadata_dict[ 'workflows' ] = [ exported_workflow_dict ]
+ return metadata_dict
+def new_workflow_metadata_required( trans, id, metadata_dict ):
+ """
+ Currently everything about an exported workflow except the name is hard-coded, so there's
+ no real way to differentiate versions of exported workflows. If this changes at some future
+ time, this method should be enhanced accordingly.
+ """
+ if 'workflows' in metadata_dict:
+ repository_metadata = get_latest_repository_metadata( trans, id )
+ if repository_metadata:
+ if repository_metadata.metadata:
+ # The repository has metadata, so update the workflows value - no new record is needed.
+ return False
+ else:
+ # There is no saved repository metadata, so we need to create a new repository_metadata table record.
+ return True
+ # The received metadata_dict includes no metadata for workflows, so a new repository_metadata table
+ # record is not needed.
+ return False
+def generate_datatypes_metadata( trans, id, changeset_revision, datatypes_config, metadata_dict ):
+ """
+ Update the received metadata_dict with changes that have been applied
+ to the received datatypes_config.
+ """
+ # Parse datatypes_config.
+ tree = ElementTree.parse( datatypes_config )
+ root = tree.getroot()
+ ElementInclude.include( root )
+ repository_datatype_code_files = []
+ datatype_files = root.find( 'datatype_files' )
+ if datatype_files:
+ for elem in datatype_files.findall( 'datatype_file' ):
+ name = elem.get( 'name', None )
+ repository_datatype_code_files.append( name )
+ metadata_dict[ 'datatype_files' ] = repository_datatype_code_files
+ datatypes = []
+ registration = root.find( 'registration' )
+ if registration:
+ for elem in registration.findall( 'datatype' ):
+ extension = elem.get( 'extension', None )
+ dtype = elem.get( 'type', None )
+ mimetype = elem.get( 'mimetype', None )
+ datatypes.append( dict( extension=extension,
+ dtype=dtype,
+ mimetype=mimetype ) )
+ metadata_dict[ 'datatypes' ] = datatypes
+ return metadata_dict
def set_repository_metadata( trans, id, changeset_revision, **kwd ):
"""Set repository metadata"""
message = ''
@@ -322,28 +350,34 @@
repo = hg.repository( get_configured_ui(), repo_dir )
invalid_files = []
sample_files = []
+ datatypes_config = None
ctx = get_changectx_for_changeset( trans, repo, changeset_revision )
if ctx is not None:
metadata_dict = {}
if changeset_revision == repository.tip:
- # Find all special .sample files first.
+ # Find datatypes_conf.xml if it exists.
+ for root, dirs, files in os.walk( repo_dir ):
+ if root.find( '.hg' ) < 0:
+ for name in files:
+ if name == 'datatypes_conf.xml':
+ datatypes_config = os.path.abspath( os.path.join( root, name ) )
+ break
+ if datatypes_config:
+ metadata_dict = generate_datatypes_metadata( trans, id, changeset_revision, datatypes_config, metadata_dict )
+ # Find all special .sample files.
for root, dirs, files in os.walk( repo_dir ):
if root.find( '.hg' ) < 0:
for name in files:
if name.endswith( '.sample' ):
sample_files.append( os.path.abspath( os.path.join( root, name ) ) )
+ # Find all tool configs and exported workflows.
for root, dirs, files in os.walk( repo_dir ):
if root.find( '.hg' ) < 0 and root.find( 'hgrc' ) < 0:
if '.hg' in dirs:
- # Don't visit .hg directories - should be impossible since we don't
- # allow uploaded archives that contain .hg dirs, but just in case...
dirs.remove( '.hg' )
- if 'hgrc' in files:
- # Don't include hgrc files in commit.
- files.remove( 'hgrc' )
for name in files:
# Find all tool configs.
- if name.endswith( '.xml' ):
+ if name != 'datatypes_conf.xml' and name.endswith( '.xml' ):
try:
full_path = os.path.abspath( os.path.join( root, name ) )
tool = load_tool( trans, full_path )
@@ -373,11 +407,13 @@
# Find all special .sample files first.
for filename in ctx:
if filename.endswith( '.sample' ):
- sample_files.append( os.path.abspath( os.path.join( root, filename ) ) )
+ sample_files.append( os.path.abspath( filename ) )
# Get all tool config file names from the hgweb url, something like:
# /repos/test/convert_chars1/file/e58dcf0026c7/convert_characters.xml
for filename in ctx:
- # Find all tool configs - should not have to update metadata for workflows for now.
+ # Find all tool configs - we do not have to update metadata for workflows or datatypes in anything
+ # but repository tips (handled above) since at the time this code was written, no workflows or
+ # dataytpes_conf.xml files exist in tool shed repositories, so they can only be added in future tips.
if filename.endswith( '.xml' ):
fctx = ctx[ filename ]
# Write the contents of the old tool config to a temporary file.
@@ -532,25 +568,41 @@
# The following will delete the disk copy of only the files in the repository.
#os.system( 'hg update -r null > /dev/null 2>&1' )
repo.ui.pushbuffer()
+ files_to_remove_from_disk = []
+ files_to_commit = []
commands.status( repo.ui, repo, all=True )
status_and_file_names = repo.ui.popbuffer().strip().split( "\n" )
- # status_and_file_names looks something like:
- # ['? README', '? tmap_tool/tmap-0.0.9.tar.gz', '? dna_filtering.py', 'C filtering.py', 'C filtering.xml']
- # The codes used to show the status of files are:
- # M = modified
- # A = added
- # R = removed
- # C = clean
- # ! = deleted, but still tracked
- # ? = not tracked
- # I = ignored
- files_to_remove_from_disk = []
- files_to_commit = []
- for status_and_file_name in status_and_file_names:
- if status_and_file_name.startswith( '?' ) or status_and_file_name.startswith( 'I' ):
- files_to_remove_from_disk.append( os.path.abspath( os.path.join( repo_dir, status_and_file_name.split()[1] ) ) )
- elif status_and_file_name.startswith( 'M' ) or status_and_file_name.startswith( 'A' ) or status_and_file_name.startswith( 'R' ):
- files_to_commit.append( os.path.abspath( os.path.join( repo_dir, status_and_file_name.split()[1] ) ) )
+ if status_and_file_names and status_and_file_names[ 0 ] not in [ '' ]:
+ # status_and_file_names looks something like:
+ # ['? README', '? tmap_tool/tmap-0.0.9.tar.gz', '? dna_filtering.py', 'C filtering.py', 'C filtering.xml']
+ # The codes used to show the status of files are:
+ # M = modified
+ # A = added
+ # R = removed
+ # C = clean
+ # ! = deleted, but still tracked
+ # ? = not tracked
+ # I = ignored
+ for status_and_file_name in status_and_file_names:
+ if status_and_file_name.startswith( '?' ) or status_and_file_name.startswith( 'I' ):
+ files_to_remove_from_disk.append( os.path.abspath( os.path.join( repo_dir, status_and_file_name.split()[1] ) ) )
+ elif status_and_file_name.startswith( 'M' ) or status_and_file_name.startswith( 'A' ) or status_and_file_name.startswith( 'R' ):
+ files_to_commit.append( os.path.abspath( os.path.join( repo_dir, status_and_file_name.split()[1] ) ) )
+ # We may have files on disk in the repo directory that aren't being tracked, so they must be removed.
+ cmd = 'hg status'
+ tmp_name = tempfile.NamedTemporaryFile().name
+ tmp_stdout = open( tmp_name, 'wb' )
+ os.chdir( repo_dir )
+ proc = subprocess.Popen( args=cmd, shell=True, stdout=tmp_stdout.fileno() )
+ returncode = proc.wait()
+ os.chdir( current_working_dir )
+ tmp_stdout.close()
+ if returncode == 0:
+ for i, line in enumerate( open( tmp_name ) ):
+ if line.startswith( '?' ) or line.startswith( 'I' ):
+ files_to_remove_from_disk.append( os.path.abspath( os.path.join( repo_dir, line.split()[1] ) ) )
+ elif line.startswith( 'M' ) or line.startswith( 'A' ) or line.startswith( 'R' ):
+ files_to_commit.append( os.path.abspath( os.path.join( repo_dir, line.split()[1] ) ) )
for full_path in files_to_remove_from_disk:
# We'll remove all files that are not tracked or ignored.
if os.path.isdir( full_path ):
diff -r 128f167ce12bd5723c5a8124d1d7ea692daf240f -r f640c7bd6ffc4904996859e06157a5f67671f978 lib/galaxy/webapps/community/controllers/repository.py
--- a/lib/galaxy/webapps/community/controllers/repository.py
+++ b/lib/galaxy/webapps/community/controllers/repository.py
@@ -1007,17 +1007,19 @@
if repository_path.startswith( './' ):
repository_path = repository_path.replace( './', '', 1 )
entry = "repos/%s/%s = %s" % ( repository.user.username, repository.name, repository_path.lstrip( './' ) )
+ tmp_fd, tmp_fname = tempfile.mkstemp()
if os.path.exists( hgweb_config ):
# Make a backup of the hgweb.config file since we're going to be changing it.
self.__make_hgweb_config_copy( trans, hgweb_config )
- tmp_fname = tempfile.NamedTemporaryFile()
+ new_hgweb_config = open( tmp_fname, 'wb' )
for i, line in enumerate( open( hgweb_config ) ):
- tmp_fname.write( line )
+ new_hgweb_config.write( line )
else:
- tmp_fname.write( '[paths]\n' )
- tmp_fname.write( "%s\n" % entry )
- tmp_fname.flush()
- shutil.move( tmp_fname.name, os.path.abspath( hgweb_config ) )
+ new_hgweb_config = open( tmp_fname, 'wb' )
+ new_hgweb_config.write( '[paths]\n' )
+ new_hgweb_config.write( "%s\n" % entry )
+ new_hgweb_config.flush()
+ shutil.move( tmp_fname, os.path.abspath( hgweb_config ) )
def __change_hgweb_config_entry( self, trans, repository, old_repository_name, new_repository_name ):
# Change an entry in the hgweb.config file for a repository. This only happens when
# the owner changes the name of the repository. An entry looks something like:
@@ -1028,14 +1030,15 @@
repo_dir = repository.repo_path
old_lhs = "repos/%s/%s" % ( repository.user.username, old_repository_name )
new_entry = "repos/%s/%s = %s\n" % ( repository.user.username, new_repository_name, repo_dir )
- tmp_fname = tempfile.NamedTemporaryFile()
+ tmp_fd, tmp_fname = tempfile.mkstemp()
+ new_hgweb_config = open( tmp_fname, 'wb' )
for i, line in enumerate( open( hgweb_config ) ):
if line.startswith( old_lhs ):
- tmp_fname.write( new_entry )
+ new_hgweb_config.write( new_entry )
else:
- tmp_fname.write( line )
- tmp_fname.flush()
- shutil.move( tmp_fname.name, os.path.abspath( hgweb_config ) )
+ new_hgweb_config.write( line )
+ new_hgweb_config.flush()
+ shutil.move( tmp_fname, os.path.abspath( hgweb_config ) )
def __create_hgrc_file( self, repository ):
# At this point, an entry for the repository is required to be in the hgweb.config
# file so we can call repository.repo_path.
diff -r 128f167ce12bd5723c5a8124d1d7ea692daf240f -r f640c7bd6ffc4904996859e06157a5f67671f978 lib/galaxy/webapps/community/controllers/upload.py
--- a/lib/galaxy/webapps/community/controllers/upload.py
+++ b/lib/galaxy/webapps/community/controllers/upload.py
@@ -1,4 +1,4 @@
-import sys, os, shutil, logging, tarfile, tempfile
+import sys, os, shutil, logging, tarfile, tempfile, urllib
from galaxy.web.base.controller import *
from galaxy.model.orm import *
from galaxy.datatypes.checkers import *
@@ -11,9 +11,6 @@
SUCCESS, INFO, WARNING, ERROR = "done", "info", "warning", "error"
CHUNK_SIZE = 2**20 # 1Mb
-class UploadError( Exception ):
- pass
-
class UploadController( BaseUIController ):
@web.expose
@web.require_login( 'upload', use_panels=True, webapp='community' )
@@ -32,20 +29,40 @@
remove_repo_files_not_in_tar = util.string_as_bool( params.get( 'remove_repo_files_not_in_tar', 'true' ) )
uploaded_file = None
upload_point = self.__get_upload_point( repository, **kwd )
- # Get the current repository tip.
tip = repository.tip
+ file_data = params.get( 'file_data', '' )
+ url = params.get( 'url', '' )
if params.get( 'upload_button', False ):
current_working_dir = os.getcwd()
- file_data = params.get( 'file_data', '' )
- if file_data == '':
+ if file_data == '' and url == '':
message = 'No files were entered on the upload form.'
status = 'error'
uploaded_file = None
+ elif url:
+ valid_url = True
+ try:
+ stream = urllib.urlopen( url )
+ except Exception, e:
+ valid_url = False
+ message = 'Error uploading file via http: %s' % str( e )
+ status = 'error'
+ uploaded_file = None
+ if valid_url:
+ fd, uploaded_file_name = tempfile.mkstemp()
+ uploaded_file = open( uploaded_file_name, 'wb' )
+ while 1:
+ chunk = stream.read( CHUNK_SIZE )
+ if not chunk:
+ break
+ uploaded_file.write( chunk )
+ uploaded_file.flush()
+ uploaded_file_filename = url.split( '/' )[ -1 ]
+ isempty = os.path.getsize( os.path.abspath( uploaded_file_name ) ) == 0
elif file_data not in ( '', None ):
uploaded_file = file_data.file
uploaded_file_name = uploaded_file.name
uploaded_file_filename = file_data.filename
- isempty = os.path.getsize( os.path.abspath( uploaded_file_name ) ) == 0
+ isempty = os.path.getsize( os.path.abspath( uploaded_file_name ) ) == 0
if uploaded_file:
isgzip = False
isbz2 = False
@@ -84,30 +101,32 @@
full_path = os.path.abspath( os.path.join( repo_dir, upload_point, uploaded_file_filename ) )
else:
full_path = os.path.abspath( os.path.join( repo_dir, uploaded_file_filename ) )
- # Move the uploaded file to the load_point within the repository hierarchy.
- shutil.move( uploaded_file_name, full_path )
- commands.add( repo.ui, repo, full_path )
- try:
- commands.commit( repo.ui, repo, full_path, user=trans.user.username, message=commit_message )
- except Exception, e:
- # I never have a problem with commands.commit on a Mac, but in the test/production
- # tool shed environment, it occasionally throws a "TypeError: array item must be char"
- # exception. If this happens, we'll try the following.
- repo.dirstate.write()
- repo.commit( user=trans.user.username, text=commit_message )
- if full_path.endswith( 'tool_data_table_conf.xml.sample' ):
- # Handle the special case where a tool_data_table_conf.xml.sample
- # file is being uploaded by parsing the file and adding new entries
- # to the in-memory trans.app.tool_data_tables dictionary as well as
- # appending them to the shed's tool_data_table_conf.xml file on disk.
- error, error_message = handle_sample_tool_data_table_conf_file( trans, full_path )
- if error:
- message = '%s<br/>%s' % ( message, error_message )
- if full_path.endswith( '.loc.sample' ):
- # Handle the special case where a xxx.loc.sample file is
- # being uploaded by copying it to ~/tool-data/xxx.loc.
- copy_sample_loc_file( trans, full_path )
- handle_email_alerts( trans, repository )
+ ok, message = self.__check_file_content( uploaded_file_name )
+ if ok:
+ # Move the uploaded file to the load_point within the repository hierarchy.
+ shutil.move( uploaded_file_name, full_path )
+ commands.add( repo.ui, repo, full_path )
+ try:
+ commands.commit( repo.ui, repo, full_path, user=trans.user.username, message=commit_message )
+ except Exception, e:
+ # I never have a problem with commands.commit on a Mac, but in the test/production
+ # tool shed environment, it occasionally throws a "TypeError: array item must be char"
+ # exception. If this happens, we'll try the following.
+ repo.dirstate.write()
+ repo.commit( user=trans.user.username, text=commit_message )
+ if full_path.endswith( 'tool_data_table_conf.xml.sample' ):
+ # Handle the special case where a tool_data_table_conf.xml.sample
+ # file is being uploaded by parsing the file and adding new entries
+ # to the in-memory trans.app.tool_data_tables dictionary as well as
+ # appending them to the shed's tool_data_table_conf.xml file on disk.
+ error, error_message = handle_sample_tool_data_table_conf_file( trans, full_path )
+ if error:
+ message = '%s<br/>%s' % ( message, error_message )
+ if full_path.endswith( '.loc.sample' ):
+ # Handle the special case where a xxx.loc.sample file is
+ # being uploaded by copying it to ~/tool-data/xxx.loc.
+ copy_sample_loc_file( trans, full_path )
+ handle_email_alerts( trans, repository )
if ok:
# Update the repository files for browsing.
update_for_browsing( trans, repository, current_working_dir, commit_message=commit_message )
@@ -146,6 +165,7 @@
selected_categories = [ trans.security.decode_id( id ) for id in category_ids ]
return trans.fill_template( '/webapps/community/repository/upload.mako',
repository=repository,
+ url=url,
commit_message=commit_message,
uncompress_file=uncompress_file,
remove_repo_files_not_in_tar=remove_repo_files_not_in_tar,
@@ -172,6 +192,14 @@
tar.extractall( path=full_path )
tar.close()
uploaded_file.close()
+ for filename_in_archive in filenames_in_archive:
+ if os.path.isfile( filename_in_archive ):
+ ok, message = self.__check_file_content( filename_in_archive )
+ if not ok:
+ # Refresh the repository files for browsing.
+ current_working_dir = os.getcwd()
+ update_for_browsing( trans, repository, current_working_dir )
+ return False, message, []
if remove_repo_files_not_in_tar and not repository.is_new:
# We have a repository that is not new (it contains files), so discover
# those files that are in the repository, but not in the uploaded archive.
@@ -314,4 +342,14 @@
message = "Uploaded archives cannot contain hgrc files."
return False, message
return True, ''
-
+ def __check_file_content( self, file_path ):
+ message = ''
+ ok = True
+ if check_html( file_path ):
+ message = 'Files containing HTML content cannot be uploaded to a Galaxy tool shed.'
+ ok = False
+ elif check_image( file_path ):
+ # For now we won't allow images to be uploaded.
+ message = 'Files containing images cannot be uploaded to a Galaxy tool shed.'
+ ok = False
+ return ok, message
diff -r 128f167ce12bd5723c5a8124d1d7ea692daf240f -r f640c7bd6ffc4904996859e06157a5f67671f978 templates/webapps/community/repository/common.mako
--- a/templates/webapps/community/repository/common.mako
+++ b/templates/webapps/community/repository/common.mako
@@ -83,7 +83,7 @@
hg clone <a href="${clone_str}">${clone_str}</a></%def>
-<%def name="render_repository_tools_and_workflows( repository_metadata_id, metadata, can_set_metadata=False, webapp='community' )">
+<%def name="render_repository_items( repository_metadata_id, metadata, can_set_metadata=False, webapp='community' )"><% from galaxy.webapps.community.controllers.common import encode, decode %>
%if metadata or can_set_metadata:
<p/>
@@ -195,6 +195,45 @@
</div><div style="clear: both"></div>
%endif
+ %if 'datatypes' in metadata:
+ <div class="form-row">
+ <table width="100%">
+ <tr bgcolor="#D8D8D8" width="100%">
+ <td><b>Data types</b></td>
+ </tr>
+ </table>
+ </div>
+ <div style="clear: both"></div>
+ <div class="form-row">
+ <% datatypes_dicts = metadata[ 'datatypes' ] %>
+ <table class="grid">
+ <tr>
+ <td><b>extension</b></td>
+ <td><b>dtype</b></td>
+ <td><b>mimetype</b></td>
+ </tr>
+ %for datatypes_dict in datatypes_dicts:
+ <%
+ extension = datatypes_dict[ 'extension' ]
+ dtype = datatypes_dict[ 'dtype' ]
+ mimetype = datatypes_dict[ 'mimetype' ]
+ %>
+ <tr>
+ <td>${extension}</td>
+ <td>${dtype}</td>
+ <td>
+ %if mimetype:
+ ${mimetype}
+ %else:
+
+ %endif
+ </td>
+ </tr>
+ %endfor
+ </table>
+ </div>
+ <div style="clear: both"></div>
+ %endif
%endif
%if can_set_metadata:
<form name="set_metadata" action="${h.url_for( controller='repository', action='set_metadata', id=trans.security.encode_id( repository.id ), ctx_str=changeset_revision )}" method="post">
diff -r 128f167ce12bd5723c5a8124d1d7ea692daf240f -r f640c7bd6ffc4904996859e06157a5f67671f978 templates/webapps/community/repository/manage_repository.mako
--- a/templates/webapps/community/repository/manage_repository.mako
+++ b/templates/webapps/community/repository/manage_repository.mako
@@ -184,7 +184,7 @@
</form></div></div>
-${render_repository_tools_and_workflows( repository_metadata_id, metadata, can_set_metadata=True )}
+${render_repository_items( repository_metadata_id, metadata, can_set_metadata=True )}
<p/><div class="toolForm"><div class="toolFormTitle">Manage categories</div>
diff -r 128f167ce12bd5723c5a8124d1d7ea692daf240f -r f640c7bd6ffc4904996859e06157a5f67671f978 templates/webapps/community/repository/preview_tools_in_changeset.mako
--- a/templates/webapps/community/repository/preview_tools_in_changeset.mako
+++ b/templates/webapps/community/repository/preview_tools_in_changeset.mako
@@ -104,4 +104,4 @@
</div></div><p/>
-${render_repository_tools_and_workflows( repository_metadata_id, metadata, webapp=webapp )}
+${render_repository_items( repository_metadata_id, metadata, webapp=webapp )}
diff -r 128f167ce12bd5723c5a8124d1d7ea692daf240f -r f640c7bd6ffc4904996859e06157a5f67671f978 templates/webapps/community/repository/upload.mako
--- a/templates/webapps/community/repository/upload.mako
+++ b/templates/webapps/community/repository/upload.mako
@@ -73,7 +73,16 @@
</div><div style="clear: both"></div></div>
-
+ <div class="form-row">
+ <label>Url:</label>
+ <div class="form-row-input">
+ <input name="url" type="textfield" value="${url}" size="40"/>
+ </div>
+ <div class="toolParamHelp" style="clear: both;">
+ Enter a URL to upload your files via http.
+ </div>
+ <div style="clear: both"></div>
+ </div><div class="form-row"><%
if uncompress_file:
diff -r 128f167ce12bd5723c5a8124d1d7ea692daf240f -r f640c7bd6ffc4904996859e06157a5f67671f978 templates/webapps/community/repository/view_repository.mako
--- a/templates/webapps/community/repository/view_repository.mako
+++ b/templates/webapps/community/repository/view_repository.mako
@@ -186,7 +186,7 @@
%endif
</div></div>
-${render_repository_tools_and_workflows( repository_metadata_id, metadata, webapp=webapp )}
+${render_repository_items( repository_metadata_id, metadata, webapp=webapp )}
%if repository.categories:
<p/><div class="toolForm">
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
0
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/changeset/128f167ce12b/
changeset: 128f167ce12b
user: dan
date: 2011-11-14 19:26:29
summary: Tool help updates.
affected #: 4 files
diff -r 4a47e724738420ce883ffb27b31e280c93ceefcd -r 128f167ce12bd5723c5a8124d1d7ea692daf240f tools/filters/secure_hash_message_digest.xml
--- a/tools/filters/secure_hash_message_digest.xml
+++ b/tools/filters/secure_hash_message_digest.xml
@@ -35,5 +35,11 @@
This tool outputs Secure Hashes / Message Digests of a dataset using the user selected algorithms.
+------
+
+**Citation**
+
+If you use this tool in Galaxy, please cite Blankenberg D, et al. *In preparation.*
+
</help></tool>
diff -r 4a47e724738420ce883ffb27b31e280c93ceefcd -r 128f167ce12bd5723c5a8124d1d7ea692daf240f tools/filters/wc_gnu.xml
--- a/tools/filters/wc_gnu.xml
+++ b/tools/filters/wc_gnu.xml
@@ -62,5 +62,11 @@
#lines words characters
7499 41376 624971
+------
+
+**Citation**
+
+If you use this tool in Galaxy, please cite Blankenberg D, et al. *In preparation.*
+
</help></tool>
diff -r 4a47e724738420ce883ffb27b31e280c93ceefcd -r 128f167ce12bd5723c5a8124d1d7ea692daf240f tools/peak_calling/ccat_wrapper.xml
--- a/tools/peak_calling/ccat_wrapper.xml
+++ b/tools/peak_calling/ccat_wrapper.xml
@@ -112,7 +112,7 @@
<output name="output_top_file" file="peakcalling_ccat/3.0/ccat_test_top_out_1.interval.sorted.re_match" compare="re_match" sort="true" /><output name="output_log_file" file="peakcalling_ccat/3.0/ccat_test_log_out_1.txt" /></test>
- <!-- Test below gives different results on different architectures,
+ <!-- Test below gives different answers on different architectures,
e.g.: x86_64 GNU/Linux gave an extra line (additional peak called) when compared to the version running on 10.6.0 Darwin i386
slidingWinSize was fixed to be 1000, default as per readme.txt
-->
@@ -140,6 +140,8 @@
**Citation**
+For the underlying tool, please cite `Xu H, Handoko L, Wei X, Ye C, Sheng J, Wei CL, Lin F, Sung WK. A signal-noise model for significance analysis of ChIP-seq with negative control. Bioinformatics. 2010 May 1;26(9):1199-204. <http://www.ncbi.nlm.nih.gov/pubmed/20371496>`_
+
If you use this tool in Galaxy, please cite Blankenberg D, et al. *In preparation.*
</help>
diff -r 4a47e724738420ce883ffb27b31e280c93ceefcd -r 128f167ce12bd5723c5a8124d1d7ea692daf240f tools/peak_calling/macs_wrapper.xml
--- a/tools/peak_calling/macs_wrapper.xml
+++ b/tools/peak_calling/macs_wrapper.xml
@@ -231,6 +231,8 @@
**Citation**
+For the underlying tool, please cite `Zhang Y, Liu T, Meyer CA, Eeckhoute J, Johnson DS, Bernstein BE, Nusbaum C, Myers RM, Brown M, Li W, Liu XS. Model-based analysis of ChIP-Seq (MACS). Genome Biol. 2008;9(9):R137. <http://www.ncbi.nlm.nih.gov/pubmed/18798982>`_
+
If you use this tool in Galaxy, please cite Blankenberg D, et al. *In preparation.*
</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
0

commit/galaxy-central: jgoecks: Make history UI icons compatible with changes in 9dbc82483bd2.
by Bitbucket 14 Nov '11
by Bitbucket 14 Nov '11
14 Nov '11
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/changeset/4a47e7247384/
changeset: 4a47e7247384
user: jgoecks
date: 2011-11-14 18:12:52
summary: Make history UI icons compatible with changes in 9dbc82483bd2.
affected #: 2 files
diff -r 7a72e5299fdc7b9723ca108130aab13951385f9b -r 4a47e724738420ce883ffb27b31e280c93ceefcd static/scripts/galaxy.base.js
--- a/static/scripts/galaxy.base.js
+++ b/static/scripts/galaxy.base.js
@@ -555,7 +555,7 @@
});
// Generate 'collapse all' link
- $("#top-links > a.toggle").click( function() {
+ $("#top-links > a.toggle-contract").click( function() {
var prefs = $.jStorage.get("history_expand_state");
if (!prefs) { prefs = {}; }
$( "div.historyItemBody:visible" ).each( function() {
diff -r 7a72e5299fdc7b9723ca108130aab13951385f9b -r 4a47e724738420ce883ffb27b31e280c93ceefcd templates/root/history.mako
--- a/templates/root/history.mako
+++ b/templates/root/history.mako
@@ -432,7 +432,7 @@
<div id="top-links" class="historyLinks"><a title="${_('refresh')}" class="icon-button arrow-circle tooltip" href="${h.url_for('history', show_deleted=show_deleted)}"></a>
- <a title='${_('collapse all')}' class='icon-button toggle tooltip' href='#' style="display: none;"></a>
+ <a title='${_('collapse all')}' class='icon-button toggle-contract tooltip' href='#' style="display: none"></a>
%if trans.get_user():
<div style="width: 40px; float: right; white-space: nowrap;">
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
0

14 Nov '11
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/changeset/7a72e5299fdc/
changeset: 7a72e5299fdc
user: dan
date: 2011-11-14 17:37:02
summary: Fixes for Data source async controller.
affected #: 2 files
diff -r c3a92d8ebf3d2aee1828f0f9187f860bbc01473f -r 7a72e5299fdc7b9723ca108130aab13951385f9b lib/galaxy/jobs/__init__.py
--- a/lib/galaxy/jobs/__init__.py
+++ b/lib/galaxy/jobs/__init__.py
@@ -591,7 +591,7 @@
dataset.blurb = 'done'
dataset.peek = 'no peek'
- dataset.info = context['stdout'] + context['stderr']
+ dataset.info = ( dataset.info or '' ) + context['stdout'] + context['stderr']
dataset.tool_version = self.version_string
dataset.set_size()
if context['stderr']:
diff -r c3a92d8ebf3d2aee1828f0f9187f860bbc01473f -r 7a72e5299fdc7b9723ca108130aab13951385f9b lib/galaxy/web/controllers/async.py
--- a/lib/galaxy/web/controllers/async.py
+++ b/lib/galaxy/web/controllers/async.py
@@ -67,7 +67,7 @@
trans.log_event( 'Async executing tool %s' % tool.id, tool_id=tool.id )
galaxy_url = trans.request.base + '/async/%s/%s/%s' % ( tool_id, data.id, key )
galaxy_url = params.get("GALAXY_URL",galaxy_url)
- params = dict( url=URL, GALAXY_URL=galaxy_url )
+ params = dict( URL=URL, GALAXY_URL=galaxy_url, name=data.name, info=data.info, dbkey=data.dbkey, data_type=data.ext )
# Assume there is exactly one output file possible
params[tool.outputs.keys()[0]] = data.id
tool.execute( trans, incoming=params )
@@ -80,20 +80,20 @@
trans.sa_session.flush()
return "Data %s with status %s received. OK" % (data_id, STATUS)
-
- #
- # no data_id must be parameter submission
- #
- if not data_id and len(params)>3:
-
- if params.galaxyFileFormat == 'wig':
+ else:
+ #
+ # no data_id must be parameter submission
+ #
+ if params.data_type:
+ GALAXY_TYPE = params.data_type
+ elif params.galaxyFileFormat == 'wig': #this is an undocumented legacy special case
GALAXY_TYPE = 'wig'
else:
- GALAXY_TYPE = params.GALAXY_TYPE or 'interval'
+ GALAXY_TYPE = params.GALAXY_TYPE or tool.outputs.values()[0].format
- GALAXY_NAME = params.GALAXY_NAME or '%s query' % tool.name
- GALAXY_INFO = params.GALAXY_INFO or params.galaxyDescription or ''
- GALAXY_BUILD = params.GALAXY_BUILD or params.galaxyFreeze or 'hg17'
+ GALAXY_NAME = params.name or params.GALAXY_NAME or '%s query' % tool.name
+ GALAXY_INFO = params.info or params.GALAXY_INFO or params.galaxyDescription or ''
+ GALAXY_BUILD = params.dbkey or params.GALAXY_BUILD or params.galaxyFreeze or '?'
#data = datatypes.factory(ext=GALAXY_TYPE)()
#data.ext = GALAXY_TYPE
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
0

commit/galaxy-central: greg: Fix for renaming a tool shed repository - hopefully resolves race condition.
by Bitbucket 14 Nov '11
by Bitbucket 14 Nov '11
14 Nov '11
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/changeset/c3a92d8ebf3d/
changeset: c3a92d8ebf3d
user: greg
date: 2011-11-14 16:49:51
summary: Fix for renaming a tool shed repository - hopefully resolves race condition.
affected #: 1 file
diff -r 744902bbb2b94202f361f962f626e95a2bc18111 -r c3a92d8ebf3d2aee1828f0f9187f860bbc01473f lib/galaxy/webapps/community/controllers/repository.py
--- a/lib/galaxy/webapps/community/controllers/repository.py
+++ b/lib/galaxy/webapps/community/controllers/repository.py
@@ -1,4 +1,4 @@
-import os, logging, urllib, ConfigParser, tempfile, shutil
+import os, logging, tempfile, shutil
from time import strftime
from datetime import date, datetime
from galaxy import util
@@ -1001,20 +1001,23 @@
hgweb_config_copy = '%s/hgweb.config_%s_backup' % ( trans.app.config.root, backup_date )
shutil.copy( os.path.abspath( hgweb_config ), os.path.abspath( hgweb_config_copy ) )
def __add_hgweb_config_entry( self, trans, repository, repository_path ):
- # Add an entry in the hgweb.config file for a new repository.
- # An entry looks something like:
+ # Add an entry in the hgweb.config file for a new repository. An entry looks something like:
# repos/test/mira_assembler = database/community_files/000/repo_123.
hgweb_config = "%s/hgweb.config" % trans.app.config.root
- # Make a backup of the hgweb.config file since we're going to be changing it.
- self.__make_hgweb_config_copy( trans, hgweb_config )
+ if repository_path.startswith( './' ):
+ repository_path = repository_path.replace( './', '', 1 )
entry = "repos/%s/%s = %s" % ( repository.user.username, repository.name, repository_path.lstrip( './' ) )
if os.path.exists( hgweb_config ):
- output = open( hgweb_config, 'a' )
+ # Make a backup of the hgweb.config file since we're going to be changing it.
+ self.__make_hgweb_config_copy( trans, hgweb_config )
+ tmp_fname = tempfile.NamedTemporaryFile()
+ for i, line in enumerate( open( hgweb_config ) ):
+ tmp_fname.write( line )
else:
- output = open( hgweb_config, 'w' )
- output.write( '[paths]\n' )
- output.write( "%s\n" % entry )
- output.close()
+ tmp_fname.write( '[paths]\n' )
+ tmp_fname.write( "%s\n" % entry )
+ tmp_fname.flush()
+ shutil.move( tmp_fname.name, os.path.abspath( hgweb_config ) )
def __change_hgweb_config_entry( self, trans, repository, old_repository_name, new_repository_name ):
# Change an entry in the hgweb.config file for a repository. This only happens when
# the owner changes the name of the repository. An entry looks something like:
@@ -1024,16 +1027,15 @@
self.__make_hgweb_config_copy( trans, hgweb_config )
repo_dir = repository.repo_path
old_lhs = "repos/%s/%s" % ( repository.user.username, old_repository_name )
- old_entry = "%s = %s" % ( old_lhs, repo_dir )
new_entry = "repos/%s/%s = %s\n" % ( repository.user.username, new_repository_name, repo_dir )
- tmp_fd, tmp_fname = tempfile.mkstemp()
- new_hgweb_config = open( tmp_fname, 'wb' )
+ tmp_fname = tempfile.NamedTemporaryFile()
for i, line in enumerate( open( hgweb_config ) ):
if line.startswith( old_lhs ):
- new_hgweb_config.write( new_entry )
+ tmp_fname.write( new_entry )
else:
- new_hgweb_config.write( line )
- shutil.move( tmp_fname, os.path.abspath( hgweb_config ) )
+ tmp_fname.write( line )
+ tmp_fname.flush()
+ shutil.move( tmp_fname.name, os.path.abspath( hgweb_config ) )
def __create_hgrc_file( self, repository ):
# At this point, an entry for the repository is required to be in the hgweb.config
# file so we can call repository.repo_path.
@@ -1306,7 +1308,7 @@
if params.get( 'edit_repository_button', False ):
flush_needed = False
# TODO: add a can_manage in the security agent.
- if user != repository.user:
+ if user != repository.user or not trans.user_is_admin():
message = "You are not the owner of this repository, so you cannot manage it."
status = error
return trans.response.send_redirect( web.url_for( controller='repository',
@@ -1315,6 +1317,12 @@
webapp='community',
message=message,
status=status ) )
+ if description != repository.description:
+ repository.description = description
+ flush_needed = True
+ if long_description != repository.long_description:
+ repository.long_description = long_description
+ flush_needed = True
if repo_name != repository.name:
message = self.__validate_repository_name( repo_name, user )
if message:
@@ -1323,12 +1331,6 @@
self.__change_hgweb_config_entry( trans, repository, repository.name, repo_name )
repository.name = repo_name
flush_needed = True
- if description != repository.description:
- repository.description = description
- flush_needed = True
- if long_description != repository.long_description:
- repository.long_description = long_description
- flush_needed = True
if flush_needed:
trans.sa_session.add( repository )
trans.sa_session.flush()
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
0

commit/galaxy-central: fubar: Bumped ALL picard tool versions and made them uniformly 1.56.0 to reflect the current picard tools version Nate's about to unleash.
by Bitbucket 11 Nov '11
by Bitbucket 11 Nov '11
11 Nov '11
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/changeset/744902bbb2b9/
changeset: 744902bbb2b9
user: fubar
date: 2011-11-11 18:25:19
summary: Bumped ALL picard tool versions and made them uniformly 1.56.0 to reflect the current picard tools version Nate's about to unleash.
affected #: 14 files
diff -r 0474dfc4d30f0d77aac42f1a0a8355998f213bfd -r 744902bbb2b94202f361f962f626e95a2bc18111 tools/picard/picard_AddOrReplaceReadGroups.xml
--- a/tools/picard/picard_AddOrReplaceReadGroups.xml
+++ b/tools/picard/picard_AddOrReplaceReadGroups.xml
@@ -1,4 +1,4 @@
-<tool name="Add or Replace Groups" id="picard_ARRG" version="0.2.1">
+<tool name="Add or Replace Groups" id="picard_ARRG" version="1.56.0"><requirements><requirement type="package">picard</requirement></requirements><command interpreter="python">
picard_wrapper.py
diff -r 0474dfc4d30f0d77aac42f1a0a8355998f213bfd -r 744902bbb2b94202f361f962f626e95a2bc18111 tools/picard/picard_BamIndexStats.xml
--- a/tools/picard/picard_BamIndexStats.xml
+++ b/tools/picard/picard_BamIndexStats.xml
@@ -1,4 +1,4 @@
-<tool name="BAM Index Statistics" id="picard_BamIndexStats" version="0.2.1">
+<tool name="BAM Index Statistics" id="picard_BamIndexStats" version="1.56.0"><requirements><requirement type="package">picard</requirement></requirements><command interpreter="python">
picard_wrapper.py
diff -r 0474dfc4d30f0d77aac42f1a0a8355998f213bfd -r 744902bbb2b94202f361f962f626e95a2bc18111 tools/picard/picard_FastqToSam.xml
--- a/tools/picard/picard_FastqToSam.xml
+++ b/tools/picard/picard_FastqToSam.xml
@@ -1,4 +1,4 @@
-<tool id="picard_FastqToSam" name="FASTQ to BAM" version="0.0.1">
+<tool id="picard_FastqToSam" name="FASTQ to BAM" version="1.56.0"><description>creates an unaligned BAM file</description><requirements><requirement type="package">picard</requirement></requirements><command>java -XX:DefaultMaxRAMFraction=1 -XX:+UseParallelGC
diff -r 0474dfc4d30f0d77aac42f1a0a8355998f213bfd -r 744902bbb2b94202f361f962f626e95a2bc18111 tools/picard/picard_MarkDuplicates.xml
--- a/tools/picard/picard_MarkDuplicates.xml
+++ b/tools/picard/picard_MarkDuplicates.xml
@@ -1,4 +1,4 @@
-<tool name="Mark Duplicates" id="picard_MarkDuplicates" version="0.01.1">
+<tool name="Mark Duplicates" id="picard_MarkDuplicates" version="1.56.0"><command interpreter="python">
picard_wrapper.py
--input="$input_file"
diff -r 0474dfc4d30f0d77aac42f1a0a8355998f213bfd -r 744902bbb2b94202f361f962f626e95a2bc18111 tools/picard/picard_ReorderSam.xml
--- a/tools/picard/picard_ReorderSam.xml
+++ b/tools/picard/picard_ReorderSam.xml
@@ -1,4 +1,4 @@
-<tool name="Reorder SAM/BAM" id="picard_ReorderSam" version="0.3.1">
+<tool name="Reorder SAM/BAM" id="picard_ReorderSam" version="1.56.0"><requirements><requirement type="package">picard</requirement></requirements><command interpreter="python">
picard_wrapper.py
diff -r 0474dfc4d30f0d77aac42f1a0a8355998f213bfd -r 744902bbb2b94202f361f962f626e95a2bc18111 tools/picard/picard_ReplaceSamHeader.xml
--- a/tools/picard/picard_ReplaceSamHeader.xml
+++ b/tools/picard/picard_ReplaceSamHeader.xml
@@ -1,4 +1,4 @@
-<tool name="Replace SAM/BAM Header" id="picard_ReplaceSamHeader" version="0.2.1">
+<tool name="Replace SAM/BAM Header" id="picard_ReplaceSamHeader" version="1.56.0"><requirements><requirement type="package">picard</requirement></requirements><command interpreter="python">
picard_wrapper.py
diff -r 0474dfc4d30f0d77aac42f1a0a8355998f213bfd -r 744902bbb2b94202f361f962f626e95a2bc18111 tools/picard/picard_SamToFastq.xml
--- a/tools/picard/picard_SamToFastq.xml
+++ b/tools/picard/picard_SamToFastq.xml
@@ -1,4 +1,4 @@
-<tool id="picard_SamToFastq" name="SAM to FASTQ" version="0.0.1">
+<tool id="picard_SamToFastq" name="SAM to FASTQ" version="1.56.0"><description>creates a FASTQ file</description><requirements><requirement type="package">picard</requirement></requirements><command>java -XX:DefaultMaxRAMFraction=1 -XX:+UseParallelGC
diff -r 0474dfc4d30f0d77aac42f1a0a8355998f213bfd -r 744902bbb2b94202f361f962f626e95a2bc18111 tools/picard/rgPicardASMetrics.xml
--- a/tools/picard/rgPicardASMetrics.xml
+++ b/tools/picard/rgPicardASMetrics.xml
@@ -1,4 +1,4 @@
-<tool name="SAM/BAM Alignment Summary Metrics" id="PicardASMetrics" version="0.03.1">
+<tool name="SAM/BAM Alignment Summary Metrics" id="PicardASMetrics" version="1.56.0"><command interpreter="python">
picard_wrapper.py -i "$input_file" -d "$html_file.files_path" -t "$html_file"
--assumesorted "$sorted" -b "$bisulphite" --adaptors "$adaptors" --maxinsert "$maxinsert" -n "$out_prefix" --datatype "$input_file.ext"
diff -r 0474dfc4d30f0d77aac42f1a0a8355998f213bfd -r 744902bbb2b94202f361f962f626e95a2bc18111 tools/picard/rgPicardFixMate.xml
--- a/tools/picard/rgPicardFixMate.xml
+++ b/tools/picard/rgPicardFixMate.xml
@@ -1,4 +1,4 @@
-<tool name="Paired Read Mate Fixer" id="rgPicFixMate" version="0.2.1">
+<tool name="Paired Read Mate Fixer" id="rgPicFixMate" version="1.56.0"><description>for paired data</description><command interpreter="python">
picard_wrapper.py -i "$input_file" -o "$out_file" --tmpdir "${__new_file_path__}" -n "$out_prefix"
diff -r 0474dfc4d30f0d77aac42f1a0a8355998f213bfd -r 744902bbb2b94202f361f962f626e95a2bc18111 tools/picard/rgPicardGCBiasMetrics.xml
--- a/tools/picard/rgPicardGCBiasMetrics.xml
+++ b/tools/picard/rgPicardGCBiasMetrics.xml
@@ -1,4 +1,4 @@
-<tool name="SAM/BAM GC Bias Metrics" id="PicardGCBiasMetrics" version="0.02.1">
+<tool name="SAM/BAM GC Bias Metrics" id="PicardGCBiasMetrics" version="1.56.0"><command interpreter="python">
picard_wrapper.py -i "$input_file" -d "$html_file.files_path" -t "$html_file"
--windowsize "$windowsize" --mingenomefrac "$mingenomefrac" -n "$out_prefix" --tmpdir "${__new_file_path__}"
diff -r 0474dfc4d30f0d77aac42f1a0a8355998f213bfd -r 744902bbb2b94202f361f962f626e95a2bc18111 tools/picard/rgPicardHsMetrics.xml
--- a/tools/picard/rgPicardHsMetrics.xml
+++ b/tools/picard/rgPicardHsMetrics.xml
@@ -1,4 +1,4 @@
-<tool name="SAM/BAM Hybrid Selection Metrics" id="PicardHsMetrics" version="0.02.1">
+<tool name="SAM/BAM Hybrid Selection Metrics" id="PicardHsMetrics" version="1.56.0"><description>for targeted resequencing data</description><command interpreter="python">
diff -r 0474dfc4d30f0d77aac42f1a0a8355998f213bfd -r 744902bbb2b94202f361f962f626e95a2bc18111 tools/picard/rgPicardInsertSize.xml
--- a/tools/picard/rgPicardInsertSize.xml
+++ b/tools/picard/rgPicardInsertSize.xml
@@ -1,4 +1,4 @@
-<tool name="Insertion size metrics" id="PicardInsertSize" version="0.3.2">
+<tool name="Insertion size metrics" id="PicardInsertSize" version="1.56.0"><description>for PAIRED data</description><requirements><requirement type="package">picard</requirement></requirements><command interpreter="python">
diff -r 0474dfc4d30f0d77aac42f1a0a8355998f213bfd -r 744902bbb2b94202f361f962f626e95a2bc18111 tools/picard/rgPicardLibComplexity.xml
--- a/tools/picard/rgPicardLibComplexity.xml
+++ b/tools/picard/rgPicardLibComplexity.xml
@@ -1,4 +1,4 @@
-<tool name="Estimate Library Complexity" id="rgEstLibComp" version="0.01.1">
+<tool name="Estimate Library Complexity" id="rgEstLibComp" version="1.56.0"><command interpreter="python">
picard_wrapper.py -i "$input_file" -n "$out_prefix" --tmpdir "${__new_file_path__}" --minid "$minIDbases"
--maxdiff "$maxDiff" --minmeanq "$minMeanQ" --readregex "$readRegex" --optdupdist "$optDupeDist"
diff -r 0474dfc4d30f0d77aac42f1a0a8355998f213bfd -r 744902bbb2b94202f361f962f626e95a2bc18111 tools/picard/rgPicardMarkDups.xml
--- a/tools/picard/rgPicardMarkDups.xml
+++ b/tools/picard/rgPicardMarkDups.xml
@@ -1,4 +1,4 @@
-<tool name="Mark Duplicate reads" id="rgPicardMarkDups" version="0.01.1">
+<tool name="Mark Duplicate reads" id="rgPicardMarkDups" version="1.56.0"><command interpreter="python">
picard_wrapper.py -i "$input_file" -n "$out_prefix" --tmpdir "${__new_file_path__}" -o "$out_file"
--remdups "$remDups" --assumesorted "$assumeSorted" --readregex "$readRegex" --optdupdist "$optDupeDist"
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
0
3 new commits in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/changeset/a807ed5389f4/
changeset: a807ed5389f4
user: fubar
date: 2011-11-10 22:23:15
summary: Updates for picard tools 1.56 - they changed the params for CollectInsertSizeMetrics.jar - bless them - so
you will need to update your local picard install in tool-data/shared/jars/picard
Fixes to picard_wrapper.py so if a picard tool returns a non zero exit code, it will raise an error state.
Sadly, this doesn't help the CollectInsertSizeMetrics problem it was meant to address - it will die
with no outputs if given an input containing unpaired reads - but the exit code is still zero.
Talk about irony.
At least it should work right if they ever get around to setting exit codes to indicate a problem.
affected #: 6 files
diff -r 6ec2d7f4a64dcf6a1c49415bd8f40c8d4ca907c5 -r a807ed5389f4da39f509aa45e5baf7027ceb7a91 test-data/picard_input_sorted_pair.sam
--- a/test-data/picard_input_sorted_pair.sam
+++ b/test-data/picard_input_sorted_pair.sam
@@ -5,11 +5,11 @@
@RG ID:rg1 SM:Z
bar:record:1 77 chr1 10 0 * * 0 0 AAAAAAAAAAAAA 1111111111111 RG:Z:rg1
bar:record:1 141 chr1 20 0 * * 0 0 CCCCCCCCCCCCC 2222222222222 RG:Z:rg1
-bar:record:2 77 chr2 10 0 * * 0 0 AAAAAAAAAAAAA 1111111111111 RG:Z:rg1
-bar:record:2 141 chr2 30 0 * * 0 0 CCCCCCCCCCCCC 2222222222222 RG:Z:rg1
-bar:record:3 77 chr1 10 0 * * 0 0 AAAAAAAAAAAAA 1111111111111 RG:Z:rg1
-bar:record:3 141 chr3 20 0 * * 0 0 CCCCCCCCCCCCC 2222222222222 RG:Z:rg1
-bar:record:4 77 chr1 1 0 * * 0 0 AAAAAAAAAAAAA 1111111111111 RG:Z:rg1
-bar:record:4 141 chr1 40 0 * * 0 0 CCCCCCCCCCCCC 2222222222222 RG:Z:rg1
-bar:record:5 77 chr1 40 0 * * 0 0 AAAAAAAAAAAAA 1111111111111 RG:Z:rg1
-bar:record:5 141 chr3 40 0 * * 0 0 CCCCCCCCCCCCC 2222222222222 RG:Z:rg1
+bar:record:2 77 chr1 40 0 * * 0 0 AAAAAAAAAAAAA 1111111111111 RG:Z:rg1
+bar:record:2 141 chr1 50 0 * * 0 0 CCCCCCCCCCCCC 2222222222222 RG:Z:rg1
+bar:record:3 77 chr2 10 0 * * 0 0 AAAAAAAAAAAAA 1111111111111 RG:Z:rg1
+bar:record:3 141 chr2 20 0 * * 0 0 CCCCCCCCCCCCC 2222222222222 RG:Z:rg1
+bar:record:4 77 chr2 50 0 * * 0 0 AAAAAAAAAAAAA 1111111111111 RG:Z:rg1
+bar:record:4 141 chr2 60 0 * * 0 0 CCCCCCCCCCCCC 2222222222222 RG:Z:rg1
+bar:record:5 77 chr3 40 0 * * 0 0 AAAAAAAAAAAAA 1111111111111 RG:Z:rg1
+bar:record:5 141 chr3 50 0 * * 0 0 CCCCCCCCCCCCC 2222222222222 RG:Z:rg1
diff -r 6ec2d7f4a64dcf6a1c49415bd8f40c8d4ca907c5 -r a807ed5389f4da39f509aa45e5baf7027ceb7a91 test-data/picard_output_AsMetrics_indexed_hg18_sorted_pair.html
--- a/test-data/picard_output_AsMetrics_indexed_hg18_sorted_pair.html
+++ b/test-data/picard_output_AsMetrics_indexed_hg18_sorted_pair.html
@@ -6,28 +6,51 @@
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-<meta name="generator" content="Galaxy CollectAlignmentSummaryMetrics tool output - see http://getgalaxy.org/" />
+<meta name="generator" content="Galaxy picard_wrapper tool output - see http://getgalaxy.org/" /><title></title><link rel="stylesheet" href="/static/style/base.css" type="text/css" /></head><body><div class="document">
-Galaxy tool wrapper picard_wrapper at 09/05/2011 11:03:57</b><br/><b>The following output files were created (click the filename to view/download a copy):</b><hr/><table>
+Galaxy tool CollectAlignmentSummaryMetrics run at 11/11/2011 08:07:27</b><br/><b>The following output files were created (click the filename to view/download a copy):</b><hr/><table><tr><td><a href="CollectAlignmentSummaryMetrics.log">CollectAlignmentSummaryMetrics.log</a></td></tr>
+<tr><td><a href="CollectAlignmentSummaryMetrics.metrics.txt">CollectAlignmentSummaryMetrics.metrics.txt</a></td></tr></table><p/>
-<b>Picard log</b><hr/>
-<pre>## executing java -Xmx2g -jar /udd/rerla/galaxy-central/tool-data/shared/jars/CollectAlignmentSummaryMetrics.jar VALIDATION_STRINGENCY=LENIENT ASSUME_SORTED=true ADAPTER_SEQUENCE= IS_BISULFITE_SEQUENCED=false MAX_INSERT_SIZE=100000 OUTPUT=/udd/rerla/galaxy-central/database/job_working_directory/5/dataset_5_files/CollectAlignmentSummaryMetrics.metrics.txt R=/udd/rerla/galaxy-central/database/job_working_directory/5/dataset_5_files/hg19.fasta_fake.fasta TMP_DIR=/tmp INPUT=/export/tmp/tmpBrCiH5/database/files/000/dataset_4.dat returned status 1 and stderr:
-[Mon May 09 11:03:51 EDT 2011] net.sf.picard.analysis.CollectAlignmentSummaryMetrics MAX_INSERT_SIZE=100000 ADAPTER_SEQUENCE=[AATGATACGGCGACCACCGAGATCTACACTCTTTCCCTACACGACGCTCTTCCGATCT, AGATCGGAAGAGCTCGTATGCCGTCTTCTGCTTG, AATGATACGGCGACCACCGAGATCTACACTCTTTCCCTACACGACGCTCTTCCGATCT, AGATCGGAAGAGCGGTTCAGCAGGAATGCCGAGACCGATCTCGTATGCCGTCTTCTGCTTG, AATGATACGGCGACCACCGAGATCTACACTCTTTCCCTACACGACGCTCTTCCGATCT, AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNNNATCTCGTATGCCGTCTTCTGCTTG, IS_BISULFITE_SEQUENCED=false] INPUT=/export/tmp/tmpBrCiH5/database/files/000/dataset_4.dat OUTPUT=/udd/rerla/galaxy-central/database/job_working_directory/5/dataset_5_files/CollectAlignmentSummaryMetrics.metrics.txt REFERENCE_SEQUENCE=/udd/rerla/galaxy-central/database/job_working_directory/5/dataset_5_files/hg19.fasta_fake.fasta ASSUME_SORTED=true TMP_DIR=/tmp VALIDATION_STRINGENCY=LENIENT IS_BISULFITE_SEQUENCED=false STOP_AFTER=0 VERBOSITY=INFO QUIET=false COMPRESSION_LEVEL=5 MAX_RECORDS_IN_RAM=500000 CREATE_INDEX=false CREATE_MD5_FILE=false
-[Mon May 09 11:03:57 EDT 2011] net.sf.picard.analysis.CollectAlignmentSummaryMetrics done.
-Runtime.totalMemory()=912588800
-Exception in thread "main" net.sf.picard.PicardException: Requesting earlier reference sequence: 0 < 1
- at net.sf.picard.reference.ReferenceSequenceFileWalker.get(ReferenceSequenceFileWalker.java:78)
- at net.sf.picard.analysis.SinglePassSamProgram.makeItSo(SinglePassSamProgram.java:115)
- at net.sf.picard.analysis.SinglePassSamProgram.doWork(SinglePassSamProgram.java:54)
- at net.sf.picard.cmdline.CommandLineProgram.instanceMain(CommandLineProgram.java:157)
- at net.sf.picard.cmdline.CommandLineProgram.instanceMainWithExit(CommandLineProgram.java:117)
- at net.sf.picard.analysis.CollectAlignmentSummaryMetrics.main(CollectAlignmentSummaryMetrics.java:106)
-
+<b>Picard on line resources</b><ul>
+<li><a href="http://picard.sourceforge.net/index.shtml">Click here for Picard Documentation</a></li>
+<li><a href="http://picard.sourceforge.net/picard-metric-definitions.shtml">Click here for Picard Metrics definitions</a></li></ul><hr/>
+<b>Picard output (transposed to make it easier to see)</b><hr/>
+<table cellpadding="3" >
+<tr class="d0"><td colspan="2">## net.sf.picard.metrics.StringHeader</td></tr><tr class="d1"><td colspan="2"># net.sf.picard.analysis.CollectAlignmentSummaryMetrics MAX_INSERT_SIZE=100000 ADAPTER_SEQUENCE=[AATGATACGGCGACCACCGAGATCTACACTCTTTCCCTACACGACGCTCTTCCGATCT, AGATCGGAAGAGCTCGTATGCCGTCTTCTGCTTG, AATGATACGGCGACCACCGAGATCTACACTCTTTCCCTACACGACGCTCTTCCGATCT, AGATCGGAAGAGCGGTTCAGCAGGAATGCCGAGACCGATCTCGTATGCCGTCTTCTGCTTG, AATGATACGGCGACCACCGAGATCTACACTCTTTCCCTACACGACGCTCTTCCGATCT, AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNNNATCTCGTATGCCGTCTTCTGCTTG, IS_BISULFITE_SEQUENCED=false] INPUT=/data/tmp/tmpLLcl1w/database/files/000/dataset_4.dat OUTPUT=/data/home/rlazarus/galaxy/database/job_working_directory/5/dataset_5_files/CollectAlignmentSummaryMetrics.metrics.txt REFERENCE_SEQUENCE=/data/home/rlazarus/galaxy/database/job_working_directory/5/dataset_5_files/hg19.fa_fake.fasta ASSUME_SORTED=true TMP_DIR=[/tmp] VALIDATION_STRINGENCY=LENIENT METRIC_ACCUMULATION_LEVEL=[ALL_READS] IS_BISULFITE_SEQUENCED=false STOP_AFTER=0 VERBOSITY=INFO QUIET=false COMPRESSION_LEVEL=5 MAX_RECORDS_IN_RAM=500000 CREATE_INDEX=false CREATE_MD5_FILE=false</td></tr><tr class="d0"><td colspan="2">## net.sf.picard.metrics.StringHeader</td></tr><tr class="d1"><td colspan="2"># Started on: Fri Nov 11 08:07:22 EST 2011</td></tr><tr class="d0"><td colspan="2">## METRICS CLASS net.sf.picard.analysis.AlignmentSummaryMetrics</td></tr><tr class="d0"><td>CATEGORY</td><td>FIRST_OF_PAIR </td></tr>
+<tr class="d1"><td>TOTAL_READS</td><td>5 </td></tr>
+<tr class="d0"><td>PF_READS</td><td>5 </td></tr>
+<tr class="d1"><td>PCT_PF_READS</td><td>1 </td></tr>
+<tr class="d0"><td>PF_NOISE_READS</td><td>0 </td></tr>
+<tr class="d1"><td>PF_READS_ALIGNED</td><td>0 </td></tr>
+<tr class="d0"><td>PCT_PF_READS_ALIGNED</td><td>0 </td></tr>
+<tr class="d1"><td>PF_ALIGNED_BASES</td><td>0 </td></tr>
+<tr class="d0"><td>PF_HQ_ALIGNED_READS</td><td>0 </td></tr>
+<tr class="d1"><td>PF_HQ_ALIGNED_BASES</td><td>0 </td></tr>
+<tr class="d0"><td>PF_HQ_ALIGNED_Q20_BASES</td><td>0 </td></tr>
+<tr class="d1"><td>PF_HQ_MEDIAN_MISMATCHES</td><td>0 </td></tr>
+<tr class="d0"><td>PF_MISMATCH_RATE</td><td>0 </td></tr>
+<tr class="d1"><td>PF_HQ_ERROR_RATE</td><td>0 </td></tr>
+<tr class="d0"><td>PF_INDEL_RATE</td><td>0 </td></tr>
+<tr class="d1"><td>MEAN_READ_LENGTH</td><td>13 </td></tr>
+<tr class="d0"><td>READS_ALIGNED_IN_PAIRS</td><td>0 </td></tr>
+<tr class="d1"><td>PCT_READS_ALIGNED_IN_PAIRS</td><td>0 </td></tr>
+<tr class="d0"><td>BAD_CYCLES</td><td>0 </td></tr>
+<tr class="d1"><td>STRAND_BALANCE</td><td>0 </td></tr>
+<tr class="d0"><td>PCT_CHIMERAS</td><td>0 </td></tr>
+<tr class="d1"><td>PCT_ADAPTER</td><td>0 </td></tr>
+<tr class="d0"><td>SAMPLE</td><td> </td></tr>
+<tr class="d1"><td>LIBRARY</td><td> </td></tr>
+<tr class="d0"><td>READ_GROUP
+</td><td>
+ </td></tr>
+</table>
+<b>Picard Tool Run Log</b><hr/>
+<pre>INFO:root:## executing java -Xmx4g -jar /data/home/rlazarus/galaxy/tool-data/shared/jars/picard/CollectAlignmentSummaryMetrics.jar VALIDATION_STRINGENCY=LENIENT ASSUME_SORTED=true ADAPTER_SEQUENCE= IS_BISULFITE_SEQUENCED=false MAX_INSERT_SIZE=100000 OUTPUT=/data/home/rlazarus/galaxy/database/job_working_directory/5/dataset_5_files/CollectAlignmentSummaryMetrics.metrics.txt R=/data/home/rlazarus/galaxy/database/job_working_directory/5/dataset_5_files/hg19.fa_fake.fasta TMP_DIR=/tmp INPUT=/data/tmp/tmpLLcl1w/database/files/000/dataset_4.dat returned status 0 and nothing on stderr
</pre><hr/>The freely available <a href="http://picard.sourceforge.net/command-line-overview.shtml">Picard software</a>
generated all outputs reported here running as a <a href="http://getgalaxy.org">Galaxy</a> tool</div></body></html>
diff -r 6ec2d7f4a64dcf6a1c49415bd8f40c8d4ca907c5 -r a807ed5389f4da39f509aa45e5baf7027ceb7a91 test-data/picard_output_alignment_summary_metrics.html
--- a/test-data/picard_output_alignment_summary_metrics.html
+++ b/test-data/picard_output_alignment_summary_metrics.html
@@ -12,7 +12,7 @@
</head><body><div class="document">
-Galaxy tool CollectAlignmentSummaryMetrics run at 11/05/2011 23:16:24</b><br/><b>The following output files were created (click the filename to view/download a copy):</b><hr/><table>
+Galaxy tool CollectAlignmentSummaryMetrics run at 11/11/2011 08:07:10</b><br/><b>The following output files were created (click the filename to view/download a copy):</b><hr/><table><tr><td><a href="CollectAlignmentSummaryMetrics.log">CollectAlignmentSummaryMetrics.log</a></td></tr><tr><td><a href="CollectAlignmentSummaryMetrics.metrics.txt">CollectAlignmentSummaryMetrics.metrics.txt</a></td></tr></table><p/>
@@ -21,43 +21,38 @@
<li><a href="http://picard.sourceforge.net/picard-metric-definitions.shtml">Click here for Picard Metrics definitions</a></li></ul><hr/><b>Picard output (transposed to make it easier to see)</b><hr/><table cellpadding="3" >
-<tr class="d0"><td colspan="2">## net.sf.picard.metrics.StringHeader</td></tr><tr class="d1"><td colspan="2"># net.sf.picard.analysis.CollectAlignmentSummaryMetrics MAX_INSERT_SIZE=100000 ADAPTER_SEQUENCE=[AATGATACGGCGACCACCGAGATCTACACTCTTTCCCTACACGACGCTCTTCCGATCT, AGATCGGAAGAGCTCGTATGCCGTCTTCTGCTTG, AATGATACGGCGACCACCGAGATCTACACTCTTTCCCTACACGACGCTCTTCCGATCT, AGATCGGAAGAGCGGTTCAGCAGGAATGCCGAGACCGATCTCGTATGCCGTCTTCTGCTTG, AATGATACGGCGACCACCGAGATCTACACTCTTTCCCTACACGACGCTCTTCCGATCT, AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNNNATCTCGTATGCCGTCTTCTGCTTG, IS_BISULFITE_SEQUENCED=false] INPUT=/export/tmp/tmp1-mt_l/database/files/000/dataset_2.dat OUTPUT=/udd/rerla/galaxy-central/database/job_working_directory/3/dataset_3_files/CollectAlignmentSummaryMetrics.metrics.txt REFERENCE_SEQUENCE=/udd/rerla/galaxy-central/database/job_working_directory/3/dataset_3_files/CollectAlignmentSummaryMetricsZJS8q6.fasta_fake.fasta ASSUME_SORTED=true TMP_DIR=/tmp VALIDATION_STRINGENCY=LENIENT IS_BISULFITE_SEQUENCED=false STOP_AFTER=0 VERBOSITY=INFO QUIET=false COMPRESSION_LEVEL=5 MAX_RECORDS_IN_RAM=500000 CREATE_INDEX=false CREATE_MD5_FILE=false</td></tr><tr class="d0"><td colspan="2">## net.sf.picard.metrics.StringHeader</td></tr><tr class="d1"><td colspan="2"># Started on: Wed May 11 23:16:24 EDT 2011</td></tr><tr class="d0"><td colspan="2">## METRICS CLASS net.sf.picard.analysis.AlignmentSummaryMetrics</td></tr><tr class="d0"><td>CATEGORY</td><td>FIRST_OF_PAIR </td></tr>
+<tr class="d0"><td colspan="2">## net.sf.picard.metrics.StringHeader</td></tr><tr class="d1"><td colspan="2"># net.sf.picard.analysis.CollectAlignmentSummaryMetrics MAX_INSERT_SIZE=100000 ADAPTER_SEQUENCE=[AATGATACGGCGACCACCGAGATCTACACTCTTTCCCTACACGACGCTCTTCCGATCT, AGATCGGAAGAGCTCGTATGCCGTCTTCTGCTTG, AATGATACGGCGACCACCGAGATCTACACTCTTTCCCTACACGACGCTCTTCCGATCT, AGATCGGAAGAGCGGTTCAGCAGGAATGCCGAGACCGATCTCGTATGCCGTCTTCTGCTTG, AATGATACGGCGACCACCGAGATCTACACTCTTTCCCTACACGACGCTCTTCCGATCT, AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNNNATCTCGTATGCCGTCTTCTGCTTG, IS_BISULFITE_SEQUENCED=false] INPUT=/data/tmp/tmpLLcl1w/database/files/000/dataset_2.dat OUTPUT=/data/home/rlazarus/galaxy/database/job_working_directory/3/dataset_3_files/CollectAlignmentSummaryMetrics.metrics.txt REFERENCE_SEQUENCE=/data/home/rlazarus/galaxy/database/job_working_directory/3/dataset_3_files/CollectAlignmentSummaryMetricsfq2hit.fasta_fake.fasta ASSUME_SORTED=true TMP_DIR=[/tmp] VALIDATION_STRINGENCY=LENIENT METRIC_ACCUMULATION_LEVEL=[ALL_READS] IS_BISULFITE_SEQUENCED=false STOP_AFTER=0 VERBOSITY=INFO QUIET=false COMPRESSION_LEVEL=5 MAX_RECORDS_IN_RAM=500000 CREATE_INDEX=false CREATE_MD5_FILE=false</td></tr><tr class="d0"><td colspan="2">## net.sf.picard.metrics.StringHeader</td></tr><tr class="d1"><td colspan="2"># Started on: Fri Nov 11 08:07:10 EST 2011</td></tr><tr class="d0"><td colspan="2">## METRICS CLASS net.sf.picard.analysis.AlignmentSummaryMetrics</td></tr><tr class="d0"><td>CATEGORY</td><td>FIRST_OF_PAIR </td></tr><tr class="d1"><td>TOTAL_READS</td><td>4 </td></tr><tr class="d0"><td>PF_READS</td><td>4 </td></tr><tr class="d1"><td>PCT_PF_READS</td><td>1 </td></tr><tr class="d0"><td>PF_NOISE_READS</td><td>0 </td></tr><tr class="d1"><td>PF_READS_ALIGNED</td><td>4 </td></tr><tr class="d0"><td>PCT_PF_READS_ALIGNED</td><td>1 </td></tr>
-<tr class="d1"><td>PF_HQ_ALIGNED_READS</td><td>4 </td></tr>
-<tr class="d0"><td>PF_HQ_ALIGNED_BASES</td><td>404 </td></tr>
-<tr class="d1"><td>PF_HQ_ALIGNED_Q20_BASES</td><td>28 </td></tr>
-<tr class="d0"><td>PF_HQ_MEDIAN_MISMATCHES</td><td>78 </td></tr>
+<tr class="d1"><td>PF_ALIGNED_BASES</td><td>404 </td></tr>
+<tr class="d0"><td>PF_HQ_ALIGNED_READS</td><td>4 </td></tr>
+<tr class="d1"><td>PF_HQ_ALIGNED_BASES</td><td>404 </td></tr>
+<tr class="d0"><td>PF_HQ_ALIGNED_Q20_BASES</td><td>28 </td></tr>
+<tr class="d1"><td>PF_HQ_MEDIAN_MISMATCHES</td><td>78 </td></tr>
+<tr class="d0"><td>PF_MISMATCH_RATE</td><td>0.777228 </td></tr><tr class="d1"><td>PF_HQ_ERROR_RATE</td><td>0.777228 </td></tr>
-<tr class="d0"><td>MEAN_READ_LENGTH</td><td>101 </td></tr>
-<tr class="d1"><td>READS_ALIGNED_IN_PAIRS</td><td>3 </td></tr>
-<tr class="d0"><td>PCT_READS_ALIGNED_IN_PAIRS</td><td>0.75 </td></tr>
-<tr class="d1"><td>BAD_CYCLES</td><td>63 </td></tr>
-<tr class="d0"><td>STRAND_BALANCE</td><td>0.25 </td></tr>
-<tr class="d1"><td>PCT_CHIMERAS</td><td>0 </td></tr>
-<tr class="d0"><td>PCT_ADAPTER
-</td><td>0
+<tr class="d0"><td>PF_INDEL_RATE</td><td>0 </td></tr>
+<tr class="d1"><td>MEAN_READ_LENGTH</td><td>101 </td></tr>
+<tr class="d0"><td>READS_ALIGNED_IN_PAIRS</td><td>3 </td></tr>
+<tr class="d1"><td>PCT_READS_ALIGNED_IN_PAIRS</td><td>0.75 </td></tr>
+<tr class="d0"><td>BAD_CYCLES</td><td>63 </td></tr>
+<tr class="d1"><td>STRAND_BALANCE</td><td>0.25 </td></tr>
+<tr class="d0"><td>PCT_CHIMERAS</td><td>0 </td></tr>
+<tr class="d1"><td>PCT_ADAPTER</td><td>0 </td></tr>
+<tr class="d0"><td>SAMPLE</td><td> </td></tr>
+<tr class="d1"><td>LIBRARY</td><td> </td></tr>
+<tr class="d0"><td>READ_GROUP
+</td><td>
</td></tr></table><b>Picard Tool Run Log</b><hr/>
-<pre>Wed, 11 May 2011 23:16:24 INFO
- ## executing java -Xmx2g -jar /udd/rerla/galaxy-central/tool-data/shared/jars/CreateSequenceDictionary.jar REFERENCE=/tmp/CollectAlignmentSummaryMetricsZJS8q6.fasta OUTPUT=/tmp/CollectAlignmentSummaryMetricsZJS8q6.dict URI=dataset_1.dat TRUNCATE_NAMES_AT_WHITESPACE=None returned status 0 and stderr:
-[Wed May 11 23:16:24 EDT 2011] net.sf.picard.sam.CreateSequenceDictionary REFERENCE=/tmp/CollectAlignmentSummaryMetricsZJS8q6.fasta OUTPUT=/tmp/CollectAlignmentSummaryMetricsZJS8q6.dict URI=dataset_1.dat TRUNCATE_NAMES_AT_WHITESPACE=false NUM_SEQUENCES=2147483647 TMP_DIR=/tmp/rerla VERBOSITY=INFO QUIET=false VALIDATION_STRINGENCY=STRICT COMPRESSION_LEVEL=5 MAX_RECORDS_IN_RAM=500000 CREATE_INDEX=false CREATE_MD5_FILE=false
-[Wed May 11 23:16:24 EDT 2011] net.sf.picard.sam.CreateSequenceDictionary done.
-Runtime.totalMemory()=9109504
+<pre>INFO:root:## executing java -Xmx4g -jar /data/home/rlazarus/galaxy/tool-data/shared/jars/picard/CreateSequenceDictionary.jar REFERENCE=/tmp/CollectAlignmentSummaryMetricsfq2hit.fasta OUTPUT=/tmp/CollectAlignmentSummaryMetricsfq2hit.dict URI=dataset_1.dat TRUNCATE_NAMES_AT_WHITESPACE=None returned status 0 and nothing on stderr
-
-Wed, 11 May 2011 23:16:24 INFO
- ## executing java -Xmx2g -jar /udd/rerla/galaxy-central/tool-data/shared/jars/CollectAlignmentSummaryMetrics.jar VALIDATION_STRINGENCY=LENIENT ASSUME_SORTED=true ADAPTER_SEQUENCE= IS_BISULFITE_SEQUENCED=false MAX_INSERT_SIZE=100000 OUTPUT=/udd/rerla/galaxy-central/database/job_working_directory/3/dataset_3_files/CollectAlignmentSummaryMetrics.metrics.txt R=/udd/rerla/galaxy-central/database/job_working_directory/3/dataset_3_files/CollectAlignmentSummaryMetricsZJS8q6.fasta_fake.fasta TMP_DIR=/tmp INPUT=/export/tmp/tmp1-mt_l/database/files/000/dataset_2.dat returned status 0 and stderr:
-[Wed May 11 23:16:24 EDT 2011] net.sf.picard.analysis.CollectAlignmentSummaryMetrics MAX_INSERT_SIZE=100000 ADAPTER_SEQUENCE=[AATGATACGGCGACCACCGAGATCTACACTCTTTCCCTACACGACGCTCTTCCGATCT, AGATCGGAAGAGCTCGTATGCCGTCTTCTGCTTG, AATGATACGGCGACCACCGAGATCTACACTCTTTCCCTACACGACGCTCTTCCGATCT, AGATCGGAAGAGCGGTTCAGCAGGAATGCCGAGACCGATCTCGTATGCCGTCTTCTGCTTG, AATGATACGGCGACCACCGAGATCTACACTCTTTCCCTACACGACGCTCTTCCGATCT, AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNNNATCTCGTATGCCGTCTTCTGCTTG, IS_BISULFITE_SEQUENCED=false] INPUT=/export/tmp/tmp1-mt_l/database/files/000/dataset_2.dat OUTPUT=/udd/rerla/galaxy-central/database/job_working_directory/3/dataset_3_files/CollectAlignmentSummaryMetrics.metrics.txt REFERENCE_SEQUENCE=/udd/rerla/galaxy-central/database/job_working_directory/3/dataset_3_files/CollectAlignmentSummaryMetricsZJS8q6.fasta_fake.fasta ASSUME_SORTED=true TMP_DIR=/tmp VALIDATION_STRINGENCY=LENIENT IS_BISULFITE_SEQUENCED=false STOP_AFTER=0 VERBOSITY=INFO QUIET=false COMPRESSION_LEVEL=5 MAX_RECORDS_IN_RAM=500000 CREATE_INDEX=false CREATE_MD5_FILE=false
-WARNING 2011-05-11 23:16:24 SinglePassSamProgram File reports sort order 'queryname', assuming it's coordinate sorted anyway.
-[Wed May 11 23:16:24 EDT 2011] net.sf.picard.analysis.CollectAlignmentSummaryMetrics done.
-Runtime.totalMemory()=9109504
-
+INFO:root:## executing java -Xmx4g -jar /data/home/rlazarus/galaxy/tool-data/shared/jars/picard/CollectAlignmentSummaryMetrics.jar VALIDATION_STRINGENCY=LENIENT ASSUME_SORTED=true ADAPTER_SEQUENCE= IS_BISULFITE_SEQUENCED=false MAX_INSERT_SIZE=100000 OUTPUT=/data/home/rlazarus/galaxy/database/job_working_directory/3/dataset_3_files/CollectAlignmentSummaryMetrics.metrics.txt R=/data/home/rlazarus/galaxy/database/job_working_directory/3/dataset_3_files/CollectAlignmentSummaryMetricsfq2hit.fasta_fake.fasta TMP_DIR=/tmp INPUT=/data/tmp/tmpLLcl1w/database/files/000/dataset_2.dat returned status 0 and nothing on stderr
</pre><hr/>The freely available <a href="http://picard.sourceforge.net/command-line-overview.shtml">Picard software</a>
generated all outputs reported here running as a <a href="http://getgalaxy.org">Galaxy</a> tool</div></body></html>
diff -r 6ec2d7f4a64dcf6a1c49415bd8f40c8d4ca907c5 -r a807ed5389f4da39f509aa45e5baf7027ceb7a91 tools/picard/picard_wrapper.py
--- a/tools/picard/picard_wrapper.py
+++ b/tools/picard/picard_wrapper.py
@@ -125,14 +125,15 @@
tef.close()
stderrs = self.readLarge(temperr)
stdouts = self.readLarge(templog)
- if len(stderrs) > 0:
+ if rval > 0:
s = '## executing %s returned status %d and stderr: \n%s\n' % (cl,rval,stderrs)
+ stdouts = '%s\n%s' % (stdouts,stderrs)
else:
s = '## executing %s returned status %d and nothing on stderr\n' % (cl,rval)
logging.info(s)
os.unlink(templog) # always
os.unlink(temperr) # always
- return s, stdouts # sometimes this is an output
+ return s, stdouts, rval # sometimes s is an output
def runPic(self, jar, cl):
"""
@@ -141,8 +142,8 @@
runme = ['java -Xmx%s' % self.opts.maxjheap]
runme.append('-jar %s' % jar)
runme += cl
- s,stdout = self.runCL(cl=runme, output_dir=self.opts.outdir)
- return stdout
+ s,stdouts,rval = self.runCL(cl=runme, output_dir=self.opts.outdir)
+ return stdouts,rval
def samToBam(self,infile=None,outdir=None):
"""
@@ -150,8 +151,8 @@
"""
fd,tempbam = tempfile.mkstemp(dir=outdir,suffix='rgutilsTemp.bam')
cl = ['samtools view -h -b -S -o ',tempbam,infile]
- tlog,stdouts = self.runCL(cl,outdir)
- return tlog,tempbam
+ tlog,stdouts,rval = self.runCL(cl,outdir)
+ return tlog,tempbam,rval
#def bamToSam(self,infile=None,outdir=None):
# """
@@ -167,7 +168,7 @@
"""
print '## sortSam got infile=%s,outfile=%s,outdir=%s' % (infile,outfile,outdir)
cl = ['samtools sort',infile,outfile]
- tlog,stdouts = self.runCL(cl,outdir)
+ tlog,stdouts,rval = self.runCL(cl,outdir)
return tlog
def cleanup(self):
@@ -243,6 +244,9 @@
if len(pdflist) > 0: # assumes all pdfs come with thumbnail .jpgs
for p in pdflist:
imghref = '%s.jpg' % os.path.splitext(p)[0] # removes .pdf
+ mimghref = '%s-0.jpg' % os.path.splitext(p)[0] # multiple pages pdf -> multiple thumbnails without asking!
+ if mimghref in flist:
+ imghref=mimghref
res.append('<table cellpadding="10"><tr><td>\n')
res.append('<a href="%s"><img src="%s" title="Click image preview for a print quality PDF version" hspace="10" align="middle"></a>\n' % (p,imghref))
res.append('</tr></td></table>\n')
@@ -383,6 +387,8 @@
op.add_option('', '--taillimit', default="0")
op.add_option('', '--histwidth', default="0")
op.add_option('', '--minpct', default="0.01")
+ op.add_option('', '--malevel', default="")
+ op.add_option('', '--deviations', default="0.0")
# CollectAlignmentSummaryMetrics
op.add_option('', '--maxinsert', default="20")
op.add_option('', '--adaptors', action='append', type="string")
@@ -430,7 +436,8 @@
tmp_dir = opts.outdir
haveTempout = False # we use this where sam output is an option
-
+ rval = 0
+ stdouts = 'Not run yet'
# set ref and dict files to use (create if necessary)
ref_file_name = opts.ref
if opts.ref_file <> None:
@@ -453,7 +460,7 @@
pic.delme.append(dict_file_name)
pic.delme.append(ref_file_name)
pic.delme.append(tmp_ref_name)
- s = pic.runPic(jarpath, cl)
+ stdouts,rval = pic.runPic(jarpath, cl)
# run relevant command(s)
# define temporary output
@@ -486,7 +493,7 @@
cl.append('RGCN="%s"' % opts.rg_seq_center)
if opts.rg_desc:
cl.append('RGDS="%s"' % opts.rg_desc)
- pic.runPic(opts.jar, cl)
+ stdouts,rval = pic.runPic(opts.jar, cl)
haveTempout = True
elif pic.picname == 'BamIndexStats':
@@ -499,9 +506,9 @@
pic.delme.append(tmp_bam_name)
pic.delme.append(tmp_bai_name)
pic.delme.append(tmp_name)
- s = pic.runPic( opts.jar, cl )
+ stdouts,rval = pic.runPic( opts.jar, cl )
f = open(pic.metricsOut,'a')
- f.write(s) # got this on stdout from runCl
+ f.write(stdouts) # got this on stdout from runCl
f.write('\n')
f.close()
doTranspose = False # but not transposed
@@ -519,7 +526,7 @@
cl.append('READ_NAME_REGEX="%s"' % opts.readregex)
if float(opts.optdupdist) > 0:
cl.append('OPTICAL_DUPLICATE_PIXEL_DISTANCE=%s' % opts.optdupdist)
- pic.runPic(opts.jar,cl)
+ stdouts,rval = pic.runPic(opts.jar, cl)
elif pic.picname == 'CollectAlignmentSummaryMetrics':
# Why do we do this fakefasta thing? Because we need NO fai to be available or picard barfs unless it has the same length as the input data.
@@ -532,7 +539,7 @@
info = s
shutil.copy(ref_file_name,fakefasta)
pic.delme.append(fakefasta)
- cl.append('ASSUME_SORTED=%s' % opts.assumesorted)
+ cl.append('ASSUME_SORTED=true')
adaptorseqs = ''.join([' ADAPTER_SEQUENCE=%s' % x for x in opts.adaptors])
cl.append(adaptorseqs)
cl.append('IS_BISULFITE_SEQUENCED=%s' % opts.bisulphite)
@@ -541,13 +548,24 @@
cl.append('R=%s' % fakefasta)
cl.append('TMP_DIR=%s' % opts.tmpdir)
if not opts.assumesorted.lower() == 'true': # we need to sort input
- fakeinput = '%s.sorted' % opts.input
- s = pic.sortSam(opts.input, fakeinput, opts.outdir)
- pic.delme.append(fakeinput)
- cl.append('INPUT=%s' % fakeinput)
+ sortedfile = '%s.sorted' % os.path.basename(opts.input)
+ if opts.datatype == 'sam': # need to work with a bam
+ tlog,tempbam,rval = pic.samToBam(opts.input,opts.outdir)
+ pic.delme.append(tempbam)
+ try:
+ tlog = pic.sortSam(tempbam,sortedfile,opts.outdir)
+ except:
+ print '## exception on sorting sam file %s' % opts.input
+ else: # is already bam
+ try:
+ tlog = pic.sortSam(opts.input,sortedfile,opts.outdir)
+ except: # bug - [bam_sort_core] not being ignored - TODO fixme
+ print '## exception on sorting bam file %s' % opts.input
+ cl.append('INPUT=%s.bam' % os.path.abspath(os.path.join(opts.outdir,sortedfile)))
+ pic.delme.append(os.path.join(opts.outdir,sortedfile))
else:
cl.append('INPUT=%s' % os.path.abspath(opts.input))
- pic.runPic(opts.jar,cl)
+ stdouts,rval = pic.runPic(opts.jar, cl)
elif pic.picname == 'CollectGcBiasMetrics':
@@ -575,10 +593,10 @@
cl.append('TMP_DIR=%s' % opts.tmpdir)
cl.append('CHART_OUTPUT=%s' % temppdf)
cl.append('SUMMARY_OUTPUT=%s' % pic.metricsOut)
- pic.runPic(opts.jar,cl)
+ stdouts,rval = pic.runPic(opts.jar, cl)
if os.path.isfile(temppdf):
cl2 = ['convert','-resize x400',temppdf,os.path.join(opts.outdir,jpgname)] # make the jpg for fixPicardOutputs to find
- s,stdouts = pic.runCL(cl=cl2,output_dir=opts.outdir)
+ s,stdouts,rval = pic.runCL(cl=cl2,output_dir=opts.outdir)
else:
s='### runGC: Unable to find pdf %s - please check the log for the causal problem\n' % temppdf
lf = open(pic.log_filename,'a')
@@ -587,29 +605,39 @@
lf.close()
elif pic.picname == 'CollectInsertSizeMetrics':
+ """ <command interpreter="python">
+ picard_wrapper.py -i "$input_file" -n "$out_prefix" --tmpdir "${__new_file_path__}" --deviations "$deviations"
+ --histwidth "$histWidth" --minpct "$minPct" --malevel "$malevel"
+ -j "${GALAXY_DATA_INDEX_DIR}/shared/jars/picard/CollectInsertSizeMetrics.jar" -d "$html_file.files_path" -t "$html_file"
+ </command>
+ """
isPDF = 'InsertSizeHist.pdf'
pdfpath = os.path.join(opts.outdir,isPDF)
histpdf = 'InsertSizeHist.pdf'
cl.append('I=%s' % opts.input)
cl.append('O=%s' % pic.metricsOut)
cl.append('HISTOGRAM_FILE=%s' % histpdf)
- if opts.taillimit <> '0':
- cl.append('TAIL_LIMIT=%s' % opts.taillimit)
+ #if opts.taillimit <> '0': # this was deprecated although still mentioned in the docs at 1.56
+ # cl.append('TAIL_LIMIT=%s' % opts.taillimit)
if opts.histwidth <> '0':
cl.append('HISTOGRAM_WIDTH=%s' % opts.histwidth)
if float( opts.minpct) > 0.0:
cl.append('MINIMUM_PCT=%s' % opts.minpct)
- pic.runPic(opts.jar,cl)
+ if float(opts.deviations) > 0.0:
+ cl.append('DEVIATIONS=%s' % opts.deviations)
+ if opts.malevel.strip():
+ malevels = ['METRIC_ACCUMULATION_LEVEL=%s' % x for x in opts.malevel.split(',')]
+ cl.append(' '.join(malevels))
+ stdouts,rval = pic.runPic(opts.jar, cl)
if os.path.exists(pdfpath): # automake thumbnail - will be added to html
cl2 = ['mogrify', '-format jpg -resize x400 %s' % pdfpath]
- s,stdouts = pic.runCL(cl=cl2,output_dir=opts.outdir)
+ pic.runCL(cl=cl2,output_dir=opts.outdir)
else:
s = 'Unable to find expected pdf file %s<br/>\n' % pdfpath
s += 'This <b>always happens if single ended data was provided</b> to this tool,\n'
s += 'so please double check that your input data really is paired-end NGS data.<br/>\n'
s += 'If your input was paired data this may be a bug worth reporting to the galaxy-bugs list\n<br/>'
- stdouts = ''
- logging.info(s)
+ logging.info(s)
if len(stdouts) > 0:
logging.info(stdouts)
@@ -627,13 +655,13 @@
cl.append('READ_NAME_REGEX="%s"' % opts.readregex)
# maximum offset between two duplicate clusters
cl.append('OPTICAL_DUPLICATE_PIXEL_DISTANCE=%s' % opts.optdupdist)
- pic.runPic(opts.jar, cl)
+ stdouts,rval = pic.runPic(opts.jar, cl)
elif pic.picname == 'FixMateInformation':
cl.append('I=%s' % opts.input)
cl.append('O=%s' % tempout)
cl.append('SORT_ORDER=%s' % opts.sortorder)
- pic.runPic(opts.jar,cl)
+ stdouts,rval = pic.runPic(opts.jar,cl)
haveTempout = True
elif pic.picname == 'ReorderSam':
@@ -649,14 +677,14 @@
# contig length discordance
if opts.allow_contig_len_discord == 'true':
cl.append('ALLOW_CONTIG_LENGTH_DISCORDANCE=true')
- pic.runPic(opts.jar, cl)
+ stdouts,rval = pic.runPic(opts.jar, cl)
haveTempout = True
elif pic.picname == 'ReplaceSamHeader':
cl.append('INPUT=%s' % opts.input)
cl.append('OUTPUT=%s' % tempout)
cl.append('HEADER=%s' % opts.header_file)
- pic.runPic(opts.jar, cl)
+ stdouts,rval = pic.runPic(opts.jar, cl)
haveTempout = True
elif pic.picname == 'CalculateHsMetrics':
@@ -673,7 +701,7 @@
cl.append('INPUT=%s' % os.path.abspath(opts.input))
cl.append('OUTPUT=%s' % pic.metricsOut)
cl.append('TMP_DIR=%s' % opts.tmpdir)
- pic.runPic(opts.jar,cl)
+ stdouts,rval = pic.runPic(opts.jar,cl)
elif pic.picname == 'ValidateSamFile':
import pysam
@@ -682,7 +710,7 @@
stf = open(pic.log_filename,'w')
tlog = None
if opts.datatype == 'sam': # need to work with a bam
- tlog,tempbam = pic.samToBam(opts.input,opts.outdir)
+ tlog,tempbam,rval = pic.samToBam(opts.input,opts.outdir)
try:
tlog = pic.sortSam(tempbam,sortedfile,opts.outdir)
except:
@@ -709,7 +737,7 @@
cl.append('IS_BISULFITE_SEQUENCED=true')
if opts.ref <> None or opts.ref_file <> None:
cl.append('R=%s' % ref_file_name)
- pic.runPic(opts.jar,cl)
+ stdouts,rval = pic.runPic(opts.jar,cl)
if opts.datatype == 'sam':
pic.delme.append(tempbam)
newsam = opts.output
@@ -725,10 +753,12 @@
if haveTempout:
# Some Picard tools produced a potentially intermediate bam file.
# Either just move to final location or create sam
- shutil.move(tempout, os.path.abspath(opts.output))
-
+ if os.path.exists(tempout):
+ shutil.move(tempout, os.path.abspath(opts.output))
if opts.htmlout <> None or doFix: # return a pretty html page
pic.fixPicardOutputs(transpose=doTranspose,maxloglines=maxloglines)
-
+ if rval <> 0:
+ print >> sys.stderr, '## exit code=%d; stdout=%s' % (rval,stdouts)
+ # signal failure
if __name__=="__main__": __main__()
diff -r 6ec2d7f4a64dcf6a1c49415bd8f40c8d4ca907c5 -r a807ed5389f4da39f509aa45e5baf7027ceb7a91 tools/picard/rgPicardASMetrics.xml
--- a/tools/picard/rgPicardASMetrics.xml
+++ b/tools/picard/rgPicardASMetrics.xml
@@ -1,7 +1,7 @@
<tool name="SAM/BAM Alignment Summary Metrics" id="PicardASMetrics" version="0.03.1"><command interpreter="python">
picard_wrapper.py -i "$input_file" -d "$html_file.files_path" -t "$html_file"
- --assumesorted "$sorted" -b "$bisulphite" --adaptors "$adaptors" --maxinsert "$maxinsert" -n "$out_prefix"
+ --assumesorted "$sorted" -b "$bisulphite" --adaptors "$adaptors" --maxinsert "$maxinsert" -n "$out_prefix" --datatype "$input_file.ext"
-j ${GALAXY_DATA_INDEX_DIR}/shared/jars/picard/CollectAlignmentSummaryMetrics.jar
#if $genomeSource.refGenomeSource == "history":
--ref-file "$genomeSource.ownFile"
diff -r 6ec2d7f4a64dcf6a1c49415bd8f40c8d4ca907c5 -r a807ed5389f4da39f509aa45e5baf7027ceb7a91 tools/picard/rgPicardInsertSize.xml
--- a/tools/picard/rgPicardInsertSize.xml
+++ b/tools/picard/rgPicardInsertSize.xml
@@ -1,9 +1,9 @@
-<tool name="Insertion size metrics" id="PicardInsertSize" version="0.3.1">
+<tool name="Insertion size metrics" id="PicardInsertSize" version="0.3.2"><description>for PAIRED data</description><requirements><requirement type="package">picard</requirement></requirements><command interpreter="python">
- picard_wrapper.py -i "$input_file" -n "$out_prefix" --tmpdir "${__new_file_path__}" --taillimit "$tailLimit"
- --histwidth "$histWidth" --minpct "$minPct"
+ picard_wrapper.py -i "$input_file" -n "$out_prefix" --tmpdir "${__new_file_path__}" --deviations "$deviations"
+ --histwidth "$histWidth" --minpct "$minPct" --malevel "$malevel"
-j "${GALAXY_DATA_INDEX_DIR}/shared/jars/picard/CollectInsertSizeMetrics.jar" -d "$html_file.files_path" -t "$html_file"
</command><inputs>
@@ -11,15 +11,22 @@
help="If empty, upload or import a SAM/BAM dataset."/><param name="out_prefix" value="Insertion size metrics" type="text"
label="Title for the output file" help="Use this remind you what the job was for" size="120" />
- <param name="tailLimit" value="10000" type="integer"
- label="Tail limit" size="5"
- help="When calculating mean and stdev stop when the bins in the tail of the distribution contain fewer than mode/TAIL_LIMIT items" />
+ <param name="deviations" value="10.0" type="float"
+ label="Deviations" size="5"
+ help="See Picard documentation: Generate mean, sd and plots by trimming the data down to MEDIAN + DEVIATIONS*MEDIAN_ABSOLUTE_DEVIATION" /><param name="histWidth" value="0" type="integer"
label="Histogram width" size="5"
- help="Explicitly sets the histogram width, overriding the TAIL_LIMIT option - leave 0 to ignore" />
- <param name="minPct" value="0.01" type="float"
+ help="Explicitly sets the histogram width option - leave 0 to ignore" />
+ <param name="minPct" value="0.05" type="float"
label="Minimum percentage" size="5"
help="Discard any data categories (out of FR, TANDEM, RF) that have fewer than this percentage of overall reads" />
+ <param name="malevel" value="0" type="select" multiple="true" label="Metric Accumulation Level"
+ help="Level(s) at which metrics will be accumulated">
+ <option value="ALL_READS" selected="true">All reads (default)</option>
+ <option value="SAMPLE" default="true">Sample</option>
+ <option value="LIBRARY" default="true">Library</option>
+ <option value="READ_GROUP" default="true">Read group</option>
+ </param></inputs><outputs><data format="html" name="html_file" label="InsertSize_${out_prefix}.html"/>
@@ -28,9 +35,10 @@
<test><param name="input_file" value="picard_input_tiny.sam" /><param name="out_prefix" value="Insertion size metrics" />
- <param name="tailLimit" value="10000" />
+ <param name="deviations" value="10.0" /><param name="histWidth" value="0" /><param name="minPct" value="0.01" />
+ <param name="malevel" value="ALL_READS" /><output name="html_file" file="picard_output_insertsize_tinysam.html" ftype="html" compare="contains" lines_diff="40" /></test></tests>
https://bitbucket.org/galaxy/galaxy-central/changeset/1da4a4a928fb/
changeset: 1da4a4a928fb
user: fubar
date: 2011-11-11 02:01:07
summary: Some minor additional cleanup to the picard suite
affected #: 1 file
diff -r a807ed5389f4da39f509aa45e5baf7027ceb7a91 -r 1da4a4a928fb46a7725375a2cb0baa18f32c44b4 tools/picard/picard_wrapper.py
--- a/tools/picard/picard_wrapper.py
+++ b/tools/picard/picard_wrapper.py
@@ -102,7 +102,7 @@
pass
tmp.close()
except Exception, e:
- stop_err( 'Error : %s' % str( e ) )
+ stop_err( 'Read Large Exception : %s' % str( e ) )
return s
def runCL(self,cl=None,output_dir=None):
@@ -154,15 +154,6 @@
tlog,stdouts,rval = self.runCL(cl,outdir)
return tlog,tempbam,rval
- #def bamToSam(self,infile=None,outdir=None):
- # """
- # use samtools view to convert bam to sam
- # """
- # fd,tempsam = tempfile.mkstemp(dir=outdir,suffix='rgutilsTemp.sam')
- # cl = ['samtools view -h -o ',tempsam,infile]
- # tlog,stdouts = self.runCL(cl,outdir)
- # return tlog,tempsam
-
def sortSam(self, infile=None,outfile=None,outdir=None):
"""
"""
@@ -243,10 +234,11 @@
pdflist = [x for x in flist if os.path.splitext(x)[-1].lower() == '.pdf']
if len(pdflist) > 0: # assumes all pdfs come with thumbnail .jpgs
for p in pdflist:
- imghref = '%s.jpg' % os.path.splitext(p)[0] # removes .pdf
- mimghref = '%s-0.jpg' % os.path.splitext(p)[0] # multiple pages pdf -> multiple thumbnails without asking!
+ pbase = os.path.splitext(p)[0] # removes .pdf
+ imghref = '%s.jpg' % pbase
+ mimghref = '%s-0.jpg' % pbase # multiple pages pdf -> multiple thumbnails without asking!
if mimghref in flist:
- imghref=mimghref
+ imghref=mimghref # only one for thumbnail...it's a multi page pdf
res.append('<table cellpadding="10"><tr><td>\n')
res.append('<a href="%s"><img src="%s" title="Click image preview for a print quality PDF version" hspace="10" align="middle"></a>\n' % (p,imghref))
res.append('</tr></td></table>\n')
@@ -387,7 +379,7 @@
op.add_option('', '--taillimit', default="0")
op.add_option('', '--histwidth', default="0")
op.add_option('', '--minpct', default="0.01")
- op.add_option('', '--malevel', default="")
+ op.add_option('', '--malevel', action='append', type="string")
op.add_option('', '--deviations', default="0.0")
# CollectAlignmentSummaryMetrics
op.add_option('', '--maxinsert', default="20")
@@ -529,13 +521,14 @@
stdouts,rval = pic.runPic(opts.jar, cl)
elif pic.picname == 'CollectAlignmentSummaryMetrics':
- # Why do we do this fakefasta thing? Because we need NO fai to be available or picard barfs unless it has the same length as the input data.
+ # Why do we do this fakefasta thing?
+ # Because we need NO fai to be available or picard barfs unless it matches the input data.
# why? Dunno Seems to work without complaining if the .bai file is AWOL....
fakefasta = os.path.join(opts.outdir,'%s_fake.fasta' % os.path.basename(ref_file_name))
try:
os.symlink(ref_file_name,fakefasta)
except:
- s = '## unable to symlink %s to %s - different devices? May need to replace with shutil.copy'
+ s = '## unable to symlink %s to %s - different devices? Will shutil.copy'
info = s
shutil.copy(ref_file_name,fakefasta)
pic.delme.append(fakefasta)
@@ -550,7 +543,7 @@
if not opts.assumesorted.lower() == 'true': # we need to sort input
sortedfile = '%s.sorted' % os.path.basename(opts.input)
if opts.datatype == 'sam': # need to work with a bam
- tlog,tempbam,rval = pic.samToBam(opts.input,opts.outdir)
+ tlog,tempbam,trval = pic.samToBam(opts.input,opts.outdir)
pic.delme.append(tempbam)
try:
tlog = pic.sortSam(tempbam,sortedfile,opts.outdir)
@@ -559,8 +552,8 @@
else: # is already bam
try:
tlog = pic.sortSam(opts.input,sortedfile,opts.outdir)
- except: # bug - [bam_sort_core] not being ignored - TODO fixme
- print '## exception on sorting bam file %s' % opts.input
+ except : # bug - [bam_sort_core] not being ignored - TODO fixme
+ print '## exception %s on sorting bam file %s' % (sys.exc_info()[0],opts.input)
cl.append('INPUT=%s.bam' % os.path.abspath(os.path.join(opts.outdir,sortedfile)))
pic.delme.append(os.path.join(opts.outdir,sortedfile))
else:
@@ -625,8 +618,8 @@
cl.append('MINIMUM_PCT=%s' % opts.minpct)
if float(opts.deviations) > 0.0:
cl.append('DEVIATIONS=%s' % opts.deviations)
- if opts.malevel.strip():
- malevels = ['METRIC_ACCUMULATION_LEVEL=%s' % x for x in opts.malevel.split(',')]
+ if opts.malevel:
+ malevels = ['METRIC_ACCUMULATION_LEVEL=%s' % x for x in opts.malevel]
cl.append(' '.join(malevels))
stdouts,rval = pic.runPic(opts.jar, cl)
if os.path.exists(pdfpath): # automake thumbnail - will be added to html
https://bitbucket.org/galaxy/galaxy-central/changeset/0474dfc4d30f/
changeset: 0474dfc4d30f
user: fubar
date: 2011-11-11 02:45:25
summary: branch merge
affected #: 14 files
diff -r 1da4a4a928fb46a7725375a2cb0baa18f32c44b4 -r 0474dfc4d30f0d77aac42f1a0a8355998f213bfd lib/galaxy/web/base/controller.py
--- a/lib/galaxy/web/base/controller.py
+++ b/lib/galaxy/web/base/controller.py
@@ -19,7 +19,6 @@
from Cheetah.Template import Template
-
pkg_resources.require( 'elementtree' )
from elementtree import ElementTree, ElementInclude
from elementtree.ElementTree import Element
@@ -1298,6 +1297,9 @@
group_list_grid = None
quota_list_grid = None
repository_list_grid = None
+ delete_operation = None
+ undelete_operation = None
+ purge_operation = None
@web.expose
@web.require_admin
@@ -2217,6 +2219,13 @@
**kwd ) )
elif operation == "manage roles and groups":
return self.manage_roles_and_groups_for_user( trans, **kwd )
+ if trans.app.config.allow_user_deletion:
+ if self.delete_operation not in self.user_list_grid.operations:
+ self.user_list_grid.operations.append( self.delete_operation )
+ if self.undelete_operation not in self.user_list_grid.operations:
+ self.user_list_grid.operations.append( self.undelete_operation )
+ if self.purge_operation not in self.user_list_grid.operations:
+ self.user_list_grid.operations.append( self.purge_operation )
# Render the list view
return self.user_list_grid( trans, **kwd )
@web.expose
diff -r 1da4a4a928fb46a7725375a2cb0baa18f32c44b4 -r 0474dfc4d30f0d77aac42f1a0a8355998f213bfd lib/galaxy/web/controllers/admin.py
--- a/lib/galaxy/web/controllers/admin.py
+++ b/lib/galaxy/web/controllers/admin.py
@@ -93,11 +93,6 @@
allow_popup=False,
url_args=dict( webapp="galaxy", action="reset_user_password" ) )
]
- #TODO: enhance to account for trans.app.config.allow_user_deletion here so that we can eliminate these operations if
- # the setting is False
- #operations.append( grids.GridOperation( "Delete", condition=( lambda item: not item.deleted ), allow_multiple=True ) )
- #operations.append( grids.GridOperation( "Undelete", condition=( lambda item: item.deleted and not item.purged ), allow_multiple=True ) )
- #operations.append( grids.GridOperation( "Purge", condition=( lambda item: item.deleted and not item.purged ), allow_multiple=True ) )
standard_filters = [
grids.GridColumnFilter( "Active", args=dict( deleted=False ) ),
grids.GridColumnFilter( "Deleted", args=dict( deleted=True, purged=False ) ),
@@ -443,6 +438,9 @@
group_list_grid = GroupListGrid()
quota_list_grid = QuotaListGrid()
repository_list_grid = RepositoryListGrid()
+ delete_operation = grids.GridOperation( "Delete", condition=( lambda item: not item.deleted ), allow_multiple=True )
+ undelete_operation = grids.GridOperation( "Undelete", condition=( lambda item: item.deleted and not item.purged ), allow_multiple=True )
+ purge_operation = grids.GridOperation( "Purge", condition=( lambda item: item.deleted and not item.purged ), allow_multiple=True )
@web.expose
@web.require_admin
diff -r 1da4a4a928fb46a7725375a2cb0baa18f32c44b4 -r 0474dfc4d30f0d77aac42f1a0a8355998f213bfd lib/galaxy/webapps/community/config.py
--- a/lib/galaxy/webapps/community/config.py
+++ b/lib/galaxy/webapps/community/config.py
@@ -61,6 +61,7 @@
self.remote_user_logout_href = kwargs.get( "remote_user_logout_href", None )
self.require_login = string_as_bool( kwargs.get( "require_login", "False" ) )
self.allow_user_creation = string_as_bool( kwargs.get( "allow_user_creation", "True" ) )
+ self.allow_user_deletion = string_as_bool( kwargs.get( "allow_user_deletion", "False" ) )
self.enable_openid = string_as_bool( kwargs.get( 'enable_openid', False ) )
self.template_path = resolve_path( kwargs.get( "template_path", "templates" ), self.root )
self.template_cache = resolve_path( kwargs.get( "template_cache_path", "database/compiled_templates/community" ), self.root )
diff -r 1da4a4a928fb46a7725375a2cb0baa18f32c44b4 -r 0474dfc4d30f0d77aac42f1a0a8355998f213bfd lib/galaxy/webapps/demo_sequencer/config.py
--- a/lib/galaxy/webapps/demo_sequencer/config.py
+++ b/lib/galaxy/webapps/demo_sequencer/config.py
@@ -40,6 +40,7 @@
self.remote_user_logout_href = kwargs.get( "remote_user_logout_href", None )
self.require_login = string_as_bool( kwargs.get( "require_login", "False" ) )
self.allow_user_creation = string_as_bool( kwargs.get( "allow_user_creation", "True" ) )
+ self.allow_user_deletion = string_as_bool( kwargs.get( "allow_user_deletion", "False" ) )
self.template_path = resolve_path( kwargs.get( "template_path", "templates" ), self.root )
self.template_cache = resolve_path( kwargs.get( "template_cache_path", "database/compiled_templates/demo_sequencer" ), self.root )
self.admin_users = kwargs.get( "admin_users", "" )
diff -r 1da4a4a928fb46a7725375a2cb0baa18f32c44b4 -r 0474dfc4d30f0d77aac42f1a0a8355998f213bfd lib/galaxy/webapps/reports/config.py
--- a/lib/galaxy/webapps/reports/config.py
+++ b/lib/galaxy/webapps/reports/config.py
@@ -31,6 +31,8 @@
self.template_path = resolve_path( kwargs.get( "template_path", "templates" ), self.root )
self.template_cache = resolve_path( kwargs.get( "template_cache_path", "database/compiled_templates/reports" ), self.root )
self.sendmail_path = kwargs.get('sendmail_path',"/usr/sbin/sendmail")
+ self.allow_user_creation = string_as_bool( kwargs.get( "allow_user_creation", "True" ) )
+ self.allow_user_deletion = string_as_bool( kwargs.get( "allow_user_deletion", "False" ) )
self.log_actions = string_as_bool( kwargs.get( 'log_actions', 'False' ) )
self.brand = kwargs.get( 'brand', None )
self.wiki_url = kwargs.get( 'wiki_url', 'http://wiki.g2.bx.psu.edu/FrontPage' )
diff -r 1da4a4a928fb46a7725375a2cb0baa18f32c44b4 -r 0474dfc4d30f0d77aac42f1a0a8355998f213bfd static/images/fugue/chevron-expand-bw.png
Binary file static/images/fugue/chevron-expand-bw.png has changed
diff -r 1da4a4a928fb46a7725375a2cb0baa18f32c44b4 -r 0474dfc4d30f0d77aac42f1a0a8355998f213bfd static/images/fugue/toggle-bw.png
Binary file static/images/fugue/toggle-bw.png has changed
diff -r 1da4a4a928fb46a7725375a2cb0baa18f32c44b4 -r 0474dfc4d30f0d77aac42f1a0a8355998f213bfd static/images/fugue/toggle-expand-bw.png
Binary file static/images/fugue/toggle-expand-bw.png has changed
diff -r 1da4a4a928fb46a7725375a2cb0baa18f32c44b4 -r 0474dfc4d30f0d77aac42f1a0a8355998f213bfd static/june_2007_style/base.css.tmpl
--- a/static/june_2007_style/base.css.tmpl
+++ b/static/june_2007_style/base.css.tmpl
@@ -865,10 +865,6 @@
-sprite-group: fugue;
-sprite-image: fugue/toggle-expand.png;
}
-.icon-button.toggle {
- -sprite-group: fugue;
- -sprite-image: fugue/toggle.png;
-}
.icon-button.toggle-contract {
-sprite-group: fugue;
-sprite-image: fugue/toggle.png;
diff -r 1da4a4a928fb46a7725375a2cb0baa18f32c44b4 -r 0474dfc4d30f0d77aac42f1a0a8355998f213bfd static/june_2007_style/blue/base.css
--- a/static/june_2007_style/blue/base.css
+++ b/static/june_2007_style/blue/base.css
@@ -151,9 +151,10 @@
.icon-button.tag{background:url(fugue.png) no-repeat 0px -0px;}
.icon-button.tags{background:url(fugue.png) no-repeat 0px -26px;}
.icon-button.tag--plus{background:url(fugue.png) no-repeat 0px -52px;}
-.icon-button.toggle-expand{background:url(fugue.png) no-repeat 0px -78px;}
-.icon-button.toggle{background:url(fugue.png) no-repeat 0px -104px;}
-.icon-button.toggle-contract{background:url(fugue.png) no-repeat 0px -104px;}
+.icon-button.toggle-expand{background:transparent url(../images/fugue/toggle-expand-bw.png) no-repeat;}
+.icon-button.toggle-expand:hover{background:url(fugue.png) no-repeat 0px -78px;}
+.icon-button.toggle-contract{background:transparent url(../images/fugue/toggle-bw.png) no-repeat;}
+.icon-button.toggle-contract:hover{background:url(fugue.png) no-repeat 0px -104px;}
.icon-button.arrow-circle{background:url(fugue.png) no-repeat 0px -130px;}
.icon-button.chevron{background:url(fugue.png) no-repeat 0px -156px;}
.icon-button.bug{background:url(fugue.png) no-repeat 0px -182px;}
diff -r 1da4a4a928fb46a7725375a2cb0baa18f32c44b4 -r 0474dfc4d30f0d77aac42f1a0a8355998f213bfd static/june_2007_style/blue/trackster.css
--- a/static/june_2007_style/blue/trackster.css
+++ b/static/june_2007_style/blue/trackster.css
@@ -56,7 +56,9 @@
.tool-name{font-size:110%;font-weight:bold;}
.param-row{margin-top:0.2em;margin-left:1em;}
.param-label{float:left;font-weight:bold;padding-top:0.2em;}
-.menu-button{padding:0px 4px 0px 4px;}
+.menu-button{margin:0px 4px 0px 4px;}
+.chevron-expand{background:transparent url(../images/fugue/chevron-expand-bw.png) no-repeat;}
+.chevron-expand:hover{background:transparent url(../images/fugue/chevron-expand.png) no-repeat;}
.settings-icon{background:transparent url(../images/fugue/gear-bw.png) no-repeat;}
.settings-icon:hover{background:transparent url(../images/fugue/gear.png) no-repeat;}
.overview-icon{background:transparent url(../images/fugue/application-dock-270-bw.png) no-repeat;}
diff -r 1da4a4a928fb46a7725375a2cb0baa18f32c44b4 -r 0474dfc4d30f0d77aac42f1a0a8355998f213bfd static/june_2007_style/trackster.css.tmpl
--- a/static/june_2007_style/trackster.css.tmpl
+++ b/static/june_2007_style/trackster.css.tmpl
@@ -295,7 +295,13 @@
padding-top: 0.2em;
}
.menu-button {
- padding: 0px 4px 0px 4px;
+ margin: 0px 4px 0px 4px;
+}
+.chevron-expand {
+ background: transparent url(../images/fugue/chevron-expand-bw.png) no-repeat;
+}
+.chevron-expand:hover {
+ background:transparent url(../images/fugue/chevron-expand.png) no-repeat;
}
.settings-icon {
background: transparent url(../images/fugue/gear-bw.png) no-repeat;
diff -r 1da4a4a928fb46a7725375a2cb0baa18f32c44b4 -r 0474dfc4d30f0d77aac42f1a0a8355998f213bfd static/scripts/trackster.js
--- a/static/scripts/trackster.js
+++ b/static/scripts/trackster.js
@@ -2381,16 +2381,18 @@
// Create and initialize track header and icons.
if (show_header) {
- this.header_div = $("<div class='track-header' />").appendTo(this.container_div);
+ this.header_div = $("<div class='track-header'/>").appendTo(this.container_div);
if (this.view.editor) { this.drag_div = $("<div/>").addClass(this.drag_handle_class).appendTo(this.header_div); }
this.name_div = $("<div/>").addClass("track-name").appendTo(this.header_div).text(this.name)
.attr( "id", this.name.replace(/\s+/g,'-').replace(/[^a-zA-Z0-9\-]/g,'').toLowerCase() );
this.icons_div = $("<div/>").css("float", "left").appendTo(this.header_div).hide();
// Track icons.
+ this.mode_icon = $("<a/>").attr("href", "javascript:void(0);").attr("title", "Set display mode")
+ .addClass("icon-button chevron-expand").tipsy( {gravity: 's'} ).appendTo(this.icons_div);
this.toggle_icon = $("<a/>").attr("href", "javascript:void(0);").attr("title", "Hide/show track content")
- .addClass("icon-button toggle").tipsy( {gravity: 's'} )
- .appendTo(this.icons_div);
+ .addClass("icon-button toggle-contract").tipsy( {gravity: 's'} )
+ .appendTo(this.icons_div);
this.settings_icon = $("<a/>").attr("href", "javascript:void(0);").attr("title", "Edit settings")
.addClass("icon-button settings-icon").tipsy( {gravity: 's'} )
.appendTo(this.icons_div);
@@ -2407,21 +2409,42 @@
.addClass("icon-button remove-icon").tipsy( {gravity: 's'} )
.appendTo(this.icons_div);
var track = this;
-
+
// Suppress double clicks in header so that they do not impact viz.
this.header_div.dblclick( function(e) { e.stopPropagation(); } );
+
+ // Set up behavior for modes popup.
+ if (track.display_modes !== undefined) {
+ var init_mode = (track.config && track.config.values['mode'] ?
+ track.config.values['mode'] : track.display_modes[0]);
+ track.mode = init_mode;
+ this.mode_icon.attr("title", "Set display mode (now: " + track.mode + ")");
+
+ var mode_mapping = {};
+ for (var i = 0, len = track.display_modes.length; i < len; i++) {
+ var mode = track.display_modes[i];
+ mode_mapping[mode] = function(mode) {
+ return function() {
+ track.change_mode(mode);
+ // HACK: the popup menu messes with the track's hover event, so manually show/hide
+ // icons div for now.
+ track.icons_div.show();
+ track.container_div.mouseleave(function() { track.icons_div.hide(); } ); };
+ }(mode);
+ }
+
+ make_popupmenu(this.mode_icon, mode_mapping);
+ }
- // Toggle icon hides or shows the track content
+ // Toggle icon hides or shows the track content.
this.toggle_icon.click( function() {
if ( track.content_visible ) {
- track.toggle_icon.addClass("toggle-expand").removeClass("toggle");
+ track.toggle_icon.addClass("toggle-expand").removeClass("toggle-contract");
track.hide_contents();
- track.mode_div.hide();
track.content_visible = false;
} else {
- track.toggle_icon.addClass("toggle").removeClass("toggle-expand");
+ track.toggle_icon.addClass("toggle-contract").removeClass("toggle-expand");
track.content_visible = true;
- track.mode_div.show();
track.show_contents();
}
});
@@ -2481,35 +2504,12 @@
$(".tipsy").remove();
track.remove();
});
+
+ // Show icons when users is hovering over track.
+ this.container_div.hover( function() { track.icons_div.show(); }, function() { track.icons_div.hide(); } );
- // Set up behavior for modes popup.
- if (track.display_modes !== undefined) {
- if (track.mode_div === undefined) {
- track.mode_div = $("<div class='right-float menubutton popup' />").appendTo(track.header_div);
- var init_mode = (track.config && track.config.values['mode'] ?
- track.config.values['mode'] : track.display_modes[0]);
- track.mode = init_mode;
- track.mode_div.text(init_mode);
-
- var mode_mapping = {};
- for (var i = 0, len = track.display_modes.length; i < len; i++) {
- var mode = track.display_modes[i];
- mode_mapping[mode] = function(mode) {
- return function() { track.change_mode(mode); };
- }(mode);
- }
- make_popupmenu(track.mode_div, mode_mapping);
- } else {
- track.mode_div.hide();
- }
-
- this.header_div.append( $("<div/>").css("clear", "both") );
-
- // Set up config icon.
-
- // Show icons when users is hovering over track.
- this.container_div.hover( function() { track.icons_div.show(); }, function() { track.icons_div.hide(); } );
- }
+ // Needed for floating elts in header.
+ $("<div style='clear: both'/>").appendTo(this.container_div);
}
//
@@ -2696,12 +2696,12 @@
*/
change_mode: function(name) {
var track = this;
- track.mode_div.text(name);
// TODO: is it necessary to store the mode in two places (.mode and track_config)?
track.mode = name;
track.config.values['mode'] = name;
track.tile_cache.clear();
track.request_draw();
+ this.mode_icon.attr("title", "Set display mode (now: " + track.mode + ")");
return track;
},
/**
@@ -3405,13 +3405,14 @@
}
},
update_auto_mode: function( mode ) {
+ var mode;
if ( this.mode == "Auto" ) {
if ( mode == "no_detail" ) {
mode = "feature spans";
} else if ( mode == "summary_tree" ) {
mode = "coverage histogram";
}
- this.mode_div.text( "Auto (" + mode + ")" );
+ this.mode_icon.attr("title", "Set display mode (now: Auto/" + mode + ")");
}
},
/**
diff -r 1da4a4a928fb46a7725375a2cb0baa18f32c44b4 -r 0474dfc4d30f0d77aac42f1a0a8355998f213bfd tools/picard/picard_wrapper.py
--- a/tools/picard/picard_wrapper.py
+++ b/tools/picard/picard_wrapper.py
@@ -379,11 +379,11 @@
op.add_option('', '--taillimit', default="0")
op.add_option('', '--histwidth', default="0")
op.add_option('', '--minpct', default="0.01")
- op.add_option('', '--malevel', action='append', type="string")
+ op.add_option('', '--malevel', default='')
op.add_option('', '--deviations', default="0.0")
# CollectAlignmentSummaryMetrics
op.add_option('', '--maxinsert', default="20")
- op.add_option('', '--adaptors', action='append', type="string")
+ op.add_option('', '--adaptors', default='')
# FixMateInformation and validate
# CollectGcBiasMetrics
op.add_option('', '--windowsize', default='100')
@@ -533,8 +533,9 @@
shutil.copy(ref_file_name,fakefasta)
pic.delme.append(fakefasta)
cl.append('ASSUME_SORTED=true')
- adaptorseqs = ''.join([' ADAPTER_SEQUENCE=%s' % x for x in opts.adaptors])
- cl.append(adaptorseqs)
+ adaptlist = opts.adaptors.split(',')
+ adaptorseqs = ['ADAPTER_SEQUENCE=%s' % x for x in adaptlist]
+ cl += adaptorseqs
cl.append('IS_BISULFITE_SEQUENCED=%s' % opts.bisulphite)
cl.append('MAX_INSERT_SIZE=%s' % opts.maxinsert)
cl.append('OUTPUT=%s' % pic.metricsOut)
@@ -619,8 +620,9 @@
if float(opts.deviations) > 0.0:
cl.append('DEVIATIONS=%s' % opts.deviations)
if opts.malevel:
- malevels = ['METRIC_ACCUMULATION_LEVEL=%s' % x for x in opts.malevel]
- cl.append(' '.join(malevels))
+ malists = opts.malevel.split(',')
+ malist = ['METRIC_ACCUMULATION_LEVEL=%s' % x for x in malists]
+ cl += malist
stdouts,rval = pic.runPic(opts.jar, cl)
if os.path.exists(pdfpath): # automake thumbnail - will be added to html
cl2 = ['mogrify', '-format jpg -resize x400 %s' % pdfpath]
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
0