makeflow_blast(1)

πŸ“¦
version 9.9 Β· 3 versions
, in debian bookworm, ubuntu jammy, ubuntu noble

πŸ’– makeflow_blast β€” okay bestie, let's talk ✨

So makeflow_blast is a little script (a manual page for it, technically, from the Cooperative Computing Tools family) and she's here to help you parallelize and distribute blastall jobs. Yes she's niche. Yes she's iconic. Let's go. 🧚


🌸 NAME 🌸

makeflow_blast β€” generate a Makeflow to parallelize and distribute blastall jobs πŸ¦‹


✨ SYNOPSIS ✨

makeflow_blast query_granularity character_granularity [blast_options]

Like, that's the whole vibe. Two numbers, then whatever else you want. πŸ’…


πŸŽ€ DESCRIPTION πŸŽ€

Okay so here's the tea, bestie. makeflow_blast is a script that generates makeflow() workflows to run blastall jobs. Basically β€” and this is the important part β€” it takes query_granularity (that's the maximum number of sequences per fasta file split) and character_granularity (that's the maximum number of characters per fasta file split) and uses those two numbers to figure out how to break up your input fasta file. πŸ“

Then it builds you a makeflow that runs a blastall with whatever parameters you wanted on each part, and concatenates all the results into the output file you asked for. And for simplicity? Every single argument that comes after query_granularity and character_granularity gets passed straight through as options to blastall. No filtering, no fuss. 😌

Here's the little routine she runs, in order:

  • makeflow_blast runs a small test BLAST job with your provided parameters first β€” just to be sure the parameters you handed her are actually sane. Vibe check on your flags, if you will. βœ…
  • Then she calculates how many parts your provided fasta input file is gonna need.
  • She prints a makeflow rule to generate those parts using split_fasta(). βœ‚οΈ
  • Then she enumerates makeflow rules to execute blastall with the given parameters on each part.
  • Finally, subsequent rules to condense and clean the intermediate input and output get produced.
Heads up, bestie: makeflow_blast expects a blastall in the path, and you should be running it from the directory containing the input files and databases. Don't make it go looking. πŸ™ˆ

And one more thing for distribution convenience β€” it's required that the files making up a given BLAST database are stored in a folder with the same name as that database. Like, that's not a suggestion, that's the rule. πŸ‘‘


πŸ’… OPTIONS πŸ’…

  • -i <input> β€” Specifiy the input fasta file for querying the BLAST database. That's your query, your main character. 🫢
  • -o <output> β€” Specify the output file for final results. Where all the slay lands. 🌈
  • -d <databse> β€” Specify the BLAST database to be queried. (Yes the placeholder is spelled like that, we don't edit, we respect the lore. πŸ’€)

⭐ EXIT STATUS ⭐

On success, returns zero. πŸ’– On failure, returns non-zero. 😭 That's it, that's the whole thing.


πŸ¦‹ ENVIRONMENT VARIABLES πŸ¦‹

Nothing here, bestie. This section is empty in the original too β€” no environment variables are documented for this one. Silence is golden. ✨


🌸 EXAMPLES 🌸

Okay so say you want to generate a makeflow to run blastall -p blastn on smallpks.fa and testdb, splitting smallpks.fa every 500 sequences or 10000 characters, and dropping the blast output into test.txt. You'd do:

python makeflow_blast 500 10000 -i smallpks.fa -o test -d testdb/testdb -p blastn > Makeflow

And then?? You can execute this workflow in a variety of distributed and parallel environments using the makeflow command. Go off. πŸ”₯


The Cooperative Computing Tools are Copyright (C) 2005-2019 The University of Notre Dame. This software is distributed under the GNU General Public License. See the file COPYING for details.


πŸ’œ SEE ALSO πŸ’œ


And that's the whole page, bestie!! This one's from CCTools 8.0.0 DEVELOPMENT, dated with all the love of the original β€” mwah, go split some fasta files, you've got this. πŸ’–βœ¨πŸŽ€

πŸ“¦ where this page comes from