#!/usr/bin/perl # Script to create README file, run in the directory with the results in it. # Outputs to STDOUT by default, change with --out option or redirect. # If you're using an alignment give the --format msf option use strict; use warnings; use Getopt::Long; my ($out, $format); GetOptions( "o|out=s" => \$out, ); $out = '-' unless $out; ## create look-up table of descriptions for files created by Jpred my %file = ( 'LOG' => "The log file of the prediction\n", 'README' => "This file\n", '.align' => "PSIBLAST alignment with gaps and redundancy removed in FASTA format\n", '.align.msf' => "Your alignment in MSF format\n", '.als' => "Alscript command file. Used to generate PS/PDF output", '.blast.gz' => "PSIBLAST output (compressed)\n", '.coils.csv' => "The output from coils in CSV format\n", '.coilseq.lupas_14' => "The output from coils using a window length of 14\n", '.coilseq.lupas_21' => "The output from coils using a window length of 21\n", '.coilseq.lupas_28' => "The output from coils using a window length of 28\n", '.concise' => "The prediction in pseudo-CSV format, including the coiled-coil prediction, solvent accessiblity and the sequence alignment\n", '.concise.blc' => "A BLC file of the prediction and alignment\n", '.concise.pdf' => "A PDF file of the prediction and alignment\n", '.concise.ps' => "A PostScript file of the prediction and alignment\n", '.fasta' => "Input query sequence in FASTA format\n", '.hmm' => "The HHMer2 profile of the alignment\n", '.html' => "A HTML file of the prediction and alignment\n", '.input' => "Your raw input\n", '.jalview' => "A Jalview annotation file to be read in with the .align file to view the predictions in Jalview\n", '.jnet' => "The output from Jnet\n", '.profile' => "PSIBLAST profile\n", '.pssm' => "PSIBLAST PSSM in a format for Jnet\n", '.seq' => "Your sequence\n", '.simple.html' => "The brief HTML output of the query sequence and prediction only\n", '.tar.gz' => "An archive of all the files in the directory\n", ); ## open the current directory opendir DIR, $ENV{'PWD'} or die "$ENV{PWD}: $!\n"; ## find the longest filename in order to correctly format the file my $len = 0; foreach (readdir DIR) { $len = length if length > $len; } rewinddir DIR; $len = "%-".($len + 5)."s%s"; # filename format for printing is max. length + 5 chars ## Open output and write formatted filenames with their descriptions open FILE, ">$out" or die "$out: $!\n"; printf FILE $len, "Filename", "Description\n"; printf FILE $len, "--------", "-----------\n"; foreach my $file (sort readdir DIR) { # determine the extension for each file my ($extn) = ($file =~ /[^.]*(.*)$/); # remove unwanted files - Alignment in CSV format (can be found in the .concise file) # and the SGE job files unlink $file if ($extn eq '.align.csv'); unlink $file if ($extn =~ /\.[eo]\d{6}$/); # output the formatted filename along with its description if it has a known extension printf FILE $len, $file, $file{$extn} if $file{$extn}; } close(FILE); exit;