I know there are many algorithms (and a lot of different implementations) that allow predicting the outcome of protein synthesis given a set of nucleotide bases present in the DNA. In other words, given a sequence of such bases, produce a final protein (going through a simulation of the various processes that end up in a protein). However, are there any algorithms that allow to predict the opposite, i.e. the sequence of nucleotide bases that were the basis for the synthesis into a given protein?
It's trivial in principle, but remember that there are multiple codons that can produce a single amino acid, so reverse-translating a protein will either give you the most commonly-used codons for the protein, or will give you a large number of possible sequences.
This is a standard method used in bioinformatics.
First step is to convert the amino acid sequence to a degenerate nucleotide sequence using the relevant codon table.
Once you have the degenerate nucleotide sequence, you can blast it against all known nucleotide sequences, including whole genomes.
Since the degenerate nucleotide sequence essentially is a degenerate cDNA sequence, you can then simply identify any genes with exons capable of producing the necesary cDNA through splicing events.
This method is called tblastn and is available here: https://blast.ncbi.nlm.nih.gov/Blast.cgi