123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- # DNA
- if $ARGS[0] = 'compare':
- !!Comparing two DNA string, if match, gives back 1
- if $ARGS[1] = $ARGS[2]:
- result = 1
- else
- result = 0
- end
- end
- if $ARGS[0] = 'relate':
- !!Comparing two DNA string to determine genetic relation
- !!First sample
- !!own ID
- temp1[0] = $mid ($ARGS[1], 1, 10)
- !!mother ID
- temp1[1] = $mid ($ARGS[1], 12, 10)
- !!father ID
- temp1[2] = $mid ($ARGS[1], 23, 10)
- !!maternal grandmother ID
- temp1[3] = $mid ($ARGS[1], 34, 10)
- !!maternal grandfather ID
- temp1[4] = $mid ($ARGS[1], 45, 10)
- !!paternal grandmother ID
- temp1[5] = $mid ($ARGS[1], 56, 10)
- !!paternal grandfather ID
- temp1[6] = $mid ($ARGS[1], 67, 10)
- !!Second sample
- !!own ID
- temp2[0] = $mid ($ARGS[2], 1, 10)
- !!mother ID
- temp2[1] = $mid ($ARGS[2], 12, 10)
- !!father ID
- temp2[2] = $mid ($ARGS[2], 23, 10)
- !!maternal grandmother ID
- temp2[3] = $mid ($ARGS[2], 34, 10)
- !!maternal grandfather ID
- temp2[4] = $mid ($ARGS[2], 45, 10)
- !!paternal grandmother ID
- temp2[5] = $mid ($ARGS[2], 56, 10)
- !!paternal grandfather ID
- temp2[6] = $mid ($ARGS[2], 67, 10)
-
- if temp1[0] = temp2[1] or temp1[0] = temp2[2] or temp2[0] = temp1[1] or temp2[0] = temp1[2]:
- 'Parent-child relation'
- if temp1[0] = temp2[1] or temp1[0] = temp2[2]:
- !!temp1 is the parent, temp2 is child
- if temp2[1] = temp2[5] or temp2[2] = temp2[4]:'Child is the result of incest (parent is also grandparent)'
- if temp2[3] = temp2[5] and temp2[4] = temp2[6]:'Child is result of incest with close family member (sibling)'
- if temp2[3] = temp2[5] or temp2[4] = temp2[6]:'Child is result of incest with close family member (half sibling)'
- elseif temp2[0] = temp1[1] or temp2[0] = temp1[2]:
- !!temp2 is the parent, temp1 is child
- if temp1[1] = temp1[5] or temp1[2] = temp1[4]:'Child is the result of incest (parent is also grandparent)'
- if temp1[3] = temp1[5] and temp1[4] = temp1[6]:'Child is result of incest with close family member (sibling)'
- if temp1[3] = temp1[5] or temp1[4] = temp1[6]:'Child is result of incest with close family member (half sibling)'
- end
- elseif temp1[0] = temp2[3] or temp1[0] = temp2[4] or temp1[0] = temp2[5] or temp1[0] = temp2[6] or temp2[0] = temp1[3] or temp2[0] = temp1[4] or temp2[0] = temp1[5] or temp2[0] = temp1[6]:
- 'Grandparent-grandchild relation'
- elseif temp1[1] = temp2[1] or temp1[2] = temp2[2]:
- 'Sibling relation'
- if temp1[1] = temp2[1] and temp1[2] = temp2[2]:'Full sibling'
- if temp1[1] ! temp2[1] or temp1[2] ! temp2[2]:'Half sibling'
- elseif temp1[1] ! temp2[1] and temp1[2] ! temp2[2]:
- if temp1[3] = temp2[3] and temp1[4] = temp2[4] or temp1[3] = temp2[5] and temp1[4] = temp2[6]:
- 'first cousins'
- elseif temp1[3] = temp2[3] or temp1[4] = temp2[4] or temp1[3] = temp2[5] or temp1[4] = temp2[6]:
- 'distand blood relation'
- end
- end
- killvar 'temp1'
- killvar 'temp2'
- end
- if $ARGS[0] = 'create':
- !!If no known parentage, generate a DNA string, as Tabula Rasa
- i = 0
- :DNAloop
- $DNA += str(rand(1000000000,2147483647))
- if i < 6:$DNA += ' ' & i += 1 & jump 'DNAloop'
- $RESULT = $DNA
- killvar '$DNA'
- end
- if $ARGS[0] = 'generate':
- !!Creating its own DNA string from parent DNAs
- !!The order of the arguments are important, first is always the female
- $momDNA = $ARGS[1]
- $dadDNA = $ARGS[2]
- i = 0
- !!mother ID
- $temp[0] = $mid ($momDNA, 1, 10)
- !!father ID
- $temp[1] = $mid ($dadDNA, 1, 10)
- !!maternal grandmother ID
- $temp[2] = $mid ($momDNA, 12, 10)
- !!maternal grandfather ID
- $temp[3] = $mid ($momDNA, 23, 10)
- !!paternal grandmother ID
- $temp[4] = $mid ($dadDNA, 12, 10)
- !!paternal grandfather ID
- $temp[5] = $mid ($dadDNA, 23, 10)
- $RESULT = str(rand(1000000000,2147483647)) + ' ' + $temp[0] + ' ' + $temp[1] + ' ' + $temp[2] + ' ' + $temp[3] + ' ' + $temp[4] + ' ' + $temp[5]
- killvar 'temp'
- end
- --- DNA -------------------------------
|