"A"
"A"
"ACGT"
"ACGT"
st = "ACGT"
"ACGT"
length(st) # getting the length of a string
4
"" # empty string (epsilon)
""
length("")
0
"ACGT"[rand(1:4)] # generating a random nucleotide
'G': ASCII/Unicode U+0047 (category Lu: Letter, uppercase)
"ACGT"[rand(1:4)] # repeated invocations might yield different nucleotides
'C': ASCII/Unicode U+0043 (category Lu: Letter, uppercase)
"ACGT"[rand(1:4)] # repeated invocations might yield different nucleotides
'A': ASCII/Unicode U+0041 (category Lu: Letter, uppercase)
"ACGT"[rand(1:4)] # repeated invocations might yield different nucleotides
'G': ASCII/Unicode U+0047 (category Lu: Letter, uppercase)
"ACGT"[rand(1:4)] # repeated invocations might yield different nucleotides
'C': ASCII/Unicode U+0043 (category Lu: Letter, uppercase)
# now I'll make a random nucleotide string by concatenating random nucleotides
st = join(["ACGT"[rand(1:4)] for _ in 1:40])
"ATCGGATTCGTAAGTTAGTCGGCAGGTACGCCTTTCGCTG"
st[2:4] # substring from position 2 up to (not including) position 4
"TCG"
In Julia, the lowest offset is 1! Unlike C, Java, Python, Go. But like R.
Also, ranges like 2:4
are inclusive at both ends. 2:4
asks for the part of the string from offset 2 through offset 4.
st[1:3] # prefix of length 3
"ATC"
st[length(st)-2:length(st)] # suffix of length 3
"CTG"
st[end-2:end] # another way of getting the suffix of length 3
"CTG"
st1, st2 = "CAT", "ATAC"
("CAT", "ATAC")
st1
"CAT"
st2
"ATAC"
st1 * st2 # concatenation of 2 strings
"CATATAC"