Hot answers tagged

5

TL;DR I made the following bash script to generate an input file for HYPHY. #!/bin/bash cat << EOF inputRedirect = {}; inputRedirect["01"]="Universal"; // genetic code inputRedirect["02"]="$(readlink -f $1)"; // codon data inputRedirect["03"]="$(readlink -f $2)"; // tree inputRedirect["04"]="${3:-All}"; // Test for selection on a branch inputRedirect[...


4

I don't know of any transcript-to-transcript aligners that are able to do this, but LAST can align transcript queries to protein reference sequences using a specified frameshift cost. Here's the specific documentation for that option: -F COST Align DNA queries to protein reference sequences, using the specified frameshift cost. A value of 15 ...


3

This relates to the concept of the reading frame, which is the point at which you start dividing 3-letter sequences into codons. As you point out, there are multiple ways to divide a string of amino acids into triplets - in fact, there are six unique ways, found by shifting the start letter by one three times, and doing the same but reading in reverse. ...


3

Calculate in this context would just mean determine. You don't actually have to change every base to determine whether a change is silent. Instead, try building a hash table of amino acids to codons, which you can then quickly iterate over to find all silent changes. BTW, try to avoid loaded terms like "mutation", even if your professor incorrectly used it. ...


2

Try MACSE v2 (https://academic.oup.com/mbe/article/35/10/2582/5079334) will align multiple protein-coding nucleotide sequences based on their amino acid translation while allowing for the occurrence of frameshifts


2

Virulign does this for virus sequences, the publication is available here and github address here


2

Okay well, because you're using HYPHY, you're going to need a gene tree of every gene you intend to analyze. This requires you to understand the homology relationships between the genomes at hand. Depending on your project, you might already have a list of homologs you're trying to analyze, or you can start from scratch. If starting from scratch, you will ...


2

This python script will remove all stop codons from your fasta file. I called it remove_stops.py #!/usr/bin/env python3 import sys from Bio import SeqIO stop_codons = ["TAG", "TGA", "TAA", "UAG", "UGA", "UAA"] fasta_it = SeqIO.parse(open(sys.argv[1]), 'fasta') for fasta in fasta_it: name, sequence = fasta.description, str(fasta.seq) try: ...


2

Branch-models are currently not implemented in godon. In the PAML manual Ziheng Yang writes: This model is very parameter-rich and its use is discouraged. This was one of the reasons I did not implement it. Disclaimer: I am the author of godon.


1

You need to iterate over the sequence 3 characters at a time and you need to stop when you hit the stop codon (or before for an invalid codon, e.g. of length 2). Here is a memory efficient implementation using iterators (requires python >= 3.8): from itertools import islice def protfromRNA(Seq): it = iter(Seq) lst = [] while codon := "&...


1

To add complexity to this discussion, there are examples in some mitochondrial genomes where the stop point of a gene is based on the polyA-attached transcript, rather than the genomic sequence. I worked on a paper about Nippostrongylus brasiliensis mtDNA, and needed polyA completion to explain the transcript expression I observed: https://doi.org/10.12688/...


1

Ah wait you mentioned a branch sites test, right that makes sense. You've got two or more identical sequences in the analysis. Ensure there are no identical sequences in your alignments and ... PRESTO! It will work :-) Below are my original thoughts before I re-read your question. I've kept the notes because it helps explain the theory a bit. There is no ...


1

Disclaimer: I'm the author of godon. The question above comes from the real communication with a software user. In the godon implementation of the branch-site model I performed the following reparametrization: $p_{01sum} = p_0 + p_1$ $p_{0prop} = \frac{p_0}{p_0 + p_1}$. This has the following advantages: Both parameters have a well defined range $(0, 1)$...


Only top voted, non community-wiki answers of a minimum length are eligible