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, ) )