galaxy-dev
Threads by month
- ----- 2025 -----
- July
- 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
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- 10008 discussions

09 Feb '10
details: http://www.bx.psu.edu/hg/galaxy/rev/a213a1d8ac03
changeset: 3325:a213a1d8ac03
user: Dan Blankenberg <dan(a)bx.psu.edu>
date: Wed Feb 03 19:44:01 2010 -0500
description:
Fix minor off by one error in interval to bed converter print info.
diffstat:
lib/galaxy/datatypes/converters/interval_to_bed_converter.py | 5 ++---
1 files changed, 2 insertions(+), 3 deletions(-)
diffs (15 lines):
diff -r 566d4061cb19 -r a213a1d8ac03 lib/galaxy/datatypes/converters/interval_to_bed_converter.py
--- a/lib/galaxy/datatypes/converters/interval_to_bed_converter.py Wed Feb 03 16:33:25 2010 -0500
+++ b/lib/galaxy/datatypes/converters/interval_to_bed_converter.py Wed Feb 03 19:44:01 2010 -0500
@@ -55,9 +55,8 @@
if not first_skipped_line:
first_skipped_line = count + 1
out.close()
- info_msg = "%i regions converted to BED." % ( count - skipped_lines )
+ print "%i regions converted to BED." % ( count + 1 - skipped_lines )
if skipped_lines > 0:
- info_msg += "Skipped %d blank or invalid lines starting with line # %d." %( skipped_lines, first_skipped_line )
- print info_msg
+ print "Skipped %d blank or invalid lines starting with line # %d." % ( skipped_lines, first_skipped_line )
if __name__ == "__main__": __main__()
1
0

09 Feb '10
details: http://www.bx.psu.edu/hg/galaxy/rev/566d4061cb19
changeset: 3324:566d4061cb19
user: Dan Blankenberg <dan(a)bx.psu.edu>
date: Wed Feb 03 16:33:25 2010 -0500
description:
Make the GeneTrack datatype binary, containing only the 'indexed' data needed by the GeneTrack server. Better creation of the URL for running the peak predictor tool. \nStill some cleanup/decoupling possible.
diffstat:
eggs.ini | 4 +-
lib/galaxy/datatypes/tracks.py | 29 +++++++++-------------
tools/visualization/genetrack_indexer.py | 11 --------
tools/visualization/genetrack_indexer.xml | 2 +-
tools/visualization/genetrack_peak_prediction.xml | 2 +-
5 files changed, 16 insertions(+), 32 deletions(-)
diffs (120 lines):
diff -r ab1c33257cb3 -r 566d4061cb19 eggs.ini
--- a/eggs.ini Wed Feb 03 13:53:16 2010 -0500
+++ b/eggs.ini Wed Feb 03 16:33:25 2010 -0500
@@ -61,7 +61,7 @@
MySQL_python = _5.0.67_static
python_lzo = _static
bx_python = _dev_3b9d30e47619
-GeneTrack = _dev_86867fc7bf46680cfafbb0749be8410b749c5593
+GeneTrack = _dev_bf44f7054c30f19bd9f79106c1fd69849562b361
SQLAlchemy = _dev_r6498
; nose = .dev_r7156749efc58
@@ -84,7 +84,7 @@
decorator = http://pypi.python.org/packages/source/d/decorator/decorator-3.1.2.tar.gz
docutils = http://downloads.sourceforge.net/docutils/docutils-0.4.tar.gz
elementtree = http://effbot.org/downloads/elementtree-1.2.6-20050316.tar.gz
-GeneTrack = http://github.com/ialbert/genetrack-central/tarball/86867fc7bf46680cfafbb07…
+GeneTrack = http://github.com/ialbert/genetrack-central/tarball/bf44f7054c30f19bd9f7910…
lrucache = http://evan.prodromou.name/lrucache/lrucache-0.2.tar.gz
Mako = http://www.makotemplates.org/downloads/Mako-0.2.5.tar.gz
nose = http://pypi.python.org/packages/source/n/nose/nose-0.11.1.tar.gz
diff -r ab1c33257cb3 -r 566d4061cb19 lib/galaxy/datatypes/tracks.py
--- a/lib/galaxy/datatypes/tracks.py Wed Feb 03 13:53:16 2010 -0500
+++ b/lib/galaxy/datatypes/tracks.py Wed Feb 03 16:33:25 2010 -0500
@@ -2,41 +2,36 @@
Datatype classes for tracks/track views within galaxy.
"""
-import data
-import tabular, binascii, logging
-from galaxy.datatypes.metadata import MetadataElement
-from galaxy.datatypes import metadata
-import galaxy.model
+import binary, binascii, logging
from galaxy import util
from galaxy.web import url_for
-from sniff import *
-from galaxy.util.hash_util import *
+from galaxy.util.hash_util import hmac_new
+import urllib
log = logging.getLogger(__name__)
-class GeneTrack( tabular.Tabular ):
+class GeneTrack( binary.Binary ):
file_ext = "genetrack"
- MetadataElement( name="genetrack", default="data.genetrack", desc="HDF index", readonly=True, visible=True, no_value=0 )
- MetadataElement( name="label", default="Custom", desc="Track Label", readonly=True, visible=True, no_value="Custom" )
-
def __init__(self, **kwargs):
super( GeneTrack, self ).__init__( **kwargs )
self.add_display_app( 'genetrack', 'View in', '', 'genetrack_link' )
- def get_display_links( self, dataset, type, app, base_url, target_frame='galaxy_main', **kwd ):
- return data.Data.get_display_links( self, dataset, type, app, base_url, target_frame=target_frame, **kwd )
+ def get_display_links( self, dataset, type, app, base_url, target_frame='galaxy_main', **kwd ): #Force target_frame to be 'galaxy_main'
+ return binary.Binary.get_display_links( self, dataset, type, app, base_url, target_frame=target_frame, **kwd )
def genetrack_link( self, hda, type, app, base_url ):
ret_val = []
if hda.has_data:
# Get the disk file name and data id
file_name = hda.dataset.get_file_name()
- data_id = hda.id
+ data_id = urllib.quote_plus( str( hda.id ) ) #can we name this 'input' in the passed params instead of 'id' to prevent GT from having to map 'id' to 'input'?
+ galaxy_url = urllib.quote_plus( "%s%s" % ( base_url, url_for( controller = 'tool_runner' ) ) )
+ tool_id = urllib.quote_plus( 'predict2genetrack' )
# Make it secure
- hashkey = hmac_new( app.config.tool_secret, file_name )
- encoded = binascii.hexlify( file_name )
+ hashkey = urllib.quote_plus( hmac_new( app.config.tool_secret, file_name ) )
+ encoded = urllib.quote_plus( binascii.hexlify( file_name ) )
for name, url in util.get_genetrack_sites():
if name.lower() in app.config.genetrack_display_sites:
# send both parameters filename and hashkey
- link = "%s?filename=%s&hashkey=%s&id=%s&GALAXY_URL=%s" % ( url, encoded, hashkey, data_id, base_url )
+ link = "%s?filename=%s&hashkey=%s&id=%s&GALAXY_URL=%s&tool_id=%s" % ( url, encoded, hashkey, data_id, galaxy_url, tool_id )
ret_val.append( ( name, link ) )
return ret_val
diff -r ab1c33257cb3 -r 566d4061cb19 tools/visualization/genetrack_indexer.py
--- a/tools/visualization/genetrack_indexer.py Wed Feb 03 13:53:16 2010 -0500
+++ b/tools/visualization/genetrack_indexer.py Wed Feb 03 16:33:25 2010 -0500
@@ -37,14 +37,3 @@
else:
tabs2genetrack.transform(inpname=options.inpname, outname=options.outname,\
format=options.format, shift=options.shift, index=options.index, options=options)
-
- #HACK ALERT
- #output created in job working directory has a different name than the final destination.
- #GeneTrack uses dataset_name.hdf for indexes
- #This will fix the different name problem, but this is not a secure solution
- #This is Exceptionally Fragile as any change to the way that temporary output names are created could break
- #GeneTrack should allow explicit definition of the index file, not filename.hdf
- if options.workdir and os.path.isdir( options.workdir ):
- for filename in os.listdir( options.workdir ):
- if filename.endswith( '.dat.hdf' ) and filename.startswith( 'galaxy_dataset_' ):
- shutil.move( os.path.join( options.workdir, filename ), os.path.join( options.workdir, filename[ len( 'galaxy_' ): ] ) )
diff -r ab1c33257cb3 -r 566d4061cb19 tools/visualization/genetrack_indexer.xml
--- a/tools/visualization/genetrack_indexer.xml Wed Feb 03 13:53:16 2010 -0500
+++ b/tools/visualization/genetrack_indexer.xml Wed Feb 03 16:33:25 2010 -0500
@@ -3,7 +3,7 @@
<description> - creates a visualization from a bed file</description>
<command interpreter="python">
- genetrack_indexer.py -i $input -o $output -s $shift -v 0 -f BED -x -w $output.files_path
+ genetrack_indexer.py -i $input -o $output -s $shift -v 0 -f BED -x
</command>
<inputs>
diff -r ab1c33257cb3 -r 566d4061cb19 tools/visualization/genetrack_peak_prediction.xml
--- a/tools/visualization/genetrack_peak_prediction.xml Wed Feb 03 13:53:16 2010 -0500
+++ b/tools/visualization/genetrack_peak_prediction.xml Wed Feb 03 16:33:25 2010 -0500
@@ -3,7 +3,7 @@
<description> - generates peak predictions from an index file</description>
<command interpreter="python">
- genetrack_peak_prediction.py -i $input -o $output --level=$level --sigma=$sigma --mode=$mode --exclusion=$exclusion --strand=$strand -v 0 -w $input.extra_files_path
+ genetrack_peak_prediction.py -i $input -o $output --level=$level --sigma=$sigma --mode=$mode --exclusion=$exclusion --strand=$strand -v 0 -x
</command>
<inputs>
1
0

09 Feb '10
details: http://www.bx.psu.edu/hg/galaxy/rev/ab1c33257cb3
changeset: 3323:ab1c33257cb3
user: gua110
date: Wed Feb 03 13:53:16 2010 -0500
description:
Added functional tests for a couple of my tools with multiple outputs/pdf outputs.
diffstat:
test-data/5_liftover_mapped.bed | 131 ++
test-data/5_liftover_unmapped.bed | 6 +
test-data/regr_inp.tabular | 10 +
test-data/regr_out.pdf | 1590 ++++++++++++++++++++++++++++++
test-data/regr_out.tabular | 10 +
tools/extract/liftOver_wrapper.xml | 8 +-
tools/regVariation/linear_regression.xml | 9 +-
7 files changed, 1758 insertions(+), 6 deletions(-)
diffs (1819 lines):
diff -r 5c268e401913 -r ab1c33257cb3 test-data/5_liftover_mapped.bed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/5_liftover_mapped.bed Wed Feb 03 13:53:16 2010 -0500
@@ -0,0 +1,131 @@
+chr7 116197893 116197920 CCDS5763.1_cds_0_0_chr7_115444713_f 0 +
+chr7 116222929 116223015 CCDS5763.1_cds_1_0_chr7_115468539_f 0 +
+chr7 116237938 116238188 CCDS5763.1_cds_2_0_chr7_115483025_f 0 +
+chr7 116239076 116239412 CCDS5763.1_cds_3_0_chr7_115484166_f 0 +
+chr7 116240675 116240891 CCDS5763.1_cds_4_0_chr7_115485765_f 0 +
+chr7 116241233 116241396 CCDS5763.1_cds_5_0_chr7_115486323_f 0 +
+chr7 116246193 116246382 CCDS5763.1_cds_6_0_chr7_115491299_f 0 +
+chr7 116222929 116223015 CCDS5764.1_cds_0_0_chr7_115468539_f 0 +
+chr7 116237938 116238188 CCDS5764.1_cds_1_0_chr7_115483025_f 0 +
+chr7 116239076 116239412 CCDS5764.1_cds_2_0_chr7_115484166_f 0 +
+chr7 116240675 116240891 CCDS5764.1_cds_3_0_chr7_115485765_f 0 +
+chr7 116241233 116241396 CCDS5764.1_cds_4_0_chr7_115486323_f 0 +
+chr7 116246193 116246382 CCDS5764.1_cds_5_0_chr7_115491299_f 0 +
+chr7 116495075 116495225 CCDS5766.1_cds_0_0_chr7_115733787_f 0 +
+chr7 116495546 116495734 CCDS5766.1_cds_1_0_chr7_115734265_f 0 +
+chr7 116501260 116501411 CCDS5766.1_cds_2_0_chr7_115739976_f 0 +
+chr7 116495075 116495225 CCDS5765.1_cds_0_0_chr7_115733787_f 0 +
+chr7 116501260 116501449 CCDS5765.1_cds_1_0_chr7_115739976_f 0 +
+chr7 116522088 116522118 CCDS5767.1_cds_0_0_chr7_115759068_f 0 +
+chr7 116523550 116523715 CCDS5767.1_cds_1_0_chr7_115760530_f 0 +
+chr7 116562770 116563112 CCDS5767.1_cds_2_0_chr7_115792951_f 0 +
+chr7 116872904 116872943 CCDS5768.1_cds_0_0_chr7_116096617_f 0 +
+chr7 116899050 116899114 CCDS5768.1_cds_1_0_chr7_116122132_f 0 +
+chr7 116903933 116903985 CCDS5768.1_cds_2_0_chr7_116126999_f 0 +
+chr7 116909709 116909773 CCDS5768.1_cds_3_0_chr7_116132777_f 0 +
+chr7 116915110 116915317 CCDS5768.1_cds_4_0_chr7_116138182_f 0 +
+chr7 116917198 116917278 CCDS5768.1_cds_5_0_chr7_116140268_f 0 +
+chr7 116921242 116921321 CCDS5768.1_cds_6_0_chr7_116144238_f 0 +
+chr7 116923078 116923150 CCDS5768.1_cds_7_0_chr7_116146074_f 0 +
+chr7 116927214 116927277 CCDS5768.1_cds_8_0_chr7_116150065_f 0 +
+chr7 116928880 116929021 CCDS5768.1_cds_9_0_chr7_116151732_f 0 +
+chr7 116964784 116964932 CCDS5770.1_cds_0_0_chr7_116187546_f 0 +
+chr7 117108894 117108977 CCDS5770.1_cds_1_0_chr7_116333767_f 0 +
+chr7 117128694 117128854 CCDS5770.1_cds_2_0_chr7_116353566_f 0 +
+chr7 117138899 117138954 CCDS5770.1_cds_3_0_chr7_116363798_f 0 +
+chr7 117139597 117139713 CCDS5770.1_cds_4_0_chr7_116364496_f 0 +
+chr7 117140988 117141064 CCDS5770.1_cds_5_0_chr7_116365890_f 0 +
+chr7 117143259 117143328 CCDS5770.1_cds_6_0_chr7_116368129_f 0 +
+chr7 117145226 117145381 CCDS5770.1_cds_7_0_chr7_116370086_f 0 +
+chr7 117147574 117147672 CCDS5770.1_cds_8_0_chr7_116372440_f 0 +
+chr7_random 2679423 2679538 CCDS5770.1_cds_9_0_chr7_116404867_f 0 +
+chr7 117201671 117201751 CCDS5770.1_cds_10_0_chr7_116423326_f 0 +
+chr7 117203227 117203330 CCDS5770.1_cds_11_0_chr7_116424839_f 0 +
+chr7 117222109 117222260 CCDS5770.1_cds_12_0_chr7_116443792_f 0 +
+chr7 117231432 117231525 CCDS5770.1_cds_13_0_chr7_116453089_f 0 +
+chr7 117234203 117234343 CCDS5770.1_cds_14_0_chr7_116455928_f 0 +
+chr7 117235141 117235261 CCDS5770.1_cds_15_0_chr7_116456866_f 0 +
+chr7 116964784 116964932 CCDS5769.1_cds_0_0_chr7_116187546_f 0 +
+chr7 117108894 117108977 CCDS5769.1_cds_1_0_chr7_116333767_f 0 +
+chr7 117128694 117128854 CCDS5769.1_cds_2_0_chr7_116353566_f 0 +
+chr7 117138899 117138954 CCDS5769.1_cds_3_0_chr7_116363798_f 0 +
+chr7 117139597 117139713 CCDS5769.1_cds_4_0_chr7_116364496_f 0 +
+chr7 117140988 117141064 CCDS5769.1_cds_5_0_chr7_116365890_f 0 +
+chr7 117145226 117145381 CCDS5769.1_cds_6_0_chr7_116370086_f 0 +
+chr7 117147574 117147672 CCDS5769.1_cds_7_0_chr7_116372440_f 0 +
+chr7_random 2679423 2679538 CCDS5769.1_cds_8_0_chr7_116404867_f 0 +
+chr7 117201671 117201751 CCDS5769.1_cds_9_0_chr7_116423326_f 0 +
+chr7 117203227 117203330 CCDS5769.1_cds_10_0_chr7_116424839_f 0 +
+chr7 117222109 117222260 CCDS5769.1_cds_11_0_chr7_116443792_f 0 +
+chr7 117231432 117231525 CCDS5769.1_cds_12_0_chr7_116453089_f 0 +
+chr7 117234203 117234343 CCDS5769.1_cds_13_0_chr7_116455928_f 0 +
+chr7 117241962 117242058 CCDS5769.1_cds_14_0_chr7_116463767_f 0 +
+chr7 117291331 117291561 CCDS5771.1_cds_0_0_chr7_116512160_r 0 -
+chr7 117310742 117311007 CCDS5771.1_cds_1_0_chr7_116531617_r 0 -
+chr7 117333743 117333970 CCDS5771.1_cds_3_0_chr7_116554572_r 0 -
+chr7 117336084 117336167 CCDS5771.1_cds_4_0_chr7_116556912_r 0 -
+chr7 117382797 117382950 CCDS5772.1_cds_0_0_chr7_116597601_r 0 -
+chr7 117386552 117386666 CCDS5772.1_cds_1_0_chr7_116601357_r 0 -
+chr7 117387812 117387919 CCDS5772.1_cds_2_0_chr7_116602617_r 0 -
+chr7 117397672 117397782 CCDS5772.1_cds_3_0_chr7_116613943_r 0 -
+chr7 117398745 117398802 CCDS5772.1_cds_4_0_chr7_116615016_r 0 -
+chr7 117399808 117399884 CCDS5772.1_cds_5_0_chr7_116616074_r 0 -
+chr7 117400724 117400849 CCDS5772.1_cds_6_0_chr7_116616991_r 0 -
+chr7 117402466 117402602 CCDS5772.1_cds_7_0_chr7_116618731_r 0 -
+chr7 117403442 117403554 CCDS5772.1_cds_8_0_chr7_116619703_r 0 -
+chr7 117438281 117438393 CCDS5772.1_cds_9_0_chr7_116654168_r 0 -
+chr7 117440357 117440480 CCDS5772.1_cds_10_0_chr7_116656242_r 0 -
+chr7 117444948 117445048 CCDS5772.1_cds_11_0_chr7_116660841_r 0 -
+chr7 117445468 117445573 CCDS5772.1_cds_12_0_chr7_116661361_r 0 -
+chr7 117499706 117499759 CCDS5773.1_cds_0_0_chr7_116714100_f 0 +
+chr7 117523820 117523931 CCDS5773.1_cds_1_0_chr7_116738258_f 0 +
+chr7 117528597 117528706 CCDS5773.1_cds_2_0_chr7_116743039_f 0 +
+chr7 117550464 117550680 CCDS5773.1_cds_3_0_chr7_116764904_f 0 +
+chr7 117553829 117553919 CCDS5773.1_cds_4_0_chr7_116768281_f 0 +
+chr7 117554806 117554970 CCDS5773.1_cds_5_0_chr7_116769253_f 0 +
+chr7 117556111 117556237 CCDS5773.1_cds_6_0_chr7_116770553_f 0 +
+chr7 117559659 117559905 CCDS5773.1_cds_7_0_chr7_116774105_f 0 +
+chr7 117561568 117561660 CCDS5773.1_cds_8_0_chr7_116776021_f 0 +
+chr7 117568199 117568382 CCDS5773.1_cds_9_0_chr7_116782646_f 0 +
+chr7 117579005 117579197 CCDS5773.1_cds_10_0_chr7_116793469_f 0 +
+chr7 117609945 117610041 CCDS5773.1_cds_11_0_chr7_116821744_f 0 +
+chr7 117612558 117612645 CCDS5773.1_cds_12_0_chr7_116824358_f 0 +
+chr7 117614292 117615016 CCDS5773.1_cds_13_0_chr7_116825939_f 0 +
+chr7 117617279 117617408 CCDS5773.1_cds_14_0_chr7_116828935_f 0 +
+chr7 117625173 117625211 CCDS5773.1_cds_15_0_chr7_116836831_f 0 +
+chr7 117625879 117626130 CCDS5773.1_cds_16_0_chr7_116837537_f 0 +
+chr7 117628986 117629066 CCDS5773.1_cds_17_0_chr7_116840679_f 0 +
+chr7 117632825 117632976 CCDS5773.1_cds_18_0_chr7_116844524_f 0 +
+chr7 117633887 117634115 CCDS5773.1_cds_19_0_chr7_116845586_f 0 +
+chr7 117636923 117637024 CCDS5773.1_cds_20_0_chr7_116848618_f 0 +
+chr7 117649505 117649753 CCDS5773.1_cds_21_0_chr7_116861527_f 0 +
+chr7 117664146 117664302 CCDS5773.1_cds_22_0_chr7_116876443_f 0 +
+chr7 117674548 117674638 CCDS5773.1_cds_23_0_chr7_116886847_f 0 +
+chr7 117686685 117686858 CCDS5773.1_cds_24_0_chr7_116898693_f 0 +
+chr7 117687456 117687562 CCDS5773.1_cds_25_0_chr7_116899464_f 0 +
+chr7 117688902 117689103 CCDS5773.1_cds_26_0_chr7_116900913_f 0 +
+chr7 117734744 117734996 CCDS5774.1_cds_0_0_chr7_116945542_r 0 -
+chr7 117741224 117741326 CCDS5774.1_cds_1_0_chr7_116952023_r 0 -
+chr7 117743450 117743638 CCDS5774.1_cds_4_0_chr7_116958552_r 0 -
+chr7 117743957 117744164 CCDS5774.1_cds_5_0_chr7_116959057_r 0 -
+chr7 117746996 117747175 CCDS5774.1_cds_6_0_chr7_116962094_r 0 -
+chr7 117753794 117753981 CCDS5774.1_cds_7_0_chr7_116968918_r 0 -
+chr7 117754149 117754302 CCDS5774.1_cds_8_0_chr7_116969274_r 0 -
+chr7 117764699 117764799 CCDS5774.1_cds_9_0_chr7_116979836_r 0 -
+chr7 117764881 117764968 CCDS5774.1_cds_10_0_chr7_116980018_r 0 -
+chr7 117775103 117775183 CCDS5774.1_cds_11_0_chr7_116990560_r 0 -
+chr7 117776423 117776519 CCDS5774.1_cds_12_0_chr7_116991880_r 0 -
+chr7 117779436 117779712 CCDS5774.1_cds_13_0_chr7_116994440_r 0 -
+chr7 117786062 117786180 CCDS5774.1_cds_14_0_chr7_117001064_r 0 -
+chr7 117796458 117796713 CCDS5774.1_cds_15_0_chr7_117011516_r 0 -
+chr7 117799369 117799520 CCDS5774.1_cds_16_0_chr7_117014446_r 0 -
+chr7 117801790 117801890 CCDS5774.1_cds_17_0_chr7_117016867_r 0 -
+chr7 117803186 117803390 CCDS5774.1_cds_18_0_chr7_117018256_r 0 -
+chr7 117810065 117811719 CCDS5774.1_cds_19_0_chr7_117025133_r 0 -
+chr7 117829639 117829865 CCDS5774.1_cds_20_0_chr7_117044770_r 0 -
+chr7 117880732 117880840 CCDS5774.1_cds_21_0_chr7_117095214_r 0 -
+chr7 117893163 117893244 CCDS5774.1_cds_22_0_chr7_117107340_r 0 -
+chr5 133682646 133682808 CCDS4149.1_cds_0_0_chr5_131424299_f 0 +
+chr5 133682906 133682948 CCDS4149.1_cds_1_0_chr5_131424559_f 0 +
+chr5 133684249 133684339 CCDS4149.1_cds_2_0_chr5_131425904_f 0 +
+chr5 133684463 133684505 CCDS4149.1_cds_3_0_chr5_131426118_f 0 +
diff -r 5c268e401913 -r ab1c33257cb3 test-data/5_liftover_unmapped.bed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/5_liftover_unmapped.bed Wed Feb 03 13:53:16 2010 -0500
@@ -0,0 +1,6 @@
+#Partially deleted in new
+chr7 116549075 116549353 CCDS5771.1_cds_2_0_chr7_116549076_r 0 -
+#Deleted in new
+chr7 116953508 116953641 CCDS5774.1_cds_2_0_chr7_116953509_r 0 -
+#Deleted in new
+chr7 116955071 116955135 CCDS5774.1_cds_3_0_chr7_116955072_r 0 -
diff -r 5c268e401913 -r ab1c33257cb3 test-data/regr_inp.tabular
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/regr_inp.tabular Wed Feb 03 13:53:16 2010 -0500
@@ -0,0 +1,10 @@
+7 33 42
+4 41 33
+16 7 75
+3 49 28
+21 5 91
+8 31 55
+7 35 52
+5 30 16
+15 10 69
+20 10 94
diff -r 5c268e401913 -r ab1c33257cb3 test-data/regr_out.pdf
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/regr_out.pdf Wed Feb 03 13:53:16 2010 -0500
@@ -0,0 +1,1590 @@
+%PDF-1.4
+%âãÏÓ\r
+1 0 obj
+<<
+/CreationDate (D:20100112163009)
+/ModDate (D:20100112163009)
+/Title (R Graphics Output)
+/Producer (R 2.10.0)
+/Creator (R)
+>>
+endobj
+2 0 obj
+<<
+/Type /Catalog
+/Pages 3 0 R
+>>
+endobj
+5 0 obj
+<<
+/Type /Page
+/Parent 3 0 R
+/Contents 6 0 R
+/Resources 4 0 R
+>>
+endobj
+6 0 obj
+<<
+/Length 7 0 R
+>>
+stream
+q
+Q q 38.02 358.66 166.66 160.32 re W n
+Q q
+0.000 0.000 0.000 RG
+0.75 w
+[] 0 d
+1 J
+1 j
+10.00 M
+42.77 363.41 m
+199.92 363.41 l
+199.92 514.22 l
+42.77 514.22 l
+42.77 363.41 l
+S
+Q q 42.77 363.41 157.15 150.82 re W n
+BT
+0.000 0.000 0.000 rg
+/F2 1 Tf 16.00 0.00 -0.00 16.00 117.34 436.34 Tm (y) Tj
+ET
+Q q 209.42 363.41 157.15 150.82 re W n
+Q q 204.67 358.66 166.66 160.32 re W n
+Q q
+0.000 0.000 0.000 RG
+0.75 w
+[] 0 d
+1 J
+1 j
+10.00 M
+209.42 363.41 m
+366.58 363.41 l
+366.58 514.22 l
+209.42 514.22 l
+209.42 363.41 l
+S
+231.41 514.22 m 352.67 514.22 l S
+231.41 514.22 m 231.41 518.98 l S
+271.83 514.22 m 271.83 518.98 l S
+312.25 514.22 m 312.25 518.98 l S
+352.67 514.22 m 352.67 518.98 l S
+BT
+0.000 0.000 0.000 rg
+/F2 1 Tf 8.00 0.00 -0.00 8.00 229.19 525.63 Tm (5) Tj
+ET
+BT
+/F2 1 Tf 8.00 0.00 -0.00 8.00 267.38 525.63 Tm (10) Tj
+ET
+BT
+/F2 1 Tf 8.00 0.00 -0.00 8.00 307.80 525.63 Tm (15) Tj
+ET
+BT
+/F2 1 Tf 8.00 0.00 -0.00 8.00 348.22 525.63 Tm (20) Tj
+ET
+Q q 209.42 363.41 157.15 150.82 re W n
+0.000 0.000 1.000 RG
+0.75 w
+[] 0 d
+1 J
+1 j
+10.00 M
+BT
+/F1 1 Tf 1 Tr 4.94 0 0 4.94 245.63 413.83 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 4.94 0 0 4.94 221.37 397.72 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 4.94 0 0 4.94 318.38 472.91 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 4.94 0 0 4.94 213.29 388.76 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 4.94 0 0 4.94 358.80 501.55 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 4.94 0 0 4.94 253.71 437.10 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 4.94 0 0 4.94 245.63 431.73 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 4.94 0 0 4.94 229.46 367.28 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 4.94 0 0 4.94 310.30 462.17 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 4.94 0 0 4.94 350.72 506.93 Tm (l) Tj 0 Tr
+ET
+Q q 376.08 363.41 157.15 150.82 re W n
+Q q 371.33 358.66 166.66 160.32 re W n
+Q q
+0.000 0.000 0.000 RG
+0.75 w
+[] 0 d
+1 J
+1 j
+10.00 M
+376.08 363.41 m
+533.23 363.41 l
+533.23 514.22 l
+376.08 514.22 l
+376.08 363.41 l
+S
+533.23 376.16 m 533.23 483.57 l S
+533.23 376.16 m 537.98 376.16 l S
+533.23 411.96 m 537.98 411.96 l S
+533.23 447.77 m 537.98 447.77 l S
+533.23 483.57 m 537.98 483.57 l S
+BT
+0.000 0.000 0.000 rg
+/F2 1 Tf 0.00 8.00 -8.00 0.00 550.34 371.71 Tm (20) Tj
+ET
+BT
+/F2 1 Tf 0.00 8.00 -8.00 0.00 550.34 407.51 Tm (40) Tj
+ET
+BT
+/F2 1 Tf 0.00 8.00 -8.00 0.00 550.34 443.32 Tm (60) Tj
+ET
+BT
+/F2 1 Tf 0.00 8.00 -8.00 0.00 550.34 479.13 Tm (80) Tj
+ET
+Q q 376.08 363.41 157.15 150.82 re W n
+0.000 0.000 1.000 RG
+0.75 w
+[] 0 d
+1 J
+1 j
+10.00 M
+BT
+/F1 1 Tf 1 Tr 4.94 0 0 4.94 472.54 413.83 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 4.94 0 0 4.94 499.00 397.72 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 4.94 0 0 4.94 386.56 472.91 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 4.94 0 0 4.94 525.46 388.76 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 4.94 0 0 4.94 379.95 501.55 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 4.94 0 0 4.94 465.93 437.10 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 4.94 0 0 4.94 479.16 431.73 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 4.94 0 0 4.94 462.62 367.28 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 4.94 0 0 4.94 396.48 462.17 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 4.94 0 0 4.94 396.48 506.93 Tm (l) Tj 0 Tr
+ET
+Q q 42.77 203.09 157.15 150.82 re W n
+Q q 38.02 198.34 166.66 160.32 re W n
+Q q
+0.000 0.000 0.000 RG
+0.75 w
+[] 0 d
+1 J
+1 j
+10.00 M
+42.77 203.09 m
+199.92 203.09 l
+199.92 353.90 l
+42.77 353.90 l
+42.77 203.09 l
+S
+42.77 224.19 m 42.77 340.56 l S
+42.77 224.19 m 38.02 224.19 l S
+42.77 262.98 m 38.02 262.98 l S
+42.77 301.77 m 38.02 301.77 l S
+42.77 340.56 m 38.02 340.56 l S
+BT
+0.000 0.000 0.000 rg
+/F2 1 Tf 0.00 8.00 -8.00 0.00 31.36 221.97 Tm (5) Tj
+ET
+BT
+/F2 1 Tf 0.00 8.00 -8.00 0.00 31.36 258.53 Tm (10) Tj
+ET
+BT
+/F2 1 Tf 0.00 8.00 -8.00 0.00 31.36 297.32 Tm (15) Tj
+ET
+BT
+/F2 1 Tf 0.00 8.00 -8.00 0.00 31.36 336.11 Tm (20) Tj
+ET
+Q q 42.77 203.09 157.15 150.82 re W n
+0.000 0.000 1.000 RG
+0.75 w
+[] 0 d
+1 J
+1 j
+10.00 M
+BT
+/F1 1 Tf 1 Tr 4.94 0 0 4.94 95.14 237.99 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 4.94 0 0 4.94 78.35 214.72 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 4.94 0 0 4.94 156.70 307.82 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 4.94 0 0 4.94 69.02 206.96 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 4.94 0 0 4.94 186.55 346.61 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 4.94 0 0 4.94 119.39 245.75 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 4.94 0 0 4.94 113.79 237.99 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 4.94 0 0 4.94 46.63 222.48 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 4.94 0 0 4.94 145.51 300.06 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 4.94 0 0 4.94 192.14 338.85 Tm (l) Tj 0 Tr
+ET
+Q q 209.42 203.09 157.15 150.82 re W n
+Q q 204.67 198.34 166.66 160.32 re W n
+Q q
+0.000 0.000 0.000 RG
+0.75 w
+[] 0 d
+1 J
+1 j
+10.00 M
+209.42 203.09 m
+366.58 203.09 l
+366.58 353.90 l
+209.42 353.90 l
+209.42 203.09 l
+S
+Q q 209.42 203.09 157.15 150.82 re W n
+BT
+0.000 0.000 0.000 rg
+/F2 1 Tf 16.00 0.00 -0.00 16.00 277.33 272.87 Tm (x.1) Tj
+ET
+Q q 376.08 203.09 157.15 150.82 re W n
+Q q 371.33 198.34 166.66 160.32 re W n
+Q q
+0.000 0.000 0.000 RG
+0.75 w
+[] 0 d
+1 J
+1 j
+10.00 M
+376.08 203.09 m
+533.23 203.09 l
+533.23 353.90 l
+376.08 353.90 l
+376.08 203.09 l
+S
+Q q 376.08 203.09 157.15 150.82 re W n
+0.000 0.000 1.000 RG
+0.75 w
+[] 0 d
+1 J
+1 j
+10.00 M
+BT
+/F1 1 Tf 1 Tr 4.94 0 0 4.94 472.54 237.99 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 4.94 0 0 4.94 499.00 214.72 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 4.94 0 0 4.94 386.56 307.82 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 4.94 0 0 4.94 525.46 206.96 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 4.94 0 0 4.94 379.95 346.61 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 4.94 0 0 4.94 465.93 245.75 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 4.94 0 0 4.94 479.16 237.99 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 4.94 0 0 4.94 462.62 222.48 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 4.94 0 0 4.94 396.48 300.06 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 4.94 0 0 4.94 396.48 338.85 Tm (l) Tj 0 Tr
+ET
+Q q 42.77 42.77 157.15 150.82 re W n
+Q q 38.02 38.02 166.66 160.32 re W n
+Q q
+0.000 0.000 0.000 RG
+0.75 w
+[] 0 d
+1 J
+1 j
+10.00 M
+42.77 42.77 m
+199.92 42.77 l
+199.92 193.58 l
+42.77 193.58 l
+42.77 42.77 l
+S
+56.05 42.77 m 167.98 42.77 l S
+56.05 42.77 m 56.05 38.02 l S
+93.36 42.77 m 93.36 38.02 l S
+130.67 42.77 m 130.67 38.02 l S
+167.98 42.77 m 167.98 38.02 l S
+BT
+0.000 0.000 0.000 rg
+/F2 1 Tf 8.00 0.00 -0.00 8.00 51.60 25.66 Tm (20) Tj
+ET
+BT
+/F2 1 Tf 8.00 0.00 -0.00 8.00 88.91 25.66 Tm (40) Tj
+ET
+BT
+/F2 1 Tf 8.00 0.00 -0.00 8.00 126.22 25.66 Tm (60) Tj
+ET
+BT
+/F2 1 Tf 8.00 0.00 -0.00 8.00 163.53 25.66 Tm (80) Tj
+ET
+Q q 42.77 42.77 157.15 150.82 re W n
+0.000 0.000 1.000 RG
+0.75 w
+[] 0 d
+1 J
+1 j
+10.00 M
+BT
+/F1 1 Tf 1 Tr 4.94 0 0 4.94 95.14 135.51 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 4.94 0 0 4.94 78.35 160.90 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 4.94 0 0 4.94 156.70 52.99 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 4.94 0 0 4.94 69.02 186.29 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 4.94 0 0 4.94 186.55 46.64 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 4.94 0 0 4.94 119.39 129.16 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 4.94 0 0 4.94 113.79 141.85 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 4.94 0 0 4.94 46.63 125.98 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 4.94 0 0 4.94 145.51 62.51 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 4.94 0 0 4.94 192.14 62.51 Tm (l) Tj 0 Tr
+ET
+Q q 209.42 42.77 157.15 150.82 re W n
+Q q 204.67 38.02 166.66 160.32 re W n
+Q q
+0.000 0.000 0.000 RG
+0.75 w
+[] 0 d
+1 J
+1 j
+10.00 M
+209.42 42.77 m
+366.58 42.77 l
+366.58 193.58 l
+209.42 193.58 l
+209.42 42.77 l
+S
+Q q 209.42 42.77 157.15 150.82 re W n
+0.000 0.000 1.000 RG
+0.75 w
+[] 0 d
+1 J
+1 j
+10.00 M
+BT
+/F1 1 Tf 1 Tr 4.94 0 0 4.94 245.63 135.51 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 4.94 0 0 4.94 221.37 160.90 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 4.94 0 0 4.94 318.38 52.99 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 4.94 0 0 4.94 213.29 186.29 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 4.94 0 0 4.94 358.80 46.64 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 4.94 0 0 4.94 253.71 129.16 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 4.94 0 0 4.94 245.63 141.85 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 4.94 0 0 4.94 229.46 125.98 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 4.94 0 0 4.94 310.30 62.51 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 4.94 0 0 4.94 350.72 62.51 Tm (l) Tj 0 Tr
+ET
+Q q 376.08 42.77 157.15 150.82 re W n
+Q q 371.33 38.02 166.66 160.32 re W n
+Q q
+0.000 0.000 0.000 RG
+0.75 w
+[] 0 d
+1 J
+1 j
+10.00 M
+376.08 42.77 m
+533.23 42.77 l
+533.23 193.58 l
+376.08 193.58 l
+376.08 42.77 l
+S
+398.44 42.77 m 530.72 42.77 l S
+398.44 42.77 m 398.44 38.02 l S
+431.51 42.77 m 431.51 38.02 l S
+464.58 42.77 m 464.58 38.02 l S
+497.65 42.77 m 497.65 38.02 l S
+530.72 42.77 m 530.72 38.02 l S
+BT
+0.000 0.000 0.000 rg
+/F2 1 Tf 8.00 0.00 -0.00 8.00 393.99 25.66 Tm (10) Tj
+ET
+BT
+/F2 1 Tf 8.00 0.00 -0.00 8.00 427.06 25.66 Tm (20) Tj
+ET
+BT
+/F2 1 Tf 8.00 0.00 -0.00 8.00 460.13 25.66 Tm (30) Tj
+ET
+BT
+/F2 1 Tf 8.00 0.00 -0.00 8.00 493.20 25.66 Tm (40) Tj
+ET
+BT
+/F2 1 Tf 8.00 0.00 -0.00 8.00 526.27 25.66 Tm (50) Tj
+ET
+533.23 64.22 m 533.23 191.17 l S
+533.23 64.22 m 537.98 64.22 l S
+533.23 95.96 m 537.98 95.96 l S
+533.23 127.70 m 537.98 127.70 l S
+533.23 159.43 m 537.98 159.43 l S
+533.23 191.17 m 537.98 191.17 l S
+BT
+/F2 1 Tf 0.00 8.00 -8.00 0.00 550.34 59.77 Tm (10) Tj
+ET
+BT
+/F2 1 Tf 0.00 8.00 -8.00 0.00 550.34 91.51 Tm (20) Tj
+ET
+BT
+/F2 1 Tf 0.00 8.00 -8.00 0.00 550.34 123.25 Tm (30) Tj
+ET
+BT
+/F2 1 Tf 0.00 8.00 -8.00 0.00 550.34 154.99 Tm (40) Tj
+ET
+BT
+/F2 1 Tf 0.00 8.00 -8.00 0.00 550.34 186.72 Tm (50) Tj
+ET
+Q q 376.08 42.77 157.15 150.82 re W n
+BT
+0.000 0.000 0.000 rg
+/F2 1 Tf 16.00 0.00 -0.00 16.00 443.98 112.55 Tm (x.2) Tj
+ET
+Q q
+BT
+0.000 0.000 0.000 rg
+/F3 1 Tf 14.00 0.00 -0.00 14.00 228.88 549.39 Tm (Scatterplot Matrix) Tj
+ET
+Q
+endstream
+endobj
+7 0 obj
+9361
+endobj
+8 0 obj
+<<
+/Type /Page
+/Parent 3 0 R
+/Contents 9 0 R
+/Resources 4 0 R
+>>
+endobj
+9 0 obj
+<<
+/Length 10 0 R
+>>
+stream
+q
+Q q 59.04 73.44 486.72 443.52 re W n
+Q q
+0.000 0.000 0.000 RG
+0.75 w
+[] 0 d
+1 J
+1 j
+10.00 M
+91.71 73.44 m 481.63 73.44 l S
+91.71 73.44 m 91.71 66.24 l S
+156.70 73.44 m 156.70 66.24 l S
+221.68 73.44 m 221.68 66.24 l S
+286.67 73.44 m 286.67 66.24 l S
+351.66 73.44 m 351.66 66.24 l S
+416.64 73.44 m 416.64 66.24 l S
+481.63 73.44 m 481.63 66.24 l S
+BT
+0.000 0.000 0.000 rg
+/F2 1 Tf 12.00 0.00 -0.00 12.00 85.04 47.52 Tm (30) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 -0.00 12.00 150.02 47.52 Tm (40) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 -0.00 12.00 215.01 47.52 Tm (50) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 -0.00 12.00 280.00 47.52 Tm (60) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 -0.00 12.00 344.98 47.52 Tm (70) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 -0.00 12.00 409.97 47.52 Tm (80) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 -0.00 12.00 474.96 47.52 Tm (90) Tj
+ET
+59.04 147.85 m 59.04 487.37 l S
+59.04 147.85 m 51.84 147.85 l S
+59.04 232.73 m 51.84 232.73 l S
+59.04 317.61 m 51.84 317.61 l S
+59.04 402.49 m 51.84 402.49 l S
+59.04 487.37 m 51.84 487.37 l S
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 41.76 137.67 Tm (-10) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 41.76 225.89 Tm (-5) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 41.76 314.27 Tm (0) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 41.76 399.15 Tm (5) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 41.76 480.69 Tm (10) Tj
+ET
+59.04 73.44 m
+545.76 73.44 l
+545.76 516.96 l
+59.04 516.96 l
+59.04 73.44 l
+S
+Q q
+BT
+0.000 0.000 0.000 rg
+/F2 1 Tf 12.00 0.00 -0.00 12.00 268.54 18.72 Tm [(Fitted v) 25 (alues)] TJ
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 12.96 268.86 Tm (Residuals) Tj
+ET
+Q q 59.04 73.44 486.72 443.52 re W n
+0.000 0.000 0.000 RG
+0.75 w
+[] 0 d
+1 J
+1 j
+10.00 M
+BT
+/F1 1 Tf 1 Tr 7.48 0 0 7.48 166.43 315.79 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 7.48 0 0 7.48 101.40 332.89 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 7.48 0 0 7.48 349.78 397.05 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 7.48 0 0 7.48 111.06 222.76 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 7.48 0 0 7.48 524.77 211.55 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 7.48 0 0 7.48 192.03 469.62 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 7.48 0 0 7.48 178.19 454.85 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 7.48 0 0 7.48 74.10 115.59 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 7.48 0 0 7.48 330.06 346.71 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 7.48 0 0 7.48 516.81 283.29 Tm (l) Tj 0 Tr
+ET
+1.000 0.000 0.000 RG
+77.07 141.77 m
+104.36 215.63 l
+114.02 240.45 l
+169.39 389.46 l
+181.15 422.49 l
+194.99 463.49 l
+333.02 381.33 l
+352.74 378.55 l
+519.77 253.25 l
+527.73 247.63 l
+S
+Q q
+BT
+0.000 0.000 0.000 rg
+/F2 1 Tf 12.00 0.00 -0.00 12.00 99.28 4.32 Tm [(function \(f) 30 (or) -25 (m) 10 (ula, data, subset, w) 10 (eights) 15 (, na.action, method = "qr", model = ...)] TJ
+ET
+Q q
+BT
+0.000 0.000 0.000 rg
+/F2 1 Tf 12.00 0.00 -0.00 12.00 251.72 523.44 Tm (Residuals vs Fitted) Tj
+ET
+Q q
+BT
+0.000 0.000 0.000 rg
+/F2 1 Tf 9.00 0.00 -0.00 9.00 80.67 113.16 Tm (8) Tj
+ET
+BT
+/F2 1 Tf 9.00 0.00 -0.00 9.00 186.39 470.06 Tm (6) Tj
+ET
+BT
+/F2 1 Tf 9.00 0.00 -0.00 9.00 172.54 455.29 Tm (7) Tj
+ET
+Q q 59.04 73.44 486.72 443.52 re W n
+0.745 0.745 0.745 RG
+0.75 w
+[ 0.00 4.00] 0 d
+1 J
+1 j
+10.00 M
+59.04 317.61 m 545.76 317.61 l S
+Q
+endstream
+endobj
+10 0 obj
+3090
+endobj
+11 0 obj
+<<
+/Type /Page
+/Parent 3 0 R
+/Contents 12 0 R
+/Resources 4 0 R
+>>
+endobj
+12 0 obj
+<<
+/Length 13 0 R
+>>
+stream
+q
+Q q 59.04 73.44 486.72 443.52 re W n
+Q q 59.04 73.44 486.72 443.52 re W n
+0.000 0.000 0.000 RG
+0.75 w
+[] 0 d
+1 J
+1 j
+10.00 M
+BT
+/F1 1 Tf 1 Tr 7.48 0 0 7.48 281.58 323.65 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 7.48 0 0 7.48 317.30 340.84 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 7.48 0 0 7.48 394.93 412.99 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 7.48 0 0 7.48 203.95 210.25 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 7.48 0 0 7.48 153.67 203.79 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 7.48 0 0 7.48 524.77 469.29 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 7.48 0 0 7.48 445.20 457.77 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 7.48 0 0 7.48 74.10 87.27 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 7.48 0 0 7.48 354.14 356.10 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 7.48 0 0 7.48 244.74 284.34 Tm (l) Tj 0 Tr
+ET
+Q q
+0.000 0.000 0.000 RG
+0.75 w
+[] 0 d
+1 J
+1 j
+10.00 M
+83.86 73.44 m 520.94 73.44 l S
+83.86 73.44 m 83.86 66.24 l S
+156.71 73.44 m 156.71 66.24 l S
+229.55 73.44 m 229.55 66.24 l S
+302.40 73.44 m 302.40 66.24 l S
+375.25 73.44 m 375.25 66.24 l S
+448.09 73.44 m 448.09 66.24 l S
+520.94 73.44 m 520.94 66.24 l S
+BT
+0.000 0.000 0.000 rg
+/F2 1 Tf 12.00 0.00 -0.00 12.00 72.02 47.52 Tm (-1.5) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 -0.00 12.00 144.86 47.52 Tm (-1.0) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 -0.00 12.00 217.71 47.52 Tm (-0.5) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 -0.00 12.00 294.06 47.52 Tm (0.0) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 -0.00 12.00 366.91 47.52 Tm (0.5) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 -0.00 12.00 439.75 47.52 Tm (1.0) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 -0.00 12.00 512.60 47.52 Tm (1.5) Tj
+ET
+59.04 100.87 m 59.04 437.81 l S
+59.04 100.87 m 51.84 100.87 l S
+59.04 213.18 m 51.84 213.18 l S
+59.04 325.50 m 51.84 325.50 l S
+59.04 437.81 m 51.84 437.81 l S
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 41.76 94.03 Tm (-2) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 41.76 206.34 Tm (-1) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 41.76 322.16 Tm (0) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 41.76 434.48 Tm (1) Tj
+ET
+59.04 73.44 m
+545.76 73.44 l
+545.76 516.96 l
+59.04 516.96 l
+59.04 73.44 l
+S
+Q q
+BT
+0.000 0.000 0.000 rg
+/F2 1 Tf 12.00 0.00 -0.00 12.00 245.71 18.72 Tm (Theoretical Quantiles) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 12.96 234.26 Tm [(Standardiz) 15 (ed residuals)] TJ
+ET
+Q q 59.04 73.44 486.72 443.52 re W n
+0.498 0.498 0.498 RG
+0.75 w
+[ 0.00 4.00] 0 d
+1 J
+1 j
+10.00 M
+59.04 105.88 m 545.76 526.86 l S
+Q q
+BT
+0.000 0.000 0.000 rg
+/F2 1 Tf 12.00 0.00 -0.00 12.00 99.28 4.32 Tm [(function \(f) 30 (or) -25 (m) 10 (ula, data, subset, w) 10 (eights) 15 (, na.action, method = "qr", model = ...)] TJ
+ET
+Q q
+BT
+0.000 0.000 0.000 rg
+/F2 1 Tf 12.00 0.00 -0.00 12.00 268.41 523.44 Tm [(Nor) -25 (mal Q-Q)] TJ
+ET
+Q q
+BT
+0.000 0.000 0.000 rg
+/F2 1 Tf 9.00 0.00 -0.00 9.00 80.67 87.71 Tm (8) Tj
+ET
+BT
+/F2 1 Tf 9.00 0.00 -0.00 9.00 519.13 469.73 Tm (6) Tj
+ET
+BT
+/F2 1 Tf 9.00 0.00 -0.00 9.00 439.56 458.21 Tm (7) Tj
+ET
+Q
+endstream
+endobj
+13 0 obj
+2841
+endobj
+14 0 obj
+<<
+/Type /Page
+/Parent 3 0 R
+/Contents 15 0 R
+/Resources 4 0 R
+>>
+endobj
+15 0 obj
+<<
+/Length 16 0 R
+>>
+stream
+q
+Q q 59.04 73.44 486.72 443.52 re W n
+Q q
+0.000 0.000 0.000 RG
+0.75 w
+[] 0 d
+1 J
+1 j
+10.00 M
+91.71 73.44 m 481.63 73.44 l S
+91.71 73.44 m 91.71 66.24 l S
+156.70 73.44 m 156.70 66.24 l S
+221.68 73.44 m 221.68 66.24 l S
+286.67 73.44 m 286.67 66.24 l S
+351.66 73.44 m 351.66 66.24 l S
+416.64 73.44 m 416.64 66.24 l S
+481.63 73.44 m 481.63 66.24 l S
+BT
+0.000 0.000 0.000 rg
+/F2 1 Tf 12.00 0.00 -0.00 12.00 85.04 47.52 Tm (30) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 -0.00 12.00 150.02 47.52 Tm (40) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 -0.00 12.00 215.01 47.52 Tm (50) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 -0.00 12.00 280.00 47.52 Tm (60) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 -0.00 12.00 344.98 47.52 Tm (70) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 -0.00 12.00 409.97 47.52 Tm (80) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 -0.00 12.00 474.96 47.52 Tm (90) Tj
+ET
+59.04 89.87 m 59.04 515.16 l S
+59.04 89.87 m 51.84 89.87 l S
+59.04 231.63 m 51.84 231.63 l S
+59.04 373.39 m 51.84 373.39 l S
+59.04 515.16 m 51.84 515.16 l S
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 41.76 81.53 Tm (0.0) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 41.76 223.29 Tm (0.5) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 41.76 365.05 Tm (1.0) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 41.76 506.82 Tm (1.5) Tj
+ET
+59.04 73.44 m
+545.76 73.44 l
+545.76 516.96 l
+59.04 516.96 l
+59.04 73.44 l
+S
+Q q
+BT
+0.000 0.000 0.000 rg
+/F2 1 Tf 12.00 0.00 -0.00 12.00 268.54 18.72 Tm [(Fitted v) 25 (alues)] TJ
+ET
+0.000 0.000 0.000 RG
+0.75 w
+[] 0 d
+1 J
+1 j
+10.00 M
+12.17 229.30 m
+11.30 230.85 l
+15.84 232.40 l
+4.26 234.47 l
+4.26 360.55 l
+S
+15.84 236.28 m
+6.77 236.28 l
+S
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 15.61 236.83 Tm (S) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 15.61 244.84 Tm (t) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 15.61 248.17 Tm (a) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 15.61 254.84 Tm (n) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 15.61 261.52 Tm (d) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 15.61 268.19 Tm (a) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 15.61 274.86 Tm (r) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 15.61 278.86 Tm (d) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 15.61 285.53 Tm (i) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 15.61 288.19 Tm (z) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 15.61 294.19 Tm (e) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 15.61 300.86 Tm (d) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 15.61 307.54 Tm ( ) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 15.61 310.87 Tm (r) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 15.61 314.87 Tm (e) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 15.61 321.54 Tm (s) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 15.61 327.54 Tm (i) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 15.61 330.20 Tm (d) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 15.61 336.88 Tm (u) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 15.61 343.55 Tm (a) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 15.61 350.22 Tm (l) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 15.61 352.88 Tm (s) Tj
+ET
+15.84 359.44 m
+6.77 359.44 l
+S
+Q q 59.04 73.44 486.72 443.52 re W n
+0.000 0.000 0.000 RG
+0.75 w
+[] 0 d
+1 J
+1 j
+10.00 M
+BT
+/F1 1 Tf 1 Tr 7.48 0 0 7.48 166.43 110.35 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 7.48 0 0 7.48 101.40 200.59 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 7.48 0 0 7.48 349.78 341.20 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 7.48 0 0 7.48 111.06 371.22 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 7.48 0 0 7.48 524.77 379.25 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 7.48 0 0 7.48 192.03 410.95 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 7.48 0 0 7.48 178.19 397.96 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 7.48 0 0 7.48 74.10 497.94 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 7.48 0 0 7.48 330.06 241.42 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 7.48 0 0 7.48 516.81 253.39 Tm (l) Tj 0 Tr
+ET
+1.000 0.000 0.000 RG
+77.07 461.38 m
+104.36 370.36 l
+114.02 345.81 l
+169.39 376.18 l
+181.15 388.28 l
+194.99 403.24 l
+333.02 304.25 l
+352.74 305.93 l
+519.77 321.89 l
+527.73 323.06 l
+S
+Q q
+BT
+0.000 0.000 0.000 rg
+/F2 1 Tf 12.00 0.00 -0.00 12.00 99.28 4.32 Tm [(function \(f) 30 (or) -25 (m) 10 (ula, data, subset, w) 10 (eights) 15 (, na.action, method = "qr", model = ...)] TJ
+ET
+Q q
+BT
+0.000 0.000 0.000 rg
+/F2 1 Tf 12.00 0.00 -0.00 12.00 261.21 523.44 Tm (Scale-Location) Tj
+ET
+Q q
+BT
+0.000 0.000 0.000 rg
+/F2 1 Tf 9.00 0.00 -0.00 9.00 80.67 498.38 Tm (8) Tj
+ET
+BT
+/F2 1 Tf 9.00 0.00 -0.00 9.00 186.39 411.40 Tm (6) Tj
+ET
+BT
+/F2 1 Tf 9.00 0.00 -0.00 9.00 172.54 398.40 Tm (7) Tj
+ET
+Q
+endstream
+endobj
+16 0 obj
+4322
+endobj
+17 0 obj
+<<
+/Type /Page
+/Parent 3 0 R
+/Contents 18 0 R
+/Resources 4 0 R
+>>
+endobj
+18 0 obj
+<<
+/Length 19 0 R
+>>
+stream
+q
+Q q 59.04 73.44 486.72 443.52 re W n
+Q q
+0.000 0.000 0.000 RG
+0.75 w
+[] 0 d
+1 J
+1 j
+10.00 M
+77.07 73.44 m 461.50 73.44 l S
+77.07 73.44 m 77.07 66.24 l S
+173.17 73.44 m 173.17 66.24 l S
+269.28 73.44 m 269.28 66.24 l S
+365.39 73.44 m 365.39 66.24 l S
+461.50 73.44 m 461.50 66.24 l S
+BT
+0.000 0.000 0.000 rg
+/F2 1 Tf 12.00 0.00 -0.00 12.00 68.73 47.52 Tm (0.0) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 -0.00 12.00 164.83 47.52 Tm (0.1) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 -0.00 12.00 260.94 47.52 Tm (0.2) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 -0.00 12.00 357.05 47.52 Tm (0.3) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 -0.00 12.00 453.16 47.52 Tm (0.4) Tj
+ET
+59.04 128.38 m 59.04 440.64 l S
+59.04 128.38 m 51.84 128.38 l S
+59.04 232.47 m 51.84 232.47 l S
+59.04 336.55 m 51.84 336.55 l S
+59.04 440.64 m 51.84 440.64 l S
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 41.76 121.54 Tm (-2) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 41.76 225.63 Tm (-1) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 41.76 333.22 Tm (0) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 41.76 437.30 Tm (1) Tj
+ET
+59.04 73.44 m
+545.76 73.44 l
+545.76 516.96 l
+59.04 516.96 l
+59.04 73.44 l
+S
+Q q
+BT
+0.000 0.000 0.000 rg
+/F2 1 Tf 12.00 0.00 -0.00 12.00 277.78 18.72 Tm [(Le) 30 (v) 25 (er) 10 (age)] TJ
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 12.96 234.26 Tm [(Standardiz) 15 (ed residuals)] TJ
+ET
+Q q 59.04 73.44 486.72 443.52 re W n
+0.000 0.000 0.000 RG
+0.75 w
+[] 0 d
+1 J
+1 j
+10.00 M
+BT
+/F1 1 Tf 1 Tr 7.48 0 0 7.48 200.58 334.65 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 7.48 0 0 7.48 279.49 350.59 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 7.48 0 0 7.48 403.96 417.45 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 7.48 0 0 7.48 524.77 229.56 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 7.48 0 0 7.48 461.00 223.57 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 7.48 0 0 7.48 186.13 469.62 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 7.48 0 0 7.48 216.88 458.94 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 7.48 0 0 7.48 490.02 115.59 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 7.48 0 0 7.48 341.39 364.73 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 7.48 0 0 7.48 520.06 298.23 Tm (l) Tj 0 Tr
+ET
+1.000 0.000 0.000 RG
+189.10 433.95 m
+203.55 424.65 l
+219.85 414.34 l
+282.45 379.59 l
+344.35 374.86 l
+406.92 335.40 l
+463.96 275.83 l
+492.98 246.97 l
+523.03 225.37 l
+527.73 222.96 l
+S
+0.745 0.745 0.745 RG
+0.75 w
+[ 0.00 4.00] 0 d
+59.04 336.55 m 545.76 336.55 l S
+77.07 73.44 m 77.07 516.96 l S
+Q q
+BT
+0.000 0.000 0.000 rg
+/F2 1 Tf 12.00 0.00 -0.00 12.00 99.28 4.32 Tm [(function \(f) 30 (or) -25 (m) 10 (ula, data, subset, w) 10 (eights) 15 (, na.action, method = "qr", model = ...)] TJ
+ET
+Q q 59.04 73.44 486.72 443.52 re W n
+1.000 0.000 0.000 RG
+0.75 w
+[ 3.00 5.00] 0 d
+1 J
+1 j
+10.00 M
+289.33 576.00 m
+290.46 575.18 l
+295.10 571.89 l
+299.74 568.69 l
+304.38 565.59 l
+309.02 562.57 l
+313.67 559.63 l
+318.31 556.76 l
+322.95 553.97 l
+327.59 551.24 l
+332.23 548.59 l
+336.88 545.99 l
+341.52 543.46 l
+346.16 540.98 l
+350.80 538.56 l
+355.44 536.19 l
+360.09 533.87 l
+364.73 531.60 l
+369.37 529.38 l
+374.01 527.20 l
+378.65 525.07 l
+383.29 522.97 l
+387.94 520.92 l
+392.58 518.90 l
+397.22 516.92 l
+401.86 514.98 l
+406.50 513.07 l
+411.15 511.20 l
+415.79 509.35 l
+420.43 507.54 l
+425.07 505.75 l
+429.71 504.00 l
+434.36 502.27 l
+439.00 500.57 l
+443.64 498.90 l
+448.28 497.25 l
+452.92 495.62 l
+457.56 494.02 l
+462.21 492.44 l
+466.85 490.89 l
+471.49 489.35 l
+476.13 487.84 l
+480.77 486.34 l
+485.42 484.87 l
+490.06 483.41 l
+494.70 481.97 l
+499.34 480.55 l
+503.98 479.15 l
+508.63 477.76 l
+513.27 476.39 l
+517.91 475.04 l
+522.55 473.70 l
+527.19 472.37 l
+531.83 471.06 l
+536.48 469.77 l
+541.12 468.48 l
+545.76 467.22 l
+S
+197.66 0.00 m
+202.26 7.16 l
+206.90 14.00 l
+211.55 20.50 l
+216.19 26.69 l
+220.83 32.60 l
+225.47 38.24 l
+230.11 43.64 l
+234.75 48.81 l
+239.40 53.78 l
+244.04 58.55 l
+248.68 63.13 l
+253.32 67.55 l
+257.96 71.81 l
+262.61 75.92 l
+267.25 79.90 l
+271.89 83.74 l
+276.53 87.45 l
+281.17 91.05 l
+285.82 94.54 l
+290.46 97.93 l
+295.10 101.22 l
+299.74 104.41 l
+304.38 107.52 l
+309.02 110.54 l
+313.67 113.48 l
+318.31 116.35 l
+322.95 119.14 l
+327.59 121.86 l
+332.23 124.52 l
+336.88 127.12 l
+341.52 129.65 l
+346.16 132.13 l
+350.80 134.55 l
+355.44 136.92 l
+360.09 139.24 l
+364.73 141.51 l
+369.37 143.73 l
+374.01 145.91 l
+378.65 148.04 l
+383.29 150.14 l
+387.94 152.19 l
+392.58 154.21 l
+397.22 156.18 l
+401.86 158.13 l
+406.50 160.04 l
+411.15 161.91 l
+415.79 163.76 l
+420.43 165.57 l
+425.07 167.35 l
+429.71 169.11 l
+434.36 170.83 l
+439.00 172.53 l
+443.64 174.21 l
+448.28 175.86 l
+452.92 177.48 l
+457.56 179.08 l
+462.21 180.66 l
+466.85 182.22 l
+471.49 183.76 l
+476.13 185.27 l
+480.77 186.77 l
+485.42 188.24 l
+490.06 189.70 l
+494.70 191.14 l
+499.34 192.56 l
+503.98 193.96 l
+508.63 195.35 l
+513.27 196.72 l
+517.91 198.07 l
+522.55 199.41 l
+527.19 200.73 l
+531.83 202.04 l
+536.48 203.34 l
+541.12 204.62 l
+545.76 205.89 l
+S
+424.78 576.00 m
+425.07 575.84 l
+429.71 573.36 l
+434.36 570.92 l
+439.00 568.51 l
+443.64 566.14 l
+448.28 563.81 l
+452.92 561.51 l
+457.56 559.25 l
+462.21 557.02 l
+466.85 554.81 l
+471.49 552.64 l
+476.13 550.50 l
+480.77 548.39 l
+485.42 546.30 l
+490.06 544.24 l
+494.70 542.21 l
+499.34 540.20 l
+503.98 538.21 l
+508.63 536.25 l
+513.27 534.31 l
+517.91 532.40 l
+522.55 530.51 l
+527.19 528.63 l
+531.83 526.78 l
+536.48 524.95 l
+541.12 523.13 l
+545.76 521.34 l
+S
+291.37 0.00 m
+295.10 3.74 l
+299.74 8.26 l
+304.38 12.65 l
+309.02 16.92 l
+313.67 21.08 l
+318.31 25.13 l
+322.95 29.08 l
+327.59 32.94 l
+332.23 36.70 l
+336.88 40.36 l
+341.52 43.95 l
+346.16 47.45 l
+350.80 50.88 l
+355.44 54.23 l
+360.09 57.50 l
+364.73 60.71 l
+369.37 63.86 l
+374.01 66.94 l
+378.65 69.96 l
+383.29 72.92 l
+387.94 75.82 l
+392.58 78.67 l
+397.22 81.47 l
+401.86 84.22 l
+406.50 86.92 l
+411.15 89.57 l
+415.79 92.18 l
+420.43 94.75 l
+425.07 97.27 l
+429.71 99.75 l
+434.36 102.19 l
+439.00 104.60 l
+443.64 106.96 l
+448.28 109.30 l
+452.92 111.59 l
+457.56 113.86 l
+462.21 116.09 l
+466.85 118.29 l
+471.49 120.46 l
+476.13 122.61 l
+480.77 124.72 l
+485.42 126.81 l
+490.06 128.87 l
+494.70 130.90 l
+499.34 132.91 l
+503.98 134.89 l
+508.63 136.85 l
+513.27 138.79 l
+517.91 140.71 l
+522.55 142.60 l
+527.19 144.48 l
+531.83 146.33 l
+536.48 148.16 l
+541.12 149.98 l
+545.76 151.77 l
+S
+69.84 87.84 m 91.44 87.84 l S
+BT
+0.000 0.000 0.000 rg
+/F2 1 Tf 12.00 0.00 -0.00 12.00 102.24 83.53 Tm (Cook's distance) Tj
+ET
+Q q
+0.000 0.000 0.000 RG
+0.75 w
+[] 0 d
+1 J
+1 j
+10.00 M
+545.76 151.77 m 545.76 516.96 l S
+545.76 151.77 m 545.76 151.77 l S
+545.76 205.89 m 545.76 205.89 l S
+545.76 467.22 m 545.76 467.22 l S
+BT
+1.000 0.000 0.000 rg
+/F2 1 Tf 9.00 0.00 -0.00 9.00 549.36 148.54 Tm (1) Tj
+ET
+BT
+/F2 1 Tf 9.00 0.00 -0.00 9.00 549.36 202.66 Tm (0.5) Tj
+ET
+BT
+/F2 1 Tf 9.00 0.00 -0.00 9.00 549.36 463.98 Tm (0.5) Tj
+ET
+BT
+0.000 0.000 0.000 rg
+/F2 1 Tf 12.00 0.00 -0.00 12.00 242.10 523.44 Tm [(Residuals vs Le) 30 (v) 25 (er) 10 (age)] TJ
+ET
+Q q
+BT
+0.000 0.000 0.000 rg
+/F2 1 Tf 9.00 0.00 -0.00 9.00 496.58 113.16 Tm (8) Tj
+ET
+BT
+/F2 1 Tf 9.00 0.00 -0.00 9.00 519.13 227.13 Tm (4) Tj
+ET
+BT
+/F2 1 Tf 9.00 0.00 -0.00 9.00 467.56 221.14 Tm (5) Tj
+ET
+Q
+endstream
+endobj
+19 0 obj
+6882
+endobj
+3 0 obj
+<<
+/Type /Pages
+/Kids [
+5 0 R
+8 0 R
+11 0 R
+14 0 R
+17 0 R
+]
+/Count 5
+/MediaBox [0 0 576 576]
+>>
+endobj
+4 0 obj
+<<
+/ProcSet [/PDF /Text]
+/Font << /F1 21 0 R /F2 22 0 R /F3 23 0 R >>
+/ExtGState << >>
+>>
+endobj
+20 0 obj
+<<
+/Type /Encoding
+/BaseEncoding /WinAnsiEncoding
+/Differences [ 45/minus 96/quoteleft
+144/dotlessi /grave /acute /circumflex /tilde /macron /breve /dotaccent
+/dieresis /.notdef /ring /cedilla /.notdef /hungarumlaut /ogonek /caron /space]
+>>
+endobj
+21 0 obj
+<<
+/Type /Font
+/Subtype /Type1
+/Name /F1
+/BaseFont /ZapfDingbats
+>>
+endobj
+22 0 obj <<
+/Type /Font
+/Subtype /Type1
+/Name /F2
+/BaseFont /Helvetica
+/Encoding 20 0 R
+>> endobj
+23 0 obj <<
+/Type /Font
+/Subtype /Type1
+/Name /F3
+/BaseFont /Helvetica-Bold
+/Encoding 20 0 R
+>> endobj
+xref
+0 24
+0000000000 65535 f
+0000000021 00000 n
+0000000164 00000 n
+0000027491 00000 n
+0000027601 00000 n
+0000000213 00000 n
+0000000293 00000 n
+0000009707 00000 n
+0000009727 00000 n
+0000009807 00000 n
+0000012951 00000 n
+0000012972 00000 n
+0000013054 00000 n
+0000015950 00000 n
+0000015971 00000 n
+0000016053 00000 n
+0000020430 00000 n
+0000020451 00000 n
+0000020533 00000 n
+0000027470 00000 n
+0000027706 00000 n
+0000027964 00000 n
+0000028048 00000 n
+0000028146 00000 n
+trailer
+<<
+/Size 24
+/Info 1 0 R
+/Root 2 0 R
+>>
+startxref
+28249
+%%EOF
diff -r 5c268e401913 -r ab1c33257cb3 test-data/regr_out.tabular
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/regr_out.tabular Wed Feb 03 13:53:16 2010 -0500
@@ -0,0 +1,10 @@
+Y-intercept -28.1169126094
+p-value (Y-intercept) 0.294263204753
+Slope (c1) 5.74713412453
+p-value (c1) 0.0017328770415
+Slope (c2) 0.904274537427
+p-value (c2) 0.114667546826
+R-squared 0.938805439971
+Adjusted R-squared 0.921321279962
+F-statistic {'dendf': 7.0, 'value': 53.694626422997374, 'numdf': 2.0}
+Sigma 7.43450071131
diff -r 5c268e401913 -r ab1c33257cb3 tools/extract/liftOver_wrapper.xml
--- a/tools/extract/liftOver_wrapper.xml Wed Feb 03 12:21:29 2010 -0500
+++ b/tools/extract/liftOver_wrapper.xml Wed Feb 03 13:53:16 2010 -0500
@@ -14,7 +14,7 @@
<filter type="data_meta" ref="input" key="dbkey" column="0" />
</options>
</param>
- <param name="minMatch" size="10" type="float" value="0.10" label="Minimum ratio of bases that must remap" />
+ <param name="minMatch" size="10" type="float" value="0.95" label="Minimum ratio of bases that must remap" />
</inputs>
<outputs>
<data format="input" name="out_file1" />
@@ -23,17 +23,17 @@
<requirements>
<requirement type="binary">liftOver</requirement>
</requirements>
- <!--
+
<tests>
<test>
<param name="input" value="5.bed" dbkey="hg18" ftype="bed" />
<param name="to_dbkey" value="/depot/data2/galaxy/hg18/liftOver/hg18ToPanTro2.over.chain" />
- <param name="misMatch" value="0.95" />
+ <param name="minMatch" value="0.95" />
<output name="out_file1" file="5_liftover_mapped.bed"/>
<output name="out_file2" file="5_liftover_unmapped.bed"/>
</test>
</tests>
- -->
+
<help>
.. class:: warningmark
diff -r 5c268e401913 -r ab1c33257cb3 tools/regVariation/linear_regression.xml
--- a/tools/regVariation/linear_regression.xml Wed Feb 03 12:21:29 2010 -0500
+++ b/tools/regVariation/linear_regression.xml Wed Feb 03 13:53:16 2010 -0500
@@ -24,8 +24,13 @@
<requirement type="python-module">rpy</requirement>
</requirements>
<tests>
- <!-- Testing this tool will not be possible because this tool produces a pdf output file.
- -->
+ <test>
+ <param name="input1" value="regr_inp.tabular"/>
+ <param name="response_col" value="3"/>
+ <param name="predictor_cols" value="1,2"/>
+ <output name="out_file1" file="regr_out.tabular"/>
+ <output name="out_file2" file="regr_out.pdf"/>
+ </test>
</tests>
<help>
1
0

09 Feb '10
details: http://www.bx.psu.edu/hg/galaxy/rev/5c268e401913
changeset: 3322:5c268e401913
user: gua110
date: Wed Feb 03 12:21:29 2010 -0500
description:
Fixed functional tests for two hyphy tools. The test for the 3rd one (nj tree) with multiple outputs with one of them being a pdf file, has been commented out as it is failing because of the pdf.
diffstat:
test-data/branchlength_in.fasta | 44 +++++++++++++++++++++++++++
test-data/branchlength_out.tabular | 33 ++++++++++++++++++++
test-data/dnds_out.tabular | 22 ++++++------
test-data/nj_tree_newick_out.tabular | 10 ++++++
test-data/nj_tree_pdf_out.pdf | 0
tools/hyphy/hyphy_branch_lengths_wrapper.xml | 6 +-
tools/hyphy/hyphy_dnds_wrapper.xml | 2 +-
tools/hyphy/hyphy_nj_tree_wrapper.xml | 9 +++-
8 files changed, 108 insertions(+), 18 deletions(-)
diffs (189 lines):
diff -r 00ca468e6050 -r 5c268e401913 test-data/branchlength_in.fasta
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/branchlength_in.fasta Wed Feb 03 12:21:29 2010 -0500
@@ -0,0 +1,44 @@
+>hg17.chr7(+):26907301-26907310|hg17_0
+GTGGGAGGT
+>panTro1.chr6(+):28037319-28037328|panTro1_0
+GTGGGAGGT
+>mm5.chr6(+):52104022-52104031|mm5_0
+GTGGGAGGT
+>rn3.chr4(+):80734395-80734404|rn3_0
+GTGGGAGGT
+>canFam1.chr14(+):42826409-42826418|canFam1_0
+GTGGGAGGT
+
+>hg17.chr7(+):26907310-26907326|hg17_1
+AGTCAGAGTGTCTGAG
+>panTro1.chr6(+):28037328-28037344|panTro1_1
+AGTCAGAGTGTCTGAG
+>mm5.chr6(+):52104031-52104047|mm5_1
+AGTCAGAGTGTCTGAG
+>rn3.chr4(+):80734404-80734420|rn3_1
+AGTCAGAGTATCTGAG
+>canFam1.chr14(+):42826418-42826434|canFam1_1
+AGTCAGAGTGTCTGAG
+
+>hg17.chr7(+):26907326-26907338|hg17_2
+GTAGAAGACCCC
+>panTro1.chr6(+):28037344-28037356|panTro1_2
+GTAGAAGACCCC
+>mm5.chr6(+):52104047-52104059|mm5_2
+GTAGACGATGCC
+>rn3.chr4(+):80734420-80734432|rn3_2
+GTAGATGATGCG
+>canFam1.chr14(+):42826434-42826446|canFam1_2
+GTAGAAGACCCC
+
+>hg17.chr7(+):26907338-26907654|hg17_3
+GGGGAAGGAACGCAGGGCGAAGAGCTGGACTTCTCTGAGGAT---TCCTCGGCCTTCTCGT-----CGTTTCCTGG----CGGGGTGGCCGGAGAGATGGGCAAGAGACCCTCCTTCTCACGTTTCTTTTGCTTCATTCGGCGGTTCTGGAACCAGATCTTCACTTGGGTCTCGTTGAGCTGCAGGGATGCAGCGATCTCCACCCTGCGGGCGCGCGTCAGGTACTTGTTGAAGTGGAACTCCTTCTCCAGTTCCGTGAGCTGCTTGGTAGTGAAGTTGGTGCGCACCGCGTTGGGTTGACCCAGGTAGCCGTACTCTCCAACTTTCC
+>panTro1.chr6(+):28037356-28037672|panTro1_3
+GGGGAAGGAACGCAGGGCGAAGAGCTGGACTTCTCTGAGGAT---TCCTCGGCCTTCTCGT-----CGTTTCCTGG----CGGGGTGGCCGGAGAGATGGGCAAGAGACCCTCCTTCTCACGTTTCTTTTGCTTCATTCGGCGGTTCTGGAACCAGATCTTCACTTGGGTCTCGTTGAGCTGCAGGGATGCAGCGATCTCCACCCTGCGGGCGCGCGTCAGGTACTTGTTGAAGTGGAACTCCTTCTCCAGTTCCGTGAGCTGCTTGGTAGTGAAGTTGGTGCGCACCGCGTTGGGTTGACCCAGGTAGCCGTACTCTCCAACTTTCC
+>mm5.chr6(+):52104059-52104375|mm5_3
+GGAGAAGGGGCACTGGGCGAGGGGCTAGATTTCTCAGATGAT---TCTTCCGTTTTCTCAT-----CGCTGCCAGG----AGGAGTGGCAGGGGAGATGGGCAGGAGCCCCTCCTTCTCACGCTTCTTCTGCTTCATGCGGCGATTCTGGAACCAGATCTTCACCTGGGTCTCATTGAGCTGTAGGGACGCGGCAATCTCCACCCTGCGCGCTCGTGTAAGGTACTTGTTGAAGTGGAACTCCTTCTCCAGCTCTGTGAGCTGCTTGGTGGTGAAATTGGTGCGCACTGCGTTGGGTTGACCCACGTAGCCGTACTCTCCAACTTTCC
+>rn3.chr4(+):80734432-80734748|rn3_3
+GGAGAAGGGGCGCTGGGCGAGGAGCTGGATTTCTCAGATGAT---TCTTCAGTTTTCTCAT-----CGCTTCCAGG----AGGGGTGGCGGGTGAAATGGGCAAGAGCCCCTCTTTCTCGCGCTTCTTCTGCTTCATGCGGCGATTCTGGAACCAGATCTTCACCTGGGTCTCATTGAGTTGCAGGGACGCGGCTATCTCCACCCTGCGGGCTCTTGTTAGGTACTTGTTGAAGTGGAACTCCTTCTCCAGCTCTGTGAGCTGCTTGGTGGTGAAGTTGGTGCGCACTGCGTTGGGTTGACCCACGTAGCCATACTCTCCAACTTTCC
+>canFam1.chr14(+):42826446-42826762|canFam1_3
+GGAGACGGAATGCAGGGCGAGGAGCTGGATTTCTCTGAAGAT---TCCTCCGCCTTCTCCT-----CACTTCCTGG----CGGGGTGGCAGGGGAGATGGGCAAAAGGCCCTCTTTCTCTCGTTTCTTCTGCTTCATCCGGCGGTTCTGGAACCAGATCTTCACCTGGGTCTCGTTGAGCTGCAGGGATGCTGCGATCTCCACCCTGCGGGCGCGGGTCAGATACTTATTGAAGTGGAACTCCTTTTCCAGCTCGGTGAGCTGCTTGGTGGTGAAGTTGGTACGCACTGCATTCGGTTGACCCACGTAGCCGTACTCTCCAACTTTCC
+
diff -r 00ca468e6050 -r 5c268e401913 test-data/branchlength_out.tabular
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/branchlength_out.tabular Wed Feb 03 12:21:29 2010 -0500
@@ -0,0 +1,33 @@
+Block Branch Length LowerBound UpperBound
+1 hg17.chr7(+):26907301-26907310|hg17_0 0 0 0.235398
+1 panTro1.chr6(+):28037319-28037328|panTro1_0 0 0 0.235398
+1 Node1 0 0 0.235398
+1 mm5.chr6(+):52104022-52104031|mm5_0 0 0 0.235398
+1 rn3.chr4(+):80734395-80734404|rn3_0 0 0 0.235398
+1 Node4 0 0 0.235398
+1 canFam1.chr14(+):42826409-42826418|canFam1_0 0 0 0.235398
+1 Total Tree 0 0 0
+2 hg17.chr7(+):26907310-26907326|hg17_1 0 0 0.13592
+2 panTro1.chr6(+):28037328-28037344|panTro1_1 0 0 0.13592
+2 Node1 0 0 0.13592
+2 mm5.chr6(+):52104031-52104047|mm5_1 0 0 0.13592
+2 rn3.chr4(+):80734404-80734420|rn3_1 0.069102 0.00372954 0.421886
+2 Node4 0 0 0.13592
+2 canFam1.chr14(+):42826418-42826434|canFam1_1 0 0 0.13592
+2 Total Tree 0.069102 0.00372954 0.421893
+3 hg17.chr7(+):26907326-26907338|hg17_2 0 0 0.167602
+3 panTro1.chr6(+):28037344-28037356|panTro1_2 0 0 0.167602
+3 Node1 0 0 0.167602
+3 mm5.chr6(+):52104047-52104059|mm5_2 0 0 0.250304
+3 rn3.chr4(+):80734420-80734432|rn3_2 0.198834 0.0311152 0.746578
+3 Node4 0.3077 0.0691968 1.10319
+3 canFam1.chr14(+):42826434-42826446|canFam1_2 0 0 0.167602
+3 Total Tree 0.506533 0.169204 1.27895
+4 hg17.chr7(+):26907338-26907654|hg17_3 0 0 0.0061265
+4 panTro1.chr6(+):28037356-28037672|panTro1_3 0 0 0.0061265
+4 Node1 0.058307 0.0318704 0.0951274
+4 mm5.chr6(+):52104059-52104375|mm5_3 0.0357629 0.0167852 0.0644078
+4 rn3.chr4(+):80734432-80734748|rn3_3 0.0320295 0.0141343 0.0594854
+4 Node4 0.0770194 0.0463495 0.118484
+4 canFam1.chr14(+):42826446-42826762|canFam1_3 0.0575357 0.0316289 0.0936537
+4 Total Tree 0.260654 0.205256 0.325686
diff -r 00ca468e6050 -r 5c268e401913 test-data/dnds_out.tabular
--- a/test-data/dnds_out.tabular Wed Feb 03 11:35:28 2010 -0500
+++ b/test-data/dnds_out.tabular Wed Feb 03 12:21:29 2010 -0500
@@ -1,12 +1,12 @@
BLOCK BP S_sites NS_sites Stop_codons LogL omega omega_range AC AT CG CT GT Tree
-1 1554 355.669 1129.12 1 -2747.41 0.101087 0.0764772-0.130598 1 1 1 1 1 (human:0,chimp:0.0024086,mouse:0.146678)
-2 3795 924.935 2749.35 1 -5781.01 0.0179487 0.0119926-0.0256204 1 1 1 1 1 (human:0.000420365,chimp:0.00148429,mouse:0.144946)
-3 1194 272.323 881.914 1 -2043.72 0.057806 0.0372158-0.0849625 1 1 1 1 1 (human:0.00284622,chimp:0.0041096,mouse:0.119889)
-4 1146 248.261 850.364 1 -1871.67 0.0127683 0.00548023-0.0247365 1 1 1 1 1 (human:1.64845e-31,chimp:0.000931909,mouse:0.147211)
-5 1500 366.374 1086.09 2 -2522.97 0.0331759 0.0203729-0.0505178 1 1 1 1 1 (human:0,chimp:0.00225973,mouse:0.156094)
-6 3444 824.107 2475.54 1 -5459.18 0.0439729 0.032642-0.0576888 1 1 1 1 1 (human:0.000513623,chimp:0.00203456,mouse:0.126654)
-7 2175 505.186 1587.7 0 -3307.52 0.0711481 0.0563562-0.0883841 1 1 1 1 1 (human:0.0022939,chimp:0.00236854,mouse:0.226516)
-8 3519 792.702 2601.36 0 -6219.39 0.0669805 0.0568888-0.0782017 1 1 1 1 1 (human:0.00102641,chimp:0.00431646,mouse:0.25132)
-9 501 100.22 376.039 1 -834.329 0.130019 0.0833975-0.191896 1 1 1 1 1 (human:0,chimp:2.19778e-31,mouse:0.150592)
-10 633 160.252 453.228 1 -618.997 0.0150806 0.00250396-0.0467057 1 1 1 1 1 (human:0,chimp:0.00611203,mouse:0.104319)
-11 915 229.705 658.82 0 -1664.02 0.299406 0.227634-0.385273 1 1 1 1 1 (human:0.00457505,chimp:3.44909e-31,mouse:0.145589)
+1 1554 355.669 1129.12 1 -2747.41 0.101091 0.0764852-0.130612 1 1 1 1 1 (human:0,chimp:0.00240807,mouse:0.146665)
+2 3795 924.935 2749.35 1 -5781.01 0.0179472 0.0119925-0.0256202 1 1 1 1 1 (human:0.000420081,chimp:0.00148421,mouse:0.144947)
+3 1194 272.323 881.914 1 -2043.72 0.0578031 0.0372143-0.084959 1 1 1 1 1 (human:0.00284673,chimp:0.00410898,mouse:0.119894)
+4 1146 248.261 850.364 1 -1871.67 0.0127675 0.00548017-0.0247362 1 1 1 1 1 (human:0,chimp:0.000930953,mouse:0.147214)
+5 1500 366.374 1086.09 2 -2522.97 0.0331798 0.020375-0.0505273 1 1 1 1 1 (human:0,chimp:0.00225972,mouse:0.15608)
+6 3444 824.107 2475.54 1 -5459.18 0.0439794 0.0326464-0.0577021 1 1 1 1 1 (human:0.000511634,chimp:0.00203553,mouse:0.12664)
+7 2175 505.186 1587.7 0 -3307.52 0.0711476 0.0563725-0.088397 1 1 1 1 1 (human:0.00229288,chimp:0.00236918,mouse:0.226482)
+8 3519 792.702 2601.36 0 -6219.39 0.0669744 0.0568959-0.0782191 1 1 1 1 1 (human:0.00102613,chimp:0.00431639,mouse:0.251285)
+9 501 100.22 376.039 1 -834.329 0.130018 0.0833903-0.191879 1 1 1 1 1 (human:0,chimp:0,mouse:0.150605)
+10 633 160.252 453.228 1 -618.997 0.0151077 0.00250472-0.0467226 1 1 1 1 1 (human:0,chimp:0.00611289,mouse:0.104294)
+11 915 229.705 658.82 0 -1664.02 0.299399 0.227668-0.385279 1 1 1 1 1 (human:0.00457673,chimp:0,mouse:0.145584)
diff -r 00ca468e6050 -r 5c268e401913 test-data/nj_tree_newick_out.tabular
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/nj_tree_newick_out.tabular Wed Feb 03 12:21:29 2010 -0500
@@ -0,0 +1,10 @@
+0 (hg17,panTro1,(rheMac2,(rn3,mm7))) (hg17.chr7(+):127471195-127471526|hg17_0:0.00283776,panTro1.chr6(+):129885076-129885407|panTro1_0:0.00323907,(rheMac2.chr3(+):165787989-165788319|rheMac2_0:0.0324438,(rn3.chr4(+):56178191-56178473|rn3_0:0.0264183,mm7.chr6(+):28984529-28984886|mm7_0:0.148227):0.457076):0.00849339)
+1 ((hg17,panTro1),mm7,rheMac2) ((hg17.chr7(+):127471526-127471584|hg17_1:0.00446699,panTro1.chr6(+):129885407-129885465|panTro1_1:0.013401):0.00483543,mm7.chr6(+):28984886-28984940|mm7_1:999.986,rheMac2.chr3(+):165788319-165788377|rheMac2_1:0.0137694)
+2 ((((hg17,panTro1),rheMac2),(canFam2,dasNov1)),bosTau2,rn3) ((((hg17.chr7(+):127471584-127471688|hg17_2:0.00103752,panTro1.chr6(+):129885465-129885569|panTro1_2:0.018681):0.00493709,rheMac2.chr3(+):165788377-165788482|rheMac2_2:0.0691856):0.106183,(canFam2.chr14(-):11090703-11090811|canFam2_2:0.213381,dasNov1.scaffold_256527(+):298-392|dasNov1_2:0.123834):0.0305914):0.028679,bosTau2.chr4(-):50243931-50244034|bosTau2_2:0.170682,rn3.chr4(+):56182200-56182295|rn3_2:0.285956)
+3 ((hg17,panTro1),rheMac2,(rn3,(bosTau2,(canFam2,dasNov1)))) ((hg17.chr7(+):127471688-127471871|hg17_3:0.0225878,panTro1.chr6(+):129885569-129885752|panTro1_3:0):0.0221216,rheMac2.chr3(+):165788482-165788684|rheMac2_3:0.0429855,(rn3.chr4(+):56182295-56182489|rn3_3:0.286513,(bosTau2.chr4(-):50243792-50243930|bosTau2_3:0.135108,(canFam2.chr14(-):11090345-11090505|canFam2_3:0.0418005,dasNov1.scaffold_256527(+):393-625|dasNov1_3:0.198071):0.0128256):0.0852898):0.0472209)
+4 ((hg17,rheMac2),panTro1,((bosTau2,canFam2),dasNov1)) ((hg17.chr7(+):127471871-127471910|hg17_4:0,rheMac2.chr3(+):165788684-165788723|rheMac2_4:0.0586327):0,panTro1.chr6(+):129885752-129885791|panTro1_4:0,((bosTau2.chr4(-):50243734-50243773|bosTau2_4:0.462377,canFam2.chr14(-):11090081-11090120|canFam2_4:0.199446):0.119837,dasNov1.scaffold_256527(+):625-665|dasNov1_4:0.17977):0.172715)
+5 ((hg17,panTro1),rheMac2,((mm7,rn3),((bosTau2,dasNov1),canFam2))) ((hg17.chr7(+):127471910-127472074|hg17_5:0.000139728,panTro1.chr6(+):129885791-129885955|panTro1_5:0.0184104):0.05206,rheMac2.chr3(+):165788723-165788885|rheMac2_5:0.0285966,((mm7.chr6(+):28990714-28990875|mm7_5:0.123289,rn3.chr4(+):56183448-56183705|rn3_5:0.0718529):0.38361,((bosTau2.chr4(-):50243566-50243734|bosTau2_5:0.181878,dasNov1.scaffold_256527(+):665-786|dasNov1_5:0.429124):0.0618692,canFam2.chr14(-):11089913-11090081|canFam2_5:0.133548):0.11305):0.0250925)
+6 ((hg17,panTro1),rheMac2,((mm7,rn3),(canFam2,dasNov1))) ((hg17.chr7(+):127472074-127472258|hg17_6:0.00549431,panTro1.chr6(+):129885955-129886139|panTro1_6:0):0.0241181,rheMac2.chr3(+):165788885-165789069|rheMac2_6:0.0447415,((mm7.chr6(+):28990875-28991025|mm7_6:0.0851965,rn3.chr4(+):56183705-56183879|rn3_6:0.109546):0.319094,(canFam2.chr14(-):11089743-11089913|canFam2_6:0.186816,dasNov1.scaffold_256527(+):786-964|dasNov1_6:0.219003):0.0699235):0.0966238)
+7 (((hg17,(canFam2,dasNov1)),panTro1),rheMac2,(mm7,rn3)) (((hg17.chr7(+):127472258-127472280|hg17_7:0,(canFam2.chr14(-):11089526-11089548|canFam2_7:0.572157,dasNov1.scaffold_256527(+):964-987|dasNov1_7:0.212507):0.327632):0,panTro1.chr6(+):129886139-129886161|panTro1_7:0):0,rheMac2.chr3(+):165789069-165789091|rheMac2_7:0,(mm7.chr6(+):28991025-28991048|mm7_7:0.0708909,rn3.chr4(+):56183879-56183902|rn3_7:0.0230732):125.221)
+8 (((hg17,panTro1),rheMac2),(rn3,canFam2),dasNov1) (((hg17.chr7(+):127472280-127472681|hg17_8:0.00753956,panTro1.chr6(+):129886161-129886562|panTro1_8:0):0.0353922,rheMac2.chr3(+):165789091-165789492|rheMac2_8:0.0278572):0.0967916,(rn3.chr4(+):56183902-56184219|rn3_8:0.379264,canFam2.chr14(-):11089143-11089523|canFam2_8:0.207268):0.0346594,dasNov1.scaffold_256527(+):987-1401|dasNov1_8:0.268281)
+9 (hg17,((rheMac2,dasNov1),canFam2),panTro1) (hg17.chr7(+):127472681-127472715|hg17_9:0.0183718,((rheMac2.chr3(+):165789492-165789526|rheMac2_9:0,dasNov1.scaffold_256527(+):1401-1433|dasNov1_9:0.160078):0.0595979,canFam2.chr14(-):11089108-11089143|canFam2_9:0.237132):0.0383088,panTro1.chr6(+):129886562-129886596|panTro1_9:0.0152865)
diff -r 00ca468e6050 -r 5c268e401913 test-data/nj_tree_pdf_out.pdf
Binary file test-data/nj_tree_pdf_out.pdf has changed
diff -r 00ca468e6050 -r 5c268e401913 tools/hyphy/hyphy_branch_lengths_wrapper.xml
--- a/tools/hyphy/hyphy_branch_lengths_wrapper.xml Wed Feb 03 11:35:28 2010 -0500
+++ b/tools/hyphy/hyphy_branch_lengths_wrapper.xml Wed Feb 03 12:21:29 2010 -0500
@@ -1,4 +1,4 @@
-<?xml version="1.2.0"?>
+<?xml version="1.2.1"?>
<tool name="Branch Lengths" id="hyphy_branch_lengths_wrapper1">
<description>Estimation</description>
@@ -31,11 +31,11 @@
</outputs>
<tests>
<test>
- <param name="input1" value="branchlength_fasta_in.dat"/>
+ <param name="input1" value="branchlength_in.fasta"/>
<param name="tree" value="((hg17,panTro1),(mm5,rn3),canFam1)"/>
<param name="model" value="012345"/>
<param name="base_freq" value="Observed"/>
- <output name="out_file1" file="branchlength_out.dat"/>
+ <output name="out_file1" file="branchlength_out.tabular"/>
</test>
</tests>
<help>
diff -r 00ca468e6050 -r 5c268e401913 tools/hyphy/hyphy_dnds_wrapper.xml
--- a/tools/hyphy/hyphy_dnds_wrapper.xml Wed Feb 03 11:35:28 2010 -0500
+++ b/tools/hyphy/hyphy_dnds_wrapper.xml Wed Feb 03 12:21:29 2010 -0500
@@ -1,4 +1,4 @@
-<?xml version="1.1.0"?>
+<?xml version="1.1.1"?>
<tool name="dN/dS Ratio" id="hyphy_dnds_wrapper1">
<description>Estimation</description>
diff -r 00ca468e6050 -r 5c268e401913 tools/hyphy/hyphy_nj_tree_wrapper.xml
--- a/tools/hyphy/hyphy_nj_tree_wrapper.xml Wed Feb 03 11:35:28 2010 -0500
+++ b/tools/hyphy/hyphy_nj_tree_wrapper.xml Wed Feb 03 12:21:29 2010 -0500
@@ -1,4 +1,4 @@
-<?xml version="1.1.0"?>
+<?xml version="1.1.1"?>
<tool name="Neighbor Joining Tree" id="hyphy_nj_tree_wrapper1">
<description>Builder</description>
@@ -29,14 +29,17 @@
<requirements>
<requirement type="binary">ps2pdf</requirement>
</requirements>
+ <!--
+ test fails for pdf generated by hyphy. Commenting out that particular output breaks the test again.
<tests>
<test>
<param name="input1" value="cf_maf2fasta.dat"/>
<param name="distance_metric" value="TN93"/>
- <output name="out_file1" file="nj_tree_newick_out.dat"/>
-<!-- <output name="out_file2" file="nj_tree_pdf_out.dat"/> generated tests can currently check only one file-->
+ <output name="out_file1" file="nj_tree_newick_out.tabular"/>
+ <output name="out_file2" file="nj_tree_pdf_out.pdf"/>
</test>
</tests>
+ -->
<help>
This tool takes a single or multiple FASTA alignment file and builds Neighbor Joining Trees using HYPHY_, a maximum likelihood analyses package.
1
0

09 Feb '10
details: http://www.bx.psu.edu/hg/galaxy/rev/00ca468e6050
changeset: 3321:00ca468e6050
user: jeremy goecks <jeremy.goecks(a)emory.edu>
date: Wed Feb 03 11:35:28 2010 -0500
description:
Escape more user-generated data: history name, workflow name, workflow annotation.
diffstat:
templates/root/history.mako | 2 +-
templates/workflow/editor.mako | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diffs (33 lines):
diff -r 7df2ad00be1d -r 00ca468e6050 templates/root/history.mako
--- a/templates/root/history.mako Wed Feb 03 11:30:06 2010 -0500
+++ b/templates/root/history.mako Wed Feb 03 11:35:28 2010 -0500
@@ -276,7 +276,7 @@
<div id="history-name-area" class="historyLinks" style="color: gray; font-weight: bold;">
<div style="float: right"><a id="history-rename" title="Rename" class="icon-button edit" target="galaxy_main" href="${h.url_for( controller='history', action='rename' )}"></a></div>
- <div id="history-name">${history.get_display_name()}</div>
+ <div id="history-name">${h.escape( history.get_display_name() )}</div>
</div>
%if history.deleted:
diff -r 7df2ad00be1d -r 00ca468e6050 templates/workflow/editor.mako
--- a/templates/workflow/editor.mako Wed Feb 03 11:30:06 2010 -0500
+++ b/templates/workflow/editor.mako Wed Feb 03 11:35:28 2010 -0500
@@ -784,7 +784,7 @@
<div id="workflow-name-area" class="form-row">
<label>Name:</label>
<div style="float: right"><a id="workflow-rename" title="Rename" class="icon-button edit" target="galaxy_main" href="${h.url_for( controller='workflow', action='rename_sync' )}"></a></div>
- <div id="workflow-name">${stored.name}</div>
+ <div id="workflow-name">${h.escape( stored.name )}</div>
<div style="clear: both"></div>
</div>
## Workflow tags.
@@ -809,7 +809,7 @@
<div id="workflow-annotation-area" class="form-row">
<label>Annotation / Notes:</label>
<div style="float: right"><a id="workflow-annotate" title="Annotate" class="icon-button edit" target="galaxy_main" href="${h.url_for( controller='workflow', action='annotate_async' )}"></a></div>
- <div id="workflow-annotation">${annotation}</div>
+ <div id="workflow-annotation">${h.escape( annotation )}</div>
<div style="clear: both"></div>
<div class="toolParamHelp">Add an annotation or notes to a workflow; annotations are available when a workflow is viewed.</div>
</div>
1
0
details: http://www.bx.psu.edu/hg/galaxy/rev/7df2ad00be1d
changeset: 3320:7df2ad00be1d
user: jeremy goecks <jeremy.goecks(a)emory.edu>
date: Wed Feb 03 11:30:06 2010 -0500
description:
Merge in history.mako.
diffstat:
templates/root/history.mako | 6 ------
1 files changed, 0 insertions(+), 6 deletions(-)
diffs (23 lines):
diff -r 63201eefad88 -r 7df2ad00be1d templates/root/history.mako
--- a/templates/root/history.mako Wed Feb 03 11:27:21 2010 -0500
+++ b/templates/root/history.mako Wed Feb 03 11:30:06 2010 -0500
@@ -308,11 +308,6 @@
## Annotation elt.
<div id="history-annotation-area" class="form-row">
-<<<<<<< local
- <label>Annotation / Notes:</label>
- <div style="float: right"><a id="history-annotate" title="Annotate" class="icon-button edit" target="galaxy_main" href="${h.url_for( controller='history', action='annotate_async' )}"></a></div>
- <div id="history-annotation">${annotation}</div>
-=======
<label>Annotation / Notes:</label>
<div style="float: right"><a id="history-annotate" title="Annotate" class="icon-button edit" target="galaxy_main" href="${h.url_for( controller='history', action='annotate_async' )}"></a></div>
%if annotation:
@@ -320,7 +315,6 @@
%else:
<div id="history-annotation"></div>
%endif
->>>>>>> other
<div style="clear: both"></div>
</div>
</div>
1
0

09 Feb '10
details: http://www.bx.psu.edu/hg/galaxy/rev/63201eefad88
changeset: 3319:63201eefad88
user: jeremy goecks <jeremy.goecks(a)emory.edu>
date: Wed Feb 03 11:27:21 2010 -0500
description:
Added functionality to insert links to pages, datasets, and workflows into pages; button images are not done yet, however. Also refactored grid code to use shared columns defined in controller.py, replaced tabs with spaces in mako files, and made change to show right panel for all shared items regardless of whether they are published.
diffstat:
lib/galaxy/web/base/controller.py | 24 +-
lib/galaxy/web/buildapp.py | 1 +
lib/galaxy/web/controllers/admin.py | 27 --
lib/galaxy/web/controllers/dataset.py | 57 ++++-
lib/galaxy/web/controllers/forms.py | 9 -
lib/galaxy/web/controllers/history.py | 23 +-
lib/galaxy/web/controllers/library_admin.py | 9 -
lib/galaxy/web/controllers/page.py | 224 +++++++++++++++---
lib/galaxy/web/controllers/requests.py | 9 -
lib/galaxy/web/controllers/requests_admin.py | 18 -
lib/galaxy/web/controllers/root.py | 1 -
lib/galaxy/web/controllers/workflow.py | 29 ++
static/wymeditor/lang/en.js | 2 +
templates/dataset/display.mako | 103 ++++++++
templates/display_base.mako | 71 ++---
templates/display_common.mako | 2 +
templates/grid_base.mako | 30 +-
templates/page/editor.mako | 124 +++++++--
templates/page/select_histories_grid.mako | 13 -
templates/page/select_histories_grid_async.mako | 8 -
templates/page/select_items_grid.mako | 13 +
templates/page/select_items_grid_async.mako | 8 +
templates/root/history.mako | 24 +-
templates/root/history_common.mako | 74 +++---
templates/sharing_base.mako | 290 ++++++++++++------------
templates/workflow/edit_attributes.mako | 40 +-
templates/workflow/editor.mako | 101 ++++----
27 files changed, 826 insertions(+), 508 deletions(-)
diffs (1881 lines):
diff -r 1a3339f017e9 -r 63201eefad88 lib/galaxy/web/base/controller.py
--- a/lib/galaxy/web/base/controller.py Wed Feb 03 10:31:26 2010 -0500
+++ b/lib/galaxy/web/base/controller.py Wed Feb 03 11:27:21 2010 -0500
@@ -17,13 +17,13 @@
# Useful columns in many grids used by controllers.
-# Item's user/owner.
class OwnerColumn( grids.TextColumn ):
+ """ Column that lists item's owner. """
def get_value( self, trans, grid, item ):
return item.user.username
-# Item's public URL based on username and slug.
class PublicURLColumn( grids.TextColumn ):
+ """ Column displays item's public URL based on username and slug. """
def get_link( self, trans, grid, item ):
if item.user.username and item.slug:
return dict( action='display_by_username_and_slug', username=item.user.username, slug=item.slug )
@@ -33,7 +33,18 @@
elif not item.user.slug:
# TODO: provide link to set slg
return None
-
+
+class DeletedColumn( grids.GridColumn ):
+ """ Column that tracks and filters for items with deleted attribute. """
+ def get_accepted_filters( self ):
+ """ Returns a list of accepted filters for this column. """
+ accepted_filter_labels_and_vals = { "active" : "False", "deleted" : "True", "all": "All" }
+ accepted_filters = []
+ for label, val in accepted_filter_labels_and_vals.items():
+ args = { self.key: val }
+ accepted_filters.append( grids.GridColumnFilter( label, args) )
+ return accepted_filters
+
class BaseController( object ):
"""
Base class for Galaxy web application controllers.
@@ -205,6 +216,13 @@
""" Display item by username and slug. """
pass
+ @web.expose
+ @web.json
+ @web.require_login( "get item name and link" )
+ def get_name_and_link_async( self, trans, id=None ):
+ """ Returns item's name and link. """
+ pass
+
# Helper methods.
def _make_item_accessible( self, sa_session, item ):
diff -r 1a3339f017e9 -r 63201eefad88 lib/galaxy/web/buildapp.py
--- a/lib/galaxy/web/buildapp.py Wed Feb 03 10:31:26 2010 -0500
+++ b/lib/galaxy/web/buildapp.py Wed Feb 03 11:27:21 2010 -0500
@@ -74,6 +74,7 @@
webapp.add_route( '/:controller/:action', action='index' )
webapp.add_route( '/:action', controller='root', action='index' )
webapp.add_route( '/datasets/:dataset_id/:action/:filename', controller='dataset', action='index', dataset_id=None, filename=None)
+ webapp.add_route( '/u/:username/d/:slug', controller='dataset', action='display_by_username_and_slug' )
webapp.add_route( '/u/:username/p/:slug', controller='page', action='display_by_username_and_slug' )
webapp.add_route( '/u/:username/h/:slug', controller='history', action='display_by_username_and_slug' )
webapp.add_route( '/u/:username/w/:slug', controller='workflow', action='display_by_username_and_slug' )
diff -r 1a3339f017e9 -r 63201eefad88 lib/galaxy/web/controllers/admin.py
--- a/lib/galaxy/web/controllers/admin.py Wed Feb 03 10:31:26 2010 -0500
+++ b/lib/galaxy/web/controllers/admin.py Wed Feb 03 11:27:21 2010 -0500
@@ -47,15 +47,6 @@
if user.galaxy_sessions:
return self.format( user.galaxy_sessions[ 0 ].update_time )
return 'never'
- class DeletedColumn( grids.GridColumn ):
- def get_accepted_filters( self ):
- """ Returns a list of accepted filters for this column. """
- accepted_filter_labels_and_vals = { "active" : "False", "deleted" : "True", "all": "All" }
- accepted_filters = []
- for label, val in accepted_filter_labels_and_vals.items():
- args = { self.key: val }
- accepted_filters.append( grids.GridColumnFilter( label, args) )
- return accepted_filters
# Grid definition
title = "Users"
@@ -131,15 +122,6 @@
if role.deleted:
return "deleted"
return ""
- class DeletedColumn( grids.GridColumn ):
- def get_accepted_filters( self ):
- """ Returns a list of accepted filters for this column. """
- accepted_filter_labels_and_vals = { "active" : "False", "deleted" : "True", "all": "All" }
- accepted_filters = []
- for label, val in accepted_filter_labels_and_vals.items():
- args = { self.key: val }
- accepted_filters.append( grids.GridColumnFilter( label, args) )
- return accepted_filters
class GroupsColumn( grids.GridColumn ):
def get_value( self, trans, grid, role ):
if role.groups:
@@ -216,15 +198,6 @@
if group.deleted:
return "deleted"
return ""
- class DeletedColumn( grids.GridColumn ):
- def get_accepted_filters( self ):
- """ Returns a list of accepted filters for this column. """
- accepted_filter_labels_and_vals = { "active" : "False", "deleted" : "True", "all": "All" }
- accepted_filters = []
- for label, val in accepted_filter_labels_and_vals.items():
- args = { self.key: val }
- accepted_filters.append( grids.GridColumnFilter( label, args) )
- return accepted_filters
class RolesColumn( grids.GridColumn ):
def get_value( self, trans, grid, group ):
if group.roles:
diff -r 1a3339f017e9 -r 63201eefad88 lib/galaxy/web/controllers/dataset.py
--- a/lib/galaxy/web/controllers/dataset.py Wed Feb 03 10:31:26 2010 -0500
+++ b/lib/galaxy/web/controllers/dataset.py Wed Feb 03 11:27:21 2010 -0500
@@ -105,9 +105,8 @@
use_paging = True
num_rows_per_page = 50
def apply_default_filter( self, trans, query, **kwargs ):
- # This is a somewhat obtuse way to join the History and HDA tables. However, it's necessary
- # because the initial query in build_initial_query is specificied on the HDA table (this is reasonable)
- # and there's no simple property in the HDA to do the join.
+ # To filter HDAs by user, need to join HDA and History table and then filter histories by user. This is necessary because HDAs do not have
+ # a user relation.
return query.select_from( model.HistoryDatasetAssociation.table.join( model.History.table ) ).filter( model.History.user == trans.user )
class DatasetInterface( BaseController ):
@@ -287,6 +286,39 @@
# Render the list view
return self.stored_list_grid( trans, status=status, message=message, **kwargs )
+
+ @web.expose
+ @web.json
+ @web.require_login( "use Galaxy datasets" )
+ def get_name_and_link_async( self, trans, id=None ):
+ """ Returns dataset's name and link. """
+ dataset = self.get_data( trans, id )
+ return_dict = { "name" : dataset.name, "link" : url_for( action="display_by_username_and_slug", username=dataset.history.user.username, slug=trans.security.encode_id( dataset.id ) ) }
+ return return_dict
+
+ @web.expose
+ @web.require_login( "use Galaxy datasets" )
+ def set_accessible_async( self, trans, id=None, accessible=False ):
+ """ Does nothing because datasets do not have an importable/accessible attribute. This method could potentially set another attribute. """
+ return
+
+ @web.expose
+ def display_by_username_and_slug( self, trans, username, slug, preview=True ):
+ """ Display dataset by username and slug; because datasets do not yet have slugs, the slug is the dataset's id. """
+ data = self.get_data( trans, slug )
+ if data:
+ # Get data from file, truncating if necessary.
+ if os.path.exists( data.file_name ):
+ max_peek_size = 1000000 # 1 MB
+ if preview and os.stat( data.file_name ).st_size > max_peek_size:
+ dataset_data = open( data.file_name ).read(max_peek_size)
+ truncated = True
+ else:
+ dataset_data = open( data.file_name ).read(max_peek_size)
+ truncated = False
+ return trans.fill_template_mako( "dataset/display.mako", item=data, item_data=dataset_data, truncated=truncated )
+ else:
+ raise web.httpexceptions.HTTPNotFound()
@web.expose
def display_at( self, trans, dataset_id, filename=None, **kwd ):
@@ -413,3 +445,22 @@
done_msg = done_msg,
error_msg = error_msg,
refresh_frames = refresh_frames )
+
+ def get_data( self, trans, dataset_id, check_user_can_access=True ):
+ """ Get an HDA from the database by id, verifying that user can access dataset."""
+ # DEPRECATION: We still support unencoded ids for backward compatibility
+ try:
+ dataset_id = int( dataset_id )
+ except ValueError:
+ dataset_id = trans.security.decode_id( dataset_id )
+ data = trans.sa_session.query( model.HistoryDatasetAssociation ).get( dataset_id )
+ if not data:
+ raise paste.httpexceptions.HTTPRequestRangeNotSatisfiable( "Invalid dataset id: %s." % str( dataset_id ) )
+ if check_user_can_access:
+ current_user_roles = trans.get_current_user_roles()
+ if trans.app.security_agent.can_access_dataset( current_user_roles, data.dataset ):
+ if data.state == trans.model.Dataset.states.UPLOAD:
+ return trans.show_error_message( "Please wait until this dataset finishes uploading before attempting to view it." )
+ else:
+ error( "You are not allowed to access this dataset" )
+ return data
\ No newline at end of file
diff -r 1a3339f017e9 -r 63201eefad88 lib/galaxy/web/controllers/forms.py
--- a/lib/galaxy/web/controllers/forms.py Wed Feb 03 10:31:26 2010 -0500
+++ b/lib/galaxy/web/controllers/forms.py Wed Feb 03 11:27:21 2010 -0500
@@ -23,15 +23,6 @@
class TypeColumn( grids.TextColumn ):
def get_value(self, trans, grid, form):
return form.latest_form.type
- class DeletedColumn( grids.GridColumn ):
- def get_accepted_filters( self ):
- """ Returns a list of accepted filters for this column. """
- accepted_filter_labels_and_vals = { "active" : "False", "deleted" : "True", "all": "All" }
- accepted_filters = []
- for label, val in accepted_filter_labels_and_vals.items():
- args = { self.key: val }
- accepted_filters.append( grids.GridColumnFilter( label, args) )
- return accepted_filters
# Grid definition
title = "Forms"
template = "admin/forms/grid.mako"
diff -r 1a3339f017e9 -r 63201eefad88 lib/galaxy/web/controllers/history.py
--- a/lib/galaxy/web/controllers/history.py Wed Feb 03 10:31:26 2010 -0500
+++ b/lib/galaxy/web/controllers/history.py Wed Feb 03 11:27:21 2010 -0500
@@ -31,16 +31,6 @@
else:
rval.append( '' )
return rval
-
- class DeletedColumn( grids.GridColumn ):
- def get_accepted_filters( self ):
- """ Returns a list of accepted filters for this column. """
- accepted_filter_labels_and_vals = { "active" : "False", "deleted" : "True", "all": "All" }
- accepted_filters = []
- for label, val in accepted_filter_labels_and_vals.items():
- args = { self.key: val }
- accepted_filters.append( grids.GridColumnFilter( label, args) )
- return accepted_filters
# Grid definition
title = "Saved Histories"
@@ -384,18 +374,15 @@
""" Returns history's name and link. """
history = self.get_history( trans, id, False )
- # To get info: user must own history.
- if history.user == trans.get_user():
- if self.set_item_slug( trans.sa_session, history ):
- trans.sa_session.flush()
- return_dict = { "name" : history.name, "link" : "/u/%s/h/%s" % ( history.user.username, history.slug ) }
- return return_dict
- return
+ if self.set_item_slug( trans.sa_session, history ):
+ trans.sa_session.flush()
+ return_dict = { "name" : history.name, "link" : url_for( action="display_by_username_and_slug", username=history.user.username, slug=history.slug ) }
+ return return_dict
@web.expose
@web.require_login( "set history's accessible flag" )
def set_accessible_async( self, trans, id=None, accessible=False ):
- """ Set history's importable attribute and sets history's slug. """
+ """ Set history's importable attribute and slug. """
history = self.get_history( trans, id, True )
# Only set if importable value would change; this prevents a change in the update_time unless attribute really changed.
diff -r 1a3339f017e9 -r 63201eefad88 lib/galaxy/web/controllers/library_admin.py
--- a/lib/galaxy/web/controllers/library_admin.py Wed Feb 03 10:31:26 2010 -0500
+++ b/lib/galaxy/web/controllers/library_admin.py Wed Feb 03 11:27:21 2010 -0500
@@ -31,15 +31,6 @@
elif library.deleted:
return "deleted"
return ""
- class DeletedColumn( grids.GridColumn ):
- def get_accepted_filters( self ):
- """ Returns a list of accepted filters for this column. """
- accepted_filter_labels_and_vals = { "active" : "False", "deleted" : "True", "all": "All" }
- accepted_filters = []
- for label, val in accepted_filter_labels_and_vals.items():
- args = { self.key: val }
- accepted_filters.append( grids.GridColumnFilter( label, args) )
- return accepted_filters
# Grid definition
title = "Data Libraries"
model_class = model.Library
diff -r 1a3339f017e9 -r 63201eefad88 lib/galaxy/web/controllers/page.py
--- a/lib/galaxy/web/controllers/page.py Wed Feb 03 10:31:26 2010 -0500
+++ b/lib/galaxy/web/controllers/page.py Wed Feb 03 11:27:21 2010 -0500
@@ -84,44 +84,7 @@
class NameColumn( grids.TextColumn ):
def get_value(self, trans, grid, history):
return history.get_display_name()
-
- class DeletedColumn( grids.GridColumn ):
- def get_accepted_filters( self ):
- """ Returns a list of accepted filters for this column. """
- accepted_filter_labels_and_vals = { "active" : "False", "deleted" : "True", "all": "All" }
- accepted_filters = []
- for label, val in accepted_filter_labels_and_vals.items():
- args = { self.key: val }
- accepted_filters.append( grids.GridColumnFilter( label, args) )
- return accepted_filters
-
- class SharingColumn( grids.GridColumn ):
- def filter( self, db_session, user, query, column_filter ):
- """ Modify query to filter histories by sharing status. """
- if column_filter == "All":
- pass
- elif column_filter:
- if column_filter == "private":
- query = query.filter( model.History.users_shared_with == None )
- query = query.filter( model.History.importable == False )
- elif column_filter == "shared":
- query = query.filter( model.History.users_shared_with != None )
- elif column_filter == "importable":
- query = query.filter( model.History.importable == True )
- return query
- def get_accepted_filters( self ):
- """ Returns a list of accepted filters for this column. """
- accepted_filter_labels_and_vals = odict()
- accepted_filter_labels_and_vals["private"] = "private"
- accepted_filter_labels_and_vals["shared"] = "shared"
- accepted_filter_labels_and_vals["importable"] = "importable"
- accepted_filter_labels_and_vals["all"] = "All"
- accepted_filters = []
- for label, val in accepted_filter_labels_and_vals.items():
- args = { self.key: val }
- accepted_filters.append( grids.GridColumnFilter( label, args) )
- return accepted_filters
-
+
# Grid definition.
title = "Saved Histories"
template = "/page/select_histories_grid.mako"
@@ -138,9 +101,9 @@
grids.GridColumn( "Last Updated", key="update_time", format=time_ago ),
# Columns that are valid for filtering but are not visible.
DeletedColumn( "Deleted", key="deleted", visible=False, filterable="advanced" ),
- SharingColumn( "Shared", key="shared", visible=False, filterable="advanced" ),
+ SharingStatusColumn( "Sharing", key="sharing", model_class=model.History, filterable="advanced", sortable=False, visible=False ),
]
- columns.append(
+ columns.append(
grids.MulticolFilterColumn(
"Search",
cols_to_filter=[ columns[0], columns[1] ],
@@ -148,12 +111,125 @@
)
def apply_default_filter( self, trans, query, **kwargs ):
return query.filter_by( user=trans.user, purged=False )
+
+class ItemSelectionGrid( grids.Grid ):
+ """ Base class for pages' item selection grids. """
+ # Custom columns.
+ class NameColumn( grids.TextColumn ):
+ def get_value(self, trans, grid, item):
+ if hasattr( item, "get_display_name" ):
+ return item.get_display_name()
+ else:
+ return item.name
+ # Grid definition.
+ template = "/page/select_items_grid.mako"
+ async_template = "/page/select_items_grid_async.mako"
+ default_filter = { "deleted" : "False" , "sharing" : "All" }
+ default_sort_key = "-update_time"
+ use_async = True
+ use_paging = True
+ num_rows_per_page = 10
+
+ def apply_default_filter( self, trans, query, **kwargs ):
+ return query.filter_by( user=trans.user )
+
+class HistorySelectionGrid( ItemSelectionGrid ):
+ """ Grid for selecting histories. """
+ # Grid definition.
+ title = "Saved Histories"
+ model_class = model.History
+ columns = [
+ ItemSelectionGrid.NameColumn( "Name", key="name", model_class=model.History, filterable="advanced" ),
+ grids.IndividualTagsColumn( "Tags", "tags", model.History, model.HistoryTagAssociation, filterable="advanced"),
+ grids.GridColumn( "Last Updated", key="update_time", format=time_ago ),
+ # Columns that are valid for filtering but are not visible.
+ DeletedColumn( "Deleted", key="deleted", visible=False, filterable="advanced" ),
+ SharingStatusColumn( "Sharing", key="sharing", model_class=model.History, filterable="advanced", sortable=False, visible=False ),
+ ]
+ columns.append(
+ grids.MulticolFilterColumn(
+ "Search",
+ cols_to_filter=[ columns[0], columns[1] ],
+ key="free-text-search", visible=False, filterable="standard" )
+ )
+
+ def apply_default_filter( self, trans, query, **kwargs ):
+ return query.filter_by( user=trans.user, purged=False )
+
+class HistoryDatasetAssociationSelectionGrid( ItemSelectionGrid ):
+ """ Grid for selecting HDAs. """
+ # Grid definition.
+ title = "Saved Datasets"
+ model_class = model.HistoryDatasetAssociation
+ columns = [
+ ItemSelectionGrid.NameColumn( "Name", key="name", model_class=model.HistoryDatasetAssociation, filterable="advanced" ),
+ grids.IndividualTagsColumn( "Tags", "tags", model.StoredWorkflow, model.HistoryDatasetAssociationTagAssociation, filterable="advanced"),
+ grids.GridColumn( "Last Updated", key="update_time", format=time_ago ),
+ # Columns that are valid for filtering but are not visible.
+ DeletedColumn( "Deleted", key="deleted", visible=False, filterable="advanced" ),
+ SharingStatusColumn( "Sharing", key="sharing", model_class=model.HistoryDatasetAssociation, filterable="advanced", sortable=False, visible=False ),
+ ]
+ columns.append(
+ grids.MulticolFilterColumn(
+ "Search",
+ cols_to_filter=[ columns[0], columns[1] ],
+ key="free-text-search", visible=False, filterable="standard" )
+ )
+ def apply_default_filter( self, trans, query, **kwargs ):
+ # To filter HDAs by user, need to join HDA and History table and then filter histories by user. This is necessary because HDAs do not have
+ # a user relation.
+ return query.select_from( model.HistoryDatasetAssociation.table.join( model.History.table ) ).filter( model.History.user == trans.user )
+
+
+class WorkflowSelectionGrid( ItemSelectionGrid ):
+ """ Grid for selecting workflows. """
+ # Grid definition.
+ title = "Saved Workflows"
+ model_class = model.StoredWorkflow
+ columns = [
+ ItemSelectionGrid.NameColumn( "Name", key="name", model_class=model.StoredWorkflow, filterable="advanced" ),
+ grids.IndividualTagsColumn( "Tags", "tags", model.StoredWorkflow, model.StoredWorkflowTagAssociation, filterable="advanced"),
+ grids.GridColumn( "Last Updated", key="update_time", format=time_ago ),
+ # Columns that are valid for filtering but are not visible.
+ DeletedColumn( "Deleted", key="deleted", visible=False, filterable="advanced" ),
+ SharingStatusColumn( "Sharing", key="sharing", model_class=model.StoredWorkflow, filterable="advanced", sortable=False, visible=False ),
+ ]
+ columns.append(
+ grids.MulticolFilterColumn(
+ "Search",
+ cols_to_filter=[ columns[0], columns[1] ],
+ key="free-text-search", visible=False, filterable="standard" )
+ )
+
+class PageSelectionGrid( ItemSelectionGrid ):
+ """ Grid for selecting pages. """
+ # Grid definition.
+ title = "Saved Pages"
+ model_class = model.Page
+ columns = [
+ grids.TextColumn( "Title", key="title", model_class=model.Page, filterable="advanced" ),
+ grids.IndividualTagsColumn( "Tags", "tags", model.Page, model.PageTagAssociation, filterable="advanced"),
+ grids.GridColumn( "Last Updated", key="update_time", format=time_ago ),
+ # Columns that are valid for filtering but are not visible.
+ DeletedColumn( "Deleted", key="deleted", visible=False, filterable="advanced" ),
+ SharingStatusColumn( "Sharing", key="sharing", model_class=model.Page, filterable="advanced", sortable=False, visible=False ),
+ ]
+ columns.append(
+ grids.MulticolFilterColumn(
+ "Search",
+ cols_to_filter=[ columns[0], columns[1] ],
+ key="free-text-search", visible=False, filterable="standard" )
+ )
+
class PageController( BaseController, Sharable ):
_page_list = PageListGrid()
_all_published_list = PageAllPublishedGrid()
_history_selection_grid = HistorySelectionGrid()
+ _workflow_selection_grid = WorkflowSelectionGrid()
+ _datasets_selection_grid = HistoryDatasetAssociationSelectionGrid()
+ _page_selection_grid = PageSelectionGrid()
@web.expose
@web.require_login()
@@ -447,7 +523,34 @@
raise web.httpexceptions.HTTPNotFound()
return trans.fill_template_mako( "page/display.mako", item=page)
-
+
+ @web.expose
+ @web.require_login( "use Galaxy pages" )
+ def set_accessible_async( self, trans, id=None, accessible=False ):
+ """ Set page's importable attribute and slug. """
+ page = self.get_page( trans, id )
+
+ # Only set if importable value would change; this prevents a change in the update_time unless attribute really changed.
+ importable = accessible in ['True', 'true', 't', 'T'];
+ if page.importable != importable:
+ if importable:
+ self._make_item_accessible( trans.sa_session, page )
+ else:
+ page.importable = importable
+ trans.sa_session.flush()
+ return
+
+ @web.expose
+ @web.json
+ @web.require_login( "use Galaxy pages" )
+ def get_name_and_link_async( self, trans, id=None ):
+ """ Returns page's name and link. """
+ page = self.get_page( trans, id )
+
+ if self.set_item_slug( trans.sa_session, page ):
+ trans.sa_session.flush()
+ return_dict = { "name" : page.title, "link" : url_for( action="display_by_username_and_slug", username=page.user.username, slug=page.slug ) }
+ return return_dict
@web.expose
@web.require_login("select a history from saved histories")
@@ -457,6 +560,27 @@
return self._history_selection_grid( trans, **kwargs )
@web.expose
+ @web.require_login("select a workflow from saved workflows")
+ def list_workflows_for_selection( self, trans, **kwargs ):
+ """ Returns HTML that enables a user to select one or more workflows. """
+ # Render the list view
+ return self._workflow_selection_grid( trans, **kwargs )
+
+ @web.expose
+ @web.require_login("select a page from saved pages")
+ def list_pages_for_selection( self, trans, **kwargs ):
+ """ Returns HTML that enables a user to select one or more pages. """
+ # Render the list view
+ return self._page_selection_grid( trans, **kwargs )
+
+ @web.expose
+ @web.require_login("select a dataset from saved datasets")
+ def list_datasets_for_selection( self, trans, **kwargs ):
+ """ Returns HTML that enables a user to select one or more datasets. """
+ # Render the list view
+ return self._datasets_selection_grid( trans, **kwargs )
+
+ @web.expose
@web.require_login("get annotation table for history")
def get_history_annotation_table( self, trans, id ):
""" Returns HTML for an annotation table for a history. """
@@ -483,4 +607,20 @@
@web.expose
def get_editor_iframe( self, trans ):
""" Returns the document for the page editor's iframe. """
- return trans.fill_template( "page/wymiframe.mako" )
\ No newline at end of file
+ return trans.fill_template( "page/wymiframe.mako" )
+
+ def get_page( self, trans, id, check_ownership=True ):
+ """Get a page from the database by id, verifying ownership."""
+ # Load history from database
+ id = trans.security.decode_id( id )
+ page = trans.sa_session.query( model.Page ).get( id )
+ if not page:
+ err+msg( "History not found" )
+ if check_ownership:
+ # Verify ownership
+ user = trans.get_user()
+ if not user:
+ error( "Must be logged in to work with Pages" )
+ if page.user != user:
+ error( "History is not owned by current user" )
+ return page
\ No newline at end of file
diff -r 1a3339f017e9 -r 63201eefad88 lib/galaxy/web/controllers/requests.py
--- a/lib/galaxy/web/controllers/requests.py Wed Feb 03 10:31:26 2010 -0500
+++ b/lib/galaxy/web/controllers/requests.py Wed Feb 03 11:27:21 2010 -0500
@@ -71,15 +71,6 @@
args = { self.key: val }
accepted_filters.append( grids.GridColumnFilter( label, args) )
return accepted_filters
- class DeletedColumn( grids.GridColumn ):
- def get_accepted_filters( self ):
- """ Returns a list of accepted filters for this column. """
- accepted_filter_labels_and_vals = { "active" : "False", "deleted" : "True", "all": "All" }
- accepted_filters = []
- for label, val in accepted_filter_labels_and_vals.items():
- args = { self.key: val }
- accepted_filters.append( grids.GridColumnFilter( label, args) )
- return accepted_filters
# Grid definition
title = "Sequencing Requests"
template = 'requests/grid.mako'
diff -r 1a3339f017e9 -r 63201eefad88 lib/galaxy/web/controllers/requests_admin.py
--- a/lib/galaxy/web/controllers/requests_admin.py Wed Feb 03 10:31:26 2010 -0500
+++ b/lib/galaxy/web/controllers/requests_admin.py Wed Feb 03 11:27:21 2010 -0500
@@ -80,15 +80,6 @@
class UserColumn( grids.TextColumn ):
def get_value(self, trans, grid, request):
return request.user.email
- class DeletedColumn( grids.GridColumn ):
- def get_accepted_filters( self ):
- """ Returns a list of accepted filters for this column. """
- accepted_filter_labels_and_vals = { "active" : "False", "deleted" : "True", "all": "All" }
- accepted_filters = []
- for label, val in accepted_filter_labels_and_vals.items():
- args = { self.key: val }
- accepted_filters.append( grids.GridColumnFilter( label, args) )
- return accepted_filters
# Grid definition
title = "Sequencing Requests"
template = "admin/requests/grid.mako"
@@ -167,15 +158,6 @@
class SampleFormColumn( grids.TextColumn ):
def get_value(self, trans, grid, request_type):
return request_type.sample_form.name
- class DeletedColumn( grids.GridColumn ):
- def get_accepted_filters( self ):
- """ Returns a list of accepted filters for this column. """
- accepted_filter_labels_and_vals = { "active" : "False", "deleted" : "True", "all": "All" }
- accepted_filters = []
- for label, val in accepted_filter_labels_and_vals.items():
- args = { self.key: val }
- accepted_filters.append( grids.GridColumnFilter( label, args) )
- return accepted_filters
# Grid definition
title = "Requests Types"
template = "admin/requests/manage_request_types.mako"
diff -r 1a3339f017e9 -r 63201eefad88 lib/galaxy/web/controllers/root.py
--- a/lib/galaxy/web/controllers/root.py Wed Feb 03 10:31:26 2010 -0500
+++ b/lib/galaxy/web/controllers/root.py Wed Feb 03 11:27:21 2010 -0500
@@ -306,7 +306,6 @@
setattr( data.metadata, name, spec.unwrap( params.get (name, None) ) )
data.datatype.after_setting_metadata( data )
self.add_item_annotation( trans, data, params.annotation )
-
else:
msg = ' (Metadata could not be changed because this dataset is currently being used as input or output. You must cancel or wait for these jobs to complete before changing metadata.)'
trans.sa_session.flush()
diff -r 1a3339f017e9 -r 63201eefad88 lib/galaxy/web/controllers/workflow.py
--- a/lib/galaxy/web/controllers/workflow.py Wed Feb 03 10:31:26 2010 -0500
+++ b/lib/galaxy/web/controllers/workflow.py Wed Feb 03 11:27:21 2010 -0500
@@ -367,6 +367,35 @@
@web.expose
@web.require_login( "use Galaxy workflows" )
+ def set_accessible_async( self, trans, id=None, accessible=False ):
+ """ Set workflow's importable attribute and slug. """
+ stored = get_stored_workflow( trans, id )
+
+ # Only set if importable value would change; this prevents a change in the update_time unless attribute really changed.
+ importable = accessible in ['True', 'true', 't', 'T'];
+ if stored and stored.importable != importable:
+ if importable:
+ self._make_item_accessible( trans.sa_session, stored )
+ else:
+ stored.importable = importable
+ trans.sa_session.flush()
+
+ return
+
+ @web.expose
+ @web.json
+ @web.require_login( "use Galaxy workflows" )
+ def get_name_and_link_async( self, trans, id=None ):
+ """ Returns workflow's name and link. """
+ stored = get_stored_workflow( trans, id )
+
+ if self.set_item_slug( trans.sa_session, stored ):
+ trans.sa_session.flush()
+ return_dict = { "name" : stored.name, "link" : url_for( action="display_by_username_and_slug", username=stored.user.username, slug=stored.slug ) }
+ return return_dict
+
+ @web.expose
+ @web.require_login( "use Galaxy workflows" )
def clone( self, trans, id ):
stored = get_stored_workflow( trans, id, check_ownership=False )
user = trans.get_user()
diff -r 1a3339f017e9 -r 63201eefad88 static/wymeditor/lang/en.js
--- a/static/wymeditor/lang/en.js Wed Feb 03 10:31:26 2010 -0500
+++ b/static/wymeditor/lang/en.js Wed Feb 03 11:27:21 2010 -0500
@@ -45,6 +45,8 @@
// Galaxy replacements.
Galaxy_History_Link: 'Insert Link to History',
Galaxy_Dataset_Link: 'Insert Link to Dataset',
+ Galaxy_Workflow_Link: 'Insert Link to Workflow',
+ Galaxy_Page_Link: 'Insert Link to Page',
Annotate_Galaxy_History: 'Annotate History',
};
diff -r 1a3339f017e9 -r 63201eefad88 templates/dataset/display.mako
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/templates/dataset/display.mako Wed Feb 03 11:27:21 2010 -0500
@@ -0,0 +1,103 @@
+## Because HDAs do not have many of the properties that other sharable items have, we need to override most of the default code for display.
+<%inherit file="/display_base.mako"/>
+<%namespace file="/display_common.mako" import="*" />
+<%namespace file="/tagging_common.mako" import="render_individual_tagging_element, render_community_tagging_element" />
+
+<%def name="javascripts()">
+ ${parent.javascripts()}
+</%def>
+
+<%def name="init()">
+<%
+ self.has_left_panel=False
+ self.has_right_panel=True
+ self.message_box_visible=False
+ self.active_view="user"
+ self.overlay_visible=False
+%>
+</%def>
+
+<%def name="title()">
+ Galaxy | ${get_class_display_name( item.__class__ )} | ${get_item_name( item )}
+</%def>
+
+<%def name="render_item_links( data )">
+ ## Provide links to save data and TODO: import dataset.
+ <a href="${h.url_for( controller='dataset', action='display', dataset_id=trans.security.encode_id( data.id ), to_ext=data.ext )}">save</a>
+</%def>
+
+<%def name="render_item( data, data_to_render )">
+ <hr/>
+ %if truncated:
+ <div class="warningmessagelarge">
+ This dataset is large and only the first megabyte is shown below. |
+ <a href="${h.url_for( controller='dataset', action='display_by_username_and_slug', username=data.history.user.username, slug=trans.security.encode_id( data.id ), preview=False )}">Show all</a>
+ </div>
+ %endif
+ ## TODO: why is the default font size so small?
+ <pre style="font-size: 135%">${ data_to_render | h }</pre>
+</%def>
+
+
+<%def name="center_panel()">
+ <div class="unified-panel-header" unselectable="on">
+ <div class="unified-panel-header-inner">
+ ${get_class_display_name( item.__class__ )}
+ | ${get_item_name( item )}
+ </div>
+ </div>
+
+ <div class="unified-panel-body">
+ <div style="overflow: auto; height: 100%;">
+ <div class="page-body">
+ <div style="padding: 0px 0px 5px 0px">
+ ${self.render_item_links( item )}
+ </div>
+
+ ${self.render_item( item, item_data )}
+ </div>
+ </div>
+ </div>
+</%def>
+
+<%def name="right_panel()">
+ <div class="unified-panel-header" unselectable="on">
+ <div class="unified-panel-header-inner">
+ About this ${get_class_display_name( item.__class__ )}
+ </div>
+ </div>
+
+ <div class="unified-panel-body">
+ <div style="overflow: auto; height: 100%;">
+ <div style="padding: 10px;">
+ <h4>Author</h4>
+
+ <p>${item.history.user.username}</p>
+
+ <div><img src="http://www.gravatar.com/avatar/${h.md5(item.history.user.email)}?s=150"></div>
+
+ ## Page meta. No page meta for datasets for now.
+
+ ## Tags.
+ <p>
+ <h4>Tags</strong></h4>
+ <p>
+ ## Community tags.
+ <div>
+ Community:
+ ${render_community_tagging_element( tagged_item=item, tag_click_fn='community_tag_click', use_toggle_link=False )}
+ %if len ( item.tags ) == 0:
+ none
+ %endif
+ </div>
+ ## Individual tags.
+ <p>
+ <div>
+ Yours:
+ ${render_individual_tagging_element( user=trans.get_user(), tagged_item=item, elt_context='view.mako', use_toggle_link=False, tag_click_fn='community_tag_click' )}
+ </div>
+ </div>
+ </div>
+ </div>
+
+</%def>
\ No newline at end of file
diff -r 1a3339f017e9 -r 63201eefad88 templates/display_base.mako
--- a/templates/display_base.mako Wed Feb 03 10:31:26 2010 -0500
+++ b/templates/display_base.mako Wed Feb 03 11:27:21 2010 -0500
@@ -148,45 +148,40 @@
</div>
<div class="unified-panel-body">
- <div style="overflow: auto; height: 100%;">
-
- %if item.published:
- <div style="padding: 10px;">
- <h4>Author</h4>
-
- <p>${item.user.username}</p>
-
- <div><img src="http://www.gravatar.com/avatar/${h.md5(item.user.email)}?s=150"></div>
-
-
-
- ## Page meta.
- <h4>Related ${item_plural}</h4>
- <p>
- <a href="${href_to_all_items}">All published ${item_plural.lower()}</a><br>
- <a href="${href_to_user_items}">${item_plural} owned by ${item.user.username}</a>
-
- ## Tags.
- <h4>Tags</strong></h4>
- <p>
- ## Community tags.
- <div>
- Community:
- ${render_community_tagging_element( tagged_item=item, tag_click_fn='community_tag_click', use_toggle_link=False )}
- %if len ( item.tags ) == 0:
- none
- %endif
- </div>
- ## Individual tags.
- <p>
- <div>
- Yours:
- ${render_individual_tagging_element( user=trans.get_user(), tagged_item=item, elt_context='view.mako', use_toggle_link=False, tag_click_fn='community_tag_click' )}
- </div>
+ <div style="overflow: auto; height: 100%;">
+ <div style="padding: 10px;">
+ <h4>Author</h4>
+
+ <p>${item.user.username}</p>
+
+ <div><img src="http://www.gravatar.com/avatar/${h.md5(item.user.email)}?s=150"></div>
+
+
+
+ ## Page meta.
+ <h4>Related ${item_plural}</h4>
+ <p>
+ <a href="${href_to_all_items}">All published ${item_plural.lower()}</a><br>
+ <a href="${href_to_user_items}">${item_plural} owned by ${item.user.username}</a>
+
+ ## Tags.
+ <h4>Tags</strong></h4>
+ <p>
+ ## Community tags.
+ <div>
+ Community:
+ ${render_community_tagging_element( tagged_item=item, tag_click_fn='community_tag_click', use_toggle_link=False )}
+ %if len ( item.tags ) == 0:
+ none
+ %endif
</div>
- %endif
-
-
+ ## Individual tags.
+ <p>
+ <div>
+ Yours:
+ ${render_individual_tagging_element( user=trans.get_user(), tagged_item=item, elt_context='view.mako', use_toggle_link=False, tag_click_fn='community_tag_click' )}
+ </div>
+ </div>
</div>
</div>
diff -r 1a3339f017e9 -r 63201eefad88 templates/display_common.mako
--- a/templates/display_common.mako Wed Feb 03 10:31:26 2010 -0500
+++ b/templates/display_common.mako Wed Feb 03 11:27:21 2010 -0500
@@ -39,6 +39,8 @@
## Start with exceptions, end with default.
if a_class is model.StoredWorkflow:
return "Workflow"
+ elif a_class is model.HistoryDatasetAssociation:
+ return "Dataset"
else:
return a_class.__name__
%>
diff -r 1a3339f017e9 -r 63201eefad88 templates/grid_base.mako
--- a/templates/grid_base.mako Wed Feb 03 10:31:26 2010 -0500
+++ b/templates/grid_base.mako Wed Feb 03 11:27:21 2010 -0500
@@ -15,12 +15,12 @@
##
<%def name="center_panel()">
- ${make_grid( grid )}
+ ${make_grid( grid )}
</%def>
## Render the grid's basic elements. Each of these elements can be subclassed.
<%def name="body()">
- ${make_grid( grid )}
+ ${make_grid( grid )}
</%def>
<%def name="title()">${grid.title}</%def>
@@ -718,15 +718,15 @@
<%namespace file="./grid_common.mako" import="*" />
<%def name="make_grid( grid )">
- <table>
- <tr>
- <td width="75%">${self.render_grid_header( grid )}</td>
- <td></td>
- <td width="25%" id="grid-message" valign="top">${self.render_grid_message( grid )}</td>
- </tr>
- </table>
+ <table>
+ <tr>
+ <td width="75%">${self.render_grid_header( grid )}</td>
+ <td></td>
+ <td width="25%" id="grid-message" valign="top">${self.render_grid_message( grid )}</td>
+ </tr>
+ </table>
- ${self.render_grid_table( grid )}
+ ${self.render_grid_table( grid )}
</%def>
## Render grid message.
@@ -920,13 +920,13 @@
## Render grid table footer contents.
<%def name="render_grid_table_footer_contents(grid, show_item_checkboxes=False)">
## Row for navigating among pages.
- <%namespace file="/display_common.mako" import="get_class_plural" />
- <% items_plural = get_class_plural( grid.model_class ).lower() %>
+ <%namespace file="/display_common.mako" import="get_class_plural" />
+ <% items_plural = get_class_plural( grid.model_class ).lower() %>
%if grid.use_paging and num_pages > 1:
<tr id="page-links-row">
- %if show_item_checkboxes:
- <td></td>
- %endif
+ %if show_item_checkboxes:
+ <td></td>
+ %endif
<td colspan="100">
<span id='page-link-container'>
## Page links.
diff -r 1a3339f017e9 -r 63201eefad88 templates/page/editor.mako
--- a/templates/page/editor.mako Wed Feb 03 10:31:26 2010 -0500
+++ b/templates/page/editor.mako Wed Feb 03 11:27:21 2010 -0500
@@ -30,6 +30,9 @@
var Galaxy =
{
DIALOG_HISTORY_LINK : "history_link",
+ DIALOG_DATASET_LINK : "dataset_link",
+ DIALOG_WORKFLOW_LINK : "workflow_link",
+ DIALOG_PAGE_LINK : "page_link",
DIALOG_HISTORY_ANNOTATE : "history_annotate",
};
@@ -199,25 +202,59 @@
);
}
- // INSERT HISTORY LINK DIALOG
- if ( dialogType == Galaxy.DIALOG_HISTORY_LINK ) {
+ // INSERT "GALAXY ITEM" (HISTORY, DATASET, WORKFLOW, PAGE) LINK DIALOG
+ if ( dialogType == Galaxy.DIALOG_HISTORY_LINK || dialogType == Galaxy.DIALOG_DATASET_LINK ||
+ dialogType == Galaxy.DIALOG_WORKFLOW_LINK || dialogType == Galaxy.DIALOG_PAGE_LINK ) {
+ // Based on item type, set useful vars.
+ var
+ item_singular,
+ item_plural,
+ item_controller,
+ item_list_action;
+ switch( dialogType ) {
+ case( Galaxy.DIALOG_HISTORY_LINK ):
+ item_singular = "History";
+ item_plural = "Histories";
+ item_controller = "history"
+ break;
+ case( Galaxy.DIALOG_DATASET_LINK ):
+ item_singular = "Dataset";
+ item_plural = "Datasets";
+ item_controller = "dataset"
+ break;
+ case( Galaxy.DIALOG_WORKFLOW_LINK ):
+ item_singular = "Workflow";
+ item_plural = "Workflows";
+ item_controller = "workflow"
+ break;
+ case( Galaxy.DIALOG_PAGE_LINK ):
+ item_singular = "Page";
+ item_plural = "Pages";
+ item_controller = "page"
+ break;
+ }
+ item_list_action = "list_" + item_plural.toLowerCase() + "_for_selection";
+
+ // Show grid that enables user to select items.
+ var url_template = "${h.url_for( action='LIST_ACTION' )}";
+ var ajax_url = url_template.replace( "LIST_ACTION", item_list_action );
$.ajax(
{
- url: "${h.url_for( action='list_histories_for_selection' )}",
+ url: ajax_url,
data: {},
- error: function() { alert( "Grid refresh failed" ) },
+ error: function() { alert( "Failed to list " + item_plural.toLowerCase() + " for selection"); },
success: function(table_html)
{
show_modal(
- "Insert Link to History",
+ "Insert Link to " + item_singular,
table_html +
"<div><input id='make-importable' type='checkbox' checked/>" +
- "Make the selected histories accessible so that they can viewed by everyone.</div>"
+ "Make the selected " + item_plural.toLowerCase() + " accessible so that they can viewed by everyone.</div>"
,
{
"Insert": function()
{
- // Make histories public/importable?
+ // Make items accessible (importable) ?
var make_importable = false;
if ( $('#make-importable:checked').val() !== null )
make_importable = true;
@@ -229,15 +266,21 @@
// Make history importable?
if (make_importable)
+ {
+ url_template = "${h.url_for( controller='ITEM_CONTROLLER', action='set_accessible_async' )}";
+ ajax_url = url_template.replace( "ITEM_CONTROLLER", item_controller);
$.ajax({
type: "POST",
- url: '${h.url_for( controller='history', action='set_accessible_async' )}',
+ url: ajax_url,
data: { id: item_id, accessible: 'True' },
- error: function() { alert('Make history accessible failed; id=' + item_id) }
+ error: function() { alert("Making " + item_plural.toLowerCase() + " accessible failed"); }
});
-
- // Insert link. This is done by getting history info and then manipulating wym.
- $.getJSON( '${h.url_for( controller='history', action='get_name_and_link_async' )}?id=' + item_id, function( history_info ) {
+ }
+
+ // Insert link(s) to item(s). This is done by getting item info and then manipulating wym.
+ url_template = "${h.url_for( controller='ITEM_CONTROLLER', action='get_name_and_link_async' )}?id=" + item_id;
+ ajax_url = url_template.replace( "ITEM_CONTROLLER", item_controller);
+ $.getJSON( ajax_url, function( item_info ) {
// Get link text.
wym._exec(WYMeditor.CREATE_LINK, sStamp);
var link_text = $("a[href=" + sStamp + "]", wym._doc.body).text();
@@ -250,12 +293,12 @@
)
{
// User selected no text; create link from scratch and use default text.
- wym.insert("<a href='" + history_info.link + "'>History '" + history_info.name + "'</a>");
+ wym.insert("<a href='" + item_info.link + "'> '" + item_singular + " " + item_info.name + "'</a>");
}
else
{
// Link created from selected text; add href and title.
- $("a[href=" + sStamp + "]", wym._doc.body).attr(WYMeditor.HREF, history_info.link).attr(WYMeditor.TITLE, "History" + item_id);
+ $("a[href=" + sStamp + "]", wym._doc.body).attr(WYMeditor.HREF, item_info.link).attr(WYMeditor.TITLE, item_singular + item_id);
}
});
});
@@ -365,6 +408,9 @@
{'name': 'InsertImage', 'title': 'Image', 'css': 'wym_tools_image'},
{'name': 'InsertTable', 'title': 'Table', 'css': 'wym_tools_table'},
{'name': 'Insert Galaxy History Link', 'title' : 'Galaxy_History_Link', 'css' : 'galaxy_tools_insert_history_link'},
+ {'name': 'Insert Galaxy Dataset Link', 'title' : 'Galaxy_Dataset_Link', 'css' : 'galaxy_tools_insert_dataset_link'},
+ {'name': 'Insert Galaxy Workflow Link', 'title' : 'Galaxy_Workflow_Link', 'css' : 'galaxy_tools_insert_workflow_link'},
+ {'name': 'Insert Galaxy Page Link', 'title' : 'Galaxy_Page_Link', 'css' : 'galaxy_tools_insert_page_link'},
{'name': 'Annonate Galaxy History', 'title' : 'Annotate_Galaxy_History', 'css' : 'galaxy_tools_annotate_history'},
]
});
@@ -372,29 +418,29 @@
var editor = $.wymeditors(0);
var save = function ( callback ) {
show_modal( "Saving page", "progress" );
- // Gather annotations.
- var annotations = new Array();
-
- $('.annotation', editor._doc.body).each( function() {
- var item_class = $(this).attr( 'item_class' );
- var item_id = $(this).attr( 'item_id' );
- var text = $(this).text();
- annotation = {
- "item_class" : item_class,
- "item_id" : item_id,
- "text" : text
- };
- annotations[ annotations.length ] = annotation;
- });
-
- // Do save.
- $.ajax( {
+ // Gather annotations.
+ var annotations = new Array();
+
+ $('.annotation', editor._doc.body).each( function() {
+ var item_class = $(this).attr( 'item_class' );
+ var item_id = $(this).attr( 'item_id' );
+ var text = $(this).text();
+ annotation = {
+ "item_class" : item_class,
+ "item_id" : item_id,
+ "text" : text
+ };
+ annotations[ annotations.length ] = annotation;
+ });
+
+ // Do save.
+ $.ajax( {
url: "${h.url_for( action='save' )}",
type: "POST",
data: {
id: "${trans.security.encode_id(page.id)}",
content: editor.xhtml(),
- annotations: JSON.stringify(annotations),
+ annotations: JSON.stringify(annotations),
"_": "true"
},
success: function() {
@@ -436,9 +482,21 @@
$('.galaxy_tools_insert_history_link').children().click( function() {
editor.dialog(Galaxy.DIALOG_HISTORY_LINK);
});
+ // Initialize 'Insert dataset link' button.
+ $('.galaxy_tools_insert_dataset_link').children().click( function() {
+ editor.dialog(Galaxy.DIALOG_DATASET_LINK);
+ });
+ // Initialize 'Insert workflow link' button.
+ $('.galaxy_tools_insert_workflow_link').children().click( function() {
+ editor.dialog(Galaxy.DIALOG_WORKFLOW_LINK);
+ });
+ // Initialize 'Insert page link' button.
+ $('.galaxy_tools_insert_page_link').children().click( function() {
+ editor.dialog(Galaxy.DIALOG_PAGE_LINK);
+ });
// Initialize 'Annotate history' button.
$('.galaxy_tools_annotate_history').children().click( function() {
- editor.dialog(Galaxy.ANNOTATE_HISTORY);
+ editor.dialog(Galaxy.DIALOG_ANNOTATE_HISTORY);
});
// Initialize galaxy elements.
//init_galaxy_elts(editor);
diff -r 1a3339f017e9 -r 63201eefad88 templates/page/select_histories_grid.mako
--- a/templates/page/select_histories_grid.mako Wed Feb 03 10:31:26 2010 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,13 +0,0 @@
-## Template generates a grid that enables user to select histories.
-<%namespace file="../grid_base.mako" import="*" />
-
-${javascripts()}
-${stylesheets()}
-${render_grid_header( grid, False )}
-${render_grid_table( grid, show_item_checkboxes=True )}
-
-## Initialize the grid.
-<script type="text/javascript">
- init_grid_elements();
- init_grid_controls();
-</script>
diff -r 1a3339f017e9 -r 63201eefad88 templates/page/select_histories_grid_async.mako
--- a/templates/page/select_histories_grid_async.mako Wed Feb 03 10:31:26 2010 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-<%namespace file="../grid_base.mako" import="*" />
-
-## Always show item checkboxes so that users can select histories.
-${render_grid_table_body_contents( grid, show_item_checkboxes=True )}
-*****
-${num_pages}
-*****
-${render_grid_message( grid )}
\ No newline at end of file
diff -r 1a3339f017e9 -r 63201eefad88 templates/page/select_items_grid.mako
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/templates/page/select_items_grid.mako Wed Feb 03 11:27:21 2010 -0500
@@ -0,0 +1,13 @@
+## Template generates a grid that enables user to select items.
+<%namespace file="../grid_base.mako" import="*" />
+
+${javascripts()}
+${stylesheets()}
+${render_grid_header( grid, False )}
+${render_grid_table( grid, show_item_checkboxes=True )}
+
+## Initialize the grid.
+<script type="text/javascript">
+ init_grid_elements();
+ init_grid_controls();
+</script>
diff -r 1a3339f017e9 -r 63201eefad88 templates/page/select_items_grid_async.mako
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/templates/page/select_items_grid_async.mako Wed Feb 03 11:27:21 2010 -0500
@@ -0,0 +1,8 @@
+<%namespace file="../grid_base.mako" import="*" />
+
+## Always show item checkboxes so that users can select histories.
+${render_grid_table_body_contents( grid, show_item_checkboxes=True )}
+*****
+${num_pages}
+*****
+${render_grid_message( grid )}
\ No newline at end of file
diff -r 1a3339f017e9 -r 63201eefad88 templates/root/history.mako
--- a/templates/root/history.mako Wed Feb 03 10:31:26 2010 -0500
+++ b/templates/root/history.mako Wed Feb 03 11:27:21 2010 -0500
@@ -47,14 +47,14 @@
// Annotation async.
// Tag async. Simply have the workflow tag element generate a click on the tag element to activate tagging.
- $('#workflow-tag').click( function()
- {
- $('.tag-area').click();
- return false;
- });
-
- // Annotate async.
- async_save_text("history-annotate", "history-annotation", "${h.url_for( controller="/history", action="annotate_async", id=trans.security.encode_id(history.id) )}", "new_annotation", true, 4);
+ $('#workflow-tag').click( function()
+ {
+ $('.tag-area').click();
+ return false;
+ });
+
+ // Annotate async.
+ async_save_text("history-annotate", "history-annotation", "${h.url_for( controller="/history", action="annotate_async", id=trans.security.encode_id(history.id) )}", "new_annotation", true, 4);
// Updater
updater({
@@ -308,6 +308,11 @@
## Annotation elt.
<div id="history-annotation-area" class="form-row">
+<<<<<<< local
+ <label>Annotation / Notes:</label>
+ <div style="float: right"><a id="history-annotate" title="Annotate" class="icon-button edit" target="galaxy_main" href="${h.url_for( controller='history', action='annotate_async' )}"></a></div>
+ <div id="history-annotation">${annotation}</div>
+=======
<label>Annotation / Notes:</label>
<div style="float: right"><a id="history-annotate" title="Annotate" class="icon-button edit" target="galaxy_main" href="${h.url_for( controller='history', action='annotate_async' )}"></a></div>
%if annotation:
@@ -315,8 +320,9 @@
%else:
<div id="history-annotation"></div>
%endif
+>>>>>>> other
<div style="clear: both"></div>
- </div>
+ </div>
</div>
</div>
%endif
diff -r 1a3339f017e9 -r 63201eefad88 templates/root/history_common.mako
--- a/templates/root/history_common.mako Wed Feb 03 10:31:26 2010 -0500
+++ b/templates/root/history_common.mako Wed Feb 03 11:27:21 2010 -0500
@@ -3,11 +3,11 @@
<%def name="render_dataset( data, hid, show_deleted_on_refresh = False, user_owns_dataset = True )">
<a name="${trans.security.encode_id( data.id )}"></a>
<%
- if data.state in ['no state','',None]:
- data_state = "queued"
- else:
- data_state = data.state
- current_user_roles = trans.get_current_user_roles()
+ if data.state in ['no state','',None]:
+ data_state = "queued"
+ else:
+ data_state = data.state
+ current_user_roles = trans.get_current_user_roles()
%>
%if not trans.user_is_admin() and not trans.app.security_agent.can_access_dataset( current_user_roles, data.dataset ):
<div class="historyItemWrapper historyItem historyItem-${data_state} historyItem-noPermission" id="historyItem-${data.id}">
@@ -22,29 +22,29 @@
%endif
## Header row for history items (name, state, action buttons)
- <div style="overflow: hidden;" class="historyItemTitleBar">
- <div class="historyItemButtons">
+ <div style="overflow: hidden;" class="historyItemTitleBar">
+ <div class="historyItemButtons">
%if data_state == "upload":
- ## TODO: Make these CSS, just adding a "disabled" class to the normal
- ## links should be enough. However the number of datasets being uploaded
- ## at a time is usually small so the impact of these images is also small.
- <img src="${h.url_for('/static/images/eye_icon_grey.png')}" width='16' height='16' alt='display data' title='display data' class='button display' border='0'>
+ ## TODO: Make these CSS, just adding a "disabled" class to the normal
+ ## links should be enough. However the number of datasets being uploaded
+ ## at a time is usually small so the impact of these images is also small.
+ <img src="${h.url_for('/static/images/eye_icon_grey.png')}" width='16' height='16' alt='display data' title='display data' class='button display' border='0'>
%if user_owns_dataset:
- <img src="${h.url_for('/static/images/pencil_icon_grey.png')}" width='16' height='16' alt='edit attributes' title='edit attributes' class='button edit' border='0'>
- %endif
+ <img src="${h.url_for('/static/images/pencil_icon_grey.png')}" width='16' height='16' alt='edit attributes' title='edit attributes' class='button edit' border='0'>
+ %endif
%else:
- <a class="icon-button display" title="display data" href="${h.url_for( controller='dataset', action='display', dataset_id=trans.security.encode_id( data.id ), preview=True, filename='' )}" target="galaxy_main"></a>
+ <a class="icon-button display" title="display data" href="${h.url_for( controller='dataset', action='display', dataset_id=trans.security.encode_id( data.id ), preview=True, filename='' )}" target="galaxy_main"></a>
%if user_owns_dataset:
- <a class="icon-button edit" title="edit attributes" href="${h.url_for( controller='root', action='edit', id=data.id )}" target="galaxy_main"></a>
- %endif
+ <a class="icon-button edit" title="edit attributes" href="${h.url_for( controller='root', action='edit', id=data.id )}" target="galaxy_main"></a>
+ %endif
%endif
%if user_owns_dataset:
- <a class="icon-button delete" title="delete" href="${h.url_for( action='delete', id=data.id, show_deleted_on_refresh=show_deleted_on_refresh )}" id="historyItemDeleter-${data.id}"></a>
- %endif
- </div>
- <span class="state-icon"></span>
- <span class="historyItemTitle">${hid}: ${data.display_name()}</span>
- </div>
+ <a class="icon-button delete" title="delete" href="${h.url_for( action='delete', id=data.id, show_deleted_on_refresh=show_deleted_on_refresh )}" id="historyItemDeleter-${data.id}"></a>
+ %endif
+ </div>
+ <span class="state-icon"></span>
+ <span class="historyItemTitle">${hid}: ${data.display_name()}</span>
+ </div>
## Body for history items, extra info and actions, data "peek"
@@ -61,10 +61,10 @@
<div>
An error occurred running this job: <i>${data.display_info().strip()}</i>
</div>
- <div>
- <a href="${h.url_for( controller='dataset', action='errors', id=data.id )}" target="galaxy_main">report this error</a>
- | <a href="${h.url_for( controller='tool_runner', action='rerun', id=data.id )}" target="galaxy_main">rerun</a>
- </div>
+ <div>
+ <a href="${h.url_for( controller='dataset', action='errors', id=data.id )}" target="galaxy_main">report this error</a>
+ | <a href="${h.url_for( controller='tool_runner', action='rerun', id=data.id )}" target="galaxy_main">rerun</a>
+ </div>
%elif data_state == "discarded":
<div>
The job creating this dataset was cancelled before completion.
@@ -88,16 +88,16 @@
<div>
%if data.has_data:
<a href="${h.url_for( controller='dataset', action='display', dataset_id=trans.security.encode_id( data.id ), to_ext=data.ext )}">save</a>
- %if user_owns_dataset:
- | <a href="${h.url_for( controller='tool_runner', action='rerun', id=data.id )}" target="galaxy_main">rerun</a>
- %endif
+ %if user_owns_dataset:
+ | <a href="${h.url_for( controller='tool_runner', action='rerun', id=data.id )}" target="galaxy_main">rerun</a>
+ %endif
%for display_app in data.datatype.get_display_types():
<% target_frame, display_links = data.datatype.get_display_links( data, display_app, app, request.base ) %>
%if len( display_links ) > 0:
| ${data.datatype.get_display_label(display_app)}
- %for display_name, display_link in display_links:
- <a target="${target_frame}" href="${display_link}">${_(display_name)}</a>
- %endfor
+ %for display_name, display_link in display_links:
+ <a target="${target_frame}" href="${display_link}">${_(display_name)}</a>
+ %endfor
%endif
%endfor
%endif
@@ -105,17 +105,17 @@
%if data.peek != "no peek":
<div><pre id="peek${data.id}" class="peek">${_(data.display_peek())}</pre></div>
%endif
- %else:
- <div>${_('Error: unknown dataset state "%s".') % data_state}</div>
+ %else:
+ <div>${_('Error: unknown dataset state "%s".') % data_state}</div>
%endif
## Recurse for child datasets
%if len( data.children ) > 0:
- ## FIXME: This should not be in the template, there should
- ## be a 'visible_children' method on dataset.
+ ## FIXME: This should not be in the template, there should
+ ## be a 'visible_children' method on dataset.
<%
- children = []
+ children = []
for child in data.children:
if child.visible:
children.append( child )
diff -r 1a3339f017e9 -r 63201eefad88 templates/sharing_base.mako
--- a/templates/sharing_base.mako Wed Feb 03 10:31:26 2010 -0500
+++ b/templates/sharing_base.mako Wed Feb 03 11:27:21 2010 -0500
@@ -12,172 +12,172 @@
##
<%def name="title()">
- Sharing and Publishing ${get_class_display_name( item.__class__ )} '${get_item_name( item )}'
+ Sharing and Publishing ${get_class_display_name( item.__class__ )} '${get_item_name( item )}'
</%def>
<%def name="stylesheets()">
${parent.stylesheets()}
- <style>
- div.indent
- {
- margin-left: 1em;
- }
- input.action-button
- {
- margin-left: 0;
- }
- </style>
+ <style>
+ div.indent
+ {
+ margin-left: 1em;
+ }
+ input.action-button
+ {
+ margin-left: 0;
+ }
+ </style>
</%def>
<%def name="body()">
- <%
- #
- # Setup and variables needed for page.
- #
-
- # Get class name strings.
- item_class_name = get_class_display_name( item.__class__ )
- item_class_name_lc = item_class_name.lower()
- item_class_plural_name = get_class_plural_display_name( item.__class__ )
- item_class_plural_name_lc = item_class_plural_name.lower()
- %>
- <% item_name = get_item_name(item) %>
+ <%
+ #
+ # Setup and variables needed for page.
+ #
+
+ # Get class name strings.
+ item_class_name = get_class_display_name( item.__class__ )
+ item_class_name_lc = item_class_name.lower()
+ item_class_plural_name = get_class_plural_display_name( item.__class__ )
+ item_class_plural_name_lc = item_class_plural_name.lower()
+ %>
+ <% item_name = get_item_name(item) %>
- <h2>Sharing and Publishing ${item_class_name} '${item_name}'</h2>
+ <h2>Sharing and Publishing ${item_class_name} '${item_name}'</h2>
- ## Require that user have a public username before sharing or publishing an item.
- %if trans.get_user().username is None or trans.get_user().username is "":
- To make a ${item_class_name_lc} accessible via link or publish it, you must create a public username:
- <p>
- <form action="${h.url_for( action='set_public_username', id=trans.security.encode_id( item.id ) )}"
- method="POST">
- <div class="form-row">
- <label>Public Username:</label>
- <div class="form-row-input">
- <input type="text" name="username" size="40"/>
- </div>
- </div>
- <div style="clear: both"></div>
- <div class="form-row">
- <input class="action-button" type="submit" name="Set Username" value="Set Username"/>
- </div>
- </form>
- %else:
- ## User has a public username, so private sharing and publishing options.
- <div class="indent" style="margin-top: 2em">
- <h3>Making ${item_class_name} Accessible via Link and Publishing It</h3>
+ ## Require that user have a public username before sharing or publishing an item.
+ %if trans.get_user().username is None or trans.get_user().username is "":
+ To make a ${item_class_name_lc} accessible via link or publish it, you must create a public username:
+ <p>
+ <form action="${h.url_for( action='set_public_username', id=trans.security.encode_id( item.id ) )}"
+ method="POST">
+ <div class="form-row">
+ <label>Public Username:</label>
+ <div class="form-row-input">
+ <input type="text" name="username" size="40"/>
+ </div>
+ </div>
+ <div style="clear: both"></div>
+ <div class="form-row">
+ <input class="action-button" type="submit" name="Set Username" value="Set Username"/>
+ </div>
+ </form>
+ %else:
+ ## User has a public username, so private sharing and publishing options.
+ <div class="indent" style="margin-top: 2em">
+ <h3>Making ${item_class_name} Accessible via Link and Publishing It</h3>
- <div>
- %if item.importable:
- <%
- item_status = "accessible via link"
- if item.published:
- item_status = item_status + " and published"
- %>
- This ${item_class_name_lc} <strong>${item_status}</strong>.
- <div>
- <p>Anyone can view and import this ${item_class_name_lc} by visiting the following URL:
- <% url = h.url_for( action='display_by_username_and_slug', username=trans.get_user().username, slug=item.slug, qualified=True ) %>
- <blockquote>
- <a href="${url}" target="_top">${url}</a>
- </blockquote>
-
- %if item.published:
- This ${item_class_name_lc} is publicly listed and searchable in Galaxy's <a href='${h.url_for( action='list_published' )}' target="_top">Published ${item_class_plural_name}</a> section.
- %endif
- </div>
-
- <p>You can:
- <div>
- <form action="${h.url_for( action='sharing', id=trans.security.encode_id( item.id ) )}"
- method="POST">
- %if not item.published:
- ## Item is importable but not published. User can disable importable or publish.
- <input class="action-button" type="submit" name="disable_link_access" value="Disable Access to ${item_class_name} Link">
- <div class="toolParamHelp">Disables ${item_class_name_lc}'s link so that it is not accessible.</div>
- <br>
- <input class="action-button" type="submit" name="publish" value="Publish ${item_class_name}" method="POST">
- <div class="toolParamHelp">Publishes the ${item_class_name_lc} to Galaxy's <a href='${h.url_for( action='list_published' )}' target="_top">Published ${item_class_plural_name}</a> section, where it is publicly listed and searchable.</div>
+ <div>
+ %if item.importable:
+ <%
+ item_status = "accessible via link"
+ if item.published:
+ item_status = item_status + " and published"
+ %>
+ This ${item_class_name_lc} <strong>${item_status}</strong>.
+ <div>
+ <p>Anyone can view and import this ${item_class_name_lc} by visiting the following URL:
+ <% url = h.url_for( action='display_by_username_and_slug', username=trans.get_user().username, slug=item.slug, qualified=True ) %>
+ <blockquote>
+ <a href="${url}" target="_top">${url}</a>
+ </blockquote>
+
+ %if item.published:
+ This ${item_class_name_lc} is publicly listed and searchable in Galaxy's <a href='${h.url_for( action='list_published' )}' target="_top">Published ${item_class_plural_name}</a> section.
+ %endif
+ </div>
+
+ <p>You can:
+ <div>
+ <form action="${h.url_for( action='sharing', id=trans.security.encode_id( item.id ) )}"
+ method="POST">
+ %if not item.published:
+ ## Item is importable but not published. User can disable importable or publish.
+ <input class="action-button" type="submit" name="disable_link_access" value="Disable Access to ${item_class_name} Link">
+ <div class="toolParamHelp">Disables ${item_class_name_lc}'s link so that it is not accessible.</div>
+ <br>
+ <input class="action-button" type="submit" name="publish" value="Publish ${item_class_name}" method="POST">
+ <div class="toolParamHelp">Publishes the ${item_class_name_lc} to Galaxy's <a href='${h.url_for( action='list_published' )}' target="_top">Published ${item_class_plural_name}</a> section, where it is publicly listed and searchable.</div>
- <br>
- %else: ## item.published == True
- ## Item is importable and published. User can unpublish or disable import and unpublish.
- <input class="action-button" type="submit" name="unpublish" value="Unpublish ${item_class_name}">
- <div class="toolParamHelp">Removes ${item_class_name_lc} from Galaxy's <a href='${h.url_for( action='list_published' )}' target="_top">Published ${item_class_plural_name}</a> section so that it is not publicly listed or searchable.</div>
- <br>
- <input class="action-button" type="submit" name="disable_link_access_and_unpubish" value="Disable Access to ${item_class_name} via Link and Unpublish">
- <div class="toolParamHelp">Disables ${item_class_name_lc}'s link so that it is not accessible and removes ${item_class_name_lc} from Galaxy's <a href='${h.url_for( action='list_published' )}' target='_top'>Published ${item_class_plural_name}</a> section so that it is not publicly listed or searchable.</div>
- %endif
-
- </form>
- </div>
+ <br>
+ %else: ## item.published == True
+ ## Item is importable and published. User can unpublish or disable import and unpublish.
+ <input class="action-button" type="submit" name="unpublish" value="Unpublish ${item_class_name}">
+ <div class="toolParamHelp">Removes ${item_class_name_lc} from Galaxy's <a href='${h.url_for( action='list_published' )}' target="_top">Published ${item_class_plural_name}</a> section so that it is not publicly listed or searchable.</div>
+ <br>
+ <input class="action-button" type="submit" name="disable_link_access_and_unpubish" value="Disable Access to ${item_class_name} via Link and Unpublish">
+ <div class="toolParamHelp">Disables ${item_class_name_lc}'s link so that it is not accessible and removes ${item_class_name_lc} from Galaxy's <a href='${h.url_for( action='list_published' )}' target='_top'>Published ${item_class_plural_name}</a> section so that it is not publicly listed or searchable.</div>
+ %endif
+
+ </form>
+ </div>
- %else:
+ %else:
- This ${item_class_name_lc} is currently restricted so that only you and the users listed below can access it. You can:
- <p>
- <form action="${h.url_for( action='sharing', id=trans.security.encode_id(item.id) )}" method="POST">
- <input class="action-button" type="submit" name="make_accessible_via_link" value="Make ${item_class_name} Accessible via Link">
- <div class="toolParamHelp">Generates a web link that you can share with other people so that they can view and import the ${item_class_name_lc}.</div>
-
- <br>
- <input class="action-button" type="submit" name="make_accessible_and_publish" value="Make ${item_class_name} Accessible and Publish" method="POST">
- <div class="toolParamHelp">Makes the ${item_class_name_lc} accessible via link (see above) and publishes the ${item_class_name_lc} to Galaxy's <a href='${h.url_for( action='list_published' )}' target='_top'>Published ${item_class_plural_name}</a> section, where it is publicly listed and searchable.</div>
- </form>
+ This ${item_class_name_lc} is currently restricted so that only you and the users listed below can access it. You can:
+ <p>
+ <form action="${h.url_for( action='sharing', id=trans.security.encode_id(item.id) )}" method="POST">
+ <input class="action-button" type="submit" name="make_accessible_via_link" value="Make ${item_class_name} Accessible via Link">
+ <div class="toolParamHelp">Generates a web link that you can share with other people so that they can view and import the ${item_class_name_lc}.</div>
+
+ <br>
+ <input class="action-button" type="submit" name="make_accessible_and_publish" value="Make ${item_class_name} Accessible and Publish" method="POST">
+ <div class="toolParamHelp">Makes the ${item_class_name_lc} accessible via link (see above) and publishes the ${item_class_name_lc} to Galaxy's <a href='${h.url_for( action='list_published' )}' target='_top'>Published ${item_class_plural_name}</a> section, where it is publicly listed and searchable.</div>
+ </form>
- %endif
- </div>
+ %endif
+ </div>
- <h3>Sharing ${item_class_name} with Specific Users</h3>
+ <h3>Sharing ${item_class_name} with Specific Users</h3>
- <div>
- %if item.users_shared_with:
+ <div>
+ %if item.users_shared_with:
- <p>
- The following users will see this ${item_class_name_lc} in their ${item_class_name_lc} list and will be
- able to run/view and import it.
- </p>
+ <p>
+ The following users will see this ${item_class_name_lc} in their ${item_class_name_lc} list and will be
+ able to run/view and import it.
+ </p>
- <table class="colored" border="0" cellspacing="0" cellpadding="0" width="100%">
- <tr class="header">
- <th>Email</th>
- <th></th>
- </tr>
- %for i, association in enumerate( item.users_shared_with ):
- <% user = association.user %>
- <tr>
- <td>
- ${user.email}
- <a id="user-${i}-popup" class="popup-arrow" style="display: none;">▼</a>
- </td>
- <td>
- <div popupmenu="user-${i}-popup">
- <a class="action-button" href="${h.url_for( action='sharing', id=trans.security.encode_id( item.id ), unshare_user=trans.security.encode_id( user.id ) )}">Unshare</a>
- </div>
- </td>
- </tr>
- %endfor
- </table>
-
- <p>
- <a class="action-button" href="${h.url_for( action='share', id=trans.security.encode_id(item.id) )}">
- <span>Share with another user</span>
- </a>
+ <table class="colored" border="0" cellspacing="0" cellpadding="0" width="100%">
+ <tr class="header">
+ <th>Email</th>
+ <th></th>
+ </tr>
+ %for i, association in enumerate( item.users_shared_with ):
+ <% user = association.user %>
+ <tr>
+ <td>
+ ${user.email}
+ <a id="user-${i}-popup" class="popup-arrow" style="display: none;">▼</a>
+ </td>
+ <td>
+ <div popupmenu="user-${i}-popup">
+ <a class="action-button" href="${h.url_for( action='sharing', id=trans.security.encode_id( item.id ), unshare_user=trans.security.encode_id( user.id ) )}">Unshare</a>
+ </div>
+ </td>
+ </tr>
+ %endfor
+ </table>
+
+ <p>
+ <a class="action-button" href="${h.url_for( action='share', id=trans.security.encode_id(item.id) )}">
+ <span>Share with another user</span>
+ </a>
- %else:
+ %else:
- <p>You have not shared this ${item_class_name_lc} with any users.</p>
+ <p>You have not shared this ${item_class_name_lc} with any users.</p>
- <a class="action-button" href="${h.url_for( action='share', id=trans.security.encode_id(item.id) )}">
- <span>Share with a user</span>
- </a>
- <br>
+ <a class="action-button" href="${h.url_for( action='share', id=trans.security.encode_id(item.id) )}">
+ <span>Share with a user</span>
+ </a>
+ <br>
- %endif
- </div>
- </div>
- %endif
+ %endif
+ </div>
+ </div>
+ %endif
- <p><br><br>
- <a href=${h.url_for( action="list" )}>Back to ${item_class_plural_name} List</a>
+ <p><br><br>
+ <a href=${h.url_for( action="list" )}>Back to ${item_class_plural_name} List</a>
</%def>
\ No newline at end of file
diff -r 1a3339f017e9 -r 63201eefad88 templates/workflow/edit_attributes.mako
--- a/templates/workflow/edit_attributes.mako Wed Feb 03 10:31:26 2010 -0500
+++ b/templates/workflow/edit_attributes.mako Wed Feb 03 11:27:21 2010 -0500
@@ -17,21 +17,21 @@
%endif
<%def name="body()">
- <div class="toolForm">
- <div class="toolFormTitle">${_('Edit Workflow Attributes')}</div>
- <div class="toolFormBody">
- <form name="edit_attributes" action="${h.url_for( action='edit_attributes' )}" method="post">
- <input type="hidden" name="id" value="${trans.security.encode_id( stored.id )}"/>
- <div class="form-row">
- <label>
- Name:
- </label>
- <div style="float: left; width: 225px; margin-right: 10px;">
- <input type="text" name="name" value="${stored.name}" size="30"/>
- </div>
+ <div class="toolForm">
+ <div class="toolFormTitle">${_('Edit Workflow Attributes')}</div>
+ <div class="toolFormBody">
+ <form name="edit_attributes" action="${h.url_for( action='edit_attributes' )}" method="post">
+ <input type="hidden" name="id" value="${trans.security.encode_id( stored.id )}"/>
+ <div class="form-row">
+ <label>
+ Name:
+ </label>
+ <div style="float: left; width: 225px; margin-right: 10px;">
+ <input type="text" name="name" value="${stored.name}" size="30"/>
+ </div>
<div style="clear: both"></div>
- </div>
- <%namespace file="/tagging_common.mako" import="render_individual_tagging_element" />
+ </div>
+ <%namespace file="/tagging_common.mako" import="render_individual_tagging_element" />
<div class="form-row">
<label>
Tags:
@@ -57,10 +57,10 @@
<div style="clear: both"></div>
<div class="toolParamHelp">Add an annotation notes to a workflow; annotations are available when a workflow is viewed.</div>
</div>
- <div class="form-row">
- <input type="submit" name="save" value="${_('Save')}"/>
- </div>
- </form>
- </div>
- </div>
+ <div class="form-row">
+ <input type="submit" name="save" value="${_('Save')}"/>
+ </div>
+ </form>
+ </div>
+ </div>
</%def>
\ No newline at end of file
diff -r 1a3339f017e9 -r 63201eefad88 templates/workflow/editor.mako
--- a/templates/workflow/editor.mako Wed Feb 03 10:31:26 2010 -0500
+++ b/templates/workflow/editor.mako Wed Feb 03 11:27:21 2010 -0500
@@ -218,18 +218,17 @@
});
});
- // Rename async.
- async_save_text("workflow-rename", "workflow-name", "${h.url_for( action="rename_async", id=trans.security.encode_id(stored.id) )}", "new_name");
-
- // Tag async. Simply have the workflow tag element generate a click on the tag element to activate tagging.
- $('#workflow-tag').click( function()
- {
- $('.tag-area').click();
- return false;
- });
-
- // Annotate async.
- async_save_text("workflow-annotate", "workflow-annotation", "${h.url_for( action="annotate_async", id=trans.security.encode_id(stored.id) )}", "new_annotation", true, 4);
+ // Rename async.
+ async_save_text("workflow-rename", "workflow-name", "${h.url_for( action="rename_async", id=trans.security.encode_id(stored.id) )}", "new_name");
+
+ // Tag async. Simply have the workflow edit element generate a click on the tag element to activate tagging.
+ $('#workflow-tag').click( function()
+ {
+ $('.tag-area').click();
+ return false;
+ });
+ // Annotate async.
+ async_save_text("workflow-annotate", "workflow-annotation", "${h.url_for( action="annotate_async", id=trans.security.encode_id(stored.id) )}", "new_annotation", true, 4);
});
// Global state for the whole workflow
@@ -338,17 +337,17 @@
$(this).remove();
make_popupmenu( b, options );
});
- // Add annotation field to form.
- // TODO: need to set the annotation for this tool.
- var annotation_div =
- $( "<div class='form-row'> \
- <label>Annotation / Notes:</label> \
- <div style='margin-right: 10px;'> \
- <textarea name='annotation' rows='3' style='width: 100%'>" + node.annotation + "</textarea> \
- <div class='toolParamHelp'>Add an annotation or notes to this step; annotations are available when a workflow is viewed.</div> \
- </div> \
- </div>");
- $(this).append( annotation_div );
+ // Add annotation field to form.
+ // TODO: need to set the annotation for this tool.
+ var annotation_div =
+ $( "<div class='form-row'> \
+ <label>Annotation / Notes:</label> \
+ <div style='margin-right: 10px;'> \
+ <textarea name='annotation' rows='3' style='width: 100%'>" + node.annotation + "</textarea> \
+ <div class='toolParamHelp'>Add an annotation or notes to this step; annotations are available when a workflow is viewed.</div> \
+ </div> \
+ </div>");
+ $(this).append( annotation_div );
// Implements auto-saving based on whether the inputs change. We consider
// "changed" to be when a field is accessed and not necessarily modified
// because of an issue where "onchange" is not triggered when activating
@@ -777,23 +776,23 @@
</div>
</div>
<div class="unified-panel-body" style="overflow: auto;">
- ## Div for elements to modify workflow attributes.
- <div id="edit-attributes" class="toolForm right-content">
- <div class="toolFormTitle">Edit Workflow Attributes</div>
- <div class="toolFormBody">
- ## Workflow name.
- <div id="workflow-name-area" class="form-row">
- <label>Name:</label>
- <div style="float: right"><a id="workflow-rename" title="Rename" class="icon-button edit" target="galaxy_main" href="${h.url_for( controller='workflow', action='rename_sync' )}"></a></div>
- <div id="workflow-name">${stored.name}</div>
- <div style="clear: both"></div>
- </div>
- ## Workflow tags.
- <%namespace file="/tagging_common.mako" import="render_individual_tagging_element" />
- <div class="form-row">
- <label>
- Tags:
- </label>
+ ## Div for elements to modify workflow attributes.
+ <div id="edit-attributes" class="toolForm right-content">
+ <div class="toolFormTitle">Edit Workflow Attributes</div>
+ <div class="toolFormBody">
+ ## Workflow name.
+ <div id="workflow-name-area" class="form-row">
+ <label>Name:</label>
+ <div style="float: right"><a id="workflow-rename" title="Rename" class="icon-button edit" target="galaxy_main" href="${h.url_for( controller='workflow', action='rename_sync' )}"></a></div>
+ <div id="workflow-name">${stored.name}</div>
+ <div style="clear: both"></div>
+ </div>
+ ## Workflow tags.
+ <%namespace file="/tagging_common.mako" import="render_individual_tagging_element" />
+ <div class="form-row">
+ <label>
+ Tags:
+ </label>
<div style="float: right"><a id="workflow-tag" title="Tag" class="icon-button edit" target="galaxy_main" href="${h.url_for( controller='workflow', action='annotate_async' )}"></a></div>
<div style="float: left; width: 225px; margin-right: 10px; border-style: inset; border-width: 1px; margin-left: 2px">
<style>
@@ -806,17 +805,17 @@
<div style="clear: both"></div>
<div class="toolParamHelp">Apply tags to make it easy to search for and find items with the same tag.</div>
</div>
- ## Workflow annotation.
- <div id="workflow-annotation-area" class="form-row">
- <label>Annotation / Notes:</label>
- <div style="float: right"><a id="workflow-annotate" title="Annotate" class="icon-button edit" target="galaxy_main" href="${h.url_for( controller='workflow', action='annotate_async' )}"></a></div>
- <div id="workflow-annotation">${annotation}</div>
+ ## Workflow annotation.
+ <div id="workflow-annotation-area" class="form-row">
+ <label>Annotation / Notes:</label>
+ <div style="float: right"><a id="workflow-annotate" title="Annotate" class="icon-button edit" target="galaxy_main" href="${h.url_for( controller='workflow', action='annotate_async' )}"></a></div>
+ <div id="workflow-annotation">${annotation}</div>
<div style="clear: both"></div>
- <div class="toolParamHelp">Add an annotation or notes to a workflow; annotations are available when a workflow is viewed.</div>
- </div>
- </div>
- </div>
- ## Div where tool details are loaded and modified.
- <div id="right-content" class="right-content"></div>
+ <div class="toolParamHelp">Add an annotation or notes to a workflow; annotations are available when a workflow is viewed.</div>
+ </div>
+ </div>
+ </div>
+ ## Div where tool details are loaded and modified.
+ <div id="right-content" class="right-content"></div>
</div>
</%def>
1
0
details: http://www.bx.psu.edu/hg/galaxy/rev/1a3339f017e9
changeset: 3318:1a3339f017e9
user: James Taylor <james(a)jamestaylor.org>
date: Wed Feb 03 10:31:26 2010 -0500
description:
Escape HTML in history annotation
diffstat:
lib/galaxy/web/framework/helpers/__init__.py | 2 ++
templates/root/history.mako | 6 +++++-
2 files changed, 7 insertions(+), 1 deletions(-)
diffs (28 lines):
diff -r 4a2a488e4fa0 -r 1a3339f017e9 lib/galaxy/web/framework/helpers/__init__.py
--- a/lib/galaxy/web/framework/helpers/__init__.py Wed Feb 03 09:32:37 2010 -0500
+++ b/lib/galaxy/web/framework/helpers/__init__.py Wed Feb 03 10:31:26 2010 -0500
@@ -7,6 +7,8 @@
from galaxy.util import hash_util
from datetime import datetime, timedelta
+from cgi import escape
+
# If the date is more than one week ago, then display the actual date instead of in words
def time_ago( x ):
delta = timedelta(weeks=1)
diff -r 4a2a488e4fa0 -r 1a3339f017e9 templates/root/history.mako
--- a/templates/root/history.mako Wed Feb 03 09:32:37 2010 -0500
+++ b/templates/root/history.mako Wed Feb 03 10:31:26 2010 -0500
@@ -310,7 +310,11 @@
<div id="history-annotation-area" class="form-row">
<label>Annotation / Notes:</label>
<div style="float: right"><a id="history-annotate" title="Annotate" class="icon-button edit" target="galaxy_main" href="${h.url_for( controller='history', action='annotate_async' )}"></a></div>
- <div id="history-annotation">${annotation}</div>
+ %if annotation:
+ <div id="history-annotation">${h.escape(annotation)}</div>
+ %else:
+ <div id="history-annotation"></div>
+ %endif
<div style="clear: both"></div>
</div>
</div>
1
0
Hello,
It looks like the bar_chart tool is broken (you've removed it from "main", and it doesn't work on "test").
If I may suggest a fix:
Running "bar_chart" on "test" and on my local galaxy, gives a 'cheeta' error:
======================
...
...
File "/galaxy/home/g2test/galaxy_test/eggs/py2.5-solaris-2.10-i86pc-ucs2/Cheetah-2.2.2-py2.5-solaris-2.10-i86pc.egg/Cheetah/Parser.py", line 2645, in popFromOpenDirectivesStack
raise ParseError(self, msg="#end found, but nothing to end")
ParseError:
#end found, but nothing to end
Line 4, column 1
Line|Cheetah Code
----|-------------------------------------------------------------
2 | #else: #bar_chart.py $input 0 $colList "$title" "$ylabel" $ymin $ymax $out_file1 "$pdf_size"
3 | #end if
4 |
^
======================
The reason for this is that something changed in recent 'cheetas' modules (happened to me with other tools, too), and now "#ifs" statements must start at the beginning of the line (no white space is allowed).
The current "bar_chart.xml" looks like this:
================
<command interpreter="python">
#if $xtic.userSpecified == "Yes": #bar_chart.py $input $xtic.xticColumn $colList "$title" "$ylabel" $ymin $ymax $out_file1 "$pdf_size"
#else: #bar_chart.py $input 0 $colList "$title" "$ylabel" $ymin $ymax $out_file1 "$pdf_size"
#end if
</command>
================
Removing white space and putting the actual command on a separate line *almost* works:
================
<command interpreter="python">
#if $xtic.userSpecified == "Yes":
bar_chart.py $input $xtic.xticColumn $colList "$title" "$ylabel" $ymin $ymax $out_file1 "$pdf_size"
#else:
bar_chart.py $input 0 $colList "$title" "$ylabel" $ymin $ymax $out_file1 "$pdf_size"
#end if
</command>
================
The reason it *almost* works is because of the "interpreter" tag, Galaxy prefixes the command ("bar_chart.py") with the tool's directory name, but the cheeta code causes an extra white space. The executed command looks like this (Note the single space between the directory name and the 'bar_chart.py'):
==================
galaxy.jobs.runners.local DEBUG 2010-02-03 10:11:26,936 executing: python /home/gordon/projects/galaxy_devel/tools/plotting/ bar_chart.py /home/gordon/projects/galaxy_devel/database/files/000/dataset_5.dat 1 2 "Bar Chart" "V1" 0 0 /home/gordon/projects/galaxy_devel/database/files/000/dataset_9.dat "800,600"
=====================
This of course fails with the error:
=====================
python: '/home/gordon/projects/galaxy_devel/tools/plotting/' is a directory, cannot continue
=====================
My solution is to move the cheeta code after the 'bar_chart.py', so there will be no extra white space.
The following XML code fixes the problem:
=====================
<command interpreter="python">bar_chart.py $input
#if $xtic.userSpecified == "Yes":
$colList
#else:
0
#end if
$colList "$title" "$ylabel" $ymin $ymax $out_file1 "$pdf_size"
</command>
=====================
and the bar-chart tool works again (assuming you've installed "numpy" and "gnuplot" python modules).
Thanks to John for finding this bug.
-gordon
2
2
Thanks for the answer! I've copied this response to the dev list email
instead, after realizing its probably best there.
I'm also having some trouble getting our PBS system configured. I have
pbs://hostname/ as my pbs parameter in the universe file, as well as
everything else specified in the documentation. I'm getting no error in the
interface, and the backend never actually gets the job. The error I see in
the logs says:
galaxy.jobs.runners.pbs ERROR 2009-10-30 13:40:27,762 Uncaught exception
queueing job
Traceback (most recent call last):
File "/home/perin/galaxy-dist/lib/galaxy/jobs/runners/pbs.py", line 144,
in run_next
self.queue_job( obj )
File "/home/perin/galaxy-dist/lib/galaxy/jobs/runners/pbs.py", line 219,
in queue_job
script = pbs_symlink_template % (job_wrapper.galaxy_lib_dir, "
".join(job_wrapper.get_input_fnames() + output_fnames),
self.app.config.pbs_stage_path, exec_dir, command_line)
TypeError: sequence item 1: expected string, DatasetPath found
I'm guessing this has something to do with my config parameters, and the
queue its trying to submit to. the pbs://hostname/ value was used under the
assumption that it would default to the 'default' queue on our cluster, so
I'm wondering if I need to hard code those values into the connection
string? I'm a little confused as to how the syntax translates to the actual
required string. My guess is, for our values:
pbs://variome.chop.edu/default
Perhaps its related to the scrambling of the egg instead? I simply passed
LIBTORQUE_DIR to the directory containing my libtorqure.so etc...
? Thanks in advance.
Juan Perin
On Fri, Oct 30, 2009 at 12:07 PM, Nate Coraor <nate(a)bx.psu.edu> wrote:
> Juan Perin wrote:
>
> I'm hosting galaxy locally and am trying to figure out how to change the
>> temporary upload location of files from the root / /tmp folder to something
>> else. My /tmp partition is too small to handle large fastq files and this
>> is causing me problems. I see where to change things in the universe file,
>> but that's the final location, not the temporary space.
>>
>
> Hi Juan,
>
> A quick solution is to set $TEMP in your shell environment. In the future,
> we'll force uploads to honor new_file_path in universe_wsgi.ini.
>
> --nate
>
5
7