from func import *
# 替换双引号内的序列,点击下方的"Run",将生成双barcode的各种组合
barcode_comb("CGTACATGCACACTCA")
__all__ = ["rev_comp", "barcode_comb"]
def rev_comp(seq):
rc_dict = {
"A": "T",
"T": "A",
"C": "G",
"G": "C",
"a": "t",
"t": "a",
"c": "g",
"g": "c",
"U": "A",
"u": "a",
}
rc_seq = ""
for x in seq[::-1]:
try:
rc_seq = rc_seq + rc_dict[x]
except KeyError:
rc_seq = rc_seq + x
# print(rc_seq)
return rc_seq
def barcode_comb(seq):
if len(seq) % 2 == 1:
raise ValueError("The sequence length should be an even number.")
l = len(seq) // 2
f1 = seq[:l]
f2 = seq[l:]
r1 = rev_comp(f1)
r2 = rev_comp(f2)
print(f"""F1F2\t{f1}{f2}
R1R2\t{r1}{r2}
F1R2\t{f1}{r2}
R1F2\t{r1}{f2}
F2F1\t{f2}{f1}
R2R1\t{r2}{r1}
F2R1\t{f2}{r1}
R2F1\t{r2}{f1}""")