| Miscellaneous |
| Version lineage of this tool (guids ordered most recent to oldest) |
| toolshed.g2.bx.psu.edu/repos/iuc/plink/plink/1.90b6.21+galaxy1 (this tool) |
| toolshed.g2.bx.psu.edu/repos/iuc/plink/plink/1.90b6.21+galaxy0 |
| toolshed.g2.bx.psu.edu/repos/iuc/plink/plink/1.9.b618+galaxy3 |
| toolshed.g2.bx.psu.edu/repos/iuc/plink/plink/1.9.b618+galaxy2 |
| toolshed.g2.bx.psu.edu/repos/iuc/plink/plink/1.9.b618+galaxy1 |
| toolshed.g2.bx.psu.edu/repos/iuc/plink/plink/1.9.b618+galaxy0 |
| plink |
| Requirements (dependencies defined in the <requirements> tag set) |
| name | version | type |
| plink | 1.90b6.21 | package |
| gawk | 5.3.0 | package |
| Additional information about this tool |
## Create Plink folder for any inputs
mkdir ./plink_output
&& mkdir ./plink_input
## If bmerge is set, create folder for merged files
#if $functions.func == 'data_manage':
#if $functions.bmerge.set == 'Yes':
&& mkdir bmerge_files
&& ln -s '$functions.bmerge.bed.extra_files_path/RgeneticsData.bed' 'bmerge_files/bmerge_input.bed'
&& ln -s '$functions.bmerge.bed.extra_files_path/RgeneticsData.bim' 'bmerge_files/bmerge_input.bim'
&& ln -s '$functions.bmerge.bed.extra_files_path/RgeneticsData.fam' 'bmerge_files/bmerge_input.fam'
#end if
#end if
#if $inputs.inputs.filetype == 'bfile':
&& ln -s '$inputs.inputs.bed.extra_files_path/RgeneticsData.bed' 'plink_input/plink_input.bed'
&& ln -s '$inputs.inputs.bed.extra_files_path/RgeneticsData.bim' 'plink_input/plink_input.bim'
&& ln -s '$inputs.inputs.bed.extra_files_path/RgeneticsData.fam' 'plink_input/plink_input.fam'
&& plink --bfile plink_input/plink_input
#elif $inputs.inputs.filetype == 'vcf':
#if $inputs.inputs.input.is_of_type('bcf'):
&& plink --bcf '$inputs.inputs.input'
#else:
&& plink --vcf '$inputs.inputs.input'
#end if
#end if
## Plink commands by section
#if $inputs.covar_input:
--covar '$inputs.covar_input'
#end if
#if $inputs.set_pheno.set_pheno == 'Yes':
--pheno $inputs.set_pheno.pheno $inputs.set_pheno.all_pheno
#end if
#if $functions.func == 'filtering':
##ID list functions
#if $functions.id_list.func == 'keep':
--keep '$functions.id_list.file'
#elif $functions.id_list.func == 'keep-fam':
--keep-fam '$functions.id_list.file'
#elif $functions.id_list.func == 'remove':
--remove '$functions.id_list.file'
#elif $functions.id_list.func == 'remove-fam':
--remove-fam '$functions.id_list.file'
#end if
##Extraction
#if $functions.extraction.ex_func == 'extract':
--extract $functions.extraction.range $functions.extraction.file
#elif $functions.extraction.ex_func == 'exclude':
--exclude $functions.extraction.range $functions.extraction.file
#end if
##Chromosome-specificity
#if $functions.chromosome:
--chr $functions.chromosome
#end if
#if $functions.excluded_chromosome:
--not-chr $functions.excluded_chromosome
#end if
$functions.extra_chromosomes
#if $functions.autosome != 'none'
$functions.autosome
#end if
##SNP specificity
#if $functions.snps_exclusives != 'No':
--snps-only
#if $functions.snps_exclusives == 'acgt':
'just-acgt'
#end if
#end if
##Variant windows
#if $functions.ranges.single_multi == 'single':
#if $functions.ranges.window.type == 'variant':
#if $functions.ranges.window.from:
--from $functions.ranges.window.from
#end if
#if $functions.ranges.window.to:
--to $functions.ranges.window.to
#end if
#elif $functions.ranges.window.type == 'window':
#if $functions.ranges.window.snp:
--snp $functions.ranges.window.snp
#end if
#if $functions.ranges.window.exclude_snp:
--exclude-snp $functions.ranges.window.exclude_snp
#end if
#if $functions.ranges.window.window:
--window $functions.ranges.window.window
#end if
#else:
#if $functions.ranges.window.from_bp:
--from-bp $functions.ranges.window.from_bp
#end if
#if $functions.ranges.window.to_bp:
--to-bp $functions.ranges.window.to_bp
#end if
#end if
#elif $functions.ranges.single_multi == 'multi':
$functions.ranges.force_intersect
#if $functions.ranges.snps:
--snps $functions.ranges.snps
#end if
#if $functions.ranges.exclude_snps:
--exclude-snps $functions.ranges.exclude_snps
#end if
#end if
##Thinning
#if $functions.thinning.thinning == 'Yes':
#if $functions.thinning.thin:
--thin $functions.thinning.thin
#end if
#if $functions.thinning.thin_count:
--thin-count $functions.thinning.thin_count
#end if
#if $functions.thinning.bp_space:
--bp-space $functions.thinning.bp_space
#end if
#if $functions.thinning.thin_indiv:
--thin-indiv $functions.thinning.thin_indiv
#end if
#if $functions.thinning.thin_indiv_count:
--thin-indiv-count $functions.thinning.thin_indiv_count
#end if
#end if
##Pheno/covariate
###########
###########
##Missing genotype rates
#if $functions.geno_rates.geno:
--geno $functions.geno_rates.geno
#end if
#if $functions.geno_rates.mind:
--mind $functions.geno_rates.mind
#end if
##Allele Frequencies
#if $functions.allele_freq.maf:
--maf $functions.allele_freq.maf
#end if
#if $functions.allele_freq.max_maf:
--max-maf $functions.allele_freq.max_maf
#end if
#if $functions.allele_freq.mac:
--mac $functions.allele_freq.mac
#end if
#if $functions.allele_freq.max_mac:
--max-mac $functions.allele_freq.max_mac
#end if
## Hardy-Weinberg
#if $functions.hwe.hwe == 'Yes':
--hwe $functions.hwe.hwe_val
#for $type in $functions.hwe.modifiers:
$type
#end for
#end if
##Sex and Founder filter
#if $functions.sex_founder_filter.filter == 'Yes'
$functions.sex_founder_filter.sex_select
#if $functions.sex_founder_filter.no_sex_select:
$functions.sex_founder_filter.no_sex_select
#end if
$functions.sex_founder_filter.nonfounders
#end if
#elif $functions.func == 'data_manage':
#if $functions.bmerge.set == 'Yes':
--bmerge bmerge_files/bmerge_input
#end if
#if $functions.template:
--set-missing-var-ids $functions.template
#end if
$functions.recode
#if $functions.flip:
--flip $functions.flip
#end if
#if $functions.length:
--new-id-max-allele-len $functions.length
#end if
#if $functions.update_cols.set == 'update_map':
--update-map $functions.update_cols.input $functions.update_cols.col_num $functions.update_cols.old_col $functions.update_cols.skip
#elif $functions.update_cols.set == 'update_name':
--update-name $functions.update_cols.input $functions.update_cols.col_num $functions.update_cols.var_col $functions.update_cols.skip
#end if
#if $functions.ref_allele.set == 'yes':
--reference-allele $functions.ref_allele.file $functions.ref_allele.column $functions.ref_allele.var_id $functions.ref_allele.skip
#end if
#if $functions.a2_allele.set == 'yes':
--a2-allele $functions.a2_allele.file $functions.a2_allele.column $functions.a2_allele.var_id $functions.a2_allele.skip
#end if
#elif $functions.func == 'stats':
$functions.freq
$functions.hardy
$functions.missing
$functions.het
#if $functions.sex.sex_stats:
$functions.sex.sex_stats
#if $functions.sex.mode:
$functions.sex.mode.mode
#if $functions.sex.mode.mode == 'ycount'
$functions.sex.mode.female_max
$functions.sex.mode.male_min
$functions.sex.mode.female_max_obvs
$functions.sex.mode.male_min_obvs
#elif $functions.sex.mode.mode == 'y-only'
$functions.sex.mode.female_max_obvs
$functions.sex.mode.male_min_obvs
#else:
$functions.sex.mode.female_max
$functions.sex.mode.male_min
#end if
#end if
#end if
#elif $functions.func == 'link':
#if $functions.set_indep.choice == 'Yes':
--indep-pairwise $functions.set_indep.window $functions.set_indep.step $functions.set_indep.r2
#end if
## #elif $functions.func == 'pair_compare':
##
## #elif $functions.func == 'dist_sim':
##
#elif $functions.func == 'stratification':
#if $functions.read_genome:
--read-genome $functions.read_genome
#end if
#if $functions.cluster.cluster == 'Yes':
--cluster
#for $type in $functions.cluster.modifiers
$type
#end for
#if $functions.cluster.mds.mds_scaling == 'Yes':
--mds-plot $functions.cluster.mds.dimensions
#for $type in $functions.cluster.mds.modifiers
$type
#end for
#end if
#end if
#elif $functions.func == 'association':
#if $functions.assoc.assoc == 'Yes':
--assoc
#if $functions.assoc.perm.perm == 'perm':
perm
#elif $functions.assoc.perm.perm == 'mperm':
mperm='$functions.assoc.perm.value'
#end if
$functions.assoc.genedrop
$functions.assoc.perm_count
$functions.assoc.fisher
$functions.assoc.count
#end if
#if $functions.adjust.adjust == 'Yes':
--adjust
#for $type in $functions.adjust.tests:
$type
#end for
#end if
## #if $functions.linear.linear == 'Yes':
## --linear
## #if $functions.linear.perm == 'perm':
## perm
## #elif $functions.linear.perm == 'mperm':
## mperm='$functions.linear.perm.value'
## #end if
## $functions.linear.genedrop
## $functions.linear.perm_count
## $functions.linear.dominance
## $functions.linear.hide_covar
## $functions.linear.sex_covar
## $functions.linear.interaction
## $functions.linear.beta
## $functions.linear.standard_beta
## $functions.linear.intercept
## #end if
#if $functions.logistic.logistic == 'Yes':
--logistic
#if $functions.logistic.perm.perm == 'perm':
perm
#elif $functions.logistic.perm.perm == 'mperm':
mperm='$functions.logistic.perm.value'
#end if
$functions.logistic.genedrop
$functions.logistic.perm_count
$functions.logistic.dominance
$functions.logistic.hide_covar
$functions.logistic.sex_covar
$functions.logistic.interaction
$functions.logistic.beta
$functions.logistic.intercept
#end if
--lambda $functions.lambda
#elif $functions.func == 'ibd':
#if $functions.genome.output_genome:
--genome
#for $type in $functions.genome.modifiers
$type
#end for
#if $functions.genome.min:
--min $functions.genome.min
#end if
#if $functions.genome.max:
--max $functions.genome.max
#end if
#if $functions.genome.ppc:
--ppc-gap $functions.genome.ppc
#end if
#end if
#elif $functions.func == 'scoring':
--score '$functions.score_file' $functions.variant_id_i $functions.allel_codes_j $functions.scores_k $functions.header $functions.sum
## #else:
## --rerun $functions.logfile
##
#end if
--memory \${GALAXY_MEMORY_MB:-8192}
--make-bed
--out plink_output/plink_output
#if $functions.func == 'association':
#if $functions.logistic.logistic == 'Yes':
&& mkdir logistic_out
&& mv plink_output/plink_output.*.l* logistic_out
&& find ./logistic_out/. -type f -exec mv {} {}.txt ';'
#end if
#if $functions.adjust.adjust == 'Yes':
&& mkdir adjust_out
&& mv ./plink_output/*.adjuste* adjust_out
&& find ./adjust_out/. -type f -exec mv {} {}.txt ';'
#end if
#if $functions.assoc.assoc == 'Yes':
&& mkdir assoc_out
&& mv ./plink_output/*asso* assoc_out
&& find ./assoc_out/. -type f -exec mv {} {}.txt ';'
#end if
#end if
&& mkdir '$plink_out.extra_files_path'
&& cp plink_output/plink_output.bed '$plink_out.extra_files_path/RgeneticsData.bed'
&& cp plink_output/plink_output.bim '$plink_out.extra_files_path/RgeneticsData.bim'
&& cp plink_output/plink_output.fam '$plink_out.extra_files_path/RgeneticsData.fam'
#if $functions.func == 'scoring':
&& awk -v OFS="\t" '{$1=$1; print}' plink_output/plink_output.profile > plink_output/plink_output.profile.tab
#end if
| Functional tests |
| name | inputs | outputs | required files |
| Test-1 |
inputs|inputs|bed: inputs|inputs|filetype: bfile functions|id_list|file: 1.tabular functions|id_list|func: remove functions|extraction|file: testing.txt functions|extraction|range: True functions|extraction|ex_func: exclude functions|snps_exclusives: --snps-only functions|ranges|window|from: snp0 functions|ranges|window|to: snp3 functions|ranges|window|type: variant functions|ranges|single_multi: single functions|thinning|thin_count: 4 functions|thinning|thinning: Yes functions|geno_rates|geno: 0.02 functions|geno_rates|mind: 0.02 functions|allele_freq|maf: 0.01 functions|hwe|hwe_val: 1e-50 functions|hwe|modifiers: ['midp', 'include-nonctrl'] functions|hwe|hwe: Yes functions|sex_founder_filter|sex_select: --filter-cases functions|sex_founder_filter|no_sex_select: --allow-no-sex functions|sex_founder_filter|nonfounders: True functions|sex_founder_filter|filter: Yes functions|func: filtering |
name: value name: value |
1.tabular testing.txt value |
| Test-2 |
inputs|inputs|bed: inputs|inputs|filetype: bfile functions|bmerge|bed: functions|bmerge|set: Yes functions|recode: True functions|template: @asd#123 functions|length: 23 functions|update_cols|input: update_cols.txt functions|update_cols|col_num: 1 functions|update_cols|var_col: 2 functions|update_cols|skip: a functions|update_cols|set: update_name functions|func: data_manage |
name: value name: value name: value name: value |
update_cols.txt value |
| Test-3 |
inputs|inputs|input: test.vcf inputs|inputs|filetype: vcf |
name: value name: value |
test.vcf value |
| Test-4 |
inputs|inputs|bed: inputs|inputs|filetype: bfile functions|freq: True functions|hardy: True functions|missing: True functions|het: True functions|sex|mode|female_max: 0.2 functions|sex|mode|male_min: 0.8 functions|sex|mode|female_max_obvs: 10 functions|sex|mode|male_min_obvs: 200 functions|sex|mode|mode: ycount functions|sex|sex_stats: --check-sex functions|func: stats |
name: value name: value name: value name: value name: value name: value name: value name: value |
value |
| Test-5 |
inputs|inputs|bed: inputs|inputs|filetype: bfile functions|set_indep|window: 51 functions|set_indep|step: 6 functions|set_indep|r2: 0.3 functions|set_indep|choice: Yes functions|func: link |
name: value name: value name: value |
value |
| Test-6 |
inputs|inputs|bed: inputs|inputs|filetype: bfile functions|read_genome: plink.genome functions|cluster|modifiers: ['cc', 'group-avg'] functions|cluster|mds|dimensions: 10 functions|cluster|mds|modifiers: ['eigendecomp', 'eigvals'] functions|cluster|mds|mds_scaling: Yes functions|cluster|cluster: Yes functions|func: stratification |
name: value name: value name: value name: value name: value name: value name: value |
plink.genome value |
| Test-7 |
inputs|inputs|bed: inputs|inputs|filetype: bfile functions|assoc|perm|value: 10000 functions|assoc|perm|perm: mperm functions|assoc|fisher: fisher-midp functions|assoc|assoc: Yes functions|adjust|tests: ['gc', 'log10', 'qq-plot'] functions|adjust|adjust: Yes functions|logistic|perm|perm: perm functions|logistic|genedrop: True functions|logistic|perm_count: True functions|logistic|dominance: dominant functions|logistic|hide_covar: True functions|logistic|beta: True functions|logistic|intercept: True functions|logistic|logistic: Yes functions|lambda: 1.0 functions|func: association |
name: value name: value |
value |
| Test-8 |
inputs|inputs|bed: inputs|inputs|filetype: bfile functions|genome|min: 0.1 functions|genome|max: 0.9 functions|genome|modifiers: ['full', 'unbounded', 'nudge'] functions|genome|output_genome: Yes functions|func: ibd |
name: value name: value |
value |
| Test-9 |
inputs|inputs|bed: inputs|inputs|filetype: bfile functions|score_file: scores_file.tab functions|variant_id_i: 1 functions|allel_codes_j: 2 functions|scores_k: 3 functions|header: True functions|sum: sum functions|func: scoring |
name: value name: value |
scores_file.tab value |