I have for a time entertained the idea, that if God is the creator, he would have left his signature in the DNA of human species. If I was the creator, I would have encoded the entire Hebrew Bible in DNA, so to let no one doubt that DNA was created by God and that the Bible is the word of God.

I finally took up the challenge and wrote a perl script to check if the first five verses of the Bible are encoded in DNA. Naturally there is an infinite number of ways to encode information in DNA, but I assumed that God would have used something quite obvious in order for us to be able to find information encoded in DNA. I’m assuming that if the Bible is encoded in DNA, the encoding used would be the same as for protein synthesis, namely that triplets of DNA base pairs would encode for one character. There are 64 possible codons so there is plenty of redundancy when they are used for encoding 22 hebrew alphabets (plus sofit forms for five characters).

Just an example, what the encoding would look like as found by my script:

AAA -> Y

AAC -> XXX

AAG -> B

AAT -> XXX

ACA -> A

ACC -> M

ACG -> XXX

ACT -> XXX

AGA -> R

AGC -> R

AGG -> W

AGT -> W

ATA -> H

ATC -> XXX

ATG -> A

ATT -> H

CAA -> XXX

CAC -> XXX

CAG -> I

CAT -> XXX

CCA -> XXX

CCC -> XXX

CCG -> XXX

CCT -> V

CGA -> XXX

CGC -> XXX

CGG -> O

CGT -> XXX

CTA -> XXX

CTC -> E

CTG -> V

CTT -> H

GAA -> H

GAC -> I

GAG -> XXX

GAT -> T

GCA -> XXX

GCC -> B

GCG -> XXX

GCT -> H

GGA -> V

GGC -> H

GGG -> Y

GGT -> A

GTA -> Y

GTC -> V

GTG -> A

GTT -> I

TAA -> E

TAC -> XXX

TAG -> XXX

TAT -> O

TCA -> A

TCC -> Y

TCG -> XXX

TCT -> XXX

TGA -> R

TGC -> H

TGG -> A

TGT -> XXX

TTA -> XXX

TTC -> L

TTG -> B

TTT -> A

My dirty little perl script reads a FASTA file one character at a time and when a triplet is read, it check to see if that codon is already defined. If it is not, the first character of the target sequence is added to a hash containing all the codons. The algorithm then moves to the next triplet in DNA and check to see if that triplet is defined and so on. When a triplet is already defined and the character stored does not equal the target sequence, the script records the maximum length of the sequence found and goes back to the beginning of DNA and moves forward one base pair to continue the search.

I’m not a computer science expert and I’m sure that my script is dirty and messy, but it does work. It takes 25h to search one target sequence against the 3 billion base pairs of human DNA on my crappy computer. The FASTA files are in chunks of roughly 150 million base pairs, so several files need to be checked by hand, but this is not much of a problem. My computer crashes when I try to load more than 10 million base pairs at a time, so the script reads each FASTA file in chunks of 5 million base pairs at a time.

I could not get hebrew characters to work properly, so I simply transliterated the first five verses of Genesis to ASCII characters. This is a dirty way of going about it, but it works.

Aleph A

Bet B

Gimmel G

Dalet D

Hey H

Vav V

Zayin Z

Chet C

Tet T

Yod Y

Kaf K 6

Lamed L

Mem M O

Nun N J

Samekh S

Ayin X

Pey P F

Tsadi U W

Kuf Q

Resh R

Shin E

Tav I

Gen 1:1-5

BRAEYI BRA ALHYO AI HEMYO VAT HARW VHARW HYIH IHV VBHV VCE6 XL PNY IHVO VRVC ALHYO MRCPI AL PNY HMYO VYAMR ALHYO YHY AVR VYHY AVR VYRA ALHYO AI HAVR KY TVB VYBDL ALHYO BYJ HAVR VBYJ HCE6 VYQRA ALHYO LAVR YVO VLCE6 QRA LYLH VYHY XRB BYHY BQR YVO ACD

For control sequences I used Lorem ipsum, War and Peace, Romeo and Juliet, The Declaration of Independence and a random string.

The results so far:

Lorem ipsum 42 characters found (246 million base pairs searched)

War and peace 39 characters found (185 million base pairs searched)

Romeo and Juliet 40 characters found (185 million base pairs searched)

The Declaration of Independence 40 characters found (185 million base pairs searched)

A random string 39 characters found (185 million base pairs searched)

Having checked the hebrew Bible against so far 1.2 billion base pairs, the maximum sequence found was 45 characters. This is more than the control sequences, but only because many more base pairs were compared. To be sure that the sequence was encoded in DNA by God, I would expect to find a sequence of hundreds of characters, preferably all the first five verses of Genesis. I’m not a mathematician, so I have not calculated what the maximum sequence length would be if left to chance alone. But the control sequences do give some estimate.

I’m of course assuming that God used the hebrew Bible, because some say hebrew is the holy language, but I’ve also checked the King James English for the first verses of Matthew and John. If God is omnipotent, surely he could have encoded the Bible in DNA in any language. In the future I’ll check if New Testament passeges are encoded in Greek, but thus far I’m working with the assumption that the most awesome thing for God to do would have been to encode the beginning of Genesis. Will post results when I find anything.

Let me know what you think of my efforts, I know this is nuts. Code below. Looks colorful but a bit messy because of the indentations. Copy paste to your favourite editor. Maybe freely used as long as I’m given credit.

#!/usr/bin/perl # by Lauri Rantala 18.5.2018 # Search for Torah in human DNA FASTA files # version 0.11 # # MIT License # # Copyright (c) 2018 Lauri Rantala # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal # in the Software without restriction, including without limitation the rights # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell # copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in all # copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. # # FASTA files from # ftp://ftp.ensembl.org/pub/release-92/fasta/homo_sapiens/dna/ # Who holds the copyright for human DNA? # # There are print commands in comments for handy debugging # # In the beginning God created the heaven and the earth. # And the earth was without form, and void; and darkness # was upon the face of the deep. And the Spirit of God # moved upon the face of the waters. And God said, Let # there be light: and there was light. And God saw the # light, that it was good: and God divided the light from # the darkness. And God called the light Day, and the # darkness he called Night. And the evening and the morning # were the first day. Genesis 1:1-5 # $search_text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus ac massa tincidunt tellus faucibus faucibus. Aliquam at interdum dolor. Ut vehicula porta accumsan. In interdum sit amet diam placerat eleifend. Suspendisse id ex semper, eleifend justo et, ullamcorper urna. Phasellus bibendum sodales dignissim. Nullam accumsan aliquam nulla, quis mattis quam. Sed at enim nisl. Pellentesque varius massa vel bibendum lobortis. Integer in tellus sapien. Proin dapibus vehicula nisi lacinia faucibus."; # $search_text = "In the beginning God created the heaven and the earth. And the earth was without form, and void and darkness was upon the face of the deep. And the Spirit of God moved upon the face of the waters. And God said, Let there be light and there was light. And God saw the light, that it was good and God divided the light from the darkness. And God called the light Day, and the darkness he called Night. And the evening and the morning were the first day. And God said, Let there be a firmament in the midst of the waters, and let it divide the waters from the waters. And God made the firmament, and divided the waters which were under the firmament from the waters which were above the firmament and it was so. And God called the firmament Heaven. And the evening and the morning were the second day. And God said, Let the waters under the heaven be gathered together unto one place, and let the dry land appear and it was so. And God called the dry land Earth and the gathering together of the waters called he Seas and God saw that it was good."; # $search_text = "The book of the generation of Jesus Christ, the son of David, the son of Abraham. Abraham begat Isaac; and Isaac begat Jacob; and Jacob begat Judas and his brethren; And Judas begat Phares and Zara of Thamar; and Phares begat Esrom; and Esrom begat Aram; And Aram begat Aminadab; and Aminadab begat Naasson; and Naasson begat Salmon; And Salmon begat Booz of Rachab; and Booz begat Obed of Ruth; and Obed begat Jesse; And Jesse begat David the king; and David the king begat Solomon of her that had been the wife of Urias; And Solomon begat Roboam; and Roboam begat Abia; and Abia begat Asa; And Asa begat Josaphat; and Josaphat begat Joram; and Joram begat Ozias; And Ozias begat Joatham; and Joatham begat Achaz; and Achaz begat Ezekias; And Ezekias begat Manasses; and Manasses begat Amon; and Amon begat Josias; And Josias begat Jechonias and his brethren, about the time they were carried away to Babylon: And after they were brought to Babylon, Jechonias begat Salathiel; and Salathiel begat Zorobabel; And Zorobabel begat Abiud; and Abiud begat Eliakim; and Eliakim begat Azor; And Azor begat Sadoc; and Sadoc begat Achim; and Achim begat Eliud; And Eliud begat Eleazar; and Eleazar begat Matthan; and Matthan begat Jacob; And Jacob begat Joseph the husband of Mary, of whom was born Jesus, who is called Christ."; # $search_text = "In the beginning was the Word, and the Word was with God, and the Word was God. The same was in the beginning with God. All things were made by him and without him was not any thing made that was made. In him was life and the life was the light of men. And the light shineth in darkness and the darkness comprehended it not."; # $search_text = "Well, Prince, so Genoa and Lucca are now just family estates of the Buonapartes. But I warn you, if you dont tell me that this means war, if you still try to defend the infamies and horrors perpetrated by that Antichrist I really believe he is Antichrist I will have nothing more to do with you and you are no longer my friend, no longer my faithful slave, as you call yourself But how do you do I see I have frightened you sit down and tell me all the news."; # $search_text = "בראשית ברא אלהים את השמים ואת הארץ והארץ היתה תהו ובהו וחשך על פניתהוםורוח אלהים מרחפת על פני המיםויאמר אלהים יהי אור ויהי אורוירא אלהים את האור כי טוב ויבדל אלהים בין האור ובין החשךויקרא אלהים לאור יום ולחשך קרא לילה ויהי ערב ויהי בקר יום אחד"; # 198 chars in hebrew Gen 1:1-5 # hebrew without punctuation: # $search_text = "BRAEYI BRA ALHYO AI HEMYO VAT HARW VHARW HYIH IHV VBHV VCE6 XL PNY IHVO VRVC ALHYO MRCPI AL PNY HMYO VYAMR ALHYO YHY AVR VYHY AVR VYRA ALHYO AI HAVR KY TVB VYBDL ALHYO BYJ HAVR VBYJ HCE6 VYQRA ALHYO LAVR YVO VLCE6 QRA LYLH VYHY XRB BYHY BQR YVO ACD"; # hebrew with punctuation: # $search_text = "BRAEYI BRA ALHYO AI HEMYO VAT HARW: VHARW HYIH IHV VBHV VCE6 XL PNY IHVO VRVC ALHYO MRCPI AL PNY HMYO: VYAMR ALHYO YHY AVR VYHY AVR: VYRA ALHYO AI HAVR KY TVB VYBDL ALHYO BYJ HAVR VBYJ HCE6: VYQRA ALHYO LAVR YVO VLCE6 QRA LYLH VYHY XRB BYHY BQR YVO ACD:"; # hebrew with 22 chars only: $search_text ="BRAEYI BRA ALHYM AI HEMYM VAT HARU VHARU HYIH IHV VBHV VCEK XL PNY IHVM VRVC ALHYM MRCPI AL PNY HMYM VYAMR ALHYM YHY AVR VYHY AVR VYRA ALHYM AI HAVR KY TVB VYBDL ALHYM BYN HAVR VBYN HCEK VYQRA ALHYM LAVR YVM VLCEK QRA LYLH VYHY XRB BYHY BQR YVM ACD"; # $search_text = "The unanimous Declaration of the thirteen united States of America, When in the Course of human events, it becomes necessary for one people to dissolve the political bands which have connected them with another, and to assume among the powers of the earth, the separate and equal station to which the Laws of Nature and of Natures God entitle them, a decent respect to the opinions of mankind requires that they should declare the causes which impel them to the separation. We hold these truths to be selfevident, that all men are created equal, that they are endowed by their Creator with certain unalienable Rights, that among these are Life, Liberty and the pursuit of Happiness. That to secure these rights, Governments are instituted among Men, deriving their just powers from the consent of the governed, That whenever any Form of Government becomes destructive of these ends, it is the Right of the People to alter or to abolish it, and to institute new Government, laying its foundation on such principles and organizing its powers in such form, as to them shall seem most likely to effect their Safety and Happiness. Prudence, indeed, will dictate that Governments long established should not be changed for light and transient causes and accordingly all experience hath shewn, that mankind are more disposed to suffer, while evils are sufferable, than to right themselves by abolishing the forms to which they are accustomed. But when a long train of abuses and usurpations, pursuing invariably the same Object evinces a design to reduce them under absolute Despotism, it is their right, it is their duty, to throw off such Government, and to provide new Guards for their future security."; # $search_text = "FJRLLTWLEVMSOXJRUCAIKINEDQBHZSKWDJZHJBBVKEAYPMFKOOQDNILJCNTHSNHMRPBSIXRDXXCFXMISDAOLVQSRPODFXCTHXGJSERUGKVVEGZSMWLESZRTLJDFPPONMMHBGLMHSPYZGIQPQQPOBRUDOOGIWAPJQIANJIQNRFUQTNRJANFVJZBRYNAHMVEJXHDLYMEHOVHAONNIJKMFUAZOLQGIEGIAPBFGFRBEWFBVFJQYURNRQAFCANRRTYSIKVWLBVHDCUQFMSVQZMQXITJHSYALLHSCQFZRHJNLJOSX"; # $search_text = "Two households, both alike in dignity, In fair Verona, where we lay our scene, From ancient grudge break to new mutiny, Where civil blood makes civil hands unclean. From forth the fatal loins of these two foes A pair of star crossd lovers take their life; Whose misadventured piteous overthrows Do with their death bury their parents strife. The fearful passage of their death markd love, And the continuance of their parents rage, Which, but their childrens end, nought could remove, Is now the two hours traffic of our stage; The which if you with patient ears attend, What here shall miss, our toil shall strive to mend."; print "$search_text

"; # use this to remove any punctuation: $search_text =~ tr/ |.|,|:|;//ds; # convert all chars to uppercase # $search_text =~ tr/[a-z]/[A-Z]/; # convert the spaces to underscores just for nicer output # $search_text =~ tr/ /_/; print "$search_text

"; @search_chars = split //, $search_text; # 10 000 000 chars at once will crash on my computer # 5 000 000 chunks work # chunk is the number of characters to read at a time # $file_length needs to be supplied by hand, use wc -m Fasta_file.fa # use file length if you don't want to read the whole file $chunk = 5000000; $start_genome = 0; $end_genome = $start_genome + $chunk; $file_length = 184563953; $search_count = 0; $max_found = 0; $max_str = ""; $max_str_found = ""; $max_text = ""; $max_text_found = ""; $max_pos_found = 0; $codon = ""; @genome = ""; %alephbets = qw/AAA XXX AAC XXX AAG XXX AAT XXX ACA XXX ACC XXX ACG XXX ACT XXX AGA XXX AGC XXX AGG XXX AGT XXX ATA XXX ATC XXX ATG XXX ATT XXX CAA XXX CAC XXX CAG XXX CAT XXX CCA XXX CCC XXX CCG XXX CCT XXX CGA XXX CGC XXX CGG XXX CGT XXX CTA XXX CTC XXX CTG XXX CTT XXX GAA XXX GAC XXX GAG XXX GAT XXX GCA XXX GCC XXX GCG XXX GCT XXX GGA XXX GGC XXX GGG XXX GGT XXX GTA XXX GTC XXX GTG XXX GTT XXX TAA XXX TAC XXX TAG XXX TAT XXX TCA XXX TCC XXX TCG XXX TCT XXX TGA XXX TGC XXX TGG XXX TGT XXX TTA XXX TTC XXX TTG XXX TTT XXX/; foreach $key (sort keys %alephbets) { print "$key "; } print "

"; $start_time_program = time; $i = 0; $eof = 1; $start_time_file = time; print "Now opening file at $start_genome

"; # open the FASTA DNA file and load each character to @genome open my $fh, " $max_found) { $max_found = $search_count; $max_str_found = $max_str; $max_text_found = $max_text; $max_pos_found = $genome_pos; print "

"; foreach $key (sort keys %alephbets) { print "$key $alephbets{$key} "; } print "

MAX found: $max_found

"; print "at $genome_pos

$max_str_found

"; print "$max_text_found

"; } elsif ($search_count > 50) { print "

Large segment found:

"; foreach $key (sort keys %alephbets) { print "$key $alephbets{$key} "; } print "

Length found: $search_count

"; print "at $genome_pos

$max_str

"; print "$max_text

"; } # print " $alephbets{$codon} does not equal search @search_chars[$search_count], start again! found seq length $search_count

"; $search_count = 0; $genome_count++; $seg_count = $genome_count; %alephbets = qw/AAA XXX AAC XXX AAG XXX AAT XXX ACA XXX ACC XXX ACG XXX ACT XXX AGA XXX AGC XXX AGG XXX AGT XXX ATA XXX ATC XXX ATG XXX ATT XXX CAA XXX CAC XXX CAG XXX CAT XXX CCA XXX CCC XXX CCG XXX CCT XXX CGA XXX CGC XXX CGG XXX CGT XXX CTA XXX CTC XXX CTG XXX CTT XXX GAA XXX GAC XXX GAG XXX GAT XXX GCA XXX GCC XXX GCG XXX GCT XXX GGA XXX GGC XXX GGG XXX GGT XXX GTA XXX GTC XXX GTG XXX GTT XXX TAA XXX TAC XXX TAG XXX TAT XXX TCA XXX TCC XXX TCG XXX TCT XXX TGA XXX TGC XXX TGG XXX TGT XXX TTA XXX TTC XXX TTG XXX TTT XXX/; $max_str = ""; $max_text = ""; if (($genome_pos%1000000)==0) { print "Now searching at $genome_pos

"; } } } $codon = ""; } else { $j++; } $seg_count++; if ($genome_count > $genome_length) { $quit = 0; } if ($genome_pos > $file_length) { $quit = 0; $eof = 0; print "Reached file length.

"; } } @genome = ""; $end_time_code = time; $time_code = $end_time_code - $start_time_code; print "It took $time_code seconds to decode $chunk base pairs.

"; $start_genome += $chunk; $end_genome += $chunk; $start_time_file = time; print "Now opening file at $start_genome

"; } } } close $fh; $time_taken_program = $end_time_code - $start_time_program; print "

MAX found: $max_found

"; print "at $max_pos_found

$max_str_found

"; print "$max_text_found

"; print "It took $time_taken_program seconds to do $file_length base pairs. "; print "Quit.

";

Happy coding! To all those saying that with this method the entire works of Shakespeare or the Communist Manifesto can be found, please demonstrate it, you can do it with my script, that’s what I wrote it for. Or if you think another method of encoding can produce any text you want of any lenght, write your own script and show it. It can not be done.

If anybody can get the hebrew characters to work, I’d be very grateful.

If there are any mathematicians out there, I’d be very interested to know, what the probability of getting a string of say 100 characters is with my method. The math to do that is just way beyond me.

Update: In this Reddit discussion jakkarth claims that you can find any text anywhere given an arbitrary encoding scheme, a claim that is simply false. He took up my challenge and wrote a script that outputs the entire works of Shakespeare from DNA. Only it does not. What he did was use DNA as a one time encryption pad to output the works. SETI would not be impressed if this method was used to identify the entire works of Shakespeare in cosmic background radiation. What my script does, and what intelligent design does, is look for complex specified information. The way to do that is to find a pattern. My script looks to see if there is a pattern in DNA that is the same as the pattern for the first five verses of the Bible. The symbols are different, but the pattern is the same. If the sequence found is long enough, it can not be due to chance and can only by due to intelligence. jakkarth’s script does not look for a pattern, it returns true for any input. It “finds” any sequence anywhere where it looks. In other words, it finds nothing at all.