import random
import argparse
ALPHABET = "ACGT"
def random_dna(length):
return "".join(random.choice(ALPHABET) for _ in range(length))
def make_genome(motif, cn, flank):
left_flank = random_dna(flank)
right_flank = random_dna(flank)
repeat = motif * cn
return left_flank + repeat + right_flank
def main():
parser = argparse.ArgumentParser()
parser.add_argument("motif", type=str)
parser.add_argument("cn", type=int)
parser.add_argument("output", type=argparse.FileType("w"))
parser.add_argument("-f", "--flank", type=int, default=10000)
parser.add_argument(
"-n",
"--name",
type=str,
default="test_genome",
)
parser.add_argument(
"-s",
"--seed",
type=int,
default=42,
)
args = parser.parse_args()
random.seed(args.seed)
genome = make_genome(args.motif, args.cn, args.flank)
print(f">{args.name}", file=args.output)
for i in range(0, len(genome), 80):
print(genome[i : i + 80], file=args.output)
if __name__ == "__main__":
main()