Created
December 1, 2020 12:38
-
-
Save telatin/084c23d49cd41354fc6c7bd9700d3339 to your computer and use it in GitHub Desktop.
My first Qiime 1 mini script to perform basic steps
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env perl | |
use 5.012; | |
use Term::ANSIColor; | |
# Andrea Telatin <[email protected]> | |
# Sept 2014 | |
my $version = '0.04'; | |
print STDERR color('bold green'), " | |
RUN QIIME | |
Parameters: | |
SplittedLib.fna MappingFile OutDir [StartFrom] | |
", color('reset'), " | |
Start from: | |
0 Make All | |
1 Skip Denovo otus | |
2 Skip OTUs network | |
3 Skip heatmap | |
4 Skip summarize taxa | |
"; | |
my ($fna_file, $map_file, $out_dir, $skip) = @ARGV; | |
die " Missing parameters.\n" unless ($out_dir); | |
die " Missing FNA file.\n" unless (-e "$fna_file"); | |
die " Missing mapping file.\n" unless (-e "$map_file"); | |
if (-d "$out_dir") { | |
print STDERR "Check: $out_dir found!\n"; | |
} else { | |
`mkdir "$out_dir"`; | |
} | |
`echo "alpha_diversity:metrics shannon,PD_whole_tree,chao1,observed_species" > /tmp/alpha`; | |
my $biom = "$out_dir/1_otus/otu_table.biom"; | |
my $repset = "$out_dir/1_otus/rep_set.tre"; | |
if ($skip < 1) { | |
print STDERR "1) PICK OTUS:\n"; | |
print STDERR "#pick_de_novo_otus.py -i \"$fna_file\" -o \"$out_dir/1_otus\"\n Working... "; | |
`pick_de_novo_otus.py -i "$fna_file" -o "$out_dir/1_otus"`; | |
} | |
die "Missing \"biom\" file: $biom\n" unless (-e "$biom"); | |
die "Missing \"repset\" file: $repset\n" unless (-e "$repset"); | |
if ($skip < 2) { | |
print STDERR "Done.\n2) Make OTUs network\n"; | |
print STDERR "make_otu_network.py -m \"$map_file\" -i \"$biom\" -o \"$out_dir/2_network\"\n Working... "; | |
`make_otu_network.py -m "$map_file" -i "$biom" -o "$out_dir/2_network"`; | |
} | |
if ($skip < 3) { | |
print STDERR "Done.\n3) Make heatmap:"; | |
print STDERR qq(#make_otu_heatmap_html.py -m "$map_file" -i "$biom" -o "$out_dir/3_heatmap\n Working..."); | |
`make_otu_heatmap_html.py -m "$map_file" -i "$biom" -o "$out_dir/3_heatmap"`; | |
} | |
if ($skip < 4) { | |
print STDERR "Done.\n4) Summarize taxa:"; | |
print STDERR qq(#summarize_taxa_through_plots.py -i "$biom" -m "$map_file" -o "$out_dir/4_summarize_taxa" -s\n Working...); | |
`summarize_taxa_through_plots.py -i "$biom" -m "$map_file" -o "$out_dir/4_summarize_taxa" -s`; | |
} | |
if ($skip < 5) { | |
print STDERR "Done.\n5) Alpha rarefaction:"; | |
print STDERR qq(#alpha_rarefaction.py -i "$biom" -m "$map_file" -o "$out_dir/5_alpha_rarefaction" -p /tmp/alpha -t "$repset" -o "$out_dir/5_alpha"\n Working...); | |
`alpha_rarefaction.py -i "$biom" -m "$map_file" -o "$out_dir/5_alpha_rarefaction" -p /tmp/alpha -t "$repset"`; | |
} | |
print STDERR "Done.\n6) Beta rarefaction:"; | |
print STDERR qq(#beta_diversity_through_plots.py -i "$biom" -m "$map_file" -o "$out_dir/6_beta_rarefaction" -t "$repset" -e 200\n Working...); | |
`beta_diversity_through_plots.py -i "$biom" -m "$map_file" -o "$out_dir/6_beta_rarefaction" -t "$repset" -e 200`; | |
print STDERR "Done.\n7) Jakknifed...\n"; | |
print STDERR qq(#jackknifed_beta_diversity.py -m "$map_file" -i "$biom" -t "$repset" -o "$out_dir/7_jakknifed" -e 119\n Working...); | |
`jackknifed_beta_diversity.py -m "$map_file" -i "$biom" -t "$repset" -o "$out_dir/7_jakknifed" -e 119`; | |
print STDERR "Done.\n"; | |
print STDERR "8) Emperor...\n"; | |
print STDERR qq(#make_emperor.py -i "$out_dir/6_beta_rarefaction/unweighted_unifrac_pc.txt" -m "$map_file" -t "$out_dir/4_summarize_taxa/otu_table_sorted_L3.txt" --n_taxa_to_keep 5 -o "$out_dir/8_biplots"\n Working..."); | |
`make_emperor.py -i "$out_dir/6_beta_rarefaction/unweighted_unifrac_pc.txt" -m "$map_file" -t "$out_dir/4_summarize_taxa/otu_table_sorted_L3.txt" --n_taxa_to_keep 5 -o "$out_dir/8_biplots"`; | |
print STDERR "Done.\n"; | |
print STDERR "9) Bootstrapped tree...\n"; | |
print STDERR qq(#make_bootstrapped_tree.py -m "$out_dir/7_jakknifed/unweighted_unifrac/upgma_cmp/master_tree.tre" -s "$out_dir/7_jakknifed/unweighted_unifrac/upgma_cmp/jackknife_support.txt" -o "$out_dir/9_jakknife_named_nodes.pdf"\n Working...); | |
`make_bootstrapped_tree.py -m "$out_dir/7_jakknifed/unweighted_unifrac/upgma_cmp/master_tree.tre" -s "$out_dir/7_jakknifed/unweighted_unifrac/upgma_cmp/jackknife_support.txt" -o "$out_dir/jakknife_named_nodes.pdf"`; | |
print STDERR "Done.\n"; | |
# mi ammazzeraà? | |
my $cmd = "dissimilarity_mtx_stats.py -i $out_dir/7_jakknifed/unweighted_unifrac/rare_dm -o 9_diststats"; | |
print STDERR "#Now running statistics:\n#$cmd\n"; | |
`$cmd`; | |
my $cmd = "make_distance_boxplots.py -m \"$map_file\" -o 10_distanceboxplots -d 9_diststats/means.txt -f Treatment --save_raw_data"; | |
print STDERR "#Now preparing distance plots:\n#$cmd\n"; | |
`$cmd`; | |
print STDERR "Listing HTML files..."; | |
`cd "$out_dir"`; | |
my $command ='for i in `find $out_dir/ -name "*.html"`; do echo $i >> $out_dir/reports.txt; done'; | |
system($command); | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment