Sample nucleotides from a given codon position

The take_codon_positions app allows you to extract all nucleotides at a given codon position from an alignment.

Let’s create a sample alignment for our example.

Extract the third codon position from an alignment

We can achieve this by creating the take_codon_positions app with 3 as a positional argument.

Extract the first and second codon positions from an alignment

We can achieve this by creating the take_codon_positions app with 1 and 2 as a positional argument.

Extract only the third codon positions from four-fold degenerate codons

We can achieve this by creating the take_codon_positions app with the argument fourfold_degenerate=True.

Create a composed process which samples only the third codon position

Let’s set up a data store containing all the files with the “.fasta” suffix in the data directory, limiting the data store to two members as a minimum example.

Now let’s set up a process composing the following apps: load_aligned (loads the sequences ), take_codon_positions (extracts the third codon position), and write_seqs (writes the filtered sequences to a data store).

Note

Learn the basics of turning apps into composed processes here!

Tip

When running this code on your machine, remember to replace path_to_dir with an actual directory path.

Now let’s apply process to our data store! This populates out_dstore (which is returned by the .apply_to() call) with the filtered alignments. We can index out_dstore to see individual data members. We could take a closer look using the .read() method on data members.