galaxy-commits
Threads by month
- ----- 2026 -----
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- 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
- 15302 discussions
commit/galaxy-central: dan: One more occurance of fastq_to_fasta that was dropped.
by commits-noreply@bitbucket.org 10 Oct '13
by commits-noreply@bitbucket.org 10 Oct '13
10 Oct '13
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/commits/085454c899af/
Changeset: 085454c899af
User: dan
Date: 2013-10-10 22:25:43
Summary: One more occurance of fastq_to_fasta that was dropped.
Affected #: 1 file
diff -r 6621aa022ebad1eee0e808a16137af73aecafd61 -r 085454c899afaaf05a9c17d3818ed2b3029e7210 tool_conf.xml.sample
--- a/tool_conf.xml.sample
+++ b/tool_conf.xml.sample
@@ -95,6 +95,7 @@
<tool file="maf/maf_to_interval.xml" /><tool file="maf/maf_to_fasta.xml" /><tool file="fasta_tools/tabular_to_fasta.xml" />
+ <tool file="fastq/fastq_to_fasta.xml" /><tool file="filters/wiggle_to_simple.xml" /><tool file="filters/sff_extractor.xml" /><tool file="filters/gtf2bedgraph.xml" />
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0
commit/galaxy-central: Dave Bouvier: Restore the fastq_to_fasta that was not migrated.
by commits-noreply@bitbucket.org 10 Oct '13
by commits-noreply@bitbucket.org 10 Oct '13
10 Oct '13
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/commits/6621aa022eba/
Changeset: 6621aa022eba
User: Dave Bouvier
Date: 2013-10-10 22:16:19
Summary: Restore the fastq_to_fasta that was not migrated.
Affected #: 1 file
diff -r e66766f18a58e200391f28157d0993b35014b84d -r 6621aa022ebad1eee0e808a16137af73aecafd61 tool_conf.xml.sample
--- a/tool_conf.xml.sample
+++ b/tool_conf.xml.sample
@@ -258,6 +258,7 @@
<tool file="fastq/fastq_paired_end_interlacer.xml" /><tool file="fastq/fastq_paired_end_deinterlacer.xml" /><tool file="fastq/fastq_manipulation.xml" />
+ <tool file="fastq/fastq_to_fasta.xml" /><tool file="fastq/fastq_to_tabular.xml" /><tool file="fastq/tabular_to_fastq.xml" />
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0
commit/galaxy-central: Dave Bouvier: Remove migrated tools that were somehow restored to tool_conf.xml.sample
by commits-noreply@bitbucket.org 10 Oct '13
by commits-noreply@bitbucket.org 10 Oct '13
10 Oct '13
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/commits/e66766f18a58/
Changeset: e66766f18a58
User: Dave Bouvier
Date: 2013-10-10 22:12:52
Summary: Remove migrated tools that were somehow restored to tool_conf.xml.sample
Affected #: 1 file
diff -r ff76fd33b81cdde1fb270de688ec5e86488ba34d -r e66766f18a58e200391f28157d0993b35014b84d tool_conf.xml.sample
--- a/tool_conf.xml.sample
+++ b/tool_conf.xml.sample
@@ -1,12 +1,12 @@
-<?xml version="1.0"?>
+<?xml version='1.0' encoding='utf-8'?><toolbox>
- <section name="Get Data" id="getext">
- <tool file="data_source/upload.xml"/>
+ <section id="getext" name="Get Data">
+ <tool file="data_source/upload.xml" /><tool file="data_source/ucsc_tablebrowser.xml" /><tool file="data_source/ucsc_tablebrowser_test.xml" /><tool file="data_source/ucsc_tablebrowser_archaea.xml" /><tool file="data_source/bx_browser.xml" />
- <tool file="data_source/ebi_sra.xml"/>
+ <tool file="data_source/ebi_sra.xml" /><tool file="data_source/microbial_import.xml" /><tool file="data_source/biomart.xml" /><tool file="data_source/biomart_test.xml" />
@@ -32,19 +32,19 @@
<tool file="genomespace/genomespace_importer.xml" /><tool file="validation/fix_errors.xml" /></section>
- <section name="Send Data" id="send">
+ <section id="send" name="Send Data"><tool file="data_destination/epigraph.xml" /><tool file="data_destination/epigraph_test.xml" /><tool file="genomespace/genomespace_exporter.xml" /></section>
- <section name="ENCODE Tools" id="EncodeTools">
+ <section id="EncodeTools" name="ENCODE Tools"><tool file="encode/gencode_partition.xml" /><tool file="encode/random_intervals.xml" /></section>
- <section name="Lift-Over" id="liftOver">
+ <section id="liftOver" name="Lift-Over"><tool file="extract/liftOver_wrapper.xml" /></section>
- <section name="Text Manipulation" id="textutil">
+ <section id="textutil" name="Text Manipulation"><tool file="filters/fixedValueColumn.xml" /><tool file="stats/column_maker.xml" /><tool file="filters/catWrapper.xml" />
@@ -65,25 +65,25 @@
<tool file="stats/dna_filtering.xml" /><tool file="new_operations/tables_arithmetic_operations.xml" /></section>
- <section name="Filter and Sort" id="filter">
+ <section id="filter" name="Filter and Sort"><tool file="stats/filtering.xml" /><tool file="filters/sorter.xml" /><tool file="filters/grep.xml" />
- <label text="GFF" id="gff" />
+ <label id="gff" text="GFF" /><tool file="filters/gff/extract_GFF_Features.xml" /><tool file="filters/gff/gff_filter_by_attribute.xml" /><tool file="filters/gff/gff_filter_by_feature_count.xml" /><tool file="filters/gff/gtf_filter_by_attribute_values_list.xml" /></section>
- <section name="Join, Subtract and Group" id="group">
+ <section id="group" name="Join, Subtract and Group"><tool file="filters/joiner.xml" />
- <tool file="filters/compare.xml"/>
- <tool file="new_operations/subtract_query.xml"/>
+ <tool file="filters/compare.xml" />
+ <tool file="new_operations/subtract_query.xml" /><tool file="stats/grouping.xml" /><tool file="new_operations/column_join.xml" /></section>
- <section name="Convert Formats" id="convert">
+ <section id="convert" name="Convert Formats"><tool file="filters/axt_to_concat_fasta.xml" /><tool file="filters/axt_to_fasta.xml" /><tool file="filters/axt_to_lav.xml" />
@@ -95,39 +95,38 @@
<tool file="maf/maf_to_interval.xml" /><tool file="maf/maf_to_fasta.xml" /><tool file="fasta_tools/tabular_to_fasta.xml" />
- <tool file="fastq/fastq_to_fasta.xml" /><tool file="filters/wiggle_to_simple.xml" /><tool file="filters/sff_extractor.xml" /><tool file="filters/gtf2bedgraph.xml" /><tool file="filters/wig_to_bigwig.xml" /><tool file="filters/bed_to_bigbed.xml" /></section>
- <section name="Extract Features" id="features">
+ <section id="features" name="Extract Features"><tool file="filters/ucsc_gene_bed_to_exon_bed.xml" /></section>
- <section name="Fetch Sequences" id="fetchSeq">
+ <section id="fetchSeq" name="Fetch Sequences"><tool file="extract/extract_genomic_dna.xml" /></section>
- <section name="Fetch Alignments" id="fetchAlign">
+ <section id="fetchAlign" name="Fetch Alignments"><tool file="maf/interval2maf_pairwise.xml" /><tool file="maf/interval2maf.xml" />
- <tool file="maf/maf_split_by_species.xml"/>
+ <tool file="maf/maf_split_by_species.xml" /><tool file="maf/interval_maf_to_merged_fasta.xml" />
- <tool file="maf/genebed_maf_to_fasta.xml"/>
- <tool file="maf/maf_stats.xml"/>
- <tool file="maf/maf_thread_for_species.xml"/>
- <tool file="maf/maf_limit_to_species.xml"/>
- <tool file="maf/maf_limit_size.xml"/>
- <tool file="maf/maf_by_block_number.xml"/>
- <tool file="maf/maf_reverse_complement.xml"/>
- <tool file="maf/maf_filter.xml"/>
+ <tool file="maf/genebed_maf_to_fasta.xml" />
+ <tool file="maf/maf_stats.xml" />
+ <tool file="maf/maf_thread_for_species.xml" />
+ <tool file="maf/maf_limit_to_species.xml" />
+ <tool file="maf/maf_limit_size.xml" />
+ <tool file="maf/maf_by_block_number.xml" />
+ <tool file="maf/maf_reverse_complement.xml" />
+ <tool file="maf/maf_filter.xml" /></section>
- <section name="Get Genomic Scores" id="scores">
+ <section id="scores" name="Get Genomic Scores"><tool file="stats/wiggle_to_simple.xml" /><tool file="stats/aggregate_binned_scores_in_intervals.xml" /><tool file="extract/phastOdds/phastOdds_tool.xml" /></section>
- <section name="Operate on Genomic Intervals" id="bxops">
+ <section id="bxops" name="Operate on Genomic Intervals"><tool file="new_operations/intersect.xml" /><tool file="new_operations/subtract.xml" /><tool file="new_operations/merge.xml" />
@@ -141,21 +140,19 @@
<tool file="new_operations/flanking_features.xml" /><tool file="annotation_profiler/annotation_profiler.xml" /></section>
- <section name="Statistics" id="stats">
+ <section id="stats" name="Statistics"><tool file="stats/gsummary.xml" /><tool file="filters/uniq.xml" /><tool file="stats/cor.xml" /><tool file="stats/generate_matrix_for_pca_lda.xml" /><tool file="stats/lda_analy.xml" /><tool file="stats/plot_from_lda.xml" />
- <tool file="regVariation/t_test_two_samples.xml" />
- <tool file="regVariation/compute_q_values.xml" /><tool file="stats/MINE.xml" />
- <label text="GFF" id="gff" />
+ <label id="gff" text="GFF" /><tool file="stats/count_gff_features.xml" /></section>
- <section name="Wavelet Analysis" id="dwt">
+ <section id="dwt" name="Wavelet Analysis"><tool file="discreteWavelet/execute_dwt_var_perFeature.xml" /><!--
Keep this section/tools commented until all of the tools have functional tests
@@ -165,11 +162,10 @@
<tool file="discreteWavelet/execute_dwt_var_perClass.xml" />
--></section>
- <section name="Graph/Display Data" id="plots">
+ <section id="plots" name="Graph/Display Data"><tool file="plotting/histogram2.xml" /><tool file="plotting/scatterplot.xml" /><tool file="plotting/bar_chart.xml" />
- <tool file="plotting/xy_plot.xml" /><tool file="plotting/boxplot.xml" /><tool file="visualization/GMAJ.xml" /><tool file="visualization/LAJ.xml" />
@@ -177,57 +173,48 @@
<tool file="maf/vcf_to_maf_customtrack.xml" /><tool file="mutation/visualize.xml" /></section>
- <section name="Regional Variation" id="regVar">
+ <section id="regVar" name="Regional Variation"><tool file="regVariation/windowSplitter.xml" /><tool file="regVariation/featureCounter.xml" /><tool file="regVariation/WeightedAverage.xml" /><tool file="regVariation/quality_filter.xml" /><tool file="regVariation/maf_cpg_filter.xml" /><tool file="regVariation/getIndels_2way.xml" />
- <tool file="regVariation/getIndels_3way.xml" /><tool file="regVariation/getIndelRates_3way.xml" /><tool file="regVariation/substitutions.xml" /><tool file="regVariation/substitution_rates.xml" /><tool file="regVariation/microsats_alignment_level.xml" /><tool file="regVariation/microsats_mutability.xml" />
- <tool file="regVariation/delete_overlapping_indels.xml" />
- <tool file="regVariation/compute_motifs_frequency.xml" />
- <tool file="regVariation/compute_motif_frequencies_for_all_motifs.xml" />
- <tool file="regVariation/categorize_elements_satisfying_criteria.xml" />s
- <tool file="regVariation/draw_stacked_barplots.xml" />
- <tool file="regVariation/multispecies_MicrosatDataGenerator_interrupted_GALAXY.xml" />
- <tool file="regVariation/microsatellite_birthdeath.xml" /></section>
- <section name="Multiple regression" id="multReg">
+ <section id="multReg" name="Multiple regression"><tool file="regVariation/linear_regression.xml" /><tool file="regVariation/logistic_regression_vif.xml" /><tool file="regVariation/best_regression_subsets.xml" /><tool file="regVariation/rcve.xml" /><tool file="regVariation/partialR_square.xml" /></section>
- <section name="Multivariate Analysis" id="multVar">
+ <section id="multVar" name="Multivariate Analysis"><tool file="multivariate_stats/pca.xml" /><tool file="multivariate_stats/cca.xml" /><tool file="multivariate_stats/kpca.xml" /><tool file="multivariate_stats/kcca.xml" /></section>
- <section name="Evolution" id="hyphy">
+ <section id="hyphy" name="Evolution"><tool file="hyphy/hyphy_branch_lengths_wrapper.xml" /><tool file="hyphy/hyphy_nj_tree_wrapper.xml" /><tool file="hyphy/hyphy_dnds_wrapper.xml" />
- <tool file="evolution/mutate_snp_codon.xml" /><tool file="evolution/codingSnps.xml" /><tool file="evolution/add_scores.xml" /></section>
- <section name="Motif Tools" id="motifs">
- <tool file="meme/meme.xml"/>
- <tool file="meme/fimo.xml"/>
+ <section id="motifs" name="Motif Tools">
+ <tool file="meme/meme.xml" />
+ <tool file="meme/fimo.xml" /><tool file="rgenetics/rgWebLogo3.xml" /></section>
- <section name="Multiple Alignments" id="clustal">
+ <section id="clustal" name="Multiple Alignments"><tool file="rgenetics/rgClustalw.xml" /></section>
- <section name="Metagenomic analyses" id="tax_manipulation">
+ <section id="tax_manipulation" name="Metagenomic analyses"><tool file="taxonomy/gi2taxonomy.xml" /><tool file="taxonomy/t2t_report.xml" /><tool file="taxonomy/t2ps_wrapper.xml" />
@@ -235,38 +222,35 @@
<tool file="taxonomy/lca.xml" /><tool file="taxonomy/poisson2test.xml" /></section>
- <section name="FASTA manipulation" id="fasta_manipulation">
+ <section id="fasta_manipulation" name="FASTA manipulation"><tool file="fasta_tools/fasta_compute_length.xml" /><tool file="fasta_tools/fasta_filter_by_length.xml" /><tool file="fasta_tools/fasta_concatenate_by_species.xml" /><tool file="fasta_tools/fasta_to_tabular.xml" /><tool file="fasta_tools/tabular_to_fasta.xml" />
- <tool file="fastx_toolkit/fasta_formatter.xml" />
- <tool file="fastx_toolkit/fasta_nucleotide_changer.xml" />
- <tool file="fastx_toolkit/fastx_collapser.xml" /></section>
- <section name="NGS: QC and manipulation" id="NGS_QC">
+ <section id="NGS_QC" name="NGS: QC and manipulation">
- <label text="FastQC: fastq/sam/bam" id="fastqcsambam" />
+ <label id="fastqcsambam" text="FastQC: fastq/sam/bam" /><tool file="rgenetics/rgFastQC.xml" />
- <label text="Illumina fastq" id="illumina" />
+ <label id="illumina" text="Illumina fastq" /><tool file="fastq/fastq_groomer.xml" /><tool file="fastq/fastq_paired_end_splitter.xml" /><tool file="fastq/fastq_paired_end_joiner.xml" /><tool file="fastq/fastq_stats.xml" />
- <label text="Roche-454 data" id="454" />
+ <label id="454" text="Roche-454 data" /><tool file="metag_tools/short_reads_figure_score.xml" /><tool file="metag_tools/short_reads_trim_seq.xml" /><tool file="fastq/fastq_combiner.xml" />
- <label text="AB-SOLiD data" id="solid" />
+ <label id="solid" text="AB-SOLiD data" /><tool file="next_gen_conversion/solid2fastq.xml" /><tool file="solid_tools/solid_qual_stats.xml" /><tool file="solid_tools/solid_qual_boxplot.xml" />
- <label text="Generic FASTQ manipulation" id="generic_fastq" />
+ <label id="generic_fastq" text="Generic FASTQ manipulation" /><tool file="fastq/fastq_filter.xml" /><tool file="fastq/fastq_trimmer.xml" /><tool file="fastq/fastq_trimmer_by_quality.xml" />
@@ -274,25 +258,10 @@
<tool file="fastq/fastq_paired_end_interlacer.xml" /><tool file="fastq/fastq_paired_end_deinterlacer.xml" /><tool file="fastq/fastq_manipulation.xml" />
- <tool file="fastq/fastq_to_fasta.xml" /><tool file="fastq/fastq_to_tabular.xml" /><tool file="fastq/tabular_to_fastq.xml" />
- <label text="FASTX-Toolkit for FASTQ data" id="fastx_toolkit" />
- <tool file="fastx_toolkit/fastq_quality_converter.xml" />
- <tool file="fastx_toolkit/fastx_quality_statistics.xml" />
- <tool file="fastx_toolkit/fastq_quality_boxplot.xml" />
- <tool file="fastx_toolkit/fastx_nucleotides_distribution.xml" />
- <tool file="fastx_toolkit/fastq_to_fasta.xml" />
- <tool file="fastx_toolkit/fastq_quality_filter.xml" />
- <tool file="fastx_toolkit/fastq_to_fasta.xml" />
- <tool file="fastx_toolkit/fastx_artifacts_filter.xml" />
- <tool file="fastx_toolkit/fastx_barcode_splitter.xml" />
- <tool file="fastx_toolkit/fastx_clipper.xml" />
- <tool file="fastx_toolkit/fastx_collapser.xml" />
- <tool file="fastx_toolkit/fastx_renamer.xml" />
- <tool file="fastx_toolkit/fastx_reverse_complement.xml" />
- <tool file="fastx_toolkit/fastx_trimmer.xml" />
+ <label id="fastx_toolkit" text="FASTX-Toolkit for FASTQ data" /></section><!--
Keep this section commented until it includes tools that
@@ -305,31 +274,26 @@
<tool file="sr_assembly/velveth.xml" /></section>
-->
- <section name="NGS: Mapping" id="solexa_tools">
+ <section id="solexa_tools" name="NGS: Mapping"><tool file="sr_mapping/bowtie2_wrapper.xml" /><tool file="sr_mapping/bfast_wrapper.xml" /><tool file="metag_tools/megablast_wrapper.xml" /><tool file="metag_tools/megablast_xml_parser.xml" /><tool file="sr_mapping/PerM.xml" /><tool file="sr_mapping/srma_wrapper.xml" />
- <tool file="sr_mapping/mosaik.xml"/>
+ <tool file="sr_mapping/mosaik.xml" /></section>
- <section name="NGS: Indel Analysis" id="indel_analysis">
+ <section id="indel_analysis" name="NGS: Indel Analysis"><tool file="indels/sam_indel_filter.xml" />
- <tool file="indels/indel_sam2interval.xml" /><tool file="indels/indel_table.xml" /><tool file="indels/indel_analysis.xml" /></section>
- <section name="NGS: RNA Analysis" id="ngs-rna-tools">
+ <section id="ngs-rna-tools" name="NGS: RNA Analysis">
- <label text="RNA-seq" id="rna_seq" />
+ <label id="rna_seq" text="RNA-seq" /><tool file="ngs_rna/tophat_wrapper.xml" /><tool file="ngs_rna/tophat2_wrapper.xml" /><tool file="ngs_rna/tophat_color_wrapper.xml" />
- <tool file="ngs_rna/cufflinks_wrapper.xml" />
- <tool file="ngs_rna/cuffcompare_wrapper.xml" />
- <tool file="ngs_rna/cuffmerge_wrapper.xml" />
- <tool file="ngs_rna/cuffdiff_wrapper.xml" /><tool file="ngs_rna/express_wrapper.xml" /><!-- Trinity is very memory-intensive and should only be enabled/run
on instances with sufficient resources.
@@ -337,87 +301,71 @@
<tool file="ngs_rna/trinity_all.xml" />
-->
- <label text="Filtering" id="filtering" />
+ <label id="filtering" text="Filtering" /><tool file="ngs_rna/filter_transcripts_via_tracking.xml" /></section>
- <section name="NGS: SAM Tools" id="samtools">
- <tool file="samtools/sam_bitwise_flag_filter.xml" />
- <tool file="samtools/sam2interval.xml" />
- <tool file="samtools/sam_to_bam.xml" />
- <tool file="samtools/bam_to_sam.xml" />
- <tool file="samtools/sam_merge.xml" />
- <tool file="samtools/samtools_mpileup.xml" />
- <tool file="samtools/sam_pileup.xml" />
- <tool file="samtools/pileup_parser.xml" />
- <tool file="samtools/pileup_interval.xml" />
- <tool file="samtools/samtools_flagstat.xml" />
- <tool file="samtools/samtools_rmdup.xml" />
- <tool file="samtools/samtools_slice_bam.xml" />
+ <section id="samtools" name="NGS: SAM Tools"></section>
- <section name="NGS: GATK Tools (beta)" id="gatk">
- <label text="Alignment Utilities" id="gatk_bam_utilities"/>
+ <section id="gatk" name="NGS: GATK Tools (beta)">
+ <label id="gatk_bam_utilities" text="Alignment Utilities" /><tool file="gatk/depth_of_coverage.xml" /><tool file="gatk/print_reads.xml" />
- <label text="Realignment" id="gatk_realignment" />
+ <label id="gatk_realignment" text="Realignment" /><tool file="gatk/realigner_target_creator.xml" /><tool file="gatk/indel_realigner.xml" />
- <label text="Base Recalibration" id="gatk_recalibration" />
+ <label id="gatk_recalibration" text="Base Recalibration" /><tool file="gatk/count_covariates.xml" /><tool file="gatk/table_recalibration.xml" /><tool file="gatk/analyze_covariates.xml" />
- <label text="Genotyping" id="gatk_genotyping" />
+ <label id="gatk_genotyping" text="Genotyping" /><tool file="gatk/unified_genotyper.xml" />
- <label text="Annotation" id="gatk_annotation" />
+ <label id="gatk_annotation" text="Annotation" /><tool file="gatk/variant_annotator.xml" />
- <label text="Filtration" id="gatk_filtration" />
+ <label id="gatk_filtration" text="Filtration" /><tool file="gatk/variant_filtration.xml" /><tool file="gatk/variant_select.xml" />
- <label text="Variant Quality Score Recalibration" id="gatk_variant_quality_score_recalibration" />
+ <label id="gatk_variant_quality_score_recalibration" text="Variant Quality Score Recalibration" /><tool file="gatk/variant_recalibrator.xml" /><tool file="gatk/variant_apply_recalibration.xml" />
- <label text="Variant Utilities" id="gatk_variant_utilities"/>
+ <label id="gatk_variant_utilities" text="Variant Utilities" /><tool file="gatk/variants_validate.xml" /><tool file="gatk/variant_eval.xml" /><tool file="gatk/variant_combine.xml" /></section>
- <section name="NGS: Peak Calling" id="peak_calling">
+ <section id="peak_calling" name="NGS: Peak Calling"><tool file="peak_calling/macs_wrapper.xml" /><tool file="peak_calling/sicer_wrapper.xml" /><tool file="peak_calling/ccat_wrapper.xml" /><tool file="genetrack/genetrack_indexer.xml" /><tool file="genetrack/genetrack_peak_prediction.xml" /></section>
- <section name="NGS: Simulation" id="ngs-simulation">
+ <section id="ngs-simulation" name="NGS: Simulation"><tool file="ngs_simulation/ngs_simulation.xml" /></section>
- <section name="Phenotype Association" id="hgv">
+ <section id="hgv" name="Phenotype Association"><tool file="evolution/codingSnps.xml" /><tool file="evolution/add_scores.xml" /><tool file="phenotype_association/sift.xml" /><tool file="phenotype_association/linkToGProfile.xml" />
- <tool file="phenotype_association/linkToDavid.xml"/>
- <tool file="phenotype_association/ctd.xml" />
- <tool file="phenotype_association/funDo.xml" />
+ <tool file="phenotype_association/linkToDavid.xml" /><tool file="phenotype_association/snpFreq.xml" /><tool file="phenotype_association/ldtools.xml" /><tool file="phenotype_association/pass.xml" /><tool file="phenotype_association/gpass.xml" /><tool file="phenotype_association/beam.xml" /><tool file="phenotype_association/lps.xml" />
- <tool file="phenotype_association/hilbertvis.xml" /><tool file="phenotype_association/freebayes.xml" /><tool file="phenotype_association/master2pg.xml" /><tool file="phenotype_association/vcf2pgSnp.xml" />
- <tool file="phenotype_association/dividePgSnpAlleles.xml" /></section>
- <section name="VCF Tools" id="vcf_tools">
+ <section id="vcf_tools" name="VCF Tools"><tool file="vcf_tools/intersect.xml" /><tool file="vcf_tools/annotate.xml" /><tool file="vcf_tools/filter.xml" />
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0
commit/galaxy-central: natefoo: Fix exception class name bug I introduced in the last change to the drmaa runner.
by commits-noreply@bitbucket.org 10 Oct '13
by commits-noreply@bitbucket.org 10 Oct '13
10 Oct '13
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/commits/ff76fd33b81c/
Changeset: ff76fd33b81c
User: natefoo
Date: 2013-10-10 21:17:13
Summary: Fix exception class name bug I introduced in the last change to the drmaa runner.
Affected #: 1 file
diff -r 60a1b0fdccd252c406d8b92ab60005456afe6e7c -r ff76fd33b81cdde1fb270de688ec5e86488ba34d lib/galaxy/jobs/runners/drmaa.py
--- a/lib/galaxy/jobs/runners/drmaa.py
+++ b/lib/galaxy/jobs/runners/drmaa.py
@@ -214,7 +214,7 @@
state = self.ds.jobStatus( external_job_id )
# TODO: probably need to keep track of InvalidJobException count and remove after it exceeds some configurable
except ( drmaa.DrmCommunicationException, drmaa.InternalException, drmaa.InvalidJobException ), e:
- log.warning( "(%s/%s) job check resulted in %s: %s", galaxy_id_tag, external_job_id, e.__class__.name, e )
+ log.warning( "(%s/%s) job check resulted in %s: %s", galaxy_id_tag, external_job_id, e.__class__.__name__, e )
new_watched.append( ajs )
continue
except Exception, e:
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0
commit/galaxy-central: guerler: Connect upload front end to upload tool via tools api
by commits-noreply@bitbucket.org 10 Oct '13
by commits-noreply@bitbucket.org 10 Oct '13
10 Oct '13
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/commits/60a1b0fdccd2/
Changeset: 60a1b0fdccd2
User: guerler
Date: 2013-10-10 20:41:47
Summary: Connect upload front end to upload tool via tools api
Affected #: 3 files
diff -r ab9f5cb3acd8dcfe30fc5b92fc4a792c9815c877 -r 60a1b0fdccd252c406d8b92ab60005456afe6e7c lib/galaxy/webapps/galaxy/api/history_contents.py
--- a/lib/galaxy/webapps/galaxy/api/history_contents.py
+++ b/lib/galaxy/webapps/galaxy/api/history_contents.py
@@ -214,69 +214,6 @@
trans.sa_session.flush()
return hda.to_dict()
- # copy from upload
- if source == 'upload':
-
- # get upload specific features
- dbkey = payload.get('dbkey', None)
- extension = payload.get('extension', None)
- space_to_tabs = payload.get('space_to_tabs', False)
-
- # check for filename
- if content.filename is None:
- trans.response.status = 400
- return "history_contents:create() : The contents parameter needs to contain the uploaded file content."
-
- # create a dataset
- dataset = trans.app.model.Dataset()
- trans.sa_session.add(dataset)
- trans.sa_session.flush()
-
- # get file destination
- file_destination = dataset.get_file_name()
-
- # check if the directory exists
- dn = os.path.dirname(file_destination)
- if not os.path.exists(dn):
- os.makedirs(dn)
-
- # get file and directory names
- fn = os.path.basename(content.filename)
-
- # save file locally
- open(file_destination, 'wb').write(content.file.read())
-
- # log
- log.info ('The file "' + fn + '" was uploaded successfully.')
-
- # replace separation with tabs
- if space_to_tabs:
- log.info ('Replacing spaces with tabs.')
- sniff.convert_newlines_sep2tabs(file_destination)
-
- # guess extension
- if extension is None:
- log.info ('Guessing extension.')
- extension = sniff.guess_ext(file_destination)
-
- # create hda
- hda = trans.app.model.HistoryDatasetAssociation(dataset = dataset, name = content.filename,
- extension = extension, dbkey = dbkey, history = history, sa_session = trans.sa_session)
-
- # add status ok
- hda.state = hda.states.OK
-
- # add dataset to history
- history.add_dataset(hda, genome_build = dbkey)
- permissions = trans.app.security_agent.history_get_default_permissions( history )
- trans.app.security_agent.set_all_dataset_permissions( hda.dataset, permissions )
-
- # add to session
- trans.sa_session.add(hda)
- trans.sa_session.flush()
-
- # get name
- return hda.to_dict()
else:
# other options
trans.response.status = 501
diff -r ab9f5cb3acd8dcfe30fc5b92fc4a792c9815c877 -r 60a1b0fdccd252c406d8b92ab60005456afe6e7c static/scripts/galaxy.modal.js
--- a/static/scripts/galaxy.modal.js
+++ b/static/scripts/galaxy.modal.js
@@ -38,10 +38,12 @@
this.$body.css('max-height', maxHeight);
// fix height if available
- if (this.options.height < maxHeight)
- this.$body.css('height', this.options.height);
- else
- this.$body.css('height', maxHeight);
+ if (this.options.height) {
+ if (this.options.height < maxHeight)
+ this.$body.css('height', this.options.height);
+ else
+ this.$body.css('height', maxHeight);
+ }
// remove scroll bar
if (this.options.height)
diff -r ab9f5cb3acd8dcfe30fc5b92fc4a792c9815c877 -r 60a1b0fdccd252c406d8b92ab60005456afe6e7c static/scripts/galaxy.upload.js
--- a/static/scripts/galaxy.upload.js
+++ b/static/scripts/galaxy.upload.js
@@ -19,9 +19,7 @@
// extension types
select_extension : {
- 'auto' : 'Auto-detect',
- 'bed' : 'bed',
- 'ab1' : 'ab1'
+ 'auto' : 'Auto-detect'
},
// states
@@ -134,18 +132,31 @@
// get element
var it = this.get_upload_item(index);
+
+ // get current history
+ var current_history = Galaxy.currHistoryPanel.model.get('id');
- // read in configuration
- var data = {
- source : "upload",
- space_to_tabs : it.find('#space_to_tabs').is(':checked'),
- extension : it.find('#extension').val()
- }
+ // configure tool
+ this.uploadbox.configure({url : galaxy_config.root + "api/tools/", paramname : "files_0|file_data"});
- // configure url
- var current_history = Galaxy.currHistoryPanel.model.get('id');
- this.uploadbox.configure({url : galaxy_config.root + "api/histories/" + current_history + "/contents"});
+ // get
+ var file_type = it.find('#extension').val();
+ var space_to_tabs = it.find('#space_to_tabs').is(':checked');
+ // configure tool
+ tool_input = {};
+ tool_input['dbkey'] = '?';
+ tool_input['file_type'] = file_type;
+ tool_input['files_0|NAME'] = file.name;
+ tool_input['files_0|type'] = 'upload_dataset';
+ tool_input['space_to_tabs'] = space_to_tabs;
+
+ // setup data
+ data = {};
+ data['history_id'] = current_history;
+ data['tool_id'] = 'upload1';
+ data['inputs'] = JSON.stringify(tool_input);
+
// return additional data to be send with file
return data;
},
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0
commit/galaxy-central: greg: Filter tool dependency installation to only those that were checked when installing them from the Manage tool dependencies page for an installed tool shed repository.
by commits-noreply@bitbucket.org 10 Oct '13
by commits-noreply@bitbucket.org 10 Oct '13
10 Oct '13
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/commits/ab9f5cb3acd8/
Changeset: ab9f5cb3acd8
User: greg
Date: 2013-10-10 20:11:09
Summary: Filter tool dependency installation to only those that were checked when installing them from the Manage tool dependencies page for an installed tool shed repository.
Affected #: 3 files
diff -r 450c04224d6cd0f2c8c7964cedcd0eeafd98c873 -r ab9f5cb3acd8dcfe30fc5b92fc4a792c9815c877 lib/galaxy/webapps/galaxy/controllers/admin_toolshed.py
--- a/lib/galaxy/webapps/galaxy/controllers/admin_toolshed.py
+++ b/lib/galaxy/webapps/galaxy/controllers/admin_toolshed.py
@@ -701,11 +701,11 @@
installed_tool_dependencies_select_field = suc.build_tool_dependencies_select_field( trans,
tool_shed_repository=tool_shed_repository,
name='inst_td_ids',
- uninstalled=False )
+ uninstalled_only=False )
uninstalled_tool_dependencies_select_field = suc.build_tool_dependencies_select_field( trans,
tool_shed_repository=tool_shed_repository,
name='uninstalled_tool_dependency_ids',
- uninstalled=True )
+ uninstalled_only=True )
return trans.fill_template( '/admin/tool_shed_repository/manage_repository_tool_dependencies.mako',
repository=tool_shed_repository,
installed_tool_dependencies_select_field=installed_tool_dependencies_select_field,
diff -r 450c04224d6cd0f2c8c7964cedcd0eeafd98c873 -r ab9f5cb3acd8dcfe30fc5b92fc4a792c9815c877 lib/tool_shed/util/common_install_util.py
--- a/lib/tool_shed/util/common_install_util.py
+++ b/lib/tool_shed/util/common_install_util.py
@@ -429,6 +429,10 @@
will be installed in:
~/<app.config.tool_dependency_dir>/<package_name>/<package_version>/<repo_owner>/<repo_name>/<repo_installed_changeset_revision>
"""
+ # The received list of tool_dependencies are the database records for those dependencies defined in the received tool_dependencies_config
+ # that should be installed. This allows for filtering out dependencies that have not been checked for installation on the 'Manage tool
+ # dependencies' page for an installed tool shed repository.
+ attr_tups_of_dependencies_for_install = [ ( td.name, td.version, td.type ) for td in tool_dependencies ]
sa_session = app.model.context.current
installed_tool_dependencies = []
# Parse the tool_dependencies.xml config.
@@ -439,19 +443,43 @@
fabric_version_checked = False
for elem in root:
if elem.tag == 'package':
- # Only install the tool_dependency if it is not already installed.
+ # Only install the tool_dependency if it is not already installed and it is associated with a database record in the received
+ # tool_dependencies.
package_name = elem.get( 'name', None )
package_version = elem.get( 'version', None )
if package_name and package_version:
- for tool_dependency in tool_dependencies:
- if tool_dependency.name==package_name and tool_dependency.version==package_version:
- break
- if tool_dependency.can_install:
+ attr_tup = ( package_name, package_version, 'package' )
+ try:
+ index = attr_tups_of_dependencies_for_install.index( attr_tup )
+ except Exception, e:
+ index = None
+ if index is not None:
+ tool_dependency = tool_dependencies[ index ]
+ if tool_dependency.can_install:
+ try:
+ tool_dependency = install_package( app, elem, tool_shed_repository, tool_dependencies=tool_dependencies )
+ except Exception, e:
+ error_message = "Error installing tool dependency %s version %s: %s" % ( str( package_name ), str( package_version ), str( e ) )
+ log.exception( error_message )
+ if tool_dependency:
+ tool_dependency.status = app.model.ToolDependency.installation_status.ERROR
+ tool_dependency.error_message = error_message
+ sa_session.add( tool_dependency )
+ sa_session.flush()
+ if tool_dependency and tool_dependency.status in [ app.model.ToolDependency.installation_status.INSTALLED,
+ app.model.ToolDependency.installation_status.ERROR ]:
+ installed_tool_dependencies.append( tool_dependency )
+ elif elem.tag == 'set_environment':
+ env_var_name = env_var_elem.get( 'name', None )
+ if env_var_name:
+ # Tool dependencies of type "set_environmnet" always have the version attribute set to None.
+ attr_tup = ( env_var_name, None, 'set_environment' )
+ if attr_tup in attr_tups_of_dependencies_for_install:
try:
- tool_dependency = install_package( app, elem, tool_shed_repository, tool_dependencies=tool_dependencies )
+ tool_dependency = set_environment( app, elem, tool_shed_repository )
except Exception, e:
- error_message = "Error installing tool dependency %s version %s: %s" % ( str( package_name ), str( package_version ), str( e ) )
- log.exception( error_message )
+ error_message = "Error setting environment for tool dependency: %s" % str( e )
+ log.debug( error_message )
if tool_dependency:
tool_dependency.status = app.model.ToolDependency.installation_status.ERROR
tool_dependency.error_message = error_message
@@ -460,20 +488,6 @@
if tool_dependency and tool_dependency.status in [ app.model.ToolDependency.installation_status.INSTALLED,
app.model.ToolDependency.installation_status.ERROR ]:
installed_tool_dependencies.append( tool_dependency )
- elif elem.tag == 'set_environment':
- try:
- tool_dependency = set_environment( app, elem, tool_shed_repository )
- except Exception, e:
- error_message = "Error setting environment for tool dependency: %s" % str( e )
- log.debug( error_message )
- if tool_dependency:
- tool_dependency.status = app.model.ToolDependency.installation_status.ERROR
- tool_dependency.error_message = error_message
- sa_session.add( tool_dependency )
- sa_session.flush()
- if tool_dependency and tool_dependency.status in [ app.model.ToolDependency.installation_status.INSTALLED,
- app.model.ToolDependency.installation_status.ERROR ]:
- installed_tool_dependencies.append( tool_dependency )
return installed_tool_dependencies
def repository_dependency_needed_only_for_compiling_tool_dependency( repository, repository_dependency ):
diff -r 450c04224d6cd0f2c8c7964cedcd0eeafd98c873 -r ab9f5cb3acd8dcfe30fc5b92fc4a792c9815c877 lib/tool_shed/util/shed_util_common.py
--- a/lib/tool_shed/util/shed_util_common.py
+++ b/lib/tool_shed/util/shed_util_common.py
@@ -144,13 +144,18 @@
repositories_select_field.add_option( option_label, option_value )
return repositories_select_field
-def build_tool_dependencies_select_field( trans, tool_shed_repository, name, multiple=True, display='checkboxes', uninstalled=False ):
+def build_tool_dependencies_select_field( trans, tool_shed_repository, name, multiple=True, display='checkboxes', uninstalled_only=False ):
"""Method called from Galaxy to generate the current list of tool dependency ids for an installed tool shed repository."""
tool_dependencies_select_field = SelectField( name=name, multiple=multiple, display=display )
for tool_dependency in tool_shed_repository.tool_dependencies:
- if uninstalled and tool_dependency.status not in [ trans.model.ToolDependency.installation_status.NEVER_INSTALLED,
- trans.model.ToolDependency.installation_status.UNINSTALLED ]:
- continue
+ if uninstalled_only:
+ if tool_dependency.status not in [ trans.model.ToolDependency.installation_status.NEVER_INSTALLED,
+ trans.model.ToolDependency.installation_status.UNINSTALLED ]:
+ continue
+ else:
+ if tool_dependency.status in [ trans.model.ToolDependency.installation_status.NEVER_INSTALLED,
+ trans.model.ToolDependency.installation_status.UNINSTALLED ]:
+ continue
option_label = '%s version %s' % ( str( tool_dependency.name ), str( tool_dependency.version ) )
option_value = trans.security.encode_id( tool_dependency.id )
tool_dependencies_select_field.add_option( option_label, option_value )
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0
commit/galaxy-central: guerler: Update of the new upload front end, fix data viewer
by commits-noreply@bitbucket.org 10 Oct '13
by commits-noreply@bitbucket.org 10 Oct '13
10 Oct '13
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/commits/450c04224d6c/
Changeset: 450c04224d6c
User: guerler
Date: 2013-10-10 19:34:36
Summary: Update of the new upload front end, fix data viewer
Affected #: 6 files
diff -r 33af3a5b36df7207ec469d635779329a73117f73 -r 450c04224d6cd0f2c8c7964cedcd0eeafd98c873 static/scripts/galaxy.modal.js
--- a/static/scripts/galaxy.modal.js
+++ b/static/scripts/galaxy.modal.js
@@ -11,13 +11,16 @@
// base element
elMain: '#everything',
- // defaults inputs
+ // defaults options
optionsDefault: {
title : "galaxy-modal",
body : "",
backdrop : true
},
+ // options
+ options : {},
+
// initialize
initialize : function(options) {
// create
@@ -31,16 +34,18 @@
this.initialize(options);
// fix height
- this.$body.css('max-height', $(document).height() / 2);
+ var maxHeight = $(document).height() / 2;
+ this.$body.css('max-height', maxHeight);
- // set max-height so that modal does not exceed window size and is in middle of page.
- /*/ TODO: this could perhaps be handled better using CSS.
- this.$body.css( "max-height",
- $(window).height() -
- this.$footer.outerHeight() -
- this.$header.outerHeight() -
- parseInt( this.$dialog.css( "padding-top" ), 10 ) -
- parseInt( this.$dialog.css( "padding-bottom" ), 10 ));*/
+ // fix height if available
+ if (this.options.height < maxHeight)
+ this.$body.css('height', this.options.height);
+ else
+ this.$body.css('height', maxHeight);
+
+ // remove scroll bar
+ if (this.options.height)
+ this.$body.css('overflow', 'hidden');
// show
if (this.visible)
@@ -64,18 +69,18 @@
// create
create: function(options) {
// configure options
- options = _.defaults(options, this.optionsDefault);
+ this.options = _.defaults(options, this.optionsDefault);
// check for progress bar request
- if (options.body == 'progress')
- options.body = $('<div class="progress progress-striped active"><div class="progress-bar progress-bar-info" style="width:100%"></div></div>');
+ if (this.options.body == 'progress')
+ this.options.body = $('<div class="progress progress-striped active"><div class="progress-bar progress-bar-info" style="width:100%"></div></div>');
// remove former element
if (this.$el)
this.$el.remove();
// create new element
- this.setElement(this.template(options.title));
+ this.setElement(this.template(this.options.title));
// link elements
this.$body = (this.$el).find('.modal-body');
@@ -84,24 +89,20 @@
this.$backdrop = (this.$el).find('.modal-backdrop');
// append body
- this.$body.html(options.body);
-
- // fix height if available
- if (options.height)
- this.$body.css('height', options.height);
+ this.$body.html(this.options.body);
// fix min-width so that modal cannot shrink considerably if new content is loaded.
this.$body.css('min-width', this.$body.width());
// configure background
- if (!options.backdrop)
+ if (!this.options.backdrop)
this.$backdrop.removeClass('in');
// append buttons
- if (options.buttons) {
+ if (this.options.buttons) {
// link functions
var self = this;
- $.each(options.buttons, function(name, value) {
+ $.each(this.options.buttons, function(name, value) {
self.$buttons.append($('<button id="' + String(name).toLowerCase() + '"></button>').text(name).click(value)).append(" ");
});
} else
diff -r 33af3a5b36df7207ec469d635779329a73117f73 -r 450c04224d6cd0f2c8c7964cedcd0eeafd98c873 static/scripts/galaxy.upload.js
--- a/static/scripts/galaxy.upload.js
+++ b/static/scripts/galaxy.upload.js
@@ -19,15 +19,16 @@
// extension types
select_extension : {
- '' : 'Auto-detect',
+ 'auto' : 'Auto-detect',
'bed' : 'bed',
'ab1' : 'ab1'
},
// states
state : {
- init : 'fa-icon-trash',
- done : 'fa-icon-caret-down'
+ init : 'fa-icon-trash',
+ success : 'fa-icon-ok',
+ error : 'fa-icon-warning-sign'
},
// counter
@@ -94,7 +95,7 @@
var id = '#upload-' + index;
// add upload item
- $(this.el).append(this.template_file(id, this.select_extension));
+ $(this.el).find('tbody:last').append(this.template_row(id, this.select_extension));
// scroll to bottom
//$(this.el).scrollTop($(this.el).prop('scrollHeight'));
@@ -106,15 +107,15 @@
it.fadeIn();
// update title
- it.find('.title').html(file.name);
-
- // configure select field
- //it.find('#extension').select2();
+ it.find('#title').html(file.name);
+
+ // update info
+ it.find('#size').html(this.size_to_string (file.size));
// add functionality to remove button
var self = this;
- it.find('.symbol').on('click', function() { self.event_remove (index) });
-
+ it.find('#symbol').on('click', function() { self.event_remove (index) });
+
// initialize progress
this.event_progress(index, file, 0);
@@ -141,6 +142,10 @@
extension : it.find('#extension').val()
}
+ // configure url
+ var current_history = Galaxy.currHistoryPanel.model.get('id');
+ this.uploadbox.configure({url : galaxy_config.root + "api/histories/" + current_history + "/contents"});
+
// return additional data to be send with file
return data;
},
@@ -157,8 +162,8 @@
// update progress
it.find('.progress-bar').css({ width : percentage + '%' });
- // update info
- it.find('.info').html(percentage + '% of ' + this.size_to_string (file.size));
+ // update value
+ it.find('#percentage').html(percentage + '%');
},
// success
@@ -184,16 +189,15 @@
var it = this.get_upload_item(index);
// update progress frame
- it.addClass('panel-success');
- it.removeClass('panel-default');
+ it.addClass('success');
// update icon
- var sy = it.find('.symbol');
+ var sy = it.find('#symbol');
sy.removeClass('fa-icon-spin');
sy.removeClass('fa-icon-spinner');
// set status
- sy.addClass(this.state.done);
+ sy.addClass(this.state.success);
},
// error
@@ -216,22 +220,21 @@
var it = this.get_upload_item(index);
// update progress frame
- it.addClass('panel-danger');
- it.removeClass('panel-default');
+ it.addClass('danger');
// remove progress bar
it.find('.progress').remove();
// write error message
- it.find('.error').html('<strong>Failed:</strong> ' + message);
+ it.find('#info').html('<strong>Failed: </strong>' + message).show();
// update icon
- var sy = it.find('.symbol');
+ var sy = it.find('#symbol');
sy.removeClass('fa-icon-spin');
sy.removeClass('fa-icon-spinner');
// set status
- sy.addClass(this.state.done);
+ sy.addClass(this.state.error);
},
// start upload process
@@ -242,27 +245,22 @@
return;
// switch icons for new uploads
+ var items = $(this.el).find('.upload-item');
var self = this;
- $(this.el).find('.symbol').each(function()
+ items.each(function()
{
- if($(this).hasClass(self.state.init))
+ var symbol = $(this).find('#symbol');
+ if(symbol.hasClass(self.state.init))
{
- $(this).removeClass(self.state.init);
- $(this).addClass('fa-icon-spinner');
- $(this).addClass('fa-icon-spin');
+ symbol.removeClass(self.state.init);
+ symbol.addClass('fa-icon-spinner');
+ symbol.addClass('fa-icon-spin');
}
});
- // hide configuration
- $(this.el).find('.panel-body').hide();
-
// update running
this.counter.running = this.counter.announce;
this.update_screen();
-
- // configure url
- var current_history = Galaxy.currHistoryPanel.model.get('id');
- this.uploadbox.configure({url : galaxy_config.root + "api/histories/" + current_history + "/contents"});
// initiate upload procedure in plugin
this.uploadbox.upload();
@@ -283,9 +281,9 @@
if (this.counter.running == 0)
{
// remove from screen
- var panels = $(this.el).find('.panel');
- panels.fadeOut({complete: function() { panels.remove(); }});
-
+ var items = $(this.el).find('.upload-item');
+ $(this.el).find('table').fadeOut({ complete : function() { items.remove(); }});
+
// reset counter
this.counter.reset();
@@ -302,18 +300,18 @@
{
// get item
var it = this.get_upload_item(index);
- var sy = it.find('.symbol');
+ var sy = it.find('#symbol');
// only remove from queue if not in processing line
- if (sy.hasClass(this.state.init) || sy.hasClass(this.state.done))
+ if (sy.hasClass(this.state.init) || sy.hasClass(this.state.success) || sy.hasClass(this.state.error))
{
// reduce counter
- if (it.hasClass('panel-default'))
+ if (it.hasClass('success'))
+ this.counter.success--;
+ else if (it.hasClass('danger'))
+ this.counter.error--;
+ else
this.counter.announce--;
- else if (it.hasClass('panel-success'))
- this.counter.success--;
- else if (it.hasClass('panel-danger'))
- this.counter.error--;
// show on screen info
this.update_screen();
@@ -340,14 +338,14 @@
this.modal = new mod_modal.GalaxyModal(
{
title : 'Upload files from your local drive',
- body : this.template('upload-box'),
+ body : this.template('upload-box', 'upload-info'),
buttons : {
'Select' : function() {self.uploadbox.select()},
'Upload' : function() {self.event_upload()},
'Reset' : function() {self.event_reset()},
'Close' : function() {self.modal.hide()}
},
- height : '250px'
+ height : '350'
});
// set element
@@ -441,45 +439,61 @@
this.modal.enableButton('Select');
else
this.modal.disableButton('Select');
+
+ // table visibility
+ if (this.counter.announce + this.counter.success + this.counter.error > 0)
+ $(this.el).find('table').show();
+ else
+ $(this.el).find('table').hide();
},
// load html template
- template: function(id)
+ template: function(id, idInfo)
{
- return '<div id="' + id + '" class="upload-box"></div><h6 id="upload-info" class="upload-info"></h6>';
+ return '<div id="' + id + '" class="upload-box">' +
+ '<table class="table table-striped" style="display: none;">' +
+ '<thead>' +
+ '<tr>' +
+ '<th>Name</th>' +
+ '<th>Size</th>' +
+ '<th>Type</th>' +
+ '<th>Space→Tab</th>' +
+ '<th>Progress</th>' +
+ '<th></th>' +
+ '</tr>' +
+ '</thead>' +
+ '<tbody></tbody>' +
+ '</table>' +
+ '</div>' +
+ '<h6 id="' + idInfo + '" class="upload-info"></h6>';
},
- // load html template
- template_file: function(id, select_extension)
+ template_row: function(id, select_extension)
{
- // start template
- var tmpl = '<div id="' + id.substr(1) + '" class="panel panel-default">' +
- '<div class="panel-heading">' +
- '<h5 class="title"></h5>' +
- '<h5 class="info"></h5>' +
- '<div class="symbol ' + this.state.init + '"></div>' +
- '</div>' +
- '<div class="panel-body">' +
- '<div class="menu">' +
- 'Select file type: ' +
- '<select id="extension">';
-
+ // construct template
+ var tmpl = '<tr id="' + id.substr(1) + '" class="upload-item">' +
+ '<td><div id="title" class="title"></div></td>' +
+ '<td><div id="size" class="size"></div></td>' +
+ '<td>' +
+ '<select id="extension">';
+
// add file types to selection
for (key in select_extension)
- tmpl += '<option value="' + key + '">' + select_extension[key] + '</option>';
-
- // continue template
- tmpl += '</select>, ' +
- '<span>Convert space to tabs: <input id="space_to_tabs" type="checkbox"></input></span>' +
+ tmpl += '<option value="' + key + '">' + select_extension[key] + '</option>';
+
+ tmpl += '</select>' +
+ '</td>' +
+ '<td><input id="space_to_tabs" type="checkbox"></input></td>' +
+ '<td>' +
+ '<div id="info" class="info">' +
+ '<div class="progress">' +
+ '<div class="progress-bar progress-bar-success"></div>' +
+ '<div id="percentage" class="percentage">0%</div>' +
+ '</div>' +
'</div>' +
- '</div>' +
- '<div class="panel-footer">' +
- '<div class="progress">' +
- '<div class="progress-bar progress-bar-success"></div>' +
- '</div>' +
- '<h6 class="error"></h6>' +
- '</div>' +
- '</div>';
+ '</td>' +
+ '<td><div id="symbol" class="symbol ' + this.state.init + '"></div></td>' +
+ '</tr>';
// return html string
return tmpl;
diff -r 33af3a5b36df7207ec469d635779329a73117f73 -r 450c04224d6cd0f2c8c7964cedcd0eeafd98c873 static/scripts/mvc/data.js
--- a/static/scripts/mvc/data.js
+++ b/static/scripts/mvc/data.js
@@ -183,10 +183,12 @@
var column_types = this.model.get_metadata('column_types');
if (colspan !== undefined) {
$cell.attr('colspan', colspan).addClass('stringalign');
- } else if (column_types !== undefined && index < column_types.length) {
- if (column_types[index] === 'str' || column_types === 'list') {
- /* Left align all str columns, right align the rest */
- $cell.addClass('stringalign');
+ } else if (column_types) {
+ if (index < column_types.length) {
+ if (column_types[index] === 'str' || column_types === 'list') {
+ /* Left align all str columns, right align the rest */
+ $cell.addClass('stringalign');
+ }
}
}
return $cell;
diff -r 33af3a5b36df7207ec469d635779329a73117f73 -r 450c04224d6cd0f2c8c7964cedcd0eeafd98c873 static/scripts/utils/galaxy.uploadbox.js
--- a/static/scripts/utils/galaxy.uploadbox.js
+++ b/static/scripts/utils/galaxy.uploadbox.js
@@ -20,8 +20,7 @@
success : function() {},
error : function(index, file, message) { alert(message); },
complete : function() {},
- error_browser : "Your browser does not support drag-and-drop file uploads.",
- error_filesize : "This file is too large (>250MB). Please use an FTP client to upload it.",
+ error_filesize : "File exceeds 250MB. Please use an FTP client.",
error_default : "Please make sure the file is available."
}
diff -r 33af3a5b36df7207ec469d635779329a73117f73 -r 450c04224d6cd0f2c8c7964cedcd0eeafd98c873 static/style/blue/base.css
--- a/static/style/blue/base.css
+++ b/static/style/blue/base.css
@@ -1125,12 +1125,14 @@
.galaxy-frame .frame .f-pin{left:6px;top:1px}
.galaxy-frame .frame .f-resize{background:#fff;width:16px;height:16px;color:#2c3143;right:0px;bottom:0px;text-align:center;line-height:16px;border:0px}
.upload-info{font-weight:normal;text-align:center}
-.upload-box{width:100%;height:95%;max-height:95%;text-align:center;overflow:scroll;font-size:12px;line-height:1.33;-moz-border-radius:5px;border-radius:5px;border:1px dashed #bfbfbf;padding:20px}.upload-box .panel{display:none}.upload-box .panel .panel-heading{position:relative;height:19px;padding:5px}.upload-box .panel .panel-heading .title{position:absolute;top:2px;font-weight:normal;text-align:left;margin:0px;max-width:300px;overflow:hidden}
-.upload-box .panel .panel-heading .info{position:absolute;top:3px;font-weight:normal;right:20px;text-align:right;margin:0px}
-.upload-box .panel .panel-heading .symbol{position:absolute;cursor:pointer;top:0px;right:3px}
-.upload-box .panel .panel-body{position:relative;padding:5px}
-.upload-box .panel .panel-footer{position:relative;height:20px;padding:0px}.upload-box .panel .panel-footer .progress{height:10px;margin:5px}
-.upload-box .panel .panel-footer .error{font-weight:normal;margin:2px}
+.upload-box{width:100%;height:90%;text-align:center;overflow:scroll;font-size:12px;line-height:1.33;-moz-border-radius:5px;border-radius:5px;border:1px dashed #bfbfbf;padding:10px}.upload-box .table{width:100%}
+.upload-box .table th{text-align:center;white-space:nowrap}
+.upload-box .table td{margin:0px;paddign:0px}
+.upload-box .title{width:150px;word-wrap:break-word;font-size:11px}
+.upload-box .size{white-space:nowrap}
+.upload-box .info{width:130px;font-size:11px}.upload-box .info .progress{top:1px;position:relative;width:100%;padding:0px;margin:0px}.upload-box .info .progress .progress-bar{border-radius:inherit;-moz-border-radius:inherit}
+.upload-box .info .progress .percentage{position:absolute;text-align:center;width:100%;color:#fff}
+.upload-box .symbol{cursor:pointer}
.unselectable{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}
.parent-width{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;width:100%;*width:90%}
.clear:before,.clear:after{content:" ";display:table;}
diff -r 33af3a5b36df7207ec469d635779329a73117f73 -r 450c04224d6cd0f2c8c7964cedcd0eeafd98c873 static/style/src/less/upload.less
--- a/static/style/src/less/upload.less
+++ b/static/style/src/less/upload.less
@@ -7,8 +7,7 @@
.upload-box
{
width : 100%;
- height : 95%;
- max-height : 95%;
+ height : 90%;
text-align : center;
overflow : scroll;
font-size : @font-size-base;
@@ -16,71 +15,58 @@
-moz-border-radius: @border-radius-large;
border-radius : @border-radius-large;
border : 1px dashed @btn-default-border;
- padding : 20px;
+ padding : 10px;
+
+ .table {
+ width : 100%;
+ }
+
+ .table th {
+ text-align: center;
+ white-space: nowrap;
+ }
+
+ .table td {
+ margin: 0px;
+ paddign: 0px;
+ }
+
+ .title {
+ width: 150px;
+ word-wrap: break-word;
+ font-size : @font-size-small;
+ }
+
+ .size {
+ white-space: nowrap;
+ }
+
+ .info {
+ width: 130px;
+ font-size : @font-size-small;
- .panel
- {
- display: none;
-
- .panel-heading
- {
+ .progress {
+ top:1px;
position: relative;
- height: 19px;
- padding: 5px;
-
- .title
- {
- position: absolute;
- top: 2px;
- font-weight: normal;
- text-align: left;
- margin: 0px;
- max-width: 300px;
- overflow: hidden;
- }
-
- .info
- {
- position: absolute;
- top: 3px;
- font-weight: normal;
- right: 20px;
- text-align: right;
- margin: 0px;
- }
-
- .symbol
- {
- position: absolute;
- cursor: pointer;
- top: 0px;
- right: 3px;
- }
- }
-
- .panel-body
- {
- position: relative;
- padding: 5px;
- }
-
- .panel-footer
- {
- position:relative;
- height: 20px;
+ width: 100%;
padding: 0px;
+ margin: 0px;
- .progress
- {
- height: 10px;
- margin: 5px;
+ .progress-bar {
+ border-radius: inherit;
+ -moz-border-radius: inherit;
}
- .error
- {
- font-weight: normal;
- margin: 2px;
+ .percentage {
+ position: absolute;
+ text-align: center;
+ width: 100%;
+ color: @white;
}
}
}
+
+ .symbol {
+ cursor: pointer;
+ }
}
\ No newline at end of file
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0
2 new commits in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/commits/3d2ca877e2c4/
Changeset: 3d2ca877e2c4
User: natefoo
Date: 2013-10-10 18:48:07
Summary: Convert DOS line endings.
Affected #: 1 file
diff -r 1706b14098fc7e88e9aa1c54f28857a818beec4d -r 3d2ca877e2c4d7a17c4113be333ec2431b066a7c tools/data_source/microbial_import_code.py
--- a/tools/data_source/microbial_import_code.py
+++ b/tools/data_source/microbial_import_code.py
@@ -1,154 +1,154 @@
-
-def load_microbial_data( GALAXY_DATA_INDEX_DIR, sep='\t' ):
- # FIXME: this function is duplicated in the DynamicOptions class. It is used here only to
- # set data.name in exec_after_process().
- microbe_info= {}
- orgs = {}
-
- filename = "%s/microbial_data.loc" % GALAXY_DATA_INDEX_DIR
- for i, line in enumerate( open( filename ) ):
- line = line.rstrip( '\r\n' )
- if line and not line.startswith( '#' ):
- fields = line.split( sep )
- #read each line, if not enough fields, go to next line
- try:
- info_type = fields.pop(0)
- if info_type.upper() == "ORG":
- #ORG 12521 Clostridium perfringens SM101 bacteria Firmicutes CP000312,CP000313,CP000314,CP000315 http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=genomeprj&cmd=Retrieve&dop…
- org_num = fields.pop(0)
- name = fields.pop(0)
- kingdom = fields.pop(0)
- group = fields.pop(0)
- chromosomes = fields.pop(0)
- info_url = fields.pop(0)
- link_site = fields.pop(0)
- if org_num not in orgs:
- orgs[ org_num ] = {}
- orgs[ org_num ][ 'chrs' ] = {}
- orgs[ org_num ][ 'name' ] = name
- orgs[ org_num ][ 'kingdom' ] = kingdom
- orgs[ org_num ][ 'group' ] = group
- orgs[ org_num ][ 'chromosomes' ] = chromosomes
- orgs[ org_num ][ 'info_url' ] = info_url
- orgs[ org_num ][ 'link_site' ] = link_site
- elif info_type.upper() == "CHR":
- #CHR 12521 CP000315 Clostridium perfringens phage phiSM101, complete genome 38092 110684521 CP000315.1
- org_num = fields.pop(0)
- chr_acc = fields.pop(0)
- name = fields.pop(0)
- length = fields.pop(0)
- gi = fields.pop(0)
- gb = fields.pop(0)
- info_url = fields.pop(0)
- chr = {}
- chr[ 'name' ] = name
- chr[ 'length' ] = length
- chr[ 'gi' ] = gi
- chr[ 'gb' ] = gb
- chr[ 'info_url' ] = info_url
- if org_num not in orgs:
- orgs[ org_num ] = {}
- orgs[ org_num ][ 'chrs' ] = {}
- orgs[ org_num ][ 'chrs' ][ chr_acc ] = chr
- elif info_type.upper() == "DATA":
- #DATA 12521_12521_CDS 12521 CP000315 CDS bed /home/djb396/alignments/playground/bacteria/12521/CP000315.CDS.bed
- uid = fields.pop(0)
- org_num = fields.pop(0)
- chr_acc = fields.pop(0)
- feature = fields.pop(0)
- filetype = fields.pop(0)
- path = fields.pop(0)
- data = {}
- data[ 'filetype' ] = filetype
- data[ 'path' ] = path
- data[ 'feature' ] = feature
-
- if org_num not in orgs:
- orgs[ org_num ] = {}
- orgs[ org_num ][ 'chrs' ] = {}
- if 'data' not in orgs[ org_num ][ 'chrs' ][ chr_acc ]:
- orgs[ org_num ][ 'chrs' ][ chr_acc ][ 'data' ] = {}
- orgs[ org_num ][ 'chrs' ][ chr_acc ][ 'data' ][ uid ] = data
- else: continue
- except: continue
- for org_num in orgs:
- org = orgs[ org_num ]
- if org[ 'kingdom' ] not in microbe_info:
- microbe_info[ org[ 'kingdom' ] ] = {}
- if org_num not in microbe_info[ org[ 'kingdom' ] ]:
- microbe_info[ org[ 'kingdom' ] ][org_num] = org
- return microbe_info
-
-#post processing, set build for data and add additional data to history
-from galaxy import datatypes, config, jobs, tools
-from shutil import copyfile
-
-def exec_after_process(app, inp_data, out_data, param_dict, tool, stdout, stderr):
- base_dataset = out_data.items()[0][1]
- history = base_dataset.history
- if history == None:
- print "unknown history!"
- return
- kingdom = param_dict.get( 'kingdom', None )
- #group = param_dict.get( 'group', None )
- org = param_dict.get( 'org', None )
-
- #if not (kingdom or group or org):
- if not (kingdom or org):
- print "Parameters are not available."
+
+def load_microbial_data( GALAXY_DATA_INDEX_DIR, sep='\t' ):
+ # FIXME: this function is duplicated in the DynamicOptions class. It is used here only to
+ # set data.name in exec_after_process().
+ microbe_info= {}
+ orgs = {}
+
+ filename = "%s/microbial_data.loc" % GALAXY_DATA_INDEX_DIR
+ for i, line in enumerate( open( filename ) ):
+ line = line.rstrip( '\r\n' )
+ if line and not line.startswith( '#' ):
+ fields = line.split( sep )
+ #read each line, if not enough fields, go to next line
+ try:
+ info_type = fields.pop(0)
+ if info_type.upper() == "ORG":
+ #ORG 12521 Clostridium perfringens SM101 bacteria Firmicutes CP000312,CP000313,CP000314,CP000315 http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=genomeprj&cmd=Retrieve&dop…
+ org_num = fields.pop(0)
+ name = fields.pop(0)
+ kingdom = fields.pop(0)
+ group = fields.pop(0)
+ chromosomes = fields.pop(0)
+ info_url = fields.pop(0)
+ link_site = fields.pop(0)
+ if org_num not in orgs:
+ orgs[ org_num ] = {}
+ orgs[ org_num ][ 'chrs' ] = {}
+ orgs[ org_num ][ 'name' ] = name
+ orgs[ org_num ][ 'kingdom' ] = kingdom
+ orgs[ org_num ][ 'group' ] = group
+ orgs[ org_num ][ 'chromosomes' ] = chromosomes
+ orgs[ org_num ][ 'info_url' ] = info_url
+ orgs[ org_num ][ 'link_site' ] = link_site
+ elif info_type.upper() == "CHR":
+ #CHR 12521 CP000315 Clostridium perfringens phage phiSM101, complete genome 38092 110684521 CP000315.1
+ org_num = fields.pop(0)
+ chr_acc = fields.pop(0)
+ name = fields.pop(0)
+ length = fields.pop(0)
+ gi = fields.pop(0)
+ gb = fields.pop(0)
+ info_url = fields.pop(0)
+ chr = {}
+ chr[ 'name' ] = name
+ chr[ 'length' ] = length
+ chr[ 'gi' ] = gi
+ chr[ 'gb' ] = gb
+ chr[ 'info_url' ] = info_url
+ if org_num not in orgs:
+ orgs[ org_num ] = {}
+ orgs[ org_num ][ 'chrs' ] = {}
+ orgs[ org_num ][ 'chrs' ][ chr_acc ] = chr
+ elif info_type.upper() == "DATA":
+ #DATA 12521_12521_CDS 12521 CP000315 CDS bed /home/djb396/alignments/playground/bacteria/12521/CP000315.CDS.bed
+ uid = fields.pop(0)
+ org_num = fields.pop(0)
+ chr_acc = fields.pop(0)
+ feature = fields.pop(0)
+ filetype = fields.pop(0)
+ path = fields.pop(0)
+ data = {}
+ data[ 'filetype' ] = filetype
+ data[ 'path' ] = path
+ data[ 'feature' ] = feature
+
+ if org_num not in orgs:
+ orgs[ org_num ] = {}
+ orgs[ org_num ][ 'chrs' ] = {}
+ if 'data' not in orgs[ org_num ][ 'chrs' ][ chr_acc ]:
+ orgs[ org_num ][ 'chrs' ][ chr_acc ][ 'data' ] = {}
+ orgs[ org_num ][ 'chrs' ][ chr_acc ][ 'data' ][ uid ] = data
+ else: continue
+ except: continue
+ for org_num in orgs:
+ org = orgs[ org_num ]
+ if org[ 'kingdom' ] not in microbe_info:
+ microbe_info[ org[ 'kingdom' ] ] = {}
+ if org_num not in microbe_info[ org[ 'kingdom' ] ]:
+ microbe_info[ org[ 'kingdom' ] ][org_num] = org
+ return microbe_info
+
+#post processing, set build for data and add additional data to history
+from galaxy import datatypes, config, jobs, tools
+from shutil import copyfile
+
+def exec_after_process(app, inp_data, out_data, param_dict, tool, stdout, stderr):
+ base_dataset = out_data.items()[0][1]
+ history = base_dataset.history
+ if history == None:
+ print "unknown history!"
+ return
+ kingdom = param_dict.get( 'kingdom', None )
+ #group = param_dict.get( 'group', None )
+ org = param_dict.get( 'org', None )
+
+ #if not (kingdom or group or org):
+ if not (kingdom or org):
+ print "Parameters are not available."
#workflow passes galaxy.tools.parameters.basic.UnvalidatedValue instead of values
if isinstance( kingdom, tools.parameters.basic.UnvalidatedValue ):
- kingdom = kingdom.value
+ kingdom = kingdom.value
if isinstance( org, tools.parameters.basic.UnvalidatedValue ):
org = org.value
- GALAXY_DATA_INDEX_DIR = app.config.tool_data_path
- microbe_info = load_microbial_data( GALAXY_DATA_INDEX_DIR, sep='\t' )
- new_stdout = ""
- split_stdout = stdout.split("\n")
- basic_name = ""
- for line in split_stdout:
- fields = line.split("\t")
- if fields[0] == "#File1":
- description = fields[1]
- chr = fields[2]
- dbkey = fields[3]
- file_type = fields[4]
- name, data = out_data.items()[0]
- data.set_size()
- basic_name = data.name
- data.name = data.name + " (" + microbe_info[kingdom][org]['chrs'][chr]['data'][description]['feature'] +" for " + microbe_info[kingdom][org]['name'] + ":" + chr + ")"
- data.dbkey = dbkey
- data.info = data.name
- data = app.datatypes_registry.change_datatype( data, file_type )
- data.init_meta()
- data.set_peek()
- app.model.context.add( data )
- app.model.context.flush()
- elif fields[0] == "#NewFile":
- description = fields[1]
- chr = fields[2]
- dbkey = fields[3]
- filepath = fields[4]
- file_type = fields[5]
- newdata = app.model.HistoryDatasetAssociation( create_dataset = True, sa_session = app.model.context ) #This import should become a library
- newdata.set_size()
- newdata.extension = file_type
- newdata.name = basic_name + " (" + microbe_info[kingdom][org]['chrs'][chr]['data'][description]['feature'] +" for "+microbe_info[kingdom][org]['name']+":"+chr + ")"
- app.model.context.add( newdata )
- app.model.context.flush()
- app.security_agent.copy_dataset_permissions( base_dataset.dataset, newdata.dataset )
- history.add_dataset( newdata )
- app.model.context.add( history )
- app.model.context.flush()
- try:
- copyfile(filepath,newdata.file_name)
- newdata.info = newdata.name
- newdata.state = jobs.JOB_OK
- except:
- newdata.info = "The requested file is missing from the system."
- newdata.state = jobs.JOB_ERROR
- newdata.dbkey = dbkey
- newdata.init_meta()
- newdata.set_peek()
- app.model.context.flush()
+ GALAXY_DATA_INDEX_DIR = app.config.tool_data_path
+ microbe_info = load_microbial_data( GALAXY_DATA_INDEX_DIR, sep='\t' )
+ new_stdout = ""
+ split_stdout = stdout.split("\n")
+ basic_name = ""
+ for line in split_stdout:
+ fields = line.split("\t")
+ if fields[0] == "#File1":
+ description = fields[1]
+ chr = fields[2]
+ dbkey = fields[3]
+ file_type = fields[4]
+ name, data = out_data.items()[0]
+ data.set_size()
+ basic_name = data.name
+ data.name = data.name + " (" + microbe_info[kingdom][org]['chrs'][chr]['data'][description]['feature'] +" for " + microbe_info[kingdom][org]['name'] + ":" + chr + ")"
+ data.dbkey = dbkey
+ data.info = data.name
+ data = app.datatypes_registry.change_datatype( data, file_type )
+ data.init_meta()
+ data.set_peek()
+ app.model.context.add( data )
+ app.model.context.flush()
+ elif fields[0] == "#NewFile":
+ description = fields[1]
+ chr = fields[2]
+ dbkey = fields[3]
+ filepath = fields[4]
+ file_type = fields[5]
+ newdata = app.model.HistoryDatasetAssociation( create_dataset = True, sa_session = app.model.context ) #This import should become a library
+ newdata.set_size()
+ newdata.extension = file_type
+ newdata.name = basic_name + " (" + microbe_info[kingdom][org]['chrs'][chr]['data'][description]['feature'] +" for "+microbe_info[kingdom][org]['name']+":"+chr + ")"
+ app.model.context.add( newdata )
+ app.model.context.flush()
+ app.security_agent.copy_dataset_permissions( base_dataset.dataset, newdata.dataset )
+ history.add_dataset( newdata )
+ app.model.context.add( history )
+ app.model.context.flush()
+ try:
+ copyfile(filepath,newdata.file_name)
+ newdata.info = newdata.name
+ newdata.state = jobs.JOB_OK
+ except:
+ newdata.info = "The requested file is missing from the system."
+ newdata.state = jobs.JOB_ERROR
+ newdata.dbkey = dbkey
+ newdata.init_meta()
+ newdata.set_peek()
+ app.model.context.flush()
https://bitbucket.org/galaxy/galaxy-central/commits/33af3a5b36df/
Changeset: 33af3a5b36df
User: natefoo
Date: 2013-10-10 18:53:10
Summary: Fix outdated usage of states in microbial dataset post-job hook.
Affected #: 1 file
diff -r 3d2ca877e2c4d7a17c4113be333ec2431b066a7c -r 33af3a5b36df7207ec469d635779329a73117f73 tools/data_source/microbial_import_code.py
--- a/tools/data_source/microbial_import_code.py
+++ b/tools/data_source/microbial_import_code.py
@@ -80,7 +80,7 @@
return microbe_info
#post processing, set build for data and add additional data to history
-from galaxy import datatypes, config, jobs, tools
+from galaxy import datatypes, config, tools
from shutil import copyfile
def exec_after_process(app, inp_data, out_data, param_dict, tool, stdout, stderr):
@@ -144,10 +144,10 @@
try:
copyfile(filepath,newdata.file_name)
newdata.info = newdata.name
- newdata.state = jobs.JOB_OK
+ newdata.state = newdata.states.OK
except:
newdata.info = "The requested file is missing from the system."
- newdata.state = jobs.JOB_ERROR
+ newdata.state = newdata.states.ERROR
newdata.dbkey = dbkey
newdata.init_meta()
newdata.set_peek()
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0
commit/galaxy-central: jmchilton: Backout of c78f3f687fbc. I'm sure it is fine, but @natefoo got in my head and I don't want to break anything.
by commits-noreply@bitbucket.org 10 Oct '13
by commits-noreply@bitbucket.org 10 Oct '13
10 Oct '13
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/commits/1706b14098fc/
Changeset: 1706b14098fc
User: jmchilton
Date: 2013-10-10 18:16:20
Summary: Backout of c78f3f687fbc. I'm sure it is fine, but @natefoo got in my head and I don't want to break anything.
Affected #: 5 files
diff -r 0f9ac20283c65288daa887508594ae67049047d0 -r 1706b14098fc7e88e9aa1c54f28857a818beec4d lib/galaxy/jobs/__init__.py
--- a/lib/galaxy/jobs/__init__.py
+++ b/lib/galaxy/jobs/__init__.py
@@ -25,7 +25,6 @@
from galaxy.util.bunch import Bunch
from galaxy.util.expressions import ExpressionContext
from galaxy.util.json import from_json_string
-from .output_checker import check_output
log = logging.getLogger( __name__ )
@@ -1080,7 +1079,158 @@
self.cleanup()
def check_tool_output( self, stdout, stderr, tool_exit_code, job ):
- return check_output( self.tool, stdout, stderr, tool_exit_code, job )
+ """
+ Check the output of a tool - given the stdout, stderr, and the tool's
+ exit code, return True if the tool exited succesfully and False
+ otherwise. No exceptions should be thrown. If this code encounters
+ an exception, it returns True so that the workflow can continue;
+ otherwise, a bug in this code could halt workflow progress.
+ Note that, if the tool did not define any exit code handling or
+ any stdio/stderr handling, then it reverts back to previous behavior:
+ if stderr contains anything, then False is returned.
+ Note that the job id is just for messages.
+ """
+ # By default, the tool succeeded. This covers the case where the code
+ # has a bug but the tool was ok, and it lets a workflow continue.
+ success = True
+
+ try:
+ # Check exit codes and match regular expressions against stdout and
+ # stderr if this tool was configured to do so.
+ # If there is a regular expression for scanning stdout/stderr,
+ # then we assume that the tool writer overwrote the default
+ # behavior of just setting an error if there is *anything* on
+ # stderr.
+ if ( len( self.tool.stdio_regexes ) > 0 or
+ len( self.tool.stdio_exit_codes ) > 0 ):
+ # Check the exit code ranges in the order in which
+ # they were specified. Each exit_code is a StdioExitCode
+ # that includes an applicable range. If the exit code was in
+ # that range, then apply the error level and add a message.
+ # If we've reached a fatal error rule, then stop.
+ max_error_level = galaxy.tools.StdioErrorLevel.NO_ERROR
+ if tool_exit_code != None:
+ for stdio_exit_code in self.tool.stdio_exit_codes:
+ if ( tool_exit_code >= stdio_exit_code.range_start and
+ tool_exit_code <= stdio_exit_code.range_end ):
+ # Tack on a generic description of the code
+ # plus a specific code description. For example,
+ # this might prepend "Job 42: Warning (Out of Memory)\n".
+ code_desc = stdio_exit_code.desc
+ if ( None == code_desc ):
+ code_desc = ""
+ tool_msg = ( "%s: Exit code %d (%s)" % (
+ galaxy.tools.StdioErrorLevel.desc( stdio_exit_code.error_level ),
+ tool_exit_code,
+ code_desc ) )
+ log.info( "Job %s: %s" % (job.get_id_tag(), tool_msg) )
+ stderr = tool_msg + "\n" + stderr
+ max_error_level = max( max_error_level,
+ stdio_exit_code.error_level )
+ if ( max_error_level >=
+ galaxy.tools.StdioErrorLevel.FATAL ):
+ break
+
+ if max_error_level < galaxy.tools.StdioErrorLevel.FATAL:
+ # We'll examine every regex. Each regex specifies whether
+ # it is to be run on stdout, stderr, or both. (It is
+ # possible for neither stdout nor stderr to be scanned,
+ # but those regexes won't be used.) We record the highest
+ # error level, which are currently "warning" and "fatal".
+ # If fatal, then we set the job's state to ERROR.
+ # If warning, then we still set the job's state to OK
+ # but include a message. We'll do this if we haven't seen
+ # a fatal error yet
+ for regex in self.tool.stdio_regexes:
+ # If ( this regex should be matched against stdout )
+ # - Run the regex's match pattern against stdout
+ # - If it matched, then determine the error level.
+ # o If it was fatal, then we're done - break.
+ # Repeat the stdout stuff for stderr.
+ # TODO: Collapse this into a single function.
+ if ( regex.stdout_match ):
+ regex_match = re.search( regex.match, stdout,
+ re.IGNORECASE )
+ if ( regex_match ):
+ rexmsg = self.regex_err_msg( regex_match, regex)
+ log.info( "Job %s: %s"
+ % ( job.get_id_tag(), rexmsg ) )
+ stdout = rexmsg + "\n" + stdout
+ max_error_level = max( max_error_level,
+ regex.error_level )
+ if ( max_error_level >=
+ galaxy.tools.StdioErrorLevel.FATAL ):
+ break
+
+ if ( regex.stderr_match ):
+ regex_match = re.search( regex.match, stderr,
+ re.IGNORECASE )
+ if ( regex_match ):
+ rexmsg = self.regex_err_msg( regex_match, regex)
+ log.info( "Job %s: %s"
+ % ( job.get_id_tag(), rexmsg ) )
+ stderr = rexmsg + "\n" + stderr
+ max_error_level = max( max_error_level,
+ regex.error_level )
+ if ( max_error_level >=
+ galaxy.tools.StdioErrorLevel.FATAL ):
+ break
+
+ # If we encountered a fatal error, then we'll need to set the
+ # job state accordingly. Otherwise the job is ok:
+ if max_error_level >= galaxy.tools.StdioErrorLevel.FATAL:
+ success = False
+ else:
+ success = True
+
+ # When there are no regular expressions and no exit codes to check,
+ # default to the previous behavior: when there's anything on stderr
+ # the job has an error, and the job is ok otherwise.
+ else:
+ # TODO: Add in the tool and job id:
+ # log.debug( "Tool did not define exit code or stdio handling; "
+ # + "checking stderr for success" )
+ if stderr:
+ success = False
+ else:
+ success = True
+
+ # On any exception, return True.
+ except:
+ tb = traceback.format_exc()
+ log.warning( "Tool check encountered unexpected exception; "
+ + "assuming tool was successful: " + tb )
+ success = True
+
+ # Store the modified stdout and stderr in the job:
+ if None != job:
+ job.stdout = stdout
+ job.stderr = stderr
+
+ return success
+
+ def regex_err_msg( self, match, regex ):
+ """
+ Return a message about the match on tool output using the given
+ ToolStdioRegex regex object. The regex_match is a MatchObject
+ that will contain the string matched on.
+ """
+ # Get the description for the error level:
+ err_msg = galaxy.tools.StdioErrorLevel.desc( regex.error_level ) + ": "
+ # If there's a description for the regular expression, then use it.
+ # Otherwise, we'll take the first 256 characters of the match.
+ if None != regex.desc:
+ err_msg += regex.desc
+ else:
+ mstart = match.start()
+ mend = match.end()
+ err_msg += "Matched on "
+ # TODO: Move the constant 256 somewhere else besides here.
+ if mend - mstart > 256:
+ err_msg += match.string[ mstart : mstart+256 ] + "..."
+ else:
+ err_msg += match.string[ mstart: mend ]
+ return err_msg
def cleanup( self ):
# remove temporary files
diff -r 0f9ac20283c65288daa887508594ae67049047d0 -r 1706b14098fc7e88e9aa1c54f28857a818beec4d lib/galaxy/jobs/error_level.py
--- a/lib/galaxy/jobs/error_level.py
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-# These determine stdio-based error levels from matching on regular expressions
-# and exit codes. They are meant to be used comparatively, such as showing
-# that warning < fatal. This is really meant to just be an enum.
-class StdioErrorLevel( object ):
- NO_ERROR = 0
- LOG = 1
- WARNING = 2
- FATAL = 3
- MAX = 3
- descs = {
- NO_ERROR: 'No error',
- LOG: 'Log',
- WARNING: 'Warning',
- FATAL: 'Fatal error',
- }
-
- @staticmethod
- def desc( error_level ):
- err_msg = "Unknown error"
- if ( error_level > 0 and
- error_level <= StdioErrorLevel.MAX ):
- err_msg = StdioErrorLevel.descs[ error_level ]
- return err_msg
diff -r 0f9ac20283c65288daa887508594ae67049047d0 -r 1706b14098fc7e88e9aa1c54f28857a818beec4d lib/galaxy/jobs/output_checker.py
--- a/lib/galaxy/jobs/output_checker.py
+++ /dev/null
@@ -1,164 +0,0 @@
-import re
-from .error_level import StdioErrorLevel
-import traceback
-
-from logging import getLogger
-log = getLogger( __name__ )
-
-
-def check_output( tool, stdout, stderr, tool_exit_code, job ):
- """
- Check the output of a tool - given the stdout, stderr, and the tool's
- exit code, return True if the tool exited succesfully and False
- otherwise. No exceptions should be thrown. If this code encounters
- an exception, it returns True so that the workflow can continue;
- otherwise, a bug in this code could halt workflow progress.
-
- Note that, if the tool did not define any exit code handling or
- any stdio/stderr handling, then it reverts back to previous behavior:
- if stderr contains anything, then False is returned.
-
- Note that the job id is just for messages.
- """
- # By default, the tool succeeded. This covers the case where the code
- # has a bug but the tool was ok, and it lets a workflow continue.
- success = True
-
- try:
- # Check exit codes and match regular expressions against stdout and
- # stderr if this tool was configured to do so.
- # If there is a regular expression for scanning stdout/stderr,
- # then we assume that the tool writer overwrote the default
- # behavior of just setting an error if there is *anything* on
- # stderr.
- if ( len( tool.stdio_regexes ) > 0 or
- len( tool.stdio_exit_codes ) > 0 ):
- # Check the exit code ranges in the order in which
- # they were specified. Each exit_code is a StdioExitCode
- # that includes an applicable range. If the exit code was in
- # that range, then apply the error level and add a message.
- # If we've reached a fatal error rule, then stop.
- max_error_level = StdioErrorLevel.NO_ERROR
- if tool_exit_code != None:
- for stdio_exit_code in tool.stdio_exit_codes:
- if ( tool_exit_code >= stdio_exit_code.range_start and
- tool_exit_code <= stdio_exit_code.range_end ):
- # Tack on a generic description of the code
- # plus a specific code description. For example,
- # this might prepend "Job 42: Warning (Out of Memory)\n".
- code_desc = stdio_exit_code.desc
- if ( None == code_desc ):
- code_desc = ""
- tool_msg = ( "%s: Exit code %d (%s)" % (
- StdioErrorLevel.desc( stdio_exit_code.error_level ),
- tool_exit_code,
- code_desc ) )
- log.info( "Job %s: %s" % (job.get_id_tag(), tool_msg) )
- stderr = tool_msg + "\n" + stderr
- max_error_level = max( max_error_level,
- stdio_exit_code.error_level )
- if ( max_error_level >=
- StdioErrorLevel.FATAL ):
- break
-
- if max_error_level < StdioErrorLevel.FATAL:
- # We'll examine every regex. Each regex specifies whether
- # it is to be run on stdout, stderr, or both. (It is
- # possible for neither stdout nor stderr to be scanned,
- # but those regexes won't be used.) We record the highest
- # error level, which are currently "warning" and "fatal".
- # If fatal, then we set the job's state to ERROR.
- # If warning, then we still set the job's state to OK
- # but include a message. We'll do this if we haven't seen
- # a fatal error yet
- for regex in tool.stdio_regexes:
- # If ( this regex should be matched against stdout )
- # - Run the regex's match pattern against stdout
- # - If it matched, then determine the error level.
- # o If it was fatal, then we're done - break.
- # Repeat the stdout stuff for stderr.
- # TODO: Collapse this into a single function.
- if ( regex.stdout_match ):
- regex_match = re.search( regex.match, stdout,
- re.IGNORECASE )
- if ( regex_match ):
- rexmsg = __regex_err_msg( regex_match, regex)
- log.info( "Job %s: %s"
- % ( job.get_id_tag(), rexmsg ) )
- stdout = rexmsg + "\n" + stdout
- max_error_level = max( max_error_level,
- regex.error_level )
- if ( max_error_level >=
- StdioErrorLevel.FATAL ):
- break
-
- if ( regex.stderr_match ):
- regex_match = re.search( regex.match, stderr,
- re.IGNORECASE )
- if ( regex_match ):
- rexmsg = __regex_err_msg( regex_match, regex)
- log.info( "Job %s: %s"
- % ( job.get_id_tag(), rexmsg ) )
- stderr = rexmsg + "\n" + stderr
- max_error_level = max( max_error_level,
- regex.error_level )
- if ( max_error_level >=
- StdioErrorLevel.FATAL ):
- break
-
- # If we encountered a fatal error, then we'll need to set the
- # job state accordingly. Otherwise the job is ok:
- if max_error_level >= StdioErrorLevel.FATAL:
- success = False
- else:
- success = True
-
- # When there are no regular expressions and no exit codes to check,
- # default to the previous behavior: when there's anything on stderr
- # the job has an error, and the job is ok otherwise.
- else:
- # TODO: Add in the tool and job id:
- # log.debug( "Tool did not define exit code or stdio handling; "
- # + "checking stderr for success" )
- if stderr:
- success = False
- else:
- success = True
-
- # On any exception, return True.
- except:
- tb = traceback.format_exc()
- log.warning( "Tool check encountered unexpected exception; "
- + "assuming tool was successful: " + tb )
- success = True
-
- # Store the modified stdout and stderr in the job:
- if None != job:
- job.stdout = stdout
- job.stderr = stderr
-
- return success
-
-
-def __regex_err_msg( match, regex ):
- """
- Return a message about the match on tool output using the given
- ToolStdioRegex regex object. The regex_match is a MatchObject
- that will contain the string matched on.
- """
- # Get the description for the error level:
- err_msg = StdioErrorLevel.desc( regex.error_level ) + ": "
- # If there's a description for the regular expression, then use it.
- # Otherwise, we'll take the first 256 characters of the match.
- if None != regex.desc:
- err_msg += regex.desc
- else:
- mstart = match.start()
- mend = match.end()
- err_msg += "Matched on "
- # TODO: Move the constant 256 somewhere else besides here.
- if mend - mstart > 256:
- err_msg += match.string[ mstart : mstart + 256 ] + "..."
- else:
- err_msg += match.string[ mstart: mend ]
- return err_msg
diff -r 0f9ac20283c65288daa887508594ae67049047d0 -r 1706b14098fc7e88e9aa1c54f28857a818beec4d lib/galaxy/tools/__init__.py
--- a/lib/galaxy/tools/__init__.py
+++ b/lib/galaxy/tools/__init__.py
@@ -34,7 +34,6 @@
from sqlalchemy import and_
from galaxy import jobs, model
-from galaxy.jobs.error_level import StdioErrorLevel
from galaxy.datatypes.metadata import JobExternalOutputMetadataWrapper
from galaxy.jobs import ParallelismInfo
from galaxy.tools.actions import DefaultToolAction
@@ -65,11 +64,33 @@
from tool_shed.util import shed_util_common
from .loader import load_tool, template_macro_params
-
log = logging.getLogger( __name__ )
WORKFLOW_PARAMETER_REGULAR_EXPRESSION = re.compile( '''\$\{.+?\}''' )
+# These determine stdio-based error levels from matching on regular expressions
+# and exit codes. They are meant to be used comparatively, such as showing
+# that warning < fatal. This is really meant to just be an enum.
+class StdioErrorLevel( object ):
+ NO_ERROR = 0
+ LOG = 1
+ WARNING = 2
+ FATAL = 3
+ MAX = 3
+ descs = {
+ NO_ERROR : 'No error',
+ LOG: 'Log',
+ WARNING : 'Warning',
+ FATAL : 'Fatal error'
+ }
+ @staticmethod
+ def desc( error_level ):
+ err_msg = "Unknown error"
+ if ( error_level > 0 and
+ error_level <= StdioErrorLevel.MAX ):
+ err_msg = StdioErrorLevel.descs[ error_level ]
+ return err_msg
+
class ToolNotFoundException( Exception ):
pass
diff -r 0f9ac20283c65288daa887508594ae67049047d0 -r 1706b14098fc7e88e9aa1c54f28857a818beec4d test/unit/test_job_output_checker.py
--- a/test/unit/test_job_output_checker.py
+++ /dev/null
@@ -1,62 +0,0 @@
-from unittest import TestCase
-from galaxy.util.bunch import Bunch
-from galaxy.jobs.output_checker import check_output
-from galaxy.jobs.error_level import StdioErrorLevel
-
-
-class OutputCheckerTestCase( TestCase ):
-
- def setUp( self ):
- self.tool = Bunch(
- stdio_regexes=[],
- stdio_exit_codes=[],
- )
- self.job = Bunch(
- stdout=None,
- stderr=None,
- get_id_tag=lambda: "test_id",
- )
- self.stdout = ''
- self.stderr = ''
- self.tool_exit_code = None
-
- def test_default_no_stderr_success( self ):
- self.__assertSuccessful()
-
- def test_default_stderr_failure( self ):
- self.stderr = 'foo'
- self.__assertNotSuccessful()
-
- def test_exit_code_error( self ):
- mock_exit_code = Bunch( range_start=1, range_end=1, error_level=StdioErrorLevel.FATAL, desc=None )
- self.tool.stdio_exit_codes.append( mock_exit_code )
- self.tool_exit_code = 1
- self.__assertNotSuccessful()
-
- def test_exit_code_success( self ):
- mock_exit_code = Bunch( range_start=1, range_end=1, error_level=StdioErrorLevel.FATAL, desc=None )
- self.tool.stdio_exit_codes.append( mock_exit_code )
- self.tool_exit_code = 0
- self.__assertSuccessful()
-
- def test_problematic_strings( self ):
- problematic_str = '\x80abc'
- regex_rule = Bunch( match=r'.abc', stdout_match=False, stderr_match=True, error_level=StdioErrorLevel.FATAL, desc=None )
- self.tool.stdio_regexes = [ regex_rule ]
- self.stderr = problematic_str
- self.__assertNotSuccessful()
-
- problematic_str = '\x80abc'
- regex_rule = Bunch( match=r'.abcd', stdout_match=False, stderr_match=True, error_level=StdioErrorLevel.FATAL, desc=None )
- self.tool.stdio_regexes = [ regex_rule ]
- self.stderr = problematic_str
- self.__assertSuccessful()
-
- def __assertSuccessful( self ):
- self.assertTrue( self.__check_output() )
-
- def __assertNotSuccessful( self ):
- self.assertFalse( self.__check_output() )
-
- def __check_output( self ):
- return check_output( self.tool, self.stdout, self.stderr, self.tool_exit_code, self.job )
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0
commit/galaxy-central: dan: Add status code 404 to response in tool_runner when a tool does not exist.
by commits-noreply@bitbucket.org 10 Oct '13
by commits-noreply@bitbucket.org 10 Oct '13
10 Oct '13
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/commits/0f9ac20283c6/
Changeset: 0f9ac20283c6
User: dan
Date: 2013-10-10 17:45:42
Summary: Add status code 404 to response in tool_runner when a tool does not exist.
Affected #: 1 file
diff -r 0226b3a74e2a64ddca1ce166de3d7c491315c4a5 -r 0f9ac20283c65288daa887508594ae67049047d0 lib/galaxy/webapps/galaxy/controllers/tool_runner.py
--- a/lib/galaxy/webapps/galaxy/controllers/tool_runner.py
+++ b/lib/galaxy/webapps/galaxy/controllers/tool_runner.py
@@ -61,6 +61,7 @@
if not tool:
log.error( "index called with tool id '%s' but no such tool exists", tool_id )
trans.log_event( "Tool id '%s' does not exist" % tool_id )
+ trans.response.status = 404
return "Tool '%s' does not exist, kwd=%s " % ( tool_id, kwd )
if tool.require_login and not trans.user:
message = "You must be logged in to use this tool."
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0