# 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.

previous

Sample an alignment to a fixed length

next

Select named sequences from a collection