Skip to content

Instantly share code, notes, and snippets.

@telatin
Created December 1, 2020 12:38
Show Gist options
  • Save telatin/084c23d49cd41354fc6c7bd9700d3339 to your computer and use it in GitHub Desktop.
Save telatin/084c23d49cd41354fc6c7bd9700d3339 to your computer and use it in GitHub Desktop.
My first Qiime 1 mini script to perform basic steps
#!/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