HEADER = """\
"""
FOOTER = """\
CustomPrint
4
{Replicants}
{maxInXDir}
{maxInYDir}
Lnu0jwyG1z2wa9ReqqU3lHDT36vkrLmFErBTt00iBTMDHn916BMMCA..
"""
SAMPLE = """\
{SampleNumber}
{SpotNumber}
{SpotRow}
{SpotCol}
{SampleNumber}:{SpotNumber}
1
"""
data = dict(SampleNumber=1, SpotNumber=0, SpotRow=3, SpotCol=4)
samples = ""
ROWS = 20
COLS = 5
cell_size = 80 # um
spot2spot = 2 # cells
fov2fov = 5 # cells
maxInXDir = COLS * fov2fov
maxInYDir = ROWS * fov2fov
for SampleNumber in range(1, 5):
SpotNumber = 0
i = (0 if SampleNumber <= 2 else 1) * spot2spot
j = ((SampleNumber - 1) % 2) * spot2spot
for SpotRow in range(i, i + maxInYDir, fov2fov):
for SpotCol in range(j, j + maxInXDir, fov2fov):
samples += SAMPLE.format(
SampleNumber=SampleNumber,
SpotNumber=SpotNumber,
SpotRow=SpotRow,
SpotCol=SpotCol,
)
SpotNumber += 1
with open("out.xml", "w") as output_file:
output_file.write(HEADER)
output_file.write(samples)
output_file.write(
FOOTER.format(
Replicants=ROWS * COLS,
maxInXDir=maxInXDir - spot2spot,
maxInYDir=maxInYDir - spot2spot,
)
)