diff --git a/master/lib/SeuratCompareApp.rb b/master/lib/SeuratCompareApp.rb new file mode 100644 index 000000000..eae025125 --- /dev/null +++ b/master/lib/SeuratCompareApp.rb @@ -0,0 +1,60 @@ +#!/usr/bin/env ruby +# encoding: utf-8 +Version = '20210702-145619' + +require 'sushi_fabric' +require_relative 'global_variables' +include GlobalVariables + +class SeuratCompareApp < SushiFabric::SushiApp + def initialize + super + @name = 'SeuratCompare' + @params['process_mode'] = 'DATASET' + @analysis_category = 'Differential_Expression' + @description =<<-EOS + Empirical analysis of digital gene expression data in R
+DifferentialState
+ EOS + @required_columns = ['Name', 'Condition'] + @required_params = ['grouping', 'sampleGroup', 'refGroup'] + # optional params + @params['cores'] = '4' + @params['ram'] = '30' + @params['scratch'] = '50' + @params['DE.method'] = ['wilcox', 'LR'] + @params['DE.method', 'description'] = "Method to be used when calculating differentially expressed genes between conditions." + @params['DE.regress'] = ['Batch', 'CellCycle'] + @params['DE.regress','multi_selection'] = true + @params['DE.regress', 'description'] = "Variables to regress when calculating differentially expressed genes. Only used with the LR method." + @params['grouping'] = '' ## Note: this will be a selector defined by Factor tagged column + @params['sampleGroup'] = '' ## Note: this will be a selector defined by Factor tagged column + @params['sampleGroup', 'description'] = 'sampleGroup should be different from refGroup' + @params['refGroup'] = '' ## Note: this will be a selector defined by Factor tagged column + @params['refGroup', 'description'] = 'refGroup should be different from sampleGroup' + @params['mail'] = "" + @params['Rversion'] = ["Dev/R/4.1.2", "Dev/R/4.1.0", "Dev/R/4.0.4", "Dev/R/4.0.3"] + end + def preprocess + @random_string = (1..12).map{[*('a'..'z')].sample}.join + end + def next_dataset + @comparison = "#{@params['sampleGroup']}--over--#{@params['refGroup']}" + @params['comparison'] = @comparison + @params['name'] = @comparison + report_file = File.join(@result_dir, "#{@params['comparison']}") + report_link = File.join(report_file, '00index.html') + {'Name'=>@comparison, + 'Static Report [Link]'=>report_link, + 'Report [File]'=>report_file, + } + end + def commands + command = "module load #{@params["Rversion"]}\n" + command << run_RApp("EzAppSeuratCompare") + end +end + +if __FILE__ == $0 + +end